@djb25/digit-ui-module-ekyc 1.0.64 → 1.0.66

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.
@@ -1,10 +1,10 @@
1
1
  import React, { useState, useRef, useEffect, useMemo, createContext, useContext, isValidElement, cloneElement, createElement, useCallback, useReducer, Fragment } from 'react';
2
2
  import { useTranslation } from 'react-i18next';
3
3
  import { useHistory, Link, useParams, useLocation, useRouteMatch, Switch, Route, Redirect } from 'react-router-dom';
4
- import { PersonIcon, EmployeeModuleCard, FaChartBar, MdDownloadIcon, Loader, InboxLinks, Card, Table, HomeIcon, TextInput, Header, SubmitBar, DetailsCard, FilterForm, FilterFormField, Dropdown, Label, CustomTooltip, CardLabelError, SearchField, RadioButtons, InboxComposer, CardSubHeader, StatusTable, Row, GenericFileIcon, CheckBox, ActionBar, Menu, LinkButton, Toast, EditIcon, UploadFile, FormComposer, VerticalTimeline, Modal, Close, CollapsibleCardPage, DatePicker, AppContainer, ModuleHeader, ArrowLeft, PrivateRoute, LayoutWrapper, CardHeader, CardText, CitizenHomeCard, DocumentIcon } from '@djb25/digit-ui-react-components';
4
+ import { PersonIcon, EmployeeModuleCard, FaChartBar, MdDownloadIcon, Loader, InboxLinks, Card, Table, HomeIcon, TextInput, Header, SubmitBar, DetailsCard, FilterForm, FilterFormField, Dropdown, FaDatabase, FaFileAlt, Label, CustomTooltip, CardLabelError, SearchField, RadioButtons, InboxComposer, CardSubHeader, StatusTable, Row, GenericFileIcon, CheckBox, ActionBar, Menu, LinkButton, Toast, EditIcon, UploadFile, FormComposer, VerticalTimeline, Modal, Close, CollapsibleCardPage, DatePicker, AppContainer, ModuleHeader, ArrowLeft, PrivateRoute, LayoutWrapper, CardHeader, CardText, CitizenHomeCard, DocumentIcon } from '@djb25/digit-ui-react-components';
5
5
  import * as Chartjs from 'chart.js/auto';
6
6
  import Chartjs__default, { Chart } from 'chart.js/auto';
7
- import { FaUsers, FaCheckCircle, FaClock, FaChartLine } from 'react-icons/fa';
7
+ import { FaCheckCircle, FaBuilding, FaUser, FaClock, FaChartLine, FaUsers } from 'react-icons/fa';
8
8
 
9
9
  const EKYCCard = () => {
10
10
  var _Digit$SessionStorage, _Digit$SessionStorage2;
@@ -469,32 +469,36 @@ const StatusCards = _ref => {
469
469
  const legendItems = [{
470
470
  color: "#77B6EA",
471
471
  label: t("EKYC_TOTAL"),
472
- value: countData === null || countData === void 0 ? void 0 : countData.total
472
+ value: (countData === null || countData === void 0 ? void 0 : countData.total) || 0
473
473
  }, {
474
- color: "#77B6EA",
474
+ color: "#4C8BF5",
475
+ label: t("EKYC_ASSIGNED"),
476
+ value: (countData === null || countData === void 0 ? void 0 : countData.totalAssignments) || 0
477
+ }, {
478
+ color: "#2E8B57",
475
479
  label: t("EKYC_COMPLETED"),
476
- value: countData === null || countData === void 0 ? void 0 : countData.completed
480
+ value: (countData === null || countData === void 0 ? void 0 : countData.completed) || 0
477
481
  }, {
478
482
  color: "#0c2a52",
479
483
  label: t("EKYC_PENDING"),
480
- value: countData === null || countData === void 0 ? void 0 : countData.pending
484
+ value: (countData === null || countData === void 0 ? void 0 : countData.pending) || 0
481
485
  }, {
482
- color: "#c8ddf5",
486
+ color: "#8B5CF6",
483
487
  label: t("EKYC_SUBMITTED_BY_VENDORS"),
484
- value: countData === null || countData === void 0 ? void 0 : countData.submittedCount
488
+ value: (countData === null || countData === void 0 ? void 0 : countData.submittedCount) || 0
485
489
  }, {
486
- color: "#c8ddf5",
490
+ color: "#F59E0B",
487
491
  label: t("EKYC_SUBMITTED_BY_CITIZEN"),
488
492
  value: (countData === null || countData === void 0 ? void 0 : countData.selfEkycCount) || 0
489
493
  }, {
490
- color: "#c8ddf5",
494
+ color: "#DC3545",
491
495
  label: t("EKYC_REJECTED"),
492
496
  value: (countData === null || countData === void 0 ? void 0 : countData.rejected) || 0
493
497
  }];
494
498
  return /*#__PURE__*/React.createElement("div", {
495
499
  className: "ekyc-employee-container"
496
500
  }, /*#__PURE__*/React.createElement("div", {
497
- className: "status-cards-wrapper"
501
+ className: "status-panel"
498
502
  }, /*#__PURE__*/React.createElement("div", {
499
503
  className: "status-cards-header"
500
504
  }, /*#__PURE__*/React.createElement("div", {
@@ -580,18 +584,6 @@ const StatusCards = _ref => {
580
584
  handleCustomDownload();
581
585
  }
582
586
  }, t("APPLY") || "Apply")))))), /*#__PURE__*/React.createElement("div", {
583
- className: "status-panels-grid"
584
- }, /*#__PURE__*/React.createElement("div", {
585
- className: "status-panel"
586
- }, /*#__PURE__*/React.createElement("div", {
587
- className: "panel-header"
588
- }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
589
- className: "panel-title"
590
- }, t("EKYC_STATUS_BREAKDOWN") || "Status Breakdown"), /*#__PURE__*/React.createElement("div", {
591
- className: "panel-subtitle"
592
- }, t("EKYC_VERIFICATION_LIFECYCLE") || "Verification lifecycle")), /*#__PURE__*/React.createElement("div", {
593
- className: "completion-badge"
594
- }, efficiency, "% Complete")), /*#__PURE__*/React.createElement("div", {
595
587
  className: "status-breakdown-content"
596
588
  }, /*#__PURE__*/React.createElement("div", {
597
589
  className: "chart-wrapper"
@@ -611,7 +603,10 @@ const StatusCards = _ref => {
611
603
  className: "status-boxes"
612
604
  }, legendItems.map(item => /*#__PURE__*/React.createElement("div", {
613
605
  className: "status-box",
614
- key: item.label
606
+ key: item.label,
607
+ style: {
608
+ "--status-color": item.color
609
+ }
615
610
  }, /*#__PURE__*/React.createElement("div", {
616
611
  className: "status-box-top"
617
612
  }, /*#__PURE__*/React.createElement("span", {
@@ -623,43 +618,33 @@ const StatusCards = _ref => {
623
618
  className: "status-name"
624
619
  }, item.label)), /*#__PURE__*/React.createElement("div", {
625
620
  className: "status-box-value"
626
- }, formatNumber(item.value))))))))));
621
+ }, formatNumber(item.value))))))));
627
622
  };
628
623
 
629
624
  const Dashboard = () => {
630
625
  const tenantId = Digit.ULBService.getCurrentTenantId();
631
- const _Digit$Hooks$ekyc$use = Digit.Hooks.ekyc.useEkycSurveyorDashboard({}, {
632
- tenantId,
633
- offset: 0,
634
- limit: 10
635
- }, {
636
- enabled: !!tenantId
637
- }),
638
- isLoading = _Digit$Hooks$ekyc$use.isLoading,
639
- dashboardData = _Digit$Hooks$ekyc$use.data;
640
- const _Digit$Hooks$ekyc$use2 = Digit.Hooks.ekyc.useEkycAssignmentProgress({
626
+ const _Digit$Hooks$ekyc$use = Digit.Hooks.ekyc.useEkycAssignmentProgress({
641
627
  tenantId,
642
628
  allVendorsDetailed: true
643
629
  }, {
644
630
  enabled: true,
645
631
  keepPreviousData: true
646
632
  }),
647
- progressData = _Digit$Hooks$ekyc$use2.data,
648
- isProgressLoading = _Digit$Hooks$ekyc$use2.isLoading;
633
+ progressData = _Digit$Hooks$ekyc$use.data,
634
+ isProgressLoading = _Digit$Hooks$ekyc$use.isLoading;
649
635
  const countData = useMemo(() => {
650
- const info = (dashboardData === null || dashboardData === void 0 ? void 0 : dashboardData.dashboardInfo) || {};
651
636
  return {
652
- total: info.total || 0,
637
+ total: (progressData === null || progressData === void 0 ? void 0 : progressData.totalKnosInSystem) || 0,
653
638
  completed: (progressData === null || progressData === void 0 ? void 0 : progressData.submittedKnos) + (progressData === null || progressData === void 0 ? void 0 : progressData.selfEkycCount) || 0,
654
- pending: info.total - (progressData === null || progressData === void 0 ? void 0 : progressData.submittedKnos) - (progressData === null || progressData === void 0 ? void 0 : progressData.selfEkycCount) || 0,
639
+ pending: (progressData === null || progressData === void 0 ? void 0 : progressData.pendingKnos) || 0,
655
640
  rejected: (progressData === null || progressData === void 0 ? void 0 : progressData.rejectedKnos) || 0,
656
- active: (progressData === null || progressData === void 0 ? void 0 : progressData.active) || 0,
641
+ totalAssignments: (progressData === null || progressData === void 0 ? void 0 : progressData.totalAssignments) || 0,
657
642
  submittedCount: (progressData === null || progressData === void 0 ? void 0 : progressData.submittedKnos) || 0,
658
643
  selfEkycCount: (progressData === null || progressData === void 0 ? void 0 : progressData.selfEkycCount) || 0,
659
644
  overallProgressPercent: (progressData === null || progressData === void 0 ? void 0 : progressData.overallProgressPercent) || 0
660
645
  };
661
- }, [dashboardData, progressData]);
662
- return isProgressLoading || isLoading ? /*#__PURE__*/React.createElement(Loader, null) : /*#__PURE__*/React.createElement(StatusCards, {
646
+ }, [progressData]);
647
+ return isProgressLoading ? /*#__PURE__*/React.createElement(Loader, null) : /*#__PURE__*/React.createElement(StatusCards, {
663
648
  countData: countData
664
649
  });
665
650
  };
@@ -1077,483 +1062,6 @@ const Filter = _ref => {
1077
1062
  })));
1078
1063
  };
1079
1064
 
1080
- const ekycMockData = {
1081
- topKpis: {
1082
- totalWaterConnections: 2990996,
1083
- totalEkycCompleted: 2460810,
1084
- totalPending: 530186,
1085
- totalRejected: 224324,
1086
- agencyEkycCompleted: 2352069,
1087
- citizenSelfEkycCompleted: 638927,
1088
- todaysEkyc: 54684,
1089
- successRate: 82,
1090
- rejectionPercentage: 7
1091
- },
1092
- executiveMetrics: {
1093
- totalSurveyors: 186,
1094
- totalSupervisors: 56,
1095
- activeJurisdictions: 27,
1096
- todaysGrowth: 2.8,
1097
- selfEkycAdoption: 38,
1098
- avgApprovalTime: "2.3 Days",
1099
- riskZones: 7,
1100
- escalationsOpen: 18
1101
- },
1102
- alerts: [{
1103
- title: "North East District pending increased",
1104
- priority: "high",
1105
- change: "+22%",
1106
- district: "North East District"
1107
- }, {
1108
- title: "Agency 2 self eKYC adoption low",
1109
- priority: "medium",
1110
- change: "-12%",
1111
- district: "West District"
1112
- }, {
1113
- title: "Escalation raised in NWS Bhera Enclave",
1114
- priority: "high",
1115
- change: "+18",
1116
- district: "Outer North"
1117
- }, {
1118
- title: "Approval rate improved in East District",
1119
- priority: "low",
1120
- change: "+9%",
1121
- district: "East District"
1122
- }],
1123
- heatmapData: [{
1124
- district: "Outer North",
1125
- intensity: 82
1126
- }, {
1127
- district: "East District",
1128
- intensity: 48
1129
- }, {
1130
- district: "South District",
1131
- intensity: 67
1132
- }, {
1133
- district: "North East District",
1134
- intensity: 74
1135
- }],
1136
- dailyTrend: [{
1137
- label: "Mon",
1138
- completed: 270689,
1139
- pending: 491305,
1140
- rejected: 145810
1141
- }, {
1142
- label: "Tue",
1143
- completed: 442945,
1144
- pending: 466563,
1145
- rejected: 157026
1146
- }, {
1147
- label: "Wed",
1148
- completed: 615202,
1149
- pending: 441821,
1150
- rejected: 168243
1151
- }, {
1152
- label: "Thu",
1153
- completed: 812067,
1154
- pending: 413545,
1155
- rejected: 179459
1156
- }, {
1157
- label: "Fri",
1158
- completed: 1033540,
1159
- pending: 381733,
1160
- rejected: 190675
1161
- }, {
1162
- label: "Sat",
1163
- completed: 1279621,
1164
- pending: 346388,
1165
- rejected: 201891
1166
- }, {
1167
- label: "Sun",
1168
- completed: 1574918,
1169
- pending: 303973,
1170
- rejected: 213107
1171
- }],
1172
- selfVsAgency: [{
1173
- label: "Agency1",
1174
- agency: 201457,
1175
- citizen: 758414
1176
- }, {
1177
- label: "Agency 2",
1178
- agency: 164302,
1179
- citizen: 919322
1180
- }, {
1181
- label: "Agency 3",
1182
- agency: 328451,
1183
- citizen: 541772
1184
- }],
1185
- pendingVsCompleted: [{
1186
- label: "Agency1",
1187
- completed: 201457,
1188
- pending: 201457
1189
- }, {
1190
- label: "Agency 2",
1191
- completed: 164302,
1192
- pending: 164302
1193
- }, {
1194
- label: "Agency 3",
1195
- completed: 328451,
1196
- pending: 77278
1197
- }],
1198
- rejectionAnalysis: [{
1199
- label: "Agency1",
1200
- rejected: 71990,
1201
- success: 72
1202
- }, {
1203
- label: "Agency 2",
1204
- rejected: 81271,
1205
- success: 77
1206
- }, {
1207
- label: "Agency 3",
1208
- rejected: 71063,
1209
- success: 86
1210
- }],
1211
- vendors: [{
1212
- id: 1,
1213
- name: "Agency1",
1214
- assignedConnections: 959871,
1215
- completedEkyc: 201457,
1216
- selfEkyc: 758414,
1217
- pending: 201457,
1218
- rejected: 71990,
1219
- inactiveDemand: 1161328,
1220
- successRate: 72,
1221
- progress: 21,
1222
- supervisors: 23,
1223
- activeSurveyors: 64,
1224
- jurisdictions: ["Outer North", "North West District", "Model Town AC 18", "Cluster 2", "North District"],
1225
- dailyPerformance: [{
1226
- day: "Mon",
1227
- completed: 16116,
1228
- pending: 196084,
1229
- rejected: 53272
1230
- }, {
1231
- day: "Tue",
1232
- completed: 26189,
1233
- pending: 192727,
1234
- rejected: 55072
1235
- }, {
1236
- day: "Wed",
1237
- completed: 38276,
1238
- pending: 188698,
1239
- rejected: 57232
1240
- }, {
1241
- day: "Thu",
1242
- completed: 52378,
1243
- pending: 183997,
1244
- rejected: 59751
1245
- }, {
1246
- day: "Fri",
1247
- completed: 68495,
1248
- pending: 178625,
1249
- rejected: 62631
1250
- }, {
1251
- day: "Sat",
1252
- completed: 84611,
1253
- pending: 173253,
1254
- rejected: 65510
1255
- }, {
1256
- day: "Sun",
1257
- completed: 100728,
1258
- pending: 167880,
1259
- rejected: 68390
1260
- }],
1261
- zones: [{
1262
- agency: "Agency1",
1263
- district: "Outer North",
1264
- cluster: "NWS Bhera Enclave",
1265
- assignedConnections: 102669,
1266
- location: "102669",
1267
- zroOffice: "NWS Bhera Enclave",
1268
- assemblyConstituency: "Part of Mundka AC 08",
1269
- gpsLocation: null,
1270
- distanceFromFarthestPoint: null,
1271
- activeDemand: 202197,
1272
- pppZones: 15800,
1273
- inactiveDemand: 35265,
1274
- districtwiseInactiveTotal: 237462
1275
- }, {
1276
- agency: "Agency1",
1277
- district: "Outer North",
1278
- cluster: "Narela",
1279
- assignedConnections: 99528,
1280
- location: "99528",
1281
- zroOffice: "Narela",
1282
- assemblyConstituency: "Narela AC 01",
1283
- activeDemand: 99528,
1284
- pppZones: 19465,
1285
- inactiveDemand: 35265
1286
- }, {
1287
- agency: "Agency1",
1288
- district: "North West District",
1289
- cluster: "Rohini AC 13",
1290
- assignedConnections: 71041,
1291
- location: "71041",
1292
- zroOffice: "Rohini",
1293
- assemblyConstituency: "Rithala AC 06",
1294
- activeDemand: 247949,
1295
- pppZones: 28975,
1296
- inactiveDemand: 49494
1297
- }, {
1298
- agency: "Agency1",
1299
- district: "Mangol Puri AC 12",
1300
- cluster: "Model Town AC 18",
1301
- assignedConnections: 68957,
1302
- location: "68957",
1303
- zroOffice: "Central North District",
1304
- assemblyConstituency: "Ashok Vihar",
1305
- activeDemand: 231216,
1306
- pppZones: 16627,
1307
- inactiveDemand: 36915
1308
- }, {
1309
- agency: "Agency1",
1310
- district: "Timarpur AC 03",
1311
- cluster: "Cluster 2",
1312
- assignedConnections: 34862,
1313
- location: "34862",
1314
- zroOffice: "Old Delhi District",
1315
- assemblyConstituency: "Pratap Nagar",
1316
- activeDemand: 99694,
1317
- pppZones: 20011,
1318
- inactiveDemand: 48011
1319
- }, {
1320
- agency: "Agency1",
1321
- district: "Bali Maran AC 22",
1322
- cluster: "North District",
1323
- assignedConnections: 110507,
1324
- location: "110507",
1325
- zroOffice: "Burari",
1326
- assemblyConstituency: "Burari AC 2",
1327
- activeDemand: 178815,
1328
- pppZones: 14700,
1329
- inactiveDemand: 31772
1330
- }]
1331
- }, {
1332
- id: 2,
1333
- name: "Agency 2",
1334
- assignedConnections: 1083624,
1335
- completedEkyc: 164302,
1336
- selfEkyc: 919322,
1337
- pending: 164302,
1338
- rejected: 81271,
1339
- inactiveDemand: 1247926,
1340
- successRate: 77,
1341
- progress: 15,
1342
- supervisors: 14,
1343
- activeSurveyors: 64,
1344
- jurisdictions: ["West District", "Janak Puri", "South District"],
1345
- dailyPerformance: [{
1346
- day: "Mon",
1347
- completed: 13144,
1348
- pending: 159920,
1349
- rejected: 60140
1350
- }, {
1351
- day: "Tue",
1352
- completed: 21359,
1353
- pending: 157182,
1354
- rejected: 62172
1355
- }, {
1356
- day: "Wed",
1357
- completed: 31217,
1358
- pending: 153896,
1359
- rejected: 64610
1360
- }, {
1361
- day: "Thu",
1362
- completed: 42718,
1363
- pending: 150062,
1364
- rejected: 67454
1365
- }, {
1366
- day: "Fri",
1367
- completed: 55862,
1368
- pending: 145681,
1369
- rejected: 70705
1370
- }, {
1371
- day: "Sat",
1372
- completed: 69006,
1373
- pending: 141299,
1374
- rejected: 73956
1375
- }, {
1376
- day: "Sun",
1377
- completed: 82151,
1378
- pending: 136918,
1379
- rejected: 77207
1380
- }],
1381
- zones: [{
1382
- agency: "Agency 2",
1383
- district: "West District",
1384
- cluster: "Rajouri Garden AC 27",
1385
- assignedConnections: 84506,
1386
- location: "84506",
1387
- zroOffice: "Rajouri Garden AC 27",
1388
- assemblyConstituency: "Punjabi Bagh",
1389
- activeDemand: 470766,
1390
- pppZones: 13269,
1391
- inactiveDemand: 64564
1392
- }, {
1393
- agency: "Agency 2",
1394
- district: "West District",
1395
- cluster: "Tilak Nagar AC 29",
1396
- assignedConnections: 51428,
1397
- location: "51428",
1398
- zroOffice: "Tilak Nagar AC 29",
1399
- assemblyConstituency: "Paschim Vihar",
1400
- activeDemand: 470766,
1401
- pppZones: 6298,
1402
- inactiveDemand: 64564
1403
- }, {
1404
- agency: "Agency 2",
1405
- district: "Part of Uttam Nagar & Vikas puri",
1406
- cluster: "Janak Puri",
1407
- assignedConnections: 163041,
1408
- location: "163041",
1409
- zroOffice: "Janakpuri",
1410
- assemblyConstituency: "Janakpuri AC 30",
1411
- activeDemand: 369772,
1412
- pppZones: 25729,
1413
- inactiveDemand: 60534
1414
- }, {
1415
- agency: "Agency 2",
1416
- district: "South District",
1417
- cluster: "South District",
1418
- assignedConnections: 52803,
1419
- location: "52803",
1420
- zroOffice: "R K Puram",
1421
- assemblyConstituency: "Malviya Nagar AC 43",
1422
- activeDemand: 243086,
1423
- pppZones: 9678,
1424
- inactiveDemand: 39204
1425
- }, {
1426
- agency: "Agency 2",
1427
- district: "South District",
1428
- cluster: "Vasant Kunz",
1429
- assignedConnections: 58997,
1430
- location: "58997",
1431
- zroOffice: "Vasant Kunj",
1432
- assemblyConstituency: "Vasant Kunj",
1433
- activeDemand: 243086,
1434
- pppZones: 6691,
1435
- inactiveDemand: 39204
1436
- }]
1437
- }, {
1438
- id: 3,
1439
- name: "Agency 3",
1440
- assignedConnections: 947501,
1441
- completedEkyc: 328451,
1442
- selfEkyc: 541772,
1443
- pending: 77278,
1444
- rejected: 71063,
1445
- inactiveDemand: 1016841,
1446
- successRate: 86,
1447
- progress: 78,
1448
- supervisors: 19,
1449
- activeSurveyors: 58,
1450
- jurisdictions: ["East District", "North East District", "South East District", "MNWS"],
1451
- dailyPerformance: [{
1452
- day: "Mon",
1453
- completed: 44120,
1454
- pending: 130002,
1455
- rejected: 5711
1456
- }, {
1457
- day: "Tue",
1458
- completed: 58221,
1459
- pending: 121998,
1460
- rejected: 7104
1461
- }, {
1462
- day: "Wed",
1463
- completed: 70218,
1464
- pending: 113201,
1465
- rejected: 8842
1466
- }, {
1467
- day: "Thu",
1468
- completed: 85124,
1469
- pending: 104006,
1470
- rejected: 9911
1471
- }, {
1472
- day: "Fri",
1473
- completed: 102315,
1474
- pending: 94441,
1475
- rejected: 11214
1476
- }, {
1477
- day: "Sat",
1478
- completed: 121009,
1479
- pending: 85218,
1480
- rejected: 12902
1481
- }, {
1482
- day: "Sun",
1483
- completed: 142118,
1484
- pending: 77278,
1485
- rejected: 14101
1486
- }],
1487
- zones: [{
1488
- agency: "Agency 3",
1489
- district: "East District",
1490
- cluster: "Mayur Vihar",
1491
- assignedConnections: 72326,
1492
- location: "72326",
1493
- zroOffice: "Mayur Vihar",
1494
- assemblyConstituency: "Trilokpuri AC 55",
1495
- activeDemand: 328564,
1496
- pppZones: 9691,
1497
- inactiveDemand: 52477
1498
- }, {
1499
- agency: "Agency 3",
1500
- district: "East District",
1501
- cluster: "Yojna Vihar",
1502
- assignedConnections: 40651,
1503
- location: "40651",
1504
- zroOffice: "Yojna Vihar",
1505
- assemblyConstituency: "Vishwas Nagar AC 59",
1506
- activeDemand: 328564,
1507
- pppZones: 10097,
1508
- inactiveDemand: 52477
1509
- }, {
1510
- agency: "Agency 3",
1511
- district: "North East District",
1512
- cluster: "GTB Enclave",
1513
- assignedConnections: 80453,
1514
- location: "80453",
1515
- zroOffice: "GTB Enclave",
1516
- assemblyConstituency: "Seemapuri AC 63",
1517
- activeDemand: 323753,
1518
- pppZones: 10671,
1519
- inactiveDemand: 50575
1520
- }, {
1521
- agency: "Agency 3",
1522
- district: "North East District",
1523
- cluster: "Yamuna Vihar",
1524
- assignedConnections: 90599,
1525
- location: "90599",
1526
- zroOffice: "Yamuna Vihar",
1527
- assemblyConstituency: "Mustafabad AC 69",
1528
- activeDemand: 323753,
1529
- pppZones: 18185,
1530
- inactiveDemand: 50575
1531
- }, {
1532
- agency: "Agency 3",
1533
- district: "South East District",
1534
- cluster: "Kalkaji AC 51",
1535
- assignedConnections: 29188,
1536
- location: "29188",
1537
- zroOffice: "Kalkaji AC 51",
1538
- assemblyConstituency: "Saket",
1539
- activeDemand: 136102,
1540
- pppZones: 3675,
1541
- inactiveDemand: 23977
1542
- }, {
1543
- agency: "Agency 3",
1544
- district: "South East District",
1545
- cluster: "Okhla",
1546
- assignedConnections: 18473,
1547
- location: "18473",
1548
- zroOffice: "Sarita Vihar/Okhla",
1549
- assemblyConstituency: "Okhla AC 54",
1550
- activeDemand: 136102,
1551
- pppZones: 3703,
1552
- inactiveDemand: 23977
1553
- }]
1554
- }]
1555
- };
1556
-
1557
1065
  const downloadSurveyorPDF = function (_ref) {
1558
1066
  let rows = _ref.rows,
1559
1067
  surveyorName = _ref.surveyorName,
@@ -1876,21 +1384,30 @@ const downloadVendorPDF = function (_ref3) {
1876
1384
  };
1877
1385
 
1878
1386
  const VendorDetailsCard = () => {
1879
- var _Digit$SessionStorage, _vendor$owner, _vendor$owner2, _vendorName$charAt;
1387
+ var _vendor$owner, _vendor$owner2, _vendorName$charAt;
1880
1388
  const _useTranslation = useTranslation(),
1881
1389
  t = _useTranslation.t;
1882
1390
  const history = useHistory();
1883
1391
  const tenantId = Digit.ULBService.getCurrentTenantId() || "dl.djb";
1884
1392
  const _useParams = useParams(),
1885
1393
  vendorId = _useParams.vendorId;
1886
- const _Digit$Hooks$fsm$useD = Digit.Hooks.fsm.useDsoSearch(tenantId, {
1887
- status: "ACTIVE"
1888
- }, {
1889
- enabled: !!tenantId,
1890
- staleTime: 300000
1394
+ const _Digit$Hooks$fsm$useV = Digit.Hooks.fsm.useVendorSearch({
1395
+ tenantId,
1396
+ filters: {
1397
+ status: "ACTIVE",
1398
+ ids: vendorId
1399
+ },
1400
+ config: {
1401
+ enabled: !!tenantId,
1402
+ staleTime: 300000
1403
+ }
1891
1404
  }),
1892
- vendorSearchResponse = _Digit$Hooks$fsm$useD.data,
1893
- isVendorSearchLoading = _Digit$Hooks$fsm$useD.isLoading;
1405
+ _Digit$Hooks$fsm$useV2 = _Digit$Hooks$fsm$useV.data,
1406
+ _Digit$Hooks$fsm$useV3 = _Digit$Hooks$fsm$useV2 === void 0 ? {} : _Digit$Hooks$fsm$useV2,
1407
+ _Digit$Hooks$fsm$useV4 = _Digit$Hooks$fsm$useV3.vendor,
1408
+ _Digit$Hooks$fsm$useV5 = _Digit$Hooks$fsm$useV4 === void 0 ? [] : _Digit$Hooks$fsm$useV4,
1409
+ vendor = _Digit$Hooks$fsm$useV5[0],
1410
+ isVendorSearchLoading = _Digit$Hooks$fsm$useV.isLoading;
1894
1411
  const _Digit$Hooks$fsm$useS = Digit.Hooks.fsm.useSupervisorSearch(tenantId, {
1895
1412
  status: "ACTIVE"
1896
1413
  }, {
@@ -1899,39 +1416,6 @@ const VendorDetailsCard = () => {
1899
1416
  }),
1900
1417
  supervisorSearchResponse = _Digit$Hooks$fsm$useS.data,
1901
1418
  isSupervisorSearchLoading = _Digit$Hooks$fsm$useS.isLoading;
1902
- const loggedInUser = (_Digit$SessionStorage = Digit.SessionStorage.get("User")) === null || _Digit$SessionStorage === void 0 ? void 0 : _Digit$SessionStorage.info;
1903
- const vendor = useMemo(() => {
1904
- const userUuid = loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.uuid;
1905
- const userMobile = loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.mobileNumber;
1906
- const matchesUser = v => {
1907
- var _v$owner, _v$owner2, _v$owner3;
1908
- const ownerUuid = ((_v$owner = v.owner) === null || _v$owner === void 0 ? void 0 : _v$owner.uuid) || ((_v$owner2 = v.owner) === null || _v$owner2 === void 0 ? void 0 : _v$owner2.id);
1909
- const ownerMobile = ((_v$owner3 = v.owner) === null || _v$owner3 === void 0 ? void 0 : _v$owner3.mobileNumber) || v.mobileNumber;
1910
- return userUuid && ownerUuid === userUuid || userMobile && ownerMobile === userMobile;
1911
- };
1912
- if (vendorSearchResponse) {
1913
- if (vendorId) {
1914
- const matched = vendorSearchResponse.find(v => {
1915
- var _v$dsoDetails, _v$dsoDetails2;
1916
- return ((_v$dsoDetails = v.dsoDetails) === null || _v$dsoDetails === void 0 ? void 0 : _v$dsoDetails.id) === vendorId || ((_v$dsoDetails2 = v.dsoDetails) === null || _v$dsoDetails2 === void 0 ? void 0 : _v$dsoDetails2.vendorId) === vendorId || v.id === vendorId || v.vendorId === vendorId;
1917
- });
1918
- if (matched) return matched.dsoDetails || matched;
1919
- } else {
1920
- const matched = vendorSearchResponse.find(v => matchesUser(v.dsoDetails || v));
1921
- if (matched) return matched.dsoDetails || matched;
1922
- if (vendorSearchResponse.length > 0) return vendorSearchResponse[0].dsoDetails || vendorSearchResponse[0];
1923
- }
1924
- }
1925
- if (vendorId) {
1926
- return ekycMockData.vendors.find(v => v.id === Number(vendorId) || v.name === vendorId) || ekycMockData.vendors[0];
1927
- } else {
1928
- const matchedMock = ekycMockData.vendors.find(v => {
1929
- var _v$name, _loggedInUser$name;
1930
- return ((_v$name = v.name) === null || _v$name === void 0 ? void 0 : _v$name.toLowerCase()) === (loggedInUser === null || loggedInUser === void 0 ? void 0 : (_loggedInUser$name = loggedInUser.name) === null || _loggedInUser$name === void 0 ? void 0 : _loggedInUser$name.toLowerCase());
1931
- });
1932
- return matchedMock || ekycMockData.vendors[0];
1933
- }
1934
- }, [vendorSearchResponse, vendorId, loggedInUser]);
1935
1419
  const targetVendorId = vendorId || (vendor === null || vendor === void 0 ? void 0 : vendor.id) || (vendor === null || vendor === void 0 ? void 0 : vendor.vendorId);
1936
1420
  const _Digit$Hooks$ekyc$use = Digit.Hooks.ekyc.useEkycAssignmentProgress(targetVendorId ? {
1937
1421
  vendorId: targetVendorId
@@ -1993,22 +1477,43 @@ const VendorDetailsCard = () => {
1993
1477
  return vendor !== null && vendor !== void 0 && (_vendor$zoneIds = vendor.zoneIds) !== null && _vendor$zoneIds !== void 0 && _vendor$zoneIds.length ? vendor.zoneIds.filter(Boolean).map(zone => String(zone).trim().toUpperCase()) : [];
1994
1478
  }, [vendor]);
1995
1479
  const cards = useMemo(() => {
1480
+ const totalKnos = (progressData === null || progressData === void 0 ? void 0 : progressData.totalKnosInZones) || 0;
1996
1481
  const totalAssignments = (progressData === null || progressData === void 0 ? void 0 : progressData.totalKnos) || 0;
1997
- const completedKnos = (progressData === null || progressData === void 0 ? void 0 : progressData.completedKnos) || 0;
1482
+ const completedKnos = (progressData === null || progressData === void 0 ? void 0 : progressData.submittedKnos) || 0;
1483
+ const selfEkycCount = (progressData === null || progressData === void 0 ? void 0 : progressData.selfEkycCountInZones) || 0;
1484
+ const submittedKnos = (progressData === null || progressData === void 0 ? void 0 : progressData.submittedKnosInZones) || 0;
1998
1485
  const pendingKnos = (progressData === null || progressData === void 0 ? void 0 : progressData.pendingKnos) || 0;
1999
1486
  const progressPercent = (progressData === null || progressData === void 0 ? void 0 : progressData.overallProgressPercent) || 0;
2000
1487
  return [{
1488
+ label: "TOTAL_KNOS",
1489
+ count: totalKnos,
1490
+ color: "#0B2559",
1491
+ type: "today",
1492
+ icon: /*#__PURE__*/React.createElement(FaDatabase, null)
1493
+ }, {
2001
1494
  label: "TOTAL_EKYC_APPLICATIONS",
2002
1495
  count: totalAssignments,
2003
1496
  color: "#0B2559",
2004
1497
  type: "today",
2005
- icon: /*#__PURE__*/React.createElement(FaUsers, null)
1498
+ icon: /*#__PURE__*/React.createElement(FaFileAlt, null)
2006
1499
  }, {
2007
1500
  label: "EKYC_COMPLETED",
2008
1501
  count: completedKnos,
2009
1502
  color: "#10B981",
2010
1503
  type: "month",
2011
1504
  icon: /*#__PURE__*/React.createElement(FaCheckCircle, null)
1505
+ }, {
1506
+ label: "EKYC_SUBMITTED_BY_VENDORS",
1507
+ count: submittedKnos,
1508
+ color: "#10B981",
1509
+ type: "month",
1510
+ icon: /*#__PURE__*/React.createElement(FaBuilding, null)
1511
+ }, {
1512
+ label: "EKYC_SUBMITTED_BY_CITIZEN",
1513
+ count: selfEkycCount,
1514
+ color: "#10B981",
1515
+ type: "month",
1516
+ icon: /*#__PURE__*/React.createElement(FaUser, null)
2012
1517
  }, {
2013
1518
  label: "PENDING_APPLICATIONS",
2014
1519
  count: pendingKnos,
@@ -2256,9 +1761,9 @@ const VendorDetailsCard = () => {
2256
1761
  Header: t("SUPERVISOR_NAME") || "Supervisor Name",
2257
1762
  accessor: row => (row === null || row === void 0 ? void 0 : row.name) || "N/A",
2258
1763
  Cell: _ref => {
2259
- var _Digit$SessionStorage2, _Digit$SessionStorage3, _Digit$SessionStorage4, _row$original;
1764
+ var _Digit$SessionStorage, _Digit$SessionStorage2, _Digit$SessionStorage3, _row$original;
2260
1765
  let row = _ref.row;
2261
- const userType = ((_Digit$SessionStorage2 = Digit.SessionStorage.get("User")) === null || _Digit$SessionStorage2 === void 0 ? void 0 : (_Digit$SessionStorage3 = _Digit$SessionStorage2.info) === null || _Digit$SessionStorage3 === void 0 ? void 0 : (_Digit$SessionStorage4 = _Digit$SessionStorage3.type) === null || _Digit$SessionStorage4 === void 0 ? void 0 : _Digit$SessionStorage4.toLowerCase()) || "citizen";
1766
+ const userType = ((_Digit$SessionStorage = Digit.SessionStorage.get("User")) === null || _Digit$SessionStorage === void 0 ? void 0 : (_Digit$SessionStorage2 = _Digit$SessionStorage.info) === null || _Digit$SessionStorage2 === void 0 ? void 0 : (_Digit$SessionStorage3 = _Digit$SessionStorage2.type) === null || _Digit$SessionStorage3 === void 0 ? void 0 : _Digit$SessionStorage3.toLowerCase()) || "citizen";
2262
1767
  const targetPath = "/digit-ui/" + userType + "/ekyc/supervisor-dashboard/" + row.original.id;
2263
1768
  return /*#__PURE__*/React.createElement("a", {
2264
1769
  href: targetPath,
@@ -2555,7 +2060,7 @@ const VendorDetailsCard = () => {
2555
2060
  }, zoneIds.map(zone => /*#__PURE__*/React.createElement("span", {
2556
2061
  key: zone,
2557
2062
  className: "selected-zone-chip"
2558
- }, t(zone) || zone))) : "N/A")))), /*#__PURE__*/React.createElement(Card, {
2063
+ }, t(zone) || zone))) : "N/A")))), /*#__PURE__*/React.createElement("div", {
2559
2064
  className: "dashboard-card"
2560
2065
  }, /*#__PURE__*/React.createElement(Table, {
2561
2066
  t: t,
@@ -2697,7 +2202,7 @@ const useInboxTableConfig = _ref => {
2697
2202
  manualPagination: true,
2698
2203
  initSortId: "applicationDate",
2699
2204
  onPageSizeChange: onPageSizeChange,
2700
- currentPage: offset,
2205
+ currentPage: Math.floor(offset / limit),
2701
2206
  onNextPage: () => {
2702
2207
  var _formState$tableForm3;
2703
2208
  return dispatch({
@@ -3475,12 +2980,7 @@ const Inbox = _ref2 => {
3475
2980
  marginBottom: "24px"
3476
2981
  }
3477
2982
  }, /*#__PURE__*/React.createElement("div", {
3478
- className: "stats-wrapper",
3479
- style: {
3480
- display: "flex",
3481
- gap: "16px",
3482
- flexWrap: "wrap"
3483
- }
2983
+ className: "stats-wrapper"
3484
2984
  }, cards.map((card, idx) => /*#__PURE__*/React.createElement(StatCard, {
3485
2985
  key: idx,
3486
2986
  title: t(card.label),
@@ -5341,8 +4841,12 @@ const AdminDashboard = () => {
5341
4841
  }, /*#__PURE__*/React.createElement("span", null, (_vendor$vendorName = vendor.vendorName) === null || _vendor$vendorName === void 0 ? void 0 : (_vendor$vendorName$ = _vendor$vendorName[0]) === null || _vendor$vendorName$ === void 0 ? void 0 : _vendor$vendorName$.toUpperCase())), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h4", null, vendor.vendorName), /*#__PURE__*/React.createElement("span", {
5342
4842
  className: "vendor-subtitle"
5343
4843
  }, t("EKYC_VENDOR") || "eKYC Vendor"))), /*#__PURE__*/React.createElement("div", {
5344
- className: "progress-badge"
5345
- }, vendor.progressPercent, "%")), /*#__PURE__*/React.createElement("div", {
4844
+ className: "kno-count-badge"
4845
+ }, /*#__PURE__*/React.createElement("span", {
4846
+ className: "kno-count-label"
4847
+ }, t("TOTAL_KNOS") || "Total KNOs", " -"), /*#__PURE__*/React.createElement("span", {
4848
+ className: "kno-count-value"
4849
+ }, vendor.totalKnosInZones))), /*#__PURE__*/React.createElement("div", {
5346
4850
  className: "progress-section"
5347
4851
  }, /*#__PURE__*/React.createElement("div", {
5348
4852
  className: "progress-bar-container"
@@ -7348,7 +6852,8 @@ const SurveyorDetailsDashboard = () => {
7348
6852
  isPaginationRequired: true,
7349
6853
  onNextPage: () => {
7350
6854
  var _dashboardData$dashbo7;
7351
- if (currentPage < ((dashboardData === null || dashboardData === void 0 ? void 0 : (_dashboardData$dashbo7 = dashboardData.dashboardInfo) === null || _dashboardData$dashbo7 === void 0 ? void 0 : _dashboardData$dashbo7.totalPages) || 1) - 1) {
6855
+ const total = (dashboardData === null || dashboardData === void 0 ? void 0 : (_dashboardData$dashbo7 = dashboardData.dashboardInfo) === null || _dashboardData$dashbo7 === void 0 ? void 0 : _dashboardData$dashbo7.total) || 0;
6856
+ if (currentPage < Math.ceil(total / pageSize) - 1) {
7352
6857
  setCurrentPage(prev => prev + 1);
7353
6858
  }
7354
6859
  },
@@ -7362,7 +6867,8 @@ const SurveyorDetailsDashboard = () => {
7362
6867
  },
7363
6868
  onLastPage: () => {
7364
6869
  var _dashboardData$dashbo8;
7365
- setCurrentPage(Math.max(((dashboardData === null || dashboardData === void 0 ? void 0 : (_dashboardData$dashbo8 = dashboardData.dashboardInfo) === null || _dashboardData$dashbo8 === void 0 ? void 0 : _dashboardData$dashbo8.totalPages) || 1) - 1, 0));
6870
+ const total = (dashboardData === null || dashboardData === void 0 ? void 0 : (_dashboardData$dashbo8 = dashboardData.dashboardInfo) === null || _dashboardData$dashbo8 === void 0 ? void 0 : _dashboardData$dashbo8.total) || 0;
6871
+ setCurrentPage(Math.max(Math.ceil(total / pageSize) - 1, 0));
7366
6872
  },
7367
6873
  onPageSizeChange: e => {
7368
6874
  setPageSize(Number(e.target.value));
@@ -9862,7 +9368,7 @@ const EkycModule = _ref => {
9862
9368
  isLoading = _Digit$Services$useSt.isLoading;
9863
9369
  Digit.SessionStorage.set("EKYC_TENANTS", tenants);
9864
9370
  useEffect(() => Digit.LocalizationService.getLocale({
9865
- modules: ["rainmaker-ekyc", "rainmaker-" + Digit.ULBService.getCurrentTenantId()],
9371
+ modules: ["rainmaker-" + Digit.ULBService.getCurrentTenantId()],
9866
9372
  locale: Digit.StoreData.getCurrentLanguage(),
9867
9373
  tenantId: Digit.ULBService.getCurrentTenantId()
9868
9374
  }), []);