ahs-cti 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agentDetailReport-ZR7U2LLB.mjs +17 -0
- package/dist/{agentPerformanceReport-U2QGVTXF.mjs → agentPerformanceReport-JZK5DN5E.mjs} +59 -57
- package/dist/{agentPerformanceReport-U2QGVTXF.mjs.map → agentPerformanceReport-JZK5DN5E.mjs.map} +1 -1
- package/dist/{auditReport-DEVQDTDT.mjs → auditReport-6ZUJ4UFO.mjs} +5 -5
- package/dist/{callHistory-MRBBY3UO.mjs → callHistory-T3M76D4B.mjs} +147 -156
- package/dist/{callHistory-MRBBY3UO.mjs.map → callHistory-T3M76D4B.mjs.map} +1 -1
- package/dist/{campaigns-ERO3QM6I.mjs → campaigns-5PVHXBSD.mjs} +384 -386
- package/dist/{campaigns-ERO3QM6I.mjs.map → campaigns-5PVHXBSD.mjs.map} +1 -1
- package/dist/{caroQualityAuditDashboard-NRWY6SEC.mjs → caroQualityAuditDashboard-EUDYZ3QY.mjs} +6 -5
- package/dist/{caroQualityAuditDashboard-NRWY6SEC.mjs.map → caroQualityAuditDashboard-EUDYZ3QY.mjs.map} +1 -1
- package/dist/{caroVoiceAI-Z5BDDDSY.mjs → caroVoiceAI-GGJCVUIQ.mjs} +5 -4
- package/dist/{caroVoiceAI-Z5BDDDSY.mjs.map → caroVoiceAI-GGJCVUIQ.mjs.map} +1 -1
- package/dist/{cdrReport-EZNOCELK.mjs → cdrReport-ZMDHSZUW.mjs} +101 -100
- package/dist/{cdrReport-EZNOCELK.mjs.map → cdrReport-ZMDHSZUW.mjs.map} +1 -1
- package/dist/{chunk-53DYH64M.mjs → chunk-2M3YEXYA.mjs} +91 -64
- package/dist/chunk-2M3YEXYA.mjs.map +1 -0
- package/dist/{chunk-ISQBOS5Q.mjs → chunk-33QNSXP7.mjs} +160 -160
- package/dist/{chunk-ISQBOS5Q.mjs.map → chunk-33QNSXP7.mjs.map} +1 -1
- package/dist/{chunk-YFW47Y76.mjs → chunk-3J7KQNEU.mjs} +15 -12
- package/dist/{chunk-YFW47Y76.mjs.map → chunk-3J7KQNEU.mjs.map} +1 -1
- package/dist/{chunk-MBHP7UOP.mjs → chunk-6WLG2PXL.mjs} +2 -2
- package/dist/{chunk-MBXHRFGP.mjs → chunk-7LE2VTAI.mjs} +2 -2
- package/dist/{chunk-MFZKONNR.mjs → chunk-AOJRUZTO.mjs} +2 -2
- package/dist/chunk-DF5EFKXC.mjs +28690 -0
- package/dist/chunk-DF5EFKXC.mjs.map +1 -0
- package/dist/{chunk-5FSMIU5K.mjs → chunk-DJP744FF.mjs} +2 -2
- package/dist/{chunk-BVQNDAS6.mjs → chunk-DNTGBNZD.mjs} +18 -14
- package/dist/{chunk-BVQNDAS6.mjs.map → chunk-DNTGBNZD.mjs.map} +1 -1
- package/dist/{chunk-AJQBR3AZ.mjs → chunk-E6KYWWAI.mjs} +4243 -7804
- package/dist/chunk-E6KYWWAI.mjs.map +1 -0
- package/dist/{chunk-3DOSR6LQ.mjs → chunk-FRKV2U3I.mjs} +2 -2
- package/dist/{chunk-ICGEHYJL.mjs → chunk-H7GRWLYI.mjs} +5 -5
- package/dist/{chunk-6MURUWDX.mjs → chunk-IDZWA6HG.mjs} +154 -156
- package/dist/{chunk-6MURUWDX.mjs.map → chunk-IDZWA6HG.mjs.map} +1 -1
- package/dist/chunk-LHE4QGJJ.mjs +10920 -0
- package/dist/chunk-LHE4QGJJ.mjs.map +1 -0
- package/dist/{chunk-HBR2JS4C.mjs → chunk-NAZO4HKB.mjs} +8 -4
- package/dist/{chunk-HBR2JS4C.mjs.map → chunk-NAZO4HKB.mjs.map} +1 -1
- package/dist/{chunk-DXZIYCNQ.mjs → chunk-OHJIW3I3.mjs} +2 -2
- package/dist/chunk-Q6G3MPS7.mjs +37797 -0
- package/dist/chunk-Q6G3MPS7.mjs.map +1 -0
- package/dist/{chunk-QPOHVXUK.mjs → chunk-U2UDKXMB.mjs} +2 -2
- package/dist/{chunk-XMRM5VR4.mjs → chunk-VBIDPX5Z.mjs} +18 -14
- package/dist/{chunk-XMRM5VR4.mjs.map → chunk-VBIDPX5Z.mjs.map} +1 -1
- package/dist/{chunk-6ICPXSN6.mjs → chunk-VVDJLUYT.mjs} +8 -4
- package/dist/{chunk-6ICPXSN6.mjs.map → chunk-VVDJLUYT.mjs.map} +1 -1
- package/dist/{chunk-XA5SCAZJ.mjs → chunk-WTBVFN4H.mjs} +2 -2
- package/dist/{chunk-RSL5OBRQ.mjs → chunk-YAQYTUTX.mjs} +2 -2
- package/dist/index.js +117240 -32148
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +276 -296
- package/dist/index.mjs.map +1 -1
- package/dist/{liveStatus-F6AKCC27.mjs → liveStatus-YSBYSVOO.mjs} +123 -122
- package/dist/{liveStatus-F6AKCC27.mjs.map → liveStatus-YSBYSVOO.mjs.map} +1 -1
- package/dist/{loginReport-MWTI4G6O.mjs → loginReport-YIVBJVJD.mjs} +118 -116
- package/dist/{loginReport-MWTI4G6O.mjs.map → loginReport-YIVBJVJD.mjs.map} +1 -1
- package/dist/managementDashboard-7EMQC2UA.mjs +536 -0
- package/dist/{managementDashboard-6UBOCLBA.mjs.map → managementDashboard-7EMQC2UA.mjs.map} +1 -1
- package/dist/{qualityAuditDashboard-ZJEEAMBS.mjs → qualityAuditDashboard-ENGQN2WQ.mjs} +6 -5
- package/dist/{qualityAuditDashboard-ZJEEAMBS.mjs.map → qualityAuditDashboard-ENGQN2WQ.mjs.map} +1 -1
- package/package.json +1 -1
- package/dist/agentDetailReport-F7XZLVVO.mjs +0 -16
- package/dist/chunk-53DYH64M.mjs.map +0 -1
- package/dist/chunk-AJQBR3AZ.mjs.map +0 -1
- package/dist/chunk-Q7FIRWF2.mjs +0 -1067
- package/dist/chunk-Q7FIRWF2.mjs.map +0 -1
- package/dist/chunk-UB5HSUGK.mjs +0 -65
- package/dist/chunk-UB5HSUGK.mjs.map +0 -1
- package/dist/managementDashboard-6UBOCLBA.mjs +0 -536
- /package/dist/{agentDetailReport-F7XZLVVO.mjs.map → agentDetailReport-ZR7U2LLB.mjs.map} +0 -0
- /package/dist/{auditReport-DEVQDTDT.mjs.map → auditReport-6ZUJ4UFO.mjs.map} +0 -0
- /package/dist/{chunk-MBHP7UOP.mjs.map → chunk-6WLG2PXL.mjs.map} +0 -0
- /package/dist/{chunk-MBXHRFGP.mjs.map → chunk-7LE2VTAI.mjs.map} +0 -0
- /package/dist/{chunk-MFZKONNR.mjs.map → chunk-AOJRUZTO.mjs.map} +0 -0
- /package/dist/{chunk-5FSMIU5K.mjs.map → chunk-DJP744FF.mjs.map} +0 -0
- /package/dist/{chunk-3DOSR6LQ.mjs.map → chunk-FRKV2U3I.mjs.map} +0 -0
- /package/dist/{chunk-ICGEHYJL.mjs.map → chunk-H7GRWLYI.mjs.map} +0 -0
- /package/dist/{chunk-DXZIYCNQ.mjs.map → chunk-OHJIW3I3.mjs.map} +0 -0
- /package/dist/{chunk-QPOHVXUK.mjs.map → chunk-U2UDKXMB.mjs.map} +0 -0
- /package/dist/{chunk-XA5SCAZJ.mjs.map → chunk-WTBVFN4H.mjs.map} +0 -0
- /package/dist/{chunk-RSL5OBRQ.mjs.map → chunk-YAQYTUTX.mjs.map} +0 -0
|
@@ -1,67 +1,69 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Download_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FRKV2U3I.mjs";
|
|
4
4
|
import {
|
|
5
5
|
ReportFilterBar,
|
|
6
6
|
SearchBar,
|
|
7
|
-
headCellSx
|
|
8
|
-
|
|
7
|
+
headCellSx,
|
|
8
|
+
require_isoWeek
|
|
9
|
+
} from "./chunk-2M3YEXYA.mjs";
|
|
9
10
|
import {
|
|
10
11
|
SDKPermissionGuard
|
|
11
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-3J7KQNEU.mjs";
|
|
12
13
|
import {
|
|
13
14
|
Close_default
|
|
14
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-WTBVFN4H.mjs";
|
|
15
16
|
import {
|
|
16
17
|
PageHeader
|
|
17
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-VBIDPX5Z.mjs";
|
|
18
19
|
import {
|
|
19
20
|
AppButton
|
|
20
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-NAZO4HKB.mjs";
|
|
21
22
|
import {
|
|
22
23
|
AdapterDayjs,
|
|
23
24
|
DateTimePicker,
|
|
24
|
-
LocalizationProvider
|
|
25
|
-
|
|
25
|
+
LocalizationProvider,
|
|
26
|
+
require_dayjs_min
|
|
27
|
+
} from "./chunk-E6KYWWAI.mjs";
|
|
26
28
|
import {
|
|
27
29
|
Refresh_default
|
|
28
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-YAQYTUTX.mjs";
|
|
29
31
|
import {
|
|
30
32
|
SDKProvider
|
|
31
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-VVDJLUYT.mjs";
|
|
32
34
|
import {
|
|
33
35
|
END_POINT,
|
|
34
36
|
SDK_PERMISSIONS,
|
|
35
37
|
axios_default,
|
|
36
|
-
createSvgIcon,
|
|
37
38
|
deepFindArray
|
|
38
|
-
} from "./chunk-
|
|
39
|
-
import
|
|
39
|
+
} from "./chunk-LHE4QGJJ.mjs";
|
|
40
|
+
import {
|
|
41
|
+
Alert_default,
|
|
42
|
+
Box_default,
|
|
43
|
+
Chip_default,
|
|
44
|
+
CircularProgress_default,
|
|
45
|
+
DialogContent_default,
|
|
46
|
+
DialogTitle_default,
|
|
47
|
+
Dialog_default,
|
|
48
|
+
IconButton_default,
|
|
49
|
+
Paper_default,
|
|
50
|
+
Stack_default,
|
|
51
|
+
TableBody_default,
|
|
52
|
+
TableCell_default,
|
|
53
|
+
TableContainer_default,
|
|
54
|
+
TableHead_default,
|
|
55
|
+
TablePagination_default,
|
|
56
|
+
TableRow_default,
|
|
57
|
+
TableSortLabel_default,
|
|
58
|
+
Table_default,
|
|
59
|
+
Tooltip_default,
|
|
60
|
+
Typography_default,
|
|
61
|
+
__toESM,
|
|
62
|
+
createSvgIcon
|
|
63
|
+
} from "./chunk-Q6G3MPS7.mjs";
|
|
40
64
|
|
|
41
65
|
// call-control-sdk/lib/pages/loginReport/index.tsx
|
|
42
66
|
import { useCallback as useCallback2, useEffect, useMemo, useRef, useState as useState2 } from "react";
|
|
43
|
-
import {
|
|
44
|
-
Alert,
|
|
45
|
-
Box,
|
|
46
|
-
Chip,
|
|
47
|
-
CircularProgress,
|
|
48
|
-
Dialog,
|
|
49
|
-
DialogContent,
|
|
50
|
-
DialogTitle,
|
|
51
|
-
IconButton,
|
|
52
|
-
Paper,
|
|
53
|
-
Stack,
|
|
54
|
-
Table,
|
|
55
|
-
TableBody,
|
|
56
|
-
TableCell,
|
|
57
|
-
TableContainer,
|
|
58
|
-
TableHead,
|
|
59
|
-
TableRow,
|
|
60
|
-
TablePagination,
|
|
61
|
-
TableSortLabel,
|
|
62
|
-
Tooltip,
|
|
63
|
-
Typography
|
|
64
|
-
} from "@mui/material";
|
|
65
67
|
|
|
66
68
|
// node_modules/@mui/icons-material/Check.mjs
|
|
67
69
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -76,8 +78,8 @@ var EditCalendar_default = createSvgIcon(/* @__PURE__ */ _jsx2("path", {
|
|
|
76
78
|
}), "EditCalendar");
|
|
77
79
|
|
|
78
80
|
// call-control-sdk/lib/pages/loginReport/index.tsx
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
var import_dayjs = __toESM(require_dayjs_min());
|
|
82
|
+
var import_isoWeek = __toESM(require_isoWeek());
|
|
81
83
|
|
|
82
84
|
// call-control-sdk/lib/pages/loginReport/useLoginReport.ts
|
|
83
85
|
import { useCallback, useState } from "react";
|
|
@@ -153,7 +155,7 @@ function triggerBlobDownload(blob, filename) {
|
|
|
153
155
|
|
|
154
156
|
// call-control-sdk/lib/pages/loginReport/index.tsx
|
|
155
157
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
156
|
-
|
|
158
|
+
import_dayjs.default.extend(import_isoWeek.default);
|
|
157
159
|
var FONT = "'Inter', 'Segoe UI', 'Roboto', -apple-system, BlinkMacSystemFont, sans-serif";
|
|
158
160
|
var COLORS = {
|
|
159
161
|
navy: "#0d2a56",
|
|
@@ -173,8 +175,8 @@ var comparator = (a, b, key) => {
|
|
|
173
175
|
return String(av != null ? av : "").localeCompare(String(bv != null ? bv : ""));
|
|
174
176
|
};
|
|
175
177
|
function LoginReportContent() {
|
|
176
|
-
const [startDate, setStartDate] = useState2(
|
|
177
|
-
const [endDate, setEndDate] = useState2(
|
|
178
|
+
const [startDate, setStartDate] = useState2((0, import_dayjs.default)().startOf("day"));
|
|
179
|
+
const [endDate, setEndDate] = useState2((0, import_dayjs.default)());
|
|
178
180
|
const [activeQuickDate, setActiveQuickDate] = useState2("today");
|
|
179
181
|
const [searchText, setSearchText] = useState2("");
|
|
180
182
|
const [selectedAgents, setSelectedAgents] = useState2([]);
|
|
@@ -211,7 +213,7 @@ function LoginReportContent() {
|
|
|
211
213
|
};
|
|
212
214
|
const handleRefresh = () => {
|
|
213
215
|
if (activeQuickDate) {
|
|
214
|
-
const now =
|
|
216
|
+
const now = (0, import_dayjs.default)();
|
|
215
217
|
let sd = now.startOf("day");
|
|
216
218
|
const ed = now;
|
|
217
219
|
if (activeQuickDate === "week") sd = now.startOf("week").startOf("day");
|
|
@@ -288,8 +290,8 @@ function LoginReportContent() {
|
|
|
288
290
|
const loadSessions = useCallback2(async (agentId) => {
|
|
289
291
|
setSessionsLoading(true);
|
|
290
292
|
try {
|
|
291
|
-
const sd = startDate != null ? startDate :
|
|
292
|
-
const ed = endDate != null ? endDate :
|
|
293
|
+
const sd = startDate != null ? startDate : (0, import_dayjs.default)();
|
|
294
|
+
const ed = endDate != null ? endDate : (0, import_dayjs.default)();
|
|
293
295
|
const data = await getAgentLoginSessions(agentId, {
|
|
294
296
|
start_date: sd.format("YYYY-MM-DDTHH:mm:ss"),
|
|
295
297
|
end_date: ed.format("YYYY-MM-DDTHH:mm:ss")
|
|
@@ -322,7 +324,7 @@ function LoginReportContent() {
|
|
|
322
324
|
if (session.sessionId == null) return;
|
|
323
325
|
setRegularizeError("");
|
|
324
326
|
setRegularizeSessionId(session.sessionId);
|
|
325
|
-
setRegularizeTime(
|
|
327
|
+
setRegularizeTime((0, import_dayjs.default)());
|
|
326
328
|
};
|
|
327
329
|
const cancelRegularize = () => {
|
|
328
330
|
setRegularizeSessionId(null);
|
|
@@ -348,8 +350,8 @@ function LoginReportContent() {
|
|
|
348
350
|
}
|
|
349
351
|
};
|
|
350
352
|
const handleExportExcel = async () => {
|
|
351
|
-
const sd = startDate != null ? startDate :
|
|
352
|
-
const ed = endDate != null ? endDate :
|
|
353
|
+
const sd = startDate != null ? startDate : (0, import_dayjs.default)();
|
|
354
|
+
const ed = endDate != null ? endDate : (0, import_dayjs.default)();
|
|
353
355
|
const params = {
|
|
354
356
|
start_date: sd.format("YYYY-MM-DDTHH:mm:ss"),
|
|
355
357
|
end_date: ed.format("YYYY-MM-DDTHH:mm:ss"),
|
|
@@ -363,12 +365,12 @@ function LoginReportContent() {
|
|
|
363
365
|
setError((err == null ? void 0 : err.message) || "Failed to export Excel");
|
|
364
366
|
}
|
|
365
367
|
};
|
|
366
|
-
return /* @__PURE__ */ jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: /* @__PURE__ */ jsxs(
|
|
368
|
+
return /* @__PURE__ */ jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: /* @__PURE__ */ jsxs(Box_default, { sx: { height: "100%", display: "flex", flexDirection: "column", fontFamily: FONT }, children: [
|
|
367
369
|
/* @__PURE__ */ jsx(
|
|
368
370
|
PageHeader,
|
|
369
371
|
{
|
|
370
372
|
title: "Login Report",
|
|
371
|
-
actions: /* @__PURE__ */ jsxs(
|
|
373
|
+
actions: /* @__PURE__ */ jsxs(Stack_default, { direction: "row", alignItems: "center", spacing: 1, children: [
|
|
372
374
|
/* @__PURE__ */ jsx(
|
|
373
375
|
SearchBar,
|
|
374
376
|
{
|
|
@@ -401,8 +403,8 @@ function LoginReportContent() {
|
|
|
401
403
|
] })
|
|
402
404
|
}
|
|
403
405
|
),
|
|
404
|
-
/* @__PURE__ */ jsxs(
|
|
405
|
-
/* @__PURE__ */ jsxs(
|
|
406
|
+
/* @__PURE__ */ jsxs(Box_default, { sx: { flex: 1, overflow: "auto", py: 0.8, px: 0 }, children: [
|
|
407
|
+
/* @__PURE__ */ jsxs(Box_default, { sx: { mb: 0.8 }, children: [
|
|
406
408
|
/* @__PURE__ */ jsx(
|
|
407
409
|
ReportFilterBar,
|
|
408
410
|
{
|
|
@@ -432,11 +434,11 @@ function LoginReportContent() {
|
|
|
432
434
|
)
|
|
433
435
|
}
|
|
434
436
|
),
|
|
435
|
-
error && /* @__PURE__ */ jsx(
|
|
437
|
+
error && /* @__PURE__ */ jsx(Alert_default, { severity: "error", sx: { mt: 1, fontFamily: FONT, fontSize: "0.78rem" }, children: error })
|
|
436
438
|
] }),
|
|
437
|
-
loading && /* @__PURE__ */ jsx(
|
|
439
|
+
loading && /* @__PURE__ */ jsx(Box_default, { sx: { textAlign: "center", py: 2.5 }, children: /* @__PURE__ */ jsx(CircularProgress_default, { sx: { color: COLORS.blue }, size: 28 }) }),
|
|
438
440
|
/* @__PURE__ */ jsxs(
|
|
439
|
-
|
|
441
|
+
Paper_default,
|
|
440
442
|
{
|
|
441
443
|
elevation: 0,
|
|
442
444
|
sx: {
|
|
@@ -446,8 +448,8 @@ function LoginReportContent() {
|
|
|
446
448
|
mb: 2
|
|
447
449
|
},
|
|
448
450
|
children: [
|
|
449
|
-
/* @__PURE__ */ jsx(
|
|
450
|
-
|
|
451
|
+
/* @__PURE__ */ jsx(TableContainer_default, { children: /* @__PURE__ */ jsxs(
|
|
452
|
+
Table_default,
|
|
451
453
|
{
|
|
452
454
|
size: "small",
|
|
453
455
|
sx: {
|
|
@@ -462,7 +464,7 @@ function LoginReportContent() {
|
|
|
462
464
|
}
|
|
463
465
|
},
|
|
464
466
|
children: [
|
|
465
|
-
/* @__PURE__ */ jsx(
|
|
467
|
+
/* @__PURE__ */ jsx(TableHead_default, { children: /* @__PURE__ */ jsx(TableRow_default, { children: [
|
|
466
468
|
{ id: "fullName", label: "User Name" },
|
|
467
469
|
{ id: "agentId", label: "User ID" },
|
|
468
470
|
{ id: "queueNames", label: "Queues" },
|
|
@@ -473,8 +475,8 @@ function LoginReportContent() {
|
|
|
473
475
|
{ id: "breakDurationFormatted", label: "Break Duration" },
|
|
474
476
|
{ id: "loginDurationFormatted", label: "Login Duration" },
|
|
475
477
|
{ id: "utilisationPct", label: "Utilisation %" }
|
|
476
|
-
].map((col) => /* @__PURE__ */ jsx(
|
|
477
|
-
|
|
478
|
+
].map((col) => /* @__PURE__ */ jsx(TableCell_default, { sx: headCellSx, children: /* @__PURE__ */ jsx(
|
|
479
|
+
TableSortLabel_default,
|
|
478
480
|
{
|
|
479
481
|
active: sortKey === col.id,
|
|
480
482
|
direction: sortKey === col.id ? sortDir : "asc",
|
|
@@ -488,10 +490,10 @@ function LoginReportContent() {
|
|
|
488
490
|
children: col.label
|
|
489
491
|
}
|
|
490
492
|
) }, col.id)) }) }),
|
|
491
|
-
/* @__PURE__ */ jsx(
|
|
493
|
+
/* @__PURE__ */ jsx(TableBody_default, { children: paginatedData.map((row, idx) => {
|
|
492
494
|
const isLoggedIn = !row.lastLogoutTime;
|
|
493
495
|
return /* @__PURE__ */ jsxs(
|
|
494
|
-
|
|
496
|
+
TableRow_default,
|
|
495
497
|
{
|
|
496
498
|
hover: true,
|
|
497
499
|
sx: {
|
|
@@ -499,10 +501,10 @@ function LoginReportContent() {
|
|
|
499
501
|
"&:hover": { backgroundColor: "#f0f7f8" }
|
|
500
502
|
},
|
|
501
503
|
children: [
|
|
502
|
-
/* @__PURE__ */ jsx(
|
|
503
|
-
/* @__PURE__ */ jsx(
|
|
504
|
-
/* @__PURE__ */ jsx(
|
|
505
|
-
|
|
504
|
+
/* @__PURE__ */ jsx(TableCell_default, { sx: { fontWeight: 600, color: COLORS.navy, fontSize: "0.75rem" }, children: row.fullName || "\u2014" }),
|
|
505
|
+
/* @__PURE__ */ jsx(TableCell_default, { sx: { fontSize: "0.73rem", color: "#4a5568" }, children: row.agentId || "\u2014" }),
|
|
506
|
+
/* @__PURE__ */ jsx(TableCell_default, { children: row.queueNames ? /* @__PURE__ */ jsx(
|
|
507
|
+
Chip_default,
|
|
506
508
|
{
|
|
507
509
|
label: row.queueNames,
|
|
508
510
|
size: "small",
|
|
@@ -516,8 +518,8 @@ function LoginReportContent() {
|
|
|
516
518
|
}
|
|
517
519
|
}
|
|
518
520
|
) : "\u2014" }),
|
|
519
|
-
/* @__PURE__ */ jsx(
|
|
520
|
-
|
|
521
|
+
/* @__PURE__ */ jsx(TableCell_default, { sx: { textAlign: "center" }, children: /* @__PURE__ */ jsx(
|
|
522
|
+
Chip_default,
|
|
521
523
|
{
|
|
522
524
|
label: row.numLogins,
|
|
523
525
|
size: "small",
|
|
@@ -538,9 +540,9 @@ function LoginReportContent() {
|
|
|
538
540
|
}
|
|
539
541
|
}
|
|
540
542
|
) }),
|
|
541
|
-
/* @__PURE__ */ jsx(
|
|
542
|
-
/* @__PURE__ */ jsx(
|
|
543
|
-
|
|
543
|
+
/* @__PURE__ */ jsx(TableCell_default, { sx: { fontSize: "0.73rem", color: "#4a5568" }, children: row.firstLoginTime ? (0, import_dayjs.default)(row.firstLoginTime).format("DD MMM YYYY hh:mm A") : "\u2014" }),
|
|
544
|
+
/* @__PURE__ */ jsx(TableCell_default, { sx: { fontSize: "0.73rem", color: "#4a5568" }, children: isLoggedIn ? /* @__PURE__ */ jsx(
|
|
545
|
+
Chip_default,
|
|
544
546
|
{
|
|
545
547
|
label: "LOGGED-IN",
|
|
546
548
|
size: "small",
|
|
@@ -553,29 +555,29 @@ function LoginReportContent() {
|
|
|
553
555
|
height: 20
|
|
554
556
|
}
|
|
555
557
|
}
|
|
556
|
-
) :
|
|
558
|
+
) : (0, import_dayjs.default)(row.lastLogoutTime).format("DD MMM YYYY hh:mm A") }),
|
|
557
559
|
/* @__PURE__ */ jsx(
|
|
558
|
-
|
|
560
|
+
TableCell_default,
|
|
559
561
|
{
|
|
560
562
|
sx: { fontWeight: 600, color: COLORS.blue, fontSize: "0.75rem", fontVariantNumeric: "tabular-nums" },
|
|
561
563
|
children: row.workingDurationFormatted || "\u2014"
|
|
562
564
|
}
|
|
563
565
|
),
|
|
564
566
|
/* @__PURE__ */ jsx(
|
|
565
|
-
|
|
567
|
+
TableCell_default,
|
|
566
568
|
{
|
|
567
569
|
sx: { fontWeight: 500, color: COLORS.amber, fontSize: "0.75rem", fontVariantNumeric: "tabular-nums" },
|
|
568
570
|
children: row.breakDurationFormatted || "\u2014"
|
|
569
571
|
}
|
|
570
572
|
),
|
|
571
|
-
/* @__PURE__ */ jsx(
|
|
572
|
-
/* @__PURE__ */ jsx(
|
|
573
|
+
/* @__PURE__ */ jsx(TableCell_default, { sx: { fontWeight: 500, fontSize: "0.75rem", fontVariantNumeric: "tabular-nums" }, children: row.loginDurationFormatted || "\u2014" }),
|
|
574
|
+
/* @__PURE__ */ jsx(TableCell_default, { sx: { minWidth: 120 }, children: row.utilisationPct != null ? (() => {
|
|
573
575
|
const pct = Math.min(row.utilisationPct, 100);
|
|
574
576
|
const barColor = pct >= 80 ? "#10b981" : pct >= 60 ? "#f59e0b" : "#ef4444";
|
|
575
577
|
const bgTint = pct >= 80 ? "#d1fae5" : pct >= 60 ? "#fef3c7" : "#fee2e2";
|
|
576
|
-
return /* @__PURE__ */ jsxs(
|
|
578
|
+
return /* @__PURE__ */ jsxs(Box_default, { sx: { display: "flex", alignItems: "center", gap: 0.8 }, children: [
|
|
577
579
|
/* @__PURE__ */ jsx(
|
|
578
|
-
|
|
580
|
+
Box_default,
|
|
579
581
|
{
|
|
580
582
|
sx: {
|
|
581
583
|
position: "relative",
|
|
@@ -586,7 +588,7 @@ function LoginReportContent() {
|
|
|
586
588
|
overflow: "hidden"
|
|
587
589
|
},
|
|
588
590
|
children: /* @__PURE__ */ jsx(
|
|
589
|
-
|
|
591
|
+
Box_default,
|
|
590
592
|
{
|
|
591
593
|
sx: {
|
|
592
594
|
width: `${pct}%`,
|
|
@@ -600,7 +602,7 @@ function LoginReportContent() {
|
|
|
600
602
|
}
|
|
601
603
|
),
|
|
602
604
|
/* @__PURE__ */ jsx(
|
|
603
|
-
|
|
605
|
+
Chip_default,
|
|
604
606
|
{
|
|
605
607
|
label: `${Math.round(pct)}%`,
|
|
606
608
|
size: "small",
|
|
@@ -627,7 +629,7 @@ function LoginReportContent() {
|
|
|
627
629
|
}
|
|
628
630
|
) }),
|
|
629
631
|
/* @__PURE__ */ jsx(
|
|
630
|
-
|
|
632
|
+
TablePagination_default,
|
|
631
633
|
{
|
|
632
634
|
component: "div",
|
|
633
635
|
count: totalCount,
|
|
@@ -646,7 +648,7 @@ function LoginReportContent() {
|
|
|
646
648
|
}
|
|
647
649
|
),
|
|
648
650
|
/* @__PURE__ */ jsxs(
|
|
649
|
-
|
|
651
|
+
Dialog_default,
|
|
650
652
|
{
|
|
651
653
|
open: dialogOpen,
|
|
652
654
|
onClose: (_e, reason) => {
|
|
@@ -665,7 +667,7 @@ function LoginReportContent() {
|
|
|
665
667
|
},
|
|
666
668
|
children: [
|
|
667
669
|
/* @__PURE__ */ jsxs(
|
|
668
|
-
|
|
670
|
+
DialogTitle_default,
|
|
669
671
|
{
|
|
670
672
|
sx: {
|
|
671
673
|
fontFamily: FONT,
|
|
@@ -678,10 +680,10 @@ function LoginReportContent() {
|
|
|
678
680
|
px: 2.5
|
|
679
681
|
},
|
|
680
682
|
children: [
|
|
681
|
-
/* @__PURE__ */ jsxs(
|
|
682
|
-
/* @__PURE__ */ jsx(
|
|
683
|
+
/* @__PURE__ */ jsxs(Box_default, { children: [
|
|
684
|
+
/* @__PURE__ */ jsx(Typography_default, { variant: "h6", sx: { fontFamily: FONT, fontWeight: 700, fontSize: "0.95rem", letterSpacing: "0.3px" }, children: "Login Sessions" }),
|
|
683
685
|
/* @__PURE__ */ jsxs(
|
|
684
|
-
|
|
686
|
+
Typography_default,
|
|
685
687
|
{
|
|
686
688
|
variant: "body2",
|
|
687
689
|
sx: { fontFamily: FONT, opacity: 0.9, fontSize: "0.76rem", mt: 0.3 },
|
|
@@ -695,7 +697,7 @@ function LoginReportContent() {
|
|
|
695
697
|
}
|
|
696
698
|
)
|
|
697
699
|
] }),
|
|
698
|
-
/* @__PURE__ */ jsxs(
|
|
700
|
+
/* @__PURE__ */ jsxs(Box_default, { sx: { display: "flex", alignItems: "center", gap: 0.5 }, children: [
|
|
699
701
|
/* @__PURE__ */ jsx(
|
|
700
702
|
AppButton,
|
|
701
703
|
{
|
|
@@ -705,8 +707,8 @@ function LoginReportContent() {
|
|
|
705
707
|
if (!selectedRow) return;
|
|
706
708
|
try {
|
|
707
709
|
await exportAgentLoginSessionsToExcel(selectedRow.agentId, {
|
|
708
|
-
start_date: (startDate != null ? startDate :
|
|
709
|
-
end_date: (endDate != null ? endDate :
|
|
710
|
+
start_date: (startDate != null ? startDate : (0, import_dayjs.default)()).format("YYYY-MM-DDTHH:mm:ss"),
|
|
711
|
+
end_date: (endDate != null ? endDate : (0, import_dayjs.default)()).format("YYYY-MM-DDTHH:mm:ss")
|
|
710
712
|
});
|
|
711
713
|
} catch (err) {
|
|
712
714
|
setError((err == null ? void 0 : err.message) || "Failed to export Excel");
|
|
@@ -717,7 +719,7 @@ function LoginReportContent() {
|
|
|
717
719
|
}
|
|
718
720
|
),
|
|
719
721
|
/* @__PURE__ */ jsx(
|
|
720
|
-
|
|
722
|
+
IconButton_default,
|
|
721
723
|
{
|
|
722
724
|
onClick: closeDialog,
|
|
723
725
|
size: "small",
|
|
@@ -733,15 +735,15 @@ function LoginReportContent() {
|
|
|
733
735
|
]
|
|
734
736
|
}
|
|
735
737
|
),
|
|
736
|
-
/* @__PURE__ */ jsx(
|
|
738
|
+
/* @__PURE__ */ jsx(DialogContent_default, { sx: { p: 0, backgroundColor: "#f8fafb" }, children: sessionsLoading ? /* @__PURE__ */ jsx(Box_default, { sx: { p: 4, textAlign: "center" }, children: /* @__PURE__ */ jsx(CircularProgress_default, { size: 28, sx: { color: "var(--primary-color, #1A5F6C)" } }) }) : sessions.length > 0 ? /* @__PURE__ */ jsx(Box_default, { sx: { p: 1.5, maxHeight: 300, overflowY: "auto" }, children: Object.entries(
|
|
737
739
|
sessions.reduce((acc, s) => {
|
|
738
|
-
const dateKey = s.loginTime ?
|
|
740
|
+
const dateKey = s.loginTime ? (0, import_dayjs.default)(s.loginTime).format("DD MMM YYYY") : "Unknown Date";
|
|
739
741
|
if (!acc[dateKey]) acc[dateKey] = [];
|
|
740
742
|
acc[dateKey].push(s);
|
|
741
743
|
return acc;
|
|
742
744
|
}, {})
|
|
743
745
|
).map(([date, dateSessions]) => /* @__PURE__ */ jsxs(
|
|
744
|
-
|
|
746
|
+
Paper_default,
|
|
745
747
|
{
|
|
746
748
|
elevation: 0,
|
|
747
749
|
sx: {
|
|
@@ -753,7 +755,7 @@ function LoginReportContent() {
|
|
|
753
755
|
},
|
|
754
756
|
children: [
|
|
755
757
|
/* @__PURE__ */ jsx(
|
|
756
|
-
|
|
758
|
+
Box_default,
|
|
757
759
|
{
|
|
758
760
|
sx: {
|
|
759
761
|
px: 1.5,
|
|
@@ -762,7 +764,7 @@ function LoginReportContent() {
|
|
|
762
764
|
borderBottom: "1px solid #e4eaf0"
|
|
763
765
|
},
|
|
764
766
|
children: /* @__PURE__ */ jsx(
|
|
765
|
-
|
|
767
|
+
Typography_default,
|
|
766
768
|
{
|
|
767
769
|
sx: {
|
|
768
770
|
fontFamily: FONT,
|
|
@@ -776,9 +778,9 @@ function LoginReportContent() {
|
|
|
776
778
|
)
|
|
777
779
|
}
|
|
778
780
|
),
|
|
779
|
-
/* @__PURE__ */ jsxs(
|
|
781
|
+
/* @__PURE__ */ jsxs(Box_default, { sx: { px: 1.5, py: 1 }, children: [
|
|
780
782
|
/* @__PURE__ */ jsxs(
|
|
781
|
-
|
|
783
|
+
Box_default,
|
|
782
784
|
{
|
|
783
785
|
sx: {
|
|
784
786
|
display: "flex",
|
|
@@ -790,7 +792,7 @@ function LoginReportContent() {
|
|
|
790
792
|
},
|
|
791
793
|
children: [
|
|
792
794
|
/* @__PURE__ */ jsx(
|
|
793
|
-
|
|
795
|
+
Typography_default,
|
|
794
796
|
{
|
|
795
797
|
sx: {
|
|
796
798
|
flex: 1,
|
|
@@ -805,7 +807,7 @@ function LoginReportContent() {
|
|
|
805
807
|
}
|
|
806
808
|
),
|
|
807
809
|
/* @__PURE__ */ jsx(
|
|
808
|
-
|
|
810
|
+
Typography_default,
|
|
809
811
|
{
|
|
810
812
|
sx: {
|
|
811
813
|
flex: 1,
|
|
@@ -826,16 +828,16 @@ function LoginReportContent() {
|
|
|
826
828
|
const isOpenSession = !s.logoutTime;
|
|
827
829
|
const isEditing = s.sessionId != null && regularizeSessionId === s.sessionId;
|
|
828
830
|
return /* @__PURE__ */ jsxs(
|
|
829
|
-
|
|
831
|
+
Box_default,
|
|
830
832
|
{
|
|
831
833
|
sx: {
|
|
832
834
|
py: 0.6,
|
|
833
835
|
borderBottom: i < dateSessions.length - 1 ? "1px dashed #e8ecf0" : "none"
|
|
834
836
|
},
|
|
835
837
|
children: [
|
|
836
|
-
/* @__PURE__ */ jsxs(
|
|
838
|
+
/* @__PURE__ */ jsxs(Box_default, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
|
|
837
839
|
/* @__PURE__ */ jsxs(
|
|
838
|
-
|
|
840
|
+
Typography_default,
|
|
839
841
|
{
|
|
840
842
|
component: "span",
|
|
841
843
|
sx: {
|
|
@@ -850,13 +852,13 @@ function LoginReportContent() {
|
|
|
850
852
|
},
|
|
851
853
|
children: [
|
|
852
854
|
/* @__PURE__ */ jsx("span", { style: { fontSize: "0.9rem" }, children: "\u2199" }),
|
|
853
|
-
s.loginTime ?
|
|
855
|
+
s.loginTime ? (0, import_dayjs.default)(s.loginTime).format("DD MMM YYYY h:mm:ss A") : "Missing"
|
|
854
856
|
]
|
|
855
857
|
}
|
|
856
858
|
),
|
|
857
|
-
/* @__PURE__ */ jsxs(
|
|
859
|
+
/* @__PURE__ */ jsxs(Box_default, { sx: { flex: 1, display: "flex", alignItems: "center", justifyContent: "space-between", gap: 0.4 }, children: [
|
|
858
860
|
/* @__PURE__ */ jsxs(
|
|
859
|
-
|
|
861
|
+
Typography_default,
|
|
860
862
|
{
|
|
861
863
|
component: "span",
|
|
862
864
|
sx: {
|
|
@@ -870,7 +872,7 @@ function LoginReportContent() {
|
|
|
870
872
|
},
|
|
871
873
|
children: [
|
|
872
874
|
/* @__PURE__ */ jsx("span", { style: { fontSize: "0.9rem" }, children: "\u2197" }),
|
|
873
|
-
s.logoutTime ?
|
|
875
|
+
s.logoutTime ? (0, import_dayjs.default)(s.logoutTime).format("DD MMM YYYY h:mm:ss A") : "Missing"
|
|
874
876
|
]
|
|
875
877
|
}
|
|
876
878
|
),
|
|
@@ -879,8 +881,8 @@ function LoginReportContent() {
|
|
|
879
881
|
{
|
|
880
882
|
permissions: [SDK_PERMISSIONS.REPORTS_AGENT_LOGIN_MANAGE],
|
|
881
883
|
showFallback: false,
|
|
882
|
-
children: /* @__PURE__ */ jsx(
|
|
883
|
-
|
|
884
|
+
children: /* @__PURE__ */ jsx(Tooltip_default, { title: "Regularize \u2014 set logout time", children: /* @__PURE__ */ jsx(
|
|
885
|
+
IconButton_default,
|
|
884
886
|
{
|
|
885
887
|
size: "small",
|
|
886
888
|
onClick: () => startRegularize(s),
|
|
@@ -898,7 +900,7 @@ function LoginReportContent() {
|
|
|
898
900
|
] })
|
|
899
901
|
] }),
|
|
900
902
|
isEditing && /* @__PURE__ */ jsxs(
|
|
901
|
-
|
|
903
|
+
Box_default,
|
|
902
904
|
{
|
|
903
905
|
sx: {
|
|
904
906
|
mt: 1,
|
|
@@ -909,7 +911,7 @@ function LoginReportContent() {
|
|
|
909
911
|
},
|
|
910
912
|
children: [
|
|
911
913
|
/* @__PURE__ */ jsx(
|
|
912
|
-
|
|
914
|
+
Typography_default,
|
|
913
915
|
{
|
|
914
916
|
sx: {
|
|
915
917
|
fontFamily: FONT,
|
|
@@ -928,8 +930,8 @@ function LoginReportContent() {
|
|
|
928
930
|
{
|
|
929
931
|
value: regularizeTime,
|
|
930
932
|
onChange: (val) => setRegularizeTime(val),
|
|
931
|
-
minDateTime: s.loginTime ?
|
|
932
|
-
maxDateTime:
|
|
933
|
+
minDateTime: s.loginTime ? (0, import_dayjs.default)(s.loginTime) : void 0,
|
|
934
|
+
maxDateTime: (0, import_dayjs.default)(),
|
|
933
935
|
ampm: true,
|
|
934
936
|
format: "DD MMM YYYY hh:mm A",
|
|
935
937
|
slotProps: {
|
|
@@ -950,8 +952,8 @@ function LoginReportContent() {
|
|
|
950
952
|
}
|
|
951
953
|
}
|
|
952
954
|
),
|
|
953
|
-
regularizeError && /* @__PURE__ */ jsx(
|
|
954
|
-
/* @__PURE__ */ jsxs(
|
|
955
|
+
regularizeError && /* @__PURE__ */ jsx(Typography_default, { sx: { fontFamily: FONT, color: COLORS.red, fontSize: "0.7rem", mt: 0.6 }, children: regularizeError }),
|
|
956
|
+
/* @__PURE__ */ jsxs(Stack_default, { direction: "row", justifyContent: "flex-end", spacing: 1, sx: { mt: 1 }, children: [
|
|
955
957
|
/* @__PURE__ */ jsx(
|
|
956
958
|
AppButton,
|
|
957
959
|
{
|
|
@@ -968,7 +970,7 @@ function LoginReportContent() {
|
|
|
968
970
|
size: "small",
|
|
969
971
|
onClick: saveRegularize,
|
|
970
972
|
disabled: regularizing,
|
|
971
|
-
startIcon: regularizing ? /* @__PURE__ */ jsx(
|
|
973
|
+
startIcon: regularizing ? /* @__PURE__ */ jsx(CircularProgress_default, { size: 14, sx: { color: "#fff" } }) : /* @__PURE__ */ jsx(Check_default, { sx: { fontSize: "0.95rem !important" } }),
|
|
972
974
|
children: regularizing ? "Saving\u2026" : "Regularize"
|
|
973
975
|
}
|
|
974
976
|
)
|
|
@@ -985,7 +987,7 @@ function LoginReportContent() {
|
|
|
985
987
|
]
|
|
986
988
|
},
|
|
987
989
|
date
|
|
988
|
-
)) }) : /* @__PURE__ */ jsx(
|
|
990
|
+
)) }) : /* @__PURE__ */ jsx(Box_default, { sx: { p: 4, textAlign: "center" }, children: /* @__PURE__ */ jsx(Typography_default, { sx: { fontFamily: FONT, color: "#9e9e9e", fontStyle: "italic", fontSize: "0.82rem" }, children: "No sessions found" }) }) })
|
|
989
991
|
]
|
|
990
992
|
}
|
|
991
993
|
)
|
|
@@ -997,4 +999,4 @@ var loginReport_default = LoginReport;
|
|
|
997
999
|
export {
|
|
998
1000
|
loginReport_default as default
|
|
999
1001
|
};
|
|
1000
|
-
//# sourceMappingURL=loginReport-
|
|
1002
|
+
//# sourceMappingURL=loginReport-YIVBJVJD.mjs.map
|