@tesouro/embedded-components-react 0.5.187 → 0.5.189

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 (99) hide show
  1. package/README.md +19 -9
  2. package/dist/index.css +110 -0
  3. package/dist/index.d.ts +233 -60
  4. package/dist/index.js +6 -6
  5. package/dist/lib/ExpenseManagementWidget.d.ts +189 -11
  6. package/dist/lib/ExpenseManagementWidget.js +1 -1
  7. package/dist/lib/UploadReceiptWidget.js +1 -1
  8. package/dist/lib/WidgetSuite.d.ts +213 -16
  9. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index.js +17 -3
  10. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index10.js +36 -0
  11. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index11.js +71 -0
  12. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index12.js +39 -0
  13. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index13.js +32 -0
  14. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index14.js +110 -0
  15. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index15.js +33 -0
  16. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index16.js +19 -0
  17. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index17.js +33 -0
  18. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index18.js +28 -0
  19. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index19.js +35 -0
  20. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index20.js +28 -0
  21. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index21.js +164 -0
  22. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index4.js +25 -18
  23. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index5.js +20 -34
  24. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index6.js +16 -20
  25. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index7.js +16 -0
  26. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index8.js +32 -0
  27. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/data-access/dist/index9.js +26 -0
  28. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index.js +10 -7
  29. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index10.js +162 -59
  30. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index11.js +64 -16
  31. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index12.js +73 -2
  32. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index13.js +348 -42
  33. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index14.js +42 -1
  34. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index15.js +143 -0
  35. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index16.js +229 -0
  36. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index17.js +196 -0
  37. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index18.js +13 -0
  38. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index19.js +91 -0
  39. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index2.js +89 -2
  40. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index20.js +39 -0
  41. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index21.js +297 -0
  42. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index22.js +1 -0
  43. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index23.js +4 -0
  44. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index24.js +256 -0
  45. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index25.js +22 -0
  46. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index26.js +10 -0
  47. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index27.js +223 -0
  48. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index3.js +2 -254
  49. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index4.js +4 -20
  50. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index5.js +262 -8
  51. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index6.js +2 -221
  52. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index7.js +54 -80
  53. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index8.js +24 -254
  54. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index9.js +18 -2
  55. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/index.js +34 -13
  56. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/AccordionItemCard/AccordionItemCard.js +549 -0
  57. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/AccordionItemCard/labels.js +38 -0
  58. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ActionItemsList/ActionItemsList.js +64 -0
  59. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ActionItemsList/labels.js +7 -0
  60. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseStatusBadge/ExpenseStatusBadge.js +18 -0
  61. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseStatusBadge/badgeTones.js +16 -0
  62. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseStatusBadge/labels.js +13 -0
  63. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesHeader/ExpensesHeader.js +37 -0
  64. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesHeader/labels.js +7 -0
  65. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesScreen/ExpensesScreen.js +112 -0
  66. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesScreen/labels.js +11 -0
  67. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesTransactionsFilterBar/ExpensesTransactionsFilterBar.js +158 -0
  68. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesTransactionsFilterBar/labels.js +18 -0
  69. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesTransactionsTable/ExpensesTransactionsTable.js +148 -0
  70. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpensesTransactionsTable/labels.js +18 -0
  71. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/FileViewer/FileViewer.js +107 -0
  72. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/FileViewer/PdfFileViewer.js +37 -0
  73. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/FileViewer/labels.js +11 -0
  74. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ReceiptMatchWidget/lib/ReceiptMatchLauncher.js +2 -24
  75. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ReceiptMatchWidget/lib/ReceiptMatchSidebar.js +1 -1
  76. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ReceiptMatchWidget/lib/TransactionsMatchStep.js +62 -65
  77. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ReceiptMatchWidget/lib/labels.js +1 -4
  78. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetails/DeleteReceiptDialog/DeleteReceiptDialog.js +31 -0
  79. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetails/DeleteReceiptDialog/labels.js +9 -0
  80. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetails/TransactionDetails.js +268 -0
  81. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetails/labels.js +21 -0
  82. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetailsActions/BulkProgress.js +26 -0
  83. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetailsActions/TransactionDetailsActions.js +142 -0
  84. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/TransactionDetailsActions/labels.js +20 -0
  85. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/isPdf.js +7 -0
  86. package/dist/libs/tesouro-embedded-components-react/monite-sdk/dist/index109.js +55 -49
  87. package/dist/libs/tesouro-embedded-components-react/monite-sdk/dist/index56.js +24 -18
  88. package/dist/libs/tesouro-embedded-components-react/settings-widget/feature/dist/index5.js +2 -2
  89. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/index.js +36 -36
  90. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/@tanstack/react-query.gen.js +268 -206
  91. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/sdk.gen.js +218 -113
  92. package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
  93. package/dist/libs/tesouro-embedded-components-react/shared/util/dist/lib/formatCalendarDate.js +4 -4
  94. package/dist/libs/tesouro-embedded-components-react/widget-suite/feature/dist/index11.js +16 -14
  95. package/dist/libs/tesouro-embedded-components-react/widget-suite/feature/dist/index4.js +1 -2
  96. package/package.json +3 -3
  97. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseManagementWidgetUi/ExpenseManagementWidgetUi.js +0 -71
  98. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseManagementWidgetUi/index.js +0 -2
  99. package/dist/libs/tesouro-embedded-components-react/expense-management-widget/ui/dist/lib/ExpenseManagementWidgetUi/labels.js +0 -10
@@ -0,0 +1,229 @@
1
+ import { DATE_PRESETS as e, resolveDatePreset as t } from "./index15.js";
2
+ import { useCallback as n, useMemo as r, useState as i } from "react";
3
+ import { formatISO as a } from "date-fns";
4
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index16.js
5
+ var o = [
6
+ {
7
+ value: "capture",
8
+ label: "Capture"
9
+ },
10
+ {
11
+ value: "refund",
12
+ label: "Refund"
13
+ },
14
+ {
15
+ value: "cash_withdrawal",
16
+ label: "Cash withdrawal"
17
+ },
18
+ {
19
+ value: "fee",
20
+ label: "Fee"
21
+ }
22
+ ], s = [
23
+ {
24
+ value: "created",
25
+ label: "Created"
26
+ },
27
+ {
28
+ value: "processing",
29
+ label: "Processing"
30
+ },
31
+ {
32
+ value: "succeeded",
33
+ label: "Succeeded"
34
+ },
35
+ {
36
+ value: "declined",
37
+ label: "Declined"
38
+ },
39
+ {
40
+ value: "refunded",
41
+ label: "Refunded"
42
+ },
43
+ {
44
+ value: "failed",
45
+ label: "Failed"
46
+ }
47
+ ], c = [
48
+ {
49
+ value: "new",
50
+ label: "New"
51
+ },
52
+ {
53
+ value: "approve_in_progress",
54
+ label: "Approve in progress"
55
+ },
56
+ {
57
+ value: "approved",
58
+ label: "Approved"
59
+ },
60
+ {
61
+ value: "rejected",
62
+ label: "Rejected"
63
+ },
64
+ {
65
+ value: "canceled",
66
+ label: "Canceled"
67
+ }
68
+ ];
69
+ function l() {
70
+ return {
71
+ datePreset: void 0,
72
+ dateFrom: void 0,
73
+ dateTo: void 0,
74
+ paymentStatus: [],
75
+ approvalStatus: [],
76
+ types: [],
77
+ teamMemberIds: [],
78
+ amountMode: "any",
79
+ amountMin: "",
80
+ amountMax: "",
81
+ amountFlowDirection: "any",
82
+ cardOnly: !1,
83
+ search: ""
84
+ };
85
+ }
86
+ function u() {
87
+ let [u, d] = i(l), f = r(() => {
88
+ let e = {};
89
+ if (u.dateFrom && (e.created_at__gt = a(u.dateFrom)), u.dateTo && (e.created_at__lt = a(u.dateTo)), u.paymentStatus.length && (e.payment_processing_status__in = u.paymentStatus), u.approvalStatus.length && (e.expense_status__in = u.approvalStatus), u.types.length && (e.type__in = u.types.flatMap((e) => e.split(","))), u.teamMemberIds.length && (e.entity_user_id__in = u.teamMemberIds), u.cardOnly && (e.payment_method__in = ["card"]), u.amountMode !== "any") {
90
+ let t = parseFloat(u.amountMin), n = parseFloat(u.amountMax);
91
+ if (u.amountMode === "exact") {
92
+ if (!Number.isNaN(t)) {
93
+ let n = Math.round(t * 100);
94
+ e.amount__gt = n - 1, e.amount__lt = n + 1;
95
+ }
96
+ } else Number.isNaN(t) || (e.amount__gt = Math.round(t * 100)), Number.isNaN(n) || (e.amount__lt = Math.round(n * 100));
97
+ }
98
+ return u.search && (e.merchant_name__icontains = u.search), e;
99
+ }, [u]), p = r(() => {
100
+ let e = 0;
101
+ return u.paymentStatus.length && e++, u.approvalStatus.length && e++, u.types.length && e++, u.teamMemberIds.length && e++, u.cardOnly && e++, u.amountMode !== "any" && e++, u.search && e++, e;
102
+ }, [u]), m = r(() => {
103
+ let t = [];
104
+ if (u.datePreset || u.dateFrom || u.dateTo) {
105
+ let n = u.datePreset ? e.find((e) => e.value === u.datePreset)?.label ?? "Custom range" : "Custom range";
106
+ t.push({
107
+ key: "date",
108
+ label: `Date: ${n}`
109
+ });
110
+ }
111
+ return u.paymentStatus.length && t.push({
112
+ key: "paymentStatus",
113
+ label: "Payment Status",
114
+ count: u.paymentStatus.length
115
+ }), u.approvalStatus.length && t.push({
116
+ key: "approvalStatus",
117
+ label: "Approval Status",
118
+ count: u.approvalStatus.length
119
+ }), u.types.length && t.push({
120
+ key: "type",
121
+ label: "Type",
122
+ count: u.types.length
123
+ }), u.teamMemberIds.length && t.push({
124
+ key: "teamMember",
125
+ label: "Team member",
126
+ count: u.teamMemberIds.length
127
+ }), u.cardOnly && t.push({
128
+ key: "card",
129
+ label: "Card only"
130
+ }), u.amountMode !== "any" && t.push({
131
+ key: "amount",
132
+ label: "Amount"
133
+ }), u.search && t.push({
134
+ key: "search",
135
+ label: `Search: ${u.search}`
136
+ }), t;
137
+ }, [u]), h = n((e) => {
138
+ let { from: n, to: r } = t(e);
139
+ d((t) => ({
140
+ ...t,
141
+ datePreset: e,
142
+ dateFrom: n,
143
+ dateTo: r
144
+ }));
145
+ }, []), g = n((e, t) => {
146
+ d((n) => ({
147
+ ...n,
148
+ datePreset: void 0,
149
+ dateFrom: e,
150
+ dateTo: t
151
+ }));
152
+ }, []), _ = n((e) => {
153
+ d((t) => ({
154
+ ...t,
155
+ approvalStatus: e
156
+ }));
157
+ }, []), v = n((e) => {
158
+ switch (e) {
159
+ case "date":
160
+ d((e) => ({
161
+ ...e,
162
+ datePreset: void 0,
163
+ dateFrom: void 0,
164
+ dateTo: void 0
165
+ }));
166
+ break;
167
+ case "paymentStatus":
168
+ d((e) => ({
169
+ ...e,
170
+ paymentStatus: []
171
+ }));
172
+ break;
173
+ case "approvalStatus":
174
+ d((e) => ({
175
+ ...e,
176
+ approvalStatus: []
177
+ }));
178
+ break;
179
+ case "type":
180
+ d((e) => ({
181
+ ...e,
182
+ types: []
183
+ }));
184
+ break;
185
+ case "teamMember":
186
+ d((e) => ({
187
+ ...e,
188
+ teamMemberIds: []
189
+ }));
190
+ break;
191
+ case "card":
192
+ d((e) => ({
193
+ ...e,
194
+ cardOnly: !1
195
+ }));
196
+ break;
197
+ case "amount":
198
+ d((e) => ({
199
+ ...e,
200
+ amountMode: "any",
201
+ amountMin: "",
202
+ amountMax: ""
203
+ }));
204
+ break;
205
+ case "search": d((e) => ({
206
+ ...e,
207
+ search: ""
208
+ }));
209
+ }
210
+ }, []), y = n(() => d(l()), []);
211
+ return {
212
+ state: u,
213
+ setState: d,
214
+ queryParams: f,
215
+ activeFilterCount: p,
216
+ activeChips: m,
217
+ datePresets: e,
218
+ paymentStatusOptions: [...s],
219
+ approvalStatusOptions: [...c],
220
+ typeOptions: [...o],
221
+ setDatePreset: h,
222
+ setDateRange: g,
223
+ setApprovalStatus: _,
224
+ clearFilter: v,
225
+ clearAll: y
226
+ };
227
+ }
228
+ //#endregion
229
+ export { c as EM_APPROVAL_STATUS_OPTIONS, s as EM_PAYMENT_STATUS_OPTIONS, o as EM_TYPE_OPTIONS, u as useExpensesTransactionsFilter };
@@ -0,0 +1,196 @@
1
+ "use client";
2
+ "use client";
3
+ "use client";
4
+ "use client";
5
+ import { useWidgetConfig as e, useWidgetLoading as t } from "../../../shared/feature/dist/lib/WidgetProvider/hooks.js";
6
+ import "../../../shared/feature/dist/index.js";
7
+ import { useGetTransactionsQuery as n } from "../../data-access/dist/index3.js";
8
+ import { useOrganizationDepartmentsQuery as r } from "../../data-access/dist/index4.js";
9
+ import { useEntityUsersByIdsQuery as ee } from "../../data-access/dist/index5.js";
10
+ import "../../data-access/dist/index.js";
11
+ import { entityUserLabel as te } from "./index4.js";
12
+ import { mapTransactionRow as ne } from "./index14.js";
13
+ import { useExpensesTransactionsFilter as i } from "./index16.js";
14
+ import { useCallback as a, useMemo as o, useState as s } from "react";
15
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index17.js
16
+ var re = [
17
+ 10,
18
+ 25,
19
+ 50,
20
+ 100
21
+ ], ie = 10, c = {
22
+ startedAt: "started_at",
23
+ amount: "merchant_amount"
24
+ }, ae = c.startedAt, l = [{
25
+ id: "startedAt",
26
+ desc: !0
27
+ }], u = [
28
+ "capture",
29
+ "refund",
30
+ "cash_withdrawal",
31
+ "fee"
32
+ ];
33
+ function d({ scope: d, cardholderByUserId: p }) {
34
+ let { initResponse: m } = e(), h = t(), g = m?.userId ?? void 0, [oe, _] = s(), [v, se] = s(ie), [y, ce] = s(l), { state: b, setState: x, queryParams: le, activeFilterCount: ue, activeChips: S, datePresets: C, paymentStatusOptions: w, approvalStatusOptions: T, typeOptions: E, setDatePreset: D, setDateRange: O, setApprovalStatus: k, clearFilter: A, clearAll: j } = i(), M = a(() => _(void 0), []), N = a((e) => (...t) => {
35
+ e(...t), M();
36
+ }, [M]), P = a((e) => {
37
+ ce(e), M();
38
+ }, [M]), F = a((e) => {
39
+ se(e), M();
40
+ }, [M]), I = a(N((e) => {
41
+ x((t) => ({
42
+ ...t,
43
+ search: e
44
+ }));
45
+ }), [N, x]), L = a(N((e) => {
46
+ x((t) => ({
47
+ ...t,
48
+ paymentStatus: e
49
+ }));
50
+ }), [N, x]), R = a(N((e) => {
51
+ x((t) => ({
52
+ ...t,
53
+ approvalStatus: e
54
+ }));
55
+ }), [N, x]), z = a(N((e) => {
56
+ x((t) => ({
57
+ ...t,
58
+ types: e
59
+ }));
60
+ }), [N, x]), B = a(N((e) => {
61
+ x((t) => ({
62
+ ...t,
63
+ teamMemberIds: e
64
+ }));
65
+ }), [N, x]), V = a(N((e) => {
66
+ x((t) => ({
67
+ ...t,
68
+ amountMode: e
69
+ }));
70
+ }), [N, x]), de = a(N((e) => {
71
+ x((t) => ({
72
+ ...t,
73
+ amountMin: e
74
+ }));
75
+ }), [N, x]), H = a(N((e) => {
76
+ x((t) => ({
77
+ ...t,
78
+ amountMax: e
79
+ }));
80
+ }), [N, x]), fe = a(N((e) => {
81
+ x((t) => ({
82
+ ...t,
83
+ amountFlowDirection: e
84
+ }));
85
+ }), [N, x]), pe = a(N(() => {
86
+ x((e) => ({
87
+ ...e,
88
+ cardOnly: !e.cardOnly
89
+ }));
90
+ }), [N, x]), me = a(N((e) => {
91
+ O(e.from, e.to);
92
+ }), [N, O]), he = a(N((e) => {
93
+ D(e);
94
+ }), [N, D]), ge = a(N((e) => {
95
+ A(e);
96
+ }), [N, A]), _e = a(N(() => {
97
+ j();
98
+ }), [N, j]), ve = a(N((e) => {
99
+ k([e]);
100
+ }), [N, k]), U = !h && (d === "team" || !!g), W = f(d, g, le), ye = W.type__in ?? [...u], G = y[0], K = G ? c[G.id] : void 0, be = (K ? !G.desc : !1) == (K === "merchant_amount") ? "desc" : "asc", { data: q, isLoading: xe, isFetching: J } = n({
101
+ enabled: U,
102
+ limit: v,
103
+ pagination_token: oe,
104
+ sort: K ?? ae,
105
+ order: be,
106
+ ...W,
107
+ type__in: ye
108
+ }), Se = o(() => {
109
+ let e = [];
110
+ for (let t of q?.data ?? []) t.department_id && !e.includes(t.department_id) && e.push(t.department_id);
111
+ return e;
112
+ }, [q]), Y = r({ enabled: d === "team" && Se.length > 0 }), X = o(() => {
113
+ let e = /* @__PURE__ */ new Map();
114
+ for (let t of Y.data?.data ?? []) e.set(t.id, t.name);
115
+ return e;
116
+ }, [Y.data]), Z = o(() => {
117
+ let e = [];
118
+ for (let t of q?.data ?? []) t.entity_user_id && !e.includes(t.entity_user_id) && e.push(t.entity_user_id);
119
+ return e;
120
+ }, [q]), Q = ee({
121
+ ids: Z,
122
+ enabled: d === "team" && Z.length > 0
123
+ }), $ = o(() => {
124
+ let e = new Map(p);
125
+ for (let t of Q.data?.data ?? []) e.set(t.id, te(t));
126
+ return e;
127
+ }, [p, Q.data]);
128
+ return {
129
+ rows: o(() => (q?.data ?? []).map((e) => ne(e, {
130
+ cardholderLabel: e.entity_user_id ? $.get(e.entity_user_id) : void 0,
131
+ departmentLabel: e.department_id ? X.get(e.department_id) : void 0
132
+ })), [
133
+ q,
134
+ $,
135
+ X
136
+ ]),
137
+ isLoading: U && (xe || J),
138
+ sorting: y,
139
+ onSortingChange: P,
140
+ pageSize: v,
141
+ onPageSizeChange: F,
142
+ pageSizeOptions: re,
143
+ hasNextPage: !!q?.next_pagination_token,
144
+ hasPrevPage: !!q?.prev_pagination_token,
145
+ onNextPage: () => _(q?.next_pagination_token ?? void 0),
146
+ onPrevPage: () => _(q?.prev_pagination_token ?? void 0),
147
+ searchValue: b.search,
148
+ onSearchChange: I,
149
+ activeFilterCount: ue,
150
+ activeChips: S,
151
+ onDismissChip: ge,
152
+ onClearAll: _e,
153
+ allPresets: C,
154
+ selectedDatePreset: b.datePreset,
155
+ dateFrom: b.dateFrom,
156
+ dateTo: b.dateTo,
157
+ onDateRangeChange: me,
158
+ onDatePresetChange: he,
159
+ paymentStatusOptions: w,
160
+ selectedPaymentStatus: b.paymentStatus,
161
+ onPaymentStatusChange: L,
162
+ approvalStatusOptions: T,
163
+ selectedApprovalStatus: b.approvalStatus,
164
+ onApprovalStatusChange: R,
165
+ typeOptions: E,
166
+ selectedTypes: b.types,
167
+ onTypeChange: z,
168
+ amountMode: b.amountMode,
169
+ onAmountModeChange: V,
170
+ amountMin: b.amountMin,
171
+ amountMax: b.amountMax,
172
+ onAmountMinChange: de,
173
+ onAmountMaxChange: H,
174
+ amountFlowDirection: b.amountFlowDirection,
175
+ onAmountFlowDirectionChange: fe,
176
+ selectedTeamMembers: b.teamMemberIds,
177
+ onTeamMembersChange: B,
178
+ cardOnly: b.cardOnly,
179
+ onCardToggle: pe,
180
+ setApprovalStatusFilter: ve,
181
+ showCardholderColumn: d === "team",
182
+ showDepartmentColumn: d === "team"
183
+ };
184
+ }
185
+ function f(e, t, n) {
186
+ if (e === "mine") {
187
+ let e = { ...n };
188
+ return delete e.entity_user_id__in, {
189
+ ...e,
190
+ entity_user_id__in: t ? [t] : void 0
191
+ };
192
+ }
193
+ return n;
194
+ }
195
+ //#endregion
196
+ export { d as useExpensesTransactions };
@@ -0,0 +1,13 @@
1
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index18.js
2
+ var e = {
3
+ newTransactionsMessage: (e) => `${e === 1 ? `${e} transaction` : `${e} transactions`} to be submitted for approval.`,
4
+ rejectedTransactionsMessage: (e) => `${e === 1 ? `${e} transaction has` : `${e} transactions have`} been rejected.`,
5
+ pendingApprovalMessage: (e) => `${e === 1 ? `${e} transaction` : `${e} transactions`} in need of approval.`,
6
+ unmatchedReceiptsMessage: (e) => `${e === 1 ? `${e} receipt needs` : `${e} receipts need`} to be matched.`,
7
+ newTransactionsReviewAriaLabel: "Review transactions to submit",
8
+ rejectedTransactionsReviewAriaLabel: "Review rejected transactions",
9
+ pendingApprovalReviewAriaLabel: "Review transactions pending approval",
10
+ unmatchedReceiptsReviewAriaLabel: "Review unmatched receipts"
11
+ };
12
+ //#endregion
13
+ export { e as DEFAULT_ACTION_ITEM_LABELS };
@@ -0,0 +1,91 @@
1
+ "use client";
2
+ "use client";
3
+ "use client";
4
+ "use client";
5
+ import { useWidgetConfig as e, useWidgetLoading as t } from "../../../shared/feature/dist/lib/WidgetProvider/hooks.js";
6
+ import "../../../shared/feature/dist/index.js";
7
+ import { useExpenseTransactionsCountQuery as n } from "../../data-access/dist/index15.js";
8
+ import { useExpenseTransactionIdsQuery as r } from "../../data-access/dist/index16.js";
9
+ import { useExpenseReceiptsCountQuery as i } from "../../data-access/dist/index17.js";
10
+ import "../../data-access/dist/index.js";
11
+ import { canWriteExpenses as a, hasApproverPermission as o } from "./index8.js";
12
+ import { DEFAULT_ACTION_ITEM_LABELS as s } from "./index18.js";
13
+ import { createElement as c } from "react";
14
+ import { Ban as l, DollarSign as u, Receipt as d } from "lucide-react";
15
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index19.js
16
+ var f = "ttw:size-4";
17
+ function p({ scope: p, onReviewNewTransactions: m, onReviewRejectedTransactions: h, onReviewPendingApproval: g, onReviewUnmatchedReceipts: _ }) {
18
+ let { initResponse: v } = e(), y = t(), b = v?.userId ?? void 0, x = v?.scopes, S = a(x), C = o(x), w = p === "mine", T = p === "team", E = !y && !!b, D = n({
19
+ enabled: E && S,
20
+ entity_user_id__in: b ? [b] : void 0,
21
+ expense_status__in: ["new"]
22
+ }), O = n({
23
+ enabled: E && w && S,
24
+ entity_user_id__in: b ? [b] : void 0,
25
+ expense_status__in: ["rejected"]
26
+ }), k = i({
27
+ enabled: E && S,
28
+ has_transaction: !1,
29
+ created_by_entity_user_id: b
30
+ }), A = n({
31
+ enabled: E && T && S,
32
+ expense_status__in: ["rejected"]
33
+ }), j = n({
34
+ enabled: E && T && C,
35
+ expense_status__in: ["approve_in_progress"],
36
+ has_validation_errors: !1
37
+ }), M = r({
38
+ enabled: E && S && !!D.count,
39
+ entity_user_id__in: b ? [b] : void 0,
40
+ expense_status__in: ["new"]
41
+ }), N = r({
42
+ enabled: E && w && S && !!O.count,
43
+ entity_user_id__in: b ? [b] : void 0,
44
+ expense_status__in: ["rejected"]
45
+ }), P = r({
46
+ enabled: E && T && S && !!A.count,
47
+ expense_status__in: ["rejected"]
48
+ }), F = r({
49
+ enabled: E && T && C && !!j.count,
50
+ expense_status__in: ["approve_in_progress"],
51
+ has_validation_errors: !1
52
+ }), I = [], L = (e) => e.isSuccess && e.transactionIds.length > 0;
53
+ return S && D.count && L(M) && I.push({
54
+ id: "new-transactions",
55
+ message: s.newTransactionsMessage(D.count),
56
+ icon: c(u, { className: f }),
57
+ tone: "success",
58
+ onReview: () => m(M.transactionIds),
59
+ reviewAriaLabel: s.newTransactionsReviewAriaLabel
60
+ }), w && S && O.count && L(N) && I.push({
61
+ id: "rejected-transactions-mine",
62
+ message: s.rejectedTransactionsMessage(O.count),
63
+ icon: c(l, { className: f }),
64
+ tone: "danger",
65
+ onReview: () => h(N.transactionIds),
66
+ reviewAriaLabel: s.rejectedTransactionsReviewAriaLabel
67
+ }), T && S && A.count && L(P) && I.push({
68
+ id: "rejected-transactions-team",
69
+ message: s.rejectedTransactionsMessage(A.count),
70
+ icon: c(l, { className: f }),
71
+ tone: "danger",
72
+ onReview: () => h(P.transactionIds),
73
+ reviewAriaLabel: s.rejectedTransactionsReviewAriaLabel
74
+ }), T && C && j.count && L(F) && I.push({
75
+ id: "pending-approval",
76
+ message: s.pendingApprovalMessage(j.count),
77
+ icon: c(u, { className: f }),
78
+ tone: "success",
79
+ onReview: () => g(F.transactionIds),
80
+ reviewAriaLabel: s.pendingApprovalReviewAriaLabel
81
+ }), S && k.count && I.push({
82
+ id: "unmatched-receipts",
83
+ message: s.unmatchedReceiptsMessage(k.count),
84
+ icon: c(d, { className: f }),
85
+ tone: "info",
86
+ onReview: _,
87
+ reviewAriaLabel: s.unmatchedReceiptsReviewAriaLabel
88
+ }), I;
89
+ }
90
+ //#endregion
91
+ export { p as useExpenseActionItems };
@@ -1,4 +1,91 @@
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 { EmbeddedToaster as t } from "../../../shared/ui/dist/lib/EmbeddedToaster.js";
7
+ import "../../../shared/ui/dist/index.js";
8
+ import { UploadReceiptToastLabels as n } from "../../ui/dist/lib/UploadReceiptWidget/labels.js";
9
+ import { UploadReceiptButton as r } from "../../ui/dist/lib/UploadReceiptWidget/UploadReceiptButton.js";
10
+ import { UploadReceiptModal as i } from "../../ui/dist/lib/UploadReceiptWidget/UploadReceiptModal.js";
11
+ import "../../ui/dist/index.js";
12
+ import { useEffect as a, useRef as o, useState as s } from "react";
13
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
1
14
  //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index2.js
2
- var e = { Mounted: "expense_approval_policies.mounted" }, t = "expense_approval_policies";
15
+ var u = 3e3, d = 5e3, f = 10;
16
+ function p(e, t) {
17
+ return e ? e.stillProcessing > 0 ? n.MatchingUnfinished(e.stillProcessing) : e.total === 0 ? n.UploadedAll(t) : e.matched === e.total ? n.MatchedAll(e.matched) : n.MatchedPartial(e.matched, e.total) : n.UploadedAll(t);
18
+ }
19
+ function m({ emailAddress: m, onFileUpload: h, onAwaitMatching: g, isUploading: _ = !1 }) {
20
+ let [v, y] = s(!1), [b, x] = s(!1), S = o(!0);
21
+ return a(() => (S.current = !0, () => {
22
+ S.current = !1;
23
+ }), []), /* @__PURE__ */ l("div", {
24
+ className: "ttw:relative",
25
+ children: [
26
+ /* @__PURE__ */ c(t, {}),
27
+ /* @__PURE__ */ c(r, {
28
+ onClick: () => y((e) => !e),
29
+ open: v
30
+ }),
31
+ /* @__PURE__ */ c(i, {
32
+ open: v,
33
+ onClose: () => y(!1),
34
+ emailAddress: m,
35
+ onFilesSelected: async (t) => {
36
+ if (!h || _ || b || t.length === 0) return;
37
+ if (t.length > f) {
38
+ e.error(n.TooManyFiles(f), { duration: d });
39
+ return;
40
+ }
41
+ x(!0), y(!1);
42
+ let r = e.loading(n.Uploading(t.length)), i = 0, a = 0;
43
+ for (let e of t) try {
44
+ await h(e), i++;
45
+ } catch {
46
+ a++;
47
+ }
48
+ let o;
49
+ try {
50
+ o = g?.(i);
51
+ } catch {
52
+ o = void 0;
53
+ }
54
+ if (a > 0 || i === 0) {
55
+ if (o?.catch(() => void 0), !S.current) {
56
+ e.dismiss(r);
57
+ return;
58
+ }
59
+ e.error(i === 0 ? t.length === 1 ? n.UploadFailedSingle : n.UploadFailedAll(a) : n.UploadedPartial(i, t.length), {
60
+ id: r,
61
+ duration: d
62
+ }), x(!1);
63
+ return;
64
+ }
65
+ if (x(!1), !S.current) {
66
+ o?.catch(() => void 0), e.dismiss(r);
67
+ return;
68
+ }
69
+ let s = null;
70
+ if (o) {
71
+ e.loading(n.Matching(i), { id: r });
72
+ try {
73
+ s = await o;
74
+ } catch {}
75
+ }
76
+ if (!S.current) {
77
+ e.dismiss(r);
78
+ return;
79
+ }
80
+ e.success(p(s, i), {
81
+ id: r,
82
+ duration: u
83
+ });
84
+ },
85
+ isUploading: _ || b
86
+ })
87
+ ]
88
+ });
89
+ }
3
90
  //#endregion
4
- export { e as ExpenseApprovalPoliciesAnalyticsEvent, t as WIDGET_NAME };
91
+ export { m as UploadReceiptWidget };
@@ -0,0 +1,39 @@
1
+ "use client";
2
+ "use client";
3
+ "use client";
4
+ "use client";
5
+ import { useWidgetConfig as e, useWidgetLoading as t } from "../../../shared/feature/dist/lib/WidgetProvider/hooks.js";
6
+ import "../../../shared/feature/dist/index.js";
7
+ import { useExpenseTransactionsCountQuery as n } from "../../data-access/dist/index15.js";
8
+ import { useExpenseReceiptsCountQuery as r } from "../../data-access/dist/index17.js";
9
+ import "../../data-access/dist/index.js";
10
+ import { hasApproverPermission as i } from "./index8.js";
11
+ //#region ../../libs/tesouro-embedded-components-react/expense-management-widget/feature/dist/index20.js
12
+ function a() {
13
+ let { initResponse: a } = e(), o = t(), s = a?.userId ?? void 0, c = a?.scopes, l = i(c), u = !o && !!s, d = n({
14
+ enabled: u,
15
+ entity_user_id__in: s ? [s] : void 0,
16
+ expense_status__in: ["new"]
17
+ }), f = n({
18
+ enabled: u,
19
+ entity_user_id__in: s ? [s] : void 0,
20
+ expense_status__in: ["rejected"]
21
+ }), p = r({
22
+ enabled: u,
23
+ has_transaction: !1,
24
+ created_by_entity_user_id: s
25
+ }), m = n({
26
+ enabled: u && l,
27
+ expense_status__in: ["rejected"]
28
+ }), h = n({
29
+ enabled: u && l,
30
+ expense_status__in: ["approve_in_progress"],
31
+ has_validation_errors: !1
32
+ }), g = (d.count ?? 0) + (f.count ?? 0) + (p.count ?? 0), _ = (d.count ?? 0) + (m.count ?? 0) + (h.count ?? 0) + (p.count ?? 0);
33
+ return {
34
+ myTransactionsCount: g ? String(g) : void 0,
35
+ teamTransactionsCount: l && _ ? String(_) : void 0
36
+ };
37
+ }
38
+ //#endregion
39
+ export { a as useExpenseTabBadgeCounts };