@tesouro/embedded-components-react 0.3.13 → 0.3.14

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 (52) hide show
  1. package/dist/index.d.ts +30 -30
  2. package/dist/index.js +1 -1
  3. package/dist/lib/BillPayWidget.js +1 -1
  4. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index.js +6 -6
  5. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index28.js +2 -1
  6. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index30.js +23 -205
  7. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index31.js +200 -185
  8. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index32.js +199 -50
  9. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index33.js +105 -13
  10. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index34.js +12 -46
  11. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index35.js +46 -30
  12. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index36.js +26 -158
  13. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index37.js +162 -31
  14. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index38.js +32 -98
  15. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index39.js +102 -13
  16. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index40.js +13 -242
  17. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index41.js +247 -4
  18. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index42.js +4 -30
  19. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index43.js +28 -82
  20. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index44.js +76 -137
  21. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index45.js +145 -3
  22. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index46.js +3 -4
  23. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index47.js +2 -43
  24. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index48.js +45 -1
  25. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index49.js +1 -8
  26. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index50.js +6 -9
  27. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index51.js +9 -92
  28. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index52.js +94 -3
  29. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index53.js +3 -9
  30. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index54.js +7 -20
  31. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index55.js +14 -51
  32. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index56.js +59 -3
  33. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index57.js +3 -110
  34. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index58.js +107 -8
  35. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index59.js +8 -40
  36. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index60.js +38 -15
  37. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index61.js +18 -98
  38. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index62.js +92 -173
  39. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index63.js +180 -4
  40. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index64.js +5 -8
  41. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index65.js +6 -112
  42. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index66.js +114 -1
  43. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index67.js +0 -24
  44. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index68.js +25 -0
  45. package/dist/libs/tesouro-embedded-components-react/shared/counterpart-management/feature/dist/index.js +9 -9
  46. package/dist/libs/tesouro-embedded-components-react/shared/counterpart-management/feature/dist/lib/helpers.js +6 -3
  47. package/dist/libs/tesouro-embedded-components-react/shared/counterpart-management/feature/dist/lib/useCounterpartDetails.js +1 -0
  48. package/dist/libs/tesouro-embedded-components-react/shared/counterpart-management/feature/dist/lib/useCounterpartForm.js +1 -1
  49. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/zod.gen.js +1028 -1019
  50. package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
  51. package/dist/libs/tesouro-embedded-components-react/widget-suite/feature/dist/index7.js +1 -1
  52. package/package.json +1 -1
@@ -2,197 +2,212 @@
2
2
  "use client";
3
3
  "use client";
4
4
  "use client";
5
- import { maskAccountNumber as e } from "./index5.js";
6
- import { usePayableSuggestionsQuery as t } from "../../data-access/dist/index14.js";
7
- import "../../data-access/dist/index.js";
8
- import { VENDOR_SECTION_PROPS_LABELS_EN as n } from "./index28.js";
9
- import { counterpartFormBankAccountToCreatePayload as ee, counterpartFormBankAccountToUpdatePayload as r, getAchInstructions as i, getCounterpartEmail as a, getCounterpartName as o, getPayableAchInstructions as s, hasAchFormValues as c, resolveCounterpartBankAccountWrite as te, validateAchFormValues as ne } from "../../../shared/counterpart-management/feature/dist/lib/helpers.js";
10
- import { useCounterpartsQuery as re } from "../../../shared/counterpart-management/data-access/dist/index3.js";
11
- import { useCreateCounterpartBankAccountMutation as ie, useUpdateCounterpartBankAccountMutation as l } from "../../../shared/counterpart-management/data-access/dist/index5.js";
12
- import { useCounterpartDetails as ae } from "../../../shared/counterpart-management/feature/dist/lib/useCounterpartDetails.js";
5
+ import { Button as e } from "../../../../../packages/shared-ui-shadcn/dist/index.js";
6
+ import { getStateOptions as t } from "../../../shared/util/dist/lib/usStates.js";
7
+ import { AchFieldGroup as n } from "../../../shared/counterpart-management/ui/dist/index5.js";
8
+ import { CounterpartFormFields as r, useFocusFirstInvalidField as i } from "../../../shared/counterpart-management/ui/dist/index9.js";
9
+ import { VENDOR_INLINE_FORM_LABELS_EN as a } from "./index28.js";
10
+ import { COUNTERPART_MESSAGE_LABELS_EN as o } from "../../../shared/counterpart-management/feature/dist/lib/labels.js";
11
+ import { useCounterpartForm as s } from "../../../shared/counterpart-management/feature/dist/lib/useCounterpartForm.js";
13
12
  import "../../../shared/counterpart-management/feature/dist/index.js";
14
- import { VendorInlineForm as oe } from "./index30.js";
15
- import { useCallback as u, useEffect as d, useMemo as f, useRef as p, useState as m } from "react";
16
- import { jsx as h } from "react/jsx-runtime";
13
+ import { useCallback as c, useEffect as l, useMemo as u, useRef as d, useState as f } from "react";
14
+ import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
15
+ import { Landmark as g, Plus as _, X as v } from "lucide-react";
17
16
  //#region ../../libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index31.js
18
- var se = 10, ce = 300, g = {
19
- accountHolderName: "",
20
- routingNumber: "",
21
- accountNumber: ""
22
- };
23
- function _({ payableId: _, counterpartId: v, payableCounterpartId: y, onCounterpartChange: b, requiredError: x, labels: S }) {
24
- let C = {
25
- ...n,
26
- ...S
27
- }, [w, T] = m(""), [E, D] = m(""), [O, k] = m(), [le, A] = m(!1), [j, M] = m(g), N = p(j);
28
- N.current = j;
29
- let [ue, P] = m(!1), F = c(j) || ue, [I, L] = m(), [R, z] = m(), B = p(v), [V, H] = m(!1), U = u(() => {
30
- A(!1), M(g), L(void 0), z(void 0);
31
- }, []), W = u((e) => {
32
- H(!0), b(e);
33
- }, [b]), G = t(_, { enabled: !!_ && !v && !y }).data?.suggested_counterpart?.id;
34
- d(() => {
35
- !V && !v && !y && G && W(G);
17
+ function y({ mode: y, counterpart: b, primaryAddress: x, bankAccounts: S, isBankAccountsLoading: C, isBankAccountsError: w, initialName: T, initialValues: E, onSaved: D, onCancel: O, onDirtyChange: k, labels: A }) {
18
+ let j = {
19
+ ...a,
20
+ ...A
21
+ }, [M, N] = f("none"), [P, F] = f(b?.id), [I, L] = f(!1), [R, z] = f(!1);
22
+ l(() => {
23
+ k?.(R);
24
+ }, [R, k]);
25
+ let B = u(() => t(), []), V = d(M), H = d(!1), U = s({
26
+ view: M,
27
+ setView: N,
28
+ selectedId: P,
29
+ setSelectedId: F,
30
+ messages: o,
31
+ counterpartType: "vendor",
32
+ counterpart: b,
33
+ primaryAddress: x,
34
+ bankAccounts: S,
35
+ isBankAccountsLoading: C,
36
+ isBankAccountsError: w
37
+ }), { openCreate: W, openEdit: G, setValues: K, expandAddress: q } = U, J = i(U.errors);
38
+ l(() => {
39
+ y === "edit" ? G() : W();
36
40
  }, [
37
- v,
38
41
  y,
39
- V,
40
- G,
41
- W
42
- ]), d(() => {
43
- B.current !== v && (B.current = v, U());
44
- }, [v, U]), d(() => {
45
- let e = setTimeout(() => {
46
- D(w.trim());
47
- }, ce);
48
- return () => clearTimeout(e);
49
- }, [w]);
50
- let K = re({
51
- sort: "counterpart_name",
52
- order: "asc",
53
- limit: se,
54
- counterpart_name__icontains: E || void 0,
55
- is_vendor: !0,
56
- enabled: !!E
57
- }), q = ae({ selectedId: v }), J = ie(), Y = l(), X = f(() => {
58
- let t = q.counterpart;
59
- if (!t) return;
60
- if (q.isBankAccountsLoading) return {
61
- name: o(t),
62
- email: a(t),
63
- methodLabel: C.paymentMethodLoading,
64
- fields: []
65
- };
66
- if (q.isBankAccountsError) return {
67
- name: o(t),
68
- email: a(t),
69
- methodLabel: C.paymentMethodUnavailable,
70
- fields: []
71
- };
72
- let n = s(q.bankAccounts);
73
- return {
74
- name: o(t),
75
- email: a(t),
76
- methodLabel: n ? C.achMethod : C.noMethod,
77
- fields: n ? [
78
- {
79
- label: C.accountHolder,
80
- value: n.account_holder_name ?? ""
81
- },
82
- {
83
- label: C.routingNumber,
84
- value: n.routing_number ?? ""
85
- },
86
- {
87
- label: C.accountNumber,
88
- value: n.account_number ?? "",
89
- maskedValue: n.account_number ? e(n.account_number) : ""
90
- }
91
- ] : []
92
- };
42
+ W,
43
+ G
44
+ ]), l(() => {
45
+ V.current !== "none" && M === "none" && P && D(P), V.current = M;
93
46
  }, [
94
- q.bankAccounts,
95
- q.counterpart,
96
- q.isBankAccountsError,
97
- q.isBankAccountsLoading,
98
- C
99
- ]), Z = f(() => i(q.bankAccounts), [q.bankAccounts]), Q = u(async () => {
100
- let e = N.current;
101
- if (!v || !c(e)) return !0;
102
- if (q.isBankAccountsLoading || q.isBankAccountsError) return !1;
103
- let t = ne(e);
104
- if (Object.keys(t).length > 0) return L(t), A(!0), !1;
105
- L(void 0);
106
- let n = te(q.bankAccounts, R ?? Z?.id);
107
- if (n.kind === "update") return await Y.mutateAsync({
108
- path: {
109
- counterpart_id: v,
110
- bank_account_id: n.bankAccountId
111
- },
112
- body: r(e, { includeAchDefaults: n.includeAchDefaults })
113
- }), z(n.bankAccountId), !0;
114
- let i = await J.mutateAsync({
115
- path: { counterpart_id: v },
116
- body: ee(e)
117
- });
118
- return z(i?.id), !0;
47
+ M,
48
+ P,
49
+ D
50
+ ]), l(() => {
51
+ y !== "create" || H.current || (H.current = !0, K((e) => ({
52
+ ...e,
53
+ entityType: "organization",
54
+ legalName: T?.trim() || E?.legalName || e.legalName,
55
+ email: E?.email || e.email,
56
+ phone: E?.phone || e.phone,
57
+ address: E?.address ?? e.address
58
+ })), E?.address && Object.values(E.address).some(Boolean) && q());
119
59
  }, [
120
- Z,
121
- v,
122
- J,
123
- q.bankAccounts,
124
- q.isBankAccountsError,
125
- q.isBankAccountsLoading,
126
- R,
127
- Y
128
- ]), de = f(() => (K.data?.data ?? []).map((e) => ({
129
- name: o(e),
130
- email: a(e),
131
- onSelect: () => W(e.id)
132
- })), [K.data, W]), $ = u(() => {
133
- k(void 0), P(!1);
134
- }, []), fe = u((e) => {
135
- k(void 0), P(!1), W(e);
136
- }, [W]);
137
- if (O) return {
138
- mode: "creating",
139
- newVendorForm: /* @__PURE__ */ h(oe, {
140
- mode: O,
141
- counterpart: O === "edit" ? q.counterpart : void 0,
142
- primaryAddress: O === "edit" ? q.primaryAddress : void 0,
143
- bankAccounts: O === "edit" ? q.bankAccounts : void 0,
144
- isBankAccountsLoading: O === "edit" ? q.isBankAccountsLoading : void 0,
145
- isBankAccountsError: O === "edit" ? q.isBankAccountsError : void 0,
146
- initialName: O === "create" ? w : void 0,
147
- onSaved: fe,
148
- onCancel: $,
149
- onDirtyChange: P
150
- }),
151
- onClear: $,
152
- hasUnsavedVendorChanges: F
153
- };
154
- if (X) {
155
- let e = q.isBankAccountsLoading || q.isBankAccountsError;
156
- return {
157
- mode: "resolved",
158
- summary: X,
159
- onEdit: e ? void 0 : () => k("edit"),
160
- onClear: () => W(void 0),
161
- paymentInstructions: e ? void 0 : {
162
- isOpen: le,
163
- values: j,
164
- errors: I,
165
- onOpen: () => {
166
- A(!0), Z && (M({
167
- accountHolderName: Z.account_holder_name ?? "",
168
- routingNumber: Z.routing_number ?? "",
169
- accountNumber: Z.account_number ?? ""
170
- }), z(Z.id));
171
- },
172
- onChange: (e) => {
173
- M((t) => ({
60
+ y,
61
+ T,
62
+ E,
63
+ K,
64
+ q
65
+ ]), l(() => {
66
+ y === "edit" && (U.values.bankAccount.routingNumber || U.values.bankAccount.accountNumber) && L(!0);
67
+ }, [
68
+ y,
69
+ U.values.bankAccount.accountNumber,
70
+ U.values.bankAccount.routingNumber
71
+ ]), l(() => {
72
+ U.sectionsToExpand.bankAccount && L(!0);
73
+ }, [U.sectionsToExpand.bankAccount]);
74
+ let Y = c((e) => {
75
+ z(!0), K((t) => e.entityType === "individual" && t.entityType !== "individual" ? {
76
+ ...t,
77
+ ...e,
78
+ firstName: t.firstName || t.legalName,
79
+ legalName: t.legalName
80
+ } : e.entityType === "organization" && t.entityType !== "organization" ? {
81
+ ...t,
82
+ ...e,
83
+ legalName: t.legalName || [t.firstName, t.lastName].filter(Boolean).join(" ")
84
+ } : {
85
+ ...t,
86
+ ...e
87
+ });
88
+ }, [K]);
89
+ return /* @__PURE__ */ h("div", {
90
+ ref: J,
91
+ className: "ttw:flex ttw:flex-col ttw:gap-4 ttw:rounded-lg ttw:border ttw:border-border ttw:bg-card ttw:p-4",
92
+ children: [
93
+ /* @__PURE__ */ h("div", {
94
+ className: "ttw:flex ttw:items-start ttw:justify-between ttw:gap-2",
95
+ children: [/* @__PURE__ */ m("p", {
96
+ className: "ttw:text-base ttw:font-semibold ttw:text-foreground",
97
+ children: y === "edit" ? j.editTitle : j.createTitle
98
+ }), /* @__PURE__ */ m(e, {
99
+ type: "button",
100
+ variant: "ghost",
101
+ size: "icon",
102
+ "aria-label": j.close,
103
+ onClick: O,
104
+ children: /* @__PURE__ */ m(v, { className: "ttw:size-4" })
105
+ })]
106
+ }),
107
+ /* @__PURE__ */ m(r, {
108
+ mode: y,
109
+ counterpartMode: "vendor",
110
+ values: U.values,
111
+ errors: U.errors,
112
+ stateOptions: B,
113
+ onChange: Y,
114
+ onAddressChange: (e) => {
115
+ z(!0), K((t) => ({
174
116
  ...t,
175
- ...e
176
- })), L(void 0);
177
- }
178
- },
179
- savePaymentInstructions: Q,
180
- hasUnsavedVendorChanges: F
181
- };
182
- }
183
- return {
184
- mode: "selecting",
185
- error: K.isError ? C.searchFailed : q.isError ? C.vendorDetailsFailed : x,
186
- search: {
187
- query: w,
188
- onQueryChange: T,
189
- isLoading: K.isLoading,
190
- onAddVendor: () => k("create"),
191
- results: de
192
- },
193
- savePaymentInstructions: Q,
194
- hasUnsavedVendorChanges: F
195
- };
117
+ address: {
118
+ ...t.address,
119
+ ...e
120
+ }
121
+ }));
122
+ },
123
+ sections: {
124
+ entityType: !0,
125
+ profileHeading: !1,
126
+ title: !1,
127
+ taxId: !1,
128
+ address: "collapsible",
129
+ bankAccount: !1
130
+ },
131
+ sectionsToExpand: U.sectionsToExpand,
132
+ onAddressExpand: U.expandAddress,
133
+ labels: { businessNameLabel: j.nameLabel }
134
+ }),
135
+ /* @__PURE__ */ h("div", {
136
+ className: "ttw:flex ttw:flex-col ttw:gap-1",
137
+ children: [/* @__PURE__ */ m("p", {
138
+ className: "ttw:text-sm ttw:font-semibold ttw:text-foreground",
139
+ children: j.paymentMethodsHeading
140
+ }), /* @__PURE__ */ m("p", {
141
+ className: "ttw:text-sm ttw:text-muted-foreground",
142
+ children: j.paymentMethodsDescription
143
+ })]
144
+ }),
145
+ /* @__PURE__ */ h("div", {
146
+ className: "ttw:flex ttw:gap-3 ttw:rounded-lg ttw:border ttw:border-border ttw:p-3",
147
+ children: [/* @__PURE__ */ m("span", {
148
+ className: "ttw:flex ttw:size-8 ttw:shrink-0 ttw:items-center ttw:justify-center ttw:rounded-md ttw:bg-primary",
149
+ children: /* @__PURE__ */ m(g, {
150
+ "aria-hidden": !0,
151
+ className: "ttw:size-4 ttw:text-white"
152
+ })
153
+ }), /* @__PURE__ */ h("div", {
154
+ className: "ttw:flex ttw:flex-1 ttw:flex-col ttw:gap-3",
155
+ children: [/* @__PURE__ */ h("div", {
156
+ className: "ttw:flex ttw:flex-col ttw:gap-0.5",
157
+ children: [/* @__PURE__ */ m("p", {
158
+ className: "ttw:text-sm ttw:font-medium ttw:text-foreground",
159
+ children: j.achTitle
160
+ }), /* @__PURE__ */ m("p", {
161
+ className: "ttw:text-sm ttw:text-muted-foreground",
162
+ children: j.achDescription
163
+ })]
164
+ }), I ? /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m(n, {
165
+ idPrefix: "vendor-inline-ach",
166
+ values: U.values.bankAccount,
167
+ errors: U.errors?.bankAccount,
168
+ onChange: (e) => {
169
+ z(!0), K((t) => ({
170
+ ...t,
171
+ bankAccount: {
172
+ ...t.bankAccount,
173
+ ...e
174
+ }
175
+ }));
176
+ },
177
+ labels: {
178
+ accountHolderName: j.accountHolderNameLabel,
179
+ routingNumber: j.routingNumberLabel,
180
+ accountNumber: j.accountNumberLabel
181
+ }
182
+ }), /* @__PURE__ */ m("p", {
183
+ className: "ttw:text-sm ttw:text-muted-foreground",
184
+ children: j.achHelp
185
+ })] }) : /* @__PURE__ */ h(e, {
186
+ type: "button",
187
+ variant: "link",
188
+ className: "ttw:w-fit ttw:px-0",
189
+ onClick: () => L(!0),
190
+ children: [/* @__PURE__ */ m(_, { className: "ttw:size-4" }), j.addBankAccount]
191
+ })]
192
+ })]
193
+ }),
194
+ /* @__PURE__ */ h("div", {
195
+ className: "ttw:flex ttw:justify-end ttw:gap-2",
196
+ children: [/* @__PURE__ */ m(e, {
197
+ type: "button",
198
+ variant: "outline",
199
+ onClick: O,
200
+ children: j.cancel
201
+ }), /* @__PURE__ */ m(e, {
202
+ type: "button",
203
+ onClick: U.submit,
204
+ loading: U.isSubmitting,
205
+ disabled: U.isSubmitting,
206
+ children: j.save
207
+ })]
208
+ })
209
+ ]
210
+ });
196
211
  }
197
212
  //#endregion
198
- export { _ as useVendorSectionProps };
213
+ export { y as VendorInlineForm, y as default };
@@ -2,67 +2,216 @@
2
2
  "use client";
3
3
  "use client";
4
4
  "use client";
5
- import { toast as e } from "../../../../../packages/shared-ui-shadcn/dist/index.js";
6
- import "../../../shared/ui/dist/index.js";
7
- import { useUpdatePayableMutation as t } from "../../data-access/dist/index10.js";
5
+ import { maskAccountNumber as e } from "./index5.js";
6
+ import { usePayableSuggestionsQuery as t } from "../../data-access/dist/index14.js";
8
7
  import "../../data-access/dist/index.js";
9
- import { counterpartFormBankAccountToCreatePayload as n, validateAchFormValues as r } from "../../../shared/counterpart-management/feature/dist/lib/helpers.js";
10
- import { useCreateCounterpartBankAccountMutation as i } from "../../../shared/counterpart-management/data-access/dist/index5.js";
8
+ import { VENDOR_SECTION_PROPS_LABELS_EN as n } from "./index28.js";
9
+ import { buildVendorPrefill as r } from "./index30.js";
10
+ import { counterpartFormBankAccountToCreatePayload as i, counterpartFormBankAccountToUpdatePayload as ee, getAchInstructions as te, getCounterpartEmail as a, getCounterpartName as o, getPayableAchInstructions as s, hasAchFormValues as c, resolveCounterpartBankAccountWrite as ne, validateAchFormValues as re } from "../../../shared/counterpart-management/feature/dist/lib/helpers.js";
11
+ import { useCounterpartsQuery as ie } from "../../../shared/counterpart-management/data-access/dist/index3.js";
12
+ import { useCreateCounterpartBankAccountMutation as ae, useUpdateCounterpartBankAccountMutation as l } from "../../../shared/counterpart-management/data-access/dist/index5.js";
13
+ import { useCounterpartDetails as u } from "../../../shared/counterpart-management/feature/dist/lib/useCounterpartDetails.js";
11
14
  import "../../../shared/counterpart-management/feature/dist/index.js";
12
- import { useCallback as a, useRef as o, useState as s } from "react";
15
+ import { VendorInlineForm as oe } from "./index31.js";
16
+ import { useCallback as d, useEffect as f, useMemo as p, useRef as m, useState as h } from "react";
17
+ import { jsx as se } from "react/jsx-runtime";
13
18
  //#region ../../libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index32.js
14
- var c = {
19
+ var ce = 10, le = 300, g = {
15
20
  accountHolderName: "",
16
21
  routingNumber: "",
17
22
  accountNumber: ""
18
23
  };
19
- function l({ payableId: l, counterpartId: u, saveErrorMessage: d }) {
20
- let [f, p] = s(!1), [m, h] = s(c), [g, _] = s(), v = i(), y = t(), b = o(void 0), x = a(() => {
21
- h(c), _(void 0), b.current = void 0, p(!0);
22
- }, []), S = a(() => {
23
- p(!1);
24
- }, []), C = a((e) => {
25
- h((t) => ({
26
- ...t,
27
- ...e
28
- }));
29
- }, []), w = a(async () => {
30
- if (!l || !u) return !1;
31
- let t = r(m);
32
- if (Object.keys(t).length > 0) return _(t), !1;
33
- try {
34
- if (!b.current) {
35
- let e = await v.mutateAsync({
36
- path: { counterpart_id: u },
37
- body: n(m)
38
- });
39
- b.current = e.id;
40
- }
41
- return await y.mutateAsync({
42
- path: { payable_id: l },
43
- body: { counterpart_bank_account_id: b.current }
44
- }), b.current = void 0, p(!1), !0;
45
- } catch {
46
- return e.error(d), !1;
47
- }
24
+ function _({ payableId: _, counterpartId: v, payableCounterpartId: y, payableCounterpartBankAccountId: b, onCounterpartChange: x, requiredError: ue, extractedVendor: S, labels: de }) {
25
+ let C = {
26
+ ...n,
27
+ ...de
28
+ }, [w, T] = h(""), [E, fe] = h(""), [D, O] = h(), [k, A] = h(!1), [j, M] = h(g), N = m(j);
29
+ N.current = j;
30
+ let [pe, P] = h(!1), F = c(j) || pe, [I, L] = h(), [R, z] = h(), B = m(v), [V, me] = h(!1), H = d(() => {
31
+ A(!1), M(g), L(void 0), z(void 0);
32
+ }, []), U = d((e) => {
33
+ me(!0), x(e);
34
+ }, [x]), W = t(_, { enabled: !!_ && !v && !y }).data?.suggested_counterpart?.id;
35
+ f(() => {
36
+ !V && !v && !y && W && U(W);
48
37
  }, [
49
- u,
50
38
  v,
51
- l,
52
- d,
53
39
  y,
54
- m
55
- ]);
40
+ V,
41
+ W,
42
+ U
43
+ ]), f(() => {
44
+ B.current !== v && (B.current = v, H());
45
+ }, [v, H]), f(() => {
46
+ let e = setTimeout(() => {
47
+ fe(w.trim());
48
+ }, le);
49
+ return () => clearTimeout(e);
50
+ }, [w]);
51
+ let G = ie({
52
+ sort: "counterpart_name",
53
+ order: "asc",
54
+ limit: ce,
55
+ counterpart_name__icontains: E || void 0,
56
+ is_vendor: !0,
57
+ enabled: !!E
58
+ }), K = u({ selectedId: v }), q = ae(), J = l(), Y = p(() => {
59
+ let t = K.counterpart;
60
+ if (!t) return;
61
+ if (K.isBankAccountsLoading) return {
62
+ name: o(t),
63
+ email: a(t),
64
+ methodLabel: C.paymentMethodLoading,
65
+ fields: []
66
+ };
67
+ if (K.isBankAccountsError) return {
68
+ name: o(t),
69
+ email: a(t),
70
+ methodLabel: C.paymentMethodUnavailable,
71
+ fields: []
72
+ };
73
+ let n = s(K.bankAccounts);
74
+ return {
75
+ name: o(t),
76
+ email: a(t),
77
+ methodLabel: n ? C.achMethod : C.noMethod,
78
+ fields: n ? [
79
+ {
80
+ label: C.accountHolder,
81
+ value: n.account_holder_name ?? ""
82
+ },
83
+ {
84
+ label: C.routingNumber,
85
+ value: n.routing_number ?? ""
86
+ },
87
+ {
88
+ label: C.accountNumber,
89
+ value: n.account_number ?? "",
90
+ maskedValue: n.account_number ? e(n.account_number) : ""
91
+ }
92
+ ] : []
93
+ };
94
+ }, [
95
+ K.bankAccounts,
96
+ K.counterpart,
97
+ K.isBankAccountsError,
98
+ K.isBankAccountsLoading,
99
+ C
100
+ ]), X = p(() => te(K.bankAccounts), [K.bankAccounts]), Z = p(() => s(K.bankAccounts)?.id, [K.bankAccounts]), Q = d(async () => {
101
+ let e = N.current;
102
+ if (!v) return { ok: !0 };
103
+ if (!c(e)) return b && v === y ? {
104
+ ok: !0,
105
+ counterpartBankAccountId: b
106
+ } : K.isBankAccountsLoading || K.isBankAccountsFetching || K.isBankAccountsError ? { ok: !1 } : {
107
+ ok: !0,
108
+ counterpartBankAccountId: Z
109
+ };
110
+ if (K.isBankAccountsLoading || K.isBankAccountsFetching || K.isBankAccountsError) return { ok: !1 };
111
+ let t = re(e);
112
+ if (Object.keys(t).length > 0) return L(t), A(!0), { ok: !1 };
113
+ L(void 0);
114
+ let n = ne(K.bankAccounts, R ?? X?.id);
115
+ if (n.kind === "update") return await J.mutateAsync({
116
+ path: {
117
+ counterpart_id: v,
118
+ bank_account_id: n.bankAccountId
119
+ },
120
+ body: ee(e, { includeAchDefaults: n.includeAchDefaults })
121
+ }), z(n.bankAccountId), {
122
+ ok: !0,
123
+ counterpartBankAccountId: n.bankAccountId
124
+ };
125
+ let r = await q.mutateAsync({
126
+ path: { counterpart_id: v },
127
+ body: i(e, { isDefaultForCurrency: n.isDefaultForCurrency })
128
+ });
129
+ return z(r?.id), {
130
+ ok: !0,
131
+ counterpartBankAccountId: r?.id
132
+ };
133
+ }, [
134
+ X,
135
+ v,
136
+ q,
137
+ K.bankAccounts,
138
+ K.isBankAccountsError,
139
+ K.isBankAccountsFetching,
140
+ K.isBankAccountsLoading,
141
+ R,
142
+ Z,
143
+ b,
144
+ y,
145
+ J
146
+ ]), he = p(() => (G.data?.data ?? []).map((e) => ({
147
+ name: o(e),
148
+ email: a(e),
149
+ onSelect: () => U(e.id)
150
+ })), [G.data, U]), ge = p(() => r(S), [S]), $ = d(() => {
151
+ O(void 0), P(!1);
152
+ }, []), _e = d((e) => {
153
+ O(void 0), P(!1), U(e);
154
+ }, [U]);
155
+ if (D) return {
156
+ mode: "creating",
157
+ newVendorForm: /* @__PURE__ */ se(oe, {
158
+ mode: D,
159
+ counterpart: D === "edit" ? K.counterpart : void 0,
160
+ primaryAddress: D === "edit" ? K.primaryAddress : void 0,
161
+ bankAccounts: D === "edit" ? K.bankAccounts : void 0,
162
+ isBankAccountsLoading: D === "edit" ? K.isBankAccountsLoading : void 0,
163
+ isBankAccountsError: D === "edit" ? K.isBankAccountsError : void 0,
164
+ initialName: D === "create" ? w : void 0,
165
+ initialValues: D === "create" ? ge : void 0,
166
+ onSaved: _e,
167
+ onCancel: $,
168
+ onDirtyChange: P
169
+ }),
170
+ onClear: $,
171
+ hasUnsavedVendorChanges: F
172
+ };
173
+ if (Y) {
174
+ let e = K.isBankAccountsLoading || K.isBankAccountsFetching || K.isBankAccountsError;
175
+ return {
176
+ mode: "resolved",
177
+ summary: Y,
178
+ onEdit: e ? void 0 : () => O("edit"),
179
+ onClear: () => U(void 0),
180
+ paymentInstructions: e ? void 0 : {
181
+ isOpen: k,
182
+ values: j,
183
+ errors: I,
184
+ onOpen: () => {
185
+ A(!0), X && (M({
186
+ accountHolderName: X.account_holder_name ?? "",
187
+ routingNumber: X.routing_number ?? "",
188
+ accountNumber: X.account_number ?? ""
189
+ }), z(X.id));
190
+ },
191
+ onChange: (e) => {
192
+ M((t) => ({
193
+ ...t,
194
+ ...e
195
+ })), L(void 0);
196
+ }
197
+ },
198
+ savePaymentInstructions: Q,
199
+ hasUnsavedVendorChanges: F
200
+ };
201
+ }
56
202
  return {
57
- isOpen: f,
58
- values: m,
59
- errors: g,
60
- isSaving: v.isPending || y.isPending,
61
- open: x,
62
- close: S,
63
- onChange: C,
64
- save: w
203
+ mode: "selecting",
204
+ error: G.isError ? C.searchFailed : K.isError ? C.vendorDetailsFailed : ue,
205
+ search: {
206
+ query: w,
207
+ onQueryChange: T,
208
+ isLoading: G.isLoading,
209
+ onAddVendor: () => O("create"),
210
+ results: he
211
+ },
212
+ savePaymentInstructions: Q,
213
+ hasUnsavedVendorChanges: F
65
214
  };
66
215
  }
67
216
  //#endregion
68
- export { l as usePaymentInstructionsForm };
217
+ export { _ as useVendorSectionProps };