@bjsdistribution/dms-client-return 0.1.99-prod → 0.2.0-prod
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.
- package/dist/components/client-portal/OutstandingTable.js +118 -112
- package/dist/components/client-portal/OutstandingTable.js.map +1 -1
- package/dist/components/fakeData.js.map +1 -1
- package/dist/components/order-daily-overview/common/fakedata.js.map +1 -1
- package/dist/components/order-daily-overview/return-after-table/table/OrderTable.js +33 -31
- package/dist/components/order-daily-overview/return-after-table/table/OrderTable.js.map +1 -1
- package/dist/components/order-daily-overview/return-after-table/table-filters/ReturnOrderFilter.js +82 -79
- package/dist/components/order-daily-overview/return-after-table/table-filters/ReturnOrderFilter.js.map +1 -1
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/ReturnOrderTable.js +157 -151
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/ReturnOrderTable.js.map +1 -1
- package/dist/components/order-view/order-actions/Dropdown.js +3 -3
- package/dist/components/order-view/order-actions/Dropdown.js.map +1 -1
- package/dist/components/order-view/order-actions/actions/cancel-order/CancelOrderTable.js +47 -45
- package/dist/components/order-view/order-actions/actions/cancel-order/CancelOrderTable.js.map +1 -1
- package/dist/components/order-view/order-actions/actions/cancel-order/ReturnReason.js +36 -23
- package/dist/components/order-view/order-actions/actions/cancel-order/ReturnReason.js.map +1 -1
- package/dist/components/order-view/order-actions/actions/confirm-order/tables/ProductTable.js +25 -23
- package/dist/components/order-view/order-actions/actions/confirm-order/tables/ProductTable.js.map +1 -1
- package/dist/components/order-view/order-actions/actions/force-debrief/ForceDebriefModal.js +89 -88
- package/dist/components/order-view/order-actions/actions/force-debrief/ForceDebriefModal.js.map +1 -1
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/collection-add-ons/index.js +16 -16
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/collection-add-ons/index.js.map +1 -1
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationReason.js +23 -22
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationReason.js.map +1 -1
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/RadioButtons.js +56 -52
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/RadioButtons.js.map +1 -1
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/FailureReasonDropdown.js +27 -26
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/FailureReasonDropdown.js.map +1 -1
- package/dist/components/order-view/order-actions/actions/hold-order/HoldOrderModal.js +29 -29
- package/dist/components/order-view/order-actions/actions/hold-order/HoldOrderModal.js.map +1 -1
- package/dist/components/order-view/order-actions/actions/split-order/SplitOrderTable.js +72 -71
- package/dist/components/order-view/order-actions/actions/split-order/SplitOrderTable.js.map +1 -1
- package/dist/components/order-view/order-actions/actions/uncancel-order/UncancelOrderTable.js +37 -35
- package/dist/components/order-view/order-actions/actions/uncancel-order/UncancelOrderTable.js.map +1 -1
- package/dist/components/order-view/order-details/expanded-content/services-section/OrderServices.js +20 -18
- package/dist/components/order-view/order-details/expanded-content/services-section/OrderServices.js.map +1 -1
- package/dist/components/order-view/order-details/expanded-content/services-section/ServiceType.js +26 -22
- package/dist/components/order-view/order-details/expanded-content/services-section/ServiceType.js.map +1 -1
- package/dist/components/order-view/order-details/helper.js.map +1 -1
- package/dist/components/order-view/return-client-products/product-table/ReturnProductTable.js +53 -53
- package/dist/components/order-view/return-client-products/product-table/ReturnProductTable.js.map +1 -1
- package/dist/components/order-view/toolbox-resources/expanded-content/index.js +6 -7
- package/dist/components/order-view/toolbox-resources/expanded-content/index.js.map +1 -1
- package/dist/components/utils.js +4 -5
- package/dist/components/utils.js.map +1 -1
- package/dist/types/components/order-view/order-actions/Dropdown.d.ts +1 -0
- package/dist/types/components/utils.d.ts +0 -1
- package/package.json +2 -2
package/dist/components/order-view/return-client-products/product-table/ReturnProductTable.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { jsxs as o, jsx as t, Fragment as K } from "react/jsx-runtime";
|
|
2
|
-
import k, { useState as
|
|
2
|
+
import k, { useState as m, useMemo as D, useEffect as Q } from "react";
|
|
3
3
|
import { StyledTableWrapper as U, StyledTable as X } from "../../../order-daily-overview/return-order-table/return-orders-filters/returnstyles.js";
|
|
4
|
-
import { Checkbox as Y, CancelationModal as Z, CancelAndCompleteAction as ee, useAxios as te, displayValueOrNA as E } from "@bjsdistribution/dms-component-library";
|
|
5
|
-
import
|
|
6
|
-
import { useReturnProductDetails as
|
|
7
|
-
import { Skeleton as
|
|
8
|
-
import { useSelectedProducts as
|
|
4
|
+
import { Checkbox as Y, CancelationModal as Z, CancelAndCompleteAction as ee, useAxios as te, displayValueOrNA as E, toReverseDeliveryLabel as ne } from "@bjsdistribution/dms-component-library";
|
|
5
|
+
import oe from "../../../../assets/icons/ActionIcon.js";
|
|
6
|
+
import { useReturnProductDetails as le, useOrderId as ie } from "../../store.js";
|
|
7
|
+
import { Skeleton as re, Empty as ae, Spin as de, notification as C } from "antd";
|
|
8
|
+
import { useSelectedProducts as se, useNewReturnOrderData as ce, useIsShowNorthSouth as pe, useClientPortal as he } from "../../../store.js";
|
|
9
9
|
import i from "styled-components";
|
|
10
|
-
import { NavLink as
|
|
11
|
-
import { EmptyDataContainer as
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import { groupProductsByPallet as
|
|
15
|
-
const
|
|
16
|
-
const [
|
|
10
|
+
import { NavLink as me } from "react-router-dom";
|
|
11
|
+
import { EmptyDataContainer as fe } from "../../order-actions/actions/charge-log/index.js";
|
|
12
|
+
import f from "../../northern-southern-info/CustomInput.js";
|
|
13
|
+
import ue from "../../../../assets/icons/ChevronDownIcon.js";
|
|
14
|
+
import { groupProductsByPallet as ge, hasAnyPallet as xe, toggleGroupSelectionIds as be } from "./palletGrouping.js";
|
|
15
|
+
const Be = (a) => {
|
|
16
|
+
const [u, s] = se(), [g, N] = m(!1), [l] = le(), [S] = ie(), [R] = ce(), [T] = pe(), [c] = he(), [A, x] = m(null), [O, b] = m(!1), { loading: p, fetchData: G } = te({
|
|
17
17
|
endpoint: "v1/return/product/remove/",
|
|
18
18
|
method: "POST"
|
|
19
19
|
}), L = (e) => {
|
|
@@ -45,22 +45,22 @@ const ze = (a) => {
|
|
|
45
45
|
x(null), b(!1);
|
|
46
46
|
}
|
|
47
47
|
}, M = () => {
|
|
48
|
-
|
|
48
|
+
p || (x(null), b(!1));
|
|
49
49
|
}, $ = () => {
|
|
50
|
-
if (
|
|
50
|
+
if (g)
|
|
51
51
|
s([]);
|
|
52
52
|
else {
|
|
53
53
|
const e = l?.map((n) => n.id);
|
|
54
54
|
s(e);
|
|
55
55
|
}
|
|
56
|
-
N(!
|
|
56
|
+
N(!g);
|
|
57
57
|
}, z = (e) => {
|
|
58
58
|
s(
|
|
59
59
|
(n) => n.includes(e) ? n.filter((r) => r !== e) : [...n, e]
|
|
60
60
|
);
|
|
61
|
-
}, y = l?.length == 0 || R?.length == 0,
|
|
61
|
+
}, y = l?.length == 0 || R?.length == 0, h = c ? 8 : 9, B = D(() => ge(l), [
|
|
62
62
|
l
|
|
63
|
-
]), F = D(() =>
|
|
63
|
+
]), F = D(() => xe(l), [l]), [H, w] = m({});
|
|
64
64
|
Q(() => {
|
|
65
65
|
w({});
|
|
66
66
|
}, [S]);
|
|
@@ -69,7 +69,7 @@ const ze = (a) => {
|
|
|
69
69
|
/* @__PURE__ */ t("td", { children: /* @__PURE__ */ t(
|
|
70
70
|
P,
|
|
71
71
|
{
|
|
72
|
-
checked:
|
|
72
|
+
checked: u?.includes(e?.id),
|
|
73
73
|
onChange: () => z(e?.id),
|
|
74
74
|
disabled: y
|
|
75
75
|
}
|
|
@@ -83,15 +83,15 @@ const ze = (a) => {
|
|
|
83
83
|
color: "#0099ff",
|
|
84
84
|
fontWeight: 600
|
|
85
85
|
},
|
|
86
|
-
children: /* @__PURE__ */ t(
|
|
86
|
+
children: /* @__PURE__ */ t(me, { to: `/orders/view/${e?.order_id}`, children: E(e?.recipient_name) })
|
|
87
87
|
}
|
|
88
88
|
),
|
|
89
89
|
/* @__PURE__ */ t("li", { style: { color: "#888075" }, children: E(e?.postcode) })
|
|
90
90
|
] }) }),
|
|
91
91
|
/* @__PURE__ */ t("td", { children: e?.code }),
|
|
92
92
|
/* @__PURE__ */ t("td", { children: e?.description }),
|
|
93
|
-
/* @__PURE__ */ t("td", { children: e?.return_reason }),
|
|
94
|
-
!
|
|
93
|
+
/* @__PURE__ */ t("td", { children: c ? e?.return_reason : ne(e?.return_reason) }),
|
|
94
|
+
!c && /* @__PURE__ */ t("td", { children: Array.isArray(e?.product_addon_services) && e?.product_addon_services?.length > 0 ? e.product_addon_services.map((n) => n?.service_code || n?.name || n).filter(Boolean).join(", ") : Array.isArray(e?.addon_services) && e?.addon_services?.length > 0 ? e.addon_services.map((n) => n?.service_code || n?.name || n).filter(Boolean).join(", ") : Array.isArray(e?.addon_services_list) && e?.addon_services_list?.length > 0 ? e.addon_services_list.join(", ") : typeof e?.addon_services == "string" && e?.addon_services.trim() !== "" ? e.addon_services : "NA" }),
|
|
95
95
|
/* @__PURE__ */ t("td", { children: e?.part }),
|
|
96
96
|
/* @__PURE__ */ t("td", { children: /* @__PURE__ */ t(
|
|
97
97
|
"div",
|
|
@@ -100,16 +100,16 @@ const ze = (a) => {
|
|
|
100
100
|
n.stopPropagation(), n.preventDefault(), L(e?.id);
|
|
101
101
|
},
|
|
102
102
|
style: { cursor: "pointer" },
|
|
103
|
-
children: /* @__PURE__ */ t(
|
|
103
|
+
children: /* @__PURE__ */ t(oe, {})
|
|
104
104
|
}
|
|
105
105
|
) })
|
|
106
106
|
] }),
|
|
107
|
-
T === !0 && /* @__PURE__ */ t("td", { colSpan:
|
|
107
|
+
T === !0 && /* @__PURE__ */ t("td", { colSpan: h, children: /* @__PURE__ */ o(ye, { children: [
|
|
108
108
|
/* @__PURE__ */ t("div", { className: "left", children: "Northern/Southern Ireland" }),
|
|
109
109
|
/* @__PURE__ */ t("div", { className: "left-end" }),
|
|
110
110
|
/* @__PURE__ */ o("div", { className: "section", children: [
|
|
111
111
|
/* @__PURE__ */ t(
|
|
112
|
-
|
|
112
|
+
f,
|
|
113
113
|
{
|
|
114
114
|
label: "Commodity Code",
|
|
115
115
|
type: "text",
|
|
@@ -120,7 +120,7 @@ const ze = (a) => {
|
|
|
120
120
|
}
|
|
121
121
|
),
|
|
122
122
|
/* @__PURE__ */ t(
|
|
123
|
-
|
|
123
|
+
f,
|
|
124
124
|
{
|
|
125
125
|
label: "Country of Origin",
|
|
126
126
|
type: "text",
|
|
@@ -131,7 +131,7 @@ const ze = (a) => {
|
|
|
131
131
|
}
|
|
132
132
|
),
|
|
133
133
|
/* @__PURE__ */ t(
|
|
134
|
-
|
|
134
|
+
f,
|
|
135
135
|
{
|
|
136
136
|
label: "Item Invoice Amount",
|
|
137
137
|
type: "number",
|
|
@@ -142,7 +142,7 @@ const ze = (a) => {
|
|
|
142
142
|
}
|
|
143
143
|
),
|
|
144
144
|
/* @__PURE__ */ t(
|
|
145
|
-
|
|
145
|
+
f,
|
|
146
146
|
{
|
|
147
147
|
label: "NI Additional Info Codes",
|
|
148
148
|
type: "text",
|
|
@@ -155,18 +155,18 @@ const ze = (a) => {
|
|
|
155
155
|
] })
|
|
156
156
|
] }) })
|
|
157
157
|
] }, e.id), q = (e, n) => {
|
|
158
|
-
const r = e.items.map((v) => v?.id), d =
|
|
159
|
-
|
|
158
|
+
const r = e.items.map((v) => v?.id), d = be(
|
|
159
|
+
u,
|
|
160
160
|
r,
|
|
161
161
|
n
|
|
162
162
|
);
|
|
163
163
|
s(d), N(d.length === l?.length);
|
|
164
164
|
}, J = (e) => {
|
|
165
165
|
const n = W(e), r = e.items.filter(
|
|
166
|
-
(_) =>
|
|
166
|
+
(_) => u?.includes(_?.id)
|
|
167
167
|
).length, d = e.items.length > 0 && r === e.items.length, v = `${e.items.length} ${e.items.length === 1 ? "item" : "items"}`;
|
|
168
168
|
return /* @__PURE__ */ o(k.Fragment, { children: [
|
|
169
|
-
/* @__PURE__ */ t(
|
|
169
|
+
/* @__PURE__ */ t(ve, { className: e.isNoPallet ? "no-pallet" : void 0, children: /* @__PURE__ */ t("td", { colSpan: h, children: /* @__PURE__ */ o(_e, { children: [
|
|
170
170
|
/* @__PURE__ */ t(
|
|
171
171
|
P,
|
|
172
172
|
{
|
|
@@ -177,14 +177,14 @@ const ze = (a) => {
|
|
|
177
177
|
}
|
|
178
178
|
),
|
|
179
179
|
/* @__PURE__ */ o(
|
|
180
|
-
|
|
180
|
+
Ce,
|
|
181
181
|
{
|
|
182
182
|
type: "button",
|
|
183
183
|
disabled: e.isNoPallet,
|
|
184
184
|
onClick: e.isNoPallet ? void 0 : () => V(e.key),
|
|
185
185
|
"aria-expanded": e.isNoPallet ? void 0 : n,
|
|
186
186
|
children: [
|
|
187
|
-
!e.isNoPallet && /* @__PURE__ */ t(
|
|
187
|
+
!e.isNoPallet && /* @__PURE__ */ t(Pe, { $isExpanded: n, children: /* @__PURE__ */ t(ue, {}) }),
|
|
188
188
|
/* @__PURE__ */ t("span", { className: "title", children: e.isNoPallet ? /* @__PURE__ */ t("span", { children: "No Pallet ID" }) : /* @__PURE__ */ o(K, { children: [
|
|
189
189
|
/* @__PURE__ */ t("span", { children: "Pallet ID:" }),
|
|
190
190
|
/* @__PURE__ */ t("strong", { children: e.label })
|
|
@@ -199,7 +199,7 @@ const ze = (a) => {
|
|
|
199
199
|
r,
|
|
200
200
|
" selected"
|
|
201
201
|
] }),
|
|
202
|
-
!e.isNoPallet && /* @__PURE__ */ t(
|
|
202
|
+
!e.isNoPallet && /* @__PURE__ */ t(Ne, { "aria-hidden": "true", children: n ? "−" : "+" })
|
|
203
203
|
]
|
|
204
204
|
}
|
|
205
205
|
)
|
|
@@ -214,7 +214,7 @@ const ze = (a) => {
|
|
|
214
214
|
P,
|
|
215
215
|
{
|
|
216
216
|
disabled: y,
|
|
217
|
-
checked:
|
|
217
|
+
checked: g,
|
|
218
218
|
onChange: $
|
|
219
219
|
}
|
|
220
220
|
) }),
|
|
@@ -223,34 +223,34 @@ const ze = (a) => {
|
|
|
223
223
|
/* @__PURE__ */ t("th", { children: "Code" }),
|
|
224
224
|
/* @__PURE__ */ t("th", { children: "Description" }),
|
|
225
225
|
/* @__PURE__ */ t("th", { children: "Return Reason" }),
|
|
226
|
-
!
|
|
226
|
+
!c && /* @__PURE__ */ t("th", { children: "Additional Services" }),
|
|
227
227
|
/* @__PURE__ */ t("th", { children: "Part" }),
|
|
228
228
|
/* @__PURE__ */ t("th", { children: "Action" })
|
|
229
229
|
] }) }),
|
|
230
|
-
/* @__PURE__ */ t("tbody", { children: a?.loading || a?.locationloading ? /* @__PURE__ */ t("tr", { children: /* @__PURE__ */ t("td", { colSpan:
|
|
230
|
+
/* @__PURE__ */ t("tbody", { children: a?.loading || a?.locationloading ? /* @__PURE__ */ t("tr", { children: /* @__PURE__ */ t("td", { colSpan: h, children: /* @__PURE__ */ t(re, { active: !0 }) }) }) : l?.length === 0 ? /* @__PURE__ */ t("tr", { children: /* @__PURE__ */ t("td", { colSpan: h, children: /* @__PURE__ */ t(fe, { children: /* @__PURE__ */ t(ae, {}) }) }) }) : F ? B.map(J) : (
|
|
231
231
|
/* Called explicitly so `map`'s index is not passed as `isNoPallet`. */
|
|
232
232
|
l?.map((e) => I(e))
|
|
233
233
|
) })
|
|
234
234
|
] }) }),
|
|
235
|
-
O && /* @__PURE__ */ t(
|
|
236
|
-
|
|
235
|
+
O && /* @__PURE__ */ t(de, { spinning: p, children: /* @__PURE__ */ t(
|
|
236
|
+
Se,
|
|
237
237
|
{
|
|
238
238
|
title: "Remove Product",
|
|
239
239
|
description: "Are you sure, you want to remove this order product for returns?",
|
|
240
240
|
actions: /* @__PURE__ */ t(
|
|
241
|
-
|
|
241
|
+
Ae,
|
|
242
242
|
{
|
|
243
243
|
cancelLabel: "Cancel",
|
|
244
244
|
onCancel: M,
|
|
245
|
-
completeLabel:
|
|
246
|
-
isDisabled:
|
|
245
|
+
completeLabel: p ? "REMOVING..." : "Confirm",
|
|
246
|
+
isDisabled: p,
|
|
247
247
|
onComplete: j
|
|
248
248
|
}
|
|
249
249
|
)
|
|
250
250
|
}
|
|
251
251
|
) })
|
|
252
252
|
] });
|
|
253
|
-
},
|
|
253
|
+
}, ye = i.div`
|
|
254
254
|
display: flex;
|
|
255
255
|
width: 100%;
|
|
256
256
|
padding: 5px 10px;
|
|
@@ -307,7 +307,7 @@ const ze = (a) => {
|
|
|
307
307
|
background: #fff;
|
|
308
308
|
}
|
|
309
309
|
}
|
|
310
|
-
`,
|
|
310
|
+
`, ve = i.tr`
|
|
311
311
|
> td {
|
|
312
312
|
padding: 0;
|
|
313
313
|
border: none;
|
|
@@ -322,7 +322,7 @@ const ze = (a) => {
|
|
|
322
322
|
border-top: 1px solid #c9c6c1;
|
|
323
323
|
padding-top: 10px;
|
|
324
324
|
}
|
|
325
|
-
`,
|
|
325
|
+
`, _e = i.div`
|
|
326
326
|
/*
|
|
327
327
|
The library Checkbox renders its real <input> as position:absolute with no
|
|
328
328
|
offsets, so it needs a positioned ancestor or the click target drifts away
|
|
@@ -347,7 +347,7 @@ const ze = (a) => {
|
|
|
347
347
|
background: #e7edf4;
|
|
348
348
|
}
|
|
349
349
|
|
|
350
|
-
`,
|
|
350
|
+
`, Ce = i.button`
|
|
351
351
|
display: flex;
|
|
352
352
|
align-items: center;
|
|
353
353
|
gap: 8px;
|
|
@@ -397,12 +397,12 @@ const ze = (a) => {
|
|
|
397
397
|
font-size: 12px;
|
|
398
398
|
}
|
|
399
399
|
|
|
400
|
-
`,
|
|
400
|
+
`, Pe = i.span`
|
|
401
401
|
display: inline-flex;
|
|
402
402
|
align-items: center;
|
|
403
403
|
transition: transform 0.15s ease-in-out;
|
|
404
404
|
transform: rotate(${(a) => a.$isExpanded ? "0deg" : "-90deg"});
|
|
405
|
-
`,
|
|
405
|
+
`, Ne = i.span`
|
|
406
406
|
margin-left: auto;
|
|
407
407
|
display: inline-flex;
|
|
408
408
|
align-items: center;
|
|
@@ -421,7 +421,7 @@ const ze = (a) => {
|
|
|
421
421
|
cursor: not-allowed;
|
|
422
422
|
opacity: -0.4;
|
|
423
423
|
}
|
|
424
|
-
`,
|
|
424
|
+
`, Se = i(Z)`
|
|
425
425
|
div {
|
|
426
426
|
& > div > div:first-child {
|
|
427
427
|
padding: 8px !important;
|
|
@@ -431,11 +431,11 @@ const ze = (a) => {
|
|
|
431
431
|
width: 28px !important;
|
|
432
432
|
height: 28px !important;
|
|
433
433
|
}
|
|
434
|
-
`,
|
|
434
|
+
`, Ae = i(ee)`
|
|
435
435
|
justify-content: center;
|
|
436
436
|
`;
|
|
437
437
|
export {
|
|
438
|
-
|
|
439
|
-
|
|
438
|
+
ye as NSWrapper,
|
|
439
|
+
Be as default
|
|
440
440
|
};
|
|
441
441
|
//# sourceMappingURL=ReturnProductTable.js.map
|
package/dist/components/order-view/return-client-products/product-table/ReturnProductTable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReturnProductTable.js","sources":["../../../../../src/components/order-view/return-client-products/product-table/ReturnProductTable.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport {\n StyledTable,\n StyledTableWrapper,\n} from '../../../order-daily-overview/return-order-table/return-orders-filters/returnstyles';\nimport {\n CancelAndCompleteAction,\n CancelationModal,\n Checkbox,\n displayValueOrNA,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport ActionIcon from '../../../../assets/icons/ActionIcon';\nimport { useOrderId, useReturnProductDetails } from '../../store';\nimport { ApiResponse } from '../../types';\nimport { Empty, notification, Skeleton, Spin } from 'antd';\nimport {\n useIsShowNorthSouth,\n useNewReturnOrderData,\n useSelectedProducts,\n useClientPortal,\n} from '../../../store';\nimport styled from 'styled-components';\nimport { NavLink } from 'react-router-dom';\nimport { EmptyDataContainer } from '../../order-actions/actions/charge-log';\nimport CustomInput from '../../northern-southern-info/CustomInput';\nimport ChevronDownIcon from '../../../../assets/icons/ChevronDownIcon';\nimport {\n groupProductsByPallet,\n hasAnyPallet,\n PalletGroup,\n toggleGroupSelectionIds,\n} from './palletGrouping';\n\ninterface IPROS {\n callReturnProducts: any;\n loading: boolean;\n locationloading: boolean;\n}\n\nconst ReturnProductTable = (props: IPROS) => {\n const [selectedProducts, setSelectedProducts] = useSelectedProducts();\n const [selectAll, setSelectAll] = useState(false);\n const [productData] = useReturnProductDetails();\n const [orderId] = useOrderId();\n const [returnOrderData] = useNewReturnOrderData();\n const [isNorthSouth] = useIsShowNorthSouth();\n const [isClientPortal] = useClientPortal();\n\n const [productToDelete, setProductToDelete] = useState<number | null>(null);\n const [isDeleteModalOpen, setIsDeleteModalOpen] = useState<boolean>(false);\n\n const { loading: deleteLoading, fetchData: callDeleteProduct } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `v1/return/product/remove/`,\n method: 'POST',\n });\n\n const handleOpenDeleteModal = (id: number) => {\n setProductToDelete(id);\n setIsDeleteModalOpen(true);\n };\n\n const handleConfirmDelete = async () => {\n if (productToDelete === null) return;\n const targetId = productToDelete;\n try {\n const response = (await callDeleteProduct({\n payload: {\n return_order_product_id: targetId,\n return_order_id: +orderId,\n },\n })) as {\n code: number | null;\n error?: string | null;\n data?: any[];\n message?: string;\n };\n\n if (response?.code === 200) {\n notification.success({\n message: 'Success',\n description: response?.message || 'Product deleted successfully.',\n });\n props?.callReturnProducts();\n } else {\n notification.error({\n message: 'Deletion Failed',\n description: response?.message || 'Could not delete the product.',\n });\n }\n } catch (error) {\n console.error('Error deleting product:', error);\n notification.error({\n message: 'Error',\n //@ts-ignore\n description: error?.message || 'An unexpected error occurred.',\n });\n } finally {\n setProductToDelete(null);\n setIsDeleteModalOpen(false);\n }\n };\n\n const handleCancelDelete = () => {\n if (deleteLoading) return;\n setProductToDelete(null);\n setIsDeleteModalOpen(false);\n };\n\n const handleSelectAll = () => {\n if (selectAll) {\n setSelectedProducts([]);\n } else {\n const allProductIds = productData?.map((product: any) => product.id);\n setSelectedProducts(allProductIds);\n }\n setSelectAll(!selectAll);\n };\n\n const handleSelectProduct = (id: number) => {\n setSelectedProducts((prevSelected: any) =>\n prevSelected.includes(id)\n ? prevSelected.filter((selectedId: any) => selectedId !== id)\n : [...prevSelected, id]\n );\n };\n\n const disableCheckbox =\n productData?.length == 0 || returnOrderData?.length == 0;\n\n const columnCount = isClientPortal ? 8 : 9;\n\n const palletGroups = useMemo(() => groupProductsByPallet(productData), [\n productData,\n ]);\n\n /**\n * Orders picked before pallet scanning existed have no pallet IDs at all. Grouping\n * those would render every item under \"re-scan required\", so they keep the flat\n * list — matching the spec's \"one group per distinct pallet ID scanned\".\n */\n const isGrouped = useMemo(() => hasAnyPallet(productData), [productData]);\n\n /** Pallet groups default to collapsed; the No Pallet ID group is always open. */\n const [expandedPallets, setExpandedPallets] = useState<\n Record<string, boolean>\n >({});\n\n /**\n * Moving between return orders re-uses this component (route `/:id`, so no\n * remount), and a pallet_id can legitimately appear on two orders — a whole-pallet\n * split carries it to the new B number. Without this reset, a pallet the user had\n * expanded on the previous order would open expanded on the next one, breaking\n * \"default state: all groups collapsed\".\n */\n useEffect(() => {\n setExpandedPallets({});\n }, [orderId]);\n\n const isGroupExpanded = (group: PalletGroup) =>\n group.isNoPallet || !!expandedPallets[group.key];\n\n const togglePallet = (key: string) =>\n setExpandedPallets(prev => ({ ...prev, [key]: !prev[key] }));\n\n const renderProductRow = (product: any) => (\n <React.Fragment key={product.id}>\n {/* MAIN ROW */}\n <tr className=\"product-row\">\n <td>\n <StyleCheckbox\n checked={selectedProducts?.includes(product?.id)}\n onChange={() => handleSelectProduct(product?.id)}\n disabled={disableCheckbox}\n />\n </td>\n <td>{product?.location || 'N/A'}</td>\n <td>\n <ul style={{ listStyleType: 'none', padding: 0 }}>\n <li\n style={{\n color: '#0099ff',\n fontWeight: 600,\n }}\n >\n <NavLink to={`/orders/view/${product?.order_id}`}>\n {displayValueOrNA(product?.recipient_name)}\n </NavLink>\n </li>\n <li style={{ color: '#888075' }}>\n {displayValueOrNA(product?.postcode)}\n </li>\n </ul>\n </td>\n <td>{product?.code}</td>\n <td>{product?.description}</td>\n <td>{product?.return_reason}</td>\n {!isClientPortal && (\n <td>\n {Array.isArray(product?.product_addon_services) && product?.product_addon_services?.length > 0\n ? product.product_addon_services\n .map((service: any) => service?.service_code || service?.name || service)\n .filter(Boolean)\n .join(', ')\n : Array.isArray(product?.addon_services) && product?.addon_services?.length > 0\n ? product.addon_services\n .map((service: any) => service?.service_code || service?.name || service)\n .filter(Boolean)\n .join(', ')\n : Array.isArray(product?.addon_services_list) && product?.addon_services_list?.length > 0\n ? product.addon_services_list.join(', ')\n : typeof product?.addon_services === 'string' && product?.addon_services.trim() !== ''\n ? product.addon_services\n : 'NA'}\n </td>\n )}\n <td>{product?.part}</td>\n <td>\n <div\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n handleOpenDeleteModal(product?.id);\n }}\n style={{ cursor: 'pointer' }}\n >\n <ActionIcon />\n </div>\n </td>\n </tr>\n\n {/* EXPANDED ROW */}\n {/*\n NOTE: this <td> is not wrapped in a <tr>, which is invalid DOM nesting and\n logs a React validateDOMNesting warning. Left exactly as it was — it only\n affects Northern/Southern Ireland orders and is unrelated to pallet\n grouping, so it belongs in its own ticket rather than this change.\n */}\n {isNorthSouth === true && (\n <td colSpan={columnCount}>\n <NSWrapper>\n <div className=\"left\">Northern/Southern Ireland</div>\n <div className=\"left-end\"></div>\n\n <div className=\"section\">\n <CustomInput\n label=\"Commodity Code\"\n type=\"text\"\n direction=\"row\"\n placeholder=\"Enter Commodity Code\"\n value={\n product?.product_customs_details?.commodity_code || 'NA'\n }\n disabled\n />\n\n <CustomInput\n label=\"Country of Origin\"\n type=\"text\"\n direction=\"row\"\n placeholder=\"Enter Country of Origin\"\n value={\n product?.product_customs_details?.country_of_origin || 'NA'\n }\n disabled\n />\n\n <CustomInput\n label=\"Item Invoice Amount\"\n type=\"number\"\n direction=\"row\"\n placeholder=\"Enter Item Invoice Amount\"\n value={\n product?.product_customs_details?.item_invoice_amount || 0\n }\n disabled\n />\n\n <CustomInput\n label=\"NI Additional Info Codes\"\n type=\"text\"\n direction=\"row\"\n placeholder=\"Enter NI Add Info Codes\"\n value={\n product?.product_customs_details\n ?.ni_additional_information_codes || 'NA'\n }\n disabled\n />\n </div>\n </NSWrapper>\n </td>\n )}\n </React.Fragment>\n );\n\n /**\n * Group-level selection is purely a shortcut for ticking each row in the group —\n * it writes the same `selectedProducts` state and adds no whole-pallet semantics.\n * The pallet_id rules for whole vs partial moves land with Part 2.\n */\n const toggleGroupSelection = (group: PalletGroup, allSelected: boolean) => {\n const groupIds = group.items.map((item: any) => item?.id);\n const nextSelection = toggleGroupSelectionIds(\n selectedProducts,\n groupIds,\n allSelected\n );\n\n setSelectedProducts(nextSelection);\n // Keep the header select-all in step, or ticking every group leaves it unchecked.\n setSelectAll(nextSelection.length === productData?.length);\n };\n\n const renderPalletGroup = (group: PalletGroup) => {\n const expanded = isGroupExpanded(group);\n const selectedInGroup = group.items.filter((item: any) =>\n selectedProducts?.includes(item?.id)\n ).length;\n const allSelectedInGroup =\n group.items.length > 0 && selectedInGroup === group.items.length;\n const itemLabel = `${group.items.length} ${\n group.items.length === 1 ? 'item' : 'items'\n }`;\n\n return (\n <React.Fragment key={group.key}>\n <PalletHeaderRow className={group.isNoPallet ? 'no-pallet' : undefined}>\n <td colSpan={columnCount}>\n <PalletHeaderBar>\n {/*\n Sibling of the toggle, not a child of it — a checkbox nested inside\n a <button> is invalid HTML and swallows the click.\n */}\n <StyleCheckbox\n checked={allSelectedInGroup}\n onChange={() => toggleGroupSelection(group, allSelectedInGroup)}\n disabled={disableCheckbox}\n aria-label={\n group.isNoPallet\n ? 'Select all items with no pallet ID'\n : `Select all items on pallet ${group.label}`\n }\n />\n\n <PalletHeaderToggle\n type=\"button\"\n /* The No Pallet ID group is always open, so its toggle is inert. */\n disabled={group.isNoPallet}\n onClick={\n group.isNoPallet ? undefined : () => togglePallet(group.key)\n }\n aria-expanded={group.isNoPallet ? undefined : expanded}\n >\n {!group.isNoPallet && (\n <Chevron $isExpanded={expanded}>\n <ChevronDownIcon />\n </Chevron>\n )}\n\n <span className=\"title\">\n {group.isNoPallet ? (\n <span>No Pallet ID</span>\n ) : (\n <>\n <span>Pallet ID:</span>\n <strong>{group.label}</strong>\n </>\n )}\n </span>\n\n <span className=\"count\">({itemLabel})</span>\n\n {group.depotLocation && (\n <span className=\"depot\">{group.depotLocation}</span>\n )}\n\n {selectedInGroup > 0 && (\n <span className=\"selected\">{selectedInGroup} selected</span>\n )}\n\n {!group.isNoPallet && (\n <ToggleGlyph aria-hidden=\"true\">\n {expanded ? '−' : '+'}\n </ToggleGlyph>\n )}\n </PalletHeaderToggle>\n </PalletHeaderBar>\n </td>\n </PalletHeaderRow>\n\n {expanded && group.items.map((item: any) => renderProductRow(item))}\n </React.Fragment>\n );\n };\n\n return (\n <div>\n <StyledTableWrapper id=\"tableScrolling\" className=\"orderProductTable\">\n <StyledTable>\n <thead>\n <tr>\n <th className=\"emailproductsCheckbox\">\n <StyleCheckbox\n disabled={disableCheckbox}\n checked={selectAll}\n onChange={handleSelectAll}\n />\n </th>\n <th>Location</th>\n <th>Sender</th>\n <th>Code</th>\n <th>Description</th>\n <th>Return Reason</th>\n {!isClientPortal && <th>Additional Services</th>}\n <th>Part</th>\n <th>Action</th>\n </tr>\n </thead>\n <tbody>\n {props?.loading || props?.locationloading ? (\n <tr>\n <td colSpan={columnCount}>\n <Skeleton active />\n </td>\n </tr>\n ) : productData?.length === 0 ? (\n <tr>\n <td colSpan={columnCount}>\n <EmptyDataContainer>\n <Empty />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : isGrouped ? (\n palletGroups.map(renderPalletGroup)\n ) : (\n /* Called explicitly so `map`'s index is not passed as `isNoPallet`. */\n productData?.map((product: any) => renderProductRow(product))\n )}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n\n {isDeleteModalOpen && (\n <Spin spinning={deleteLoading}>\n <StyledCancelationModal\n title=\"Remove Product\"\n description=\"Are you sure, you want to remove this order product for returns?\"\n actions={\n <CustomCancelAndCompleteAction\n cancelLabel=\"Cancel\"\n onCancel={handleCancelDelete}\n completeLabel={deleteLoading ? 'REMOVING...' : 'Confirm'}\n isDisabled={deleteLoading}\n onComplete={handleConfirmDelete}\n />\n }\n />\n </Spin>\n )}\n </div>\n );\n};\n\nexport const NSWrapper = styled.div`\n display: flex;\n width: 100%;\n padding: 5px 10px;\n align-items: center;\n gap: 10px;\n // position: absolute;\n // right: 84px;\n // top: 181px;\n border-radius: 6px;\n border: 1px solid rgb(237, 235, 232);\n background: rgb(248, 250, 252);\n margin-bottom: 14px;\n\n .left {\n display: flex;\n padding-right: 10px;\n align-items: center;\n gap: 5px;\n align-self: stretch;\n color: #3a3630;\n font-feature-settings: 'liga' off, 'clig' off;\n font-family: Roboto;\n font-size: 13px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n text-transform: uppercase;\n }\n\n .left-end {\n display: flex;\n padding-right: 10px;\n align-items: center;\n gap: 5px;\n align-self: stretch;\n border-right: 1px solid #e2e0db;\n }\n\n .section {\n display: flex;\n align-items: center;\n gap: 30px;\n flex: 1 0 0;\n\n input {\n display: flex;\n height: 28px;\n padding: 3px 10px;\n align-items: center;\n gap: 8px;\n flex: 1 0 0;\n border-radius: 30px;\n border: 1px solid #ccc;\n background: #fff;\n }\n }\n`;\n\nconst PalletHeaderRow = styled.tr`\n > td {\n padding: 0;\n border: none;\n }\n\n /*\n Spec: the No Pallet ID group must be separated from the palletised groups by\n a divider line. Neutral rule only — the rows themselves keep their normal\n background, and the header keeps the same design as the pallet headers.\n */\n &.no-pallet > td {\n border-top: 1px solid #c9c6c1;\n padding-top: 10px;\n }\n`;\n\n/** Carries the header's frame so the checkbox can sit outside the toggle button. */\nconst PalletHeaderBar = styled.div`\n /*\n The library Checkbox renders its real <input> as position:absolute with no\n offsets, so it needs a positioned ancestor or the click target drifts away\n from the visible box as the table scrolls. The shared table CSS happens to\n position td already; pinning it here too so this does not depend on that.\n */\n position: relative;\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #e2e0db;\n border-radius: 6px;\n background: #f1f5f9;\n font-family: 'Roboto', sans-serif;\n font-size: 13px;\n font-weight: 500;\n color: #3a3630;\n\n &:hover {\n background: #e7edf4;\n }\n\n`;\n\nconst PalletHeaderToggle = styled.button`\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n text-align: left;\n font: inherit;\n color: inherit;\n\n &:disabled {\n cursor: default;\n /* Inert, but must not read as a greyed-out disabled control. */\n opacity: 1;\n }\n\n .title {\n display: flex;\n align-items: center;\n gap: 6px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n\n strong {\n font-weight: 700;\n text-transform: none;\n letter-spacing: 0;\n }\n }\n\n .count {\n color: #6a7378;\n font-weight: 400;\n }\n\n .depot {\n color: #888075;\n font-weight: 400;\n font-size: 12px;\n }\n\n .selected {\n color: #0099ff;\n font-weight: 600;\n font-size: 12px;\n }\n\n`;\n\nconst Chevron = styled.span<{ $isExpanded: boolean }>`\n display: inline-flex;\n align-items: center;\n transition: transform 0.15s ease-in-out;\n transform: rotate(${props => (props.$isExpanded ? '0deg' : '-90deg')});\n`;\n\nconst ToggleGlyph = styled.span`\n margin-left: auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n background: #fff;\n font-size: 14px;\n line-height: 1;\n color: #475569;\n`;\n\nconst StyleCheckbox = styled(Checkbox)`\n &:disabled {\n background-color: gray;\n cursor: not-allowed;\n opacity: -0.4;\n }\n`;\n\nconst StyledCancelationModal = styled(CancelationModal)`\n div {\n & > div > div:first-child {\n padding: 8px !important;\n }\n }\n svg {\n width: 28px !important;\n height: 28px !important;\n }\n`;\n\nconst CustomCancelAndCompleteAction = styled(CancelAndCompleteAction)`\n justify-content: center;\n`;\n\nexport default ReturnProductTable;\n"],"names":["ReturnProductTable","props","selectedProducts","setSelectedProducts","useSelectedProducts","selectAll","setSelectAll","useState","productData","useReturnProductDetails","orderId","useOrderId","returnOrderData","useNewReturnOrderData","isNorthSouth","useIsShowNorthSouth","isClientPortal","useClientPortal","productToDelete","setProductToDelete","isDeleteModalOpen","setIsDeleteModalOpen","deleteLoading","callDeleteProduct","useAxios","handleOpenDeleteModal","id","handleConfirmDelete","targetId","response","notification","error","handleCancelDelete","handleSelectAll","allProductIds","product","handleSelectProduct","prevSelected","selectedId","disableCheckbox","columnCount","palletGroups","useMemo","groupProductsByPallet","isGrouped","hasAnyPallet","expandedPallets","setExpandedPallets","useEffect","isGroupExpanded","group","togglePallet","key","prev","renderProductRow","jsxs","React","jsx","StyleCheckbox","NavLink","displayValueOrNA","service","e","ActionIcon","NSWrapper","CustomInput","toggleGroupSelection","allSelected","groupIds","item","nextSelection","toggleGroupSelectionIds","renderPalletGroup","expanded","selectedInGroup","allSelectedInGroup","itemLabel","PalletHeaderRow","PalletHeaderBar","PalletHeaderToggle","Chevron","ChevronDownIcon","Fragment","ToggleGlyph","StyledTableWrapper","StyledTable","Skeleton","EmptyDataContainer","Empty","Spin","StyledCancelationModal","CustomCancelAndCompleteAction","styled","Checkbox","CancelationModal","CancelAndCompleteAction"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReturnProductTable.js","sources":["../../../../../src/components/order-view/return-client-products/product-table/ReturnProductTable.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport {\n StyledTable,\n StyledTableWrapper,\n} from '../../../order-daily-overview/return-order-table/return-orders-filters/returnstyles';\nimport {\n CancelAndCompleteAction,\n CancelationModal,\n Checkbox,\n displayValueOrNA,\n toReverseDeliveryLabel,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport ActionIcon from '../../../../assets/icons/ActionIcon';\nimport { useOrderId, useReturnProductDetails } from '../../store';\nimport { ApiResponse } from '../../types';\nimport { Empty, notification, Skeleton, Spin } from 'antd';\nimport {\n useIsShowNorthSouth,\n useNewReturnOrderData,\n useSelectedProducts,\n useClientPortal,\n} from '../../../store';\nimport styled from 'styled-components';\nimport { NavLink } from 'react-router-dom';\nimport { EmptyDataContainer } from '../../order-actions/actions/charge-log';\nimport CustomInput from '../../northern-southern-info/CustomInput';\nimport ChevronDownIcon from '../../../../assets/icons/ChevronDownIcon';\nimport {\n groupProductsByPallet,\n hasAnyPallet,\n PalletGroup,\n toggleGroupSelectionIds,\n} from './palletGrouping';\n\ninterface IPROS {\n callReturnProducts: any;\n loading: boolean;\n locationloading: boolean;\n}\n\nconst ReturnProductTable = (props: IPROS) => {\n const [selectedProducts, setSelectedProducts] = useSelectedProducts();\n const [selectAll, setSelectAll] = useState(false);\n const [productData] = useReturnProductDetails();\n const [orderId] = useOrderId();\n const [returnOrderData] = useNewReturnOrderData();\n const [isNorthSouth] = useIsShowNorthSouth();\n const [isClientPortal] = useClientPortal();\n\n const [productToDelete, setProductToDelete] = useState<number | null>(null);\n const [isDeleteModalOpen, setIsDeleteModalOpen] = useState<boolean>(false);\n\n const { loading: deleteLoading, fetchData: callDeleteProduct } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `v1/return/product/remove/`,\n method: 'POST',\n });\n\n const handleOpenDeleteModal = (id: number) => {\n setProductToDelete(id);\n setIsDeleteModalOpen(true);\n };\n\n const handleConfirmDelete = async () => {\n if (productToDelete === null) return;\n const targetId = productToDelete;\n try {\n const response = (await callDeleteProduct({\n payload: {\n return_order_product_id: targetId,\n return_order_id: +orderId,\n },\n })) as {\n code: number | null;\n error?: string | null;\n data?: any[];\n message?: string;\n };\n\n if (response?.code === 200) {\n notification.success({\n message: 'Success',\n description: response?.message || 'Product deleted successfully.',\n });\n props?.callReturnProducts();\n } else {\n notification.error({\n message: 'Deletion Failed',\n description: response?.message || 'Could not delete the product.',\n });\n }\n } catch (error) {\n console.error('Error deleting product:', error);\n notification.error({\n message: 'Error',\n //@ts-ignore\n description: error?.message || 'An unexpected error occurred.',\n });\n } finally {\n setProductToDelete(null);\n setIsDeleteModalOpen(false);\n }\n };\n\n const handleCancelDelete = () => {\n if (deleteLoading) return;\n setProductToDelete(null);\n setIsDeleteModalOpen(false);\n };\n\n const handleSelectAll = () => {\n if (selectAll) {\n setSelectedProducts([]);\n } else {\n const allProductIds = productData?.map((product: any) => product.id);\n setSelectedProducts(allProductIds);\n }\n setSelectAll(!selectAll);\n };\n\n const handleSelectProduct = (id: number) => {\n setSelectedProducts((prevSelected: any) =>\n prevSelected.includes(id)\n ? prevSelected.filter((selectedId: any) => selectedId !== id)\n : [...prevSelected, id]\n );\n };\n\n const disableCheckbox =\n productData?.length == 0 || returnOrderData?.length == 0;\n\n const columnCount = isClientPortal ? 8 : 9;\n\n const palletGroups = useMemo(() => groupProductsByPallet(productData), [\n productData,\n ]);\n\n /**\n * Orders picked before pallet scanning existed have no pallet IDs at all. Grouping\n * those would render every item under \"re-scan required\", so they keep the flat\n * list — matching the spec's \"one group per distinct pallet ID scanned\".\n */\n const isGrouped = useMemo(() => hasAnyPallet(productData), [productData]);\n\n /** Pallet groups default to collapsed; the No Pallet ID group is always open. */\n const [expandedPallets, setExpandedPallets] = useState<\n Record<string, boolean>\n >({});\n\n /**\n * Moving between return orders re-uses this component (route `/:id`, so no\n * remount), and a pallet_id can legitimately appear on two orders — a whole-pallet\n * split carries it to the new B number. Without this reset, a pallet the user had\n * expanded on the previous order would open expanded on the next one, breaking\n * \"default state: all groups collapsed\".\n */\n useEffect(() => {\n setExpandedPallets({});\n }, [orderId]);\n\n const isGroupExpanded = (group: PalletGroup) =>\n group.isNoPallet || !!expandedPallets[group.key];\n\n const togglePallet = (key: string) =>\n setExpandedPallets(prev => ({ ...prev, [key]: !prev[key] }));\n\n const renderProductRow = (product: any) => (\n <React.Fragment key={product.id}>\n {/* MAIN ROW */}\n <tr className=\"product-row\">\n <td>\n <StyleCheckbox\n checked={selectedProducts?.includes(product?.id)}\n onChange={() => handleSelectProduct(product?.id)}\n disabled={disableCheckbox}\n />\n </td>\n <td>{product?.location || 'N/A'}</td>\n <td>\n <ul style={{ listStyleType: 'none', padding: 0 }}>\n <li\n style={{\n color: '#0099ff',\n fontWeight: 600,\n }}\n >\n <NavLink to={`/orders/view/${product?.order_id}`}>\n {displayValueOrNA(product?.recipient_name)}\n </NavLink>\n </li>\n <li style={{ color: '#888075' }}>\n {displayValueOrNA(product?.postcode)}\n </li>\n </ul>\n </td>\n <td>{product?.code}</td>\n <td>{product?.description}</td>\n <td>{isClientPortal\n ? product?.return_reason\n : toReverseDeliveryLabel(product?.return_reason)}</td>\n {!isClientPortal && (\n <td>\n {Array.isArray(product?.product_addon_services) && product?.product_addon_services?.length > 0\n ? product.product_addon_services\n .map((service: any) => service?.service_code || service?.name || service)\n .filter(Boolean)\n .join(', ')\n : Array.isArray(product?.addon_services) && product?.addon_services?.length > 0\n ? product.addon_services\n .map((service: any) => service?.service_code || service?.name || service)\n .filter(Boolean)\n .join(', ')\n : Array.isArray(product?.addon_services_list) && product?.addon_services_list?.length > 0\n ? product.addon_services_list.join(', ')\n : typeof product?.addon_services === 'string' && product?.addon_services.trim() !== ''\n ? product.addon_services\n : 'NA'}\n </td>\n )}\n <td>{product?.part}</td>\n <td>\n <div\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n handleOpenDeleteModal(product?.id);\n }}\n style={{ cursor: 'pointer' }}\n >\n <ActionIcon />\n </div>\n </td>\n </tr>\n\n {/* EXPANDED ROW */}\n {/*\n NOTE: this <td> is not wrapped in a <tr>, which is invalid DOM nesting and\n logs a React validateDOMNesting warning. Left exactly as it was — it only\n affects Northern/Southern Ireland orders and is unrelated to pallet\n grouping, so it belongs in its own ticket rather than this change.\n */}\n {isNorthSouth === true && (\n <td colSpan={columnCount}>\n <NSWrapper>\n <div className=\"left\">Northern/Southern Ireland</div>\n <div className=\"left-end\"></div>\n\n <div className=\"section\">\n <CustomInput\n label=\"Commodity Code\"\n type=\"text\"\n direction=\"row\"\n placeholder=\"Enter Commodity Code\"\n value={\n product?.product_customs_details?.commodity_code || 'NA'\n }\n disabled\n />\n\n <CustomInput\n label=\"Country of Origin\"\n type=\"text\"\n direction=\"row\"\n placeholder=\"Enter Country of Origin\"\n value={\n product?.product_customs_details?.country_of_origin || 'NA'\n }\n disabled\n />\n\n <CustomInput\n label=\"Item Invoice Amount\"\n type=\"number\"\n direction=\"row\"\n placeholder=\"Enter Item Invoice Amount\"\n value={\n product?.product_customs_details?.item_invoice_amount || 0\n }\n disabled\n />\n\n <CustomInput\n label=\"NI Additional Info Codes\"\n type=\"text\"\n direction=\"row\"\n placeholder=\"Enter NI Add Info Codes\"\n value={\n product?.product_customs_details\n ?.ni_additional_information_codes || 'NA'\n }\n disabled\n />\n </div>\n </NSWrapper>\n </td>\n )}\n </React.Fragment>\n );\n\n /**\n * Group-level selection is purely a shortcut for ticking each row in the group —\n * it writes the same `selectedProducts` state and adds no whole-pallet semantics.\n * The pallet_id rules for whole vs partial moves land with Part 2.\n */\n const toggleGroupSelection = (group: PalletGroup, allSelected: boolean) => {\n const groupIds = group.items.map((item: any) => item?.id);\n const nextSelection = toggleGroupSelectionIds(\n selectedProducts,\n groupIds,\n allSelected\n );\n\n setSelectedProducts(nextSelection);\n // Keep the header select-all in step, or ticking every group leaves it unchecked.\n setSelectAll(nextSelection.length === productData?.length);\n };\n\n const renderPalletGroup = (group: PalletGroup) => {\n const expanded = isGroupExpanded(group);\n const selectedInGroup = group.items.filter((item: any) =>\n selectedProducts?.includes(item?.id)\n ).length;\n const allSelectedInGroup =\n group.items.length > 0 && selectedInGroup === group.items.length;\n const itemLabel = `${group.items.length} ${group.items.length === 1 ? 'item' : 'items'\n }`;\n\n return (\n <React.Fragment key={group.key}>\n <PalletHeaderRow className={group.isNoPallet ? 'no-pallet' : undefined}>\n <td colSpan={columnCount}>\n <PalletHeaderBar>\n {/*\n Sibling of the toggle, not a child of it — a checkbox nested inside\n a <button> is invalid HTML and swallows the click.\n */}\n <StyleCheckbox\n checked={allSelectedInGroup}\n onChange={() => toggleGroupSelection(group, allSelectedInGroup)}\n disabled={disableCheckbox}\n aria-label={\n group.isNoPallet\n ? 'Select all items with no pallet ID'\n : `Select all items on pallet ${group.label}`\n }\n />\n\n <PalletHeaderToggle\n type=\"button\"\n /* The No Pallet ID group is always open, so its toggle is inert. */\n disabled={group.isNoPallet}\n onClick={\n group.isNoPallet ? undefined : () => togglePallet(group.key)\n }\n aria-expanded={group.isNoPallet ? undefined : expanded}\n >\n {!group.isNoPallet && (\n <Chevron $isExpanded={expanded}>\n <ChevronDownIcon />\n </Chevron>\n )}\n\n <span className=\"title\">\n {group.isNoPallet ? (\n <span>No Pallet ID</span>\n ) : (\n <>\n <span>Pallet ID:</span>\n <strong>{group.label}</strong>\n </>\n )}\n </span>\n\n <span className=\"count\">({itemLabel})</span>\n\n {group.depotLocation && (\n <span className=\"depot\">{group.depotLocation}</span>\n )}\n\n {selectedInGroup > 0 && (\n <span className=\"selected\">{selectedInGroup} selected</span>\n )}\n\n {!group.isNoPallet && (\n <ToggleGlyph aria-hidden=\"true\">\n {expanded ? '−' : '+'}\n </ToggleGlyph>\n )}\n </PalletHeaderToggle>\n </PalletHeaderBar>\n </td>\n </PalletHeaderRow>\n\n {expanded && group.items.map((item: any) => renderProductRow(item))}\n </React.Fragment>\n );\n };\n\n return (\n <div>\n <StyledTableWrapper id=\"tableScrolling\" className=\"orderProductTable\">\n <StyledTable>\n <thead>\n <tr>\n <th className=\"emailproductsCheckbox\">\n <StyleCheckbox\n disabled={disableCheckbox}\n checked={selectAll}\n onChange={handleSelectAll}\n />\n </th>\n <th>Location</th>\n <th>Sender</th>\n <th>Code</th>\n <th>Description</th>\n <th>Return Reason</th>\n {!isClientPortal && <th>Additional Services</th>}\n <th>Part</th>\n <th>Action</th>\n </tr>\n </thead>\n <tbody>\n {props?.loading || props?.locationloading ? (\n <tr>\n <td colSpan={columnCount}>\n <Skeleton active />\n </td>\n </tr>\n ) : productData?.length === 0 ? (\n <tr>\n <td colSpan={columnCount}>\n <EmptyDataContainer>\n <Empty />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : isGrouped ? (\n palletGroups.map(renderPalletGroup)\n ) : (\n /* Called explicitly so `map`'s index is not passed as `isNoPallet`. */\n productData?.map((product: any) => renderProductRow(product))\n )}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n\n {isDeleteModalOpen && (\n <Spin spinning={deleteLoading}>\n <StyledCancelationModal\n title=\"Remove Product\"\n description=\"Are you sure, you want to remove this order product for returns?\"\n actions={\n <CustomCancelAndCompleteAction\n cancelLabel=\"Cancel\"\n onCancel={handleCancelDelete}\n completeLabel={deleteLoading ? 'REMOVING...' : 'Confirm'}\n isDisabled={deleteLoading}\n onComplete={handleConfirmDelete}\n />\n }\n />\n </Spin>\n )}\n </div>\n );\n};\n\nexport const NSWrapper = styled.div`\n display: flex;\n width: 100%;\n padding: 5px 10px;\n align-items: center;\n gap: 10px;\n // position: absolute;\n // right: 84px;\n // top: 181px;\n border-radius: 6px;\n border: 1px solid rgb(237, 235, 232);\n background: rgb(248, 250, 252);\n margin-bottom: 14px;\n\n .left {\n display: flex;\n padding-right: 10px;\n align-items: center;\n gap: 5px;\n align-self: stretch;\n color: #3a3630;\n font-feature-settings: 'liga' off, 'clig' off;\n font-family: Roboto;\n font-size: 13px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n text-transform: uppercase;\n }\n\n .left-end {\n display: flex;\n padding-right: 10px;\n align-items: center;\n gap: 5px;\n align-self: stretch;\n border-right: 1px solid #e2e0db;\n }\n\n .section {\n display: flex;\n align-items: center;\n gap: 30px;\n flex: 1 0 0;\n\n input {\n display: flex;\n height: 28px;\n padding: 3px 10px;\n align-items: center;\n gap: 8px;\n flex: 1 0 0;\n border-radius: 30px;\n border: 1px solid #ccc;\n background: #fff;\n }\n }\n`;\n\nconst PalletHeaderRow = styled.tr`\n > td {\n padding: 0;\n border: none;\n }\n\n /*\n Spec: the No Pallet ID group must be separated from the palletised groups by\n a divider line. Neutral rule only — the rows themselves keep their normal\n background, and the header keeps the same design as the pallet headers.\n */\n &.no-pallet > td {\n border-top: 1px solid #c9c6c1;\n padding-top: 10px;\n }\n`;\n\n/** Carries the header's frame so the checkbox can sit outside the toggle button. */\nconst PalletHeaderBar = styled.div`\n /*\n The library Checkbox renders its real <input> as position:absolute with no\n offsets, so it needs a positioned ancestor or the click target drifts away\n from the visible box as the table scrolls. The shared table CSS happens to\n position td already; pinning it here too so this does not depend on that.\n */\n position: relative;\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #e2e0db;\n border-radius: 6px;\n background: #f1f5f9;\n font-family: 'Roboto', sans-serif;\n font-size: 13px;\n font-weight: 500;\n color: #3a3630;\n\n &:hover {\n background: #e7edf4;\n }\n\n`;\n\nconst PalletHeaderToggle = styled.button`\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n text-align: left;\n font: inherit;\n color: inherit;\n\n &:disabled {\n cursor: default;\n /* Inert, but must not read as a greyed-out disabled control. */\n opacity: 1;\n }\n\n .title {\n display: flex;\n align-items: center;\n gap: 6px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n\n strong {\n font-weight: 700;\n text-transform: none;\n letter-spacing: 0;\n }\n }\n\n .count {\n color: #6a7378;\n font-weight: 400;\n }\n\n .depot {\n color: #888075;\n font-weight: 400;\n font-size: 12px;\n }\n\n .selected {\n color: #0099ff;\n font-weight: 600;\n font-size: 12px;\n }\n\n`;\n\nconst Chevron = styled.span<{ $isExpanded: boolean }>`\n display: inline-flex;\n align-items: center;\n transition: transform 0.15s ease-in-out;\n transform: rotate(${props => (props.$isExpanded ? '0deg' : '-90deg')});\n`;\n\nconst ToggleGlyph = styled.span`\n margin-left: auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n background: #fff;\n font-size: 14px;\n line-height: 1;\n color: #475569;\n`;\n\nconst StyleCheckbox = styled(Checkbox)`\n &:disabled {\n background-color: gray;\n cursor: not-allowed;\n opacity: -0.4;\n }\n`;\n\nconst StyledCancelationModal = styled(CancelationModal)`\n div {\n & > div > div:first-child {\n padding: 8px !important;\n }\n }\n svg {\n width: 28px !important;\n height: 28px !important;\n }\n`;\n\nconst CustomCancelAndCompleteAction = styled(CancelAndCompleteAction)`\n justify-content: center;\n`;\n\nexport default ReturnProductTable;\n"],"names":["ReturnProductTable","props","selectedProducts","setSelectedProducts","useSelectedProducts","selectAll","setSelectAll","useState","productData","useReturnProductDetails","orderId","useOrderId","returnOrderData","useNewReturnOrderData","isNorthSouth","useIsShowNorthSouth","isClientPortal","useClientPortal","productToDelete","setProductToDelete","isDeleteModalOpen","setIsDeleteModalOpen","deleteLoading","callDeleteProduct","useAxios","handleOpenDeleteModal","id","handleConfirmDelete","targetId","response","notification","error","handleCancelDelete","handleSelectAll","allProductIds","product","handleSelectProduct","prevSelected","selectedId","disableCheckbox","columnCount","palletGroups","useMemo","groupProductsByPallet","isGrouped","hasAnyPallet","expandedPallets","setExpandedPallets","useEffect","isGroupExpanded","group","togglePallet","key","prev","renderProductRow","jsxs","React","jsx","StyleCheckbox","NavLink","displayValueOrNA","toReverseDeliveryLabel","service","e","ActionIcon","NSWrapper","CustomInput","toggleGroupSelection","allSelected","groupIds","item","nextSelection","toggleGroupSelectionIds","renderPalletGroup","expanded","selectedInGroup","allSelectedInGroup","itemLabel","PalletHeaderRow","PalletHeaderBar","PalletHeaderToggle","Chevron","ChevronDownIcon","Fragment","ToggleGlyph","StyledTableWrapper","StyledTable","Skeleton","EmptyDataContainer","Empty","Spin","StyledCancelationModal","CustomCancelAndCompleteAction","styled","Checkbox","CancelationModal","CancelAndCompleteAction"],"mappings":"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"}
|
|
@@ -8,12 +8,11 @@ import ge from "../collapsed-content/index.js";
|
|
|
8
8
|
import b from "@tippyjs/react";
|
|
9
9
|
import { DownloadIcon as S } from "../../../../assets/icons/DownloadIcon.js";
|
|
10
10
|
import { Tabs as k, Skeleton as c, Image as fe, Spin as ue, notification as E } from "antd";
|
|
11
|
-
import { useAxios as P, PrivateIcon as be, PublicIcon as we, ViewIcon as _, formatUtcToLocal as A } from "@bjsdistribution/dms-component-library";
|
|
12
|
-
import { useClientPortal as
|
|
13
|
-
import { toReverseDeliveryLabel as ye } from "../../../utils.js";
|
|
11
|
+
import { useAxios as P, PrivateIcon as be, PublicIcon as we, toReverseDeliveryLabel as xe, ViewIcon as _, formatUtcToLocal as A } from "@bjsdistribution/dms-component-library";
|
|
12
|
+
import { useClientPortal as ye } from "../../../store.js";
|
|
14
13
|
import { useAtom as ve } from "jotai";
|
|
15
|
-
function
|
|
16
|
-
const [x] = re(), [Z] = ve(se), [f, M] = L("pda"), [C, V] = ce(), [H, K] = de(), [G, W] = L([]), [q] = pe(), [I, J] = L([]), [Q] =
|
|
14
|
+
function He() {
|
|
15
|
+
const [x] = re(), [Z] = ve(se), [f, M] = L("pda"), [C, V] = ce(), [H, K] = de(), [G, W] = L([]), [q] = pe(), [I, J] = L([]), [Q] = ye(), {
|
|
17
16
|
data: X,
|
|
18
17
|
// setShouldPerformAction: setAction,
|
|
19
18
|
loading: D,
|
|
@@ -115,7 +114,7 @@ function Ke() {
|
|
|
115
114
|
n?.visibility_status === "locked" ? /* @__PURE__ */ e(be, {}) : /* @__PURE__ */ e(we, {}),
|
|
116
115
|
/* @__PURE__ */ e("div", { children: n?.path })
|
|
117
116
|
] }),
|
|
118
|
-
/* @__PURE__ */ e(m, { children:
|
|
117
|
+
/* @__PURE__ */ e(m, { children: xe(n?.type, Q) }),
|
|
119
118
|
/* @__PURE__ */ e(m, { children: n?.time }),
|
|
120
119
|
/* @__PURE__ */ e(m, { colSpan: 2, children: (n?.type === "photo" || n?.type === "call_recording") && /* @__PURE__ */ e(ze, { children: /* @__PURE__ */ l(F, { children: [
|
|
121
120
|
n?.type === "call_recording" ? /* @__PURE__ */ e(b, { content: "Play", placement: "top", trigger: "mouseenter", children: /* @__PURE__ */ e(
|
|
@@ -529,6 +528,6 @@ const Ce = r.div`
|
|
|
529
528
|
}
|
|
530
529
|
`;
|
|
531
530
|
export {
|
|
532
|
-
|
|
531
|
+
He as default
|
|
533
532
|
};
|
|
534
533
|
//# sourceMappingURL=index.js.map
|