@tesouro/embedded-components-react 0.5.200 → 0.5.202

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 (45) hide show
  1. package/dist/index.d.ts +20 -0
  2. package/dist/index.js +1 -1
  3. package/dist/lib/ReceivablesWidget.d.ts +20 -0
  4. package/dist/lib/ReceivablesWidget.js +1 -1
  5. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index.js +6 -6
  6. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index2.js +24 -18
  7. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index4.js +65 -2
  8. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index.js +1 -1
  9. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index10.js +174 -234
  10. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index11.js +32 -65
  11. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index12.js +143 -102
  12. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index13.js +48 -221
  13. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index14.js +303 -0
  14. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index15.js +75 -0
  15. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index16.js +114 -0
  16. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index17.js +237 -0
  17. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index4.js +14 -1
  18. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index5.js +30 -215
  19. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index6.js +211 -370
  20. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index7.js +64 -62
  21. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index8.js +409 -187
  22. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index9.js +73 -40
  23. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index.js +10 -9
  24. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index10.js +0 -9
  25. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index11.js +4 -1
  26. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index12.js +10 -263
  27. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index13.js +1 -72
  28. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index14.js +241 -363
  29. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index15.js +66 -100
  30. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index16.js +406 -76
  31. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index17.js +92 -330
  32. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index18.js +93 -0
  33. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index19.js +344 -0
  34. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index2.js +10 -1
  35. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index4.js +157 -20
  36. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index5.js +24 -1
  37. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index6.js +1 -3
  38. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index7.js +3 -18
  39. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index8.js +2 -0
  40. package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index9.js +18 -4
  41. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/index.js +37 -37
  42. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/@tanstack/react-query.gen.js +54 -54
  43. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/sdk.gen.js +115 -94
  44. package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
  45. package/package.json +1 -1
@@ -2,113 +2,154 @@
2
2
  "use client";
3
3
  "use client";
4
4
  "use client";
5
- import { useAnalyticsTrack as e } from "../../../shared/feature/dist/lib/analytics/hooks.js";
6
- import "../../../shared/feature/dist/index.js";
7
- import { ReceivablesWidgetAnalyticsEvent as t } from "./index2.js";
8
- import { coerceEnabledTabs as n, resolveInitialTab as r, tabForType as i, typeForTab as a } from "./index6.js";
9
- import { RECEIVABLE_MESSAGE_LABELS_EN as o } from "./index7.js";
10
- import { useReceivableActions as s } from "./index8.js";
11
- import { useReceivableDetails as c } from "./index9.js";
12
- import { hasSelectedText as l } from "../../../shared/product-catalog/feature/dist/lib/helpers.js";
13
- import "../../../shared/product-catalog/feature/dist/index.js";
14
- import { useReceivableForm as u } from "./index10.js";
15
- import { useReceivablesTable as d } from "./index11.js";
16
- import { useCallback as f, useEffect as p, useMemo as m, useState as h } from "react";
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";
7
+ import "../../data-access/dist/index.js";
8
+ import { useCallback as i, useEffect as a, useRef as o, useState as s } from "react";
17
9
  //#region ../../libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index12.js
18
- function g({ counterpartMessageLabels: g, defaultTab: _, enabledTabs: v, messageLabels: y, onReceivableCreated: b, onReceivableOpened: x }) {
19
- let S = e();
20
- p(() => {
21
- S(t.Mounted);
22
- }, [S]);
23
- let C = m(() => ({
24
- ...o,
25
- ...y
26
- }), [y]), w = m(() => n(v), [v]), [T, E] = h(() => r({
27
- defaultTab: _,
28
- enabledTabs: w
29
- })), [D, O] = h(), [k, A] = h(!1);
30
- p(() => {
31
- w.includes(T) || E(r({
32
- defaultTab: _,
33
- enabledTabs: w
34
- }));
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);
35
92
  }, [
36
- T,
37
- _,
93
+ c.length,
94
+ p,
38
95
  w
39
- ]);
40
- let j = f((e, t) => {
41
- E(i(t)), O(e), A(!0), b?.(e, t);
42
- }, [b]), M = d({
43
- activeTab: T,
44
- messages: C
45
- }), N = c({
46
- selectedReceivableId: D,
47
- enabled: k,
48
- messages: C
49
- }), P = u({
50
- messages: C,
51
- counterpartMessageLabels: g,
52
- onCreated: j
53
- }), F = f(() => {
54
- let e = a(T);
55
- P.openCreate(e === "quote" ? "quote" : "invoice");
56
- }, [T, P.openCreate]), I = s({
57
- selectedReceivable: N.receivable,
58
- messages: C,
59
- onCreated: j,
60
- onDeleted: (e) => {
61
- e === D && (O(void 0), A(!1));
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;
62
107
  }
63
- }), L = f((e) => {
64
- l() || (O(e.id), A(!0), x?.(e.id, e.type));
65
- }, [x]);
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]);
66
142
  return {
67
- activeTab: T,
68
- enabledTabs: w,
69
- setActiveTab: E,
70
- table: M,
71
- details: N,
72
- detailsOpen: k,
73
- closeDetails: f(() => {
74
- A(!1), O(void 0);
75
- }, []),
76
- form: P,
77
- openCreate: F,
78
- actions: I,
79
- handleRowClick: L,
80
- handleActionClick: f((e, t) => {
81
- let n = M.getReceivableById(t.id);
82
- if (e === "edit") {
83
- if (n) {
84
- P.openEdit(n);
85
- return;
86
- }
87
- O(t.id), A(!0);
88
- return;
89
- }
90
- O(t.id), I.openAction(e, t, n ?? null);
91
- }, [
92
- I,
93
- P.openEdit,
94
- M.getReceivableById
95
- ]),
96
- handleDetailsActionClick: f((e, t) => {
97
- if (e === "edit") {
98
- N.receivable && (P.openEdit(N.receivable), A(!1));
99
- return;
100
- }
101
- I.openAction(e, {
102
- id: t.id,
103
- title: t.title,
104
- type: t.type
105
- }, N.receivable ?? null);
106
- }, [
107
- I,
108
- N.receivable,
109
- P.openEdit
110
- ])
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
111
152
  };
112
153
  }
113
154
  //#endregion
114
- export { g as useReceivablesWidget };
155
+ export { c as useReceivableAttachmentUploads };
@@ -1,225 +1,52 @@
1
- "use client";
2
- "use client";
3
- "use client";
4
- "use client";
5
- import { useAnalyticsTrack as e } from "../../../shared/feature/dist/lib/analytics/hooks.js";
6
- import { WidgetProvider as t } from "../../../shared/feature/dist/lib/WidgetProvider/WidgetProvider.js";
7
- import "../../../shared/feature/dist/index.js";
8
- import { CounterpartFormSheet as n } from "../../../shared/counterpart-management/ui/dist/index9.js";
9
- import { CounterpartSelector as r } from "../../../shared/counterpart-management/feature/dist/lib/CounterpartSelector.js";
10
- import "../../../shared/counterpart-management/feature/dist/index.js";
11
- import { ReceivablesWidgetAnalyticsEvent as i, WIDGET_NAME as a } from "./index2.js";
12
- import { PAGE_SIZE_OPTIONS as o } from "./index4.js";
13
- import { MeasureUnitsManagerContainer as s } from "../../../shared/product-catalog/feature/dist/lib/MeasureUnitsManagerContainer.js";
14
- import { ProductSelector as c } from "../../../shared/product-catalog/feature/dist/lib/ProductSelector.js";
15
- import "../../../shared/product-catalog/feature/dist/index.js";
16
- import { useReceivablesWidget as l } from "./index12.js";
17
- import { ReceivableActionDialog as u } from "../../ui/dist/index3.js";
18
- import { ReceivableDetailsSheet as d } from "../../ui/dist/index12.js";
19
- import { ReceivableFormSheet as f } from "../../ui/dist/index14.js";
20
- import { ReceivablePaymentDialog as p } from "../../ui/dist/index15.js";
21
- import { ReceivableSendDialog as m } from "../../ui/dist/index16.js";
22
- import { ReceivablesScreen as h } from "../../ui/dist/index17.js";
23
- import "../../ui/dist/index.js";
24
- import { useEffect as g, useState as _ } from "react";
25
- import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
1
+ import { parseQuantity as e, priceInputToMinorUnits as t } from "./index6.js";
26
2
  //#region ../../libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index13.js
27
- function x({ counterpartFormLabels: t, counterpartMessageLabels: a, defaultTab: x, detailsLabels: S, enabledTabs: C, formLabels: w, measureUnitDeleteLabels: T, measureUnitsLabels: E, messageLabels: D, onReceivableCreated: O, onReceivableOpened: k, onTemplateSettingsClick: A, pageSizeOptions: j = o, paymentLabels: M, productMessageLabels: N, screenLabels: P, sendLabels: F, actionLabels: I }) {
28
- let L = e();
29
- g(() => {
30
- L(i.Mounted);
31
- }, [L]);
32
- let R = l({
33
- counterpartMessageLabels: a,
34
- defaultTab: x,
35
- enabledTabs: C,
36
- messageLabels: D,
37
- onReceivableCreated: O,
38
- onReceivableOpened: k
39
- }), [z, B] = _(!1);
40
- return /* @__PURE__ */ b(v, { children: [
41
- /* @__PURE__ */ y(h, {
42
- rows: R.table.rows,
43
- activeTab: R.activeTab,
44
- enabledTabs: R.enabledTabs,
45
- onTabChange: R.setActiveTab,
46
- isLoading: R.table.isLoading,
47
- isError: R.table.isError,
48
- sorting: R.table.sorting,
49
- onSortingChange: R.table.onSortingChange,
50
- pageSize: R.table.pageSize,
51
- onPageSizeChange: R.table.onPageSizeChange,
52
- pageSizeOptions: j,
53
- hasNextPage: R.table.hasNextPage,
54
- hasPrevPage: R.table.hasPrevPage,
55
- onNextPage: R.table.onNextPage,
56
- onPrevPage: R.table.onPrevPage,
57
- searchValue: R.table.searchValue,
58
- onSearchChange: R.table.onSearchChange,
59
- statusFilter: R.table.statusFilter,
60
- statusOptions: R.table.statusOptions,
61
- onStatusFilterChange: R.table.onStatusFilterChange,
62
- isFiltering: R.table.isFiltering,
63
- onCreateClick: R.openCreate,
64
- onTemplateSettingsClick: A,
65
- onRowClick: R.handleRowClick,
66
- onActionClick: R.handleActionClick,
67
- onRetry: R.table.onRetry,
68
- labels: P
69
- }),
70
- /* @__PURE__ */ y(f, {
71
- open: R.form.open,
72
- onOpenChange: (e) => {
73
- e || R.form.close();
74
- },
75
- mode: R.form.mode,
76
- values: R.form.sheetValues,
77
- errors: R.form.errors,
78
- currencyOptions: R.form.currencyOptions,
79
- paymentTermsOptions: R.form.paymentTermsOptions,
80
- unitOptions: R.form.lineItemUnitOptions,
81
- currencySymbol: R.form.currencySymbol,
82
- lineItemControls: R.form.lineItemControls,
83
- autoFocusLineItemId: R.form.autoFocusLineItemId,
84
- lineItemsLoading: R.form.lineItemsLoading,
85
- inProgress: R.form.isSubmitting,
86
- customerSelector: /* @__PURE__ */ y(r, {
87
- mode: "customer",
88
- value: R.form.values.customerId || void 0,
89
- onValueChange: (e) => R.form.updateValues({ customerId: e }),
90
- onCreateClick: R.form.openCounterpartCreate
91
- }),
92
- renderProductSelector: (e, t) => /* @__PURE__ */ y(c, {
93
- ...t,
94
- inputValue: e.name,
95
- selectedProductId: R.form.values.lineItems.find((t) => t.id === e.id)?.productId || void 0,
96
- currency: R.form.values.currency,
97
- maxLength: 100,
98
- onInputValueChange: (t) => R.form.updateLineItem(e.id, { name: t }),
99
- onProductSelect: (t) => R.form.selectProduct(e.id, t)
100
- }),
101
- onChange: R.form.updateValues,
102
- onLineItemChange: R.form.updateLineItem,
103
- onLineItemCommit: R.form.commitLineItem,
104
- onLineItemQuantityStep: R.form.stepLineItem,
105
- onManageUnits: () => B(!0),
106
- onAddLineItem: R.form.addLineItem,
107
- onRemoveLineItem: R.form.removeLineItem,
108
- onSubmit: R.form.submit,
109
- onCancel: R.form.close,
110
- labels: w
111
- }),
112
- /* @__PURE__ */ y(d, {
113
- open: R.detailsOpen,
114
- onOpenChange: (e) => {
115
- e || R.closeDetails();
116
- },
117
- details: R.details.detailsView,
118
- isLoading: R.details.isLoading,
119
- isError: R.details.isError,
120
- onActionClick: R.handleDetailsActionClick,
121
- onClose: R.closeDetails,
122
- labels: S
123
- }),
124
- /* @__PURE__ */ y(m, {
125
- open: R.actions.sendOpen,
126
- onOpenChange: (e) => {
127
- e || R.actions.closeSend();
128
- },
129
- values: R.actions.sendValues,
130
- errors: R.actions.sendErrors,
131
- inProgress: R.actions.sendInProgress,
132
- onChange: (e) => R.actions.setSendValues((t) => ({
133
- ...t,
134
- ...e
135
- })),
136
- onSubmit: R.actions.submitSend,
137
- onCancel: R.actions.closeSend,
138
- labels: F
139
- }),
140
- /* @__PURE__ */ y(p, {
141
- open: R.actions.paymentOpen,
142
- onOpenChange: (e) => {
143
- e || R.actions.closePayment();
144
- },
145
- values: R.actions.paymentValues,
146
- errors: R.actions.paymentErrors,
147
- inProgress: R.actions.paymentInProgress,
148
- onChange: (e) => R.actions.setPaymentValues((t) => ({
149
- ...t,
150
- ...e
151
- })),
152
- onSubmit: R.actions.submitPayment,
153
- onCancel: R.actions.closePayment,
154
- labels: M
155
- }),
156
- R.actions.actionDialog && /* @__PURE__ */ y(u, {
157
- open: !!R.actions.actionTarget,
158
- onOpenChange: (e) => {
159
- e || R.actions.closeAction();
160
- },
161
- title: R.actions.actionDialog.title,
162
- description: R.actions.actionDialog.description,
163
- confirmLabel: R.actions.actionDialog.confirmLabel,
164
- destructive: R.actions.actionDialog.destructive,
165
- error: R.actions.actionError,
166
- inProgress: R.actions.actionInProgress,
167
- onConfirm: R.actions.confirmAction,
168
- onCancel: R.actions.closeAction,
169
- labels: I
170
- }),
171
- /* @__PURE__ */ y(n, {
172
- open: R.form.counterpartView === "create",
173
- onOpenChange: (e) => {
174
- e || R.form.counterpartForm.close();
175
- },
176
- mode: "create",
177
- values: R.form.counterpartForm.values,
178
- errors: R.form.counterpartForm.errors,
179
- stateOptions: R.form.stateOptions,
180
- inProgress: R.form.counterpartForm.isSubmitting,
181
- onChange: (e) => R.form.counterpartForm.setValues((t) => ({
182
- ...t,
183
- ...e
184
- })),
185
- onAddressChange: (e) => R.form.counterpartForm.setValues((t) => ({
186
- ...t,
187
- address: {
188
- ...t.address,
189
- ...e
190
- }
191
- })),
192
- onSubmit: R.form.counterpartForm.submit,
193
- onCancel: R.form.counterpartForm.close,
194
- labels: t
195
- }),
196
- /* @__PURE__ */ y(s, {
197
- open: z,
198
- onClose: () => B(!1),
199
- managerLabels: E,
200
- deleteLabels: T,
201
- messageLabels: N
202
- })
203
- ] });
3
+ var n = 1e4;
4
+ function r({ lineItems: n, currency: r, taxRate: i }) {
5
+ let a = i ? i / 100 : 0, o = 0, s = 0;
6
+ for (let i of n) {
7
+ let n = Math.round(t(i.price, r) * e(i.quantity));
8
+ i.taxable ? o += n : s += n;
9
+ }
10
+ return {
11
+ taxableItemsSubtotal: o,
12
+ nonTaxableItemsSubtotal: s,
13
+ subtotal: o + s,
14
+ rate: a
15
+ };
204
16
  }
205
- function S({ baseUrl: e, widgetToken: n, organizationId: r, configClient: i, gatewayRouting: o, linkComponent: s, implementation: c, uiFramework: l, errorFallback: u, onError: d, analytics: f, disclosuresAcceptance: p, providerLabels: m, ...h }) {
206
- return /* @__PURE__ */ y(t, {
207
- widgetName: a,
208
- baseUrl: e,
209
- widgetToken: n,
210
- organizationId: r,
211
- configClient: i,
212
- gatewayRouting: o,
213
- linkComponent: s,
214
- implementation: c,
215
- uiFramework: l,
216
- errorFallback: u,
217
- onError: d,
218
- analytics: f,
219
- disclosuresAcceptance: p,
220
- providerLabels: m,
221
- children: /* @__PURE__ */ y(x, { ...h })
222
- });
17
+ function i({ discount: e, subtotal: t }) {
18
+ if (!e) return 0;
19
+ let r = e.value ?? (e.type === "amount" ? e.amount : Math.round(t * e.amount / n));
20
+ return Math.min(Math.max(r, 0), t);
21
+ }
22
+ function a({ taxableItemsSubtotal: e, nonTaxableItemsSubtotal: t, discountAmount: n }) {
23
+ let r = e + t, i = r > 0 ? Math.round(e / r * n) : 0;
24
+ return {
25
+ taxableSubtotal: e - i,
26
+ nonTaxableSubtotal: t - (n - i)
27
+ };
28
+ }
29
+ function o({ lineItems: e, currency: t, taxRate: n, discount: o }) {
30
+ let s = r({
31
+ lineItems: e,
32
+ currency: t,
33
+ taxRate: n
34
+ }), c = i({
35
+ discount: o,
36
+ subtotal: s.subtotal
37
+ }), { taxableSubtotal: l, nonTaxableSubtotal: u } = a({
38
+ ...s,
39
+ discountAmount: c
40
+ }), d = s.rate ? Math.round(l * s.rate) : 0, f = s.subtotal - c;
41
+ return {
42
+ ...s,
43
+ discountAmount: c,
44
+ discountedSubtotal: f,
45
+ taxableSubtotal: l,
46
+ nonTaxableSubtotal: u,
47
+ totalTaxes: d,
48
+ total: f + d
49
+ };
223
50
  }
224
51
  //#endregion
225
- export { S as ReceivablesWidget, S as default };
52
+ export { a as allocateDiscount, o as calculateInvoiceTotals, r as calculateItemsSubtotals, i as resolveDiscountAmount };