@tesouro/embedded-components-react 0.3.22 → 0.3.23

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 (91) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/lib/BillPayWidget.js +1 -1
  3. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index.js +15 -15
  4. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index10.js +31 -32
  5. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index11.js +42 -1
  6. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index12.js +158 -43
  7. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index13.js +33 -4
  8. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index14.js +1 -16
  9. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index15.js +45 -12
  10. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index16.js +4 -64
  11. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index17.js +13 -26
  12. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index18.js +14 -62
  13. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index19.js +56 -123
  14. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index2.js +18 -3
  15. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index20.js +15 -10
  16. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index21.js +61 -40
  17. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index22.js +130 -50
  18. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index23.js +20 -4
  19. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index24.js +38 -69
  20. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index25.js +48 -46
  21. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index26.js +5 -93
  22. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index27.js +71 -34
  23. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index28.js +48 -139
  24. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index29.js +91 -66
  25. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index3.js +22 -5
  26. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index30.js +34 -22
  27. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index31.js +144 -210
  28. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index32.js +63 -209
  29. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index33.js +21 -103
  30. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index34.js +209 -12
  31. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index35.js +211 -44
  32. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index36.js +104 -30
  33. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index37.js +12 -165
  34. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index38.js +47 -35
  35. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index39.js +29 -99
  36. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index4.js +64 -5
  37. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index40.js +166 -12
  38. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index41.js +34 -243
  39. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index42.js +104 -4
  40. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index43.js +12 -27
  41. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index44.js +259 -81
  42. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index45.js +4 -145
  43. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index46.js +33 -3
  44. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index47.js +82 -2
  45. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index48.js +155 -37
  46. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index49.js +2 -0
  47. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index5.js +2 -6
  48. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index50.js +2 -6
  49. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index51.js +43 -9
  50. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index52.js +1 -94
  51. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index53.js +8 -3
  52. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index54.js +7 -5
  53. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index55.js +85 -13
  54. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index56.js +3 -59
  55. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index57.js +9 -3
  56. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index58.js +19 -120
  57. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index59.js +56 -8
  58. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index6.js +3 -32
  59. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index60.js +3 -46
  60. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index61.js +116 -15
  61. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index62.js +8 -28
  62. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index63.js +43 -83
  63. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index64.js +19 -47
  64. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index65.js +27 -249
  65. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index66.js +82 -109
  66. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index67.js +47 -206
  67. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index68.js +253 -4
  68. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index69.js +111 -6
  69. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index7.js +6 -39
  70. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index70.js +197 -102
  71. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index71.js +3 -0
  72. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index72.js +6 -23
  73. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index73.js +114 -0
  74. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index74.js +1 -0
  75. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index75.js +25 -0
  76. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index8.js +5 -24
  77. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index9.js +3 -162
  78. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index.js +9 -6
  79. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index82.js +10 -11
  80. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index83.js +123 -8
  81. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index84.js +2 -170
  82. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index85.js +18 -2
  83. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index86.js +7 -11
  84. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index87.js +163 -82
  85. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index88.js +1 -1
  86. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index89.js +14 -0
  87. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index90.js +89 -0
  88. package/dist/libs/tesouro-embedded-components-react/bill-pay-widget/ui/dist/index91.js +2 -0
  89. package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
  90. package/dist/libs/tesouro-embedded-components-react/widget-suite/feature/dist/index7.js +1 -1
  91. package/package.json +1 -1
@@ -1,8 +1,24 @@
1
- import { formatMoneyExact as e } from "../../../shared/util/dist/lib/formatMoneyExact.js";
1
+ "use client";
2
+ "use client";
3
+ "use client";
4
+ "use client";
5
+ import { hasAnyScope as e } from "../../../shared/data-access/dist/lib/hasAnyScope.js";
6
+ import { Scope as t } from "../../../shared/data-access/dist/lib/scopes.js";
7
+ import "../../../shared/data-access/dist/index.js";
8
+ import { formatCalendarDate as n } from "../../../shared/util/dist/lib/formatCalendarDate.js";
9
+ import { useWidgetConfig as r } from "../../../shared/feature/dist/lib/WidgetProvider/hooks.js";
10
+ import "../../../shared/feature/dist/index.js";
11
+ import { usePayablePaymentRecordsQuery as i } from "../../data-access/dist/index8.js";
2
12
  import "../../data-access/dist/index.js";
3
13
  //#region ../../libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index23.js
4
- function t(t, n) {
5
- if (typeof t == "number") return e(t / 100, { currencyCode: n ?? "USD" });
14
+ function a({ payableId: a, scheduledPaymentDate: o, enabled: s = !0 }) {
15
+ let { initResponse: c } = r(), l = e(c?.scopes, [t.PaymentRecordReadOrg]), u = i(s ? a : void 0, { enabled: s && l }), d = u.paymentRecords.find((e) => e.status === "created" || e.status === "processing"), f = !!d || !!o, p = d?.planned_payment_date ?? (f ? o : void 0);
16
+ return {
17
+ hasScheduledPayment: f,
18
+ isResolving: u.isResolving,
19
+ scheduledDateLabel: p ? n(p) : void 0,
20
+ scheduledPaymentRecordId: d?.id
21
+ };
6
22
  }
7
23
  //#endregion
8
- export { t as formatBillMoney };
24
+ export { a as useScheduledPayment };
@@ -1,75 +1,44 @@
1
- import { formatCalendarDate as e } from "../../../shared/util/dist/lib/formatCalendarDate.js";
2
- import { resolveAmountDueMinorUnits as t } from "./index2.js";
3
- import { resolveVendor as n } from "./index3.js";
4
- import { derivePayableStatus as r } from "./index22.js";
5
- import { formatBillMoney as i } from "./index23.js";
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 { hasAnyScope as t } from "../../../shared/data-access/dist/lib/hasAnyScope.js";
7
+ import { Scope as n } from "../../../shared/data-access/dist/lib/scopes.js";
8
+ import "../../../shared/data-access/dist/index.js";
9
+ import "../../../shared/ui/dist/index.js";
10
+ import { useWidgetConfig as r } from "../../../shared/feature/dist/lib/WidgetProvider/hooks.js";
11
+ import "../../../shared/feature/dist/index.js";
12
+ import { useDeletePayableMutation as i } from "../../data-access/dist/index10.js";
13
+ import "../../data-access/dist/index.js";
14
+ import { useState as a } from "react";
6
15
  //#region ../../libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index24.js
7
- function a({ payable: a, lineItems: o, glCodeOptions: s, history: c, approvalPolicy: l, labels: u, hasScheduledPayment: d }) {
8
- let f = a.currency, p = r({
9
- apiStatus: a.status,
10
- dueDate: a.due_date,
11
- scheduledPaymentDate: a.scheduled_payment_date,
12
- hasScheduledPayment: d
13
- }), m = n(a), h = m?.bank_account?.account_number, g = e(a.issued_at) || u.notProvided, _ = e(a.due_date) || u.notProvided, v = new Map(s.map((e) => [e.value, e.label])), y = [
14
- {
15
- label: u.subtotalRow,
16
- minorUnits: a.subtotal
17
- },
18
- {
19
- label: u.discountRow,
20
- minorUnits: a.discount
21
- },
22
- {
23
- label: u.taxRow,
24
- minorUnits: a.tax_amount
25
- }
26
- ].map((e) => ({
27
- label: e.label,
28
- value: i(e.minorUnits, f)
29
- })).filter((e) => !!e.value), b = i(a.total_amount, f);
30
- return b && y.push({
31
- label: u.totalRow,
32
- value: b,
33
- emphasis: !0
34
- }), {
35
- amountDue: i(t(a), f) ?? "",
36
- invoiceDateLabel: g,
37
- dueDateLabel: _,
38
- status: p.status,
39
- statusTone: p.tone,
40
- payTo: {
41
- name: m?.name || u.notProvided,
42
- email: m?.email ?? void 0,
43
- paymentInstructionsLabel: h ? u.paymentInstructionsValue(h.slice(-4)) : void 0
44
- },
45
- invoiceFields: [
46
- {
47
- label: u.invoiceDateRow,
48
- value: g
49
- },
50
- {
51
- label: u.dueDateRow,
52
- value: _
16
+ function o({ payableId: o, status: s, enabled: c = !0, labels: l, onDeleted: u }) {
17
+ let { initResponse: d } = r(), f = i(), [p, m] = a(!1), h = t(d?.scopes, [n.PayableWriteOrg]), g = !!(c && o && s === "draft" && h), _ = g ? [{
18
+ id: "deleteDraft",
19
+ label: l.menuItem,
20
+ destructive: !0,
21
+ onSelect: () => m(!0)
22
+ }] : [], v = p && g;
23
+ return {
24
+ menuItems: _,
25
+ dialog: {
26
+ open: v,
27
+ copy: v ? l.dialog : void 0,
28
+ isPending: f.isPending,
29
+ onCancel: () => {
30
+ f.isPending || m(!1);
53
31
  },
54
- {
55
- label: u.invoiceNumberRow,
56
- value: a.document_id || u.notProvided
32
+ onConfirm: () => {
33
+ !g || !o || f.isPending || f.mutate({ path: { payable_id: o } }, {
34
+ onError: () => e.error(l.error),
35
+ onSuccess: () => {
36
+ m(!1), u();
37
+ }
38
+ });
57
39
  }
58
- ],
59
- lineItems: o.map((e) => {
60
- let t = i(e.unit_price, f);
61
- return {
62
- id: e.id,
63
- description: e.name ?? e.description ?? "",
64
- glCodeLabel: (e.ledger_account_id ? v.get(e.ledger_account_id) : void 0) || u.glCodeMissing,
65
- qtyPriceLabel: e.quantity != null && t ? u.qtyPriceValue(String(e.quantity), t) : "",
66
- amount: i(e.subtotal, f) ?? ""
67
- };
68
- }),
69
- amountRows: y,
70
- approvalPolicy: l,
71
- history: c
40
+ }
72
41
  };
73
42
  }
74
43
  //#endregion
75
- export { a as buildBillDetailView };
44
+ export { o as useDraftDelete };
@@ -1,52 +1,54 @@
1
- import { BILL_STATUS_BADGE_LABELS_EN as e } from "../../ui/dist/index18.js";
2
- import "../../ui/dist/index.js";
3
- import { derivePayableStatus as t } from "./index22.js";
4
1
  //#region ../../libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index25.js
5
- var n = /* @__PURE__ */ new Set([
6
- "credit_note_linked",
7
- "credit_note_unlinked",
8
- "line_item_added",
9
- "line_item_updated",
10
- "line_item_removed",
11
- "deleted"
2
+ var e = /* @__PURE__ */ new Set([
3
+ "new",
4
+ "approve_in_progress",
5
+ "waiting_to_be_paid",
6
+ "partially_paid"
12
7
  ]);
13
- function r(n, r, i) {
14
- switch (n) {
15
- case "payable_created": return r?.source_of_payable_data === "ocr" ? i.billUploaded : i.billAdded;
16
- case "payable_updated": return i.billUpdated;
17
- case "file_attached": return i.attachmentAdded;
18
- case "submitted_for_approval": return i.submittedForApproval;
19
- case "approval_requested": return i.approvalRequested;
20
- case "approval_action": {
21
- let e = r?.action, t = r?.reject_reason;
22
- return e === "approve" ? i.approved : e === "reject" ? typeof t == "string" && t ? i.rejectedWithReason(t) : i.rejected : void 0;
23
- }
24
- case "auto_approved": return i.autoApproved;
25
- case "reopened": return i.reopened;
26
- case "marked_as_paid": return i.markedAsPaid;
27
- case "marked_as_partially_paid": return i.markedAsPartiallyPaid;
28
- case "payment_reverted": return i.paymentReverted;
29
- case "status_changed": {
30
- let n = r?.new_status;
31
- if (typeof n != "string") return;
32
- let a = t({ apiStatus: n }).status;
33
- return i.statusChanged(e[a] ?? e.unknown);
34
- }
35
- default: return;
36
- }
8
+ function t(e, t) {
9
+ let n = /* @__PURE__ */ new Date(`${e.slice(0, 10)}T00:00:00Z`), r = Date.UTC(t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate());
10
+ return n.getTime() < r;
37
11
  }
38
- function i(e, t, i) {
39
- let a = new Map(t.map((e) => [e.id, e.name]));
40
- return e.filter((e) => !n.has(e.event_type)).map((e) => {
41
- let t = r(e.event_type, e.event_data, i);
42
- if (!t) return;
43
- let n = e.entity_user_id ? a.get(e.entity_user_id) : void 0;
44
- return {
45
- id: e.id,
46
- dateLabel: i.dateLabel(e.timestamp),
47
- description: n ? i.byActor(t, n) : t
12
+ function n({ apiStatus: n, dueDate: r, scheduledPaymentDate: i, hasScheduledPayment: a = !!i, now: o = /* @__PURE__ */ new Date() }) {
13
+ if (e.has(n) && a) return {
14
+ status: "scheduled",
15
+ tone: "accent"
16
+ };
17
+ if (e.has(n) && r && t(r, o)) return {
18
+ status: "overdue",
19
+ tone: "danger"
20
+ };
21
+ switch (n) {
22
+ case "draft": return {
23
+ status: "draft",
24
+ tone: "neutral"
25
+ };
26
+ case "new":
27
+ case "approve_in_progress": return {
28
+ status: "pending_approval",
29
+ tone: "warning"
30
+ };
31
+ case "waiting_to_be_paid": return {
32
+ status: "ready_to_pay",
33
+ tone: "info"
48
34
  };
49
- }).filter((e) => !!e);
35
+ case "partially_paid": return {
36
+ status: "partially_paid",
37
+ tone: "success"
38
+ };
39
+ case "paid": return {
40
+ status: "paid",
41
+ tone: "success"
42
+ };
43
+ case "canceled": return {
44
+ status: "canceled",
45
+ tone: "muted"
46
+ };
47
+ case "rejected": return {
48
+ status: "rejected",
49
+ tone: "danger"
50
+ };
51
+ }
50
52
  }
51
53
  //#endregion
52
- export { i as buildBillHistory };
54
+ export { n as derivePayableStatus };
@@ -1,96 +1,8 @@
1
+ import { formatMoneyExact as e } from "../../../shared/util/dist/lib/formatMoneyExact.js";
2
+ import "../../data-access/dist/index.js";
1
3
  //#region ../../libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index26.js
2
- var e = {
3
- payBill: "Pay bill",
4
- markAsPaid: "Mark as paid",
5
- reject: "Reject",
6
- approve: "Approve",
7
- cancel: "Cancel bill",
8
- cancelScheduledPayment: "Cancel scheduled payment",
9
- reopen: "Reopen bill",
10
- forceApprove: "Approve",
11
- forceReject: "Reject",
12
- policyOverridesHeading: "Policy overrides",
13
- decisionDialog: {
14
- reject: {
15
- title: "Reject this bill?",
16
- description: "The bill goes back as rejected and nobody else is asked to approve it.",
17
- confirmButton: "Reject bill",
18
- reason: {
19
- label: "Reason",
20
- placeholder: "Tell the submitter what needs to change",
21
- optionalHint: "Optional"
22
- }
23
- },
24
- cancel: {
25
- title: "Cancel this bill?",
26
- description: "Cancelling is permanent. The bill can't be reopened, edited, or paid afterwards.",
27
- confirmButton: "Cancel bill"
28
- },
29
- cancelScheduledPayment: {
30
- title: "Cancel this scheduled payment?",
31
- description: "The payment will not be sent. The bill stays ready to pay, so you can schedule it again for another date.",
32
- confirmButton: "Cancel payment"
33
- },
34
- forceApprove: {
35
- title: "Override approval policy?",
36
- description: "The below people haven't approved this bill yet. Approving now will bypass their required review. This will be recorded in the audit history and can't be undone.",
37
- confirmButton: "Override and approve"
38
- },
39
- forceReject: {
40
- title: "Override approval policy?",
41
- description: "The below people haven't approved this bill yet. Rejecting now will bypass their required review. This will be recorded in the audit history and can't be undone.",
42
- confirmButton: "Override and reject"
43
- },
44
- cancelButton: "Cancel"
45
- },
46
- actionError: "Couldn't update this bill. Try again.",
47
- actionSuccess: {
48
- approve: "Bill approved.",
49
- reject: "Bill rejected.",
50
- markAsPaid: "Bill marked as paid.",
51
- cancel: "Bill canceled.",
52
- cancelScheduledPayment: "Scheduled payment canceled.",
53
- reopen: "Bill reopened.",
54
- forceApprove: "Bill approved, overriding the approval policy.",
55
- forceReject: "Bill rejected, overriding the approval policy."
56
- }
57
- }, t = (e) => `Payment scheduled for ${e}`, n = [
58
- "reject",
59
- "cancel",
60
- "cancelScheduledPayment",
61
- "forceApprove",
62
- "forceReject"
63
- ];
64
- function r(e, t) {
65
- let n = e.reason ? {
66
- ...e.reason,
67
- ...t?.reason
68
- } : void 0, r = {
69
- ...e,
70
- ...t,
71
- reason: n
72
- };
73
- return n || delete r.reason, r;
74
- }
75
- function i(e, t) {
76
- let i = {
77
- ...e,
78
- ...t
79
- };
80
- for (let a of n) i[a] = r(e[a], t?.[a]);
81
- return i;
82
- }
83
- function a(t) {
84
- let n = e;
85
- return {
86
- ...n,
87
- ...t,
88
- decisionDialog: i(n.decisionDialog, t?.decisionDialog),
89
- actionSuccess: {
90
- ...n.actionSuccess,
91
- ...t?.actionSuccess
92
- }
93
- };
4
+ function t(t, n) {
5
+ if (typeof t == "number") return e(t / 100, { currencyCode: n ?? "USD" });
94
6
  }
95
7
  //#endregion
96
- export { e as BILL_DETAIL_ACTIONS_LABELS_EN, t as SCHEDULED_SUMMARY_LABEL_EN, a as mergeBillDetailActionsLabels, i as mergeDecisionDialogCopy };
8
+ export { t as formatBillMoney };
@@ -1,38 +1,75 @@
1
- import { jsx as e, jsxs as t } from "react/jsx-runtime";
1
+ import { formatCalendarDate as e } from "../../../shared/util/dist/lib/formatCalendarDate.js";
2
+ import { resolveAmountDueMinorUnits as t } from "./index6.js";
3
+ import { resolveVendor as n } from "./index7.js";
4
+ import { derivePayableStatus as r } from "./index25.js";
5
+ import { formatBillMoney as i } from "./index26.js";
2
6
  //#region ../../libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index27.js
3
- var n = {
4
- previewUnavailable: "Preview not available for this file type.",
5
- openFile: "Open file"
6
- };
7
- function r(r, i = {}) {
8
- if (r.mimetype === "application/pdf") return /* @__PURE__ */ e("iframe", {
9
- src: `${r.url}#toolbar=0&navpanes=0`,
10
- title: r.name,
11
- referrerPolicy: "no-referrer",
12
- className: "ttw:h-full ttw:w-full ttw:border-0"
13
- });
14
- if (r.mimetype.startsWith("image/")) return /* @__PURE__ */ e("img", {
15
- src: r.url,
16
- alt: r.name,
17
- className: "ttw:max-h-full ttw:max-w-full ttw:object-contain"
18
- });
19
- let a = {
20
- ...n,
21
- ...i
7
+ function a({ payable: a, lineItems: o, glCodeOptions: s, history: c, approvalPolicy: l, labels: u, hasScheduledPayment: d }) {
8
+ let f = a.currency, p = r({
9
+ apiStatus: a.status,
10
+ dueDate: a.due_date,
11
+ scheduledPaymentDate: a.scheduled_payment_date,
12
+ hasScheduledPayment: d
13
+ }), m = n(a), h = m?.bank_account?.account_number, g = e(a.issued_at) || u.notProvided, _ = e(a.due_date) || u.notProvided, v = new Map(s.map((e) => [e.value, e.label])), y = [
14
+ {
15
+ label: u.subtotalRow,
16
+ minorUnits: a.subtotal
17
+ },
18
+ {
19
+ label: u.discountRow,
20
+ minorUnits: a.discount
21
+ },
22
+ {
23
+ label: u.taxRow,
24
+ minorUnits: a.tax_amount
25
+ }
26
+ ].map((e) => ({
27
+ label: e.label,
28
+ value: i(e.minorUnits, f)
29
+ })).filter((e) => !!e.value), b = i(a.total_amount, f);
30
+ return b && y.push({
31
+ label: u.totalRow,
32
+ value: b,
33
+ emphasis: !0
34
+ }), {
35
+ amountDue: i(t(a), f) ?? "",
36
+ invoiceDateLabel: g,
37
+ dueDateLabel: _,
38
+ status: p.status,
39
+ statusTone: p.tone,
40
+ payTo: {
41
+ name: m?.name || u.notProvided,
42
+ email: m?.email ?? void 0,
43
+ paymentInstructionsLabel: h ? u.paymentInstructionsValue(h.slice(-4)) : void 0
44
+ },
45
+ invoiceFields: [
46
+ {
47
+ label: u.invoiceDateRow,
48
+ value: g
49
+ },
50
+ {
51
+ label: u.dueDateRow,
52
+ value: _
53
+ },
54
+ {
55
+ label: u.invoiceNumberRow,
56
+ value: a.document_id || u.notProvided
57
+ }
58
+ ],
59
+ lineItems: o.map((e) => {
60
+ let t = i(e.unit_price, f);
61
+ return {
62
+ id: e.id,
63
+ description: e.name ?? e.description ?? "",
64
+ glCodeLabel: (e.ledger_account_id ? v.get(e.ledger_account_id) : void 0) || u.glCodeMissing,
65
+ qtyPriceLabel: e.quantity != null && t ? u.qtyPriceValue(String(e.quantity), t) : "",
66
+ amount: i(e.subtotal, f) ?? ""
67
+ };
68
+ }),
69
+ amountRows: y,
70
+ approvalPolicy: l,
71
+ history: c
22
72
  };
23
- return /* @__PURE__ */ t("div", {
24
- className: "ttw:flex ttw:h-full ttw:w-full ttw:flex-col ttw:items-center ttw:justify-center ttw:gap-2 ttw:p-4 ttw:text-center",
25
- children: [/* @__PURE__ */ e("p", {
26
- className: "ttw:text-sm ttw:text-muted-foreground",
27
- children: a.previewUnavailable
28
- }), /* @__PURE__ */ e("a", {
29
- href: r.url,
30
- target: "_blank",
31
- rel: "noreferrer",
32
- className: "ttw:text-sm ttw:font-medium ttw:text-primary ttw:underline ttw:underline-offset-2",
33
- children: a.openFile
34
- })]
35
- });
36
73
  }
37
74
  //#endregion
38
- export { n as SOURCE_DOCUMENT_PREVIEW_LABELS_EN, r as createSourceDocumentPreview };
75
+ export { a as buildBillDetailView };
@@ -1,143 +1,52 @@
1
- import { PAY_BILL_FLOW_LABELS_EN as e, mergePayBillFlowLabels as t } from "./index7.js";
2
- import { APPROVAL_POLICY_RULE_COPY_EN as n } from "./index12.js";
3
- import { BILL_DETAIL_ACTIONS_LABELS_EN as r, SCHEDULED_SUMMARY_LABEL_EN as i, mergeBillDetailActionsLabels as a } from "./index26.js";
4
- import { SOURCE_DOCUMENT_PREVIEW_LABELS_EN as o } from "./index27.js";
1
+ import { BILL_STATUS_BADGE_LABELS_EN as e } from "../../ui/dist/index18.js";
2
+ import "../../ui/dist/index.js";
3
+ import { derivePayableStatus as t } from "./index25.js";
5
4
  //#region ../../libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index28.js
6
- var s = {
7
- unmappedValidationError: (e, t) => `${e}: ${t}`,
8
- unknownValidationField: "(unknown field)",
9
- requiredField: "This field is required.",
10
- saveFailed: "We could not save this bill. Try again.",
11
- finalizeFailed: "We could not submit this bill. Try again.",
12
- draftSaved: "Bill saved as a draft.",
13
- billFinalized: "Bill submitted for approval.",
14
- unreadableMoney: "Enter a valid amount.",
15
- unusableQuantity: "Enter a quantity greater than 0.",
16
- lineItemsNeedAttention: "Check the highlighted line items before saving.",
17
- totalsNeedAttention: "Enter valid amounts for discount, tax, and total."
18
- }, c = {
19
- achMethod: "via ACH bank transfer",
20
- noMethod: "No payment method on file",
21
- accountHolder: "Account holder",
22
- routingNumber: "Routing number",
23
- accountNumber: "Account number",
24
- paymentMethodLoading: "Loading payment method...",
25
- paymentMethodUnavailable: "We could not load payment methods. Try again.",
26
- searchFailed: "We could not load vendors. Try again.",
27
- vendorDetailsFailed: "We could not load this vendor. Try again."
28
- }, l = {
29
- attachFailed: "We could not attach that file. Try again.",
30
- noDocument: "No document attached to this bill.",
31
- preview: o
32
- }, u = {
33
- notProvided: "Not provided",
34
- paymentInstructionsValue: (e) => `Account ending in ${e}`,
35
- invoiceDateRow: "Invoice date",
36
- dueDateRow: "Due date",
37
- invoiceNumberRow: "Invoice number",
38
- glCodeMissing: "GL code not specified",
39
- qtyPriceValue: (e, t) => `${e} x ${t}`,
40
- subtotalRow: "Subtotal",
41
- taxRow: "Tax",
42
- discountRow: "Discounts",
43
- totalRow: "Total",
44
- paymentInstructionsSaveError: "Couldn't save payment instructions. Try again.",
45
- paymentInstructionsLinkError: "Payment instructions were saved to the vendor, but couldn't be added to this bill. Try again."
46
- }, d = {
47
- dateLabel: (e) => new Date(e).toLocaleString("en-US", {
48
- month: "short",
49
- day: "numeric",
50
- year: "numeric",
51
- hour: "numeric",
52
- minute: "2-digit"
53
- }),
54
- byActor: (e, t) => `${e} by ${t}`,
55
- billAdded: "Bill added",
56
- billUploaded: "Bill uploaded",
57
- billUpdated: "Bill updated",
58
- attachmentAdded: "Attachment added",
59
- submittedForApproval: "Submitted for approval",
60
- approvalRequested: "Approval requested",
61
- approved: "Approved",
62
- autoApproved: "Approved automatically",
63
- rejected: "Rejected",
64
- rejectedWithReason: (e) => `Rejected: ${e}`,
65
- reopened: "Reopened",
66
- markedAsPaid: "Marked as paid",
67
- markedAsPartiallyPaid: "Marked as partially paid",
68
- paymentReverted: "Payment reverted",
69
- statusChanged: (e) => `Status changed to ${e}`
70
- }, f = {
71
- newTitle: "New bill",
72
- extractedTitle: (e) => `Bill from ${e}`,
73
- viewTitle: (e) => `Bill from ${e}`,
74
- readOnlyTitle: "Bill details",
75
- addedOn: (e) => `Added on ${e}`,
76
- discardConfirm: "Discard your changes to this bill?",
77
- scheduledSummary: i,
78
- actions: r,
79
- detail: u,
80
- history: d,
81
- payBill: e,
82
- approvalPolicyCopy: n,
83
- deleteDraft: {
84
- menuItem: "Delete draft",
85
- dialog: {
86
- title: "Delete this draft?",
87
- description: "The draft and anything entered on it are removed. This can't be undone.",
88
- confirmButton: "Delete draft"
89
- },
90
- error: "Couldn't delete this draft. Try again."
91
- }
92
- };
93
- function p(e) {
94
- return {
95
- ...f,
96
- ...e,
97
- actions: a(e?.actions),
98
- detail: {
99
- ...f.detail,
100
- ...e?.detail
101
- },
102
- history: {
103
- ...f.history,
104
- ...e?.history
105
- },
106
- payBill: t(e?.payBill),
107
- approvalPolicyCopy: {
108
- ...f.approvalPolicyCopy,
109
- ...e?.approvalPolicyCopy
110
- },
111
- deleteDraft: {
112
- ...f.deleteDraft,
113
- ...e?.deleteDraft,
114
- dialog: (() => {
115
- let t = {
116
- ...f.deleteDraft.dialog,
117
- ...e?.deleteDraft?.dialog
118
- };
119
- return delete t.reason, t;
120
- })()
5
+ var n = /* @__PURE__ */ new Set([
6
+ "credit_note_linked",
7
+ "credit_note_unlinked",
8
+ "line_item_added",
9
+ "line_item_updated",
10
+ "line_item_removed",
11
+ "deleted"
12
+ ]);
13
+ function r(n, r, i) {
14
+ switch (n) {
15
+ case "payable_created": return r?.source_of_payable_data === "ocr" ? i.billUploaded : i.billAdded;
16
+ case "payable_updated": return i.billUpdated;
17
+ case "file_attached": return i.attachmentAdded;
18
+ case "submitted_for_approval": return i.submittedForApproval;
19
+ case "approval_requested": return i.approvalRequested;
20
+ case "approval_action": {
21
+ let e = r?.action, t = r?.reject_reason;
22
+ return e === "approve" ? i.approved : e === "reject" ? typeof t == "string" && t ? i.rejectedWithReason(t) : i.rejected : void 0;
23
+ }
24
+ case "auto_approved": return i.autoApproved;
25
+ case "reopened": return i.reopened;
26
+ case "marked_as_paid": return i.markedAsPaid;
27
+ case "marked_as_partially_paid": return i.markedAsPartiallyPaid;
28
+ case "payment_reverted": return i.paymentReverted;
29
+ case "status_changed": {
30
+ let n = r?.new_status;
31
+ if (typeof n != "string") return;
32
+ let a = t({ apiStatus: n }).status;
33
+ return i.statusChanged(e[a] ?? e.unknown);
121
34
  }
122
- };
35
+ default: return;
36
+ }
37
+ }
38
+ function i(e, t, i) {
39
+ let a = new Map(t.map((e) => [e.id, e.name]));
40
+ return e.filter((e) => !n.has(e.event_type)).map((e) => {
41
+ let t = r(e.event_type, e.event_data, i);
42
+ if (!t) return;
43
+ let n = e.entity_user_id ? a.get(e.entity_user_id) : void 0;
44
+ return {
45
+ id: e.id,
46
+ dateLabel: i.dateLabel(e.timestamp),
47
+ description: n ? i.byActor(t, n) : t
48
+ };
49
+ }).filter((e) => !!e);
123
50
  }
124
- var m = {
125
- createTitle: "New vendor",
126
- editTitle: "Edit vendor",
127
- close: "Close the vendor form",
128
- nameLabel: "Name",
129
- addAddress: "Add address (optional)",
130
- paymentMethodsHeading: "Accepted payment methods",
131
- paymentMethodsDescription: "How and where will the money be sent. Don't have these yet? No problem. You can save this vendor and add their payment details later — you just won't be able to send payments until you do.",
132
- achTitle: "ACH bank transfer",
133
- achDescription: "Fast, direct deposit to the vendor's bank. Arrives in 1–3 business days.",
134
- addBankAccount: "Add bank account",
135
- accountHolderNameLabel: "Account holder name",
136
- routingNumberLabel: "Routing number",
137
- accountNumberLabel: "Account number",
138
- achHelp: "Ask your vendor for this — it's usually on their invoice, W-9, or a payment instructions email they send you.",
139
- cancel: "Cancel",
140
- save: "Save vendor"
141
- };
142
51
  //#endregion
143
- export { s as BILL_CREATE_MESSAGE_LABELS_EN, f as BILL_CREATE_SCREEN_LABELS_EN, u as BILL_DETAIL_VIEW_LABELS_EN, d as BILL_HISTORY_LABELS_EN, l as SOURCE_DOCUMENT_CONTAINER_LABELS_EN, m as VENDOR_INLINE_FORM_LABELS_EN, c as VENDOR_SECTION_PROPS_LABELS_EN, p as mergeBillCreateScreenCopy };
52
+ export { i as buildBillHistory };