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.
- package/dist/agentDetailReport-ZR7U2LLB.mjs +17 -0
- package/dist/{agentPerformanceReport-6RO6STKU.mjs → agentPerformanceReport-JZK5DN5E.mjs} +73 -57
- package/dist/agentPerformanceReport-JZK5DN5E.mjs.map +1 -0
- package/dist/{auditReport-PYRZU3NA.mjs → auditReport-6ZUJ4UFO.mjs} +5 -4
- package/dist/{auditReport-PYRZU3NA.mjs.map → auditReport-6ZUJ4UFO.mjs.map} +1 -1
- package/dist/{callHistory-4JI64TU7.mjs → callHistory-T3M76D4B.mjs} +161 -158
- package/dist/callHistory-T3M76D4B.mjs.map +1 -0
- package/dist/{campaigns-JZE22SIM.mjs → campaigns-5PVHXBSD.mjs} +472 -417
- package/dist/campaigns-5PVHXBSD.mjs.map +1 -0
- 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-RJTURVVV.mjs → cdrReport-ZMDHSZUW.mjs} +122 -104
- package/dist/cdrReport-ZMDHSZUW.mjs.map +1 -0
- package/dist/{chunk-HAJ6SECI.mjs → chunk-2M3YEXYA.mjs} +95 -64
- package/dist/chunk-2M3YEXYA.mjs.map +1 -0
- package/dist/{chunk-BDQZYTAY.mjs → chunk-33QNSXP7.mjs} +169 -163
- package/dist/chunk-33QNSXP7.mjs.map +1 -0
- package/dist/{chunk-FVVDDZCA.mjs → chunk-3J7KQNEU.mjs} +22 -11
- package/dist/chunk-3J7KQNEU.mjs.map +1 -0
- package/dist/chunk-6WLG2PXL.mjs +14 -0
- package/dist/chunk-6WLG2PXL.mjs.map +1 -0
- package/dist/chunk-7LE2VTAI.mjs +14 -0
- package/dist/chunk-7LE2VTAI.mjs.map +1 -0
- package/dist/chunk-AOJRUZTO.mjs +14 -0
- package/dist/chunk-AOJRUZTO.mjs.map +1 -0
- package/dist/chunk-DF5EFKXC.mjs +28690 -0
- package/dist/chunk-DF5EFKXC.mjs.map +1 -0
- package/dist/{chunk-UNTGXE6T.mjs → chunk-DJP744FF.mjs} +2 -2
- package/dist/{chunk-RZZQ42MG.mjs → chunk-DNTGBNZD.mjs} +22 -15
- package/dist/{chunk-RZZQ42MG.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-FRKV2U3I.mjs +14 -0
- package/dist/chunk-FRKV2U3I.mjs.map +1 -0
- package/dist/{chunk-IBFF6DJA.mjs → chunk-H7GRWLYI.mjs} +13 -5
- package/dist/chunk-H7GRWLYI.mjs.map +1 -0
- package/dist/{chunk-PO6POUPL.mjs → chunk-IDZWA6HG.mjs} +185 -162
- package/dist/chunk-IDZWA6HG.mjs.map +1 -0
- 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-OHJIW3I3.mjs +14 -0
- package/dist/chunk-OHJIW3I3.mjs.map +1 -0
- package/dist/chunk-Q6G3MPS7.mjs +37797 -0
- package/dist/chunk-Q6G3MPS7.mjs.map +1 -0
- package/dist/{chunk-ATAP77RC.mjs → chunk-U2UDKXMB.mjs} +2 -2
- package/dist/{chunk-JOZ4YQMR.mjs → chunk-VBIDPX5Z.mjs} +22 -15
- package/dist/{chunk-JOZ4YQMR.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-WTBVFN4H.mjs +14 -0
- package/dist/chunk-WTBVFN4H.mjs.map +1 -0
- package/dist/chunk-YAQYTUTX.mjs +28 -0
- package/dist/chunk-YAQYTUTX.mjs.map +1 -0
- package/dist/index.js +117517 -31841
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +474 -369
- package/dist/index.mjs.map +1 -1
- package/dist/{liveStatus-E7UP37FK.mjs → liveStatus-YSBYSVOO.mjs} +123 -122
- package/dist/{liveStatus-E7UP37FK.mjs.map → liveStatus-YSBYSVOO.mjs.map} +1 -1
- package/dist/{loginReport-5QYHG6OM.mjs → loginReport-YIVBJVJD.mjs} +143 -122
- package/dist/loginReport-YIVBJVJD.mjs.map +1 -0
- package/dist/managementDashboard-7EMQC2UA.mjs +536 -0
- package/dist/{managementDashboard-PARD3QHL.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-JYBV3TF6.mjs +0 -13
- package/dist/agentPerformanceReport-6RO6STKU.mjs.map +0 -1
- package/dist/callHistory-4JI64TU7.mjs.map +0 -1
- package/dist/campaigns-JZE22SIM.mjs.map +0 -1
- package/dist/cdrReport-RJTURVVV.mjs.map +0 -1
- package/dist/chunk-AJQBR3AZ.mjs.map +0 -1
- package/dist/chunk-BDQZYTAY.mjs.map +0 -1
- package/dist/chunk-FVVDDZCA.mjs.map +0 -1
- package/dist/chunk-HAJ6SECI.mjs.map +0 -1
- package/dist/chunk-IBFF6DJA.mjs.map +0 -1
- package/dist/chunk-OVC42HVH.mjs +0 -1063
- package/dist/chunk-OVC42HVH.mjs.map +0 -1
- package/dist/chunk-PO6POUPL.mjs.map +0 -1
- package/dist/chunk-UB5HSUGK.mjs +0 -65
- package/dist/chunk-UB5HSUGK.mjs.map +0 -1
- package/dist/loginReport-5QYHG6OM.mjs.map +0 -1
- package/dist/managementDashboard-PARD3QHL.mjs +0 -531
- /package/dist/{agentDetailReport-JYBV3TF6.mjs.map → agentDetailReport-ZR7U2LLB.mjs.map} +0 -0
- /package/dist/{chunk-UNTGXE6T.mjs.map → chunk-DJP744FF.mjs.map} +0 -0
- /package/dist/{chunk-ATAP77RC.mjs.map → chunk-U2UDKXMB.mjs.map} +0 -0
|
@@ -1,64 +1,85 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Download_default
|
|
3
|
+
} from "./chunk-FRKV2U3I.mjs";
|
|
1
4
|
import {
|
|
2
5
|
ReportFilterBar,
|
|
3
6
|
SearchBar,
|
|
4
|
-
headCellSx
|
|
5
|
-
|
|
7
|
+
headCellSx,
|
|
8
|
+
require_isoWeek
|
|
9
|
+
} from "./chunk-2M3YEXYA.mjs";
|
|
6
10
|
import {
|
|
7
11
|
SDKPermissionGuard
|
|
8
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-3J7KQNEU.mjs";
|
|
13
|
+
import {
|
|
14
|
+
Close_default
|
|
15
|
+
} from "./chunk-WTBVFN4H.mjs";
|
|
9
16
|
import {
|
|
10
17
|
PageHeader
|
|
11
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-VBIDPX5Z.mjs";
|
|
12
19
|
import {
|
|
13
20
|
AppButton
|
|
14
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-NAZO4HKB.mjs";
|
|
15
22
|
import {
|
|
16
23
|
AdapterDayjs,
|
|
17
24
|
DateTimePicker,
|
|
18
|
-
LocalizationProvider
|
|
19
|
-
|
|
25
|
+
LocalizationProvider,
|
|
26
|
+
require_dayjs_min
|
|
27
|
+
} from "./chunk-E6KYWWAI.mjs";
|
|
28
|
+
import {
|
|
29
|
+
Refresh_default
|
|
30
|
+
} from "./chunk-YAQYTUTX.mjs";
|
|
20
31
|
import {
|
|
21
32
|
SDKProvider
|
|
22
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-VVDJLUYT.mjs";
|
|
23
34
|
import {
|
|
24
35
|
END_POINT,
|
|
25
36
|
SDK_PERMISSIONS,
|
|
26
37
|
axios_default,
|
|
27
38
|
deepFindArray
|
|
28
|
-
} from "./chunk-
|
|
29
|
-
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";
|
|
30
64
|
|
|
31
65
|
// call-control-sdk/lib/pages/loginReport/index.tsx
|
|
32
66
|
import { useCallback as useCallback2, useEffect, useMemo, useRef, useState as useState2 } from "react";
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
TableRow,
|
|
50
|
-
TablePagination,
|
|
51
|
-
TableSortLabel,
|
|
52
|
-
Tooltip,
|
|
53
|
-
Typography
|
|
54
|
-
} from "@mui/material";
|
|
55
|
-
import CloseIcon from "@mui/icons-material/Close";
|
|
56
|
-
import CheckIcon from "@mui/icons-material/Check";
|
|
57
|
-
import EditCalendarIcon from "@mui/icons-material/EditCalendar";
|
|
58
|
-
import DownloadIcon from "@mui/icons-material/Download";
|
|
59
|
-
import RefreshIcon from "@mui/icons-material/Refresh";
|
|
60
|
-
import dayjs from "dayjs";
|
|
61
|
-
import isoWeek from "dayjs/plugin/isoWeek";
|
|
67
|
+
|
|
68
|
+
// node_modules/@mui/icons-material/Check.mjs
|
|
69
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
70
|
+
var Check_default = createSvgIcon(/* @__PURE__ */ _jsx("path", {
|
|
71
|
+
d: "M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"
|
|
72
|
+
}), "Check");
|
|
73
|
+
|
|
74
|
+
// node_modules/@mui/icons-material/EditCalendar.mjs
|
|
75
|
+
import { jsx as _jsx2 } from "react/jsx-runtime";
|
|
76
|
+
var EditCalendar_default = createSvgIcon(/* @__PURE__ */ _jsx2("path", {
|
|
77
|
+
d: "M12 22H5c-1.11 0-2-.9-2-2l.01-14c0-1.1.88-2 1.99-2h1V2h2v2h8V2h2v2h1c1.1 0 2 .9 2 2v6h-2v-2H5v10h7zm10.13-5.01.71-.71c.39-.39.39-1.02 0-1.41l-.71-.71a.996.996 0 0 0-1.41 0l-.71.71zm-.71.71-5.3 5.3H14v-2.12l5.3-5.3z"
|
|
78
|
+
}), "EditCalendar");
|
|
79
|
+
|
|
80
|
+
// call-control-sdk/lib/pages/loginReport/index.tsx
|
|
81
|
+
var import_dayjs = __toESM(require_dayjs_min());
|
|
82
|
+
var import_isoWeek = __toESM(require_isoWeek());
|
|
62
83
|
|
|
63
84
|
// call-control-sdk/lib/pages/loginReport/useLoginReport.ts
|
|
64
85
|
import { useCallback, useState } from "react";
|
|
@@ -134,7 +155,7 @@ function triggerBlobDownload(blob, filename) {
|
|
|
134
155
|
|
|
135
156
|
// call-control-sdk/lib/pages/loginReport/index.tsx
|
|
136
157
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
137
|
-
|
|
158
|
+
import_dayjs.default.extend(import_isoWeek.default);
|
|
138
159
|
var FONT = "'Inter', 'Segoe UI', 'Roboto', -apple-system, BlinkMacSystemFont, sans-serif";
|
|
139
160
|
var COLORS = {
|
|
140
161
|
navy: "#0d2a56",
|
|
@@ -154,8 +175,8 @@ var comparator = (a, b, key) => {
|
|
|
154
175
|
return String(av != null ? av : "").localeCompare(String(bv != null ? bv : ""));
|
|
155
176
|
};
|
|
156
177
|
function LoginReportContent() {
|
|
157
|
-
const [startDate, setStartDate] = useState2(
|
|
158
|
-
const [endDate, setEndDate] = useState2(
|
|
178
|
+
const [startDate, setStartDate] = useState2((0, import_dayjs.default)().startOf("day"));
|
|
179
|
+
const [endDate, setEndDate] = useState2((0, import_dayjs.default)());
|
|
159
180
|
const [activeQuickDate, setActiveQuickDate] = useState2("today");
|
|
160
181
|
const [searchText, setSearchText] = useState2("");
|
|
161
182
|
const [selectedAgents, setSelectedAgents] = useState2([]);
|
|
@@ -192,7 +213,7 @@ function LoginReportContent() {
|
|
|
192
213
|
};
|
|
193
214
|
const handleRefresh = () => {
|
|
194
215
|
if (activeQuickDate) {
|
|
195
|
-
const now =
|
|
216
|
+
const now = (0, import_dayjs.default)();
|
|
196
217
|
let sd = now.startOf("day");
|
|
197
218
|
const ed = now;
|
|
198
219
|
if (activeQuickDate === "week") sd = now.startOf("week").startOf("day");
|
|
@@ -269,8 +290,8 @@ function LoginReportContent() {
|
|
|
269
290
|
const loadSessions = useCallback2(async (agentId) => {
|
|
270
291
|
setSessionsLoading(true);
|
|
271
292
|
try {
|
|
272
|
-
const sd = startDate != null ? startDate :
|
|
273
|
-
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)();
|
|
274
295
|
const data = await getAgentLoginSessions(agentId, {
|
|
275
296
|
start_date: sd.format("YYYY-MM-DDTHH:mm:ss"),
|
|
276
297
|
end_date: ed.format("YYYY-MM-DDTHH:mm:ss")
|
|
@@ -303,7 +324,7 @@ function LoginReportContent() {
|
|
|
303
324
|
if (session.sessionId == null) return;
|
|
304
325
|
setRegularizeError("");
|
|
305
326
|
setRegularizeSessionId(session.sessionId);
|
|
306
|
-
setRegularizeTime(
|
|
327
|
+
setRegularizeTime((0, import_dayjs.default)());
|
|
307
328
|
};
|
|
308
329
|
const cancelRegularize = () => {
|
|
309
330
|
setRegularizeSessionId(null);
|
|
@@ -329,8 +350,8 @@ function LoginReportContent() {
|
|
|
329
350
|
}
|
|
330
351
|
};
|
|
331
352
|
const handleExportExcel = async () => {
|
|
332
|
-
const sd = startDate != null ? startDate :
|
|
333
|
-
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)();
|
|
334
355
|
const params = {
|
|
335
356
|
start_date: sd.format("YYYY-MM-DDTHH:mm:ss"),
|
|
336
357
|
end_date: ed.format("YYYY-MM-DDTHH:mm:ss"),
|
|
@@ -344,12 +365,12 @@ function LoginReportContent() {
|
|
|
344
365
|
setError((err == null ? void 0 : err.message) || "Failed to export Excel");
|
|
345
366
|
}
|
|
346
367
|
};
|
|
347
|
-
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: [
|
|
348
369
|
/* @__PURE__ */ jsx(
|
|
349
370
|
PageHeader,
|
|
350
371
|
{
|
|
351
372
|
title: "Login Report",
|
|
352
|
-
actions: /* @__PURE__ */ jsxs(
|
|
373
|
+
actions: /* @__PURE__ */ jsxs(Stack_default, { direction: "row", alignItems: "center", spacing: 1, children: [
|
|
353
374
|
/* @__PURE__ */ jsx(
|
|
354
375
|
SearchBar,
|
|
355
376
|
{
|
|
@@ -370,7 +391,7 @@ function LoginReportContent() {
|
|
|
370
391
|
children: /* @__PURE__ */ jsx(
|
|
371
392
|
AppButton,
|
|
372
393
|
{
|
|
373
|
-
startIcon: /* @__PURE__ */ jsx(
|
|
394
|
+
startIcon: /* @__PURE__ */ jsx(Download_default, { sx: { fontSize: "0.95rem !important" } }),
|
|
374
395
|
disabled: !reportData.length,
|
|
375
396
|
onClick: handleExportExcel,
|
|
376
397
|
sx: { height: 36 },
|
|
@@ -382,8 +403,8 @@ function LoginReportContent() {
|
|
|
382
403
|
] })
|
|
383
404
|
}
|
|
384
405
|
),
|
|
385
|
-
/* @__PURE__ */ jsxs(
|
|
386
|
-
/* @__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: [
|
|
387
408
|
/* @__PURE__ */ jsx(
|
|
388
409
|
ReportFilterBar,
|
|
389
410
|
{
|
|
@@ -404,7 +425,7 @@ function LoginReportContent() {
|
|
|
404
425
|
extra: /* @__PURE__ */ jsx(
|
|
405
426
|
AppButton,
|
|
406
427
|
{
|
|
407
|
-
startIcon: /* @__PURE__ */ jsx(
|
|
428
|
+
startIcon: /* @__PURE__ */ jsx(Refresh_default, { sx: { fontSize: "0.9rem !important" } }),
|
|
408
429
|
disabled: loading,
|
|
409
430
|
onClick: handleRefresh,
|
|
410
431
|
sx: { height: 32 },
|
|
@@ -413,11 +434,11 @@ function LoginReportContent() {
|
|
|
413
434
|
)
|
|
414
435
|
}
|
|
415
436
|
),
|
|
416
|
-
error && /* @__PURE__ */ jsx(
|
|
437
|
+
error && /* @__PURE__ */ jsx(Alert_default, { severity: "error", sx: { mt: 1, fontFamily: FONT, fontSize: "0.78rem" }, children: error })
|
|
417
438
|
] }),
|
|
418
|
-
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 }) }),
|
|
419
440
|
/* @__PURE__ */ jsxs(
|
|
420
|
-
|
|
441
|
+
Paper_default,
|
|
421
442
|
{
|
|
422
443
|
elevation: 0,
|
|
423
444
|
sx: {
|
|
@@ -427,8 +448,8 @@ function LoginReportContent() {
|
|
|
427
448
|
mb: 2
|
|
428
449
|
},
|
|
429
450
|
children: [
|
|
430
|
-
/* @__PURE__ */ jsx(
|
|
431
|
-
|
|
451
|
+
/* @__PURE__ */ jsx(TableContainer_default, { children: /* @__PURE__ */ jsxs(
|
|
452
|
+
Table_default,
|
|
432
453
|
{
|
|
433
454
|
size: "small",
|
|
434
455
|
sx: {
|
|
@@ -443,7 +464,7 @@ function LoginReportContent() {
|
|
|
443
464
|
}
|
|
444
465
|
},
|
|
445
466
|
children: [
|
|
446
|
-
/* @__PURE__ */ jsx(
|
|
467
|
+
/* @__PURE__ */ jsx(TableHead_default, { children: /* @__PURE__ */ jsx(TableRow_default, { children: [
|
|
447
468
|
{ id: "fullName", label: "User Name" },
|
|
448
469
|
{ id: "agentId", label: "User ID" },
|
|
449
470
|
{ id: "queueNames", label: "Queues" },
|
|
@@ -454,8 +475,8 @@ function LoginReportContent() {
|
|
|
454
475
|
{ id: "breakDurationFormatted", label: "Break Duration" },
|
|
455
476
|
{ id: "loginDurationFormatted", label: "Login Duration" },
|
|
456
477
|
{ id: "utilisationPct", label: "Utilisation %" }
|
|
457
|
-
].map((col) => /* @__PURE__ */ jsx(
|
|
458
|
-
|
|
478
|
+
].map((col) => /* @__PURE__ */ jsx(TableCell_default, { sx: headCellSx, children: /* @__PURE__ */ jsx(
|
|
479
|
+
TableSortLabel_default,
|
|
459
480
|
{
|
|
460
481
|
active: sortKey === col.id,
|
|
461
482
|
direction: sortKey === col.id ? sortDir : "asc",
|
|
@@ -469,10 +490,10 @@ function LoginReportContent() {
|
|
|
469
490
|
children: col.label
|
|
470
491
|
}
|
|
471
492
|
) }, col.id)) }) }),
|
|
472
|
-
/* @__PURE__ */ jsx(
|
|
493
|
+
/* @__PURE__ */ jsx(TableBody_default, { children: paginatedData.map((row, idx) => {
|
|
473
494
|
const isLoggedIn = !row.lastLogoutTime;
|
|
474
495
|
return /* @__PURE__ */ jsxs(
|
|
475
|
-
|
|
496
|
+
TableRow_default,
|
|
476
497
|
{
|
|
477
498
|
hover: true,
|
|
478
499
|
sx: {
|
|
@@ -480,10 +501,10 @@ function LoginReportContent() {
|
|
|
480
501
|
"&:hover": { backgroundColor: "#f0f7f8" }
|
|
481
502
|
},
|
|
482
503
|
children: [
|
|
483
|
-
/* @__PURE__ */ jsx(
|
|
484
|
-
/* @__PURE__ */ jsx(
|
|
485
|
-
/* @__PURE__ */ jsx(
|
|
486
|
-
|
|
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,
|
|
487
508
|
{
|
|
488
509
|
label: row.queueNames,
|
|
489
510
|
size: "small",
|
|
@@ -497,8 +518,8 @@ function LoginReportContent() {
|
|
|
497
518
|
}
|
|
498
519
|
}
|
|
499
520
|
) : "\u2014" }),
|
|
500
|
-
/* @__PURE__ */ jsx(
|
|
501
|
-
|
|
521
|
+
/* @__PURE__ */ jsx(TableCell_default, { sx: { textAlign: "center" }, children: /* @__PURE__ */ jsx(
|
|
522
|
+
Chip_default,
|
|
502
523
|
{
|
|
503
524
|
label: row.numLogins,
|
|
504
525
|
size: "small",
|
|
@@ -519,9 +540,9 @@ function LoginReportContent() {
|
|
|
519
540
|
}
|
|
520
541
|
}
|
|
521
542
|
) }),
|
|
522
|
-
/* @__PURE__ */ jsx(
|
|
523
|
-
/* @__PURE__ */ jsx(
|
|
524
|
-
|
|
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,
|
|
525
546
|
{
|
|
526
547
|
label: "LOGGED-IN",
|
|
527
548
|
size: "small",
|
|
@@ -534,29 +555,29 @@ function LoginReportContent() {
|
|
|
534
555
|
height: 20
|
|
535
556
|
}
|
|
536
557
|
}
|
|
537
|
-
) :
|
|
558
|
+
) : (0, import_dayjs.default)(row.lastLogoutTime).format("DD MMM YYYY hh:mm A") }),
|
|
538
559
|
/* @__PURE__ */ jsx(
|
|
539
|
-
|
|
560
|
+
TableCell_default,
|
|
540
561
|
{
|
|
541
562
|
sx: { fontWeight: 600, color: COLORS.blue, fontSize: "0.75rem", fontVariantNumeric: "tabular-nums" },
|
|
542
563
|
children: row.workingDurationFormatted || "\u2014"
|
|
543
564
|
}
|
|
544
565
|
),
|
|
545
566
|
/* @__PURE__ */ jsx(
|
|
546
|
-
|
|
567
|
+
TableCell_default,
|
|
547
568
|
{
|
|
548
569
|
sx: { fontWeight: 500, color: COLORS.amber, fontSize: "0.75rem", fontVariantNumeric: "tabular-nums" },
|
|
549
570
|
children: row.breakDurationFormatted || "\u2014"
|
|
550
571
|
}
|
|
551
572
|
),
|
|
552
|
-
/* @__PURE__ */ jsx(
|
|
553
|
-
/* @__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 ? (() => {
|
|
554
575
|
const pct = Math.min(row.utilisationPct, 100);
|
|
555
576
|
const barColor = pct >= 80 ? "#10b981" : pct >= 60 ? "#f59e0b" : "#ef4444";
|
|
556
577
|
const bgTint = pct >= 80 ? "#d1fae5" : pct >= 60 ? "#fef3c7" : "#fee2e2";
|
|
557
|
-
return /* @__PURE__ */ jsxs(
|
|
578
|
+
return /* @__PURE__ */ jsxs(Box_default, { sx: { display: "flex", alignItems: "center", gap: 0.8 }, children: [
|
|
558
579
|
/* @__PURE__ */ jsx(
|
|
559
|
-
|
|
580
|
+
Box_default,
|
|
560
581
|
{
|
|
561
582
|
sx: {
|
|
562
583
|
position: "relative",
|
|
@@ -567,7 +588,7 @@ function LoginReportContent() {
|
|
|
567
588
|
overflow: "hidden"
|
|
568
589
|
},
|
|
569
590
|
children: /* @__PURE__ */ jsx(
|
|
570
|
-
|
|
591
|
+
Box_default,
|
|
571
592
|
{
|
|
572
593
|
sx: {
|
|
573
594
|
width: `${pct}%`,
|
|
@@ -581,7 +602,7 @@ function LoginReportContent() {
|
|
|
581
602
|
}
|
|
582
603
|
),
|
|
583
604
|
/* @__PURE__ */ jsx(
|
|
584
|
-
|
|
605
|
+
Chip_default,
|
|
585
606
|
{
|
|
586
607
|
label: `${Math.round(pct)}%`,
|
|
587
608
|
size: "small",
|
|
@@ -608,7 +629,7 @@ function LoginReportContent() {
|
|
|
608
629
|
}
|
|
609
630
|
) }),
|
|
610
631
|
/* @__PURE__ */ jsx(
|
|
611
|
-
|
|
632
|
+
TablePagination_default,
|
|
612
633
|
{
|
|
613
634
|
component: "div",
|
|
614
635
|
count: totalCount,
|
|
@@ -627,7 +648,7 @@ function LoginReportContent() {
|
|
|
627
648
|
}
|
|
628
649
|
),
|
|
629
650
|
/* @__PURE__ */ jsxs(
|
|
630
|
-
|
|
651
|
+
Dialog_default,
|
|
631
652
|
{
|
|
632
653
|
open: dialogOpen,
|
|
633
654
|
onClose: (_e, reason) => {
|
|
@@ -646,7 +667,7 @@ function LoginReportContent() {
|
|
|
646
667
|
},
|
|
647
668
|
children: [
|
|
648
669
|
/* @__PURE__ */ jsxs(
|
|
649
|
-
|
|
670
|
+
DialogTitle_default,
|
|
650
671
|
{
|
|
651
672
|
sx: {
|
|
652
673
|
fontFamily: FONT,
|
|
@@ -659,10 +680,10 @@ function LoginReportContent() {
|
|
|
659
680
|
px: 2.5
|
|
660
681
|
},
|
|
661
682
|
children: [
|
|
662
|
-
/* @__PURE__ */ jsxs(
|
|
663
|
-
/* @__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" }),
|
|
664
685
|
/* @__PURE__ */ jsxs(
|
|
665
|
-
|
|
686
|
+
Typography_default,
|
|
666
687
|
{
|
|
667
688
|
variant: "body2",
|
|
668
689
|
sx: { fontFamily: FONT, opacity: 0.9, fontSize: "0.76rem", mt: 0.3 },
|
|
@@ -676,18 +697,18 @@ function LoginReportContent() {
|
|
|
676
697
|
}
|
|
677
698
|
)
|
|
678
699
|
] }),
|
|
679
|
-
/* @__PURE__ */ jsxs(
|
|
700
|
+
/* @__PURE__ */ jsxs(Box_default, { sx: { display: "flex", alignItems: "center", gap: 0.5 }, children: [
|
|
680
701
|
/* @__PURE__ */ jsx(
|
|
681
702
|
AppButton,
|
|
682
703
|
{
|
|
683
704
|
size: "small",
|
|
684
|
-
startIcon: /* @__PURE__ */ jsx(
|
|
705
|
+
startIcon: /* @__PURE__ */ jsx(Download_default, { sx: { fontSize: "0.85rem !important" } }),
|
|
685
706
|
onClick: async () => {
|
|
686
707
|
if (!selectedRow) return;
|
|
687
708
|
try {
|
|
688
709
|
await exportAgentLoginSessionsToExcel(selectedRow.agentId, {
|
|
689
|
-
start_date: (startDate != null ? startDate :
|
|
690
|
-
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")
|
|
691
712
|
});
|
|
692
713
|
} catch (err) {
|
|
693
714
|
setError((err == null ? void 0 : err.message) || "Failed to export Excel");
|
|
@@ -698,7 +719,7 @@ function LoginReportContent() {
|
|
|
698
719
|
}
|
|
699
720
|
),
|
|
700
721
|
/* @__PURE__ */ jsx(
|
|
701
|
-
|
|
722
|
+
IconButton_default,
|
|
702
723
|
{
|
|
703
724
|
onClick: closeDialog,
|
|
704
725
|
size: "small",
|
|
@@ -707,22 +728,22 @@ function LoginReportContent() {
|
|
|
707
728
|
backgroundColor: "rgba(255,255,255,0.1)",
|
|
708
729
|
"&:hover": { backgroundColor: "rgba(255,255,255,0.2)" }
|
|
709
730
|
},
|
|
710
|
-
children: /* @__PURE__ */ jsx(
|
|
731
|
+
children: /* @__PURE__ */ jsx(Close_default, { fontSize: "small" })
|
|
711
732
|
}
|
|
712
733
|
)
|
|
713
734
|
] })
|
|
714
735
|
]
|
|
715
736
|
}
|
|
716
737
|
),
|
|
717
|
-
/* @__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(
|
|
718
739
|
sessions.reduce((acc, s) => {
|
|
719
|
-
const dateKey = s.loginTime ?
|
|
740
|
+
const dateKey = s.loginTime ? (0, import_dayjs.default)(s.loginTime).format("DD MMM YYYY") : "Unknown Date";
|
|
720
741
|
if (!acc[dateKey]) acc[dateKey] = [];
|
|
721
742
|
acc[dateKey].push(s);
|
|
722
743
|
return acc;
|
|
723
744
|
}, {})
|
|
724
745
|
).map(([date, dateSessions]) => /* @__PURE__ */ jsxs(
|
|
725
|
-
|
|
746
|
+
Paper_default,
|
|
726
747
|
{
|
|
727
748
|
elevation: 0,
|
|
728
749
|
sx: {
|
|
@@ -734,7 +755,7 @@ function LoginReportContent() {
|
|
|
734
755
|
},
|
|
735
756
|
children: [
|
|
736
757
|
/* @__PURE__ */ jsx(
|
|
737
|
-
|
|
758
|
+
Box_default,
|
|
738
759
|
{
|
|
739
760
|
sx: {
|
|
740
761
|
px: 1.5,
|
|
@@ -743,7 +764,7 @@ function LoginReportContent() {
|
|
|
743
764
|
borderBottom: "1px solid #e4eaf0"
|
|
744
765
|
},
|
|
745
766
|
children: /* @__PURE__ */ jsx(
|
|
746
|
-
|
|
767
|
+
Typography_default,
|
|
747
768
|
{
|
|
748
769
|
sx: {
|
|
749
770
|
fontFamily: FONT,
|
|
@@ -757,9 +778,9 @@ function LoginReportContent() {
|
|
|
757
778
|
)
|
|
758
779
|
}
|
|
759
780
|
),
|
|
760
|
-
/* @__PURE__ */ jsxs(
|
|
781
|
+
/* @__PURE__ */ jsxs(Box_default, { sx: { px: 1.5, py: 1 }, children: [
|
|
761
782
|
/* @__PURE__ */ jsxs(
|
|
762
|
-
|
|
783
|
+
Box_default,
|
|
763
784
|
{
|
|
764
785
|
sx: {
|
|
765
786
|
display: "flex",
|
|
@@ -771,7 +792,7 @@ function LoginReportContent() {
|
|
|
771
792
|
},
|
|
772
793
|
children: [
|
|
773
794
|
/* @__PURE__ */ jsx(
|
|
774
|
-
|
|
795
|
+
Typography_default,
|
|
775
796
|
{
|
|
776
797
|
sx: {
|
|
777
798
|
flex: 1,
|
|
@@ -786,7 +807,7 @@ function LoginReportContent() {
|
|
|
786
807
|
}
|
|
787
808
|
),
|
|
788
809
|
/* @__PURE__ */ jsx(
|
|
789
|
-
|
|
810
|
+
Typography_default,
|
|
790
811
|
{
|
|
791
812
|
sx: {
|
|
792
813
|
flex: 1,
|
|
@@ -807,16 +828,16 @@ function LoginReportContent() {
|
|
|
807
828
|
const isOpenSession = !s.logoutTime;
|
|
808
829
|
const isEditing = s.sessionId != null && regularizeSessionId === s.sessionId;
|
|
809
830
|
return /* @__PURE__ */ jsxs(
|
|
810
|
-
|
|
831
|
+
Box_default,
|
|
811
832
|
{
|
|
812
833
|
sx: {
|
|
813
834
|
py: 0.6,
|
|
814
835
|
borderBottom: i < dateSessions.length - 1 ? "1px dashed #e8ecf0" : "none"
|
|
815
836
|
},
|
|
816
837
|
children: [
|
|
817
|
-
/* @__PURE__ */ jsxs(
|
|
838
|
+
/* @__PURE__ */ jsxs(Box_default, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
|
|
818
839
|
/* @__PURE__ */ jsxs(
|
|
819
|
-
|
|
840
|
+
Typography_default,
|
|
820
841
|
{
|
|
821
842
|
component: "span",
|
|
822
843
|
sx: {
|
|
@@ -831,13 +852,13 @@ function LoginReportContent() {
|
|
|
831
852
|
},
|
|
832
853
|
children: [
|
|
833
854
|
/* @__PURE__ */ jsx("span", { style: { fontSize: "0.9rem" }, children: "\u2199" }),
|
|
834
|
-
s.loginTime ?
|
|
855
|
+
s.loginTime ? (0, import_dayjs.default)(s.loginTime).format("DD MMM YYYY h:mm:ss A") : "Missing"
|
|
835
856
|
]
|
|
836
857
|
}
|
|
837
858
|
),
|
|
838
|
-
/* @__PURE__ */ jsxs(
|
|
859
|
+
/* @__PURE__ */ jsxs(Box_default, { sx: { flex: 1, display: "flex", alignItems: "center", justifyContent: "space-between", gap: 0.4 }, children: [
|
|
839
860
|
/* @__PURE__ */ jsxs(
|
|
840
|
-
|
|
861
|
+
Typography_default,
|
|
841
862
|
{
|
|
842
863
|
component: "span",
|
|
843
864
|
sx: {
|
|
@@ -851,7 +872,7 @@ function LoginReportContent() {
|
|
|
851
872
|
},
|
|
852
873
|
children: [
|
|
853
874
|
/* @__PURE__ */ jsx("span", { style: { fontSize: "0.9rem" }, children: "\u2197" }),
|
|
854
|
-
s.logoutTime ?
|
|
875
|
+
s.logoutTime ? (0, import_dayjs.default)(s.logoutTime).format("DD MMM YYYY h:mm:ss A") : "Missing"
|
|
855
876
|
]
|
|
856
877
|
}
|
|
857
878
|
),
|
|
@@ -860,8 +881,8 @@ function LoginReportContent() {
|
|
|
860
881
|
{
|
|
861
882
|
permissions: [SDK_PERMISSIONS.REPORTS_AGENT_LOGIN_MANAGE],
|
|
862
883
|
showFallback: false,
|
|
863
|
-
children: /* @__PURE__ */ jsx(
|
|
864
|
-
|
|
884
|
+
children: /* @__PURE__ */ jsx(Tooltip_default, { title: "Regularize \u2014 set logout time", children: /* @__PURE__ */ jsx(
|
|
885
|
+
IconButton_default,
|
|
865
886
|
{
|
|
866
887
|
size: "small",
|
|
867
888
|
onClick: () => startRegularize(s),
|
|
@@ -871,7 +892,7 @@ function LoginReportContent() {
|
|
|
871
892
|
borderRadius: "6px",
|
|
872
893
|
"&:hover": { backgroundColor: "rgba(26,95,108,0.08)" }
|
|
873
894
|
},
|
|
874
|
-
children: /* @__PURE__ */ jsx(
|
|
895
|
+
children: /* @__PURE__ */ jsx(EditCalendar_default, { sx: { fontSize: "1.05rem" } })
|
|
875
896
|
}
|
|
876
897
|
) })
|
|
877
898
|
}
|
|
@@ -879,7 +900,7 @@ function LoginReportContent() {
|
|
|
879
900
|
] })
|
|
880
901
|
] }),
|
|
881
902
|
isEditing && /* @__PURE__ */ jsxs(
|
|
882
|
-
|
|
903
|
+
Box_default,
|
|
883
904
|
{
|
|
884
905
|
sx: {
|
|
885
906
|
mt: 1,
|
|
@@ -890,7 +911,7 @@ function LoginReportContent() {
|
|
|
890
911
|
},
|
|
891
912
|
children: [
|
|
892
913
|
/* @__PURE__ */ jsx(
|
|
893
|
-
|
|
914
|
+
Typography_default,
|
|
894
915
|
{
|
|
895
916
|
sx: {
|
|
896
917
|
fontFamily: FONT,
|
|
@@ -909,8 +930,8 @@ function LoginReportContent() {
|
|
|
909
930
|
{
|
|
910
931
|
value: regularizeTime,
|
|
911
932
|
onChange: (val) => setRegularizeTime(val),
|
|
912
|
-
minDateTime: s.loginTime ?
|
|
913
|
-
maxDateTime:
|
|
933
|
+
minDateTime: s.loginTime ? (0, import_dayjs.default)(s.loginTime) : void 0,
|
|
934
|
+
maxDateTime: (0, import_dayjs.default)(),
|
|
914
935
|
ampm: true,
|
|
915
936
|
format: "DD MMM YYYY hh:mm A",
|
|
916
937
|
slotProps: {
|
|
@@ -931,8 +952,8 @@ function LoginReportContent() {
|
|
|
931
952
|
}
|
|
932
953
|
}
|
|
933
954
|
),
|
|
934
|
-
regularizeError && /* @__PURE__ */ jsx(
|
|
935
|
-
/* @__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: [
|
|
936
957
|
/* @__PURE__ */ jsx(
|
|
937
958
|
AppButton,
|
|
938
959
|
{
|
|
@@ -949,7 +970,7 @@ function LoginReportContent() {
|
|
|
949
970
|
size: "small",
|
|
950
971
|
onClick: saveRegularize,
|
|
951
972
|
disabled: regularizing,
|
|
952
|
-
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" } }),
|
|
953
974
|
children: regularizing ? "Saving\u2026" : "Regularize"
|
|
954
975
|
}
|
|
955
976
|
)
|
|
@@ -966,7 +987,7 @@ function LoginReportContent() {
|
|
|
966
987
|
]
|
|
967
988
|
},
|
|
968
989
|
date
|
|
969
|
-
)) }) : /* @__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" }) }) })
|
|
970
991
|
]
|
|
971
992
|
}
|
|
972
993
|
)
|
|
@@ -978,4 +999,4 @@ var loginReport_default = LoginReport;
|
|
|
978
999
|
export {
|
|
979
1000
|
loginReport_default as default
|
|
980
1001
|
};
|
|
981
|
-
//# sourceMappingURL=loginReport-
|
|
1002
|
+
//# sourceMappingURL=loginReport-YIVBJVJD.mjs.map
|