@tesouro/embedded-components-react 0.5.206 → 0.5.207

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 (36) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +40 -0
  3. package/dist/index.js +1 -1
  4. package/dist/lib/ReceivablesWidget.d.ts +40 -0
  5. package/dist/lib/ReceivablesWidget.js +1 -1
  6. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index.js +2 -2
  7. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index10.js +84 -2
  8. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index2.js +31 -25
  9. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index.js +1 -1
  10. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index10.js +22 -1
  11. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index11.js +151 -187
  12. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index12.js +202 -31
  13. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index13.js +32 -145
  14. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index14.js +145 -37
  15. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index15.js +42 -58
  16. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index16.js +58 -96
  17. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index17.js +96 -47
  18. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index18.js +103 -318
  19. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index19.js +47 -70
  20. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index20.js +350 -100
  21. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index21.js +68 -263
  22. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index22.js +115 -0
  23. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index23.js +285 -0
  24. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index9.js +10 -2
  25. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index.js +4 -3
  26. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index23.js +11 -10
  27. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index25.js +234 -78
  28. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index26.js +80 -331
  29. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index27.js +344 -0
  30. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index3.js +14 -1
  31. package/dist/libs/tesouro-embedded-components-react/shared/counterpart-management/feature/dist/index.js +11 -11
  32. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/index.js +38 -38
  33. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/@tanstack/react-query.gen.js +220 -198
  34. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/sdk.gen.js +124 -84
  35. package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
  36. package/package.json +1 -1
@@ -1,195 +1,159 @@
1
- "use client";
2
- "use client";
3
- "use client";
4
- "use client";
5
- import { extractApiErrorMessage as e } from "../../../shared/util/dist/lib/apiErrors.js";
6
- import { defaultPaymentValues as t, defaultSendValues as n, fromMajorUnits as r, hasPaymentErrors as i, hasSendErrors as a, splitEmailList as o, validatePaymentValues as s, validateSendValues as c } from "./index9.js";
7
- import { useSendReceivableEmailMutation as l } from "../../data-access/dist/index5.js";
8
- import { useAcceptReceivableMutation as ee, useCancelReceivableMutation as te, useCloneReceivableMutation as u, useDeclineReceivableMutation as d, useDeleteReceivableMutation as f, useIssueReceivableMutation as p } from "../../data-access/dist/index6.js";
9
- import { useMarkReceivablePaidMutation as m, useMarkReceivablePartiallyPaidMutation as h, useMarkReceivableUncollectibleMutation as g } from "../../data-access/dist/index8.js";
10
- import "../../data-access/dist/index.js";
11
- import { useCallback as _, useState as v } from "react";
1
+ import { hasAnyScope as e } from "../../../shared/data-access/dist/lib/hasAnyScope.js";
2
+ import { Scope as t } from "../../../shared/data-access/dist/lib/scopes.js";
3
+ import "../../../shared/data-access/dist/index.js";
4
+ import { getCounterpartEmail as n } from "../../../shared/counterpart-management/feature/dist/lib/helpers.js";
5
+ import "../../../shared/counterpart-management/feature/dist/index.js";
6
+ import { RECEIVABLE_PAYMENT_TERMS_RECEIPT_DUE as r } from "../../ui/dist/index9.js";
7
+ import "../../ui/dist/index.js";
12
8
  //#region ../../libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index11.js
13
- function y({ selectedReceivable: y, messages: x, onCreated: S, onDeleted: C }) {
14
- let w = p(), T = te(), E = u(), D = ee(), O = d(), k = f(), A = l(), j = m(), M = h(), N = g(), [P, F] = v(), [I, L] = v(), [R, z] = v(), [B, V] = v(() => n(void 0, x)), [H, U] = v({}), [W, G] = v(), [K, q] = v(() => t()), [J, Y] = v({}), X = _((e, r, i) => {
15
- let a = "documentLabel" in r ? r.documentLabel : r.title, o = {
16
- id: r.id,
17
- type: r.type,
18
- title: a,
19
- action: e
20
- }, s = i === void 0 ? y : i ?? void 0;
21
- if (e === "send") {
22
- z(o), V(n(s, x)), U({});
23
- return;
24
- }
25
- if (e === "recordPayment") {
26
- G({
27
- ...o,
28
- currency: s?.currency
29
- }), q(t()), Y({});
30
- return;
31
- }
32
- L(void 0), F(o);
33
- }, [x, y]), Z = _(() => {
34
- F(void 0), L(void 0);
35
- }, []), Q = _(() => {
36
- z(void 0), U({});
37
- }, []), $ = _(() => {
38
- G(void 0), Y({});
39
- }, []), ne = _(async () => {
40
- if (!P) return;
41
- let t = { receivable_id: P.id };
42
- try {
43
- if (P.action === "issue") await w.mutateAsync({ path: t });
44
- else if (P.action === "cancel") await T.mutateAsync({ path: t });
45
- else if (P.action === "clone") {
46
- let e = await E.mutateAsync({ path: t });
47
- e?.id && S?.(e.id, e.type);
48
- } else P.action === "accept" ? await D.mutateAsync({ path: t }) : P.action === "decline" ? await O.mutateAsync({ path: t }) : P.action === "delete" ? (await k.mutateAsync({ path: t }), C?.(P.id)) : P.action === "markPaid" ? await j.mutateAsync({
49
- path: t,
50
- body: { paid_at: (/* @__PURE__ */ new Date()).toISOString() }
51
- }) : P.action === "markUncollectible" && await N.mutateAsync({ path: t });
52
- F(void 0), L(void 0);
53
- } catch (t) {
54
- L(e(t) ?? x.genericError);
55
- }
56
- }, [
57
- D,
58
- P,
59
- T,
60
- E,
61
- O,
62
- k,
63
- w,
64
- j,
65
- x.genericError,
66
- S,
67
- C,
68
- N
69
- ]), re = _(async () => {
70
- if (!R) return;
71
- let t = c(B, x);
72
- if (a(t)) {
73
- U(t);
74
- return;
75
- }
76
- try {
77
- await A.mutateAsync({
78
- path: { receivable_id: R.id },
79
- body: {
80
- body_text: B.body,
81
- subject_text: B.subject,
82
- recipients: {
83
- to: o(B.to),
84
- cc: o(B.cc),
85
- bcc: o(B.bcc)
86
- }
87
- }
88
- }), Q();
89
- } catch (t) {
90
- U({ form: e(t) ?? x.genericError });
91
- }
92
- }, [
93
- Q,
94
- x,
95
- A,
96
- R,
97
- B
98
- ]), ie = _(async () => {
99
- if (!W) return;
100
- let t = s(K, x, W.currency);
101
- if (i(t)) {
102
- Y(t);
103
- return;
104
- }
105
- try {
106
- let e = { receivable_id: W.id }, t = K.paidAt ? new Date(K.paidAt).toISOString() : void 0;
107
- K.mode === "full" ? await j.mutateAsync({
108
- path: e,
109
- body: {
110
- comment: K.comment || void 0,
111
- paid_at: t
112
- }
113
- }) : await M.mutateAsync({
114
- path: e,
115
- body: {
116
- amount_paid: r(K.amountPaid, W.currency) ?? 0,
117
- comment: K.comment || void 0
118
- }
119
- }), $();
120
- } catch (t) {
121
- Y({ form: e(t) ?? x.genericError });
9
+ var i = 1e4, a = 864e5;
10
+ function o(n) {
11
+ return e(new Set(n ?? []), [t.InvoiceWriteOrg]);
12
+ }
13
+ function s(e) {
14
+ return e.replace(/\D/g, "");
15
+ }
16
+ var c = (e) => e.length > 0 ? Math.min(...e) : Infinity;
17
+ function l(e) {
18
+ return c([
19
+ e.term_1_reminder,
20
+ e.term_2_reminder,
21
+ e.term_final_reminder
22
+ ].flatMap((e) => e ? [e.days_before] : []));
23
+ }
24
+ function u(e) {
25
+ return c((e.terms ?? []).map((e) => e.days_after));
26
+ }
27
+ function d(e) {
28
+ return [...e ?? []].sort((e, t) => l(e) - l(t)).map(({ id: e, name: t }) => ({
29
+ value: e,
30
+ label: t
31
+ }));
32
+ }
33
+ function f(e) {
34
+ return [...e ?? []].sort((e, t) => u(e) - u(t)).map(({ id: e, name: t }) => ({
35
+ value: e,
36
+ label: t
37
+ }));
38
+ }
39
+ function p(e) {
40
+ let [t, n, r] = e.split("-").map(Number);
41
+ if (t && n && r) return new Date(t, n - 1, r);
42
+ }
43
+ function m(e, t) {
44
+ return Math.round((Date.UTC(t.getFullYear(), t.getMonth(), t.getDate()) - Date.UTC(e.getFullYear(), e.getMonth(), e.getDate())) / a);
45
+ }
46
+ function h({ paymentTermsId: e, paymentTermsCustomDate: t }) {
47
+ return e === "custom" ? p(t) : void 0;
48
+ }
49
+ function g({ paymentTermsId: e, paymentTermsCustomDate: t, paymentTerms: n, today: r }) {
50
+ if (e === "custom") return p(t);
51
+ let i = e === "receipt_due" ? 0 : n?.find((t) => t.id === e)?.term_final.number_of_days;
52
+ if (i !== void 0) return new Date(r.getFullYear(), r.getMonth(), r.getDate() + i);
53
+ }
54
+ function _(e) {
55
+ return new Intl.DateTimeFormat("en-US", {
56
+ month: "short",
57
+ day: "numeric",
58
+ year: "numeric"
59
+ }).format(e);
60
+ }
61
+ function v(e, t) {
62
+ return (e === 1 ? t.reminderNameDay : t.reminderNameDays).replace("{days}", String(e));
63
+ }
64
+ function y(e, t) {
65
+ return Number(e) === 1 ? t.reminderUnitDay : t.reminderUnitDays;
66
+ }
67
+ function b(e) {
68
+ let t = Number(e);
69
+ return e !== "" && t >= 1 && t <= 1e4;
70
+ }
71
+ function x(e) {
72
+ return e.every((e) => Number(e) >= 1);
73
+ }
74
+ function S({ daysBefore: e, dueDate: t, messages: n }) {
75
+ return {
76
+ name: v(e, n),
77
+ term_final_reminder: {
78
+ days_before: e,
79
+ subject: n.reminderBeforeDueSubject,
80
+ body: t ? n.reminderBeforeDueBody.replace("{dueDate}", _(t)) : n.reminderBeforeDueBodyNoDate
122
81
  }
123
- }, [
124
- $,
125
- j,
126
- x,
127
- M,
128
- W,
129
- K
130
- ]);
82
+ };
83
+ }
84
+ function C({ terms: e, dueDate: t, messages: n }) {
85
+ let r = e.map(Number).sort((e, t) => e - t), i = r.map((e) => v(e, n)), a = i.length === 1 ? i[0] : `${i.slice(0, -1).join(", ")} ${n.reminderNameAnd} ${i[i.length - 1]}`, o = t ? n.reminderOverdueBody.replace("{dueDate}", _(t)) : n.reminderOverdueBodyNoDate;
131
86
  return {
132
- actionTarget: P,
133
- actionDialog: P ? b(P.action, x) : void 0,
134
- actionError: I,
135
- actionInProgress: w.isPending || T.isPending || E.isPending || D.isPending || O.isPending || k.isPending || j.isPending || N.isPending,
136
- openAction: X,
137
- closeAction: Z,
138
- confirmAction: ne,
139
- sendOpen: !!R,
140
- sendValues: B,
141
- sendErrors: H,
142
- sendInProgress: A.isPending,
143
- setSendValues: V,
144
- closeSend: Q,
145
- submitSend: re,
146
- paymentOpen: !!W,
147
- paymentValues: K,
148
- paymentErrors: J,
149
- paymentInProgress: j.isPending || M.isPending,
150
- setPaymentValues: q,
151
- closePayment: $,
152
- submitPayment: ie
87
+ name: a,
88
+ terms: r.map((e) => ({
89
+ days_after: e,
90
+ subject: n.reminderOverdueSubject,
91
+ body: o
92
+ }))
153
93
  };
154
94
  }
155
- function b(e, t) {
156
- return e === "issue" ? {
157
- title: t.issueTitle,
158
- description: t.issueDescription,
159
- confirmLabel: t.issueConfirm
160
- } : e === "accept" ? {
161
- title: t.acceptTitle,
162
- description: t.acceptDescription,
163
- confirmLabel: t.acceptConfirm
164
- } : e === "decline" ? {
165
- title: t.declineTitle,
166
- description: t.declineDescription,
167
- confirmLabel: t.declineConfirm,
168
- destructive: !0
169
- } : e === "cancel" ? {
170
- title: t.cancelTitle,
171
- description: t.cancelDescription,
172
- confirmLabel: t.cancelConfirm,
173
- destructive: !0
174
- } : e === "clone" ? {
175
- title: t.cloneTitle,
176
- description: t.cloneDescription,
177
- confirmLabel: t.cloneConfirm
178
- } : e === "delete" ? {
179
- title: t.deleteTitle,
180
- description: t.deleteDescription,
181
- confirmLabel: t.deleteConfirm,
182
- destructive: !0
183
- } : e === "markPaid" ? {
184
- title: t.markPaidTitle,
185
- description: t.markPaidDescription,
186
- confirmLabel: t.markPaidConfirm
187
- } : {
188
- title: t.markUncollectibleTitle,
189
- description: t.markUncollectibleDescription,
190
- confirmLabel: t.markUncollectibleConfirm,
191
- destructive: !0
95
+ function w(e) {
96
+ return !!(e.paymentTermsId || e.paymentReminderId || e.overdueReminderId);
97
+ }
98
+ function T({ showReminders: e, paymentTermsId: t, paymentTermsCustomDate: n, paymentReminderId: a, overdueReminderId: o, paymentReminders: s, overdueReminders: c, canCreate: l, disabled: u, beforeDueInput: p, overdueTerms: g, isCreatingPaymentReminder: _, isCreatingOverdueReminder: v, today: S, messages: C }) {
99
+ let w = {
100
+ checked: e,
101
+ toggleDisabled: !t
192
102
  };
103
+ if (!e) return w;
104
+ let T = p !== "", E = b(p), D = h({
105
+ paymentTermsId: t,
106
+ paymentTermsCustomDate: n
107
+ }), O = D ? m(S, D) : void 0, k = s?.find((e) => e.id === a), A = k ? [
108
+ k.term_1_reminder,
109
+ k.term_2_reminder,
110
+ k.term_final_reminder
111
+ ].flatMap((e) => e ? [e.days_before] : []) : [], j = O !== void 0 && (T && Number(p) > O || A.some((e) => e > O)), M = t === r, N = d(s), P = f(c);
112
+ return {
113
+ ...w,
114
+ cards: {
115
+ beforeDue: M ? void 0 : {
116
+ options: N,
117
+ selectedId: a,
118
+ create: l ? {
119
+ value: p,
120
+ unitLabel: y(p, C),
121
+ caption: N.length > 0 ? C.reminderBeforeDueCaption : void 0,
122
+ error: T && !E ? C.reminderDaysRange.replace("{min}", "1").replace("{max}", String(i)) : void 0,
123
+ inputDisabled: u || _,
124
+ saveDisabled: !E || _,
125
+ isSaving: _
126
+ } : void 0,
127
+ warning: j ? C.reminderPastDueWarning : void 0
128
+ },
129
+ overdue: {
130
+ options: P,
131
+ selectedId: o,
132
+ create: l ? {
133
+ caption: P.length > 0 ? C.reminderOverdueCaption : C.reminderOverdueEmptyCaption,
134
+ terms: g.map((e, t) => ({
135
+ value: e,
136
+ unitLabel: y(e, C),
137
+ ariaLabel: C.reminderOverdueTermLabel.replace("{index}", String(t + 1)),
138
+ showPlaceholder: g.length === 1
139
+ })),
140
+ showAddTerm: g.length < 3,
141
+ addTermDisabled: u || v || !g[g.length - 1],
142
+ inputsDisabled: u || v,
143
+ clearDisabled: u || v,
144
+ saveDisabled: u || v || !x(g),
145
+ isSaving: v
146
+ } : void 0
147
+ }
148
+ }
149
+ };
150
+ }
151
+ function E(e) {
152
+ return e.type === "invoice" && !!(e.payment_reminder_id || e.overdue_reminder_id);
153
+ }
154
+ function D(e, t) {
155
+ let r = !!(e && n(e)), i = !!e?.reminders_enabled;
156
+ if (!(i && r)) return r ? t.issueRemindersDisabled : i ? t.issueRemindersNoEmail : t.issueRemindersDisabledNoEmail;
193
157
  }
194
158
  //#endregion
195
- export { y as useReceivableActions };
159
+ export { i as MAX_REMINDER_DAYS, x as areOverdueTermsValid, f as buildOverdueReminderOptions, C as buildOverdueReminderPayload, d as buildPaymentReminderOptions, S as buildPaymentReminderPayload, T as buildRemindersView, o as canCreateReminders, h as getCustomDueDate, g as getImpliedDueDate, D as getIssueReminderBlocker, E as hasSelectedReminder, b as isBeforeDueDaysValid, s as sanitizeReminderDays, w as shouldShowRemindersInitially };
@@ -2,41 +2,212 @@
2
2
  "use client";
3
3
  "use client";
4
4
  "use client";
5
- import { buildReceivableDetailsView as e } from "./index9.js";
6
- import { useReceivableHistoryQuery as t, useReceivableMailsQuery as n, useReceivablePdfLinkQuery as r, useReceivableQuery as i } from "../../data-access/dist/index9.js";
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 { useCounterpartQuery as n } from "../../../shared/counterpart-management/data-access/dist/index3.js";
9
+ import "../../../shared/counterpart-management/feature/dist/index.js";
10
+ import { defaultPaymentValues as r, defaultSendValues as i, fromMajorUnits as a, hasPaymentErrors as o, hasSendErrors as s, splitEmailList as c, validatePaymentValues as l, validateSendValues as ee } from "./index9.js";
11
+ import { getIssueReminderBlocker as te, hasSelectedReminder as u } from "./index11.js";
12
+ import { useSendReceivableEmailMutation as d } from "../../data-access/dist/index5.js";
13
+ import { useAcceptReceivableMutation as f, useCancelReceivableMutation as p, useCloneReceivableMutation as m, useDeclineReceivableMutation as ne, useDeleteReceivableMutation as re, useIssueReceivableMutation as ie } from "../../data-access/dist/index6.js";
14
+ import { useMarkReceivablePaidMutation as h, useMarkReceivablePartiallyPaidMutation as g, useMarkReceivableUncollectibleMutation as _ } from "../../data-access/dist/index8.js";
7
15
  import "../../data-access/dist/index.js";
8
- import { useMemo as a } from "react";
16
+ import { useCallback as v, useState as y } from "react";
9
17
  //#region ../../libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index12.js
10
- function o({ selectedReceivableId: o, enabled: s = !0, messages: c }) {
11
- let l = i(o, { enabled: s }), u = t(o, {
12
- enabled: s,
13
- limit: 25,
14
- sort: "timestamp",
15
- order: "desc"
16
- }), d = n(o, {
17
- enabled: s,
18
- limit: 10,
19
- sort: "created_at",
20
- order: "desc"
21
- }), f = r(o, { enabled: s && !!l.data }), p = a(() => e({
22
- receivable: l.data,
23
- history: u.data?.data ?? [],
24
- mails: d.data?.data ?? [],
25
- pdfUrl: f.data?.file_url || f.data?.original_file_url || void 0,
26
- messages: c
27
- }), [
28
- l.data,
29
- u.data?.data,
30
- d.data?.data,
31
- c,
32
- f.data
18
+ function b({ selectedReceivable: b, messages: S, onCreated: C, onDeleted: w }) {
19
+ let T = ie(), E = p(), D = m(), O = f(), k = ne(), A = re(), j = d(), M = h(), N = g(), P = _(), [F, I] = y(), [ae, L] = y(), [R, z] = y(), [B, V] = y(() => i(void 0, S)), [H, U] = y({}), [W, G] = y(), [K, q] = y(() => r()), [J, Y] = y({}), X = n(F?.reminderCounterpartId), Z = !!F?.reminderCounterpartId && X.isLoading, oe = v((e, t, n) => {
20
+ let a = "documentLabel" in t ? t.documentLabel : t.title, o = {
21
+ id: t.id,
22
+ type: t.type,
23
+ title: a,
24
+ action: e
25
+ }, s = n === void 0 ? b : n ?? void 0;
26
+ if (e === "send") {
27
+ z(o), V(i(s, S)), U({});
28
+ return;
29
+ }
30
+ if (e === "recordPayment") {
31
+ G({
32
+ ...o,
33
+ currency: s?.currency
34
+ }), q(r()), Y({});
35
+ return;
36
+ }
37
+ L(void 0), I({
38
+ ...o,
39
+ reminderCounterpartId: e === "issue" && s && u(s) ? s.counterpart_id : void 0
40
+ });
41
+ }, [S, b]), se = v(() => {
42
+ I(void 0), L(void 0);
43
+ }, []), Q = v(() => {
44
+ z(void 0), U({});
45
+ }, []), $ = v(() => {
46
+ G(void 0), Y({});
47
+ }, []), ce = v(async () => {
48
+ if (!F) return;
49
+ let n = { receivable_id: F.id };
50
+ if (F.reminderCounterpartId) {
51
+ if (Z) return;
52
+ let t = te(X.data, S);
53
+ if (t) {
54
+ e.error(t), I(void 0);
55
+ return;
56
+ }
57
+ }
58
+ try {
59
+ if (F.action === "issue") await T.mutateAsync({ path: n });
60
+ else if (F.action === "cancel") await E.mutateAsync({ path: n });
61
+ else if (F.action === "clone") {
62
+ let e = await D.mutateAsync({ path: n });
63
+ e?.id && C?.(e.id, e.type);
64
+ } else F.action === "accept" ? await O.mutateAsync({ path: n }) : F.action === "decline" ? await k.mutateAsync({ path: n }) : F.action === "delete" ? (await A.mutateAsync({ path: n }), w?.(F.id)) : F.action === "markPaid" ? await M.mutateAsync({
65
+ path: n,
66
+ body: { paid_at: (/* @__PURE__ */ new Date()).toISOString() }
67
+ }) : F.action === "markUncollectible" && await P.mutateAsync({ path: n });
68
+ I(void 0), L(void 0);
69
+ } catch (e) {
70
+ L(t(e) ?? S.genericError);
71
+ }
72
+ }, [
73
+ O,
74
+ F,
75
+ E,
76
+ D,
77
+ k,
78
+ A,
79
+ Z,
80
+ T,
81
+ M,
82
+ S,
83
+ C,
84
+ w,
85
+ X.data,
86
+ P
87
+ ]), le = v(async () => {
88
+ if (!R) return;
89
+ let e = ee(B, S);
90
+ if (s(e)) {
91
+ U(e);
92
+ return;
93
+ }
94
+ try {
95
+ await j.mutateAsync({
96
+ path: { receivable_id: R.id },
97
+ body: {
98
+ body_text: B.body,
99
+ subject_text: B.subject,
100
+ recipients: {
101
+ to: c(B.to),
102
+ cc: c(B.cc),
103
+ bcc: c(B.bcc)
104
+ }
105
+ }
106
+ }), Q();
107
+ } catch (e) {
108
+ U({ form: t(e) ?? S.genericError });
109
+ }
110
+ }, [
111
+ Q,
112
+ S,
113
+ j,
114
+ R,
115
+ B
116
+ ]), ue = v(async () => {
117
+ if (!W) return;
118
+ let e = l(K, S, W.currency);
119
+ if (o(e)) {
120
+ Y(e);
121
+ return;
122
+ }
123
+ try {
124
+ let e = { receivable_id: W.id }, t = K.paidAt ? new Date(K.paidAt).toISOString() : void 0;
125
+ K.mode === "full" ? await M.mutateAsync({
126
+ path: e,
127
+ body: {
128
+ comment: K.comment || void 0,
129
+ paid_at: t
130
+ }
131
+ }) : await N.mutateAsync({
132
+ path: e,
133
+ body: {
134
+ amount_paid: a(K.amountPaid, W.currency) ?? 0,
135
+ comment: K.comment || void 0
136
+ }
137
+ }), $();
138
+ } catch (e) {
139
+ Y({ form: t(e) ?? S.genericError });
140
+ }
141
+ }, [
142
+ $,
143
+ M,
144
+ S,
145
+ N,
146
+ W,
147
+ K
33
148
  ]);
34
149
  return {
35
- receivable: l.data,
36
- detailsView: p,
37
- isLoading: l.isLoading || u.isLoading || d.isLoading || f.isLoading,
38
- isError: l.isError
150
+ actionTarget: F,
151
+ actionDialog: F ? x(F.action, S) : void 0,
152
+ actionError: ae,
153
+ actionInProgress: Z || T.isPending || E.isPending || D.isPending || O.isPending || k.isPending || A.isPending || M.isPending || P.isPending,
154
+ openAction: oe,
155
+ closeAction: se,
156
+ confirmAction: ce,
157
+ sendOpen: !!R,
158
+ sendValues: B,
159
+ sendErrors: H,
160
+ sendInProgress: j.isPending,
161
+ setSendValues: V,
162
+ closeSend: Q,
163
+ submitSend: le,
164
+ paymentOpen: !!W,
165
+ paymentValues: K,
166
+ paymentErrors: J,
167
+ paymentInProgress: M.isPending || N.isPending,
168
+ setPaymentValues: q,
169
+ closePayment: $,
170
+ submitPayment: ue
171
+ };
172
+ }
173
+ function x(e, t) {
174
+ return e === "issue" ? {
175
+ title: t.issueTitle,
176
+ description: t.issueDescription,
177
+ confirmLabel: t.issueConfirm
178
+ } : e === "accept" ? {
179
+ title: t.acceptTitle,
180
+ description: t.acceptDescription,
181
+ confirmLabel: t.acceptConfirm
182
+ } : e === "decline" ? {
183
+ title: t.declineTitle,
184
+ description: t.declineDescription,
185
+ confirmLabel: t.declineConfirm,
186
+ destructive: !0
187
+ } : e === "cancel" ? {
188
+ title: t.cancelTitle,
189
+ description: t.cancelDescription,
190
+ confirmLabel: t.cancelConfirm,
191
+ destructive: !0
192
+ } : e === "clone" ? {
193
+ title: t.cloneTitle,
194
+ description: t.cloneDescription,
195
+ confirmLabel: t.cloneConfirm
196
+ } : e === "delete" ? {
197
+ title: t.deleteTitle,
198
+ description: t.deleteDescription,
199
+ confirmLabel: t.deleteConfirm,
200
+ destructive: !0
201
+ } : e === "markPaid" ? {
202
+ title: t.markPaidTitle,
203
+ description: t.markPaidDescription,
204
+ confirmLabel: t.markPaidConfirm
205
+ } : {
206
+ title: t.markUncollectibleTitle,
207
+ description: t.markUncollectibleDescription,
208
+ confirmLabel: t.markUncollectibleConfirm,
209
+ destructive: !0
39
210
  };
40
211
  }
41
212
  //#endregion
42
- export { o as useReceivableDetails };
213
+ export { b as useReceivableActions };