@tesouro/embedded-components-react 0.5.228 → 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 (85) hide show
  1. package/README.md +22 -21
  2. package/dist/index.d.ts +34 -1
  3. package/dist/index.js +1 -1
  4. package/dist/lib/ReceivablesWidget.d.ts +34 -1
  5. package/dist/lib/ReceivablesWidget.js +1 -1
  6. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index.js +1 -1
  7. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index11.js +1 -1
  8. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index5.js +32 -33
  9. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index6.js +34 -32
  10. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index7.js +1 -1
  11. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index.js +1 -1
  12. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index10.js +120 -52
  13. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index11.js +44 -100
  14. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index12.js +93 -337
  15. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index13.js +356 -211
  16. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index14.js +225 -157
  17. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index15.js +152 -21
  18. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index16.js +18 -221
  19. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index17.js +224 -56
  20. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index18.js +126 -231
  21. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index19.js +53 -298
  22. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index20.js +232 -43
  23. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index21.js +295 -118
  24. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index22.js +38 -145
  25. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index23.js +126 -46
  26. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index24.js +145 -117
  27. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index25.js +38 -91
  28. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index26.js +113 -107
  29. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index27.js +94 -27
  30. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index28.js +104 -619
  31. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index29.js +34 -41
  32. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index30.js +635 -34
  33. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index31.js +39 -77
  34. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index32.js +34 -117
  35. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index33.js +75 -318
  36. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index34.js +139 -0
  37. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index35.js +340 -0
  38. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index5.js +1 -1
  39. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index8.js +55 -468
  40. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index9.js +443 -97
  41. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index.js +24 -21
  42. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index10.js +32 -2
  43. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index11.js +205 -84
  44. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index12.js +161 -3
  45. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index13.js +12 -20
  46. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index14.js +23 -40
  47. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index15.js +2 -17
  48. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index16.js +90 -68
  49. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index17.js +3 -20
  50. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index18.js +20 -12
  51. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index19.js +40 -30
  52. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index2.js +14 -7
  53. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index20.js +15 -301
  54. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index21.js +73 -1
  55. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index22.js +17 -45
  56. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index23.js +12 -68
  57. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index24.js +26 -490
  58. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index25.js +294 -95
  59. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index26.js +1 -0
  60. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index27.js +48 -2
  61. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index28.js +72 -4
  62. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index29.js +496 -1
  63. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index3.js +121 -27
  64. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index30.js +97 -91
  65. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index32.js +2 -236
  66. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index33.js +3 -2
  67. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index34.js +1 -249
  68. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index35.js +89 -82
  69. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index36.js +23 -54
  70. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index37.js +223 -340
  71. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index38.js +3 -0
  72. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index39.js +249 -0
  73. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index4.js +100 -216
  74. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index40.js +93 -0
  75. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index41.js +59 -0
  76. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index42.js +353 -0
  77. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index5.js +35 -29
  78. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index6.js +2 -216
  79. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index7.js +9 -159
  80. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index8.js +27 -14
  81. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index9.js +216 -23
  82. package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
  83. package/dist/libs/tesouro-embedded-components-react/shared/product-catalog/feature/dist/index.js +12 -12
  84. package/package.json +1 -1
  85. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index31.js +0 -28
@@ -1,131 +1,308 @@
1
+ import { isLineItemTaxable as e } from "./index6.js";
2
+ import { buildReceivableAttachmentDetailsView as t } from "./index7.js";
3
+ import { allocateDiscount as n, resolveDiscountAmount as r } from "./index12.js";
4
+ import { buildReceivableNotesView as i, formatDate as a, formatMoney as o } from "./index13.js";
5
+ import { getPaymentAccountLineLabel as s } from "./index19.js";
6
+ import { formatCountryName as c, formatDeduction as l } from "./index20.js";
1
7
  //#region ../../libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index21.js
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));
8
+ var u = {
9
+ draft: {
10
+ primary: ["edit", "issue"],
11
+ overflow: ["clone", "delete"]
12
+ },
13
+ issued: {
14
+ primary: ["send", "recordPayment"],
15
+ overflow: ["clone", "cancel"]
16
+ },
17
+ overdue: {
18
+ primary: ["send", "recordPayment"],
19
+ overflow: [
20
+ "clone",
21
+ "cancel",
22
+ "markUncollectible"
23
+ ]
24
+ },
25
+ partially_paid: {
26
+ primary: ["send", "recordPayment"],
27
+ overflow: ["clone"]
28
+ },
29
+ paid: {
30
+ primary: [],
31
+ overflow: ["clone"]
32
+ },
33
+ canceled: {
34
+ primary: [],
35
+ overflow: ["clone"]
36
+ },
37
+ uncollectible: {
38
+ primary: [],
39
+ overflow: ["clone"]
40
+ },
41
+ recurring: {
42
+ primary: [],
43
+ overflow: []
62
44
  }
63
- return n;
45
+ }, d = {
46
+ draft: "neutral",
47
+ issuing: "info",
48
+ issued: "info",
49
+ partially_paid: "info",
50
+ accepted: "success",
51
+ paid: "success",
52
+ failed: "danger",
53
+ expired: "danger",
54
+ declined: "danger",
55
+ overdue: "danger",
56
+ canceled: "neutral",
57
+ uncollectible: "neutral",
58
+ recurring: "neutral",
59
+ deleted: "neutral"
60
+ };
61
+ function f(e, t = /* @__PURE__ */ new Date()) {
62
+ if (!e) return 0;
63
+ let n = new Date(e);
64
+ if (Number.isNaN(n.getTime())) return 0;
65
+ let r = Date.UTC(t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate()), i = Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), n.getUTCDate()), a = Math.floor((r - i) / 864e5);
66
+ return a > 0 ? a : 0;
64
67
  }
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;
68
+ function p(e, t) {
69
+ let n = e.map((e) => `${e} ${e === 1 ? t.reminderUnitDay : t.reminderUnitDays}`);
70
+ if (n.length <= 1) return n[0] ?? "";
71
+ let r = t.reminderNameAnd;
72
+ return n.length === 2 ? `${n[0]} ${r} ${n[1]}` : `${n.slice(0, -1).join(", ")}, ${r} ${n[n.length - 1]}`;
71
73
  }
72
- var p = 200;
73
- function m(e) {
74
- let t = e.trim();
75
- if (!(!t || t.length > p) && !t.includes("<")) return t;
74
+ function m({ paymentReminder: e, overdueReminder: t, remindersConfigured: n, messages: r }) {
75
+ let i = [
76
+ e?.term_1_reminder?.days_before,
77
+ e?.term_2_reminder?.days_before,
78
+ e?.term_final_reminder?.days_before
79
+ ].filter((e) => typeof e == "number"), a = (t?.terms ?? []).map((e) => e.days_after).filter((e) => typeof e == "number"), o = [];
80
+ return i.length > 0 && o.push(`${p(i, r)} ${r.detailsRemindersBefore}`), a.length > 0 && o.push(`${p(a, r)} ${r.detailsRemindersAfter}`), o.length > 0 ? o.join("\n") : n ? "-" : r.detailsRemindersNone;
76
81
  }
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;
82
+ function h(e) {
83
+ if (!e?.line1) return;
84
+ let t = [e.city, [e.state, e.postal_code].filter(Boolean).join(" ")].filter(Boolean).join(", ");
85
+ return [
86
+ e.line2 ? `${e.line1} ${e.line2}` : e.line1,
87
+ t,
88
+ e.country ? c(e.country) : void 0
89
+ ].filter(Boolean).join(", ");
87
90
  }
88
- function g(e) {
89
- return e.replace(/^(invoice|quote)\./, "");
91
+ function g(e, t, n) {
92
+ let r = {
93
+ label: n.detailsAmountReceived,
94
+ value: t(e.amount_paid)
95
+ };
96
+ switch (e.status) {
97
+ case "issued":
98
+ case "overdue": return {
99
+ amountTone: e.status === "overdue" ? "danger" : "default",
100
+ amountRows: [{
101
+ label: n.detailsBalanceDue,
102
+ value: t(e.amount_due),
103
+ emphasis: !0
104
+ }, ...e.amount_paid > 0 ? [{
105
+ ...r,
106
+ tone: "success"
107
+ }] : []]
108
+ };
109
+ case "partially_paid": return {
110
+ amountTone: "default",
111
+ amountRows: [{
112
+ label: n.detailsBalanceDue,
113
+ value: t(e.amount_due),
114
+ emphasis: !0
115
+ }, {
116
+ ...r,
117
+ tone: "success"
118
+ }]
119
+ };
120
+ case "paid": return {
121
+ amountTone: "success",
122
+ amountRows: [{
123
+ ...r,
124
+ emphasis: !0
125
+ }]
126
+ };
127
+ case "canceled": return {
128
+ amountTone: "muted",
129
+ amountRows: [{
130
+ label: n.detailsCancelledAmount,
131
+ value: t(e.total_amount),
132
+ emphasis: !0
133
+ }]
134
+ };
135
+ case "uncollectible": return {
136
+ amountTone: "muted",
137
+ amountRows: [{
138
+ label: n.detailsAmountWrittenOff,
139
+ value: t(e.amount_due),
140
+ emphasis: !0
141
+ }]
142
+ };
143
+ default: return {
144
+ amountTone: "default",
145
+ amountRows: [{
146
+ label: n.detailsInvoiceAmount,
147
+ value: t(e.total_amount),
148
+ emphasis: !0
149
+ }]
150
+ };
151
+ }
90
152
  }
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];
153
+ function _(t, i, a) {
154
+ let o = t.line_items.reduce((t, n) => {
155
+ let r = n.total_before_tax ?? 0;
156
+ return e(n.tax_status) ? {
157
+ ...t,
158
+ taxableItemsSubtotal: t.taxableItemsSubtotal + r
159
+ } : {
160
+ ...t,
161
+ nonTaxableItemsSubtotal: t.nonTaxableItemsSubtotal + r
162
+ };
163
+ }, {
164
+ taxableItemsSubtotal: 0,
165
+ nonTaxableItemsSubtotal: 0
166
+ }), s = r({
167
+ discount: t.discount,
168
+ subtotal: o.taxableItemsSubtotal + o.nonTaxableItemsSubtotal
169
+ }), { taxableSubtotal: c, nonTaxableSubtotal: u } = n({
170
+ ...o,
171
+ discountAmount: s
172
+ }), d = s > 0, f = o.taxableItemsSubtotal > 0, p = o.nonTaxableItemsSubtotal > 0, m = [{
173
+ label: a.previewSubtotal,
174
+ value: i(t.subtotal)
175
+ }];
176
+ d && m.push({
177
+ label: a.previewDiscount,
178
+ value: l(s, t.currency)
179
+ }), p && (f || d) && m.push({
180
+ label: a.previewNonTaxableSubtotal,
181
+ value: i(u),
182
+ tone: "muted"
183
+ }), f && (p || d) && m.push({
184
+ label: a.previewTaxableSubtotal,
185
+ value: i(c),
186
+ tone: "muted"
187
+ });
188
+ for (let e of t.total_tax_amounts ?? []) m.push({
189
+ label: a.previewTaxWithRate.replace("{rate}", String((e.value ?? 0) / 100)),
190
+ value: i(e.amount)
191
+ });
192
+ return m.push({
193
+ label: a.previewTotal,
194
+ value: i(t.total_amount),
195
+ emphasis: !0
196
+ }), m;
94
197
  }
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;
103
- }
104
- let c = t[e];
105
- if (c) {
106
- i[c] = s;
107
- continue;
198
+ function v({ receivable: e, pdfUrl: n, paymentReminder: r, overdueReminder: c, depositAccount: l, isAccountListIncomplete: p, statusLabels: v, messages: y, now: b }) {
199
+ if (!e || e.type !== "invoice") return;
200
+ let x = e, S = (e) => o({
201
+ amount: e ?? 0,
202
+ currency: x.currency,
203
+ fallback: ""
204
+ }), C = (e) => a(e, "-"), w = (e) => e ? C(e) : y.detailsPending, { status: T } = x, E = T === "canceled", D = T === "overdue" ? f(x.due_date, b) : 0, { amountTone: O, amountRows: k } = g(x, S, y), A = x.counterpart_contact, j = h(x.counterpart_billing_address), M = [
205
+ ...x.counterpart_name ? [{
206
+ label: y.detailsCustomerName,
207
+ value: x.counterpart_name
208
+ }] : [],
209
+ ...A?.email ? [{
210
+ label: y.detailsCustomerEmail,
211
+ value: A.email
212
+ }] : [],
213
+ ...A?.phone ? [{
214
+ label: y.detailsCustomerPhone,
215
+ value: A.phone
216
+ }] : [],
217
+ ...j ? [{
218
+ label: y.detailsCustomerAddress,
219
+ value: j
220
+ }] : []
221
+ ], N = [
222
+ ...x.document_id ? [{
223
+ label: y.detailsInvoiceNumber,
224
+ value: x.document_id
225
+ }] : [],
226
+ {
227
+ label: y.detailsInvoiceAmount,
228
+ value: S(x.total_amount)
229
+ },
230
+ {
231
+ label: y.detailsInvoiceDate,
232
+ value: w(x.issue_date)
233
+ },
234
+ {
235
+ label: y.detailsDueDate,
236
+ value: w(x.due_date)
237
+ },
238
+ {
239
+ label: y.detailsPaymentTerms,
240
+ value: x.payment_terms?.name ?? y.detailsPending
241
+ },
242
+ {
243
+ label: y.detailsPaymentReminders,
244
+ value: m({
245
+ paymentReminder: r,
246
+ overdueReminder: c,
247
+ remindersConfigured: !!(x.payment_reminder_id || x.overdue_reminder_id),
248
+ messages: y
249
+ })
250
+ },
251
+ ...x.purchase_order ? [{
252
+ label: y.detailsPoNumber,
253
+ value: x.purchase_order
254
+ }] : [],
255
+ {
256
+ label: y.detailsDepositAccount,
257
+ value: l ? s(l, y) : p && x.bank_account_id ? "-" : y.detailsNotProvided
108
258
  }
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
- }
259
+ ], P = i(x), F = u[T] ?? {
260
+ primary: [],
261
+ overflow: ["clone"]
262
+ };
125
263
  return {
126
- errors: i,
127
- listError: a
264
+ id: x.id,
265
+ type: x.type,
266
+ title: x.counterpart_name ?? y.invoiceType,
267
+ status: T,
268
+ statusTone: d[T] ?? "neutral",
269
+ pdfUrl: n || x.file_url || x.original_file_url || void 0,
270
+ lineItems: x.line_items.map((e, t) => ({
271
+ id: `${e.product.id ?? "item"}-${t}`,
272
+ name: e.product.name,
273
+ quantityLabel: String(e.quantity),
274
+ unitPriceLabel: S(e.product.price?.value),
275
+ totalLabel: S(e.total_before_tax ?? (e.product.price?.value ?? 0) * e.quantity)
276
+ })),
277
+ panel: {
278
+ subtitle: x.document_id ? y.detailsInvoiceSubtitle.replace("{number}", x.document_id) : void 0,
279
+ statusLabel: T === "partially_paid" ? v.issued : v[T] ?? v.unknown,
280
+ recurring: !!x.recurrence_id || T === "recurring",
281
+ overdueLabel: D > 0 ? y.detailsDaysOverdue.replace("{days}", String(D)) : void 0,
282
+ amountTone: O,
283
+ amountRows: k,
284
+ issueDateLabel: w(x.issue_date),
285
+ dueDateLabel: E ? C(x.updated_at) : w(x.due_date),
286
+ dueDateCaption: E ? y.detailsCancelledOnCaption : y.detailsDueDate,
287
+ customerContact: M,
288
+ billingItems: N,
289
+ lineItemsCountLabel: String(x.line_items.length),
290
+ lineItemTotals: _(x, S, y),
291
+ notes: P && {
292
+ ...P,
293
+ countLabel: String([P.opening, P.closing].filter(Boolean).length)
294
+ },
295
+ attachments: t(x, y),
296
+ primaryActions: F.primary,
297
+ overflowActions: F.overflow
298
+ }
299
+ };
300
+ }
301
+ function y(e, t) {
302
+ if (e && e.type !== "invoice") return {
303
+ title: t.detailsUnsupportedTitle,
304
+ description: t.detailsUnsupportedDescription.replace("{type}", e.type)
128
305
  };
129
306
  }
130
307
  //#endregion
131
- export { e as UNSUBMITTED_PAYLOAD_VARIANTS, y as apiValidationErrorsToFormErrors, h as getApiErrorMessage, u as parseApiValidationErrors, f as summarizeApiValidationErrors, g as toCreatePayloadPath };
308
+ export { v as buildReceivableDetailsView, y as buildUnsupportedDetailsView, m as formatReminderSchedule, f as getDaysOverdue };
@@ -2,154 +2,47 @@
2
2
  "use client";
3
3
  "use client";
4
4
  "use client";
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";
5
+ import { useWidgetConfig as e } from "../../../shared/feature/dist/lib/WidgetProvider/hooks.js";
6
+ import "../../../shared/feature/dist/index.js";
7
+ import { usePaymentAccountsQuery as t } from "../../data-access/dist/index3.js";
8
+ import { useReceivablePdfLinkQuery as n, useReceivableQuery as r } from "../../data-access/dist/index10.js";
9
+ import { useOverdueRemindersQuery as i, usePaymentRemindersQuery as a } from "../../data-access/dist/index11.js";
7
10
  import "../../data-access/dist/index.js";
8
- import { useCallback as i, useEffect as a, useRef as o, useState as s } from "react";
11
+ import { getBankAccountPermissions as o } from "./index19.js";
12
+ import { buildReceivableDetailsView as s, buildUnsupportedDetailsView as c } from "./index21.js";
13
+ import { useMemo as l } from "react";
9
14
  //#region ../../libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index22.js
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));
60
- }
61
- }, [
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);
90
- }
91
- o.length > 0 && m((e) => [...e, ...o]), g(s);
92
- }, [
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,
133
- O,
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]);
15
+ function u({ selectedReceivableId: u, enabled: d = !0, messages: f, statusLabels: p }) {
16
+ let { initResponse: m } = e(), h = l(() => o(m?.scopes), [m?.scopes]), g = r(u, { enabled: d }), _ = g.data, v = _?.type === "invoice" ? _ : void 0, y = n(u, { enabled: d && !!_ }), b = a({ enabled: d && !!v?.payment_reminder_id }), x = i({ enabled: d && !!v?.overdue_reminder_id }), S = t({
17
+ enabled: d && !!v,
18
+ canReadEmbedded: h.canReadEmbedded,
19
+ canReadExternal: h.canReadExternal
20
+ }), C = b.data?.data.find((e) => e.id === v?.payment_reminder_id), w = x.data?.data.find((e) => e.id === v?.overdue_reminder_id), T = S.paymentAccounts.find((e) => e.id === v?.bank_account_id), E = y.data?.file_url || y.data?.original_file_url || void 0;
142
21
  return {
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
22
+ receivable: _,
23
+ detailsView: l(() => s({
24
+ receivable: _,
25
+ pdfUrl: E,
26
+ paymentReminder: C,
27
+ overdueReminder: w,
28
+ depositAccount: T,
29
+ isAccountListIncomplete: S.isIncomplete,
30
+ statusLabels: p,
31
+ messages: f
32
+ }), [
33
+ _,
34
+ E,
35
+ C,
36
+ w,
37
+ T,
38
+ S.isIncomplete,
39
+ p,
40
+ f
41
+ ]),
42
+ unsupportedView: l(() => c(_, f), [_, f]),
43
+ isLoading: g.isLoading || y.isLoading,
44
+ isError: g.isError
152
45
  };
153
46
  }
154
47
  //#endregion
155
- export { c as useReceivableAttachmentUploads };
48
+ export { u as useReceivableDetails };