ahs-cti 0.0.4 → 0.0.6

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 (90) hide show
  1. package/dist/agentDetailReport-ZR7U2LLB.mjs +17 -0
  2. package/dist/{agentPerformanceReport-6RO6STKU.mjs → agentPerformanceReport-JZK5DN5E.mjs} +73 -57
  3. package/dist/agentPerformanceReport-JZK5DN5E.mjs.map +1 -0
  4. package/dist/{auditReport-PYRZU3NA.mjs → auditReport-6ZUJ4UFO.mjs} +5 -4
  5. package/dist/{auditReport-PYRZU3NA.mjs.map → auditReport-6ZUJ4UFO.mjs.map} +1 -1
  6. package/dist/{callHistory-4JI64TU7.mjs → callHistory-T3M76D4B.mjs} +161 -158
  7. package/dist/callHistory-T3M76D4B.mjs.map +1 -0
  8. package/dist/{campaigns-JZE22SIM.mjs → campaigns-5PVHXBSD.mjs} +472 -417
  9. package/dist/campaigns-5PVHXBSD.mjs.map +1 -0
  10. package/dist/{caroQualityAuditDashboard-NRWY6SEC.mjs → caroQualityAuditDashboard-EUDYZ3QY.mjs} +6 -5
  11. package/dist/{caroQualityAuditDashboard-NRWY6SEC.mjs.map → caroQualityAuditDashboard-EUDYZ3QY.mjs.map} +1 -1
  12. package/dist/{caroVoiceAI-Z5BDDDSY.mjs → caroVoiceAI-GGJCVUIQ.mjs} +5 -4
  13. package/dist/{caroVoiceAI-Z5BDDDSY.mjs.map → caroVoiceAI-GGJCVUIQ.mjs.map} +1 -1
  14. package/dist/{cdrReport-RJTURVVV.mjs → cdrReport-ZMDHSZUW.mjs} +122 -104
  15. package/dist/cdrReport-ZMDHSZUW.mjs.map +1 -0
  16. package/dist/{chunk-HAJ6SECI.mjs → chunk-2M3YEXYA.mjs} +95 -64
  17. package/dist/chunk-2M3YEXYA.mjs.map +1 -0
  18. package/dist/{chunk-BDQZYTAY.mjs → chunk-33QNSXP7.mjs} +169 -163
  19. package/dist/chunk-33QNSXP7.mjs.map +1 -0
  20. package/dist/{chunk-FVVDDZCA.mjs → chunk-3J7KQNEU.mjs} +22 -11
  21. package/dist/chunk-3J7KQNEU.mjs.map +1 -0
  22. package/dist/chunk-6WLG2PXL.mjs +14 -0
  23. package/dist/chunk-6WLG2PXL.mjs.map +1 -0
  24. package/dist/chunk-7LE2VTAI.mjs +14 -0
  25. package/dist/chunk-7LE2VTAI.mjs.map +1 -0
  26. package/dist/chunk-AOJRUZTO.mjs +14 -0
  27. package/dist/chunk-AOJRUZTO.mjs.map +1 -0
  28. package/dist/chunk-DF5EFKXC.mjs +28690 -0
  29. package/dist/chunk-DF5EFKXC.mjs.map +1 -0
  30. package/dist/{chunk-UNTGXE6T.mjs → chunk-DJP744FF.mjs} +2 -2
  31. package/dist/{chunk-RZZQ42MG.mjs → chunk-DNTGBNZD.mjs} +22 -15
  32. package/dist/{chunk-RZZQ42MG.mjs.map → chunk-DNTGBNZD.mjs.map} +1 -1
  33. package/dist/{chunk-AJQBR3AZ.mjs → chunk-E6KYWWAI.mjs} +4243 -7804
  34. package/dist/chunk-E6KYWWAI.mjs.map +1 -0
  35. package/dist/chunk-FRKV2U3I.mjs +14 -0
  36. package/dist/chunk-FRKV2U3I.mjs.map +1 -0
  37. package/dist/{chunk-IBFF6DJA.mjs → chunk-H7GRWLYI.mjs} +13 -5
  38. package/dist/chunk-H7GRWLYI.mjs.map +1 -0
  39. package/dist/{chunk-PO6POUPL.mjs → chunk-IDZWA6HG.mjs} +185 -162
  40. package/dist/chunk-IDZWA6HG.mjs.map +1 -0
  41. package/dist/chunk-LHE4QGJJ.mjs +10920 -0
  42. package/dist/chunk-LHE4QGJJ.mjs.map +1 -0
  43. package/dist/{chunk-HBR2JS4C.mjs → chunk-NAZO4HKB.mjs} +8 -4
  44. package/dist/{chunk-HBR2JS4C.mjs.map → chunk-NAZO4HKB.mjs.map} +1 -1
  45. package/dist/chunk-OHJIW3I3.mjs +14 -0
  46. package/dist/chunk-OHJIW3I3.mjs.map +1 -0
  47. package/dist/chunk-Q6G3MPS7.mjs +37797 -0
  48. package/dist/chunk-Q6G3MPS7.mjs.map +1 -0
  49. package/dist/{chunk-ATAP77RC.mjs → chunk-U2UDKXMB.mjs} +2 -2
  50. package/dist/{chunk-JOZ4YQMR.mjs → chunk-VBIDPX5Z.mjs} +22 -15
  51. package/dist/{chunk-JOZ4YQMR.mjs.map → chunk-VBIDPX5Z.mjs.map} +1 -1
  52. package/dist/{chunk-6ICPXSN6.mjs → chunk-VVDJLUYT.mjs} +8 -4
  53. package/dist/{chunk-6ICPXSN6.mjs.map → chunk-VVDJLUYT.mjs.map} +1 -1
  54. package/dist/chunk-WTBVFN4H.mjs +14 -0
  55. package/dist/chunk-WTBVFN4H.mjs.map +1 -0
  56. package/dist/chunk-YAQYTUTX.mjs +28 -0
  57. package/dist/chunk-YAQYTUTX.mjs.map +1 -0
  58. package/dist/index.js +117517 -31841
  59. package/dist/index.js.map +1 -1
  60. package/dist/index.mjs +474 -369
  61. package/dist/index.mjs.map +1 -1
  62. package/dist/{liveStatus-E7UP37FK.mjs → liveStatus-YSBYSVOO.mjs} +123 -122
  63. package/dist/{liveStatus-E7UP37FK.mjs.map → liveStatus-YSBYSVOO.mjs.map} +1 -1
  64. package/dist/{loginReport-5QYHG6OM.mjs → loginReport-YIVBJVJD.mjs} +143 -122
  65. package/dist/loginReport-YIVBJVJD.mjs.map +1 -0
  66. package/dist/managementDashboard-7EMQC2UA.mjs +536 -0
  67. package/dist/{managementDashboard-PARD3QHL.mjs.map → managementDashboard-7EMQC2UA.mjs.map} +1 -1
  68. package/dist/{qualityAuditDashboard-ZJEEAMBS.mjs → qualityAuditDashboard-ENGQN2WQ.mjs} +6 -5
  69. package/dist/{qualityAuditDashboard-ZJEEAMBS.mjs.map → qualityAuditDashboard-ENGQN2WQ.mjs.map} +1 -1
  70. package/package.json +1 -1
  71. package/dist/agentDetailReport-JYBV3TF6.mjs +0 -13
  72. package/dist/agentPerformanceReport-6RO6STKU.mjs.map +0 -1
  73. package/dist/callHistory-4JI64TU7.mjs.map +0 -1
  74. package/dist/campaigns-JZE22SIM.mjs.map +0 -1
  75. package/dist/cdrReport-RJTURVVV.mjs.map +0 -1
  76. package/dist/chunk-AJQBR3AZ.mjs.map +0 -1
  77. package/dist/chunk-BDQZYTAY.mjs.map +0 -1
  78. package/dist/chunk-FVVDDZCA.mjs.map +0 -1
  79. package/dist/chunk-HAJ6SECI.mjs.map +0 -1
  80. package/dist/chunk-IBFF6DJA.mjs.map +0 -1
  81. package/dist/chunk-OVC42HVH.mjs +0 -1063
  82. package/dist/chunk-OVC42HVH.mjs.map +0 -1
  83. package/dist/chunk-PO6POUPL.mjs.map +0 -1
  84. package/dist/chunk-UB5HSUGK.mjs +0 -65
  85. package/dist/chunk-UB5HSUGK.mjs.map +0 -1
  86. package/dist/loginReport-5QYHG6OM.mjs.map +0 -1
  87. package/dist/managementDashboard-PARD3QHL.mjs +0 -531
  88. /package/dist/{agentDetailReport-JYBV3TF6.mjs.map → agentDetailReport-ZR7U2LLB.mjs.map} +0 -0
  89. /package/dist/{chunk-UNTGXE6T.mjs.map → chunk-DJP744FF.mjs.map} +0 -0
  90. /package/dist/{chunk-ATAP77RC.mjs.map → chunk-U2UDKXMB.mjs.map} +0 -0
@@ -0,0 +1,17 @@
1
+ import {
2
+ agentDetailReport_default
3
+ } from "./chunk-33QNSXP7.mjs";
4
+ import "./chunk-DF5EFKXC.mjs";
5
+ import "./chunk-AOJRUZTO.mjs";
6
+ import "./chunk-7LE2VTAI.mjs";
7
+ import "./chunk-VBIDPX5Z.mjs";
8
+ import "./chunk-NAZO4HKB.mjs";
9
+ import "./chunk-E6KYWWAI.mjs";
10
+ import "./chunk-YAQYTUTX.mjs";
11
+ import "./chunk-VVDJLUYT.mjs";
12
+ import "./chunk-LHE4QGJJ.mjs";
13
+ import "./chunk-Q6G3MPS7.mjs";
14
+ export {
15
+ agentDetailReport_default as default
16
+ };
17
+ //# sourceMappingURL=agentDetailReport-ZR7U2LLB.mjs.map
@@ -3,60 +3,76 @@ import {
3
3
  SearchBar,
4
4
  headCellSx,
5
5
  reportBodyCellSx,
6
+ require_isoWeek,
6
7
  sortLabelSx
7
- } from "./chunk-HAJ6SECI.mjs";
8
+ } from "./chunk-2M3YEXYA.mjs";
8
9
  import {
9
10
  SDKPermissionGuard
10
- } from "./chunk-FVVDDZCA.mjs";
11
+ } from "./chunk-3J7KQNEU.mjs";
12
+ import "./chunk-WTBVFN4H.mjs";
11
13
  import {
12
14
  agentDetailReport_default
13
- } from "./chunk-BDQZYTAY.mjs";
15
+ } from "./chunk-33QNSXP7.mjs";
16
+ import "./chunk-DF5EFKXC.mjs";
17
+ import {
18
+ FileDownload_default
19
+ } from "./chunk-AOJRUZTO.mjs";
20
+ import "./chunk-7LE2VTAI.mjs";
14
21
  import {
15
22
  PageHeader
16
- } from "./chunk-JOZ4YQMR.mjs";
23
+ } from "./chunk-VBIDPX5Z.mjs";
17
24
  import {
18
25
  AppButton
19
- } from "./chunk-HBR2JS4C.mjs";
26
+ } from "./chunk-NAZO4HKB.mjs";
20
27
  import {
21
28
  AdapterDayjs,
22
- LocalizationProvider
23
- } from "./chunk-AJQBR3AZ.mjs";
29
+ LocalizationProvider,
30
+ require_dayjs_min
31
+ } from "./chunk-E6KYWWAI.mjs";
32
+ import {
33
+ Refresh_default
34
+ } from "./chunk-YAQYTUTX.mjs";
24
35
  import {
25
36
  SDKProvider
26
- } from "./chunk-6ICPXSN6.mjs";
37
+ } from "./chunk-VVDJLUYT.mjs";
27
38
  import {
28
39
  END_POINT,
29
40
  SDK_PERMISSIONS,
30
41
  axios_default
31
- } from "./chunk-OVC42HVH.mjs";
42
+ } from "./chunk-LHE4QGJJ.mjs";
32
43
  import {
44
+ Alert_default,
45
+ Box_default,
46
+ CircularProgress_default,
47
+ IconButton_default,
48
+ Paper_default,
49
+ Stack_default,
50
+ TableBody_default,
51
+ TableCell_default,
52
+ TableContainer_default,
53
+ TableHead_default,
54
+ TablePagination_default,
55
+ TableRow_default,
56
+ TableSortLabel_default,
57
+ Table_default,
33
58
  __spreadProps,
34
- __spreadValues
35
- } from "./chunk-UB5HSUGK.mjs";
59
+ __spreadValues,
60
+ __toESM,
61
+ createSvgIcon
62
+ } from "./chunk-Q6G3MPS7.mjs";
36
63
 
37
64
  // call-control-sdk/lib/pages/agentPerformanceReport/index.tsx
38
65
  import { useState as useState2, useEffect, useCallback as useCallback2, useMemo, useRef } from "react";
39
- import {
40
- Box,
41
- Paper,
42
- Table,
43
- TableBody,
44
- TableCell,
45
- TableContainer,
46
- TableHead,
47
- TableRow,
48
- TableSortLabel,
49
- TablePagination,
50
- CircularProgress,
51
- Alert,
52
- Stack,
53
- IconButton
54
- } from "@mui/material";
55
- import FileDownloadIcon from "@mui/icons-material/FileDownload";
56
- import RefreshIcon from "@mui/icons-material/Refresh";
57
- import VisibilityIcon from "@mui/icons-material/Visibility";
58
- import dayjs from "dayjs";
59
- import isoWeek from "dayjs/plugin/isoWeek";
66
+
67
+ // node_modules/@mui/icons-material/Visibility.mjs
68
+ import { jsx as _jsx } from "react/jsx-runtime";
69
+ var Visibility_default = createSvgIcon(/* @__PURE__ */ _jsx("path", {
70
+ d: "M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"
71
+ }), "Visibility");
72
+
73
+ // call-control-sdk/lib/pages/agentPerformanceReport/index.tsx
74
+ var import_dayjs = __toESM(require_dayjs_min());
75
+ var import_isoWeek = __toESM(require_isoWeek());
60
76
 
61
77
  // call-control-sdk/lib/pages/agentPerformanceReport/useAgentPerformanceReport.ts
62
78
  import { useCallback, useState } from "react";
@@ -152,7 +168,7 @@ async function exportAgentPerformanceToExcel(params) {
152
168
 
153
169
  // call-control-sdk/lib/pages/agentPerformanceReport/index.tsx
154
170
  import { jsx, jsxs } from "react/jsx-runtime";
155
- dayjs.extend(isoWeek);
171
+ import_dayjs.default.extend(import_isoWeek.default);
156
172
  var C = {
157
173
  navy: "#0d2a56",
158
174
  blue: "#1565c8",
@@ -255,8 +271,8 @@ var COLUMNS = [
255
271
  { key: "adherence", label: "Adherence %", group: "Agent", align: "right" }
256
272
  ];
257
273
  function AgentPerformanceReportContent() {
258
- const [startDate, setStartDate] = useState2(dayjs().startOf("day"));
259
- const [endDate, setEndDate] = useState2(dayjs());
274
+ const [startDate, setStartDate] = useState2((0, import_dayjs.default)().startOf("day"));
275
+ const [endDate, setEndDate] = useState2((0, import_dayjs.default)());
260
276
  const [quickRange, setQuickRange] = useState2("today");
261
277
  const [selectedUsers, setSelectedUsers] = useState2([]);
262
278
  const [isAllUsersSelected, setIsAllUsersSelected] = useState2(false);
@@ -297,7 +313,7 @@ function AgentPerformanceReportContent() {
297
313
  };
298
314
  const handleRefresh = () => {
299
315
  if (quickRange === "today" || quickRange === "week" || quickRange === "month") {
300
- const now = dayjs();
316
+ const now = (0, import_dayjs.default)();
301
317
  let sd = now.startOf("day");
302
318
  const ed = now;
303
319
  if (quickRange === "week") sd = now.startOf("week").startOf("day");
@@ -395,7 +411,7 @@ function AgentPerformanceReportContent() {
395
411
  const durKeys = ["aht", "loginDur", "talk", "hold", "wrapup", "breakTime", "idle"];
396
412
  if (durKeys.includes(col.key)) return fmtDur(v);
397
413
  if (col.key === "adherence") return v != null ? `${v}%` : "\u2014";
398
- if (col.key === "firstLogin") return v ? dayjs(v).format("DD MMM YYYY hh:mm A") : "";
414
+ if (col.key === "firstLogin") return v ? (0, import_dayjs.default)(v).format("DD MMM YYYY hh:mm A") : "";
399
415
  return v != null ? v : "";
400
416
  };
401
417
  const activeCols = COLUMNS.filter((c) => visibleCols.has(c.key));
@@ -412,12 +428,12 @@ function AgentPerformanceReportContent() {
412
428
  }
413
429
  );
414
430
  }
415
- return /* @__PURE__ */ jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: /* @__PURE__ */ jsxs(Box, { sx: { background: C.bg, minHeight: "100vh" }, children: [
431
+ return /* @__PURE__ */ jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: /* @__PURE__ */ jsxs(Box_default, { sx: { background: C.bg, minHeight: "100vh" }, children: [
416
432
  /* @__PURE__ */ jsx(
417
433
  PageHeader,
418
434
  {
419
435
  title: " Performance Report",
420
- actions: /* @__PURE__ */ jsxs(Stack, { direction: "row", alignItems: "center", spacing: 1, children: [
436
+ actions: /* @__PURE__ */ jsxs(Stack_default, { direction: "row", alignItems: "center", spacing: 1, children: [
421
437
  /* @__PURE__ */ jsx(
422
438
  SearchBar,
423
439
  {
@@ -435,7 +451,7 @@ function AgentPerformanceReportContent() {
435
451
  children: /* @__PURE__ */ jsx(
436
452
  AppButton,
437
453
  {
438
- startIcon: /* @__PURE__ */ jsx(FileDownloadIcon, { sx: { fontSize: "0.95rem !important" } }),
454
+ startIcon: /* @__PURE__ */ jsx(FileDownload_default, { sx: { fontSize: "0.95rem !important" } }),
439
455
  disabled: !data.length,
440
456
  onClick: handleExportExcel,
441
457
  sx: { height: 36 },
@@ -471,7 +487,7 @@ function AgentPerformanceReportContent() {
471
487
  extra: /* @__PURE__ */ jsx(
472
488
  AppButton,
473
489
  {
474
- startIcon: /* @__PURE__ */ jsx(RefreshIcon, { sx: { fontSize: "0.9rem !important" } }),
490
+ startIcon: /* @__PURE__ */ jsx(Refresh_default, { sx: { fontSize: "0.9rem !important" } }),
475
491
  disabled: loading,
476
492
  onClick: handleRefresh,
477
493
  sx: { height: 32 },
@@ -480,35 +496,35 @@ function AgentPerformanceReportContent() {
480
496
  )
481
497
  }
482
498
  ),
483
- error && /* @__PURE__ */ jsx(Alert, { severity: "error", sx: { mx: 2.5, mt: 1.5 }, onClose: () => setError(""), children: error }),
484
- /* @__PURE__ */ jsxs(Box, { sx: { py: 2, px: 1, overflow: "auto", position: "relative" }, children: [
485
- loading && /* @__PURE__ */ jsx(Box, { sx: { position: "absolute", top: 0, left: 0, right: 0, bottom: 0, background: "rgba(240,244,248,0.7)", display: "flex", alignItems: "center", justifyContent: "center", zIndex: 10 }, children: /* @__PURE__ */ jsx(CircularProgress, {}) }),
486
- /* @__PURE__ */ jsxs(Paper, { elevation: 0, sx: { borderRadius: "8px", border: "1px solid #e0e7ef", overflow: "hidden", mb: 2 }, children: [
487
- /* @__PURE__ */ jsx(TableContainer, { children: /* @__PURE__ */ jsxs(Table, { size: "small", sx: {
499
+ error && /* @__PURE__ */ jsx(Alert_default, { severity: "error", sx: { mx: 2.5, mt: 1.5 }, onClose: () => setError(""), children: error }),
500
+ /* @__PURE__ */ jsxs(Box_default, { sx: { py: 2, px: 1, overflow: "auto", position: "relative" }, children: [
501
+ loading && /* @__PURE__ */ jsx(Box_default, { sx: { position: "absolute", top: 0, left: 0, right: 0, bottom: 0, background: "rgba(240,244,248,0.7)", display: "flex", alignItems: "center", justifyContent: "center", zIndex: 10 }, children: /* @__PURE__ */ jsx(CircularProgress_default, {}) }),
502
+ /* @__PURE__ */ jsxs(Paper_default, { elevation: 0, sx: { borderRadius: "8px", border: "1px solid #e0e7ef", overflow: "hidden", mb: 2 }, children: [
503
+ /* @__PURE__ */ jsx(TableContainer_default, { children: /* @__PURE__ */ jsxs(Table_default, { size: "small", sx: {
488
504
  minWidth: 1400,
489
505
  "& .MuiTableCell-root": { fontSize: "0.75rem", borderBottom: "1px solid #eef1f6", py: 0.6, px: 1 }
490
506
  }, children: [
491
- /* @__PURE__ */ jsx(TableHead, { children: /* @__PURE__ */ jsxs(TableRow, { children: [
492
- activeCols.map((col) => /* @__PURE__ */ jsx(TableCell, { align: col.align || "left", sx: headCellSx, children: /* @__PURE__ */ jsx(TableSortLabel, { active: orderBy === col.key, direction: orderBy === col.key ? order : "asc", onClick: () => handleSort(col.key), sx: sortLabelSx, children: col.label }) }, col.key)),
493
- /* @__PURE__ */ jsx(TableCell, { sx: __spreadProps(__spreadValues({}, headCellSx), { width: 48 }), children: "Detail" })
507
+ /* @__PURE__ */ jsx(TableHead_default, { children: /* @__PURE__ */ jsxs(TableRow_default, { children: [
508
+ activeCols.map((col) => /* @__PURE__ */ jsx(TableCell_default, { align: col.align || "left", sx: headCellSx, children: /* @__PURE__ */ jsx(TableSortLabel_default, { active: orderBy === col.key, direction: orderBy === col.key ? order : "asc", onClick: () => handleSort(col.key), sx: sortLabelSx, children: col.label }) }, col.key)),
509
+ /* @__PURE__ */ jsx(TableCell_default, { sx: __spreadProps(__spreadValues({}, headCellSx), { width: 48 }), children: "Detail" })
494
510
  ] }) }),
495
- /* @__PURE__ */ jsxs(TableBody, { children: [
496
- paged.map((row, idx) => /* @__PURE__ */ jsxs(TableRow, { hover: true, onClick: () => setSelectedAgent(row), sx: {
511
+ /* @__PURE__ */ jsxs(TableBody_default, { children: [
512
+ paged.map((row, idx) => /* @__PURE__ */ jsxs(TableRow_default, { hover: true, onClick: () => setSelectedAgent(row), sx: {
497
513
  backgroundColor: "#fff",
498
514
  "&:hover": { backgroundColor: "#f0f7f8" },
499
515
  cursor: "pointer"
500
516
  }, children: [
501
- activeCols.map((col) => /* @__PURE__ */ jsx(TableCell, { align: col.align || "left", sx: reportBodyCellSx, children: renderCellValue(row, col) }, col.key)),
502
- /* @__PURE__ */ jsx(TableCell, { sx: reportBodyCellSx, align: "center", children: /* @__PURE__ */ jsx(IconButton, { size: "small", onClick: (e) => {
517
+ activeCols.map((col) => /* @__PURE__ */ jsx(TableCell_default, { align: col.align || "left", sx: reportBodyCellSx, children: renderCellValue(row, col) }, col.key)),
518
+ /* @__PURE__ */ jsx(TableCell_default, { sx: reportBodyCellSx, align: "center", children: /* @__PURE__ */ jsx(IconButton_default, { size: "small", onClick: (e) => {
503
519
  e.stopPropagation();
504
520
  setSelectedAgent(row);
505
- }, sx: { color: C.blue }, children: /* @__PURE__ */ jsx(VisibilityIcon, { sx: { fontSize: 16 } }) }) })
521
+ }, sx: { color: C.blue }, children: /* @__PURE__ */ jsx(Visibility_default, { sx: { fontSize: 16 } }) }) })
506
522
  ] }, idx)),
507
- paged.length === 0 && /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(TableCell, { colSpan: activeCols.length + 1, sx: { textAlign: "center", py: 4, color: C.t3, fontSize: 13 }, children: "No data found" }) })
523
+ paged.length === 0 && /* @__PURE__ */ jsx(TableRow_default, { children: /* @__PURE__ */ jsx(TableCell_default, { colSpan: activeCols.length + 1, sx: { textAlign: "center", py: 4, color: C.t3, fontSize: 13 }, children: "No data found" }) })
508
524
  ] })
509
525
  ] }) }),
510
526
  /* @__PURE__ */ jsx(
511
- TablePagination,
527
+ TablePagination_default,
512
528
  {
513
529
  component: "div",
514
530
  count: totalCount,
@@ -532,4 +548,4 @@ var agentPerformanceReport_default = AgentPerformanceReport;
532
548
  export {
533
549
  agentPerformanceReport_default as default
534
550
  };
535
- //# sourceMappingURL=agentPerformanceReport-6RO6STKU.mjs.map
551
+ //# sourceMappingURL=agentPerformanceReport-JZK5DN5E.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../call-control-sdk/lib/pages/agentPerformanceReport/index.tsx","../node_modules/@mui/icons-material/Visibility.mjs","../call-control-sdk/lib/pages/agentPerformanceReport/useAgentPerformanceReport.ts"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo, useRef } from \"react\";\r\nimport {\r\n Box, Paper, Table, TableBody, TableCell, TableContainer, TableHead,\r\n TableRow, TableSortLabel, TablePagination, CircularProgress, Alert,\r\n Stack, IconButton, Tooltip,\r\n} from \"@mui/material\";\r\nimport AppButton from \"../common/components/AppButton\";\r\nimport FileDownloadIcon from \"@mui/icons-material/FileDownload\";\r\nimport RefreshIcon from \"@mui/icons-material/Refresh\";\r\nimport VisibilityIcon from \"@mui/icons-material/Visibility\";\r\nimport dayjs, { Dayjs } from \"dayjs\";\r\nimport isoWeek from \"dayjs/plugin/isoWeek\";\r\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\r\nimport { AdapterDayjs } from \"@mui/x-date-pickers/AdapterDayjs\";\r\n\r\ndayjs.extend(isoWeek);\r\n\r\nimport {\r\n fetchQueues, fetchProcesses,\r\n getUserPerformanceReportPaged, validateReportPayload, exportAgentPerformanceToExcel,\r\n type Queue,\r\n} from \"./useAgentPerformanceReport\";\r\nimport type { AgentPerfReportParams, ReportData, ReportRequestPayload } from \"./types\";\r\nimport { type AgentOption } from \"../common/components/AgentMultiSelect\";\r\nimport ReportFilterBar, { type QuickRange, type ProcessOption } from \"../common/components/ReportFilterBar\";\r\nimport { headCellSx as headSx, sortLabelSx, reportBodyCellSx as bodySx } from \"../common/utils/tableStyles\";\r\nimport PageHeader from \"../common/components/PageHeader\";\r\nimport SearchBar from \"../common/components/SearchBar\";\r\n\r\nimport { SDKProvider } from \"../../components/SDKProvider\";\r\nimport { SDKPermissionGuard } from \"../../components/SDKPermissionGuard\";\r\nimport { SDK_PERMISSIONS } from \"../../permissions/sdk-constants\";\r\nimport AgentDetailReport from \"../agentDetailReport\";\r\n\r\nconst C = {\r\n navy: \"#0d2a56\", blue: \"#1565c8\", green: \"#0a9a62\", amber: \"#c47c00\",\r\n red: \"#cc2a2a\", purple: \"#6b3fbf\", teal: \"#0b7a8f\",\r\n bg: \"transparent\", surface: \"#fff\", s2: \"#f7f9fc\", s3: \"#eef2f7\",\r\n b1: \"rgba(20,50,100,.07)\", b2: \"rgba(20,50,100,.13)\",\r\n t1: \"#0d1e35\", t2: \"#364f6e\", t3: \"#7a93b5\", t4: \"#bccad9\",\r\n blt: \"#e8f0fc\", glt: \"#e4f6ef\", alt: \"#fdf3e0\", rlt: \"#fde8e8\",\r\n plt: \"#f0eafa\", tlt: \"#e3f4f7\",\r\n};\r\n\r\ntype Order = \"asc\" | \"desc\";\r\ntype SortKey = string;\r\n\r\nfunction parseDur(d: string): number {\r\n if (!d || d === \"00:00:00\") return 0;\r\n const p = d.split(\":\").map(Number);\r\n if (p.length === 3) return p[0] * 3600 + p[1] * 60 + p[2];\r\n if (p.length === 2) return p[0] * 60 + p[1];\r\n return 0;\r\n}\r\n\r\nfunction fmtDur(s: number): string {\r\n if (!s || s <= 0) return \"00:00:00\";\r\n const h = Math.floor(s / 3600);\r\n const m = Math.floor((s % 3600) / 60);\r\n const sc = Math.floor(s % 60);\r\n return [h, m, sc].map((x) => String(x).padStart(2, \"0\")).join(\":\");\r\n}\r\n\r\nfunction getVal(row: ReportData, key: string): any {\r\n switch (key) {\r\n case \"id\": return row.agentDetails?.agentId || \"\";\r\n case \"name\": return row.agentDetails?.fullName || \"\";\r\n case \"process\": return row.agentDetails?.process || \"\";\r\n case \"queue\": return row.agentDetails?.queueNames || \"\";\r\n case \"total\": return row.calls?.totalCalls ?? 0;\r\n case \"ans\": return row.calls?.answered ?? 0;\r\n case \"miss\": return row.calls?.missed ?? 0;\r\n case \"inTotal\": return row.inCalls?.total ?? 0;\r\n case \"outTotal\": return row.outCalls?.total ?? 0;\r\n case \"aht\": return parseDur(row.average?.aht || \"00:00:00\");\r\n case \"loginDur\": return parseDur(row.loginDetails?.loggedInDuration || \"00:00:00\");\r\n case \"talk\": return parseDur(row.loginDetails?.talkTime || \"00:00:00\");\r\n case \"hold\": return parseDur(row.average?.holdTime || \"00:00:00\");\r\n case \"wrapup\": return parseDur(row.average?.wrapUp || \"00:00:00\");\r\n case \"breakTime\": return parseDur(row.breaks?.lunch || \"00:00:00\") + parseDur(row.breaks?.tea || \"00:00:00\") + parseDur(row.breaks?.training || \"00:00:00\") + parseDur(row.breaks?.meeting || \"00:00:00\") + parseDur(row.breaks?.shortBreak || \"00:00:00\");\r\n case \"idle\": return parseDur(row.loginDetails?.idleTime || \"00:00:00\");\r\n case \"adherence\": return row.adherence?.pct ?? null;\r\n case \"firstLogin\": return row.loginStats?.firstLogin || \"\";\r\n default: return \"\";\r\n }\r\n}\r\n\r\ninterface ColDef { key: string; label: string; group: string; fmt?: (row: ReportData) => any; align?: \"left\" | \"right\" | \"center\"; }\r\n\r\nconst COLUMNS: ColDef[] = [\r\n { key: \"id\", label: \"User ID\", group: \"Agent\" },\r\n { key: \"name\", label: \"Full Name\", group: \"Agent\" },\r\n { key: \"queue\", label: \"Queues\", group: \"Agent\" },\r\n { key: \"total\", label: \"Total Calls\", group: \"Calls\", align: \"right\" },\r\n { key: \"ans\", label: \"Answered\", group: \"Calls\", align: \"right\" },\r\n { key: \"miss\", label: \"Missed\", group: \"Calls\", align: \"right\" },\r\n { key: \"inTotal\", label: \"Inbound\", group: \"Calls\", align: \"right\" },\r\n { key: \"outTotal\", label: \"Outbound\", group: \"Calls\", align: \"right\" },\r\n { key: \"aht\", label: \"AHT\", group: \"Time\", align: \"right\" },\r\n { key: \"loginDur\", label: \"Login Dur\", group: \"Time\", align: \"right\" },\r\n { key: \"talk\", label: \"Talk Time\", group: \"Time\", align: \"right\" },\r\n { key: \"hold\", label: \"Hold Time\", group: \"Time\", align: \"right\" },\r\n { key: \"wrapup\", label: \"Wrapup Time\", group: \"Time\", align: \"right\" },\r\n { key: \"breakTime\", label: \"Break Time\", group: \"Breaks\", align: \"right\" },\r\n { key: \"idle\", label: \"Idle Time\", group: \"Time\", align: \"right\" },\r\n { key: \"firstLogin\", label: \"First Login\", group: \"Login\" },\r\n { key: \"adherence\", label: \"Adherence %\", group: \"Agent\", align: \"right\" },\r\n];\r\n\r\nfunction AgentPerformanceReportContent() {\r\n const [startDate, setStartDate] = useState<Dayjs | null>(dayjs().startOf(\"day\"));\r\n const [endDate, setEndDate] = useState<Dayjs | null>(dayjs());\r\n const [quickRange, setQuickRange] = useState<string>(\"today\");\r\n const [selectedUsers, setSelectedUsers] = useState<AgentOption[]>([]);\r\n const [isAllUsersSelected, setIsAllUsersSelected] = useState(false);\r\n const [processes, setProcesses] = useState<ProcessOption[]>([]);\r\n const [process, setProcess] = useState(\"\");\r\n const [search, setSearch] = useState(\"\");\r\n const [loginUsersOnly] = useState(true);\r\n\r\n const [queues, setQueues] = useState<Queue[]>([]);\r\n const [selectedQueues, setSelectedQueues] = useState<Queue[]>([]);\r\n\r\n const [data, setData] = useState<ReportData[]>([]);\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState(\"\");\r\n const [selectedAgent, setSelectedAgent] = useState<ReportData | null>(null);\r\n\r\n const [orderBy, setOrderBy] = useState<SortKey>(\"total\");\r\n const [order, setOrder] = useState<Order>(\"desc\");\r\n const [page, setPage] = useState(0);\r\n const [rowsPerPage, setRowsPerPage] = useState(10);\r\n const [totalCount, setTotalCount] = useState(-1);\r\n const [visibleCols] = useState<Set<string>>(new Set(COLUMNS.map((c) => c.key)));\r\n\r\n // Debounced search (sent to the server)\r\n const [debouncedSearch, setDebouncedSearch] = useState(\"\");\r\n const debounceRef = useRef<ReturnType<typeof setTimeout>>(undefined);\r\n\r\n useEffect(() => {\r\n debounceRef.current = setTimeout(() => setDebouncedSearch(search.trim()), 400);\r\n return () => clearTimeout(debounceRef.current);\r\n }, [search]);\r\n\r\n useEffect(() => {\r\n fetchProcesses().then((p) => {\r\n const mapped = p.map((x) => ({ label: x.name, value: x.name }));\r\n setProcesses(mapped);\r\n if (mapped.length) setProcess(mapped[0].value);\r\n }).catch(() => { });\r\n fetchQueues().then((data) => setQueues(data || [])).catch(() => { });\r\n }, []);\r\n\r\n const handleQuickRangeChange = (range: QuickRange) => {\r\n setQuickRange(range);\r\n };\r\n\r\n const handleRefresh = () => {\r\n if (quickRange === \"today\" || quickRange === \"week\" || quickRange === \"month\") {\r\n const now = dayjs();\r\n let sd = now.startOf(\"day\");\r\n const ed = now;\r\n if (quickRange === \"week\") sd = now.startOf(\"week\").startOf(\"day\");\r\n else if (quickRange === \"month\") sd = now.startOf(\"month\").startOf(\"day\");\r\n // Setting the dates re-triggers the auto-fetch effect below.\r\n setStartDate(sd);\r\n setEndDate(ed);\r\n } else {\r\n fetchReport(page);\r\n }\r\n };\r\n\r\n const fetchReport = useCallback(async (pageNum: number) => {\r\n const fromDate = startDate;\r\n const toDate = endDate;\r\n if (!fromDate || !toDate) { setError(\"Select date range\"); return; }\r\n\r\n const payload: ReportRequestPayload = {\r\n startDate: fromDate.format(\"YYYY-MM-DDTHH:mm:ss\"),\r\n endDate: toDate.format(\"YYYY-MM-DDTHH:mm:ss\"),\r\n startTime: fromDate.format(\"HH:mm:ss\"),\r\n endTime: toDate.format(\"HH:mm:ss\"),\r\n process,\r\n agents: isAllUsersSelected ? [] : selectedUsers.map((u) => u.userId),\r\n loginUsersOnly,\r\n queueIds: selectedQueues.length > 0 && selectedQueues.length < queues.length ? selectedQueues.map((q) => q.id) : undefined,\r\n search: debouncedSearch || undefined,\r\n page: pageNum + 1,\r\n pageSize: rowsPerPage,\r\n };\r\n\r\n const valid = validateReportPayload(payload);\r\n if (!valid.isValid) { setError(valid.error || \"Invalid\"); return; }\r\n\r\n try {\r\n setLoading(true);\r\n setError(\"\");\r\n const { rows, total } = await getUserPerformanceReportPaged(payload);\r\n setData(rows);\r\n setTotalCount(typeof total === \"number\" ? total : rows.length);\r\n } catch (err: any) {\r\n setError(err?.message || \"Failed to fetch report\");\r\n setData([]);\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [startDate, endDate, process, selectedUsers, isAllUsersSelected, selectedQueues, loginUsersOnly, debouncedSearch, rowsPerPage]);\r\n\r\n useEffect(() => {\r\n setPage(0);\r\n fetchReport(0);\r\n }, [fetchReport]);\r\n\r\n const handlePageChange = useCallback(\r\n (_event: React.MouseEvent<HTMLButtonElement> | null, newPage: number) => {\r\n setPage(newPage);\r\n fetchReport(newPage);\r\n },\r\n [fetchReport],\r\n );\r\n\r\n // Search + paging are server-side; sorting is applied client-side to the current page.\r\n const sorted = useMemo(() => {\r\n return [...data].sort((a, b) => {\r\n const av = getVal(a, orderBy);\r\n const bv = getVal(b, orderBy);\r\n if (typeof av === \"number\" && typeof bv === \"number\") return order === \"asc\" ? av - bv : bv - av;\r\n return order === \"asc\" ? String(av).localeCompare(String(bv)) : String(bv).localeCompare(String(av));\r\n });\r\n }, [data, orderBy, order]);\r\n\r\n const paged = sorted;\r\n\r\n const handleSort = (key: string) => {\r\n setOrder(orderBy === key && order === \"asc\" ? \"desc\" : \"asc\");\r\n setOrderBy(key);\r\n };\r\n\r\n const handleExportExcel = async () => {\r\n const fromDate = startDate;\r\n const toDate = endDate;\r\n if (!fromDate || !toDate) { setError(\"Select date range\"); return; }\r\n const params: AgentPerfReportParams = {\r\n start_date: fromDate.format(\"YYYY-MM-DDTHH:mm:ss\"),\r\n end_date: toDate.format(\"YYYY-MM-DDTHH:mm:ss\"),\r\n agent_id: !isAllUsersSelected && selectedUsers.length > 0\r\n ? selectedUsers.map((u) => u.userId)\r\n : undefined,\r\n queue_id: selectedQueues.length > 0 && selectedQueues.length < queues.length\r\n ? selectedQueues.map((q) => q.id)\r\n : undefined,\r\n search: debouncedSearch || undefined,\r\n };\r\n try {\r\n await exportAgentPerformanceToExcel(params);\r\n } catch (err: any) {\r\n setError(err?.message || \"Failed to export Excel\");\r\n }\r\n };\r\n\r\n const renderCellValue = (row: ReportData, col: ColDef) => {\r\n const v = getVal(row, col.key);\r\n const durKeys = [\"aht\", \"loginDur\", \"talk\", \"hold\", \"wrapup\", \"breakTime\", \"idle\"];\r\n if (durKeys.includes(col.key)) return fmtDur(v);\r\n if (col.key === \"adherence\") return v != null ? `${v}%` : \"—\";\r\n if (col.key === \"firstLogin\") return v ? dayjs(v).format(\"DD MMM YYYY hh:mm A\") : \"\";\r\n return v ?? \"\";\r\n };\r\n\r\n const activeCols = COLUMNS.filter((c) => visibleCols.has(c.key));\r\n\r\n if (selectedAgent) {\r\n return (\r\n <AgentDetailReport\r\n agentRow={selectedAgent}\r\n onBack={() => setSelectedAgent(null)}\r\n initialStartDate={startDate}\r\n initialEndDate={endDate}\r\n initialQuickRange={quickRange}\r\n from=\"REPORTS_LIST\"\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <LocalizationProvider dateAdapter={AdapterDayjs}>\r\n <Box sx={{ background: C.bg, minHeight: \"100vh\" }}>\r\n <PageHeader\r\n title=\" Performance Report\"\r\n actions={\r\n <Stack direction=\"row\" alignItems=\"center\" spacing={1}>\r\n <SearchBar\r\n value={search}\r\n onChange={setSearch}\r\n placeholder=\"Search name, ID...\"\r\n width={250}\r\n />\r\n <SDKPermissionGuard\r\n permissions={[SDK_PERMISSIONS.REPORTS_AGENT_PERFORMANCE_EXPORT, SDK_PERMISSIONS.REPORTS_AGENT_PERFORMANCE_MANAGE]}\r\n showFallback={false}\r\n >\r\n <AppButton\r\n startIcon={<FileDownloadIcon sx={{ fontSize: \"0.95rem !important\" }} />}\r\n disabled={!data.length}\r\n onClick={handleExportExcel}\r\n sx={{ height: 36 }}\r\n >\r\n Export Excel\r\n </AppButton>\r\n </SDKPermissionGuard>\r\n </Stack>\r\n }\r\n />\r\n\r\n <ReportFilterBar\r\n startDate={startDate}\r\n endDate={endDate}\r\n onStartChange={setStartDate}\r\n onEndChange={setEndDate}\r\n quickRange={quickRange}\r\n onQuickRangeChange={handleQuickRangeChange}\r\n showAgentSelect\r\n selectedAgents={selectedUsers}\r\n onAgentsChange={setSelectedUsers}\r\n setIsAllUsersSelected={setIsAllUsersSelected}\r\n showQueueSelect\r\n queues={queues}\r\n selectedQueues={selectedQueues}\r\n onQueuesChange={setSelectedQueues}\r\n showProcessSelect\r\n processes={processes}\r\n selectedProcess={process}\r\n onProcessChange={setProcess}\r\n extra={\r\n <AppButton\r\n startIcon={<RefreshIcon sx={{ fontSize: \"0.9rem !important\" }} />}\r\n disabled={loading}\r\n onClick={handleRefresh}\r\n sx={{ height: 32 }}\r\n >\r\n Refresh\r\n </AppButton>\r\n }\r\n />\r\n\r\n {error && <Alert severity=\"error\" sx={{ mx: 2.5, mt: 1.5 }} onClose={() => setError(\"\")}>{error}</Alert>}\r\n\r\n <Box sx={{ py: 2, px: 1, overflow: \"auto\", position: \"relative\" }}>\r\n {loading && (\r\n <Box sx={{ position: \"absolute\", top: 0, left: 0, right: 0, bottom: 0, background: \"rgba(240,244,248,0.7)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", zIndex: 10 }}>\r\n <CircularProgress />\r\n </Box>\r\n )}\r\n\r\n <Paper elevation={0} sx={{ borderRadius: \"8px\", border: \"1px solid #e0e7ef\", overflow: \"hidden\", mb: 2 }}>\r\n <TableContainer>\r\n <Table size=\"small\" sx={{\r\n minWidth: 1400,\r\n \"& .MuiTableCell-root\": { fontSize: \"0.75rem\", borderBottom: \"1px solid #eef1f6\", py: 0.6, px: 1 },\r\n }}>\r\n <TableHead>\r\n <TableRow>\r\n {activeCols.map((col) => (\r\n <TableCell key={col.key} align={col.align || \"left\"} sx={headSx}>\r\n <TableSortLabel active={orderBy === col.key} direction={orderBy === col.key ? order : \"asc\"} onClick={() => handleSort(col.key)} sx={sortLabelSx}>\r\n {col.label}\r\n </TableSortLabel>\r\n </TableCell>\r\n ))}\r\n <TableCell sx={{ ...headSx, width: 48 }}>Detail</TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {paged.map((row, idx) => (\r\n <TableRow key={idx} hover onClick={() => setSelectedAgent(row)} sx={{\r\n backgroundColor: \"#fff\",\r\n \"&:hover\": { backgroundColor: \"#f0f7f8\" },\r\n cursor: \"pointer\",\r\n }}>\r\n {activeCols.map((col) => (\r\n <TableCell key={col.key} align={col.align || \"left\"} sx={bodySx}>\r\n {renderCellValue(row, col)}\r\n </TableCell>\r\n ))}\r\n <TableCell sx={bodySx} align=\"center\">\r\n <IconButton size=\"small\" onClick={(e) => { e.stopPropagation(); setSelectedAgent(row); }} sx={{ color: C.blue }}>\r\n <VisibilityIcon sx={{ fontSize: 16 }} />\r\n </IconButton>\r\n </TableCell>\r\n </TableRow>\r\n ))}\r\n {paged.length === 0 && (\r\n <TableRow><TableCell colSpan={activeCols.length + 1} sx={{ textAlign: \"center\", py: 4, color: C.t3, fontSize: 13 }}>No data found</TableCell></TableRow>\r\n )}\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n\r\n <TablePagination\r\n component=\"div\" count={totalCount} page={page}\r\n onPageChange={handlePageChange} rowsPerPage={rowsPerPage}\r\n onRowsPerPageChange={(e) => { setRowsPerPage(parseInt(e.target.value, 10)); setPage(0); }}\r\n rowsPerPageOptions={[10, 15, 25, 50, 100]}\r\n sx={{ borderTop: \"1px solid #eef1f6\", \"& .MuiTablePagination-displayedRows\": { fontSize: \"0.73rem\" }, \"& .MuiTablePagination-selectLabel\": { fontSize: \"0.73rem\" } }}\r\n />\r\n </Paper>\r\n </Box>\r\n </Box>\r\n </LocalizationProvider>\r\n );\r\n}\r\n\r\nconst AgentPerformanceReport: React.FC = () => (\r\n <SDKProvider>\r\n <AgentPerformanceReportContent />\r\n </SDKProvider>\r\n);\r\n\r\nexport default AgentPerformanceReport;\r\n","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3\"\n}), 'Visibility');","import { useCallback, useState } from \"react\";\r\nimport axiosInstance from \"../../services/axios\";\r\nimport { END_POINT } from \"../../services/endPoint\";\r\nimport type { AgentPerfReportParams, AgentPerfReportResponse, AgentPerfRow, ReportData, ReportRequestPayload } from \"./types\";\r\n\r\nfunction fmtSecs(s: number): string {\r\n\tif (!s || s <= 0) return \"00:00:00\";\r\n\tconst h = Math.floor(s / 3600);\r\n\tconst m = Math.floor((s % 3600) / 60);\r\n\tconst sc = Math.floor(s % 60);\r\n\treturn [h, m, sc].map((x) => String(x).padStart(2, \"0\")).join(\":\");\r\n}\r\n\r\nexport function validateReportPayload(payload: Partial<ReportRequestPayload>): { isValid: boolean; error?: string } {\r\n\tif (!payload.startDate || !payload.startTime) return { isValid: false, error: \"Start date/time required\" };\r\n\tif (!payload.endDate || !payload.endTime) return { isValid: false, error: \"End date/time required\" };\r\n\tif (!payload.loginUsersOnly && !payload.agents) return { isValid: false, error: \"Select at least one agent\" };\r\n\treturn { isValid: true };\r\n}\r\n\r\n// Map a raw AgentPerfRow into the legacy ReportData shape the table renders.\r\nfunction mapAgentPerfRow(a: AgentPerfRow): ReportData {\r\n\treturn {\r\n\t\tagentDetails: { agentId: a.agentId, fullName: a.fullName, process: a.processName, queueNames: a.queueNames },\r\n\t\tcalls: { totalCalls: a.totalCalls, answered: a.answeredCalls, missed: a.missedCalls },\r\n\t\tinCalls: { total: a.inCalls },\r\n\t\toutCalls: { total: a.outCalls },\r\n\t\taverage: { holdTime: fmtSecs(a.holdTimeSeconds), wrapUp: fmtSecs(a.wrapupSeconds), aht: fmtSecs(a.ahtSeconds), ringing: \"00:00:00\", dialing: \"00:00:00\" },\r\n\t\tloginDetails: { loggedInDuration: fmtSecs(a.loginDurationSeconds), talkTime: fmtSecs(a.talkTimeSeconds), idleTime: fmtSecs(a.idleTimeSeconds) },\r\n\t\tbreaks: { shortBreak: fmtSecs(a.breakTimeSeconds), breakCount: a.breakCount, lunch: \"00:00:00\", tea: \"00:00:00\", training: \"00:00:00\", meeting: \"00:00:00\" },\r\n\t\tloginStats: { firstLogin: a.firstLoginTime || \"\", noOfLogins: 0 },\r\n\t\tadherence: { pct: a.adherencePct ?? null },\r\n\t};\r\n}\r\n\r\nexport async function getUserPerformanceReport(payload: ReportRequestPayload): Promise<ReportData[]> {\r\n\tconst params: AgentPerfReportParams = {\r\n\t\tstart_date: payload.startDate,\r\n\t\tend_date: payload.endDate,\r\n\t\tagent_id: payload.agents,\r\n\t\tqueue_id: payload.queueIds && payload.queueIds.length > 0 ? payload.queueIds : undefined,\r\n\t\t// Always send page + pageSize; callers that don't paginate get the full list.\r\n\t\tpage: payload.page ?? 1,\r\n\t\tpageSize: payload.pageSize ?? 500,\r\n\t\tsearch: payload.search,\r\n\t};\r\n\t// Use the combined endpoint, which honours page/pageSize/search.\r\n\tconst res = await axiosInstance.get<AgentPerfReportResponse>(\r\n\t\t`${END_POINT.AGENT_PERFORMANCE_REPORT}${buildQs(params)}`,\r\n\t);\r\n\tconst agentsPage: any = (res.data as any)?.agents;\r\n\tconst agents: AgentPerfRow[] = Array.isArray(agentsPage)\r\n\t\t? agentsPage\r\n\t\t: Array.isArray(agentsPage?.data)\r\n\t\t\t? agentsPage.data\r\n\t\t\t: [];\r\n\treturn agents.map(mapAgentPerfRow);\r\n}\r\n\r\n/**\r\n * Paginated variant — returns the mapped rows for the current page plus the\r\n * real total (so the table shows \"1–25 of N\").\r\n */\r\nexport async function getUserPerformanceReportPaged(\r\n\tpayload: ReportRequestPayload,\r\n): Promise<{ rows: ReportData[]; total: number }> {\r\n\tconst params: AgentPerfReportParams = {\r\n\t\tstart_date: payload.startDate,\r\n\t\tend_date: payload.endDate,\r\n\t\tagent_id: payload.agents,\r\n\t\tqueue_id: payload.queueIds && payload.queueIds.length > 0 ? payload.queueIds : undefined,\r\n\t\tpage: payload.page ?? 1,\r\n\t\tpageSize: payload.pageSize ?? 10,\r\n\t\tsearch: payload.search,\r\n\t};\r\n\tconst res = await axiosInstance.get<AgentPerfReportResponse>(\r\n\t\t`${END_POINT.AGENT_PERFORMANCE_REPORT}${buildQs(params)}`,\r\n\t);\r\n\tconst data = res.data;\r\n\t// `agents` is a paginated envelope ({ data, total, ... }); support a bare array for older shapes.\r\n\tconst agentsPage: any = (data as any)?.agents;\r\n\tconst rawRows: AgentPerfRow[] = Array.isArray(agentsPage)\r\n\t\t? agentsPage\r\n\t\t: Array.isArray(agentsPage?.data)\r\n\t\t\t? agentsPage.data\r\n\t\t\t: [];\r\n\tconst rows = rawRows.map(mapAgentPerfRow);\r\n\tconst total =\r\n\t\tagentsPage?.total ??\r\n\t\t(data as any)?.total ??\r\n\t\t(data as any)?.pagination?.total ??\r\n\t\tdata?.summary?.agentsLoggedIn ??\r\n\t\trows.length;\r\n\treturn { rows, total };\r\n}\r\n\r\nexport interface Queue {\r\n\tid: number;\r\n\tname: string;\r\n\tdescription: string;\r\n\tprocessId?: number;\r\n\tisActive: boolean;\r\n}\r\n\r\nexport interface Process {\r\n\tid: number;\r\n\tname: string;\r\n\tdescription: string;\r\n\tisActive: boolean;\r\n}\r\n\r\nexport async function fetchQueues(): Promise<Queue[]> {\r\n\tconst res = await axiosInstance.get(END_POINT.MASTER_QUEUES);\r\n\tif (Array.isArray(res.data)) return res.data;\r\n\tif (Array.isArray(res.data?.data)) return res.data.data;\r\n\treturn [];\r\n}\r\n\r\nexport async function fetchProcesses(): Promise<Process[]> {\r\n\tconst res = await axiosInstance.get(END_POINT.MASTER_PROCESS);\r\n\tif (Array.isArray(res.data)) return res.data;\r\n\tif (Array.isArray(res.data?.data)) return res.data.data;\r\n\treturn [];\r\n}\r\n\r\nfunction buildQs(params: AgentPerfReportParams): string {\r\n\tconst qs = new URLSearchParams();\r\n\tif (params.start_date) qs.append(\"start_date\", params.start_date);\r\n\tif (params.end_date) qs.append(\"end_date\", params.end_date);\r\n\tif (params.agent_id) for (const id of params.agent_id) qs.append(\"agent_id\", id);\r\n\tif (params.queue_id) for (const id of params.queue_id) qs.append(\"queue_id\", String(id));\r\n\tif (params.process_id) for (const id of params.process_id) qs.append(\"process_id\", String(id));\r\n\tif (params.top_n) qs.append(\"top_n\", String(params.top_n));\r\n\tif (params.search) qs.append(\"search\", params.search);\r\n\tif (params.page) qs.append(\"page\", String(params.page));\r\n\tif (params.pageSize) qs.append(\"pageSize\", String(params.pageSize));\r\n\tconst str = qs.toString();\r\n\treturn str ? `?${str}` : \"\";\r\n}\r\n\r\nexport function useAgentPerformanceReport() {\r\n\tconst [agents, setAgents] = useState<AgentPerfRow[]>([]);\r\n\tconst [loading, setLoading] = useState(false);\r\n\tconst [error, setError] = useState(\"\");\r\n\r\n\tconst fetchAgents = useCallback(async (params: AgentPerfReportParams) => {\r\n\t\tsetLoading(true);\r\n\t\tsetError(\"\");\r\n\t\ttry {\r\n\t\t\tconst res = await axiosInstance.get<AgentPerfRow[]>(\r\n\t\t\t\t`${END_POINT.AGENT_PERFORMANCE_REPORT_AGENTS}${params}`,\r\n\t\t\t);\r\n\t\t\tsetAgents(Array.isArray(res.data) ? res.data : []);\r\n\t\t} catch (err: any) {\r\n\t\t\tsetError(err?.response?.data?.message || err?.message || \"Failed to fetch performance report\");\r\n\t\t\tsetAgents([]);\r\n\t\t} finally {\r\n\t\t\tsetLoading(false);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst exportExcel = useCallback(async (params: AgentPerfReportParams) => {\r\n\t\tconst res = await axiosInstance.get(\r\n\t\t\t`${END_POINT.AGENT_PERFORMANCE_REPORT_EXPORT_EXCEL}${buildQs(params)}`,\r\n\t\t\t{ responseType: \"blob\" },\r\n\t\t);\r\n\t\tconst url = URL.createObjectURL(new Blob([res.data]));\r\n\t\tconst a = document.createElement(\"a\");\r\n\t\ta.href = url;\r\n\t\ta.download = `agent-performance-${params.start_date ?? \"export\"}.xlsx`;\r\n\t\ta.click();\r\n\t\tURL.revokeObjectURL(url);\r\n\t}, []);\r\n\r\n\treturn { agents, loading, error, setError, fetchAgents, exportExcel };\r\n}\r\n\r\nexport async function exportAgentPerformanceToExcel(params: AgentPerfReportParams): Promise<void> {\r\n\tconst res = await axiosInstance.get(\r\n\t\t`${END_POINT.AGENT_PERFORMANCE_REPORT_EXPORT_EXCEL}${buildQs(params)}`,\r\n\t\t{ responseType: \"blob\" },\r\n\t);\r\n\tconst url = URL.createObjectURL(new Blob([res.data]));\r\n\tconst a = document.createElement(\"a\");\r\n\ta.href = url;\r\n\ta.download = `agent-performance-${params.start_date ?? \"export\"}.xlsx`;\r\n\ta.click();\r\n\tURL.revokeObjectURL(url);\r\n}\r\n"],"mappings":"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","names":["useState","useCallback","dayjs","isoWeek","useState","data","useCallback"]}
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  AuditReportFullPage
3
- } from "./chunk-PO6POUPL.mjs";
4
- import "./chunk-OVC42HVH.mjs";
5
- import "./chunk-UB5HSUGK.mjs";
3
+ } from "./chunk-IDZWA6HG.mjs";
4
+ import "./chunk-WTBVFN4H.mjs";
5
+ import "./chunk-LHE4QGJJ.mjs";
6
+ import "./chunk-Q6G3MPS7.mjs";
6
7
 
7
8
  // call-control-sdk/lib/pages/auditReport/index.tsx
8
9
  import { jsx } from "react/jsx-runtime";
@@ -12,4 +13,4 @@ function AuditReportPage({ callUuid }) {
12
13
  export {
13
14
  AuditReportPage as default
14
15
  };
15
- //# sourceMappingURL=auditReport-PYRZU3NA.mjs.map
16
+ //# sourceMappingURL=auditReport-6ZUJ4UFO.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../call-control-sdk/lib/pages/auditReport/index.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { AuditReportFullPage } from \"../common/components/AuditReport\";\r\n\r\n/**\r\n * Stand-alone audit report page. Opened in a new browser tab from the audit\r\n * report dialog's maximize button (route: `/audit-report/:callUuid`).\r\n */\r\nexport default function AuditReportPage({ callUuid }: { callUuid?: string }) {\r\n return <AuditReportFullPage callUuid={callUuid} />;\r\n}\r\n"],"mappings":";;;;;;;AAQS;AADM,SAAR,gBAAiC,EAAE,SAAS,GAA0B;AAC3E,SAAO,oBAAC,uBAAoB,UAAoB;AAClD;","names":[]}
1
+ {"version":3,"sources":["../call-control-sdk/lib/pages/auditReport/index.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { AuditReportFullPage } from \"../common/components/AuditReport\";\r\n\r\n/**\r\n * Stand-alone audit report page. Opened in a new browser tab from the audit\r\n * report dialog's maximize button (route: `/audit-report/:callUuid`).\r\n */\r\nexport default function AuditReportPage({ callUuid }: { callUuid?: string }) {\r\n return <AuditReportFullPage callUuid={callUuid} />;\r\n}\r\n"],"mappings":";;;;;;;;AAQS;AADM,SAAR,gBAAiC,EAAE,SAAS,GAA0B;AAC3E,SAAO,oBAAC,uBAAoB,UAAoB;AAClD;","names":[]}