@tesouro/embedded-components-react 0.5.227 → 0.5.230

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 (90) hide show
  1. package/README.md +22 -21
  2. package/dist/index.d.ts +87 -34
  3. package/dist/index.js +1 -1
  4. package/dist/lib/ReceivablesWidget.d.ts +87 -34
  5. package/dist/lib/ReceivablesWidget.js +1 -1
  6. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index.js +5 -5
  7. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index10.js +29 -59
  8. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index11.js +1 -1
  9. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index5.js +32 -33
  10. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index6.js +34 -32
  11. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index7.js +1 -1
  12. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index.js +1 -1
  13. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index10.js +120 -52
  14. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index11.js +44 -100
  15. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index12.js +93 -442
  16. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index13.js +356 -201
  17. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index14.js +225 -157
  18. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index15.js +152 -21
  19. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index16.js +18 -221
  20. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index17.js +220 -31
  21. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index18.js +125 -124
  22. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index19.js +58 -150
  23. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index20.js +232 -46
  24. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index21.js +303 -122
  25. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index22.js +43 -58
  26. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index23.js +125 -98
  27. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index24.js +140 -106
  28. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index25.js +46 -232
  29. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index26.js +119 -29
  30. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index27.js +81 -613
  31. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index28.js +116 -39
  32. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index29.js +27 -33
  33. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index30.js +634 -72
  34. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index31.js +39 -119
  35. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index32.js +36 -317
  36. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index33.js +82 -0
  37. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index34.js +139 -0
  38. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index35.js +340 -0
  39. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index5.js +1 -1
  40. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index7.js +15 -2
  41. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index8.js +55 -468
  42. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index9.js +443 -97
  43. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index.js +24 -22
  44. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index10.js +32 -2
  45. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index11.js +205 -84
  46. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index12.js +161 -3
  47. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index13.js +12 -20
  48. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index14.js +25 -1
  49. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index15.js +4 -3
  50. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index16.js +95 -3
  51. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index17.js +3 -18
  52. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index18.js +24 -1
  53. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index19.js +42 -4
  54. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index2.js +14 -7
  55. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index20.js +19 -12
  56. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index21.js +73 -1
  57. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index22.js +17 -261
  58. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index23.js +12 -44
  59. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index24.js +28 -68
  60. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index25.js +288 -479
  61. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index26.js +1 -106
  62. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index27.js +48 -0
  63. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index28.js +72 -2
  64. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index29.js +496 -4
  65. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index3.js +121 -27
  66. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index30.js +106 -1
  67. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index32.js +2 -28
  68. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index33.js +4 -236
  69. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index34.js +0 -2
  70. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index35.js +90 -239
  71. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index36.js +24 -89
  72. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index37.js +231 -54
  73. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index38.js +3 -353
  74. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index39.js +249 -0
  75. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index4.js +100 -207
  76. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index40.js +93 -0
  77. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index41.js +59 -0
  78. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index42.js +353 -0
  79. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index5.js +35 -29
  80. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index6.js +2 -216
  81. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index7.js +9 -159
  82. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index8.js +27 -14
  83. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index9.js +216 -23
  84. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/index.js +40 -40
  85. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/@tanstack/react-query.gen.js +189 -211
  86. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/sdk.gen.js +43 -59
  87. package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
  88. package/dist/libs/tesouro-embedded-components-react/shared/product-catalog/feature/dist/index.js +12 -12
  89. package/package.json +1 -1
  90. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index31.js +0 -100
@@ -1,104 +1,131 @@
1
- "use client";
2
- "use client";
3
- "use client";
4
- "use client";
5
- import { toast as e } from "../../../../../packages/shared-ui-shadcn/dist/index.js";
6
- import { extractApiErrorMessage as t } from "../../../shared/util/dist/lib/apiErrors.js";
7
- import "../../../shared/ui/dist/index.js";
8
- import { useWidgetConfig as n } from "../../../shared/feature/dist/lib/WidgetProvider/hooks.js";
9
- import "../../../shared/feature/dist/index.js";
10
- import { useCreateEntityBankAccountMutation as r, usePaymentAccountsQuery as i } from "../../data-access/dist/index3.js";
11
- import "../../data-access/dist/index.js";
12
- import { EMPTY_BANK_ACCOUNT_FORM_VALUES as a, bankAccountFormToPayload as o, buildBankAccountSectionView as s, buildPaymentAccountOptions as c, getBankAccountPermissions as l, validateBankAccountForm as u } from "./index22.js";
13
- import { useCallback as d, useEffect as f, useMemo as p, useRef as m, useState as h } from "react";
14
1
  //#region ../../libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index23.js
15
- function g({ open: g, bankAccountId: _, embeddedBankName: v, messages: y, onSelect: b }) {
16
- let { initResponse: x } = n(), S = p(() => l(x?.scopes), [x?.scopes]), { paymentAccounts: C, isLoading: w, isIncomplete: T } = i({
17
- enabled: g,
18
- canReadEmbedded: S.canReadEmbedded,
19
- canReadExternal: S.canReadExternal
20
- }), E = r(), [D, O] = h(!1), [k, A] = h(a), [j, M] = h({}), N = m(!1), P = d(() => {
21
- N.current = !1, O(!1), A(a), M({});
22
- }, []);
23
- f(() => {
24
- if (!g || T || N.current || C.length !== 1) return;
25
- let [e] = C;
26
- N.current = !0, b({
27
- bankAccountId: e.id,
28
- bankAccountType: e.type
29
- });
30
- }, [
31
- T,
32
- b,
33
- g,
34
- C
35
- ]);
36
- let F = d((e) => {
37
- let t = C.find((t) => t.id === e);
38
- t && b({
39
- bankAccountId: t.id,
40
- bankAccountType: t.type
41
- });
42
- }, [b, C]), I = d(() => O(!0), []), L = d(() => {
43
- O(!1), A(a), M({});
44
- }, []), R = d((e) => A((t) => ({
45
- ...t,
46
- ...e
47
- })), []), z = d(async () => {
48
- let n = u(k, y);
49
- if (M(n), !(Object.keys(n).length > 0)) try {
50
- let t = await E.mutateAsync({ body: o(k) });
51
- O(!1), A(a), b({
52
- bankAccountId: t.id,
53
- bankAccountType: "BANK_DETAILS"
54
- }), e.success(y.bankAccountCreated.replace("{name}", t.display_name ?? ""));
55
- } catch (n) {
56
- e.error(t(n) ?? y.bankAccountCreateFailed);
2
+ var e = {
3
+ invoice: [
4
+ "ReceivableFacadeCreateQuotePayload",
5
+ "ReceivableCreateBasedOnPayload",
6
+ "UpdateQuotePayload",
7
+ "UpdateCreditNotePayload",
8
+ "UpdateIssuedInvoicePayload"
9
+ ],
10
+ quote: [
11
+ "ReceivableFacadeCreateInvoicePayload",
12
+ "ReceivableCreateBasedOnPayload",
13
+ "UpdateInvoicePayload",
14
+ "UpdateCreditNotePayload",
15
+ "UpdateIssuedInvoicePayload"
16
+ ]
17
+ }, t = {
18
+ counterpart_id: "customerId",
19
+ counterpart_billing_address_id: "customerId",
20
+ counterpart_shipping_address_id: "customerId",
21
+ bank_account_id: "bankAccountId",
22
+ bank_account_type: "bankAccountId",
23
+ payment_terms_id: "paymentTermsId",
24
+ "payment_terms.term_final.end_date": "paymentTermsId",
25
+ "payment_terms.term_final.number_of_days": "paymentTermsId",
26
+ memo: "openingNote",
27
+ footer: "closingNote",
28
+ "discount.amount": "discount"
29
+ }, n = {
30
+ quantity: "quantity",
31
+ "product.name": "name",
32
+ "product.price.value": "price",
33
+ "product.price.currency": "price",
34
+ "product.measure_unit.name": "measureUnit"
35
+ }, r = (e) => typeof e == "number" || /^\d+$/.test(e), i = (e) => /^[A-Z]/.test(e) || e.includes("[") || e.includes("-"), a = (e) => e.filter((e, t) => t !== 0 || e !== "body").filter((e) => r(e) || !i(String(e))).join("."), o = (e) => typeof e == "string" || typeof e == "number", s = (e, t) => e === t || RegExp(`(^|[^A-Za-z0-9_])${t}([^A-Za-z0-9_]|$)`).test(e), c = (e) => typeof e == "object" && !!e;
36
+ function l(e) {
37
+ if (typeof e == "string") return e.trim() ? {
38
+ path: "",
39
+ loc: [],
40
+ msg: e,
41
+ type: ""
42
+ } : null;
43
+ if (!c(e)) return null;
44
+ let { loc: t, msg: n, type: r } = e;
45
+ if (typeof n != "string" || !n.trim()) return null;
46
+ let i = Array.isArray(t) ? t.filter(o) : [];
47
+ return {
48
+ path: a(i),
49
+ loc: i,
50
+ msg: n,
51
+ type: typeof r == "string" ? r : ""
52
+ };
53
+ }
54
+ function u(e, t = []) {
55
+ if (!c(e) || !Array.isArray(e.detail)) return [];
56
+ let n = [], r = /* @__PURE__ */ new Set();
57
+ for (let i of e.detail) {
58
+ let e = l(i);
59
+ if (!e || e.loc.some((e) => typeof e == "string" && t.some((t) => s(e, t)))) continue;
60
+ let a = `${e.path}:${e.msg}`;
61
+ r.has(a) || (r.add(a), n.push(e));
62
+ }
63
+ return n;
64
+ }
65
+ var d = 3;
66
+ function f(e, t) {
67
+ let n = [...new Set(e.map(({ msg: e }) => e))];
68
+ if (!n.length) return "";
69
+ let r = n.slice(0, d).join("; "), i = n.length - d;
70
+ return i > 0 ? t.apiErrorsSummary.replace("{message}", r).replace("{count}", String(i)) : r;
71
+ }
72
+ var p = 200;
73
+ function m(e) {
74
+ let t = e.trim();
75
+ if (!(!t || t.length > p) && !t.includes("<")) return t;
76
+ }
77
+ function h(e, { irrelevantVariants: t, messages: n }) {
78
+ if (e instanceof Error) return e.message;
79
+ if (typeof e == "string") return m(e) ?? n.unknownError;
80
+ if (!c(e)) return n.unknownError;
81
+ if (c(e.error) && typeof e.error.message == "string") return e.error.message;
82
+ if (Array.isArray(e.detail)) {
83
+ let r = f(u(e, t), n);
84
+ if (r) return r;
85
+ }
86
+ return n.unknownError;
87
+ }
88
+ function g(e) {
89
+ return e.replace(/^(invoice|quote)\./, "");
90
+ }
91
+ var _ = /^line_items\.(?:(add|replace)\.)?(\d+)\.(?:data\.)?(.+)$/;
92
+ function v(e, t, n) {
93
+ return e === "add" ? n.added?.[t] : e === "replace" ? n.replaced?.[t] : n.created?.[t];
94
+ }
95
+ function y(e, r) {
96
+ let i = {}, a;
97
+ for (let { path: o, msg: s } of e) {
98
+ if (!o) continue;
99
+ let e = g(o);
100
+ if (e === "line_items") {
101
+ a = s;
102
+ continue;
57
103
  }
58
- }, [
59
- E,
60
- k,
61
- y,
62
- b
63
- ]), B = p(() => c({
64
- accounts: C,
65
- embeddedBankName: v,
66
- messages: y
67
- }), [
68
- v,
69
- y,
70
- C
71
- ]);
104
+ let c = t[e];
105
+ if (c) {
106
+ i[c] = s;
107
+ continue;
108
+ }
109
+ let l = e.match(_);
110
+ if (!l) continue;
111
+ let [, u, d, f] = l;
112
+ if (f === "tax_rate_value") {
113
+ i.taxRate = s;
114
+ continue;
115
+ }
116
+ let p = n[f], m = v(u, Number(d), r);
117
+ p && m && (i.lineItems = {
118
+ ...i.lineItems,
119
+ [m]: {
120
+ ...i.lineItems?.[m],
121
+ [p]: s
122
+ }
123
+ });
124
+ }
72
125
  return {
73
- view: p(() => s({
74
- options: B,
75
- isLoading: w,
76
- selectedId: _,
77
- isAddingAccount: D,
78
- canAddAccount: S.canAddAccount,
79
- formValues: k,
80
- formErrors: j,
81
- isSaving: E.isPending
82
- }), [
83
- _,
84
- E.isPending,
85
- j,
86
- k,
87
- D,
88
- w,
89
- B,
90
- S.canAddAccount
91
- ]),
92
- isLoading: w,
93
- hasAccounts: C.length > 0,
94
- canAddAccount: S.canAddAccount,
95
- reset: P,
96
- selectAccount: F,
97
- openAddAccount: I,
98
- cancelAddAccount: L,
99
- updateAccountForm: R,
100
- saveAccount: z
126
+ errors: i,
127
+ listError: a
101
128
  };
102
129
  }
103
130
  //#endregion
104
- export { g as useReceivableBankAccount };
131
+ export { e as UNSUBMITTED_PAYLOAD_VARIANTS, y as apiValidationErrorsToFormErrors, h as getApiErrorMessage, u as parseApiValidationErrors, f as summarizeApiValidationErrors, g as toCreatePayloadPath };
@@ -2,120 +2,154 @@
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 { extractApiErrorMessage as t } from "../../../shared/util/dist/lib/apiErrors.js";
7
- import { usePaymentTermsQuery as n } from "../../../shared/data-access/dist/lib/reference-data/usePaymentTermsQuery.js";
8
- import "../../../shared/ui/dist/index.js";
9
- import { useWidgetConfig as r } from "../../../shared/feature/dist/lib/WidgetProvider/hooks.js";
10
- import "../../../shared/feature/dist/index.js";
11
- import { areOverdueTermsValid as i, buildOverdueReminderPayload as a, buildPaymentReminderPayload as o, buildRemindersView as s, canCreateReminders as c, getImpliedDueDate as l, isBeforeDueDaysValid as u, sanitizeReminderDays as d } from "./index14.js";
12
- import { useCreateOverdueReminderMutation as f, useCreatePaymentReminderMutation as p, useOverdueRemindersQuery as m, usePaymentRemindersQuery as h } from "../../data-access/dist/index11.js";
5
+ import { toFileArray as e, validateAttachmentFile as t } from "./index7.js";
6
+ import { useDeleteReceivableAttachmentMutation as n, useUploadReceivableAttachmentMutation as r } from "../../data-access/dist/index4.js";
13
7
  import "../../data-access/dist/index.js";
14
- import { useCallback as g, useMemo as _, useState as v } from "react";
8
+ import { useCallback as i, useEffect as a, useRef as o, useState as s } from "react";
15
9
  //#region ../../libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index24.js
16
- var y = [""];
17
- function b({ open: b, isInvoice: x, disabled: S, paymentTermsId: C, paymentTermsCustomDate: w, paymentReminderId: T, overdueReminderId: E, messages: D, onSelect: O }) {
18
- let { initResponse: k } = r(), A = n().data?.data, j = _(() => c(k?.scopes), [k?.scopes]), [M, N] = v(!1), [P, F] = v(""), [I, L] = v(y), R = b && x && M, z = h({ enabled: R }), B = m({ enabled: R }), V = p(), H = f(), U = g((e) => {
19
- N(e), F(""), L(y);
20
- }, []), W = g((e) => {
21
- e || (O({
22
- paymentReminderId: "",
23
- overdueReminderId: ""
24
- }), F(""), L(y)), N(e);
25
- }, [O]), G = g((e) => O({ paymentReminderId: e }), [O]), K = g((e) => O({ overdueReminderId: e }), [O]), q = g((e) => F(d(e)), []), J = g((e, t) => {
26
- let n = d(t);
27
- L((t) => t.map((t, r) => r === e ? n : t));
28
- }, []), Y = g(() => {
29
- L((e) => e.length < 3 ? [...e, ""] : e);
30
- }, []), X = g(() => L(y), []), Z = g(() => l({
31
- paymentTermsId: C,
32
- paymentTermsCustomDate: w,
33
- paymentTerms: A,
34
- today: /* @__PURE__ */ new Date()
35
- }), [
36
- A,
37
- w,
38
- C
39
- ]), Q = g(async () => {
40
- if (u(P)) try {
41
- let t = await V.mutateAsync({ body: o({
42
- daysBefore: Number(P),
43
- dueDate: Z(),
44
- messages: D
45
- }) });
46
- F(""), O({ paymentReminderId: t.id }), e.success(D.reminderAdded);
47
- } catch (n) {
48
- e.error(t(n) ?? D.genericError);
10
+ function c({ attachments: c, setAttachments: l, receivableId: u }) {
11
+ let { mutateAsync: d } = r(), { mutate: f } = n(), [p, m] = s([]), [h, g] = s(!1), _ = o(0), v = o(/* @__PURE__ */ new Set()), y = o(/* @__PURE__ */ new Set()), b = o(/* @__PURE__ */ new Set()), x = o(0), S = o(!1), C = o({
12
+ deleteFile: f,
13
+ receivableId: u
14
+ });
15
+ a(() => {
16
+ C.current = {
17
+ deleteFile: f,
18
+ receivableId: u
19
+ };
20
+ }, [f, u]), a(() => {
21
+ S.current = !1;
22
+ let e = y.current;
23
+ return () => {
24
+ S.current = !0;
25
+ let { deleteFile: t, receivableId: n } = C.current;
26
+ for (let r of e) t({
27
+ path: { file_id: r },
28
+ receivableId: n
29
+ });
30
+ e.clear();
31
+ };
32
+ }, []);
33
+ let w = i(async (e, t) => {
34
+ let n = x.current, r = () => S.current || x.current !== n;
35
+ try {
36
+ let n = await d({
37
+ file: t,
38
+ receivableId: u
39
+ });
40
+ if (r() || v.current.delete(e)) {
41
+ f({
42
+ path: { file_id: n.id },
43
+ receivableId: u
44
+ });
45
+ return;
46
+ }
47
+ y.current.add(n.id), m((t) => t.filter((t) => t.id !== e)), l((e) => [...e, {
48
+ id: n.id,
49
+ includeInEmail: !0,
50
+ name: n.name,
51
+ size: n.size
52
+ }]);
53
+ } catch {
54
+ let t = v.current.delete(e);
55
+ if (r() || t) return;
56
+ m((t) => t.map((t) => t.id === e ? {
57
+ ...t,
58
+ status: "upload_failed"
59
+ } : t));
49
60
  }
50
61
  }, [
51
- P,
52
- V,
53
- Z,
54
- D,
55
- O
56
- ]), $ = g(async () => {
57
- if (i(I)) try {
58
- let t = await H.mutateAsync({ body: a({
59
- terms: I,
60
- dueDate: Z(),
61
- messages: D
62
- }) });
63
- L(y), O({ overdueReminderId: t.id }), e.success(D.reminderAdded);
64
- } catch (n) {
65
- e.error(t(n) ?? D.genericError);
62
+ f,
63
+ u,
64
+ l,
65
+ d
66
+ ]), T = i((n) => {
67
+ let r = e(n);
68
+ if (r.length === 0) return;
69
+ let i = p.filter((e) => e.status === "uploading").length, a = 10 - c.length - i, o = [], s = !1;
70
+ for (let e of r) {
71
+ _.current += 1;
72
+ let n = `pending-attachment-${_.current}`, r = t(e);
73
+ if (r) {
74
+ o.push({
75
+ id: n,
76
+ name: e.name,
77
+ status: r
78
+ });
79
+ continue;
80
+ }
81
+ if (a <= 0) {
82
+ s = !0;
83
+ continue;
84
+ }
85
+ --a, o.push({
86
+ id: n,
87
+ name: e.name,
88
+ status: "uploading"
89
+ }), w(n, e);
66
90
  }
91
+ o.length > 0 && m((e) => [...e, ...o]), g(s);
67
92
  }, [
68
- H,
69
- Z,
70
- D,
93
+ c.length,
94
+ p,
95
+ w
96
+ ]), E = i((e, t) => {
97
+ l((n) => n.map((n) => n.id === e ? {
98
+ ...n,
99
+ includeInEmail: t
100
+ } : n));
101
+ }, [l]), D = i((e) => {
102
+ g(!1);
103
+ let t = p.find((t) => t.id === e);
104
+ if (t) {
105
+ t.status === "uploading" && v.current.add(e), m((t) => t.filter((t) => t.id !== e));
106
+ return;
107
+ }
108
+ if (l((t) => t.filter((t) => t.id !== e)), !y.current.delete(e)) {
109
+ b.current.add(e);
110
+ return;
111
+ }
112
+ f({
113
+ path: { file_id: e },
114
+ receivableId: u
115
+ });
116
+ }, [
117
+ f,
118
+ p,
119
+ u,
120
+ l
121
+ ]), O = i(() => {
122
+ x.current += 1, v.current.clear(), y.current.clear(), b.current.clear(), m([]), g(!1);
123
+ }, []), k = i(() => {
124
+ let e = new Set(y.current);
125
+ for (let t of e) f({
126
+ path: { file_id: t },
127
+ receivableId: u
128
+ });
129
+ l((t) => t.filter(({ id: t }) => !e.has(t))), O();
130
+ }, [
131
+ f,
132
+ u,
71
133
  O,
72
- I
73
- ]);
134
+ l
135
+ ]), A = i(() => {
136
+ for (let e of b.current) f({
137
+ path: { file_id: e },
138
+ receivableId: u
139
+ });
140
+ b.current.clear();
141
+ }, [f, u]);
74
142
  return {
75
- view: _(() => x ? s({
76
- showReminders: M,
77
- paymentTermsId: C,
78
- paymentTermsCustomDate: w,
79
- paymentReminderId: T,
80
- overdueReminderId: E,
81
- paymentReminders: z.data?.data,
82
- overdueReminders: B.data?.data,
83
- canCreate: j,
84
- disabled: S,
85
- beforeDueInput: P,
86
- overdueTerms: I,
87
- isCreatingPaymentReminder: V.isPending,
88
- isCreatingOverdueReminder: H.isPending,
89
- today: /* @__PURE__ */ new Date(),
90
- messages: D
91
- }) : void 0, [
92
- P,
93
- j,
94
- H.isPending,
95
- V.isPending,
96
- S,
97
- x,
98
- D,
99
- E,
100
- B.data?.data,
101
- I,
102
- T,
103
- z.data?.data,
104
- w,
105
- C,
106
- M
107
- ]),
108
- reset: U,
109
- toggle: W,
110
- selectPaymentReminder: G,
111
- selectOverdueReminder: K,
112
- changeBeforeDueInput: q,
113
- saveBeforeDue: Q,
114
- changeOverdueTerm: J,
115
- addOverdueTerm: Y,
116
- clearOverdueTerms: X,
117
- saveOverdue: $
143
+ pendingUploads: p,
144
+ isUploading: p.some((e) => e.status === "uploading"),
145
+ isCountLimitReached: h,
146
+ selectFiles: T,
147
+ setIncludeInEmail: E,
148
+ remove: D,
149
+ reset: O,
150
+ discardUploads: k,
151
+ commitRemovals: A
118
152
  };
119
153
  }
120
154
  //#endregion
121
- export { b as useReceivableReminders };
155
+ export { c as useReceivableAttachmentUploads };