ahs-cti 0.0.12 → 0.0.13
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-RPK4BHPY.mjs → agentDetailReport-PQ5GRWS7.mjs} +12 -12
- package/dist/{agentPerformanceReport-RXIQTI5H.mjs → agentPerformanceReport-JIM2ESX3.mjs} +15 -15
- package/dist/{auditReport-V7POOLIX.mjs → auditReport-S5JBBS4M.mjs} +5 -5
- package/dist/{callHistory-GVSZZWRS.mjs → callHistory-P5EYJFLL.mjs} +10 -10
- package/dist/{campaigns-CWPMYAUR.mjs → campaigns-E4EDJ4HQ.mjs} +13 -13
- package/dist/{caroQualityAuditDashboard-PDXTFXYP.mjs → caroQualityAuditDashboard-U5SURE3Y.mjs} +2 -2
- package/dist/{caroVoiceAI-OUTAAIFE.mjs → caroVoiceAI-ALM7PXA4.mjs} +2 -2
- package/dist/{cdrReport-QLNTT2MO.mjs → cdrReport-ZODSASDX.mjs} +16 -16
- package/dist/{chunk-HAOFUADN.mjs → chunk-3W5XAE5U.mjs} +2 -2
- package/dist/{chunk-NDZDJWXY.mjs → chunk-7MLXSPRD.mjs} +3 -3
- package/dist/{chunk-UK5UJ3W4.mjs → chunk-A3UIDKO2.mjs} +2 -2
- package/dist/{chunk-M7FJYZF6.mjs → chunk-BZDLXMEG.mjs} +2 -2
- package/dist/{chunk-W3ECDLUB.mjs → chunk-FJIO34QJ.mjs} +2 -2
- package/dist/{chunk-ZSRD3ZXF.mjs → chunk-GU67CHVR.mjs} +2 -2
- package/dist/{chunk-VII5JNA6.mjs → chunk-H5FOGKNG.mjs} +2 -2
- package/dist/{chunk-GTI2ZVQX.mjs → chunk-JLTFPMGH.mjs} +2 -2
- package/dist/{chunk-GFVR3HLK.mjs → chunk-JRCGL7H6.mjs} +2 -2
- package/dist/{chunk-N3FLHBMU.mjs → chunk-KMHK7F5B.mjs} +2 -2
- package/dist/{chunk-CR7EWU65.mjs → chunk-M4M3243J.mjs} +4 -4
- package/dist/{chunk-FU56QPY2.mjs → chunk-NPMPNTMQ.mjs} +11 -11
- package/dist/{chunk-677RFPP5.mjs → chunk-QSHKNSVY.mjs} +2 -2
- package/dist/{chunk-YNPYNYN4.mjs → chunk-RKH7ICVQ.mjs} +2 -2
- package/dist/{chunk-SUECXTCT.mjs → chunk-RPGIS6VI.mjs} +3 -3
- package/dist/{chunk-45MLTWV7.mjs → chunk-SG26PWKV.mjs} +2 -2
- package/dist/{chunk-DCVTH63P.mjs → chunk-SYOIXQFQ.mjs} +7 -7
- package/dist/{chunk-H22TUCN3.mjs → chunk-U6GXXCCQ.mjs} +2 -2
- package/dist/{chunk-Y4PAUTZ4.mjs → chunk-VZXMSMLL.mjs} +3 -3
- package/dist/{chunk-635IIVZE.mjs → chunk-YNU5BQBL.mjs} +2 -2
- package/dist/{chunk-QWHKQ4R6.mjs → chunk-Z2DNBN53.mjs} +3 -3
- package/dist/{chunk-ERSNXW5X.mjs → chunk-ZMO5SOQ4.mjs} +1543 -2176
- package/dist/chunk-ZMO5SOQ4.mjs.map +1 -0
- package/dist/index.js +5954 -6646
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +30 -30
- package/dist/{liveStatus-P6DDTKXZ.mjs → liveStatus-HFFNXGEY.mjs} +6 -6
- package/dist/{loginReport-TRMBSVCK.mjs → loginReport-N6C37XY2.mjs} +12 -12
- package/dist/{managementDashboard-7BF5BKMA.mjs → managementDashboard-PDXSO6BB.mjs} +137 -129
- package/dist/managementDashboard-PDXSO6BB.mjs.map +1 -0
- package/dist/{qualityAuditDashboard-L2KJETAG.mjs → qualityAuditDashboard-BIDWBG3T.mjs} +2 -2
- package/dist-react/index.js +114 -114
- package/dist-react/index.js.map +1 -1
- package/dist-react/index.mjs +1 -1
- package/dist-react/{managementDashboard-GKFAZQ3D.mjs → managementDashboard-PFGNWB7F.mjs} +115 -118
- package/dist-react/managementDashboard-PFGNWB7F.mjs.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-ERSNXW5X.mjs.map +0 -1
- package/dist/managementDashboard-7BF5BKMA.mjs.map +0 -1
- package/dist-react/managementDashboard-GKFAZQ3D.mjs.map +0 -1
- /package/dist/{agentDetailReport-RPK4BHPY.mjs.map → agentDetailReport-PQ5GRWS7.mjs.map} +0 -0
- /package/dist/{agentPerformanceReport-RXIQTI5H.mjs.map → agentPerformanceReport-JIM2ESX3.mjs.map} +0 -0
- /package/dist/{auditReport-V7POOLIX.mjs.map → auditReport-S5JBBS4M.mjs.map} +0 -0
- /package/dist/{callHistory-GVSZZWRS.mjs.map → callHistory-P5EYJFLL.mjs.map} +0 -0
- /package/dist/{campaigns-CWPMYAUR.mjs.map → campaigns-E4EDJ4HQ.mjs.map} +0 -0
- /package/dist/{caroQualityAuditDashboard-PDXTFXYP.mjs.map → caroQualityAuditDashboard-U5SURE3Y.mjs.map} +0 -0
- /package/dist/{caroVoiceAI-OUTAAIFE.mjs.map → caroVoiceAI-ALM7PXA4.mjs.map} +0 -0
- /package/dist/{cdrReport-QLNTT2MO.mjs.map → cdrReport-ZODSASDX.mjs.map} +0 -0
- /package/dist/{chunk-HAOFUADN.mjs.map → chunk-3W5XAE5U.mjs.map} +0 -0
- /package/dist/{chunk-NDZDJWXY.mjs.map → chunk-7MLXSPRD.mjs.map} +0 -0
- /package/dist/{chunk-UK5UJ3W4.mjs.map → chunk-A3UIDKO2.mjs.map} +0 -0
- /package/dist/{chunk-M7FJYZF6.mjs.map → chunk-BZDLXMEG.mjs.map} +0 -0
- /package/dist/{chunk-W3ECDLUB.mjs.map → chunk-FJIO34QJ.mjs.map} +0 -0
- /package/dist/{chunk-ZSRD3ZXF.mjs.map → chunk-GU67CHVR.mjs.map} +0 -0
- /package/dist/{chunk-VII5JNA6.mjs.map → chunk-H5FOGKNG.mjs.map} +0 -0
- /package/dist/{chunk-GTI2ZVQX.mjs.map → chunk-JLTFPMGH.mjs.map} +0 -0
- /package/dist/{chunk-GFVR3HLK.mjs.map → chunk-JRCGL7H6.mjs.map} +0 -0
- /package/dist/{chunk-N3FLHBMU.mjs.map → chunk-KMHK7F5B.mjs.map} +0 -0
- /package/dist/{chunk-CR7EWU65.mjs.map → chunk-M4M3243J.mjs.map} +0 -0
- /package/dist/{chunk-FU56QPY2.mjs.map → chunk-NPMPNTMQ.mjs.map} +0 -0
- /package/dist/{chunk-677RFPP5.mjs.map → chunk-QSHKNSVY.mjs.map} +0 -0
- /package/dist/{chunk-YNPYNYN4.mjs.map → chunk-RKH7ICVQ.mjs.map} +0 -0
- /package/dist/{chunk-SUECXTCT.mjs.map → chunk-RPGIS6VI.mjs.map} +0 -0
- /package/dist/{chunk-45MLTWV7.mjs.map → chunk-SG26PWKV.mjs.map} +0 -0
- /package/dist/{chunk-DCVTH63P.mjs.map → chunk-SYOIXQFQ.mjs.map} +0 -0
- /package/dist/{chunk-H22TUCN3.mjs.map → chunk-U6GXXCCQ.mjs.map} +0 -0
- /package/dist/{chunk-Y4PAUTZ4.mjs.map → chunk-VZXMSMLL.mjs.map} +0 -0
- /package/dist/{chunk-635IIVZE.mjs.map → chunk-YNU5BQBL.mjs.map} +0 -0
- /package/dist/{chunk-QWHKQ4R6.mjs.map → chunk-Z2DNBN53.mjs.map} +0 -0
- /package/dist/{liveStatus-P6DDTKXZ.mjs.map → liveStatus-HFFNXGEY.mjs.map} +0 -0
- /package/dist/{loginReport-TRMBSVCK.mjs.map → loginReport-N6C37XY2.mjs.map} +0 -0
- /package/dist/{qualityAuditDashboard-L2KJETAG.mjs.map → qualityAuditDashboard-BIDWBG3T.mjs.map} +0 -0
package/dist-react/index.js
CHANGED
|
@@ -21419,19 +21419,23 @@ var managementDashboard_exports = {};
|
|
|
21419
21419
|
__export(managementDashboard_exports, {
|
|
21420
21420
|
default: () => managementDashboard_default
|
|
21421
21421
|
});
|
|
21422
|
-
function DirectionCard({ title, data }) {
|
|
21422
|
+
function DirectionCard({ title, data, icon }) {
|
|
21423
21423
|
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Paper, { sx: cardPaper, children: [
|
|
21424
21424
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: cardHeader, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: labelSx2, children: title }) }),
|
|
21425
21425
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { p: 1.5 }, children: [
|
|
21426
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.
|
|
21427
|
-
|
|
21428
|
-
{
|
|
21429
|
-
|
|
21430
|
-
|
|
21426
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "center", justifyContent: "center", gap: 1, mb: 1.2 }, children: [
|
|
21427
|
+
icon,
|
|
21428
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontFamily: "'Barlow Condensed', sans-serif", fontSize: 32, fontWeight: 800, color: C4.navy, lineHeight: 1 }, children: data.total.toLocaleString() })
|
|
21429
|
+
] }),
|
|
21430
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: { display: "grid", gridTemplateColumns: "1fr 1fr", borderTop: `2px solid ${C4.s3}`, pt: 1 }, children: [
|
|
21431
|
+
{ label: "ANSWERED", value: data.answered, pct: data.answered_pct },
|
|
21432
|
+
{ label: "UNANSWERED", value: data.unanswered, pct: data.unanswered_pct }
|
|
21433
|
+
].map(({ label, value, pct }, idx) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: __spreadValues({ textAlign: "center" }, idx === 0 && { borderRight: `1px solid ${C4.b1}` }), children: [
|
|
21431
21434
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 10, fontWeight: 700, letterSpacing: 0.5, color: C4.t3, mb: 0.3 }, children: label }),
|
|
21432
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "baseline", gap: 0.5 }, children: [
|
|
21433
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize:
|
|
21434
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.
|
|
21435
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "baseline", justifyContent: "center", gap: 0.5 }, children: [
|
|
21436
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 15, fontWeight: 700, color: C4.blue }, children: value.toLocaleString() }),
|
|
21437
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 11, color: C4.t3 }, children: "|" }),
|
|
21438
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Typography, { sx: { fontSize: 12, fontWeight: 600, color: C4.blue }, children: [
|
|
21435
21439
|
pct.toFixed(1),
|
|
21436
21440
|
"%"
|
|
21437
21441
|
] })
|
|
@@ -21441,70 +21445,77 @@ function DirectionCard({ title, data }) {
|
|
|
21441
21445
|
] });
|
|
21442
21446
|
}
|
|
21443
21447
|
function QueueCallsCard({ data }) {
|
|
21448
|
+
const maxCount = data.reduce((m, q) => Math.max(m, q.call_count), 0) || 1;
|
|
21444
21449
|
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Paper, { sx: cardPaper, children: [
|
|
21445
21450
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: cardHeader, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: labelSx2, children: "Queue Wise Calls" }) }),
|
|
21446
21451
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { p: 1.5 }, children: [
|
|
21447
21452
|
data.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 12, color: C4.t3, textAlign: "center", py: 2 }, children: "No data" }),
|
|
21448
|
-
data.map((q, i) =>
|
|
21449
|
-
|
|
21450
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.
|
|
21451
|
-
|
|
21453
|
+
data.map((q, i) => {
|
|
21454
|
+
const pct = Math.max(6, q.call_count / maxCount * 100);
|
|
21455
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { mb: 0.7, "&:last-child": { mb: 0 } }, children: [
|
|
21456
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { display: "flex", justifyContent: "space-between", alignItems: "center", mb: 0.3 }, children: [
|
|
21457
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 12, fontWeight: 600, color: C4.t2 }, children: q.queue_name }),
|
|
21458
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 13, fontWeight: 700, color: C4.blue }, children: q.call_count })
|
|
21459
|
+
] }),
|
|
21460
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: { height: 6, background: C4.s3, borderRadius: 3, overflow: "hidden" }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: { height: "100%", width: `${pct}%`, background: i === 0 ? C4.blue : "#7fb3bd", borderRadius: 3 } }) })
|
|
21461
|
+
] }, q.queue_name);
|
|
21462
|
+
})
|
|
21452
21463
|
] })
|
|
21453
21464
|
] });
|
|
21454
21465
|
}
|
|
21455
|
-
function
|
|
21456
|
-
|
|
21457
|
-
|
|
21458
|
-
|
|
21459
|
-
|
|
21460
|
-
|
|
21461
|
-
|
|
21462
|
-
|
|
21463
|
-
|
|
21464
|
-
|
|
21465
|
-
|
|
21466
|
-
|
|
21467
|
-
|
|
21468
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.
|
|
21469
|
-
|
|
21470
|
-
|
|
21471
|
-
|
|
21472
|
-
|
|
21473
|
-
|
|
21466
|
+
function AbandonedCallbackCard({ data }) {
|
|
21467
|
+
const numCellSx = { p: 1, textAlign: "center" };
|
|
21468
|
+
const subCellSx = { p: 1, textAlign: "center", borderTop: `1px solid ${C4.b1}` };
|
|
21469
|
+
const subLabelSx = { fontSize: 10, fontWeight: 600, color: C4.t3, mb: 0.3, lineHeight: 1.2 };
|
|
21470
|
+
const subRowSx = { display: "flex", alignItems: "baseline", justifyContent: "center", gap: 0.5 };
|
|
21471
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Paper, { sx: cardPaper, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { display: "grid", gridTemplateColumns: "1fr 1fr" }, children: [
|
|
21472
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: __spreadProps(__spreadValues({}, cardHeader), { borderRight: `1px solid ${C4.b1}` }), children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: labelSx2, children: "Abandoned Patients" }) }),
|
|
21473
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: cardHeader, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: labelSx2, children: "Avg Callback Duration" }) }),
|
|
21474
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: __spreadProps(__spreadValues({}, numCellSx), { borderRight: `1px solid ${C4.b1}` }), children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontFamily: "'Barlow Condensed', sans-serif", fontSize: 30, fontWeight: 800, color: C4.navy, lineHeight: 1 }, children: data.total.toLocaleString() }) }),
|
|
21475
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: numCellSx, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontFamily: "'JetBrains Mono', monospace", fontSize: 24, fontWeight: 700, color: C4.navy, letterSpacing: 1 }, children: data.avg_callback_duration }) }),
|
|
21476
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: __spreadProps(__spreadValues({}, subCellSx), { borderRight: `1px solid ${C4.b1}` }), children: [
|
|
21477
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: subLabelSx, children: "Called Back Patients" }),
|
|
21478
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: subRowSx, children: [
|
|
21479
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 13, fontWeight: 700, color: C4.blue }, children: data.called_back }),
|
|
21480
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 11, color: C4.t3 }, children: "|" }),
|
|
21481
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Typography, { sx: { fontSize: 12, fontWeight: 600, color: C4.blue }, children: [
|
|
21482
|
+
data.called_back_pct.toFixed(1),
|
|
21483
|
+
"%"
|
|
21484
|
+
] })
|
|
21485
|
+
] })
|
|
21486
|
+
] }),
|
|
21487
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: subCellSx, children: [
|
|
21488
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: subLabelSx, children: "To be Called Patients" }),
|
|
21489
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: subRowSx, children: [
|
|
21490
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 13, fontWeight: 700, color: C4.blue }, children: data.to_call }),
|
|
21491
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 11, color: C4.t3 }, children: "|" }),
|
|
21492
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Typography, { sx: { fontSize: 12, fontWeight: 600, color: C4.blue }, children: [
|
|
21493
|
+
data.to_call_pct.toFixed(1),
|
|
21474
21494
|
"%"
|
|
21475
21495
|
] })
|
|
21476
|
-
] }
|
|
21496
|
+
] })
|
|
21477
21497
|
] })
|
|
21478
|
-
] });
|
|
21479
|
-
}
|
|
21480
|
-
function AvgCallbackCard({ duration }) {
|
|
21481
|
-
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Paper, { sx: cardPaper, children: [
|
|
21482
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: cardHeader, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: labelSx2, children: "Avg Callback Duration" }) }),
|
|
21483
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: { p: 1.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontFamily: "'JetBrains Mono', monospace", fontSize: 26, fontWeight: 700, color: C4.navy, mt: 1, letterSpacing: 1 }, children: duration }) })
|
|
21484
|
-
] });
|
|
21498
|
+
] }) });
|
|
21485
21499
|
}
|
|
21486
21500
|
function IvrCard({ data }) {
|
|
21487
21501
|
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Paper, { sx: cardPaper, children: [
|
|
21488
21502
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: cardHeader, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: labelSx2, children: "IVR Patients" }) }),
|
|
21489
21503
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { p: 1.5 }, children: [
|
|
21490
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontFamily: "'Barlow Condensed', sans-serif", fontSize: 30, fontWeight: 800, color: C4.navy, lineHeight: 1, mb: 1 }, children: data.total.toLocaleString() }),
|
|
21491
|
-
[
|
|
21504
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontFamily: "'Barlow Condensed', sans-serif", fontSize: 30, fontWeight: 800, color: C4.navy, lineHeight: 1, mb: 1, textAlign: "center" }, children: data.total.toLocaleString() }),
|
|
21505
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: { display: "grid", gridTemplateColumns: "1fr 1fr", borderTop: `2px solid ${C4.s3}`, pt: 1 }, children: [
|
|
21492
21506
|
{ label: "Called Back", value: data.called_back, pct: data.called_back_pct },
|
|
21493
21507
|
{ label: "To Be Called", value: data.to_call, pct: data.to_call_pct }
|
|
21494
|
-
].map(({ label, value, pct }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: {
|
|
21495
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.
|
|
21496
|
-
|
|
21497
|
-
|
|
21498
|
-
|
|
21499
|
-
|
|
21500
|
-
|
|
21501
|
-
|
|
21502
|
-
|
|
21503
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Typography, { sx: { fontSize: 11, fontWeight: 700, color: "#48bb78", display: "inline" }, children: [
|
|
21504
|
-
pct.toFixed(1),
|
|
21505
|
-
"%"
|
|
21508
|
+
].map(({ label, value, pct }, idx) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: __spreadValues({ textAlign: "center", px: 0.5 }, idx === 0 && { borderRight: `1px solid ${C4.b1}` }), children: [
|
|
21509
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 10, fontWeight: 600, color: C4.t3, mb: 0.3, lineHeight: 1.2 }, children: label }),
|
|
21510
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "baseline", justifyContent: "center", gap: 0.5 }, children: [
|
|
21511
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 13, fontWeight: 700, color: C4.blue }, children: value }),
|
|
21512
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 11, color: C4.t3 }, children: "|" }),
|
|
21513
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Typography, { sx: { fontSize: 12, fontWeight: 600, color: C4.blue }, children: [
|
|
21514
|
+
pct.toFixed(1),
|
|
21515
|
+
"%"
|
|
21516
|
+
] })
|
|
21506
21517
|
] })
|
|
21507
|
-
] }, label))
|
|
21518
|
+
] }, label)) })
|
|
21508
21519
|
] })
|
|
21509
21520
|
] });
|
|
21510
21521
|
}
|
|
@@ -21523,7 +21534,6 @@ function ManagementDashboardContent() {
|
|
|
21523
21534
|
const [loading, setLoading] = (0, import_react34.useState)(false);
|
|
21524
21535
|
const [error, setError] = (0, import_react34.useState)("");
|
|
21525
21536
|
const [repeatedSearch, setRepeatedSearch] = (0, import_react34.useState)("");
|
|
21526
|
-
const [chartDir, setChartDir] = (0, import_react34.useState)("inbound");
|
|
21527
21537
|
const chartRef = (0, import_react34.useRef)(null);
|
|
21528
21538
|
const fetchDashboard = (0, import_react34.useCallback)(async () => {
|
|
21529
21539
|
var _a2, _b;
|
|
@@ -21581,7 +21591,7 @@ function ManagementDashboardContent() {
|
|
|
21581
21591
|
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
21582
21592
|
ctx.drawImage(img, 0, 0);
|
|
21583
21593
|
const a = document.createElement("a");
|
|
21584
|
-
a.download = `
|
|
21594
|
+
a.download = `hourly_chart.png`;
|
|
21585
21595
|
a.href = canvas.toDataURL("image/png");
|
|
21586
21596
|
a.click();
|
|
21587
21597
|
};
|
|
@@ -21639,15 +21649,14 @@ function ManagementDashboardContent() {
|
|
|
21639
21649
|
!loading && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { px: { xs: 1, md: 2 }, py: 1.5 }, children: [
|
|
21640
21650
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: {
|
|
21641
21651
|
display: "grid",
|
|
21642
|
-
gridTemplateColumns: { xs: "1fr", sm: "repeat(2, 1fr)", md: "repeat(3, 1fr)", lg: "1.3fr 1.2fr 1.
|
|
21652
|
+
gridTemplateColumns: { xs: "1fr", sm: "repeat(2, 1fr)", md: "repeat(3, 1fr)", lg: "1.3fr 1.2fr 1.9fr 1.3fr 1.1fr" },
|
|
21643
21653
|
gap: 1.2,
|
|
21644
21654
|
mb: 1.2
|
|
21645
21655
|
}, children: [
|
|
21646
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(DirectionCard, { title: "Inbound Calls", data: data.inbound }),
|
|
21656
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(DirectionCard, { title: "Inbound Calls", data: data.inbound, icon: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_PhoneCallback.default, { sx: numIconSx }) }),
|
|
21647
21657
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(QueueCallsCard, { data: data.queue_calls }),
|
|
21648
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
21649
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
21650
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(DirectionCard, { title: "Outbound Calls", data: data.outbound }),
|
|
21658
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(AbandonedCallbackCard, { data: data.abandoned }),
|
|
21659
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(DirectionCard, { title: "Outbound Calls", data: data.outbound, icon: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_PhoneForwarded.default, { sx: numIconSx }) }),
|
|
21651
21660
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(IvrCard, { data: data.ivr })
|
|
21652
21661
|
] }),
|
|
21653
21662
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: {
|
|
@@ -21696,11 +21705,11 @@ function ManagementDashboardContent() {
|
|
|
21696
21705
|
] }),
|
|
21697
21706
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Paper, { sx: cardPaper, children: [
|
|
21698
21707
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: cardHeader, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: labelSx2, children: "Inbound Average Waiting" }) }),
|
|
21699
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: { p: 1.5, display: "grid", gridTemplateColumns: "1fr 1fr 1fr",
|
|
21708
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: { p: 1.5, display: "grid", gridTemplateColumns: "1fr 1fr 1fr", mt: 0.5 }, children: [
|
|
21700
21709
|
{ label: "Waiting Time", value: data.waiting.avg_wait_time },
|
|
21701
21710
|
{ label: "Language Selection", value: data.waiting.avg_lang_selection },
|
|
21702
21711
|
{ label: "Queue Waiting", value: data.waiting.avg_queue_wait }
|
|
21703
|
-
].map(({ label, value }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { textAlign: "center" }, children: [
|
|
21712
|
+
].map(({ label, value }, idx) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: __spreadValues({ textAlign: "center", px: 0.5 }, idx < 2 && { borderRight: `1px solid ${C4.b1}` }), children: [
|
|
21704
21713
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 10, fontWeight: 600, color: C4.t3, mb: 0.5 }, children: label }),
|
|
21705
21714
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: __spreadProps(__spreadValues({}, monoSx2), { fontSize: 18, color: C4.blue }), children: value })
|
|
21706
21715
|
] }, label)) })
|
|
@@ -21728,41 +21737,26 @@ function ManagementDashboardContent() {
|
|
|
21728
21737
|
] }),
|
|
21729
21738
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { display: "grid", gridTemplateColumns: { xs: "1fr", lg: "1fr 1fr" }, gap: 1.2 }, children: [
|
|
21730
21739
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Paper, { sx: cardPaper, children: [
|
|
21731
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: __spreadProps(__spreadValues({}, cardHeader), { flexWrap: "wrap", gap: 1 }), children: [
|
|
21740
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: __spreadProps(__spreadValues({}, cardHeader), { flexWrap: "wrap", gap: 1, justifyContent: "space-between" }), children: [
|
|
21732
21741
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { children: [
|
|
21733
21742
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: labelSx2, children: "Avg Hour Wise Inbound Calls vs Agents" }),
|
|
21734
21743
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Stack, { direction: "row", spacing: 1.5, sx: { mt: 0.5 }, children: [
|
|
21735
|
-
{ color: "#
|
|
21736
|
-
{ color: "#
|
|
21737
|
-
{ color: "#
|
|
21744
|
+
{ color: "#F2B51D", label: "Answered" },
|
|
21745
|
+
{ color: "#9fc4cb", label: "Abandoned" },
|
|
21746
|
+
{ color: "#14505b", label: "Agents" }
|
|
21738
21747
|
].map(({ color, label }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "center", gap: 0.5 }, children: [
|
|
21739
21748
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: { width: 12, height: 12, borderRadius: "2px", background: color } }),
|
|
21740
21749
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: { fontSize: 11, color: C4.t3 }, children: label })
|
|
21741
21750
|
] }, label)) })
|
|
21742
21751
|
] }),
|
|
21743
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.
|
|
21744
|
-
|
|
21745
|
-
|
|
21746
|
-
|
|
21747
|
-
|
|
21748
|
-
|
|
21749
|
-
|
|
21750
|
-
|
|
21751
|
-
children: [
|
|
21752
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.FormControlLabel, { value: "inbound", control: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Radio, { size: "small" }), label: "Inbound" }),
|
|
21753
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.FormControlLabel, { value: "outbound", control: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Radio, { size: "small" }), label: "Outbound" })
|
|
21754
|
-
]
|
|
21755
|
-
}
|
|
21756
|
-
),
|
|
21757
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
21758
|
-
import_material24.Typography,
|
|
21759
|
-
{
|
|
21760
|
-
onClick: downloadChart,
|
|
21761
|
-
sx: { fontSize: 11, color: "#3182ce", cursor: "pointer", border: "1px solid #bee3f8", borderRadius: "4px", px: 1, py: 0.3 },
|
|
21762
|
-
children: "\u2B07 DOWNLOAD"
|
|
21763
|
-
}
|
|
21764
|
-
)
|
|
21765
|
-
] })
|
|
21752
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { sx: { display: "flex", flexDirection: "column", alignItems: "flex-end", gap: 0.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
21753
|
+
import_material24.Typography,
|
|
21754
|
+
{
|
|
21755
|
+
onClick: downloadChart,
|
|
21756
|
+
sx: { fontSize: 11, color: C4.blue, cursor: "pointer", border: `1px solid ${C4.b2}`, borderRadius: "4px", px: 1, py: 0.3 },
|
|
21757
|
+
children: "\u2B07 DOWNLOAD"
|
|
21758
|
+
}
|
|
21759
|
+
) })
|
|
21766
21760
|
] }),
|
|
21767
21761
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Box, { ref: chartRef, sx: { p: 1.5, height: 260 }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_recharts2.ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_recharts2.ComposedChart, { data: hourlyData, margin: { top: 4, right: 30, left: -20, bottom: 0 }, barGap: 1, children: [
|
|
21768
21762
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_recharts2.CartesianGrid, { strokeDasharray: "3 3", stroke: C4.b2, vertical: false }),
|
|
@@ -21773,16 +21767,19 @@ function ManagementDashboardContent() {
|
|
|
21773
21767
|
import_recharts2.Tooltip,
|
|
21774
21768
|
{
|
|
21775
21769
|
contentStyle: { fontSize: 11, borderRadius: 6, border: `1px solid ${C4.b2}` },
|
|
21776
|
-
formatter: (v, n) =>
|
|
21770
|
+
formatter: (v, n) => {
|
|
21771
|
+
const s2 = String(n != null ? n : "");
|
|
21772
|
+
return [v, s2.charAt(0).toUpperCase() + s2.slice(1)];
|
|
21773
|
+
}
|
|
21777
21774
|
}
|
|
21778
21775
|
),
|
|
21779
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_recharts2.Bar, { yAxisId: "left", dataKey: "answered", fill: "#
|
|
21780
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_recharts2.Bar, { yAxisId: "left", dataKey: "abandoned", fill: "#
|
|
21781
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_recharts2.Line, { yAxisId: "right", type: "monotone", dataKey: "agents", stroke: "#
|
|
21776
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_recharts2.Bar, { yAxisId: "left", dataKey: "answered", fill: "#F2B51D", radius: [2, 2, 0, 0], maxBarSize: 14 }),
|
|
21777
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_recharts2.Bar, { yAxisId: "left", dataKey: "abandoned", fill: "#9fc4cb", radius: [2, 2, 0, 0], maxBarSize: 14 }),
|
|
21778
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_recharts2.Line, { yAxisId: "right", type: "monotone", dataKey: "agents", stroke: "#14505b", strokeWidth: 1.5, dot: { r: 2, fill: "#14505b" } })
|
|
21782
21779
|
] }) }) })
|
|
21783
21780
|
] }),
|
|
21784
21781
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Paper, { sx: cardPaper, children: [
|
|
21785
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: cardHeader, children: [
|
|
21782
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_material24.Box, { sx: __spreadProps(__spreadValues({}, cardHeader), { justifyContent: "space-between" }), children: [
|
|
21786
21783
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Typography, { sx: labelSx2, children: "Repeated Calls" }),
|
|
21787
21784
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_material24.Chip, { label: data.repeated_calls.length, size: "small", sx: { background: C4.rlt, color: C4.red, fontWeight: 700, fontSize: 11 } })
|
|
21788
21785
|
] }),
|
|
@@ -21824,7 +21821,7 @@ function ManagementDashboardContent() {
|
|
|
21824
21821
|
] })
|
|
21825
21822
|
] }) });
|
|
21826
21823
|
}
|
|
21827
|
-
var import_react34, import_material24, import_dayjs7, import_LocalizationProvider6, import_AdapterDayjs6, import_recharts2, import_Search5, import_FileDownload4, import_Refresh7, import_jsx_runtime26, C4, headSx, cellSx, monoSx2, labelSx2, cardPaper, cardHeader, EMPTY, ManagementDashboard, managementDashboard_default;
|
|
21824
|
+
var import_react34, import_material24, import_dayjs7, import_LocalizationProvider6, import_AdapterDayjs6, import_recharts2, import_Search5, import_FileDownload4, import_Refresh7, import_PhoneCallback, import_PhoneForwarded, import_jsx_runtime26, C4, headSx, cellSx, monoSx2, labelSx2, cardPaper, cardHeader, numIconSx, EMPTY, ManagementDashboard, managementDashboard_default;
|
|
21828
21825
|
var init_managementDashboard = __esm({
|
|
21829
21826
|
"call-control-sdk/lib/pages/managementDashboard/index.tsx"() {
|
|
21830
21827
|
"use strict";
|
|
@@ -21837,6 +21834,8 @@ var init_managementDashboard = __esm({
|
|
|
21837
21834
|
import_Search5 = __toESM(require("@mui/icons-material/Search"));
|
|
21838
21835
|
import_FileDownload4 = __toESM(require("@mui/icons-material/FileDownload"));
|
|
21839
21836
|
import_Refresh7 = __toESM(require("@mui/icons-material/Refresh"));
|
|
21837
|
+
import_PhoneCallback = __toESM(require("@mui/icons-material/PhoneCallback"));
|
|
21838
|
+
import_PhoneForwarded = __toESM(require("@mui/icons-material/PhoneForwarded"));
|
|
21840
21839
|
init_PageHeader();
|
|
21841
21840
|
init_ReportFilterBar();
|
|
21842
21841
|
init_AppButton();
|
|
@@ -21845,32 +21844,33 @@ var init_managementDashboard = __esm({
|
|
|
21845
21844
|
init_useManagementDashboard();
|
|
21846
21845
|
import_jsx_runtime26 = require("react/jsx-runtime");
|
|
21847
21846
|
C4 = {
|
|
21848
|
-
navy: "#
|
|
21849
|
-
blue: "#
|
|
21850
|
-
green: "#
|
|
21851
|
-
amber: "#
|
|
21852
|
-
red: "#
|
|
21853
|
-
teal: "#
|
|
21847
|
+
navy: "#14505b",
|
|
21848
|
+
blue: "#1A5F6C",
|
|
21849
|
+
green: "#00A550",
|
|
21850
|
+
amber: "#C47C00",
|
|
21851
|
+
red: "#F05A22",
|
|
21852
|
+
teal: "#1A5F6C",
|
|
21854
21853
|
surface: "#fff",
|
|
21855
|
-
s2: "#
|
|
21856
|
-
s3: "#
|
|
21857
|
-
b1: "rgba(
|
|
21858
|
-
b2: "rgba(
|
|
21859
|
-
t1: "#
|
|
21860
|
-
t2: "#
|
|
21861
|
-
t3: "#
|
|
21862
|
-
blt: "#
|
|
21854
|
+
s2: "#f5f9fa",
|
|
21855
|
+
s3: "#e7f1f2",
|
|
21856
|
+
b1: "rgba(26,95,108,.08)",
|
|
21857
|
+
b2: "rgba(26,95,108,.16)",
|
|
21858
|
+
t1: "#1a2e33",
|
|
21859
|
+
t2: "#3d5a60",
|
|
21860
|
+
t3: "#6b8a90",
|
|
21861
|
+
blt: "#e3f1f3",
|
|
21863
21862
|
glt: "#e4f6ef",
|
|
21864
21863
|
alt: "#fdf3e0",
|
|
21865
|
-
rlt: "#
|
|
21866
|
-
tlt: "#
|
|
21864
|
+
rlt: "#fdeae3",
|
|
21865
|
+
tlt: "#e3f1f3"
|
|
21867
21866
|
};
|
|
21868
21867
|
headSx = __spreadProps(__spreadValues({}, headCellSx2), { py: 1, px: 1.5 });
|
|
21869
21868
|
cellSx = { fontSize: 12, py: 0.8, px: 1.5, borderBottom: `1px solid ${C4.b1}` };
|
|
21870
21869
|
monoSx2 = { fontFamily: "'JetBrains Mono', monospace", fontSize: 12, fontWeight: 700 };
|
|
21871
21870
|
labelSx2 = { fontSize: 11, fontWeight: 700, letterSpacing: 0.7, textTransform: "uppercase", color: C4.t2 };
|
|
21872
21871
|
cardPaper = { background: C4.surface, border: `1px solid #dce3ef`, borderRadius: "6px", overflow: "hidden", boxShadow: "0 1px 4px rgba(0,0,0,.09)" };
|
|
21873
|
-
cardHeader = { px: 1.5, py: 1, background: C4.s2, borderBottom: `1px solid ${C4.b1}`, display: "flex", alignItems: "center", justifyContent: "
|
|
21872
|
+
cardHeader = { px: 1.5, py: 1, background: C4.s2, borderBottom: `1px solid ${C4.b1}`, display: "flex", alignItems: "center", justifyContent: "center" };
|
|
21873
|
+
numIconSx = { fontSize: 28, color: C4.blue };
|
|
21874
21874
|
EMPTY = {
|
|
21875
21875
|
inbound: { total: 0, answered: 0, unanswered: 0, answered_pct: 0, unanswered_pct: 0 },
|
|
21876
21876
|
outbound: { total: 0, answered: 0, unanswered: 0, answered_pct: 0, unanswered_pct: 0 },
|