@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.
Files changed (48) hide show
  1. package/dist/components/client-portal/OutstandingTable.js +118 -112
  2. package/dist/components/client-portal/OutstandingTable.js.map +1 -1
  3. package/dist/components/fakeData.js.map +1 -1
  4. package/dist/components/order-daily-overview/common/fakedata.js.map +1 -1
  5. package/dist/components/order-daily-overview/return-after-table/table/OrderTable.js +33 -31
  6. package/dist/components/order-daily-overview/return-after-table/table/OrderTable.js.map +1 -1
  7. package/dist/components/order-daily-overview/return-after-table/table-filters/ReturnOrderFilter.js +82 -79
  8. package/dist/components/order-daily-overview/return-after-table/table-filters/ReturnOrderFilter.js.map +1 -1
  9. package/dist/components/order-daily-overview/return-order-table/return-orders-filters/ReturnOrderTable.js +157 -151
  10. package/dist/components/order-daily-overview/return-order-table/return-orders-filters/ReturnOrderTable.js.map +1 -1
  11. package/dist/components/order-view/order-actions/Dropdown.js +3 -3
  12. package/dist/components/order-view/order-actions/Dropdown.js.map +1 -1
  13. package/dist/components/order-view/order-actions/actions/cancel-order/CancelOrderTable.js +47 -45
  14. package/dist/components/order-view/order-actions/actions/cancel-order/CancelOrderTable.js.map +1 -1
  15. package/dist/components/order-view/order-actions/actions/cancel-order/ReturnReason.js +36 -23
  16. package/dist/components/order-view/order-actions/actions/cancel-order/ReturnReason.js.map +1 -1
  17. package/dist/components/order-view/order-actions/actions/confirm-order/tables/ProductTable.js +25 -23
  18. package/dist/components/order-view/order-actions/actions/confirm-order/tables/ProductTable.js.map +1 -1
  19. package/dist/components/order-view/order-actions/actions/force-debrief/ForceDebriefModal.js +89 -88
  20. package/dist/components/order-view/order-actions/actions/force-debrief/ForceDebriefModal.js.map +1 -1
  21. package/dist/components/order-view/order-actions/actions/force-debrief/charges/collection-add-ons/index.js +16 -16
  22. package/dist/components/order-view/order-actions/actions/force-debrief/charges/collection-add-ons/index.js.map +1 -1
  23. package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationReason.js +23 -22
  24. package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationReason.js.map +1 -1
  25. package/dist/components/order-view/order-actions/actions/force-debrief/order-info/RadioButtons.js +56 -52
  26. package/dist/components/order-view/order-actions/actions/force-debrief/order-info/RadioButtons.js.map +1 -1
  27. package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/FailureReasonDropdown.js +27 -26
  28. package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/FailureReasonDropdown.js.map +1 -1
  29. package/dist/components/order-view/order-actions/actions/hold-order/HoldOrderModal.js +29 -29
  30. package/dist/components/order-view/order-actions/actions/hold-order/HoldOrderModal.js.map +1 -1
  31. package/dist/components/order-view/order-actions/actions/split-order/SplitOrderTable.js +72 -71
  32. package/dist/components/order-view/order-actions/actions/split-order/SplitOrderTable.js.map +1 -1
  33. package/dist/components/order-view/order-actions/actions/uncancel-order/UncancelOrderTable.js +37 -35
  34. package/dist/components/order-view/order-actions/actions/uncancel-order/UncancelOrderTable.js.map +1 -1
  35. package/dist/components/order-view/order-details/expanded-content/services-section/OrderServices.js +20 -18
  36. package/dist/components/order-view/order-details/expanded-content/services-section/OrderServices.js.map +1 -1
  37. package/dist/components/order-view/order-details/expanded-content/services-section/ServiceType.js +26 -22
  38. package/dist/components/order-view/order-details/expanded-content/services-section/ServiceType.js.map +1 -1
  39. package/dist/components/order-view/order-details/helper.js.map +1 -1
  40. package/dist/components/order-view/return-client-products/product-table/ReturnProductTable.js +53 -53
  41. package/dist/components/order-view/return-client-products/product-table/ReturnProductTable.js.map +1 -1
  42. package/dist/components/order-view/toolbox-resources/expanded-content/index.js +6 -7
  43. package/dist/components/order-view/toolbox-resources/expanded-content/index.js.map +1 -1
  44. package/dist/components/utils.js +4 -5
  45. package/dist/components/utils.js.map +1 -1
  46. package/dist/types/components/order-view/order-actions/Dropdown.d.ts +1 -0
  47. package/dist/types/components/utils.d.ts +0 -1
  48. package/package.json +2 -2
@@ -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 h, useMemo as D, useEffect as Q } from "react";
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 ne from "../../../../assets/icons/ActionIcon.js";
6
- import { useReturnProductDetails as oe, useOrderId as le } from "../../store.js";
7
- import { Skeleton as ie, Empty as re, Spin as ae, notification as C } from "antd";
8
- import { useSelectedProducts as de, useNewReturnOrderData as se, useIsShowNorthSouth as ce, useClientPortal as pe } from "../../../store.js";
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 he } from "react-router-dom";
11
- import { EmptyDataContainer as me } from "../../order-actions/actions/charge-log/index.js";
12
- import m from "../../northern-southern-info/CustomInput.js";
13
- import fe from "../../../../assets/icons/ChevronDownIcon.js";
14
- import { groupProductsByPallet as ue, hasAnyPallet as ge, toggleGroupSelectionIds as xe } from "./palletGrouping.js";
15
- const ze = (a) => {
16
- const [f, s] = de(), [u, N] = h(!1), [l] = oe(), [S] = le(), [R] = se(), [T] = ce(), [g] = pe(), [A, x] = h(null), [O, b] = h(!1), { loading: c, fetchData: G } = te({
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
- c || (x(null), b(!1));
48
+ p || (x(null), b(!1));
49
49
  }, $ = () => {
50
- if (u)
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(!u);
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, p = g ? 8 : 9, B = D(() => ue(l), [
61
+ }, y = l?.length == 0 || R?.length == 0, h = c ? 8 : 9, B = D(() => ge(l), [
62
62
  l
63
- ]), F = D(() => ge(l), [l]), [H, w] = h({});
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: f?.includes(e?.id),
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(he, { to: `/orders/view/${e?.order_id}`, children: E(e?.recipient_name) })
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
- !g && /* @__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" }),
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(ne, {})
103
+ children: /* @__PURE__ */ t(oe, {})
104
104
  }
105
105
  ) })
106
106
  ] }),
107
- T === !0 && /* @__PURE__ */ t("td", { colSpan: p, children: /* @__PURE__ */ o(be, { children: [
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
- m,
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
- m,
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
- m,
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
- m,
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 = xe(
159
- f,
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
- (_) => f?.includes(_?.id)
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(ye, { className: e.isNoPallet ? "no-pallet" : void 0, children: /* @__PURE__ */ t("td", { colSpan: p, children: /* @__PURE__ */ o(ve, { children: [
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
- _e,
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(Ce, { $isExpanded: n, children: /* @__PURE__ */ t(fe, {}) }),
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(Pe, { "aria-hidden": "true", children: n ? "−" : "+" })
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: u,
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
- !g && /* @__PURE__ */ t("th", { children: "Additional Services" }),
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: p, children: /* @__PURE__ */ t(ie, { active: !0 }) }) }) : l?.length === 0 ? /* @__PURE__ */ t("tr", { children: /* @__PURE__ */ t("td", { colSpan: p, children: /* @__PURE__ */ t(me, { children: /* @__PURE__ */ t(re, {}) }) }) }) : F ? B.map(J) : (
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(ae, { spinning: c, children: /* @__PURE__ */ t(
236
- Ne,
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
- Se,
241
+ Ae,
242
242
  {
243
243
  cancelLabel: "Cancel",
244
244
  onCancel: M,
245
- completeLabel: c ? "REMOVING..." : "Confirm",
246
- isDisabled: c,
245
+ completeLabel: p ? "REMOVING..." : "Confirm",
246
+ isDisabled: p,
247
247
  onComplete: j
248
248
  }
249
249
  )
250
250
  }
251
251
  ) })
252
252
  ] });
253
- }, be = i.div`
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
- `, ye = i.tr`
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
- `, ve = i.div`
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
- `, _e = i.button`
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
- `, Ce = i.span`
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
- `, Pe = i.span`
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
- `, Ne = i(Z)`
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
- `, Se = i(ee)`
434
+ `, Ae = i(ee)`
435
435
  justify-content: center;
436
436
  `;
437
437
  export {
438
- be as NSWrapper,
439
- ze as default
438
+ ye as NSWrapper,
439
+ Be as default
440
440
  };
441
441
  //# sourceMappingURL=ReturnProductTable.js.map
@@ -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 xe } from "../../../store.js";
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 Ke() {
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] = xe(), {
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: ye(n?.type, Q) }),
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
- Ke as default
531
+ He as default
533
532
  };
534
533
  //# sourceMappingURL=index.js.map