@justifi/webcomponents 6.10.0 → 6.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/cjs/bank-account-document-form-inputs_9.cjs.entry.js +1 -1
  2. package/dist/cjs/{check-pkg-version-DjlvidPw.js → check-pkg-version-axrC8Ato.js} +18 -1
  3. package/dist/cjs/form-control-number-masked_3.cjs.entry.js +1 -1
  4. package/dist/cjs/hidden-input_2.cjs.entry.js +1 -1
  5. package/dist/cjs/internal-tokenize-payment-method_7.cjs.entry.js +2 -2
  6. package/dist/cjs/justifi-additional-questions-form-step_9.cjs.entry.js +20 -3
  7. package/dist/cjs/justifi-apple-pay_8.cjs.entry.js +2 -2
  8. package/dist/cjs/justifi-business-details.cjs.entry.js +2 -2
  9. package/dist/cjs/justifi-business-form.cjs.entry.js +2 -2
  10. package/dist/cjs/justifi-checkout.cjs.entry.js +2 -2
  11. package/dist/cjs/justifi-checkouts-list.cjs.entry.js +2 -2
  12. package/dist/cjs/justifi-dispute-management.cjs.entry.js +2 -2
  13. package/dist/cjs/justifi-dispute-notification_3.cjs.entry.js +2 -2
  14. package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +2 -2
  15. package/dist/cjs/justifi-order-terminals.cjs.entry.js +2 -2
  16. package/dist/cjs/justifi-payment-details.cjs.entry.js +2 -2
  17. package/dist/cjs/justifi-payment-provisioning-core.cjs.entry.js +20 -0
  18. package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +2 -2
  19. package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +2 -2
  20. package/dist/cjs/justifi-payments-list.cjs.entry.js +2 -2
  21. package/dist/cjs/justifi-payout-details.cjs.entry.js +2 -2
  22. package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +2 -2
  23. package/dist/cjs/justifi-payouts-list.cjs.entry.js +2 -2
  24. package/dist/cjs/justifi-refund-payment.cjs.entry.js +2 -2
  25. package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +2 -2
  26. package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +2 -2
  27. package/dist/cjs/justifi-terminals-list.cjs.entry.js +2 -2
  28. package/dist/cjs/loader.cjs.js +1 -1
  29. package/dist/cjs/{package-C5inXJfW.js → package-CAxc3X25.js} +1 -1
  30. package/dist/cjs/webcomponents.cjs.js +1 -1
  31. package/dist/collection/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step.js +16 -4
  32. package/dist/collection/components/business-forms/payment-provisioning/business-core-info/business-core-info-form-step.js +1 -1
  33. package/dist/collection/components/business-forms/payment-provisioning/business-owners/business-owners-form-step.js +6 -0
  34. package/dist/collection/components/business-forms/payment-provisioning/form-address-fields/form-address-fields.js +1 -1
  35. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-already-provisioned.js +6 -0
  36. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-core.js +15 -0
  37. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-submission-complete.js +6 -0
  38. package/dist/collection/components/business-forms/payment-provisioning/plaid-verification/plaid-verification.js +2 -2
  39. package/dist/collection/utils/check-pkg-version.js +17 -0
  40. package/dist/docs.json +6 -73
  41. package/dist/esm/bank-account-document-form-inputs_9.entry.js +2 -2
  42. package/dist/esm/{check-pkg-version-wgHSN5sV.js → check-pkg-version-BVLXSZXz.js} +18 -1
  43. package/dist/esm/form-control-number-masked_3.entry.js +1 -1
  44. package/dist/esm/hidden-input_2.entry.js +1 -1
  45. package/dist/esm/internal-tokenize-payment-method_7.entry.js +2 -2
  46. package/dist/esm/justifi-additional-questions-form-step_9.entry.js +21 -4
  47. package/dist/esm/justifi-apple-pay_8.entry.js +2 -2
  48. package/dist/esm/justifi-business-details.entry.js +2 -2
  49. package/dist/esm/justifi-business-form.entry.js +2 -2
  50. package/dist/esm/justifi-checkout.entry.js +2 -2
  51. package/dist/esm/justifi-checkouts-list.entry.js +2 -2
  52. package/dist/esm/justifi-dispute-management.entry.js +2 -2
  53. package/dist/esm/justifi-dispute-notification_3.entry.js +2 -2
  54. package/dist/esm/justifi-gross-payment-chart.entry.js +2 -2
  55. package/dist/esm/justifi-order-terminals.entry.js +2 -2
  56. package/dist/esm/justifi-payment-details.entry.js +2 -2
  57. package/dist/esm/justifi-payment-provisioning-core.entry.js +21 -1
  58. package/dist/esm/justifi-payment-provisioning.entry.js +2 -2
  59. package/dist/esm/justifi-payment-transactions-list.entry.js +2 -2
  60. package/dist/esm/justifi-payments-list.entry.js +2 -2
  61. package/dist/esm/justifi-payout-details.entry.js +2 -2
  62. package/dist/esm/justifi-payout-transactions-list.entry.js +2 -2
  63. package/dist/esm/justifi-payouts-list.entry.js +2 -2
  64. package/dist/esm/justifi-refund-payment.entry.js +2 -2
  65. package/dist/esm/justifi-season-interruption-insurance.entry.js +2 -2
  66. package/dist/esm/justifi-terminal-orders-list.entry.js +2 -2
  67. package/dist/esm/justifi-terminals-list.entry.js +2 -2
  68. package/dist/esm/loader.js +1 -1
  69. package/dist/esm/{package-D4eE0MBI.js → package-Bjv3eJBk.js} +1 -1
  70. package/dist/esm/webcomponents.js +1 -1
  71. package/dist/module/Analytics.js +17 -0
  72. package/dist/module/business-bank-account-form-step.js +15 -3
  73. package/dist/module/business-core-info-form-step.js +2 -2
  74. package/dist/module/business-core-info.js +1 -1
  75. package/dist/module/business-owners-form-step.js +7 -1
  76. package/dist/module/business-representative-form-inputs.js +1 -1
  77. package/dist/module/business-representative.js +1 -1
  78. package/dist/module/button.js +1 -1
  79. package/dist/module/dispute-notification.js +1 -1
  80. package/dist/module/dispute-response-core.js +1 -1
  81. package/dist/module/form-address-fields.js +1 -1
  82. package/dist/module/justifi-order-terminals.js +1 -1
  83. package/dist/module/owner-form-inputs2.js +1 -1
  84. package/dist/module/package.js +1 -1
  85. package/dist/module/parts.js +1 -1
  86. package/dist/module/payment-provisioning-core.js +22 -1
  87. package/dist/module/plaid-verification2.js +2 -2
  88. package/dist/module/terminal-quantity-selector2.js +1 -1
  89. package/dist/types/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step.d.ts +3 -0
  90. package/dist/types/components/business-forms/payment-provisioning/payment-provisioning-already-provisioned.d.ts +1 -0
  91. package/dist/types/components/business-forms/payment-provisioning/payment-provisioning-core.d.ts +1 -0
  92. package/dist/types/components/business-forms/payment-provisioning/payment-provisioning-submission-complete.d.ts +1 -0
  93. package/dist/types/ui-components/button.d.ts +1 -1
  94. package/dist/webcomponents/{p-df61f19b.entry.js → p-0588173b.entry.js} +1 -1
  95. package/dist/webcomponents/{p-2bbd810a.entry.js → p-1a4d5f16.entry.js} +1 -1
  96. package/dist/webcomponents/{p-ed4f8027.entry.js → p-21620dd2.entry.js} +1 -1
  97. package/dist/webcomponents/p-21b5240d.entry.js +1 -0
  98. package/dist/webcomponents/{p-2b679e5a.entry.js → p-282134de.entry.js} +1 -1
  99. package/dist/webcomponents/p-35d1be0f.entry.js +1 -0
  100. package/dist/webcomponents/{p-423b63ad.entry.js → p-479e4baf.entry.js} +1 -1
  101. package/dist/webcomponents/{p-d62da4f2.entry.js → p-4d6031dd.entry.js} +1 -1
  102. package/dist/webcomponents/{p-d766763a.entry.js → p-4ebaafe3.entry.js} +1 -1
  103. package/dist/webcomponents/{p-8728065b.entry.js → p-4fc5ffda.entry.js} +1 -1
  104. package/dist/webcomponents/{p-979d22d0.entry.js → p-643f1616.entry.js} +1 -1
  105. package/dist/webcomponents/{p-38c1e9fa.entry.js → p-6486555d.entry.js} +1 -1
  106. package/dist/webcomponents/{p-d0813f21.entry.js → p-7318981d.entry.js} +1 -1
  107. package/dist/webcomponents/{p-3971d6b7.entry.js → p-7d122d5b.entry.js} +1 -1
  108. package/dist/webcomponents/p-7dc5995e.entry.js +1 -0
  109. package/dist/webcomponents/{p-d9118b1e.entry.js → p-7e3030c2.entry.js} +1 -1
  110. package/dist/webcomponents/{p-5d753fd4.entry.js → p-8dc8ad9a.entry.js} +1 -1
  111. package/dist/webcomponents/p-Bjv3eJBk.js +1 -0
  112. package/dist/webcomponents/{p-CbTf_N6u.js → p-BqpQa748.js} +1 -1
  113. package/dist/webcomponents/{p-b4b540fa.entry.js → p-b61080bd.entry.js} +1 -1
  114. package/dist/webcomponents/p-cb9abd2c.entry.js +1 -0
  115. package/dist/webcomponents/{p-eb1251bf.entry.js → p-ccb0a84a.entry.js} +1 -1
  116. package/dist/webcomponents/{p-e2bc6c68.entry.js → p-d36725a3.entry.js} +1 -1
  117. package/dist/webcomponents/{p-7769de83.entry.js → p-d7bd9d76.entry.js} +1 -1
  118. package/dist/webcomponents/{p-0e21749b.entry.js → p-e8f9b081.entry.js} +1 -1
  119. package/dist/webcomponents/{p-2438363d.entry.js → p-ec933218.entry.js} +1 -1
  120. package/dist/webcomponents/{p-300002dd.entry.js → p-eeee370f.entry.js} +1 -1
  121. package/dist/webcomponents/{p-f18e90b1.entry.js → p-f1b99b0d.entry.js} +1 -1
  122. package/dist/webcomponents/webcomponents.esm.js +1 -1
  123. package/package.json +3 -2
  124. package/dist/webcomponents/p-12665340.entry.js +0 -1
  125. package/dist/webcomponents/p-5cee4e33.entry.js +0 -1
  126. package/dist/webcomponents/p-D4eE0MBI.js +0 -1
  127. package/dist/webcomponents/p-afa2ebd9.entry.js +0 -1
  128. package/dist/webcomponents/p-c725dc53.entry.js +0 -1
@@ -1 +0,0 @@
1
- import{r as e,h as t,H as a,c as i,g as s}from"./p-CV0Pyo1O.js";import"./p-DVJaoI_m.js";import"./p-HXpYMWUU.js";import{C as l}from"./p-Cjcsf8ku.js";import{E as o,m as n,n as r,o as c}from"./p-BiNakvsa.js";import"./p-CLHwhyvu.js";import"./p-BcNb9bVO.js";import"./p-BH0Xfn-F.js";import{a as d}from"./p-Bt4GjEWL.js";import"./p-XYgDHrVL.js";import{n as h}from"./p-BnjCmwMr.js";import{H as u,a5 as f,J as b,av as m,V as p,aE as v,_ as y,$ as k,X as g,Y as x,Z as T,am as _}from"./p-C4FLe2pT.js";import{s as w,e as N,d as j}from"./p-MeSAYDNh.js";import{S as A}from"./p-DqVU8ohH.js";import"./p-CZfYo5-1.js";import{F as E}from"./p--Kvji7o2.js";import{u as C,a as H,b as V}from"./p-C6o0liMT.js";import{P as D,I}from"./p-CVaOFfrI.js";import{c as O}from"./p-_-2E_vYf.js";import{c as L,d as F,e as B}from"./p-R0FDNhyd.js";import{I as P}from"./p-DqtDbB8E.js";import{B as R}from"./p-DFiTyYE9.js";import{S}from"./p-BqNNwq6C.js";import{P as M,p as Y}from"./p-Jz9qdPhR.js";import"./p-D8GTwl9v.js";import"./p-D2muobcE.js";import"./p-55QcjheA.js";const q=class{constructor(t){e(this,t)}render(){return t("div",{key:"7f9ea576aad16f3c2ea45c987a38878ea65f2df2",class:"row gy-3"},t("div",{key:"316fe3f20df7c7dce2b8903e6073e0fe7920e5e8",class:"col-12"},t("form-control-file",{key:"320d6b7f3de2cfeeb30eb1e08ca4122123854ffd",name:"voided_check",label:"Voided Check",documentType:o.voidedCheck,inputHandler:this.inputHandler,onFileSelected:this.storeFiles,errorText:this.errors.voided_check,multiple:!0})),t("div",{key:"f33a936c61c14c701e40d375e4dfc4c554b8293c",class:"col-12"},t("form-control-file",{key:"1e160d8211a71175d6a45b10590fb2c8774f61e1",name:"bank_statement",label:"Bank Statement",documentType:o.bankStatement,inputHandler:this.inputHandler,onFileSelected:this.storeFiles,errorText:this.errors.bank_statement,multiple:!0})))}},U=class{constructor(t){e(this,t)}render(){var e,a,i,s,l,o;return t("div",{key:"5dc7139f54d11979410d0d67ca29e65b02f30200",class:"row gy-3"},t("div",{key:"118f15bf02855b24baec5ce2a2c3cf5b241b3da4",class:"col-12"},this.formDisabled?t("bank-account-read-only-value",{label:"Bank Name",value:null===(e=this.defaultValue)||void 0===e?void 0:e.bank_name}):t("form-control-text",{name:"bank_name",label:"Bank Name",defaultValue:this.defaultValue.bank_name,errorText:this.errors.bank_name,inputHandler:this.inputHandler})),t("div",{key:"db03eccee03ec4b7d0de637306315982a2cd770d",class:"col-12"},this.formDisabled?t("bank-account-read-only-value",{label:"Nickname",value:null===(a=this.defaultValue)||void 0===a?void 0:a.nickname}):t("form-control-text",{name:"nickname",label:"Nickname",defaultValue:this.defaultValue.nickname,errorText:this.errors.nickname,inputHandler:this.inputHandler})),t("div",{key:"217120e0052b8ee41cac8f901ac4d9742b0c6ea9",class:"col-12"},this.formDisabled?t("bank-account-read-only-value",{label:"Account Owner Name",value:null===(i=this.defaultValue)||void 0===i?void 0:i.account_owner_name}):t("form-control-text",{name:"account_owner_name",label:"Account Owner Name",defaultValue:this.defaultValue.account_owner_name,errorText:this.errors.account_owner_name,inputHandler:this.inputHandler})),t("div",{key:"f589511545d6262966a6fa2888cb78babacfb770",class:"col-12"},this.formDisabled?t("bank-account-read-only-value",{label:"Account Type",value:null===(s=this.defaultValue)||void 0===s?void 0:s.account_type}):t("form-control-select",{name:"account_type",label:"Account Type",options:d,defaultValue:this.defaultValue.account_type,errorText:this.errors.account_type,inputHandler:this.inputHandler})),t("div",{key:"24df83bb2666cee381c266608c43f3fd729db4cf",class:"col-6"},this.formDisabled?t("bank-account-read-only-value",{label:"Account Number",value:(null===(l=this.defaultValue)||void 0===l?void 0:l.account_number_last4)?`**** ${this.defaultValue.account_number_last4}`:""}):t("form-control-text",{name:"account_number",label:"Account Number",defaultValue:this.defaultValue.account_number,maxLength:17,errorText:this.errors.account_number,inputHandler:this.inputHandler,keyDownHandler:h,helpText:"Please copy the account number as shown on your statement/check. Do not include spaces or dashes."})),t("div",{key:"75fe11d71e57707d088f8a90a250621fce82647f",class:"col-6"},this.formDisabled?t("bank-account-read-only-value",{label:"Routing Number",value:(null===(o=this.defaultValue)||void 0===o?void 0:o.routing_number)||""}):t("form-control-text",{name:"routing_number",label:"Routing Number",defaultValue:this.defaultValue.routing_number,maxLength:9,errorText:this.errors.routing_number,inputHandler:this.inputHandler,keyDownHandler:h,helpText:"A valid routing number is nine digits. Please include any leading or trailing zeroes."})))}},$=class{constructor(t){e(this,t)}render(){var e,a,i,s,l,o,n;return t("div",{key:"34cbf10449df73748095fd7122d0ae1355a83e13",class:"row gy-3"},t("div",{key:"607cc5cbc70fdd2d5a325bef7002a44740394282",class:"col-12"},this.formDisabled?t("bank-account-read-only-value",{label:"Bank Name",value:null===(e=this.defaultValue)||void 0===e?void 0:e.bank_name}):t("form-control-text",{name:"bank_name",label:"Bank Name",defaultValue:this.defaultValue.bank_name,errorText:this.errors.bank_name,inputHandler:this.inputHandler})),t("div",{key:"f57f4cd733f2dd439d6d83f32078371618f5fa06",class:"col-12"},this.formDisabled?t("bank-account-read-only-value",{label:"Nickname",value:null===(a=this.defaultValue)||void 0===a?void 0:a.nickname}):t("form-control-text",{name:"nickname",label:"Nickname",defaultValue:this.defaultValue.nickname,errorText:this.errors.nickname,inputHandler:this.inputHandler})),t("div",{key:"b92dface0116321ea990bfcaf1b036b5629385db",class:"col-12"},this.formDisabled?t("bank-account-read-only-value",{label:"Account Owner Name",value:null===(i=this.defaultValue)||void 0===i?void 0:i.account_owner_name}):t("form-control-text",{name:"account_owner_name",label:"Account Owner Name",defaultValue:this.defaultValue.account_owner_name,errorText:this.errors.account_owner_name,inputHandler:this.inputHandler})),t("div",{key:"45d68efa47de76ee420cedfb97e82f498a2de97b",class:"col-12"},this.formDisabled?t("bank-account-read-only-value",{label:"Account Type",value:null===(s=this.defaultValue)||void 0===s?void 0:s.account_type}):t("form-control-select",{name:"account_type",label:"Account Type",options:d,defaultValue:this.defaultValue.account_type,errorText:this.errors.account_type,inputHandler:this.inputHandler})),t("div",{key:"8419925e8470d63d506e1f7e82ccdf1a1132ecc0",class:"col-3"},this.formDisabled?t("bank-account-read-only-value",{label:"Transit Number",value:(null===(l=this.defaultValue)||void 0===l?void 0:l.transit_number)||""}):t("form-control-text",{name:"transit_number",label:"Transit Number",defaultValue:this.defaultValue.transit_number,maxLength:5,errorText:this.errors.transit_number,inputHandler:this.inputHandler,keyDownHandler:h,helpText:"5 digits"})),t("div",{key:"aa6e83c409e0cf93f1903394f63c0b719ec8808e",class:"col-3"},this.formDisabled?t("bank-account-read-only-value",{label:"Institution Number",value:(null===(o=this.defaultValue)||void 0===o?void 0:o.institution_number)||""}):t("form-control-text",{name:"institution_number",label:"Institution Number",defaultValue:this.defaultValue.institution_number,maxLength:3,errorText:this.errors.institution_number,inputHandler:this.inputHandler,keyDownHandler:h,helpText:"3 digits"})),t("div",{key:"029058c023daca9d0488f45478af6edafe359df7",class:"col-6"},this.formDisabled?t("bank-account-read-only-value",{label:"Account Number",value:(null===(n=this.defaultValue)||void 0===n?void 0:n.account_number_last4)?`**** ${this.defaultValue.account_number_last4}`:""}):t("form-control-text",{name:"account_number",label:"Account Number",defaultValue:this.defaultValue.account_number,maxLength:17,errorText:this.errors.account_number,inputHandler:this.inputHandler,keyDownHandler:h,helpText:"Please copy the account number as shown on your statement. Do not include spaces or dashes."})))}},z=class{constructor(t){e(this,t)}render(){return t("div",{key:"ad9eadcf49dbc67e51cd814d3ded334a587cc17c"},t("label",{key:"b8ba3d8b7ef9fc33e0e0870f71b7df5dbfae4759",class:"form-label",part:u},this.label),t("div",{key:"1839bdadb96b3c814c73991530497f9a7be6a10d",part:u},this.value||""))}},X=class{constructor(t){e(this,t),this.documents=[],this.isLoading=!1}render(){return this.isLoading?t(A,{height:"50px"}):this.documents.length?t(a,null,t("div",{class:"card",part:f},t("div",{class:"card-body"},t("h5",{class:"card-title",part:b},"Documents Already on File"),t("div",{class:"table-responsive"},t("table",{class:"table table-sm table-borderless",part:m},t("thead",null,t("tr",null,t("th",{style:{width:"25%"},part:p,scope:"col"},"File Name"),t("th",{style:{width:"25%"},part:p,scope:"col"},"File Type"),t("th",{style:{width:"25%"},part:p,scope:"col"},"Document Type"),t("th",{style:{width:"25%"},part:p,scope:"col"},"Date Uploaded"))),t("tbody",null,this.documents.sort(((e,t)=>e.document_type.localeCompare(t.document_type))).map(((e,a)=>t("tr",{class:0===a?"border-bottom border-top":"border-bottom"},t("td",{part:v},e.file_name),t("td",{part:v},e.file_type),t("td",{part:v},w(e.document_type)),t("td",{part:v},`${N(e.created_at)} - ${j(e.created_at)}`))))))))),t("hr",null)):null}},G=class{constructor(t){e(this,t),this.formControlInput=i(this,"formControlInput",7),this.formControlBlur=i(this,"formControlBlur",7),this.fileSelected=i(this,"fileSelected",7),this.isFocused=!1,this.errorText="",this.inputHandler=()=>{},this.disabled=!1,this.handleFormControlInput=e=>{const t=e.target,a=t.getAttribute("name");this.inputHandler(a,t.value),this.formControlInput.emit({name:a,value:t.value})},this.changeHandler=()=>{const e=this.fileInput.files;e&&this.fileSelected.emit({fileList:e,document_type:this.documentType})}}componentDidLoad(){this.fileInput=this.el.querySelector("input")}get part(){let e=y;return this.errorText&&(e=g),this.disabled&&(e=x),this.isFocused&&(e=T),e}render(){return t(a,{key:"8172f7df27c42c6d5211d29ef595dd2e4dbd9def"},t("div",{key:"99740d980c280502242ee1cdcee2a3df6ba53146",class:"form-group d-flex flex-column"},t("div",{key:"5fb94f2b710d5fd734172ee91b59621d736e129b",class:"d-flex align-items-start gap-2"},t("label",{key:"12fedf016c7d789fad8692c7ae03975481964005",part:k,class:"form-label",htmlFor:this.name},this.label),t("form-control-tooltip",{key:"6d59be5a27d3c9a171292244fc9e9bb598b9ecce",helpText:this.helpText})),t("input",{key:"64c7d9eaa46f95714d5527cf94d28c206065a411",ref:e=>this.fileInput=e,type:"file",name:this.name,part:this.part,class:this.errorText?"form-control is-invalid":"form-control",multiple:this.multiple,disabled:this.disabled,onChange:this.changeHandler,onInput:this.handleFormControlInput,onFocus:()=>this.isFocused=!0,onBlur:()=>{this.isFocused=!1,this.formControlBlur.emit()}}),t(E,{key:"9610c0676934fd616fbdac08e98a102240773084",errorText:this.errorText,name:this.name})))}get el(){return s(this)}},J=class{constructor(t){e(this,t),this.isEditingIdentification=!1,this.inputHandler=(e,t)=>{C(this.formController,{[e]:t})},this.onAddressFormUpdate=e=>{H(this.formController,Object.assign(Object.assign({},this.formController.values.getValue().address),e))}}render(){var e,a,i,s,l,o,n,r,c;return t("form",{key:"a9c0f6332bf302d5eb9f93c4ca045d572a40468f"},t("fieldset",{key:"115c564826335a9c7b670bbc0409912c3eb7a4aa"},t("div",{key:"6de8909b4b2f3c7d8ec4665aad77ef59cdf035b4",class:"d-flex align-items-center gap-2"},t("legend",{key:"bb8b5a3775eae450a866356a9e149a0bf57b5699",class:"mb-0",part:b},"Representative"),t("form-control-tooltip",{key:"a0296d4a3c35a039525f39501e117ee6fdd12257",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."})),t("hr",{key:"abbee22f5664275f27dd8eeb2b12c87b059ff024",class:"mt-2"}),t("div",{key:"e165ff125df62dc1d22b7329fe7fe2ff200cbbb3",class:"row gy-3"},t("div",{key:"114ff752eeda3ffa90529ff6bc675b874f543336",class:"col-12 col-md-8"},t("form-control-text",{key:"8b6ce9f4a327ca5282aa32c226f671945aa10404",name:"name",label:"Full Name",defaultValue:null===(e=this.representativeDefaultValue)||void 0===e?void 0:e.name,errorText:this.errors.name,inputHandler:this.inputHandler})),t("div",{key:"bce864367883c6bbf7bd0841114a3dbb39db692b",class:"col-12 col-md-4"},t("form-control-text",{key:"ec3e72dc3f84c0daee2c6509f7dbf2bad22f5db6",name:"title",label:"Title",defaultValue:null===(a=this.representativeDefaultValue)||void 0===a?void 0:a.title,errorText:this.errors.title,inputHandler:this.inputHandler,helpText:"Role at your business, e.g. President, CEO, Treasurer."})),t("div",{key:"200ae959d897d9d22016553d3c586cf3f0438dd9",class:"col-12 col-md-6"},t("form-control-text",{key:"4f77d6ca6c3c85edabc11af6f5703ab1327f05e7",name:"email",label:"Email Address",defaultValue:null===(i=this.representativeDefaultValue)||void 0===i?void 0:i.email,errorText:this.errors.email,inputHandler:this.inputHandler})),t("div",{key:"cf642ee73f7ae8b254920a3f781c23dc456f16ae",class:"col-12 col-md-6"},t("form-control-number-masked",{key:"df609213bec728f17b2527a2e99ff3e0e69604aa",name:"phone",label:"Phone Number",defaultValue:null===(s=this.representativeDefaultValue)||void 0===s?void 0:s.phone,errorText:this.errors.phone,inputHandler:this.inputHandler,mask:D.US})),t("div",{key:"2e4565c06976723ae4e497a5305cea7468bac2f4",class:"col-12 col-md-4"},t("form-control-date",{key:"ca7d4bf05c32d1d9983df430d338cc3433015957",name:"dob_full",label:"Birth Date",defaultValue:null===(l=this.representativeDefaultValue)||void 0===l?void 0:l.dob_full,errorText:this.errors.dob_full,inputHandler:this.inputHandler,onFormControlInput:e=>V(e,this.formController),helpText:"Must be 18 or older."})),t("div",{key:"f6cbe1b7f4e5575f626e6d73f31b4a1a09ac33e3",class:"col-12 col-md-8"},!(null===(o=this.representativeDefaultValue)||void 0===o?void 0:o.ssn_last4)||this.isEditingIdentification?t("form-control-number-masked",{name:"identification_number",label:O[this.country].idNumberLabel,defaultValue:this.isEditingIdentification?"":null===(n=this.representativeDefaultValue)||void 0===n?void 0:n.identification_number,errorText:this.errors.identification_number,inputHandler:this.inputHandler,mask:I[this.country],helpText:O[this.country].identityHelpText}):t("div",null,t("label",{class:"form-label",part:k},O[this.country].idNumberLabel),t("div",{class:"input-group mb-3"},t("input",{type:"text",class:"form-control",part:x,value:`****${null===(r=this.representativeDefaultValue)||void 0===r?void 0:r.ssn_last4}`,disabled:!0}),t("button",{class:"btn btn-secondary",type:"button",part:_,onClick:()=>{this.isEditingIdentification=!0,C(this.formController,{identification_number:"",ssn_last4:null})}},"Change")))),t("div",{key:"e3fa556dece2feaf5eb175ae3734c2319777ef48",class:"col-12"},t("justifi-identity-address-form",{key:"fe3d349371d11b8a246b9c31aebd7d9c84e03f8e",errors:this.errors.address,defaultValues:null===(c=this.representativeDefaultValue)||void 0===c?void 0:c.address,handleFormUpdate:this.onAddressFormUpdate,country:this.country})))))}},W=class{constructor(t){e(this,t),this.errorEvent=i(this,"error-event",7)}async validate(){return this.coreComponent.validate()}async submit(){return this.coreComponent.submit()}async validateAndSubmit({onSuccess:e}){this.coreComponent.validateAndSubmit({onSuccess:e})}componentWillLoad(){this.initializeApi()}initializeApi(){this.authToken&&(this.getOwner=L({authToken:this.authToken,identityId:this.ownerId,service:new P}),this.patchOwner=F({authToken:this.authToken,identityId:this.ownerId,service:new P}),this.postOwner=B({authToken:this.authToken,service:new P}))}render(){return t("owner-form-core",{key:"47c36dfc76ac8a108950e17770d1a0fb06fe4e42",ownerId:this.ownerId,businessId:this.businessId,getOwner:this.getOwner,patchOwner:this.patchOwner,postOwner:this.postOwner,allowOptionalFields:this.allowOptionalFields,removeOwner:this.removeOwner,newFormOpen:this.newFormOpen,ownersLength:this.ownersLength,country:this.country,ref:e=>this.coreComponent=e})}},K=class{constructor(t){e(this,t),this.plaidVerificationSuccess=i(this,"plaidVerificationSuccess",7),this.plaidVerificationError=i(this,"plaidVerificationError",7),this.linkToken=null,this.linkTokenId=null,this.plaidLink=null,this.isAuthenticating=!1,this.isSuccess=!1,this.error=null,this.isLoading=!1,this.plaidService=new M,this.abortController=null,this.timeoutId=null,this.initializePlaidLink=async()=>{try{if(void 0===window.Plaid)return void this.handleError({code:c.PLAID_SDK_LOAD_FAILED,message:r[c.PLAID_SDK_LOAD_FAILED],severity:n[c.PLAID_SDK_LOAD_FAILED],retryable:!0,userAction:"Refresh the page and try again"});if(await this.getLinkToken(),!this.linkToken)return void this.handleError({code:c.PLAID_LINK_TOKEN_FAILED,message:r[c.PLAID_LINK_TOKEN_FAILED],severity:n[c.PLAID_LINK_TOKEN_FAILED],retryable:!0,userAction:"Click to try again"});const e=window.Plaid;this.plaidLink=e.create({token:this.linkToken,onSuccess:this.handlePlaidSuccess,onExit:this.handlePlaidExit,onEvent:this.handlePlaidEvent,onLoad:this.handlePlaidLoad})}catch(e){this.handleError({code:c.PLAID_LINK_INIT_FAILED,message:r[c.PLAID_LINK_INIT_FAILED],severity:n[c.PLAID_LINK_INIT_FAILED],originalError:e,retryable:!0,userAction:"Click to try again"})}},this.getLinkToken=async()=>{var e,t,a,i;try{if(!this.authToken||!this.accountId)return void this.handleError({code:c.PLAID_LINK_TOKEN_FAILED,message:"Missing authentication. Please provide authToken and accountId.",severity:l.ERROR,retryable:!1,userAction:"Provide required props"});this.abortController=new AbortController,this.timeoutId=setTimeout((()=>{var e;null===(e=this.abortController)||void 0===e||e.abort()}),3e4);const e=await this.plaidService.getLinkTokenForVerification(this.authToken,this.businessId,this.abortController.signal);if(this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null),e.error)throw new Error("string"==typeof e.error?e.error:e.error.message||"Failed to get link token");this.linkToken=e.data.link_token,this.linkTokenId=e.data.id}catch(s){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null);let l=c.PLAID_LINK_TOKEN_FAILED,o=r[l],d=!0;"AbortError"===s.name?(l=c.PLAID_TIMEOUT,o=r[l],d=!0):(null===(e=s.message)||void 0===e?void 0:e.includes("network"))||(null===(t=s.message)||void 0===t?void 0:t.includes("fetch"))?(l=c.PLAID_NETWORK_ERROR,o=r[l],d=!0):((null===(a=s.message)||void 0===a?void 0:a.includes("401"))||(null===(i=s.message)||void 0===i?void 0:i.includes("unauthorized")))&&(l=c.PLAID_INVALID_CREDENTIALS,o="Authentication failed. Please check your credentials.",d=!1),this.handleError({code:l,message:o,severity:n[l],originalError:s,retryable:d,userAction:d?"Click to try again":"Check your credentials"})}},this.openPlaidLink=()=>{this.plaidLink&&this.linkToken&&(this.isAuthenticating=!0,this.clearError(),this.plaidLink.open())},this.handlePlaidSuccess=async e=>{var t;this.isAuthenticating=!1,this.isLoading=!0,this.clearError();try{const a=await this.plaidService.postPlaidVerifiedBankAccountData(this.authToken,this.businessId,{public_token:e,link_token_id:this.linkTokenId},null===(t=this.abortController)||void 0===t?void 0:t.signal);if(a.error)throw new Error("string"==typeof a.error?a.error:a.error.message||"Failed to verify bank account");this.isSuccess=!0,this.isLoading=!1,this.plaidVerificationSuccess.emit({publicToken:e,bankAccount:a.data})}catch(e){this.isLoading=!1,this.handleError({code:c.PLAID_AUTHENTICATION_FAILED,message:(null==e?void 0:e.message)||"Failed to verify bank account",severity:n[c.PLAID_AUTHENTICATION_FAILED],originalError:e,retryable:!0,userAction:"Click to try again"})}},this.handlePlaidExit=e=>{this.isAuthenticating=!1,e&&this.handlePlaidError(e)},this.handlePlaidEvent=(e,t)=>{switch(e){case"OPEN":this.isAuthenticating=!0;break;case"CLOSE":this.isAuthenticating=!1;break;case"ERROR":this.handlePlaidError(t)}},this.handlePlaidLoad=()=>{},this.handlePlaidError=e=>{let t=c.PLAID_AUTHENTICATION_FAILED,a=r[t],i=!0,s="Click to try again";if(e.error_code)switch(e.error_code){case"INVALID_CREDENTIALS":t=c.PLAID_INVALID_CREDENTIALS,a=r[t],i=!0;break;case"ITEM_LOGIN_REQUIRED":t=c.PLAID_INVALID_CREDENTIALS,a="Your bank requires re-authentication. Please try again.",i=!0;break;case"ITEM_LOCKED":t=c.PLAID_ACCOUNT_LOCKED,a=r[t],i=!1,s="Contact your bank";break;case"INSTITUTION_NOT_RESPONDING":t=c.PLAID_MAINTENANCE,a=r[t],i=!0;break;case"RATE_LIMIT_EXCEEDED":t=c.PLAID_RATE_LIMITED,a=r[t],i=!0;break;default:e.error_message&&(a=e.error_message)}this.handleError({code:t,message:a,severity:n[t],originalError:e,retryable:i,userAction:s}),this.isAuthenticating=!1},this.handleError=e=>{this.error=e,this.isLoading=!1,this.plaidVerificationError.emit(e),console.error("Plaid verification error:",e)},this.clearError=()=>{this.error&&(this.error=null)}}componentDidRender(){this.scriptRef&&(this.scriptRef.onload=()=>{this.initializePlaidLink()},this.scriptRef.onerror=()=>{this.handleError({code:c.PLAID_SDK_LOAD_FAILED,message:r[c.PLAID_SDK_LOAD_FAILED],severity:n[c.PLAID_SDK_LOAD_FAILED],retryable:!0,userAction:"Refresh the page and try again"})})}disconnectedCallback(){this.timeoutId&&clearTimeout(this.timeoutId),this.abortController&&this.abortController.abort()}render(){const e=t("img",{class:"plaid-logo-img",src:Y,alt:"Plaid",title:"Plaid",style:{display:"inline",width:"20px",height:"20px",marginLeft:"5px",marginTop:"-2px"}});return t(S,null,t("script",{src:"https://cdn.plaid.com/link/v2/stable/link-initialize.js",async:!0,ref:e=>this.scriptRef=e}),t("div",null,t("div",{class:"mb-3"},t(R,{variant:"secondary",type:"button",onClick:e=>{e.preventDefault(),this.openPlaidLink()},disabled:this.isLoading,part:_},"Link Bank Account with ",e)),(()=>this.error?t("div",{class:(this.error.severity===l.ERROR?"text-danger":this.error.severity===l.WARNING?"text-warning":"text-info")+" mt-2"},t("small",null,this.error.message),t("br",null),this.error.userAction&&t("small",{class:"text-muted"},this.error.userAction)):null)(),(()=>this.error?null:this.isLoading?t("div",{class:"text-info mt-2"},t("small",null,"Verifying bank account...")):this.isSuccess?t("div",{class:"text-success mt-2"},t("small",null,"✓ Bank account verified successfully")):this.isAuthenticating?t("div",{class:"text-info mt-2"},t("small",null,"Connecting to your bank...")):null)()))}};export{q as bank_account_document_form_inputs,U as bank_account_form_inputs,$ as bank_account_form_inputs_canada,z as bank_account_read_only_value,X as business_documents_on_file,G as form_control_file,J as justifi_business_representative_form_inputs,W as justifi_owner_form,K as plaid_verification}
@@ -1 +0,0 @@
1
- import{h as e,r as t,c as a}from"./p-CV0Pyo1O.js";import"./p-DVJaoI_m.js";import"./p-HXpYMWUU.js";import{C as s,a as i}from"./p-Cjcsf8ku.js";import{h as r}from"./p-BiNakvsa.js";import{p as n}from"./p-CLHwhyvu.js";import"./p-BcNb9bVO.js";import"./p-BH0Xfn-F.js";import{c as o,J as c}from"./p-CbTf_N6u.js";import{g as p,a as h}from"./p-D2muobcE.js";import{P as d}from"./p-B_KHnbK8.js";import{T as f,l,a as u,b as m,c as y,d as b,e as _,f as g,g as j,h as T,i as k,j as w,k as v}from"./p-5mt2ek0H.js";import{S as C}from"./p-BqNNwq6C.js";import{T as D}from"./p-CZfYo5-1.js";import{a as F}from"./p-MeSAYDNh.js";import{V as S,W as P}from"./p-C4FLe2pT.js";import"./p-D8GTwl9v.js";import"./p-D4eE0MBI.js";import"./p-55QcjheA.js";import"./p-DyETkJs3.js";const R={created_at:()=>e("th",{part:S,scope:"col",title:"The date and time each transaction was made"},"Processed On"),type:()=>e("th",{part:S,scope:"col",title:"The type of each transaction"},"Type"),id:()=>e("th",{part:S,scope:"col",title:"The unique identifier of each transaction"},"ID"),amount:()=>e("th",{part:S,scope:"col",title:"The dollar amount of each transaction",class:"text-end"},"Amount"),balance:()=>e("th",{part:S,scope:"col",title:"The running total amount of this payment that belongs to you",class:"text-end"},"Balance"),currency:()=>e("th",{part:S,scope:"col",title:"The currency of each transaction"},"Currency"),financial_transaction_id:()=>e("th",{part:S,scope:"col",title:"The unique identifier of the financial transaction associated with the payment balance transaction"},"Financial Transaction ID"),payment_id:()=>e("th",{part:S,scope:"col",title:"The unique identifier of the payment associated with the payment balance transaction"},"Payment ID"),payment_balance_txn_type:()=>e("th",{part:S,scope:"col",title:"The type of the payment balance transaction"},"Transaction Type"),source_id:()=>e("th",{part:S,scope:"col",title:"The unique identifier of the source object associated with the payment balance transaction"},"Source ID"),source_type:()=>e("th",{part:S,scope:"col",title:"The type of the source object associated with the payment balance transaction"},"Source Type")},I={ach_return:"ACH Return",ach_return_fee:"ACH Return Fee",dispute:"Dispute",dispute_fee:"Dispute Fee",dispute_fee_refund:"Dispute Fee Refund",dispute_refund:"Dispute Refund",payment:"Payment",payment_fee:"Fee",platform_fee:"Platform Fee",platform_fee_return:"Platform Fee Return",processing_fee:"Processing Fee",processing_fee_return:"Processing Fee Return",refund:"Refund",fee_refund:"Fee Refund",application_fee_returned:"Application Fee Returned",refund_failure:"Refund Failure",void:"Void"},E={created_at:(t,a)=>e("td",{part:P(a)},e("div",{class:"fw-bold"},F(t.created_at,{showDisplayDate:!0})),e("div",{class:"fw-bold"},F(t.created_at,{showTime:!0}))),type:(t,a)=>e("td",{part:P(a)},I[t.payment_balance_txn_type]),id:(t,a)=>e("td",{part:P(a)},t.id),amount:(t,a)=>e("td",{part:P(a),class:"text-end"},t.formattedPaymentAmount(t.amount)),balance:(t,a)=>e("td",{part:P(a),class:"text-end"},t.formattedPaymentAmount(t.balance)),currency:(t,a)=>e("td",{part:P(a)},t.currency),financial_transaction_id:(t,a)=>e("td",{part:P(a)},t.financial_transaction_id),payment_id:(t,a)=>e("td",{part:P(a)},t.payment_id),payment_balance_txn_type:(t,a)=>e("td",{part:P(a)},t.payment_balance_txn_type),source_id:(t,a)=>e("td",{part:P(a)},t.source_id),source_type:(t,a)=>e("td",{part:P(a)},t.source_type)},x=class{constructor(e){t(this,e),this.clickEvent=a(this,"click-event",7),this.errorEvent=a(this,"error-event",7),this.balanceTransactions=[],this.isLoading=!0,this.errorMessage=null,this.paging=n,this.pagingParams={},this.columns="created_at,type,id,amount,balance",this.handleClickPrevious=e=>{this.pagingParams={before_cursor:e},this.clickEvent.emit({name:D.previous})},this.handleClickNext=e=>{this.pagingParams={after_cursor:e},this.clickEvent.emit({name:D.next})},this.rowClickHandler=e=>{const t=e.target.closest("tr").dataset.rowEntityId;if(!t)return;const a=this.balanceTransactions.find((e=>e.id===t));this.clickEvent.emit({name:D.row,data:a})}}componentWillLoad(){this.transactionsTable=new f(this.balanceTransactions,this.columns,R,E),o(),this.analytics=new c(this),this.initializeApi()}disconnectedCallback(){var e;null===(e=this.analytics)||void 0===e||e.cleanup()}propChanged(){this.initializeApi()}handleError(e,t,a){this.isLoading=!1,this.errorEvent.emit({errorCode:e,message:t,severity:a})}initializeApi(){this.paymentId&&this.authToken?(({id:e,authToken:t,service:a})=>async({params:i,onSuccess:n,onError:o,final:c})=>{var d;try{const c=await a.fetchPaymentTransactions(e,t,i);c.error?o({error:h(c.error),code:p(null===(d=c.error)||void 0===d?void 0:d.code),severity:s.ERROR}):n({balanceTransactions:c.data.map((e=>new r(e))),pagingInfo:Object.assign({},c.page_info)})}catch(e){const t=p(null==e?void 0:e.code);o({error:h(e),code:t,severity:s.ERROR})}finally{c()}})({id:this.paymentId,authToken:this.authToken,service:new d})({params:this.pagingParams,onSuccess:({balanceTransactions:e,pagingInfo:t})=>{this.balanceTransactions=e,this.paging=t,this.transactionsTable.collectionData=this.balanceTransactions},onError:({error:e,code:t,severity:a})=>{this.errorMessage=e.message,this.handleError(e,t,a)},final:()=>{this.isLoading=!1}}):(this.errorMessage="payment-id and auth-token props are required",this.handleError(i.MISSING_PROPS,this.errorMessage,s.ERROR))}get entityId(){return this.balanceTransactions.map((e=>e.id))}get showEmptyState(){return!this.isLoading&&!this.errorMessage&&this.transactionsTable.rowData.length<1}get showErrorState(){return!this.isLoading&&!!this.errorMessage}get showRowData(){return!this.showEmptyState&&!this.showErrorState&&!this.isLoading}render(){return e(C,{key:"7aaa611cf9d23ff9244d8df54e57daa3ec08a635"},e(l,{key:"d3f5244cfe909030c6072c7fdc4a5740029a4c17"},e(u,{key:"b0dc2044e5ee11b5d6a8298ed219c33f2bc42a35"},e(m,{key:"6a91d2b6968a6e969be3861c85b829c1ca5f899e"},e(y,{key:"ae84fd9d80b84054bfa1012137affa5c83b2be39"},this.transactionsTable.columnData.map((e=>e)))),e(b,{key:"6a5cdec3190bb80ed3f78f295d07271838260fce"},e(_,{key:"9fef843fa67a8049d77432d75f89446a2abe5ccc",columnSpan:this.transactionsTable.columnKeys.length,isLoading:this.isLoading}),e(g,{key:"3be23e217a98d0b2727dabc783134996ef0f9084",isEmpty:this.showEmptyState,columnSpan:this.transactionsTable.columnKeys.length}),e(j,{key:"791ff61e65fb2f4e6a83f7d5142565b4a89106b5",columnSpan:this.transactionsTable.columnKeys.length,errorMessage:this.errorMessage}),this.showRowData&&this.transactionsTable.rowData.map(((t,a)=>e(T,{"data-test-id":"table-row","data-row-entity-id":this.entityId[a],onClick:this.rowClickHandler},t)))),this.paging&&e(k,{key:"898e2236fbed139f8196452463e3f248c01608d4"},e(w,{key:"9b416e1f6122d095b7516816ed686fe116479512"},e(v,{key:"6a12ce5ee3c5f28058ee5796cb174ef9fa4505b5",colSpan:this.transactionsTable.columnData.length},e("pagination-menu",{key:"06984f04a928213ecbb6b3bf5acd3cb3a48e901f",paging:Object.assign(Object.assign({},this.paging),{handleClickPrevious:this.handleClickPrevious,handleClickNext:this.handleClickNext})})))))))}static get watchers(){return{pagingParams:["propChanged"],paymentId:["propChanged"],authToken:["propChanged"]}}};export{x as justifi_payment_transactions_list}
@@ -1 +0,0 @@
1
- var e={name:"@justifi/webcomponents",version:"6.10.0"};export{e as p}
@@ -1 +0,0 @@
1
- import{r as s,c as t,h as i}from"./p-CV0Pyo1O.js";import{C as e,a as r}from"./p-Cjcsf8ku.js";import{C as o,B as h,c as n}from"./p-BcNb9bVO.js";import{H as a}from"./p-C4FLe2pT.js";import{S as p}from"./p-BqNNwq6C.js";import{H as m}from"./p-BoO2BHR_.js";import"./p-CZfYo5-1.js";import{B as c}from"./p-XYgDHrVL.js";import{P as u}from"./p-C3kbpEIZ.js";import"./p-DqVU8ohH.js";const l=class{constructor(i){s(this,i),this.clickEvent=t(this,"click-event",7),this.errorEvent=t(this,"error-event",7),this.submitEvent=t(this,"submit-event",7),this.loading=!1,this.businessLoading=!0,this.businessProvisioned=!1,this.currentStep=0,this.country=o.USA,this.allowOptionalFields=!1,this.setBusinessProvisioned=()=>new Promise((s=>{this.getBusiness({onSuccess:t=>{const i=new h(t.data);this.businessProvisioned=n(i),this.country=i.country_of_establishment,this.businessProvisioned&&this.errorEvent.emit({message:"A request to provision payments for this business has already been submitted.",errorCode:r.PROVISIONING_REQUESTED,severity:e.INFO}),this.businessLoading=!1,s()},onError:({error:t,code:i,severity:e})=>{this.errorEvent.emit({message:t,errorCode:i,severity:e}),this.businessLoading=!1,s()}})})),this.postProvisioningData=()=>{this.postProvisioning({onSuccess:s=>{this.submitEvent.emit({response:s})},onError:({error:s,code:t,severity:i})=>{this.submitEvent.emit({response:{error:s}}),this.errorEvent.emit({message:s,errorCode:t,severity:i})}})},this.refs=[],this.incrementSteps=()=>{if(this.currentStep<this.totalSteps)return this.currentStep++},this.decrementSteps=()=>this.currentStep--,this.previousStepButtonOnClick=()=>{this.clickEvent.emit({name:c.previousStep}),this.decrementSteps()},this.nextStepButtonOnClick=(s,t)=>{s.preventDefault(),this.clickEvent.emit({name:t}),this.refs[this.currentStep].validateAndSubmit({onSuccess:this.incrementSteps})}}handleFormCompleted(){this.postProvisioningData()}async componentWillLoad(){this.getBusiness?await this.setBusinessProvisioned():this.businessLoading=!1,this.refs=[this.coreInfoRef,this.legalAddressRef,this.additionalQuestionsRef,this.representativeRef,this.ownersRef,this.bankAccountRef,this.termsRef]}get businessEndpoint(){return`entities/business/${this.businessId}`}get formDisabled(){return this.loading||this.businessProvisioned}get totalSteps(){return this.refs.length-1}get stepCounter(){return`Step ${this.currentStep+1} of ${this.totalSteps+1}`}handleFormLoading(s){this.loading=s.detail}render(){return i(p,null,this.businessLoading?i(u,null):i("div",{class:"row gap-3"},i(m,{text:this.formTitle}),i("justifi-payment-provisioning-form-steps",{businessId:this.businessId,authToken:this.authToken,refs:this.refs,currentStep:this.currentStep,allowOptionalFields:this.allowOptionalFields,country:this.country,handleFormLoading:this.handleFormLoading}),i("div",{class:"d-flex justify-content-between align-items-center"},i("div",{class:"d-flex align-items-center",part:a},this.stepCounter),i("justifi-payment-provisioning-form-buttons",{currentStep:this.currentStep,totalSteps:this.totalSteps,formLoading:this.loading,formDisabled:this.formDisabled,previousStepButtonOnClick:this.previousStepButtonOnClick,nextStepButtonOnClick:this.nextStepButtonOnClick}))))}};export{l as justifi_payment_provisioning_core}
@@ -1 +0,0 @@
1
- import{r as s,c as t,h as e,H as i}from"./p-CV0Pyo1O.js";import{C as r,a as n}from"./p-Cjcsf8ku.js";import{m as o,b as a,f as h,g as c}from"./p-R0FDNhyd.js";import{B as d,a as l,D as u}from"./p-DqtDbB8E.js";import{a as m,c as p,b}from"./p-BovgIz83.js";import{F as f,c as v,a as y,b as g,d as w}from"./p-CKiAlBsU.js";import{A as _,C as k,e as j,R as C,f as T}from"./p-BcNb9bVO.js";import{C as O,P as x}from"./p-CVaOFfrI.js";import{J as S,am as I,$ as E,Y as L,aG as A}from"./p-C4FLe2pT.js";import{P as D}from"./p-C3kbpEIZ.js";import{b as B,c as H}from"./p-Bt4GjEWL.js";import{a as P,B as V}from"./p-XYgDHrVL.js";import"./p-DVJaoI_m.js";import"./p-HXpYMWUU.js";import{E as F,p as q,q as W}from"./p-BiNakvsa.js";import"./p-CLHwhyvu.js";import"./p-BH0Xfn-F.js";import{A as Y,B as M,v as N,C as U,D as z,E as R,F as G}from"./p-HT_4DkD0.js";import{B as X}from"./p-DFiTyYE9.js";import"./p-CZfYo5-1.js";import{c as J}from"./p-_-2E_vYf.js";import{d as $,e as Q}from"./p-D8EGHc_m.js";import{A as Z}from"./p-55QcjheA.js";import"./p-D2muobcE.js";import"./p-BFTU3MAI.js";import"./p-DqVU8ohH.js";import"./p-D8GTwl9v.js";import"./p-MeSAYDNh.js";class K{constructor(s){this.id=s.id,this.account_owner_name=s.account_owner_name,this.full_name=s.full_name,this.account_type=s.account_type,this.account_number=s.account_number,this.acct_last_four=s.acct_last_four,this.account_number_last4=s.account_number_last4,this.routing_number=s.routing_number,this.institution_number=s.institution_number,this.transit_number=s.transit_number,this.bank_name=s.bank_name,this.country=s.country,this.currency=s.currency,this.nickname=s.nickname,this.metadata=s.metadata,this.business_id=s.business_id,this.platform_account_id=s.platform_account_id,this.created_at=s.created_at,this.updated_at=s.updated_at}get payload(){return{account_owner_name:this.account_owner_name||"",account_type:this.account_type||"",account_number:this.account_number||"",routing_number:this.routing_number||"",institution_number:this.institution_number||"",transit_number:this.transit_number||"",bank_name:this.bank_name||"",nickname:this.nickname||"",business_id:this.business_id||""}}}const ss=class{constructor(e){s(this,e),this.errorEvent=t(this,"error-event",7),this.stepCompleteEvent=t(this,"complete-form-step-event",7),this.formLoading=t(this,"formLoading",7),this.errors={},this.additional_questions={},this.recurringPayments=!1,this.isLoading=!1,this.getData=()=>{this.formLoading.emit(!0),this.isLoading=!0,this.getBusiness({onSuccess:s=>{this.additional_questions=new _(s.data.additional_questions||{}),this.formController.setInitialValues(Object.assign({},this.additional_questions))},onError:({error:s,code:t,severity:e})=>{this.errorEvent.emit({message:s,errorCode:t,severity:e})},final:()=>{this.formLoading.emit(!1),this.isLoading=!1}})},this.sendData=s=>{let t;this.formLoading.emit(!0),this.patchBusiness({payload:this.patchPayload,onSuccess:e=>{t=e,s()},onError:({error:s,code:e,severity:i})=>{t=s,this.errorEvent.emit({message:s,errorCode:e,severity:i})},final:()=>{this.stepCompleteEvent.emit({response:t,formStep:P.additionalQuestions}),this.formLoading.emit(!1)}})},this.inputHandler=(s,t)=>{this.formController.setValues(Object.assign(Object.assign({},this.formController.values.getValue()),{[s]:t})),this.additional_questions=new _(Object.assign(Object.assign({},this.formController.values.getValue()),{[s]:t}))}}propChanged(){this.initializeApi()}recurringPaymentsWatcher(s){this.recurringPayments="Yes"===(null==s?void 0:s.business_recurring_payments)}async validateAndSubmit({onSuccess:s}){this.formController.validateAndSubmit((()=>this.sendData(s)))}get patchPayload(){return{additional_questions:new _(this.formController.values.getValue()).payload}}componentWillLoad(){this.initializeApi(),this.formController=new f(m(this.allowOptionalFields))}componentDidLoad(){this.getBusiness&&this.getData(),this.formController.errors.subscribe((s=>{this.errors=Object.assign({},s)}))}initializeApi(){this.authToken&&this.businessId?(this.getBusiness=o({authToken:this.authToken,businessId:this.businessId,service:new d}),this.patchBusiness=a({authToken:this.authToken,businessId:this.businessId,service:new d})):this.errorEvent.emit({message:"Missing required props",errorCode:n.MISSING_PROPS,severity:r.ERROR})}render(){var s,t,i,r,n;const o=this.formController.getInitialValues();return this.isLoading?e(D,null):e("form",null,e("fieldset",null,e("div",{class:"d-flex align-items-center gap-2"},e("legend",{class:"mb-0",part:S},"Additional Questions"),e("form-control-tooltip",{helpText:"This information helps us understand the business and identify and monitor trends to safeguard you and your customers."})),e("hr",{class:"mt-2"}),e("div",{class:"row gy-3"},e("div",{class:"col-12 col-md-6"},e("form-control-monetary-provisioning",{name:"business_revenue",label:"What is your business' estimated annual revenue from its primary business activities?",inputHandler:this.inputHandler,errorText:null===(s=this.errors)||void 0===s?void 0:s.business_revenue,defaultValue:null==o?void 0:o.business_revenue,maskOptions:O.WHOLE})),e("div",{class:"col-12 col-md-6"},e("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:null===(t=this.errors)||void 0===t?void 0:t.business_payment_volume,defaultValue:null==o?void 0:o.business_payment_volume,maskOptions:O.WHOLE})),e("div",{class:"col-12"},e("form-control-text",{name:"business_average_transaction_amount",label:"What is your average transaction size?",inputHandler:this.inputHandler,errorText:null===(i=this.errors)||void 0===i?void 0:i.business_average_transaction_amount,defaultValue:null==o?void 0:o.business_average_transaction_amount})),e("div",{class:"col-12"},e("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:null===(r=this.errors)||void 0===r?void 0:r.business_when_service_received,options:B,defaultValue:null==o?void 0:o.business_when_service_received})),e("div",{class:"col-12"},e("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:null===(n=this.errors)||void 0===n?void 0:n.business_other_payment_details,defaultValue:null==o?void 0:o.business_other_payment_details})))))}static get watchers(){return{authToken:["propChanged"],businessId:["propChanged"],additional_questions:["recurringPaymentsWatcher"]}}},ts=(s,t)=>s.some((s=>s.document_type===t)),es=s=>s?{bank_name:z.nullable(),nickname:U.nullable(),account_owner_name:N.nullable(),account_type:M.nullable(),account_number:Y.nullable()}:{bank_name:z.required("Enter bank name"),nickname:U.required("Enter nickname"),account_owner_name:N.required("Enter account owner name"),account_type:M.required("Select account type"),account_number:Y.required("Enter account number")},is=(s,t)=>{if(t)return{voided_check:g().nullable(),bank_statement:g().nullable()};const e=ts(s,F.voidedCheck),i=ts(s,F.bankStatement),r=e||i,n="Please upload either a voided check or a bank statement. Only one is required.";return{voided_check:g().when("bank_statement",{is:s=>!s&&!r,then:s=>s.required(n),otherwise:s=>s.notRequired()}),bank_statement:g().when("voided_check",{is:s=>!s&&!r,then:s=>s.required(n),otherwise:s=>s.notRequired()})}},rs={[k.USA]:(s,t=[])=>((s,t)=>{const e=Object.assign(Object.assign(Object.assign({},es(t)),(s=>s?{routing_number:G.nullable()}:{routing_number:G.required("Enter routing number")})(t)),is(s,t));return v().shape(e,[["voided_check","bank_statement"]])})(t,s),[k.CAN]:(s,t=[])=>((s,t)=>{const e=Object.assign(Object.assign(Object.assign({},es(t)),(s=>{const t=y().length(3,"Institution number must be 3 digits").matches(R,"Enter valid institution number"),e=y().length(5,"Transit number must be 5 digits").matches(R,"Enter valid transit number");return s?{institution_number:t.nullable(),transit_number:e.nullable()}:{institution_number:t.required("Enter institution number"),transit_number:e.required("Enter transit number")}})(t)),is(s,t));return v().shape(e,[["voided_check","bank_statement"]])})(t,s)},ns=class{constructor(e){s(this,e),this.errorEvent=t(this,"error-event",7),this.stepCompleteEvent=t(this,"complete-form-step-event",7),this.formLoading=t(this,"formLoading",7),this.errors={},this.bankAccount={},this.existingDocuments=[],this.documentData=new q,this.isLoading=!1,this.isAddingNewBankAccount=!0,this.bankAccountVerification=!1,this.platformAccountId=null,this.getSchema=()=>(0,rs[this.country])(this.allowOptionalFields,this.existingDocuments),this.initializeFormController=()=>{this.formController=new f(this.getSchema()),this.formController.setInitialValues(this.isAddingNewBankAccount?{business_id:this.businessId}:Object.assign({},this.bankAccount)),this.formController.errors.subscribe((s=>{this.errors=Object.assign({},s)}))},this.inputHandler=(s,t)=>{this.formController.setValues(Object.assign(Object.assign({},this.formController.values.getValue()),{[s]:t}))},this.storeFiles=s=>{const t=Array.from(s.detail.fileList),e=s.detail.document_type,i=t.map((s=>new W({file:s,document_type:e},this.businessId)));this.documentData[e]=i},this.getData=()=>{this.isLoading=!0,this.getBusiness({onSuccess:s=>{if(s.data.bank_accounts.length>0){const t=s.data.bank_accounts;this.bankAccount=new K(t[t.length-1]),this.isAddingNewBankAccount=!1}else this.bankAccount=new K({}),this.bankAccount.business_id=this.businessId;this.existingDocuments=s.data.documents,this.bankAccountVerification=!0===s.data.settings.bank_account_verification,this.platformAccountId=s.data.platform_account_id},onError:({error:s,code:t,severity:e})=>{this.errorEvent.emit({message:s,errorCode:t,severity:e})},final:()=>{this.initializeFormController(),this.isLoading=!1}})},this.handleChangeBankAccount=()=>{this.isAddingNewBankAccount=!0,this.documentData=new q,this.initializeFormController()},this.handleCancel=()=>{this.isAddingNewBankAccount=!1,this.documentData=new q,this.initializeFormController()},this.handleSaveBankAccount=async()=>{this.formController.validateAndSubmit((()=>{this.sendData((()=>{}))}))},this.postDocumentRecordData=async s=>{this.isLoading=!0;const t=s.record_data;return new Promise((e=>{this.postDocumentRecord({payload:t,onSuccess:t=>{e(this.handleDocRecordResponse(s,t))},onError:({error:s,code:t,severity:i})=>{this.errorEvent.emit({message:s,errorCode:t,severity:i}),e(!1)}})}))},this.handleDocRecordResponse=(s,t)=>t.error?(this.errorEvent.emit({errorCode:n.POST_ERROR,message:t.error.message,severity:r.ERROR,data:t.error}),!1):(s.setPresignedUrl(t.data.presigned_url),!0),this.uploadDocument=async s=>{if(!s.presigned_url)throw new Error("Presigned URL is not set");const t=await s.getFileData(),e=await fetch(s.presigned_url,{method:"PUT",body:t});return this.handleUploadResponse(e)},this.handleUploadResponse=s=>!s.error||(this.errorEvent.emit({errorCode:n.POST_ERROR,message:s.error.message,severity:r.ERROR,data:s.error}),!1)}propChanged(){this.initializeApi()}watchHandler(s){this.formLoading.emit(s)}async validateAndSubmit({onSuccess:s}){this.existingBankAccount&&!this.isAddingNewBankAccount?this.sendData(s):this.formController.validateAndSubmit((()=>this.sendData(s)))}componentWillLoad(){this.initializeApi(),this.getBusiness&&this.getData(),this.formController=new f(this.getSchema())}componentDidLoad(){this.formController.errors.subscribe((s=>{this.errors=Object.assign({},s)}))}initializeApi(){this.authToken&&this.businessId?(this.getBusiness=o({authToken:this.authToken,businessId:this.businessId,service:new d}),this.postBankAccount=h({authToken:this.authToken,service:new l}),this.postDocumentRecord=c({authToken:this.authToken,service:new u})):this.errorEvent.emit({message:"Missing required props",errorCode:n.MISSING_PROPS,severity:r.ERROR})}get postPayload(){const s=this.formController.values.getValue();return new K(s).payload}get existingBankAccount(){var s;return!!(null===(s=this.bankAccount)||void 0===s?void 0:s.id)}get showReadOnlyView(){return this.existingBankAccount&&!this.isAddingNewBankAccount}async sendData(s){try{if(this.isAddingNewBankAccount&&!await this.postBankAccountData())return;if(!await this.postBusinessDocuments())return;this.isAddingNewBankAccount&&(this.isAddingNewBankAccount=!1,await this.refreshBankAccountData()),s()}catch(s){this.errorEvent.emit({message:s,errorCode:n.POST_ERROR,severity:r.ERROR})}}async postBankAccountData(){let s;return this.isLoading=!0,new Promise((t=>{let e=!1;this.postBankAccount({payload:this.postPayload,onSuccess:t=>{s=t,e=!0},onError:({error:s,code:t,severity:i})=>{e=!1,this.errorEvent.emit({message:s,errorCode:t,severity:i})},final:()=>{this.stepCompleteEvent.emit({response:s,formStep:P.bankAccount}),this.isLoading=!1,t(e)}})}))}async refreshBankAccountData(){return new Promise((s=>{this.isLoading=!0,this.getBusiness({onSuccess:s=>{const{data:t}=s,{bank_accounts:e,documents:i,settings:r,platform_account_id:n}=t;e.length>0&&(this.bankAccount=new K(e[e.length-1])),this.existingDocuments=i,this.bankAccountVerification=!0===r.bank_account_verification,this.platformAccountId=n,this.initializeFormController()},onError:({error:s,code:t,severity:e})=>{this.errorEvent.emit({message:s,errorCode:t,severity:e})},final:()=>{this.isLoading=!1,s()}})}))}async postBusinessDocuments(){this.isLoading=!0;try{const s=Object.values(this.documentData).flat();return!s.length||!(await Promise.all(s.map((s=>this.postDocumentRecordData(s))))).includes(!1)&&!(await Promise.all(s.map((s=>this.uploadDocument(s))))).includes(!1)}finally{this.isLoading=!1}}render(){const s=this.formController.getInitialValues(),t=this.bankAccountVerification&&this.platformAccountId;return this.isLoading?e(D,null):e("form",null,e("fieldset",{class:"mb-4"},e("div",{class:"d-flex align-items-center gap-2"},e("legend",{class:"mb-0",part:S},"Bank Account Info"),e("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."})),e("hr",{class:"mt-2"}),t&&e("div",{class:"mt-3"},e("plaid-verification",{authToken:this.authToken,accountId:this.platformAccountId,businessId:this.businessId,onPlaidVerificationSuccess:()=>{this.isAddingNewBankAccount=!1,this.refreshBankAccountData()}})),e(this.country===k.CAN?"bank-account-form-inputs-canada":"bank-account-form-inputs",{defaultValue:s,errors:this.errors,inputHandler:this.inputHandler,formDisabled:this.showReadOnlyView}),this.showReadOnlyView&&e("div",{class:"mt-3"},e(X,{variant:"secondary",type:"button",onClick:this.handleChangeBankAccount,disabled:this.isLoading,part:I},"Change Bank Account")),(!this.existingBankAccount||this.isAddingNewBankAccount)&&e("div",{class:"mt-3 d-flex gap-2"},this.isAddingNewBankAccount&&e(X,{variant:"secondary",type:"button",onClick:this.handleCancel,disabled:this.isLoading,part:I},"Cancel"),e(X,{variant:"primary",type:"button",onClick:this.handleSaveBankAccount,disabled:this.isLoading,isLoading:this.isLoading},"Save Bank Account"))),e("fieldset",{class:"mt-4"},e("div",{class:"d-flex align-items-center gap-2"},e("legend",{class:"mb-0",part:S},"Document Uploads"),e("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."})),e("hr",{class:"mt-2"}),e("business-documents-on-file",{documents:this.existingDocuments,isLoading:this.isLoading}),e("bank-account-document-form-inputs",{inputHandler:this.inputHandler,errors:this.errors,storeFiles:this.storeFiles})))}static get watchers(){return{authToken:["propChanged"],businessId:["propChanged"],isLoading:["watchHandler"]}}},os=class{constructor(e){s(this,e),this.errorEvent=t(this,"error-event",7),this.stepCompleteEvent=t(this,"complete-form-step-event",7),this.formLoading=t(this,"formLoading",7),this.errors={},this.coreInfo={},this.isLoading=!1,this.isEditingTaxId=!1,this.getData=()=>{this.getBusiness&&(this.formLoading.emit(!0),this.isLoading=!0,this.getBusiness({onSuccess:s=>{this.coreInfo=new j(s.data),this.formController.setInitialValues(Object.assign({},this.coreInfo))},onError:({error:s,code:t,severity:e})=>{this.errorEvent.emit({message:s,errorCode:t,severity:e})},final:()=>{this.formLoading.emit(!1),this.isLoading=!1}}))},this.sendData=s=>{let t;this.formLoading.emit(!0),this.patchBusiness({payload:this.patchPayload,onSuccess:e=>{t=e,s(),this.isEditingTaxId=!1},onError:({error:s,code:e,severity:i,rawError:r})=>{t=s,r&&"object"==typeof r&&r.param&&this.formController.setFieldError(r.param,r.message),this.errorEvent.emit({message:s,errorCode:e,severity:i})},final:()=>{this.stepCompleteEvent.emit({response:t,formStep:P.businessInfo}),this.formLoading.emit(!1)}})},this.inputHandler=(s,t)=>{this.errors[s]&&this.formController.clearFieldError(s),this.formController.setValues(Object.assign(Object.assign({},this.formController.values.getValue()),{[s]:t}))}}propChanged(){this.initializeApi()}async validateAndSubmit({onSuccess:s}){this.formController.validateAndSubmit((()=>this.sendData(s)))}get patchPayload(){return new j(this.formController.values.getValue()).payload}componentWillLoad(){this.initializeApi();const s=this.country===k.CAN?p(this.allowOptionalFields):b(this.allowOptionalFields);this.formController=new f(s),this.getData()}componentDidLoad(){this.formController.errors.subscribe((s=>{this.errors=Object.assign({},s)}))}initializeApi(){this.authToken&&this.businessId?(this.getBusiness=o({authToken:this.authToken,businessId:this.businessId,service:new d}),this.patchBusiness=a({authToken:this.authToken,businessId:this.businessId,service:new d})):this.errorEvent.emit({message:"Missing required props",errorCode:n.MISSING_PROPS,severity:r.ERROR})}render(){var s,t;const i=this.formController.getInitialValues();return this.isLoading?e(D,null):e("form",null,e("fieldset",null,e("div",{class:"d-flex align-items-center gap-2"},e("legend",{class:"mb-0",part:S},"Business Information")),e("hr",{class:"mt-2"}),e("div",{class:"row gy-3"},e("div",{class:"col-12"},e("form-control-text",{name:"legal_name",label:"Business Name",defaultValue:i.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)."})),e("div",{class:"col-12"},e("form-control-text",{name:"doing_business_as",label:"Doing Business As (DBA)",defaultValue:i.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)"})),e("div",{class:"col-12 col-md-8"},e("form-control-select",{name:"classification",label:"Business Classification",options:H,defaultValue:i.classification,errorText:this.errors.classification,inputHandler:this.inputHandler})),e("div",{class:"col-12 col-md-4"},e("form-control-date",{name:"date_of_incorporation",label:"Date of Registration",defaultValue:i.date_of_incorporation,errorText:this.errors.date_of_incorporation,inputHandler:this.inputHandler})),e("div",{class:"col-12 col-md-6"},e("form-control-text",{name:"industry",label:"Industry",defaultValue:i.industry,errorText:this.errors.industry,inputHandler:this.inputHandler,helpText:"Describe what you sell"})),e("div",{class:"col-12 col-md-6"},!(null===(s=this.coreInfo)||void 0===s?void 0:s.tax_id_last4)||this.isEditingTaxId?e("form-control-number-masked",{name:"tax_id",label:J[this.country].taxIdLabel,defaultValue:this.isEditingTaxId?"":i.tax_id,errorText:this.errors.tax_id,inputHandler:this.inputHandler,mask:"000000000",helpText:J[this.country].taxIdHelpText}):e("div",null,e("label",{class:"form-label",part:E},J[this.country].taxIdLabel),e("div",{class:"input-group mb-3"},e("input",{type:"text",class:"form-control",part:L,value:`****${null===(t=this.coreInfo)||void 0===t?void 0:t.tax_id_last4}`,disabled:!0}),e("button",{class:"btn btn-secondary",type:"button",part:I,onClick:()=>{this.isEditingTaxId=!0,this.formController.setValues(Object.assign(Object.assign({},this.formController.values.getValue()),{tax_id:"",tax_id_last4:null}))}},"Change")))),e("div",{class:"col-12"},e("form-control-text",{name:"website_url",label:"Business Website URL",defaultValue:i.website_url,errorText:this.errors.website_url,inputHandler:this.inputHandler,helpText:"Don't have a live website? You can use your social media business page, app store link, or staging site URL."})),e("div",{class:"col-12 col-md-6"},e("form-control-text",{name:"email",label:"Business Email Address",defaultValue:i.email,errorText:this.errors.email,inputHandler:this.inputHandler})),e("div",{class:"col-12 col-md-6"},e("form-control-number-masked",{name:"phone",label:"Business Phone Number",defaultValue:i.phone,errorText:this.errors.phone,inputHandler:this.inputHandler,mask:x.US})))))}static get watchers(){return{authToken:["propChanged"],businessId:["propChanged"]}}},as=class{constructor(e){s(this,e),this.clickEvent=t(this,"click-event",7),this.stepCompleteEvent=t(this,"complete-form-step-event",7),this.errorEvent=t(this,"error-event",7),this.formLoading=t(this,"formLoading",7),this.ownersPayload=[],this.refs=[],this.isLoading=!1,this.representativeIsOwner=null,this.matchRef=(s,t)=>{if(null===s)return;const e=this.ownersPayload.findIndex((s=>s.id===t));-1!==e&&(this.refs.length!==this.ownersPayload.length&&this.manageRefs(),this.refs[e]=s)},this.getData=()=>{this.formLoading.emit(!0),this.isLoading=!0,this.getBusiness({onSuccess:s=>{this.representative=new C(s.data.representative||{}),s.data.owners.length?this.ownersPayload=s.data.owners.map((s=>({id:s.id}))):this.addOwnerForm()},onError:({error:s,code:t,severity:e})=>{this.errorEvent.emit({message:s,errorCode:t,severity:e})},final:()=>{this.formLoading.emit(!1),this.isLoading=!1,this.manageRefs()}})},this.sendData=async s=>{let t;this.formLoading.emit(!0),this.patchBusiness({payload:{owners:this.ownersPayload},onSuccess:e=>{t=e,s()},onError:({error:s,code:e,severity:i})=>{t=s,this.errorEvent.emit({message:s,errorCode:e,severity:i})},final:()=>{this.stepCompleteEvent.emit({response:t,formStep:P.owners}),this.formLoading.emit(!1)}})},this.addOwnerForm=s=>{this.newFormOpen=!0,this.ownersPayload=[...this.ownersPayload,{id:""}],s&&this.clickEvent.emit({name:V.addOwnerForm})},this.removeOwnerForm=s=>{this.ownersPayload=this.ownersPayload.filter((t=>t.id!==s)),this.newFormOpen&&(this.newFormOpen=!1)},this.handleRepresentativeIsOwnerChange=s=>{this.representativeIsOwner=s,this.representativeIsOwner&&(this.ownersPayload=this.ownersPayload.filter((s=>""!==s.id)),this.patchBusiness({payload:{owners:[{id:this.representative.id},...this.ownersPayload]},onSuccess:()=>{this.getData(),this.newFormOpen=!1}}))}}propChanged(){this.initializeApi()}get showAddOwnerButton(){return this.ownersPayload.length<4&&!this.newFormOpen}manageRefs(){this.refs=this.ownersPayload.map((s=>s.id))}async validateAndSubmit({onSuccess:s}){const t=this.refs.map((s=>s.validate()));if(!(await Promise.all(t)).every((s=>s)))return;const e=this.refs.map((s=>s.submit()));(await Promise.all(e)).every((s=>s))&&this.sendData(s)}componentWillLoad(){this.initializeApi(),this.getBusiness&&this.getData()}initializeApi(){this.authToken&&this.businessId?(this.getBusiness=o({authToken:this.authToken,businessId:this.businessId,service:new d}),this.patchBusiness=a({authToken:this.authToken,businessId:this.businessId,service:new d})):this.errorEvent.emit({message:"Missing required props",errorCode:n.MISSING_PROPS,severity:r.ERROR})}ownersWatcher(){this.manageRefs()}handleOwnerSubmit(s){const t=s.detail,e=this.ownersPayload.map((s=>s.id===t.id?t:s));e.includes(t)||(e[this.ownersPayload.findIndex((s=>!s.id))]=t,this.newFormOpen&&(this.newFormOpen=!1)),this.ownersPayload=e}render(){if(this.isLoading)return e(i,null,e(D,null));const s=this.ownersPayload.some((s=>s.id===this.representative.id)),t=null===this.representativeIsOwner&&!s;return e(i,null,e("div",null,e("div",{class:"d-flex align-items-center gap-2"},e("legend",{class:"mb-0",part:S},"Owners"),e("form-control-tooltip",{helpText:"For partnerships, LLCs or privately held corporations, the business is required to apply with all individuals with 25% or more ownership to the application. For charities and registered non-profits, the business is required to apply with 1 individual with substantial control over the entity, such as a board member or director."})),e("hr",{class:"mt-2"}),t&&e("div",{class:"alert alert-warning mb-3",part:A},e("div",{class:"card-body"},e("div",{class:"d-flex align-items-center mb-3"},e("strong",null,"Is the representative of this business also an owner?")),e("div",{class:"d-flex gap-2"},e(X,{variant:"primary",onClick:()=>this.handleRepresentativeIsOwnerChange(!0)},"Yes"),e(X,{variant:"secondary",onClick:()=>this.handleRepresentativeIsOwnerChange(!1)},"No")))),e("div",{class:"row gy-3"},this.ownersPayload.map((s=>e("justifi-owner-form",{key:s.id,authToken:this.authToken,businessId:this.businessId,ownerId:s.id,removeOwner:this.removeOwnerForm,newFormOpen:this.newFormOpen,ownersLength:this.ownersPayload.length,country:this.country,allowOptionalFields:this.allowOptionalFields,ref:t=>this.matchRef(t,s.id)})))),e("div",{class:"d-flex justify-content-start"},e("div",{class:"gap-2"},e(X,{variant:"primary",onClick:()=>this.addOwnerForm(!0),hidden:!this.showAddOwnerButton},"Add Owner")))))}static get watchers(){return{authToken:["propChanged"],businessId:["propChanged"],ownersPayload:["ownersWatcher"]}}},hs=class{constructor(e){s(this,e),this.errorEvent=t(this,"error-event",7),this.stepCompleteEvent=t(this,"complete-form-step-event",7),this.formLoading=t(this,"formLoading",7),this.errors={},this.representative={},this.isLoading=!1,this.getData=()=>{this.getBusiness&&this.formController&&(this.formLoading.emit(!0),this.isLoading=!0,this.getBusiness({onSuccess:s=>{this.representative=new C(s.data.representative||{}),this.representative.address.country=this.country,this.formController.setInitialValues(Object.assign({},this.representative))},onError:({error:s,code:t,severity:e})=>{this.errorEvent.emit({message:s,errorCode:t,severity:e})},final:()=>{this.formLoading.emit(!1),this.isLoading=!1}}))},this.sendData=s=>{let t;this.formLoading.emit(!0),this.patchBusiness({payload:this.patchPayload,onSuccess:e=>{t=e,s()},onError:({error:s,code:e,severity:i})=>{t=s,this.errorEvent.emit({message:s,errorCode:e,severity:i})},final:()=>{this.stepCompleteEvent.emit({response:t,formStep:P.representative}),this.formLoading.emit(!1)}})}}propChanged(){this.initializeApi(),this.getData()}async validateAndSubmit({onSuccess:s}){this.formController.validateAndSubmit((()=>this.sendData(s)))}componentWillLoad(){this.initializeApi(),this.initializeForm()}initializeApi(){this.authToken&&this.businessId?(this.getBusiness=o({authToken:this.authToken,businessId:this.businessId,service:new d}),this.patchBusiness=a({authToken:this.authToken,businessId:this.businessId,service:new d})):this.errorEvent.emit({message:"Missing required props",errorCode:n.MISSING_PROPS,severity:r.ERROR})}initializeForm(){const s=$[this.country];s?(this.formController=new f(s("representative",this.allowOptionalFields)),this.getData()):this.errorEvent.emit({message:"Missing schema for selected country",errorCode:n.MISSING_PROPS,severity:r.ERROR})}componentDidLoad(){this.formController&&this.formController.errors.subscribe((s=>{this.errors=Object.assign({},s)}))}get patchPayload(){return{representative:new C(this.formController.values.getValue()).payload}}render(){return!this.formController||this.isLoading?e(D,null):e("justifi-business-representative-form-inputs",{representativeDefaultValue:this.formController.getInitialValues(),errors:this.errors,formController:this.formController,country:this.country})}static get watchers(){return{authToken:["propChanged"],businessId:["propChanged"]}}},cs=class{constructor(e){s(this,e),this.stepCompleteEvent=t(this,"complete-form-step-event",7),this.errorEvent=t(this,"error-event",7),this.formLoading=t(this,"formLoading",7),this.formCompleted=t(this,"formCompleted",7),this.errors={},this.fetchData=async()=>{this.formLoading.emit(!0);try{const s=await this.api.get({endpoint:this.businessEndpoint,authToken:this.authToken});this.acceptedTermsBefore=s.data.terms_conditions_accepted}catch(s){this.errorEvent.emit({errorCode:n.FETCH_ERROR,message:s.message,severity:r.ERROR,data:s})}finally{this.formLoading.emit(!1)}},this.sendData=async s=>{this.formLoading.emit(!0);try{const t=this.termsPayload,e=await this.api.post({endpoint:this.termsConditionsEndpoint,body:t,authToken:this.authToken});this.handleResponse(e,s)}catch(s){this.errorEvent.emit({errorCode:n.POST_ERROR,message:s.message,severity:r.ERROR,data:s})}finally{this.formLoading.emit(!1)}},this.inputHandler=(s,t)=>{this.acceptedTerms=t,this.formController.setValues(Object.assign(Object.assign({},this.formController.values.getValue()),{[s]:t}))}}get businessEndpoint(){return`entities/business/${this.businessId}`}get termsConditionsEndpoint(){return"entities/terms_and_conditions"}get formHelperText(){return this.acceptedTermsBefore?"You have already accepted the terms and conditions.":null}get termsPayload(){return{business_id:this.businessId,accepted:this.formController.values.getValue().accepted,user_agent:window.navigator.userAgent}}async componentWillLoad(){this.api=Z(),this.formController=new f((s=>{const t=v({accepted:w().oneOf([!0],"You must agree to the terms and conditions to continue").required("You must agree to the terms and conditions to continue")}),e=v({accepted:w().nullable()});return s?e:t})(this.allowOptionalFields)),this.businessId&&this.authToken&&this.fetchData()}handleResponse(s,t){s.error?this.errorEvent.emit({errorCode:n.POST_ERROR,message:s.error.message,severity:r.ERROR,data:s.error}):t(),this.stepCompleteEvent.emit({response:s,formStep:P.termsAndConditions}),this.formCompleted.emit()}async validateAndSubmit({onSuccess:s}){this.acceptedTermsBefore?(this.stepCompleteEvent.emit({response:null,formStep:P.termsAndConditions,metadata:"no data submitted"}),this.formCompleted.emit(),s()):this.formController.validateAndSubmit((()=>this.sendData(s)))}componentDidLoad(){this.formController.errors.subscribe((s=>{this.errors=Object.assign({},s)}))}get merchantAgreementLink(){return e("a",{href:"https://justifi.tech/merchant-agreement/",target:"_blank",rel:"noopener noreferrer"},"merchant agreement")}render(){return e("form",{key:"33336d0a66d63ce39951822fd570a9a0689e714d"},e("fieldset",{key:"fcfdb59eef671cb408ed99e2dad20d6be706688a"},e("legend",{key:"f0cf7f0ac15c90cf36ee25d4bf986c0e781a2e92",part:S},"Terms and Conditions"),e("hr",{key:"d5c820e7d6523f931040a994bd103d69fd644c45"}),e("div",{key:"681b584de14afe121f5dc69ee0bad1cab51ba0d1"},e("p",{key:"7c597bf891a108d303739126b806ded5220f56ab"},"Please read and accept the ",this.merchantAgreementLink," to submit your provisioning request.")),e("br",{key:"52854c5a07611180be40df21a5f60d7d9d4c4cb7"}),e("div",{key:"7448b3f6138b996edac137b961367725e3b40556",class:"row-gy-3"},e("div",{key:"c732deb4e1e3a2d04dd4e09914543a7f594af108",class:"col-12"},e("form-control-checkbox",{key:"fca18e4843aef20d13790029b114b2ecaeb6ffa2",name:"accepted",label:"I agree to the terms and conditions",inputHandler:this.inputHandler,errorText:this.errors.accepted,disabled:this.acceptedTermsBefore,helpText:this.formHelperText,checked:this.acceptedTerms})))))}},ds=class{constructor(e){s(this,e),this.errorEvent=t(this,"error-event",7),this.stepCompleteEvent=t(this,"complete-form-step-event",7),this.formLoading=t(this,"formLoading",7),this.errors={},this.legal_address={},this.isLoading=!1,this.getData=()=>{this.getBusiness&&(this.formLoading.emit(!0),this.isLoading=!0,this.getBusiness({onSuccess:s=>{const t=new T((s.data||{}).legal_address||{});this.legal_address=Object.assign(Object.assign({},t),{country:this.country}),this.formController.setInitialValues(Object.assign({},this.legal_address))},onError:({error:s,code:t,severity:e})=>{this.errorEvent.emit({message:s,errorCode:t,severity:e})},final:()=>{this.formLoading.emit(!1),this.isLoading=!1}}))},this.sendData=s=>{let t;this.formLoading.emit(!0),this.patchBusiness({payload:this.patchPayload,onSuccess:e=>{t=e,s()},onError:({error:s,code:e,severity:i})=>{t=s,this.errorEvent.emit({message:s,errorCode:e,severity:i})},final:()=>{this.stepCompleteEvent.emit({response:t,formStep:P.legalAddress}),this.formLoading.emit(!1)}})},this.inputHandler=(s,t)=>{this.formController.setValues(Object.assign(Object.assign({},this.formController.values.getValue()),{[s]:t}))}}propChanged(){this.initializeApi()}async validateAndSubmit({onSuccess:s}){this.formController.validateAndSubmit((()=>this.sendData(s)))}get patchPayload(){return{legal_address:new T(this.formController.values.getValue()).payload}}componentWillLoad(){this.initializeApi(),this.formController=new f((0,Q[this.country])(this.allowOptionalFields)),this.getData()}componentDidLoad(){this.formController.errors.subscribe((s=>{this.errors=Object.assign({},s)}))}initializeApi(){this.authToken&&this.businessId?(this.getBusiness=o({authToken:this.authToken,businessId:this.businessId,service:new d}),this.patchBusiness=a({authToken:this.authToken,businessId:this.businessId,service:new d})):this.errorEvent.emit({message:"Missing required props",errorCode:n.MISSING_PROPS,severity:r.ERROR})}render(){var s;const t=null===(s=this.formController)||void 0===s?void 0:s.getInitialValues();return this.isLoading?e(D,null):e("form",null,e("fieldset",null,e("div",{class:"d-flex align-items-center gap-2"},e("legend",{class:"mb-0",part:S},"Legal Address of your Business"),e("form-control-tooltip",{helpText:"No PO Boxes."})),e("hr",{class:"mt-2"}),e("justifi-form-address-fields",{country:this.country,errors:this.errors,defaultValues:t,inputHandler:this.inputHandler})))}static get watchers(){return{authToken:["propChanged"],businessId:["propChanged"]}}},ls=class{constructor(t){s(this,t)}get showPreviousStepButton(){return this.currentStep>0}get showNextStepButton(){return this.currentStep<this.totalSteps}get showSubmitButton(){return this.currentStep===this.totalSteps}render(){return e("div",{key:"53ba6c809e1968712b333f4bcf2798dbca186ddb",class:"d-flex gap-2"},e(X,{key:"b45c60083ccf6589cae0c63ce6b66c18da340dc7",variant:"secondary",type:"button",onClick:()=>this.previousStepButtonOnClick(),disabled:this.formDisabled,hidden:!this.showPreviousStepButton},"Previous"),e(X,{key:"27372798da0276de44d1563a4688486e7cc91d64",variant:"primary",type:"button",onClick:s=>this.nextStepButtonOnClick(s,V.nextStep),disabled:this.formDisabled,isLoading:this.formLoading,hidden:!this.showNextStepButton},"Next"),e(X,{key:"8bc14ca8fe951caf276f8ed03e502486e11acbe2",variant:"primary",type:"submit",onClick:s=>this.nextStepButtonOnClick(s,V.submit),disabled:this.formDisabled,isLoading:this.formLoading,hidden:!this.showSubmitButton},"Submit"))}},us=class{constructor(t){s(this,t),this.allowOptionalFields=!1,this.country=k.USA,this.componentStepMapping={0:()=>e("justifi-business-core-info-form-step",{businessId:this.businessId,authToken:this.authToken,ref:s=>this.refs[0]=s,allowOptionalFields:this.allowOptionalFields,country:this.country}),1:()=>e("justifi-legal-address-form-step",{businessId:this.businessId,authToken:this.authToken,ref:s=>this.refs[1]=s,allowOptionalFields:this.allowOptionalFields,country:this.country}),2:()=>e("justifi-additional-questions-form-step",{businessId:this.businessId,authToken:this.authToken,ref:s=>this.refs[2]=s,allowOptionalFields:this.allowOptionalFields}),3:()=>e("justifi-business-representative-form-step",{businessId:this.businessId,authToken:this.authToken,ref:s=>this.refs[3]=s,allowOptionalFields:this.allowOptionalFields,country:this.country}),4:()=>e("justifi-business-owners-form-step",{businessId:this.businessId,authToken:this.authToken,ref:s=>this.refs[4]=s,allowOptionalFields:this.allowOptionalFields,country:this.country}),5:()=>e("justifi-business-bank-account-form-step",{businessId:this.businessId,authToken:this.authToken,ref:s=>this.refs[5]=s,allowOptionalFields:this.allowOptionalFields,country:this.country}),6:()=>e("justifi-business-terms-conditions-form-step",{businessId:this.businessId,authToken:this.authToken,ref:s=>this.refs[6]=s,onFormLoading:this.handleFormLoading,allowOptionalFields:this.allowOptionalFields})}}get currentStepComponent(){return this.componentStepMapping[this.currentStep]()}render(){return e("div",{key:"ff7c9e688009383fdbe18c9824fa578d2338900c",class:"col-12 mb-4"},this.currentStepComponent)}};export{ss as justifi_additional_questions_form_step,ns as justifi_business_bank_account_form_step,os as justifi_business_core_info_form_step,as as justifi_business_owners_form_step,hs as justifi_business_representative_form_step,cs as justifi_business_terms_conditions_form_step,ds as justifi_legal_address_form_step,ls as justifi_payment_provisioning_form_buttons,us as justifi_payment_provisioning_form_steps}