flowcore-fn 10.2.8 → 10.3.1
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/pkg-index.css +3 -3
- package/dist/pkg-index.js +492 -1276
- package/dist/pkg-index.mjs +490 -1276
- package/package.json +1 -1
package/dist/pkg-index.mjs
CHANGED
|
@@ -18950,16 +18950,68 @@ function PoolConfirmationModal({ isOpen, onClose, onConfirm, file, isSubmitting
|
|
|
18950
18950
|
import React95, { useState as useState70, useEffect as useEffect49, useCallback } from "react";
|
|
18951
18951
|
import { RiTaskLine, RiCloseLine as RiCloseLine2, RiSendPlaneLine } from "@remixicon/react";
|
|
18952
18952
|
import { jsx as jsx95, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
18953
|
+
var getAvailableActions = (response) => {
|
|
18954
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
18955
|
+
console.log("Raw response for available actions:", response);
|
|
18956
|
+
const value = (_e = (_d = (_c = (_a = response == null ? void 0 : response.data) == null ? void 0 : _a.data) != null ? _c : (_b = response == null ? void 0 : response.data) == null ? void 0 : _b.result) != null ? _d : response == null ? void 0 : response.data) != null ? _e : response;
|
|
18957
|
+
const rows = Array.isArray(value) ? value : (_g = (_f = value == null ? void 0 : value.items) != null ? _f : value == null ? void 0 : value.records) != null ? _g : [];
|
|
18958
|
+
return rows.map((action) => {
|
|
18959
|
+
var _a2, _b2, _c2, _d2, _e2, _f2;
|
|
18960
|
+
return {
|
|
18961
|
+
label: (_d2 = (_c2 = (_b2 = (_a2 = action.label) != null ? _a2 : action.Label) != null ? _b2 : action.actionName) != null ? _c2 : action.ActionName) != null ? _d2 : "",
|
|
18962
|
+
actionCode: (_f2 = (_e2 = action.actionCode) != null ? _e2 : action.ActionCode) != null ? _f2 : ""
|
|
18963
|
+
};
|
|
18964
|
+
}).filter((action) => action.label && action.actionCode);
|
|
18965
|
+
};
|
|
18953
18966
|
function TakeActionModal({ isOpen, onClose, onSubmit, file }) {
|
|
18954
|
-
const [
|
|
18967
|
+
const [actions, setActions] = useState70([]);
|
|
18968
|
+
const [actionCode, setActionCode] = useState70("");
|
|
18969
|
+
const [isLoadingActions, setIsLoadingActions] = useState70(false);
|
|
18970
|
+
const [actionLoadError, setActionLoadError] = useState70("");
|
|
18955
18971
|
const [remarks, setRemarks] = useState70("");
|
|
18956
18972
|
const [isSubmitting, setIsSubmitting] = useState70(false);
|
|
18957
18973
|
const handleClose = useCallback(() => {
|
|
18958
|
-
|
|
18974
|
+
if (isSubmitting) return;
|
|
18975
|
+
setActionCode("");
|
|
18959
18976
|
setRemarks("");
|
|
18960
|
-
setIsSubmitting(false);
|
|
18961
18977
|
onClose();
|
|
18962
|
-
}, [onClose]);
|
|
18978
|
+
}, [isSubmitting, onClose]);
|
|
18979
|
+
useEffect49(() => {
|
|
18980
|
+
if (!isOpen || !file) return void 0;
|
|
18981
|
+
let isCurrent = true;
|
|
18982
|
+
const loadActions = async () => {
|
|
18983
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
18984
|
+
setActions([]);
|
|
18985
|
+
setActionCode("");
|
|
18986
|
+
setActionLoadError("");
|
|
18987
|
+
setIsLoadingActions(true);
|
|
18988
|
+
try {
|
|
18989
|
+
const flowCore = (_b = (_a = getApiEndpoints()) == null ? void 0 : _a.flowCore) != null ? _b : {};
|
|
18990
|
+
const endpoint2 = (_g = (_e = (_c = flowCore.inbox) == null ? void 0 : _c.GetPermisiionLabelWithCode) != null ? _e : (_d = flowCore.inbox) == null ? void 0 : _d.getPermisiionLabelWithCode) != null ? _g : (_f = flowCore.inbox) == null ? void 0 : _f.getByWorkflowStepId;
|
|
18991
|
+
const workflowStepId = (_h = file.workflowStepId) != null ? _h : file.WorkflowStepId;
|
|
18992
|
+
if (!endpoint2) throw new Error("Workflow step actions endpoint is not configured.");
|
|
18993
|
+
if (workflowStepId == null) throw new Error("Workflow step ID is missing for this file.");
|
|
18994
|
+
const url = typeof endpoint2 === "function" ? endpoint2() : String(endpoint2);
|
|
18995
|
+
const nextActions = getAvailableActions(await getApiService().post(url, {
|
|
18996
|
+
workflowStepId: Number(workflowStepId)
|
|
18997
|
+
}));
|
|
18998
|
+
if (!isCurrent) return;
|
|
18999
|
+
console.log("Available actions for workflow step:", nextActions);
|
|
19000
|
+
setActions(nextActions);
|
|
19001
|
+
setActionCode((_j = (_i = nextActions[0]) == null ? void 0 : _i.actionCode) != null ? _j : "");
|
|
19002
|
+
if (nextActions.length === 0) setActionLoadError("No actions are available for this workflow step.");
|
|
19003
|
+
} catch (error) {
|
|
19004
|
+
if (!isCurrent) return;
|
|
19005
|
+
setActionLoadError(((_l = (_k = error == null ? void 0 : error.response) == null ? void 0 : _k.data) == null ? void 0 : _l.message) || (error == null ? void 0 : error.message) || "Unable to load workflow actions.");
|
|
19006
|
+
} finally {
|
|
19007
|
+
if (isCurrent) setIsLoadingActions(false);
|
|
19008
|
+
}
|
|
19009
|
+
};
|
|
19010
|
+
loadActions();
|
|
19011
|
+
return () => {
|
|
19012
|
+
isCurrent = false;
|
|
19013
|
+
};
|
|
19014
|
+
}, [file, isOpen]);
|
|
18963
19015
|
useEffect49(() => {
|
|
18964
19016
|
if (!isOpen) return;
|
|
18965
19017
|
const handleKeyDown = (e) => {
|
|
@@ -18969,10 +19021,15 @@ function TakeActionModal({ isOpen, onClose, onSubmit, file }) {
|
|
|
18969
19021
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
18970
19022
|
}, [isOpen, handleClose]);
|
|
18971
19023
|
if (!isOpen || !file) return null;
|
|
18972
|
-
const handleSubmit = (e) => {
|
|
19024
|
+
const handleSubmit = async (e) => {
|
|
18973
19025
|
e.preventDefault();
|
|
19026
|
+
if (!actionCode || isLoadingActions || isSubmitting) return;
|
|
18974
19027
|
setIsSubmitting(true);
|
|
18975
|
-
|
|
19028
|
+
try {
|
|
19029
|
+
await onSubmit({ file, actionCode, remarks });
|
|
19030
|
+
} finally {
|
|
19031
|
+
setIsSubmitting(false);
|
|
19032
|
+
}
|
|
18976
19033
|
};
|
|
18977
19034
|
return /* @__PURE__ */ jsxs94("div", { className: "fc:fixed fc:inset-0 fc:z-50 fc:flex fc:items-center fc:justify-center fc:p-4", children: [
|
|
18978
19035
|
/* @__PURE__ */ jsx95(
|
|
@@ -18999,6 +19056,7 @@ function TakeActionModal({ isOpen, onClose, onSubmit, file }) {
|
|
|
18999
19056
|
{
|
|
19000
19057
|
type: "button",
|
|
19001
19058
|
onClick: handleClose,
|
|
19059
|
+
disabled: isSubmitting,
|
|
19002
19060
|
className: "fc:text-slate-400 hover:fc:text-slate-600 hover:fc:bg-slate-100 fc:p-1.5 fc:rounded-full fc:transition-all",
|
|
19003
19061
|
children: /* @__PURE__ */ jsx95(RiCloseLine2, { size: 20 })
|
|
19004
19062
|
}
|
|
@@ -19025,39 +19083,37 @@ function TakeActionModal({ isOpen, onClose, onSubmit, file }) {
|
|
|
19025
19083
|
"Select Action ",
|
|
19026
19084
|
/* @__PURE__ */ jsx95("span", { className: "fc:text-red-500", children: "*" })
|
|
19027
19085
|
] }),
|
|
19028
|
-
/* @__PURE__ */ jsx95("div", { className: "fc:grid fc:grid-cols-2 fc:gap-2.5", children:
|
|
19029
|
-
{ id: "forward", label: "Forward to Next Step", color: "emerald" },
|
|
19030
|
-
{ id: "approve", label: "Approve & Complete", color: "blue" },
|
|
19031
|
-
{ id: "return", label: "Return / Send Back", color: "amber" },
|
|
19032
|
-
{ id: "hold", label: "Put on Hold", color: "slate" }
|
|
19033
|
-
].map((act) => /* @__PURE__ */ jsxs94(
|
|
19086
|
+
/* @__PURE__ */ jsx95("div", { className: "fc:grid fc:grid-cols-2 fc:gap-2.5", children: actions.map((act) => /* @__PURE__ */ jsxs94(
|
|
19034
19087
|
"label",
|
|
19035
19088
|
{
|
|
19036
|
-
className: `fc:flex fc:items-center fc:gap-2.5 fc:p-2.5 fc:rounded-xl fc:border fc:cursor-pointer fc:transition-all ${
|
|
19089
|
+
className: `fc:flex fc:items-center fc:gap-2.5 fc:p-2.5 fc:rounded-xl fc:border fc:cursor-pointer fc:transition-all ${actionCode === act.actionCode ? "fc:border-emerald-500 fc:bg-emerald-50/50 fc:text-emerald-700 fc:ring-1 fc:ring-emerald-500/20" : "fc:border-slate-200 fc:bg-white hover:fc:bg-slate-50 fc:text-slate-700"}`,
|
|
19037
19090
|
children: [
|
|
19038
19091
|
/* @__PURE__ */ jsx95(
|
|
19039
19092
|
"input",
|
|
19040
19093
|
{
|
|
19041
19094
|
type: "radio",
|
|
19042
19095
|
name: "actionType",
|
|
19043
|
-
value: act.
|
|
19044
|
-
checked:
|
|
19045
|
-
onChange: (e) =>
|
|
19096
|
+
value: act.actionCode,
|
|
19097
|
+
checked: actionCode === act.actionCode,
|
|
19098
|
+
onChange: (e) => setActionCode(e.target.value),
|
|
19099
|
+
disabled: isSubmitting,
|
|
19046
19100
|
className: "fc:sr-only"
|
|
19047
19101
|
}
|
|
19048
19102
|
),
|
|
19049
19103
|
/* @__PURE__ */ jsx95(
|
|
19050
19104
|
"div",
|
|
19051
19105
|
{
|
|
19052
|
-
className: `fc:w-4 fc:h-4 fc:rounded-full fc:border fc:flex fc:items-center fc:justify-center ${
|
|
19053
|
-
children:
|
|
19106
|
+
className: `fc:w-4 fc:h-4 fc:rounded-full fc:border fc:flex fc:items-center fc:justify-center ${actionCode === act.actionCode ? "fc:border-emerald-600 fc:bg-emerald-600" : "fc:border-slate-300"}`,
|
|
19107
|
+
children: actionCode === act.actionCode && /* @__PURE__ */ jsx95("div", { className: "fc:w-1.5 fc:h-1.5 fc:bg-white fc:rounded-full" })
|
|
19054
19108
|
}
|
|
19055
19109
|
),
|
|
19056
19110
|
/* @__PURE__ */ jsx95("span", { className: "fc:text-xs fc:font-bold", children: act.label })
|
|
19057
19111
|
]
|
|
19058
19112
|
},
|
|
19059
|
-
act.
|
|
19060
|
-
)) })
|
|
19113
|
+
act.actionCode
|
|
19114
|
+
)) }),
|
|
19115
|
+
isLoadingActions && /* @__PURE__ */ jsx95("p", { className: "fc:mt-2 fc:text-xs fc:text-slate-500", children: "Loading available actions..." }),
|
|
19116
|
+
actionLoadError && /* @__PURE__ */ jsx95("p", { className: "fc:mt-2 fc:text-xs fc:text-red-600", children: actionLoadError })
|
|
19061
19117
|
] }),
|
|
19062
19118
|
/* @__PURE__ */ jsxs94("div", { children: [
|
|
19063
19119
|
/* @__PURE__ */ jsx95("label", { className: "fc:block fc:text-xs fc:font-bold fc:text-slate-700 fc:mb-1", children: "Remarks / Comments" }),
|
|
@@ -19089,7 +19145,7 @@ function TakeActionModal({ isOpen, onClose, onSubmit, file }) {
|
|
|
19089
19145
|
"button",
|
|
19090
19146
|
{
|
|
19091
19147
|
type: "submit",
|
|
19092
|
-
disabled: isSubmitting,
|
|
19148
|
+
disabled: isSubmitting || isLoadingActions || !actionCode,
|
|
19093
19149
|
className: "fc:px-5 fc:py-2 fc:bg-emerald-600 hover:fc:bg-emerald-700 fc:text-white fc:text-xs fc:font-bold fc:rounded-xl fc:shadow-md fc:shadow-emerald-500/20 fc:transition-all fc:flex fc:items-center fc:gap-1.5 disabled:fc:opacity-50",
|
|
19094
19150
|
children: [
|
|
19095
19151
|
/* @__PURE__ */ jsx95(RiSendPlaneLine, { size: 16 }),
|
|
@@ -19281,7 +19337,7 @@ var normalizePoolFile = (file) => {
|
|
|
19281
19337
|
});
|
|
19282
19338
|
};
|
|
19283
19339
|
var normalizeMyFile = (file) => {
|
|
19284
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
|
|
19340
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E;
|
|
19285
19341
|
const taskInstanceId = (_a = file.taskInstanceId) != null ? _a : file.TaskInstanceId;
|
|
19286
19342
|
const businessEntityId = (_b = file.businessEntityId) != null ? _b : file.BusinessEntityId;
|
|
19287
19343
|
const businessEntity = (_c = file.businessEntityType) != null ? _c : file.BusinessEntityType;
|
|
@@ -19302,256 +19358,10 @@ var normalizeMyFile = (file) => {
|
|
|
19302
19358
|
dueDate: formatInboxDate(file.dueDate),
|
|
19303
19359
|
slaStatus: (_v = file.slaStatus) != null ? _v : "-",
|
|
19304
19360
|
status: (_x = (_w = file.fileStatus) != null ? _w : file.statusName) != null ? _x : "In Progress",
|
|
19305
|
-
assignedTo:
|
|
19306
|
-
currentStep: (
|
|
19361
|
+
assignedTo: (_D = (_C = (_B = (_A = (_z = (_y = file.assignedTo) != null ? _y : file.AssignedTo) != null ? _z : file.assignedUserName) != null ? _A : file.AssignedUserName) != null ? _B : file.assignedUserId) != null ? _C : file.AssignedUserId) != null ? _D : "-",
|
|
19362
|
+
currentStep: (_E = file.stepName) != null ? _E : "-"
|
|
19307
19363
|
});
|
|
19308
19364
|
};
|
|
19309
|
-
var INITIAL_FILE_POOL = [
|
|
19310
|
-
{
|
|
19311
|
-
fileId: 101,
|
|
19312
|
-
fileNumber: "FC-2026-0142",
|
|
19313
|
-
subject: "Industrial Waste Discharge License Renewal ApplicationIndustrial Waste Discharge License Renewal Application",
|
|
19314
|
-
workflowName: "Environmental Clearance",
|
|
19315
|
-
department: "Environment & Forests",
|
|
19316
|
-
applicant: "GreenTech Industries Ltd.",
|
|
19317
|
-
category: "Statutory Renewal",
|
|
19318
|
-
financialYear: "2026-27",
|
|
19319
|
-
sender: "GreenTech Industries Ltd.",
|
|
19320
|
-
priority: "Urgent",
|
|
19321
|
-
receivedDate: "05-Oct-2026 09:15 AM",
|
|
19322
|
-
dueDate: "09-Oct-2026",
|
|
19323
|
-
slaStatus: "Critical (18h left)",
|
|
19324
|
-
status: "Available",
|
|
19325
|
-
assignedTo: "-"
|
|
19326
|
-
},
|
|
19327
|
-
{
|
|
19328
|
-
fileId: 102,
|
|
19329
|
-
fileNumber: "FC-2026-0145",
|
|
19330
|
-
subject: "Sector 14 Commercial Complex Building Plan Sanction",
|
|
19331
|
-
workflowName: "Urban Development Clearance",
|
|
19332
|
-
department: "Urban Development",
|
|
19333
|
-
applicant: "Apex Constructions Pvt Ltd",
|
|
19334
|
-
category: "Commercial Sanction",
|
|
19335
|
-
financialYear: "2026-27",
|
|
19336
|
-
sender: "Apex Constructions Pvt Ltd",
|
|
19337
|
-
priority: "High",
|
|
19338
|
-
receivedDate: "05-Oct-2026 11:30 AM",
|
|
19339
|
-
dueDate: "12-Oct-2026",
|
|
19340
|
-
slaStatus: "Running (4d left)",
|
|
19341
|
-
status: "Available",
|
|
19342
|
-
assignedTo: "-"
|
|
19343
|
-
},
|
|
19344
|
-
{
|
|
19345
|
-
fileId: 103,
|
|
19346
|
-
fileNumber: "FC-2026-0149",
|
|
19347
|
-
subject: "Annual Cyber Security Audit & Compliance Report",
|
|
19348
|
-
workflowName: "IT Security Compliance",
|
|
19349
|
-
department: "Information Technology",
|
|
19350
|
-
applicant: "Internal IT Audit Cell",
|
|
19351
|
-
category: "Internal Audit",
|
|
19352
|
-
financialYear: "2026-27",
|
|
19353
|
-
sender: "Internal IT Audit Cell",
|
|
19354
|
-
priority: "Medium",
|
|
19355
|
-
receivedDate: "06-Oct-2026 02:45 PM",
|
|
19356
|
-
dueDate: "15-Oct-2026",
|
|
19357
|
-
slaStatus: "Running (7d left)",
|
|
19358
|
-
status: "Available",
|
|
19359
|
-
assignedTo: "-"
|
|
19360
|
-
},
|
|
19361
|
-
{
|
|
19362
|
-
fileId: 104,
|
|
19363
|
-
fileNumber: "FC-2026-0153",
|
|
19364
|
-
subject: "Vendor Onboarding & Due Diligence - Cloud Services",
|
|
19365
|
-
workflowName: "Procurement & Contracts",
|
|
19366
|
-
department: "Procurement Cell",
|
|
19367
|
-
applicant: "Global Infotech Solutions",
|
|
19368
|
-
category: "Vendor Registration",
|
|
19369
|
-
financialYear: "2026-27",
|
|
19370
|
-
sender: "Global Infotech Solutions",
|
|
19371
|
-
priority: "High",
|
|
19372
|
-
receivedDate: "06-Oct-2026 04:10 PM",
|
|
19373
|
-
dueDate: "11-Oct-2026",
|
|
19374
|
-
slaStatus: "Running (3d left)",
|
|
19375
|
-
status: "Available",
|
|
19376
|
-
assignedTo: "-"
|
|
19377
|
-
},
|
|
19378
|
-
{
|
|
19379
|
-
fileId: 105,
|
|
19380
|
-
fileNumber: "FC-2026-0158",
|
|
19381
|
-
subject: "Township Potable Water Pipeline Overhaul Budget Sanction",
|
|
19382
|
-
workflowName: "Public Works Approval",
|
|
19383
|
-
department: "Public Works & Water",
|
|
19384
|
-
applicant: "Municipal Engineering Dept",
|
|
19385
|
-
category: "Capital Outlay",
|
|
19386
|
-
financialYear: "2026-27",
|
|
19387
|
-
sender: "Municipal Engineering Dept",
|
|
19388
|
-
priority: "Urgent",
|
|
19389
|
-
receivedDate: "07-Oct-2026 08:30 AM",
|
|
19390
|
-
dueDate: "10-Oct-2026",
|
|
19391
|
-
slaStatus: "Critical (22h left)",
|
|
19392
|
-
status: "Available",
|
|
19393
|
-
assignedTo: "-"
|
|
19394
|
-
},
|
|
19395
|
-
{
|
|
19396
|
-
fileId: 106,
|
|
19397
|
-
fileNumber: "FC-2026-0162",
|
|
19398
|
-
subject: "Employee Health Insurance Policy Provider Revision",
|
|
19399
|
-
workflowName: "HR & Employee Welfare",
|
|
19400
|
-
department: "Human Resources",
|
|
19401
|
-
applicant: "Corporate HR Services",
|
|
19402
|
-
category: "Policy Reform",
|
|
19403
|
-
financialYear: "2026-27",
|
|
19404
|
-
sender: "Corporate HR Services",
|
|
19405
|
-
priority: "Low",
|
|
19406
|
-
receivedDate: "07-Oct-2026 10:00 AM",
|
|
19407
|
-
dueDate: "20-Oct-2026",
|
|
19408
|
-
slaStatus: "Running (12d left)",
|
|
19409
|
-
status: "Available",
|
|
19410
|
-
assignedTo: "-"
|
|
19411
|
-
},
|
|
19412
|
-
{
|
|
19413
|
-
fileId: 107,
|
|
19414
|
-
fileNumber: "FC-2026-0167",
|
|
19415
|
-
subject: "Renewable Solar Rooftop Grid Connectivity NOC",
|
|
19416
|
-
workflowName: "Energy Regulatory Clearance",
|
|
19417
|
-
department: "Power & Energy",
|
|
19418
|
-
applicant: "SunPower Dynamics Ltd",
|
|
19419
|
-
category: "Infrastructure NOC",
|
|
19420
|
-
financialYear: "2026-27",
|
|
19421
|
-
sender: "SunPower Dynamics Ltd",
|
|
19422
|
-
priority: "Medium",
|
|
19423
|
-
receivedDate: "07-Oct-2026 11:15 AM",
|
|
19424
|
-
dueDate: "14-Oct-2026",
|
|
19425
|
-
slaStatus: "Running (6d left)",
|
|
19426
|
-
status: "Available",
|
|
19427
|
-
assignedTo: "-"
|
|
19428
|
-
}
|
|
19429
|
-
];
|
|
19430
|
-
var INITIAL_MY_FILES = [
|
|
19431
|
-
{
|
|
19432
|
-
fileId: 201,
|
|
19433
|
-
fileNumber: "FC-2026-0112",
|
|
19434
|
-
subject: "Hospital Expansion Fire Safety NOC & Site Clearance",
|
|
19435
|
-
workflowName: "Fire & Safety Clearance",
|
|
19436
|
-
department: "Public Safety",
|
|
19437
|
-
applicant: "City Hospital Trust",
|
|
19438
|
-
category: "Statutory NOC",
|
|
19439
|
-
financialYear: "2026-27",
|
|
19440
|
-
sender: "City Hospital Trust",
|
|
19441
|
-
priority: "Urgent",
|
|
19442
|
-
receivedDate: "03-Oct-2026 10:15 AM",
|
|
19443
|
-
dueDate: "08-Oct-2026",
|
|
19444
|
-
slaStatus: "Critical (14h left)",
|
|
19445
|
-
status: "Assigned to Me",
|
|
19446
|
-
assignedTo: "Pankaj Jain"
|
|
19447
|
-
},
|
|
19448
|
-
{
|
|
19449
|
-
fileId: 202,
|
|
19450
|
-
fileNumber: "FC-2026-0120",
|
|
19451
|
-
subject: "Q3 Departmental Infrastructure Procurement Sanction",
|
|
19452
|
-
workflowName: "Financial Sanction",
|
|
19453
|
-
department: "Finance & Accounts",
|
|
19454
|
-
applicant: "Administration Division",
|
|
19455
|
-
category: "Budget Sanction",
|
|
19456
|
-
financialYear: "2026-27",
|
|
19457
|
-
sender: "Administration Division",
|
|
19458
|
-
priority: "High",
|
|
19459
|
-
receivedDate: "04-Oct-2026 01:20 PM",
|
|
19460
|
-
dueDate: "10-Oct-2026",
|
|
19461
|
-
slaStatus: "Running (2d left)",
|
|
19462
|
-
status: "In Progress",
|
|
19463
|
-
assignedTo: "Pankaj Jain"
|
|
19464
|
-
},
|
|
19465
|
-
{
|
|
19466
|
-
fileId: 203,
|
|
19467
|
-
fileNumber: "FC-2026-0128",
|
|
19468
|
-
subject: "Public Interest Petition Regarding Street Light Restoration",
|
|
19469
|
-
workflowName: "Citizen Grievance Redressal",
|
|
19470
|
-
department: "Municipal Affairs",
|
|
19471
|
-
applicant: "Ward 12 Residents Forum",
|
|
19472
|
-
category: "Citizen Grievance",
|
|
19473
|
-
financialYear: "2026-27",
|
|
19474
|
-
sender: "Ward 12 Residents Forum",
|
|
19475
|
-
priority: "Medium",
|
|
19476
|
-
receivedDate: "04-Oct-2026 03:40 PM",
|
|
19477
|
-
dueDate: "12-Oct-2026",
|
|
19478
|
-
slaStatus: "Running (4d left)",
|
|
19479
|
-
status: "In Progress",
|
|
19480
|
-
assignedTo: "Pankaj Jain"
|
|
19481
|
-
},
|
|
19482
|
-
{
|
|
19483
|
-
fileId: 204,
|
|
19484
|
-
fileNumber: "FC-2026-0135",
|
|
19485
|
-
subject: "Sub-Station Electrical Equipment Maintenance Agreement",
|
|
19486
|
-
workflowName: "Procurement & Contracts",
|
|
19487
|
-
department: "Power & Energy",
|
|
19488
|
-
applicant: "State Power Grid Corp",
|
|
19489
|
-
category: "AMC Contract",
|
|
19490
|
-
financialYear: "2026-27",
|
|
19491
|
-
sender: "State Power Grid Corp",
|
|
19492
|
-
priority: "Low",
|
|
19493
|
-
receivedDate: "05-Oct-2026 09:50 AM",
|
|
19494
|
-
dueDate: "16-Oct-2026",
|
|
19495
|
-
slaStatus: "Running (8d left)",
|
|
19496
|
-
status: "In Progress",
|
|
19497
|
-
assignedTo: "Pankaj Jain"
|
|
19498
|
-
}
|
|
19499
|
-
];
|
|
19500
|
-
var INITIAL_TOTAL_FILES = [
|
|
19501
|
-
...INITIAL_FILE_POOL,
|
|
19502
|
-
...INITIAL_MY_FILES,
|
|
19503
|
-
{
|
|
19504
|
-
fileId: 301,
|
|
19505
|
-
fileNumber: "FC-2026-0095",
|
|
19506
|
-
subject: "National Highway Bypass Land Acquisition Settlement",
|
|
19507
|
-
workflowName: "Land Revenue & Settlement",
|
|
19508
|
-
department: "Land & Revenue",
|
|
19509
|
-
applicant: "District Collectorate",
|
|
19510
|
-
category: "Land Settlement",
|
|
19511
|
-
financialYear: "2026-27",
|
|
19512
|
-
sender: "District Magistrate Secretariat",
|
|
19513
|
-
priority: "High",
|
|
19514
|
-
receivedDate: "28-Sep-2026 11:00 AM",
|
|
19515
|
-
dueDate: "05-Oct-2026",
|
|
19516
|
-
slaStatus: "Met / Completed",
|
|
19517
|
-
status: "Approved",
|
|
19518
|
-
assignedTo: "Executive Director"
|
|
19519
|
-
},
|
|
19520
|
-
{
|
|
19521
|
-
fileId: 302,
|
|
19522
|
-
fileNumber: "FC-2026-0103",
|
|
19523
|
-
subject: "Metro Rail Corridor Phase 2 Tree Relocation Clearance",
|
|
19524
|
-
workflowName: "Environmental Clearance",
|
|
19525
|
-
department: "Forestry & Environment",
|
|
19526
|
-
applicant: "Metro Rail Corporation",
|
|
19527
|
-
category: "Forest Clearance",
|
|
19528
|
-
financialYear: "2026-27",
|
|
19529
|
-
sender: "Metro Rail Corporation",
|
|
19530
|
-
priority: "Medium",
|
|
19531
|
-
receivedDate: "30-Sep-2026 02:15 PM",
|
|
19532
|
-
dueDate: "07-Oct-2026",
|
|
19533
|
-
slaStatus: "Met / Completed",
|
|
19534
|
-
status: "Completed",
|
|
19535
|
-
assignedTo: "Forest Officer"
|
|
19536
|
-
},
|
|
19537
|
-
{
|
|
19538
|
-
fileId: 303,
|
|
19539
|
-
fileNumber: "FC-2026-0108",
|
|
19540
|
-
subject: "Smart City Traffic Management System Software SLA",
|
|
19541
|
-
workflowName: "Urban Development Clearance",
|
|
19542
|
-
department: "Information Technology",
|
|
19543
|
-
applicant: "Smart Mobility Dept",
|
|
19544
|
-
category: "Software License",
|
|
19545
|
-
financialYear: "2026-27",
|
|
19546
|
-
sender: "Smart Mobility Dept",
|
|
19547
|
-
priority: "Low",
|
|
19548
|
-
receivedDate: "01-Oct-2026 04:30 PM",
|
|
19549
|
-
dueDate: "15-Oct-2026",
|
|
19550
|
-
slaStatus: "Running",
|
|
19551
|
-
status: "Under Review",
|
|
19552
|
-
assignedTo: "Technical Officer"
|
|
19553
|
-
}
|
|
19554
|
-
];
|
|
19555
19365
|
function InboxMain() {
|
|
19556
19366
|
const [activeTab, setActiveTab] = useState71("filePool");
|
|
19557
19367
|
const [assignedSteps, setAssignedSteps] = useState71([]);
|
|
@@ -19564,7 +19374,7 @@ function InboxMain() {
|
|
|
19564
19374
|
const activeRole = (activeRoleDetails == null ? void 0 : activeRoleDetails.stepName) || "No Assigned Step";
|
|
19565
19375
|
const [filePoolFiles, setFilePoolFiles] = useState71([]);
|
|
19566
19376
|
const [myFiles, setMyFiles] = useState71([]);
|
|
19567
|
-
const [totalFiles, setTotalFiles] = useState71(
|
|
19377
|
+
const [totalFiles, setTotalFiles] = useState71([]);
|
|
19568
19378
|
const [refreshKey, setRefreshKey] = useState71(0);
|
|
19569
19379
|
useEffect51(() => {
|
|
19570
19380
|
let isCurrent = true;
|
|
@@ -19632,6 +19442,7 @@ function InboxMain() {
|
|
|
19632
19442
|
if (!activeWorkflowStepId) {
|
|
19633
19443
|
setFilePoolFiles([]);
|
|
19634
19444
|
setMyFiles([]);
|
|
19445
|
+
setTotalFiles([]);
|
|
19635
19446
|
return;
|
|
19636
19447
|
}
|
|
19637
19448
|
try {
|
|
@@ -19649,18 +19460,28 @@ function InboxMain() {
|
|
|
19649
19460
|
if (!myFilesEndpoint) {
|
|
19650
19461
|
throw new Error("My Files list endpoint is not configured (flowCore.inbox.getMyFilesList).");
|
|
19651
19462
|
}
|
|
19463
|
+
const completedFilesEndpoint = getInboxEndpoint(
|
|
19464
|
+
["inbox", "Inbox", "completedFiles", "CompletedFiles"],
|
|
19465
|
+
"getFilesCompleteList"
|
|
19466
|
+
);
|
|
19467
|
+
if (!completedFilesEndpoint) {
|
|
19468
|
+
throw new Error("Completed Files endpoint is not configured (flowCore.inbox.getFilesCompleteList).");
|
|
19469
|
+
}
|
|
19652
19470
|
const payload = { workflowStepId: Number(activeWorkflowStepId) };
|
|
19653
|
-
const [poolResponse, myFilesResponse] = await Promise.all([
|
|
19471
|
+
const [poolResponse, myFilesResponse, completedFilesResponse] = await Promise.all([
|
|
19654
19472
|
getApiService().post(unclaimedFilesEndpoint, payload),
|
|
19655
|
-
getApiService().post(myFilesEndpoint, payload)
|
|
19473
|
+
getApiService().post(myFilesEndpoint, payload),
|
|
19474
|
+
getApiService().post(completedFilesEndpoint, payload)
|
|
19656
19475
|
]);
|
|
19657
19476
|
if (!isCurrent) return;
|
|
19658
19477
|
setFilePoolFiles(unwrapInboxRows(poolResponse).map(normalizePoolFile));
|
|
19659
19478
|
setMyFiles(unwrapInboxRows(myFilesResponse).map(normalizeMyFile));
|
|
19479
|
+
setTotalFiles(unwrapInboxRows(completedFilesResponse).map(normalizeMyFile));
|
|
19660
19480
|
} catch (error) {
|
|
19661
19481
|
if (!isCurrent) return;
|
|
19662
19482
|
setFilePoolFiles([]);
|
|
19663
19483
|
setMyFiles([]);
|
|
19484
|
+
setTotalFiles([]);
|
|
19664
19485
|
await Swal29.fire(
|
|
19665
19486
|
"Error",
|
|
19666
19487
|
((_b = (_a = error == null ? void 0 : error.response) == null ? void 0 : _a.data) == null ? void 0 : _b.message) || (error == null ? void 0 : error.message) || "Unable to load inbox files.",
|
|
@@ -19907,16 +19728,40 @@ function InboxMain() {
|
|
|
19907
19728
|
setSelectedActionFile(file);
|
|
19908
19729
|
setActionModalOpen(true);
|
|
19909
19730
|
};
|
|
19910
|
-
const handleActionSubmit = async ({ file,
|
|
19911
|
-
|
|
19912
|
-
|
|
19913
|
-
|
|
19914
|
-
|
|
19915
|
-
|
|
19916
|
-
|
|
19917
|
-
|
|
19918
|
-
|
|
19919
|
-
|
|
19731
|
+
const handleActionSubmit = async ({ file, actionCode, actionLabel, remarks }) => {
|
|
19732
|
+
var _a, _b, _c;
|
|
19733
|
+
try {
|
|
19734
|
+
const endpoint2 = getInboxEndpoint(["inbox"], ["ExecutionFlow", "executeAction", "executionFlow"]);
|
|
19735
|
+
if (!endpoint2) throw new Error("Workflow execution endpoint is not configured.");
|
|
19736
|
+
const taskInstanceId = Number((_a = file.taskInstanceId) != null ? _a : file.TaskInstanceId);
|
|
19737
|
+
if (!Number.isInteger(taskInstanceId) || taskInstanceId <= 0) {
|
|
19738
|
+
throw new Error("Task instance ID is missing for this file.");
|
|
19739
|
+
}
|
|
19740
|
+
await getApiService().post(endpoint2, {
|
|
19741
|
+
taskInstanceId,
|
|
19742
|
+
actionCode,
|
|
19743
|
+
comments: remarks.trim()
|
|
19744
|
+
});
|
|
19745
|
+
setActionModalOpen(false);
|
|
19746
|
+
setSelectedActionFile(null);
|
|
19747
|
+
setRefreshKey((previous) => previous + 1);
|
|
19748
|
+
await Swal29.fire({
|
|
19749
|
+
icon: "success",
|
|
19750
|
+
title: "Action Processed!",
|
|
19751
|
+
text: `${actionLabel || actionCode} on file ${file.fileNumber} recorded successfully.${remarks.trim() ? ` Remarks: ${remarks.trim()}` : ""}`,
|
|
19752
|
+
confirmButtonColor: "#059669",
|
|
19753
|
+
timer: 3e3,
|
|
19754
|
+
timerProgressBar: true
|
|
19755
|
+
});
|
|
19756
|
+
return true;
|
|
19757
|
+
} catch (error) {
|
|
19758
|
+
await Swal29.fire(
|
|
19759
|
+
"Error",
|
|
19760
|
+
((_c = (_b = error == null ? void 0 : error.response) == null ? void 0 : _b.data) == null ? void 0 : _c.message) || (error == null ? void 0 : error.message) || "Unable to execute workflow action.",
|
|
19761
|
+
"error"
|
|
19762
|
+
);
|
|
19763
|
+
return false;
|
|
19764
|
+
}
|
|
19920
19765
|
};
|
|
19921
19766
|
const handleOpenView = (file) => {
|
|
19922
19767
|
setSelectedViewFile(file);
|
|
@@ -20088,7 +19933,7 @@ function InboxMain() {
|
|
|
20088
19933
|
className: `fc:flex fc:items-center fc:gap-2.5 fc:px-4 fc:py-2 fc:rounded-xl fc:text-xs fc:font-bold fc:transition-all ${activeTab === "filePool" ? "fc:bg-blue-600 fc:text-white fc:shadow-md fc:shadow-blue-500/25" : "fc:text-slate-600 hover:fc:text-slate-900 hover:fc:bg-white/60"}`,
|
|
20089
19934
|
children: [
|
|
20090
19935
|
/* @__PURE__ */ jsx97(RiInboxArchiveLine2, { size: 16 }),
|
|
20091
|
-
/* @__PURE__ */ jsx97("span", { children: "
|
|
19936
|
+
/* @__PURE__ */ jsx97("span", { children: "Unclaimed Files" }),
|
|
20092
19937
|
/* @__PURE__ */ jsx97(
|
|
20093
19938
|
"span",
|
|
20094
19939
|
{
|
|
@@ -20126,7 +19971,7 @@ function InboxMain() {
|
|
|
20126
19971
|
className: `fc:flex fc:items-center fc:gap-2.5 fc:px-4 fc:py-2 fc:rounded-xl fc:text-xs fc:font-bold fc:transition-all ${activeTab === "totalFiles" ? "fc:bg-slate-800 fc:text-white fc:shadow-md fc:shadow-slate-800/25" : "fc:text-slate-600 hover:fc:text-slate-900 hover:fc:bg-white/60"}`,
|
|
20127
19972
|
children: [
|
|
20128
19973
|
/* @__PURE__ */ jsx97(RiFileUploadLine, { size: 16 }),
|
|
20129
|
-
/* @__PURE__ */ jsx97("span", { children: "
|
|
19974
|
+
/* @__PURE__ */ jsx97("span", { children: "Completed Files" }),
|
|
20130
19975
|
/* @__PURE__ */ jsx97(
|
|
20131
19976
|
"span",
|
|
20132
19977
|
{
|
|
@@ -21023,521 +20868,11 @@ function TrackingSlipModal({ isOpen, onClose, application }) {
|
|
|
21023
20868
|
|
|
21024
20869
|
// src/components/track-application/TrackApplicationMain.jsx
|
|
21025
20870
|
import { Fragment as Fragment5, jsx as jsx99, jsxs as jsxs98 } from "react/jsx-runtime";
|
|
21026
|
-
var APPLICATION_DATABASE = [
|
|
21027
|
-
{
|
|
21028
|
-
fileId: 202,
|
|
21029
|
-
fileNumber: "FC-2026-0120",
|
|
21030
|
-
subject: "Q3 Departmental Infrastructure Procurement Sanction",
|
|
21031
|
-
workflowName: "Financial Sanction",
|
|
21032
|
-
department: "Finance & Accounts",
|
|
21033
|
-
applicant: "Administration Division",
|
|
21034
|
-
category: "Budget Sanction",
|
|
21035
|
-
financialYear: "2026-27",
|
|
21036
|
-
sender: "Administration Division",
|
|
21037
|
-
priority: "High",
|
|
21038
|
-
receivedDate: "04-Oct-2026 01:20 PM",
|
|
21039
|
-
dueDate: "10-Oct-2026",
|
|
21040
|
-
slaStatus: "Running (2d left)",
|
|
21041
|
-
status: "In Progress",
|
|
21042
|
-
assignedTo: "Pankaj Jain",
|
|
21043
|
-
currentStep: "Budget Head Appropriation",
|
|
21044
|
-
progressPercent: 60,
|
|
21045
|
-
stages: [
|
|
21046
|
-
{
|
|
21047
|
-
stageId: 1,
|
|
21048
|
-
title: "Indents Consolidated",
|
|
21049
|
-
description: "Department hardware requisitions.",
|
|
21050
|
-
status: "completed",
|
|
21051
|
-
date: "04-Oct-2026 01:20 PM",
|
|
21052
|
-
officer: "Admin Division"
|
|
21053
|
-
},
|
|
21054
|
-
{
|
|
21055
|
-
stageId: 2,
|
|
21056
|
-
title: "Budget Availability Check",
|
|
21057
|
-
description: "Major Head 2052 Capital Outlay.",
|
|
21058
|
-
status: "completed",
|
|
21059
|
-
date: "05-Oct-2026 11:00 AM",
|
|
21060
|
-
officer: "Accounts Officer"
|
|
21061
|
-
},
|
|
21062
|
-
{
|
|
21063
|
-
stageId: 3,
|
|
21064
|
-
title: "Competent Authority Sanction",
|
|
21065
|
-
description: "Review by Principal Secretary.",
|
|
21066
|
-
status: "in-progress",
|
|
21067
|
-
date: "Running (Active)",
|
|
21068
|
-
officer: "Pankaj Jain"
|
|
21069
|
-
},
|
|
21070
|
-
{
|
|
21071
|
-
stageId: 4,
|
|
21072
|
-
title: "Sanction Letter Release",
|
|
21073
|
-
description: "Formal expenditure sanction order.",
|
|
21074
|
-
status: "pending",
|
|
21075
|
-
date: "Target: 10-Oct-2026",
|
|
21076
|
-
officer: "Finance Secretariat"
|
|
21077
|
-
}
|
|
21078
|
-
],
|
|
21079
|
-
movementHistory: [
|
|
21080
|
-
{
|
|
21081
|
-
id: 1,
|
|
21082
|
-
fromStep: "Admin Division",
|
|
21083
|
-
toStep: "Finance Scrutiny Cell",
|
|
21084
|
-
action: "Sanction Proposal Sent",
|
|
21085
|
-
officer: "Joint Secretary Admin",
|
|
21086
|
-
timestamp: "04-Oct-2026 01:20 PM",
|
|
21087
|
-
remarks: "Proposal for IT hardware and server capacity upgrade."
|
|
21088
|
-
},
|
|
21089
|
-
{
|
|
21090
|
-
id: 2,
|
|
21091
|
-
fromStep: "Finance Scrutiny Cell",
|
|
21092
|
-
toStep: "Reviewer Desk",
|
|
21093
|
-
action: "Budget Validated",
|
|
21094
|
-
officer: "Accounts Officer",
|
|
21095
|
-
timestamp: "05-Oct-2026 11:00 AM",
|
|
21096
|
-
remarks: "Funds verified in current FY allocation."
|
|
21097
|
-
}
|
|
21098
|
-
],
|
|
21099
|
-
documents: [
|
|
21100
|
-
{ name: "Detailed Itemized Expense Estimate", type: "PDF", size: "1.9 MB", status: "Verified" },
|
|
21101
|
-
{ name: "Comparative Quotation Statement", type: "PDF", size: "1.5 MB", status: "Verified" }
|
|
21102
|
-
]
|
|
21103
|
-
},
|
|
21104
|
-
{
|
|
21105
|
-
fileId: 101,
|
|
21106
|
-
fileNumber: "FC-2026-0142",
|
|
21107
|
-
subject: "Industrial Waste Discharge License Renewal Application",
|
|
21108
|
-
workflowName: "Environmental Clearance",
|
|
21109
|
-
department: "Environment & Forests",
|
|
21110
|
-
applicant: "GreenTech Industries Ltd.",
|
|
21111
|
-
category: "Statutory Renewal",
|
|
21112
|
-
financialYear: "2026-27",
|
|
21113
|
-
sender: "GreenTech Industries Ltd.",
|
|
21114
|
-
priority: "Urgent",
|
|
21115
|
-
receivedDate: "05-Oct-2026 09:15 AM",
|
|
21116
|
-
dueDate: "09-Oct-2026",
|
|
21117
|
-
slaStatus: "Critical (18h left)",
|
|
21118
|
-
status: "Under Scrutiny",
|
|
21119
|
-
assignedTo: "Pankaj Jain (Reviewer)",
|
|
21120
|
-
currentStep: "Scrutiny & Review",
|
|
21121
|
-
progressPercent: 50,
|
|
21122
|
-
stages: [
|
|
21123
|
-
{
|
|
21124
|
-
stageId: 1,
|
|
21125
|
-
title: "Application Registration",
|
|
21126
|
-
description: "Application filed online via Single Window Portal.",
|
|
21127
|
-
status: "completed",
|
|
21128
|
-
date: "05-Oct-2026 09:15 AM",
|
|
21129
|
-
officer: "Portal Gateway"
|
|
21130
|
-
},
|
|
21131
|
-
{
|
|
21132
|
-
stageId: 2,
|
|
21133
|
-
title: "Document Verification",
|
|
21134
|
-
description: "Scrutiny of ETP specifications.",
|
|
21135
|
-
status: "completed",
|
|
21136
|
-
date: "05-Oct-2026 02:30 PM",
|
|
21137
|
-
officer: "Pankaj Jain (Reviewer)"
|
|
21138
|
-
},
|
|
21139
|
-
{
|
|
21140
|
-
stageId: 3,
|
|
21141
|
-
title: "Field Inspection & Sampling",
|
|
21142
|
-
description: "Pollution Control Board site inspection.",
|
|
21143
|
-
status: "in-progress",
|
|
21144
|
-
date: "Running (Due: 08-Oct)",
|
|
21145
|
-
officer: "Er. Ramesh Verma"
|
|
21146
|
-
},
|
|
21147
|
-
{
|
|
21148
|
-
stageId: 4,
|
|
21149
|
-
title: "Appraisal Committee Review",
|
|
21150
|
-
description: "State Expert Appraisal Committee review.",
|
|
21151
|
-
status: "pending",
|
|
21152
|
-
date: "Pending Stage 3",
|
|
21153
|
-
officer: "Member Secretary"
|
|
21154
|
-
},
|
|
21155
|
-
{
|
|
21156
|
-
stageId: 5,
|
|
21157
|
-
title: "Final NOC & Certificate",
|
|
21158
|
-
description: "Issuance of renewal license.",
|
|
21159
|
-
status: "pending",
|
|
21160
|
-
date: "Target: 09-Oct-2026",
|
|
21161
|
-
officer: "Directorate of Env."
|
|
21162
|
-
}
|
|
21163
|
-
],
|
|
21164
|
-
movementHistory: [
|
|
21165
|
-
{
|
|
21166
|
-
id: 1,
|
|
21167
|
-
fromStep: "Citizen Portal",
|
|
21168
|
-
toStep: "Central Inward Registry",
|
|
21169
|
-
action: "Application Submitted",
|
|
21170
|
-
officer: "GreenTech Representative",
|
|
21171
|
-
timestamp: "05-Oct-2026 09:15 AM",
|
|
21172
|
-
remarks: "Online application submitted with license renewal fee."
|
|
21173
|
-
},
|
|
21174
|
-
{
|
|
21175
|
-
id: 2,
|
|
21176
|
-
fromStep: "Central Inward Registry",
|
|
21177
|
-
toStep: "Scrutiny Desk",
|
|
21178
|
-
action: "Forwarded for Scrutiny",
|
|
21179
|
-
officer: "System Auto-Router",
|
|
21180
|
-
timestamp: "05-Oct-2026 09:30 AM",
|
|
21181
|
-
remarks: "Automated routing based on Environmental Clearance rule."
|
|
21182
|
-
},
|
|
21183
|
-
{
|
|
21184
|
-
id: 3,
|
|
21185
|
-
fromStep: "Scrutiny Desk",
|
|
21186
|
-
toStep: "Pollution Control Inspection Cell",
|
|
21187
|
-
action: "Under Active Scrutiny",
|
|
21188
|
-
officer: "Pankaj Jain (Reviewer)",
|
|
21189
|
-
timestamp: "05-Oct-2026 02:30 PM",
|
|
21190
|
-
remarks: "Documents cleared. Site sample report requested."
|
|
21191
|
-
}
|
|
21192
|
-
],
|
|
21193
|
-
documents: [
|
|
21194
|
-
{ name: "Effluent Treatment Plant (ETP) Specification", type: "PDF", size: "3.4 MB", status: "Verified" },
|
|
21195
|
-
{ name: "Previous Financial Year Audit Log", type: "PDF", size: "1.8 MB", status: "Verified" },
|
|
21196
|
-
{ name: "Factory Site Coordinate Map", type: "PDF", size: "850 KB", status: "Under Scrutiny" }
|
|
21197
|
-
]
|
|
21198
|
-
},
|
|
21199
|
-
{
|
|
21200
|
-
fileId: 102,
|
|
21201
|
-
fileNumber: "FC-2026-0145",
|
|
21202
|
-
subject: "Sector 14 Commercial Complex Building Plan Sanction",
|
|
21203
|
-
workflowName: "Urban Development Clearance",
|
|
21204
|
-
department: "Urban Development",
|
|
21205
|
-
applicant: "Apex Constructions Pvt Ltd",
|
|
21206
|
-
category: "Commercial Sanction",
|
|
21207
|
-
financialYear: "2026-27",
|
|
21208
|
-
sender: "Apex Constructions Pvt Ltd",
|
|
21209
|
-
priority: "High",
|
|
21210
|
-
receivedDate: "05-Oct-2026 11:30 AM",
|
|
21211
|
-
dueDate: "12-Oct-2026",
|
|
21212
|
-
slaStatus: "Running (4d left)",
|
|
21213
|
-
status: "In Progress",
|
|
21214
|
-
assignedTo: "Town Planner Cell",
|
|
21215
|
-
currentStep: "Architectural Layout Verification",
|
|
21216
|
-
progressPercent: 40,
|
|
21217
|
-
stages: [
|
|
21218
|
-
{
|
|
21219
|
-
stageId: 1,
|
|
21220
|
-
title: "Application Registration",
|
|
21221
|
-
description: "Commercial sanction proposal filed.",
|
|
21222
|
-
status: "completed",
|
|
21223
|
-
date: "05-Oct-2026 11:30 AM",
|
|
21224
|
-
officer: "Town Planning Portal"
|
|
21225
|
-
},
|
|
21226
|
-
{
|
|
21227
|
-
stageId: 2,
|
|
21228
|
-
title: "Town Planning Scrutiny",
|
|
21229
|
-
description: "Floor area ratio and parking check.",
|
|
21230
|
-
status: "in-progress",
|
|
21231
|
-
date: "In Progress",
|
|
21232
|
-
officer: "Chief Town Planner"
|
|
21233
|
-
},
|
|
21234
|
-
{
|
|
21235
|
-
stageId: 3,
|
|
21236
|
-
title: "Fire & Safety NOC",
|
|
21237
|
-
description: "Driveway and structural load clearance.",
|
|
21238
|
-
status: "pending",
|
|
21239
|
-
date: "Pending Stage 2",
|
|
21240
|
-
officer: "Fire Safety Dept"
|
|
21241
|
-
},
|
|
21242
|
-
{
|
|
21243
|
-
stageId: 4,
|
|
21244
|
-
title: "Municipal Commissioner Sanction",
|
|
21245
|
-
description: "Final statutory sanction order.",
|
|
21246
|
-
status: "pending",
|
|
21247
|
-
date: "Target: 12-Oct-2026",
|
|
21248
|
-
officer: "Municipal Comm."
|
|
21249
|
-
}
|
|
21250
|
-
],
|
|
21251
|
-
movementHistory: [
|
|
21252
|
-
{
|
|
21253
|
-
id: 1,
|
|
21254
|
-
fromStep: "Citizen Portal",
|
|
21255
|
-
toStep: "Urban Planning Registry",
|
|
21256
|
-
action: "Filing Received",
|
|
21257
|
-
officer: "Apex Constructions",
|
|
21258
|
-
timestamp: "05-Oct-2026 11:30 AM",
|
|
21259
|
-
remarks: "Proposal registered under Commercial Category A."
|
|
21260
|
-
}
|
|
21261
|
-
],
|
|
21262
|
-
documents: [
|
|
21263
|
-
{ name: "Structural Design Blueprint (CAD)", type: "PDF", size: "9.2 MB", status: "Verified" },
|
|
21264
|
-
{ name: "Land Ownership Deed", type: "PDF", size: "2.1 MB", status: "Verified" }
|
|
21265
|
-
]
|
|
21266
|
-
},
|
|
21267
|
-
{
|
|
21268
|
-
fileId: 201,
|
|
21269
|
-
fileNumber: "FC-2026-0112",
|
|
21270
|
-
subject: "Hospital Expansion Fire Safety NOC & Site Clearance",
|
|
21271
|
-
workflowName: "Fire & Safety Clearance",
|
|
21272
|
-
department: "Public Safety",
|
|
21273
|
-
applicant: "City Hospital Trust",
|
|
21274
|
-
category: "Statutory NOC",
|
|
21275
|
-
financialYear: "2026-27",
|
|
21276
|
-
sender: "City Hospital Trust",
|
|
21277
|
-
priority: "Urgent",
|
|
21278
|
-
receivedDate: "03-Oct-2026 10:15 AM",
|
|
21279
|
-
dueDate: "08-Oct-2026",
|
|
21280
|
-
slaStatus: "Critical (14h left)",
|
|
21281
|
-
status: "Under Review",
|
|
21282
|
-
assignedTo: "Pankaj Jain (Reviewer)",
|
|
21283
|
-
currentStep: "Hydrant & Evacuation Inspection",
|
|
21284
|
-
progressPercent: 75,
|
|
21285
|
-
stages: [
|
|
21286
|
-
{
|
|
21287
|
-
stageId: 1,
|
|
21288
|
-
title: "Application Received",
|
|
21289
|
-
description: "200-bed extension fire clearance.",
|
|
21290
|
-
status: "completed",
|
|
21291
|
-
date: "03-Oct-2026 10:15 AM",
|
|
21292
|
-
officer: "Disaster Desk"
|
|
21293
|
-
},
|
|
21294
|
-
{
|
|
21295
|
-
stageId: 2,
|
|
21296
|
-
title: "Architectural Audit",
|
|
21297
|
-
description: "Emergency exits and fire lifts check.",
|
|
21298
|
-
status: "completed",
|
|
21299
|
-
date: "04-Oct-2026 02:00 PM",
|
|
21300
|
-
officer: "Pankaj Jain"
|
|
21301
|
-
},
|
|
21302
|
-
{
|
|
21303
|
-
stageId: 3,
|
|
21304
|
-
title: "Hydrant Pressure Test",
|
|
21305
|
-
description: "Physical inspection of water tanks.",
|
|
21306
|
-
status: "in-progress",
|
|
21307
|
-
date: "Running (Critical)",
|
|
21308
|
-
officer: "Inspection Team"
|
|
21309
|
-
},
|
|
21310
|
-
{
|
|
21311
|
-
stageId: 4,
|
|
21312
|
-
title: "Issuance of Certificate",
|
|
21313
|
-
description: "Final statutory NOC issuance.",
|
|
21314
|
-
status: "pending",
|
|
21315
|
-
date: "Target: 08-Oct-2026",
|
|
21316
|
-
officer: "DG Fire Services"
|
|
21317
|
-
}
|
|
21318
|
-
],
|
|
21319
|
-
movementHistory: [
|
|
21320
|
-
{
|
|
21321
|
-
id: 1,
|
|
21322
|
-
fromStep: "City Hospital Trust",
|
|
21323
|
-
toStep: "Public Safety Central Registry",
|
|
21324
|
-
action: "Application Filed",
|
|
21325
|
-
officer: "Trust Secretary",
|
|
21326
|
-
timestamp: "03-Oct-2026 10:15 AM",
|
|
21327
|
-
remarks: "Priority expedited due to public healthcare expansion."
|
|
21328
|
-
}
|
|
21329
|
-
],
|
|
21330
|
-
documents: [
|
|
21331
|
-
{ name: "Emergency Evacuation Route Map", type: "PDF", size: "3.9 MB", status: "Verified" }
|
|
21332
|
-
]
|
|
21333
|
-
},
|
|
21334
|
-
{
|
|
21335
|
-
fileId: 104,
|
|
21336
|
-
fileNumber: "FC-2026-0153",
|
|
21337
|
-
subject: "Vendor Onboarding & Due Diligence - Cloud Services",
|
|
21338
|
-
workflowName: "Procurement & Contracts",
|
|
21339
|
-
department: "Procurement Cell",
|
|
21340
|
-
applicant: "Global Infotech Solutions",
|
|
21341
|
-
category: "Vendor Registration",
|
|
21342
|
-
financialYear: "2026-27",
|
|
21343
|
-
sender: "Global Infotech Solutions",
|
|
21344
|
-
priority: "High",
|
|
21345
|
-
receivedDate: "06-Oct-2026 04:10 PM",
|
|
21346
|
-
dueDate: "11-Oct-2026",
|
|
21347
|
-
slaStatus: "Running (3d left)",
|
|
21348
|
-
status: "In Progress",
|
|
21349
|
-
assignedTo: "Tender Committee",
|
|
21350
|
-
currentStep: "Financial Bid Eligibility",
|
|
21351
|
-
progressPercent: 45,
|
|
21352
|
-
stages: [
|
|
21353
|
-
{
|
|
21354
|
-
stageId: 1,
|
|
21355
|
-
title: "Vendor Registration",
|
|
21356
|
-
description: "Tender credentials submitted.",
|
|
21357
|
-
status: "completed",
|
|
21358
|
-
date: "06-Oct-2026 04:10 PM",
|
|
21359
|
-
officer: "e-Procurement Portal"
|
|
21360
|
-
},
|
|
21361
|
-
{
|
|
21362
|
-
stageId: 2,
|
|
21363
|
-
title: "Technical Eligibility",
|
|
21364
|
-
description: "Past experience evaluation.",
|
|
21365
|
-
status: "completed",
|
|
21366
|
-
date: "07-Oct-2026 10:00 AM",
|
|
21367
|
-
officer: "Evaluation Board"
|
|
21368
|
-
},
|
|
21369
|
-
{
|
|
21370
|
-
stageId: 3,
|
|
21371
|
-
title: "Financial Eligibility",
|
|
21372
|
-
description: "Balance sheets and solvency audit.",
|
|
21373
|
-
status: "in-progress",
|
|
21374
|
-
date: "Running",
|
|
21375
|
-
officer: "Finance Officer"
|
|
21376
|
-
},
|
|
21377
|
-
{
|
|
21378
|
-
stageId: 4,
|
|
21379
|
-
title: "Contract Award",
|
|
21380
|
-
description: "SLA and agreement execution.",
|
|
21381
|
-
status: "pending",
|
|
21382
|
-
date: "Target: 11-Oct-2026",
|
|
21383
|
-
officer: "Director Procurement"
|
|
21384
|
-
}
|
|
21385
|
-
],
|
|
21386
|
-
movementHistory: [
|
|
21387
|
-
{
|
|
21388
|
-
id: 1,
|
|
21389
|
-
fromStep: "Vendor Portal",
|
|
21390
|
-
toStep: "Procurement Intake",
|
|
21391
|
-
action: "Bid Registered",
|
|
21392
|
-
officer: "Global Infotech",
|
|
21393
|
-
timestamp: "06-Oct-2026 04:10 PM",
|
|
21394
|
-
remarks: "Online submission with Earnest Money Deposit receipt."
|
|
21395
|
-
}
|
|
21396
|
-
],
|
|
21397
|
-
documents: [
|
|
21398
|
-
{ name: "Audited Balance Sheets (3 Years)", type: "PDF", size: "5.1 MB", status: "Verified" }
|
|
21399
|
-
]
|
|
21400
|
-
},
|
|
21401
|
-
{
|
|
21402
|
-
fileId: 203,
|
|
21403
|
-
fileNumber: "FC-2026-0128",
|
|
21404
|
-
subject: "Public Interest Petition Regarding Street Light Restoration",
|
|
21405
|
-
workflowName: "Citizen Grievance Redressal",
|
|
21406
|
-
department: "Municipal Affairs",
|
|
21407
|
-
applicant: "Ward 12 Residents Forum",
|
|
21408
|
-
category: "Citizen Grievance",
|
|
21409
|
-
financialYear: "2026-27",
|
|
21410
|
-
sender: "Ward 12 Residents Forum",
|
|
21411
|
-
priority: "Medium",
|
|
21412
|
-
receivedDate: "04-Oct-2026 03:40 PM",
|
|
21413
|
-
dueDate: "12-Oct-2026",
|
|
21414
|
-
slaStatus: "Running (4d left)",
|
|
21415
|
-
status: "In Progress",
|
|
21416
|
-
assignedTo: "Pankaj Jain",
|
|
21417
|
-
currentStep: "Field Action Team Dispatch",
|
|
21418
|
-
progressPercent: 55,
|
|
21419
|
-
stages: [
|
|
21420
|
-
{
|
|
21421
|
-
stageId: 1,
|
|
21422
|
-
title: "Petition Lodged",
|
|
21423
|
-
description: "Grievance received through CM Helpline.",
|
|
21424
|
-
status: "completed",
|
|
21425
|
-
date: "04-Oct-2026 03:40 PM",
|
|
21426
|
-
officer: "Citizen Helpdesk"
|
|
21427
|
-
},
|
|
21428
|
-
{
|
|
21429
|
-
stageId: 2,
|
|
21430
|
-
title: "Ward Engineer Assigned",
|
|
21431
|
-
description: "Underground cabling check.",
|
|
21432
|
-
status: "completed",
|
|
21433
|
-
date: "05-Oct-2026 10:00 AM",
|
|
21434
|
-
officer: "Assistant Engineer"
|
|
21435
|
-
},
|
|
21436
|
-
{
|
|
21437
|
-
stageId: 3,
|
|
21438
|
-
title: "Repair & Cable Laying",
|
|
21439
|
-
description: "Cable and fixture replacements.",
|
|
21440
|
-
status: "in-progress",
|
|
21441
|
-
date: "Running",
|
|
21442
|
-
officer: "Field Squad"
|
|
21443
|
-
},
|
|
21444
|
-
{
|
|
21445
|
-
stageId: 4,
|
|
21446
|
-
title: "Resolution & Closure",
|
|
21447
|
-
description: "Confirmation with petitioner.",
|
|
21448
|
-
status: "pending",
|
|
21449
|
-
date: "Target: 12-Oct-2026",
|
|
21450
|
-
officer: "Pankaj Jain"
|
|
21451
|
-
}
|
|
21452
|
-
],
|
|
21453
|
-
movementHistory: [
|
|
21454
|
-
{
|
|
21455
|
-
id: 1,
|
|
21456
|
-
fromStep: "Citizen Helpdesk",
|
|
21457
|
-
toStep: "Municipal Electrical Division",
|
|
21458
|
-
action: "Grievance Categorized",
|
|
21459
|
-
officer: "Helpdesk Officer",
|
|
21460
|
-
timestamp: "04-Oct-2026 03:40 PM",
|
|
21461
|
-
remarks: "Ward 12 Main Sector street illumination failure complaint."
|
|
21462
|
-
}
|
|
21463
|
-
],
|
|
21464
|
-
documents: [
|
|
21465
|
-
{ name: "Citizen Complaint Letter", type: "PDF", size: "1.1 MB", status: "Verified" }
|
|
21466
|
-
]
|
|
21467
|
-
},
|
|
21468
|
-
{
|
|
21469
|
-
fileId: 301,
|
|
21470
|
-
fileNumber: "FC-2026-0095",
|
|
21471
|
-
subject: "National Highway Bypass Land Acquisition Settlement",
|
|
21472
|
-
workflowName: "Land Revenue & Settlement",
|
|
21473
|
-
department: "Land & Revenue",
|
|
21474
|
-
applicant: "District Collectorate",
|
|
21475
|
-
category: "Land Settlement",
|
|
21476
|
-
financialYear: "2026-27",
|
|
21477
|
-
sender: "District Magistrate Secretariat",
|
|
21478
|
-
priority: "High",
|
|
21479
|
-
receivedDate: "28-Sep-2026 11:00 AM",
|
|
21480
|
-
dueDate: "05-Oct-2026",
|
|
21481
|
-
slaStatus: "Met / Completed",
|
|
21482
|
-
status: "Completed",
|
|
21483
|
-
assignedTo: "Executive Director",
|
|
21484
|
-
currentStep: "Award Pronouncement & Compensation",
|
|
21485
|
-
progressPercent: 100,
|
|
21486
|
-
stages: [
|
|
21487
|
-
{
|
|
21488
|
-
stageId: 1,
|
|
21489
|
-
title: "Section 4 Notification",
|
|
21490
|
-
description: "Survey of affected parcels.",
|
|
21491
|
-
status: "completed",
|
|
21492
|
-
date: "28-Sep-2026 11:00 AM",
|
|
21493
|
-
officer: "Land Acquisition Officer"
|
|
21494
|
-
},
|
|
21495
|
-
{
|
|
21496
|
-
stageId: 2,
|
|
21497
|
-
title: "Public Hearing",
|
|
21498
|
-
description: "Hearing of titleholders.",
|
|
21499
|
-
status: "completed",
|
|
21500
|
-
date: "30-Sep-2026 04:00 PM",
|
|
21501
|
-
officer: "ADM Revenue"
|
|
21502
|
-
},
|
|
21503
|
-
{
|
|
21504
|
-
stageId: 3,
|
|
21505
|
-
title: "Award Declaration",
|
|
21506
|
-
description: "Compensation disbursed to bank accounts.",
|
|
21507
|
-
status: "completed",
|
|
21508
|
-
date: "04-Oct-2026 01:30 PM",
|
|
21509
|
-
officer: "Executive Director"
|
|
21510
|
-
},
|
|
21511
|
-
{
|
|
21512
|
-
stageId: 4,
|
|
21513
|
-
title: "Possession Handover",
|
|
21514
|
-
description: "Corridor transferred to NHAI.",
|
|
21515
|
-
status: "completed",
|
|
21516
|
-
date: "05-Oct-2026 11:00 AM",
|
|
21517
|
-
officer: "DM Secretariat"
|
|
21518
|
-
}
|
|
21519
|
-
],
|
|
21520
|
-
movementHistory: [
|
|
21521
|
-
{
|
|
21522
|
-
id: 1,
|
|
21523
|
-
fromStep: "NHAI Project Office",
|
|
21524
|
-
toStep: "Revenue Department",
|
|
21525
|
-
action: "Acquisition Proposed",
|
|
21526
|
-
officer: "Project Director",
|
|
21527
|
-
timestamp: "28-Sep-2026 11:00 AM",
|
|
21528
|
-
remarks: "Proposal for bypass corridor land transfer."
|
|
21529
|
-
}
|
|
21530
|
-
],
|
|
21531
|
-
documents: [
|
|
21532
|
-
{ name: "Final Land Award Gazette Notification", type: "PDF", size: "4.1 MB", status: "Verified" }
|
|
21533
|
-
]
|
|
21534
|
-
}
|
|
21535
|
-
];
|
|
20871
|
+
var APPLICATION_DATABASE = [];
|
|
21536
20872
|
function TrackApplicationMain() {
|
|
21537
20873
|
var _a, _b, _c;
|
|
21538
20874
|
const [trackQuery, setTrackQuery] = useState72("");
|
|
21539
|
-
const [selectedApplication, setSelectedApplication] = useState72(
|
|
21540
|
-
const [isSearching, setIsSearching] = useState72(false);
|
|
20875
|
+
const [selectedApplication, setSelectedApplication] = useState72(null);
|
|
21541
20876
|
const [activeTab, setActiveTab] = useState72("timeline");
|
|
21542
20877
|
const [viewMode, setViewMode] = useState72("tracker");
|
|
21543
20878
|
const [tableSearch, setTableSearch] = useState72("");
|
|
@@ -21547,119 +20882,25 @@ function TrackApplicationMain() {
|
|
|
21547
20882
|
const [sortColumn, setSortColumn] = useState72("");
|
|
21548
20883
|
const [sortDirection, setSortDirection] = useState72("asc");
|
|
21549
20884
|
const [slipModalOpen, setSlipModalOpen] = useState72(false);
|
|
21550
|
-
const
|
|
21551
|
-
"FC-2026-0120",
|
|
21552
|
-
"FC-2026-0142",
|
|
21553
|
-
"FC-2026-0145",
|
|
21554
|
-
"FC-2026-0112",
|
|
21555
|
-
"FC-2026-0153",
|
|
21556
|
-
"FC-2026-0128",
|
|
21557
|
-
"FC-2026-0095"
|
|
21558
|
-
];
|
|
21559
|
-
const handleTrack = (fileNoToTrack) => {
|
|
20885
|
+
const handleTrack = async (fileNoToTrack) => {
|
|
21560
20886
|
const targetNo = (fileNoToTrack || trackQuery).trim().toUpperCase();
|
|
21561
20887
|
if (!targetNo) {
|
|
21562
20888
|
Swal30.fire({
|
|
21563
20889
|
icon: "warning",
|
|
21564
20890
|
title: "Please enter an Application No.",
|
|
21565
|
-
text: "
|
|
20891
|
+
text: "Enter an application or file number to search.",
|
|
21566
20892
|
confirmButtonColor: "#2563eb"
|
|
21567
20893
|
});
|
|
21568
20894
|
return;
|
|
21569
20895
|
}
|
|
21570
|
-
|
|
21571
|
-
|
|
21572
|
-
|
|
21573
|
-
|
|
21574
|
-
|
|
21575
|
-
|
|
21576
|
-
|
|
21577
|
-
|
|
21578
|
-
setTrackQuery(matched.fileNumber);
|
|
21579
|
-
setViewMode("tracker");
|
|
21580
|
-
Swal30.fire({
|
|
21581
|
-
icon: "success",
|
|
21582
|
-
title: "Application Found",
|
|
21583
|
-
text: `${matched.fileNumber} (${matched.workflowName})`,
|
|
21584
|
-
toast: true,
|
|
21585
|
-
position: "top-end",
|
|
21586
|
-
timer: 1800,
|
|
21587
|
-
showConfirmButton: false
|
|
21588
|
-
});
|
|
21589
|
-
} else {
|
|
21590
|
-
const synthesizedApp = {
|
|
21591
|
-
fileId: Date.now(),
|
|
21592
|
-
fileNumber: targetNo,
|
|
21593
|
-
subject: `General Regulatory & Administrative Filing for ${targetNo}`,
|
|
21594
|
-
workflowName: "Citizen & Enterprise Service Clearance",
|
|
21595
|
-
department: "General Administration",
|
|
21596
|
-
applicant: "Registered Enterprise Applicant",
|
|
21597
|
-
category: "General Application",
|
|
21598
|
-
financialYear: "2026-27",
|
|
21599
|
-
sender: "Registered Enterprise Applicant",
|
|
21600
|
-
priority: "Medium",
|
|
21601
|
-
receivedDate: "07-Oct-2026 10:00 AM",
|
|
21602
|
-
dueDate: "15-Oct-2026",
|
|
21603
|
-
slaStatus: "Running (8d left)",
|
|
21604
|
-
status: "Under Scrutiny",
|
|
21605
|
-
assignedTo: "Pankaj Jain (Reviewer)",
|
|
21606
|
-
currentStep: "Document Verification & Initial Scrutiny",
|
|
21607
|
-
progressPercent: 40,
|
|
21608
|
-
stages: [
|
|
21609
|
-
{
|
|
21610
|
-
stageId: 1,
|
|
21611
|
-
title: "Application Registration",
|
|
21612
|
-
description: `Application ${targetNo} registered successfully.`,
|
|
21613
|
-
status: "completed",
|
|
21614
|
-
date: "07-Oct-2026 10:00 AM",
|
|
21615
|
-
officer: "System Gateway"
|
|
21616
|
-
},
|
|
21617
|
-
{
|
|
21618
|
-
stageId: 2,
|
|
21619
|
-
title: "Scrutiny & Verification",
|
|
21620
|
-
description: "Reviewer checking attached documents.",
|
|
21621
|
-
status: "in-progress",
|
|
21622
|
-
date: "Running (Active)",
|
|
21623
|
-
officer: "Pankaj Jain (Reviewer)"
|
|
21624
|
-
},
|
|
21625
|
-
{
|
|
21626
|
-
stageId: 3,
|
|
21627
|
-
title: "Competent Authority Decision",
|
|
21628
|
-
description: "Final approval by department directorate.",
|
|
21629
|
-
status: "pending",
|
|
21630
|
-
date: "Pending Stage 2",
|
|
21631
|
-
officer: "Designated Authority"
|
|
21632
|
-
}
|
|
21633
|
-
],
|
|
21634
|
-
movementHistory: [
|
|
21635
|
-
{
|
|
21636
|
-
id: 1,
|
|
21637
|
-
fromStep: "Portal Inward Desk",
|
|
21638
|
-
toStep: "Central Review Cell",
|
|
21639
|
-
action: "Submitted & Allocated",
|
|
21640
|
-
officer: "System Router",
|
|
21641
|
-
timestamp: "07-Oct-2026 10:00 AM",
|
|
21642
|
-
remarks: `Application ${targetNo} received and queued for review.`
|
|
21643
|
-
}
|
|
21644
|
-
],
|
|
21645
|
-
documents: [
|
|
21646
|
-
{ name: "Registration Acknowledgement", type: "PDF", size: "850 KB", status: "Verified" }
|
|
21647
|
-
]
|
|
21648
|
-
};
|
|
21649
|
-
setSelectedApplication(synthesizedApp);
|
|
21650
|
-
setTrackQuery(targetNo);
|
|
21651
|
-
setViewMode("tracker");
|
|
21652
|
-
Swal30.fire({
|
|
21653
|
-
icon: "info",
|
|
21654
|
-
title: "Application Loaded",
|
|
21655
|
-
text: `Application ${targetNo} loaded in tracking dashboard.`,
|
|
21656
|
-
toast: true,
|
|
21657
|
-
position: "top-end",
|
|
21658
|
-
timer: 2e3,
|
|
21659
|
-
showConfirmButton: false
|
|
21660
|
-
});
|
|
21661
|
-
}
|
|
21662
|
-
}, 200);
|
|
20896
|
+
setTrackQuery(targetNo);
|
|
20897
|
+
setSelectedApplication(null);
|
|
20898
|
+
await Swal30.fire({
|
|
20899
|
+
icon: "warning",
|
|
20900
|
+
title: "Tracking API is not configured",
|
|
20901
|
+
text: "No tracking endpoint is configured, so application data cannot be loaded.",
|
|
20902
|
+
confirmButtonColor: "#2563eb"
|
|
20903
|
+
});
|
|
21663
20904
|
};
|
|
21664
20905
|
const handleCopyFileNumber = (no) => {
|
|
21665
20906
|
navigator.clipboard.writeText(no);
|
|
@@ -21751,22 +20992,7 @@ function TrackApplicationMain() {
|
|
|
21751
20992
|
] })
|
|
21752
20993
|
] }),
|
|
21753
20994
|
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:gap-3 fc:shrink-0", children: [
|
|
21754
|
-
/* @__PURE__ */
|
|
21755
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:relative fc:shrink-0", children: [
|
|
21756
|
-
/* @__PURE__ */ jsx99("div", { className: "fc:w-9 fc:h-9 fc:rounded-xl fc:bg-gradient-to-br fc:from-blue-600 fc:to-indigo-600 fc:text-white fc:font-extrabold fc:text-xs fc:flex fc:items-center fc:justify-center fc:shadow-sm", children: "PJ" }),
|
|
21757
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:absolute fc:-bottom-0.5 fc:-right-0.5 fc:w-2.5 fc:h-2.5 fc:bg-emerald-500 fc:border-2 fc:border-white fc:rounded-full" })
|
|
21758
|
-
] }),
|
|
21759
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:flex-col fc:justify-center", children: [
|
|
21760
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:gap-2", children: [
|
|
21761
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-extrabold fc:text-slate-800", children: "Pankaj Jain" }),
|
|
21762
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:bg-blue-50 fc:text-blue-700 fc:px-1.5 fc:py-0.2 fc:rounded fc:border fc:border-blue-100", children: "Reviewer" })
|
|
21763
|
-
] }),
|
|
21764
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:gap-1.5 fc:mt-0.5", children: [
|
|
21765
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:text-slate-400 fc:font-medium", children: "Active Step:" }),
|
|
21766
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-indigo-600 fc:bg-indigo-50/80 fc:px-1.5 fc:py-0.2 fc:rounded", children: "Scrutiny & Review" })
|
|
21767
|
-
] })
|
|
21768
|
-
] })
|
|
21769
|
-
] }),
|
|
20995
|
+
/* @__PURE__ */ jsx99("div", { className: "fc:rounded-xl fc:border fc:border-slate-200 fc:bg-slate-50 fc:px-3 fc:py-2 fc:text-xs fc:font-semibold fc:text-slate-600", children: (selectedApplication == null ? void 0 : selectedApplication.fileNumber) || "No application selected" }),
|
|
21770
20996
|
/* @__PURE__ */ jsx99(
|
|
21771
20997
|
"button",
|
|
21772
20998
|
{
|
|
@@ -21780,412 +21006,400 @@ function TrackApplicationMain() {
|
|
|
21780
21006
|
] })
|
|
21781
21007
|
] })
|
|
21782
21008
|
] }),
|
|
21783
|
-
/* @__PURE__ */
|
|
21784
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:
|
|
21785
|
-
/* @__PURE__ */ jsxs98(
|
|
21786
|
-
|
|
21787
|
-
|
|
21009
|
+
/* @__PURE__ */ jsx99("div", { className: "fc:bg-white fc:border fc:border-slate-200 fc:rounded-2xl fc:p-3.5 fc:shadow-sm", children: /* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:flex-col lg:fc:flex-row lg:fc:items-center lg:fc:justify-between fc:gap-3", children: [
|
|
21010
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:inline-flex fc:items-center fc:p-1 fc:bg-slate-100/90 fc:rounded-xl fc:border fc:border-slate-200/80 fc:gap-1 fc:shrink-0", children: [
|
|
21011
|
+
/* @__PURE__ */ jsxs98(
|
|
21012
|
+
"button",
|
|
21013
|
+
{
|
|
21014
|
+
type: "button",
|
|
21015
|
+
onClick: () => setViewMode("tracker"),
|
|
21016
|
+
className: `fc:flex fc:items-center fc:gap-2 fc:px-3.5 fc:py-2 fc:rounded-lg fc:text-xs fc:font-bold fc:transition-all ${viewMode === "tracker" ? "fc:bg-blue-600 fc:text-white fc:shadow-sm" : "fc:text-slate-600 hover:fc:text-slate-900"}`,
|
|
21017
|
+
children: [
|
|
21018
|
+
/* @__PURE__ */ jsx99(RiRouteLine2, { size: 15 }),
|
|
21019
|
+
/* @__PURE__ */ jsx99("span", { children: "Tracking Dashboard" })
|
|
21020
|
+
]
|
|
21021
|
+
}
|
|
21022
|
+
),
|
|
21023
|
+
/* @__PURE__ */ jsxs98(
|
|
21024
|
+
"button",
|
|
21025
|
+
{
|
|
21026
|
+
type: "button",
|
|
21027
|
+
onClick: () => setViewMode("registry"),
|
|
21028
|
+
className: `fc:flex fc:items-center fc:gap-2 fc:px-3.5 fc:py-2 fc:rounded-lg fc:text-xs fc:font-bold fc:transition-all ${viewMode === "registry" ? "fc:bg-blue-600 fc:text-white fc:shadow-sm" : "fc:text-slate-600 hover:fc:text-slate-900"}`,
|
|
21029
|
+
children: [
|
|
21030
|
+
/* @__PURE__ */ jsx99(RiFileListLine, { size: 15 }),
|
|
21031
|
+
/* @__PURE__ */ jsx99("span", { children: "Applications Registry" }),
|
|
21032
|
+
/* @__PURE__ */ jsx99(
|
|
21033
|
+
"span",
|
|
21034
|
+
{
|
|
21035
|
+
className: `fc:px-1.5 fc:py-0.2 fc:rounded-full fc:text-[10px] fc:font-extrabold ${viewMode === "registry" ? "fc:bg-white/20 fc:text-white" : "fc:bg-slate-200 fc:text-slate-700"}`,
|
|
21036
|
+
children: APPLICATION_DATABASE.length
|
|
21037
|
+
}
|
|
21038
|
+
)
|
|
21039
|
+
]
|
|
21040
|
+
}
|
|
21041
|
+
)
|
|
21042
|
+
] }),
|
|
21043
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:gap-2 fc:flex-1 lg:fc:max-w-md", children: [
|
|
21044
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:relative fc:flex-1", children: [
|
|
21045
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:absolute fc:left-3 fc:top-1/2 fc:-translate-y-1/2 fc:text-slate-400", children: /* @__PURE__ */ jsx99(RiSearchLine2, { size: 16 }) }),
|
|
21046
|
+
/* @__PURE__ */ jsx99(
|
|
21047
|
+
"input",
|
|
21788
21048
|
{
|
|
21789
|
-
type: "
|
|
21790
|
-
|
|
21791
|
-
|
|
21792
|
-
|
|
21793
|
-
|
|
21794
|
-
|
|
21795
|
-
]
|
|
21049
|
+
type: "text",
|
|
21050
|
+
value: trackQuery,
|
|
21051
|
+
onChange: (e) => setTrackQuery(e.target.value),
|
|
21052
|
+
onKeyDown: (e) => e.key === "Enter" && handleTrack(),
|
|
21053
|
+
placeholder: "Enter App No. / File No.",
|
|
21054
|
+
className: "fc:w-full fc:pl-9 fc:pr-8 fc:py-2 fc:bg-slate-50 focus:fc:bg-white fc:border fc:border-slate-200 focus:fc:border-blue-500 fc:rounded-xl fc:text-xs fc:font-semibold fc:text-slate-800 fc:outline-none fc:transition-all"
|
|
21796
21055
|
}
|
|
21797
21056
|
),
|
|
21798
|
-
/* @__PURE__ */
|
|
21057
|
+
trackQuery && /* @__PURE__ */ jsx99(
|
|
21799
21058
|
"button",
|
|
21800
21059
|
{
|
|
21801
21060
|
type: "button",
|
|
21802
|
-
onClick: () =>
|
|
21803
|
-
className:
|
|
21804
|
-
children:
|
|
21805
|
-
/* @__PURE__ */ jsx99(RiFileListLine, { size: 15 }),
|
|
21806
|
-
/* @__PURE__ */ jsx99("span", { children: "Applications Registry" }),
|
|
21807
|
-
/* @__PURE__ */ jsx99(
|
|
21808
|
-
"span",
|
|
21809
|
-
{
|
|
21810
|
-
className: `fc:px-1.5 fc:py-0.2 fc:rounded-full fc:text-[10px] fc:font-extrabold ${viewMode === "registry" ? "fc:bg-white/20 fc:text-white" : "fc:bg-slate-200 fc:text-slate-700"}`,
|
|
21811
|
-
children: APPLICATION_DATABASE.length
|
|
21812
|
-
}
|
|
21813
|
-
)
|
|
21814
|
-
]
|
|
21061
|
+
onClick: () => setTrackQuery(""),
|
|
21062
|
+
className: "fc:absolute fc:right-2.5 fc:top-1/2 fc:-translate-y-1/2 fc:text-slate-400 hover:fc:text-slate-600",
|
|
21063
|
+
children: /* @__PURE__ */ jsx99(RiCloseLine5, { size: 14 })
|
|
21815
21064
|
}
|
|
21816
21065
|
)
|
|
21817
21066
|
] }),
|
|
21818
|
-
/* @__PURE__ */ jsxs98(
|
|
21819
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:relative fc:flex-1", children: [
|
|
21820
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:absolute fc:left-3 fc:top-1/2 fc:-translate-y-1/2 fc:text-slate-400", children: /* @__PURE__ */ jsx99(RiSearchLine2, { size: 16 }) }),
|
|
21821
|
-
/* @__PURE__ */ jsx99(
|
|
21822
|
-
"input",
|
|
21823
|
-
{
|
|
21824
|
-
type: "text",
|
|
21825
|
-
value: trackQuery,
|
|
21826
|
-
onChange: (e) => setTrackQuery(e.target.value),
|
|
21827
|
-
onKeyDown: (e) => e.key === "Enter" && handleTrack(),
|
|
21828
|
-
placeholder: "Enter App No. / File No. (e.g. FC-2026-0120)...",
|
|
21829
|
-
className: "fc:w-full fc:pl-9 fc:pr-8 fc:py-2 fc:bg-slate-50 focus:fc:bg-white fc:border fc:border-slate-200 focus:fc:border-blue-500 fc:rounded-xl fc:text-xs fc:font-semibold fc:text-slate-800 fc:outline-none fc:transition-all"
|
|
21830
|
-
}
|
|
21831
|
-
),
|
|
21832
|
-
trackQuery && /* @__PURE__ */ jsx99(
|
|
21833
|
-
"button",
|
|
21834
|
-
{
|
|
21835
|
-
type: "button",
|
|
21836
|
-
onClick: () => setTrackQuery(""),
|
|
21837
|
-
className: "fc:absolute fc:right-2.5 fc:top-1/2 fc:-translate-y-1/2 fc:text-slate-400 hover:fc:text-slate-600",
|
|
21838
|
-
children: /* @__PURE__ */ jsx99(RiCloseLine5, { size: 14 })
|
|
21839
|
-
}
|
|
21840
|
-
)
|
|
21841
|
-
] }),
|
|
21842
|
-
/* @__PURE__ */ jsx99(
|
|
21843
|
-
"button",
|
|
21844
|
-
{
|
|
21845
|
-
type: "button",
|
|
21846
|
-
onClick: () => handleTrack(),
|
|
21847
|
-
disabled: isSearching,
|
|
21848
|
-
className: "fc:flex fc:items-center fc:gap-1.5 fc:px-4 fc:py-2 fc:bg-blue-600 hover:fc:bg-blue-700 fc:text-white fc:text-xs fc:font-bold fc:rounded-xl fc:shadow-sm fc:transition-all fc:shrink-0 fc:cursor-pointer disabled:fc:opacity-50",
|
|
21849
|
-
children: isSearching ? /* @__PURE__ */ jsxs98(Fragment5, { children: [
|
|
21850
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:inline-block fc:w-3.5 fc:h-3.5 fc:border-2 fc:border-white fc:border-t-transparent fc:rounded-full fc:animate-spin" }),
|
|
21851
|
-
/* @__PURE__ */ jsx99("span", { children: "Tracking..." })
|
|
21852
|
-
] }) : /* @__PURE__ */ jsxs98(Fragment5, { children: [
|
|
21853
|
-
/* @__PURE__ */ jsx99(RiRouteLine2, { size: 14 }),
|
|
21854
|
-
/* @__PURE__ */ jsx99("span", { children: "Track Now" })
|
|
21855
|
-
] })
|
|
21856
|
-
}
|
|
21857
|
-
)
|
|
21858
|
-
] })
|
|
21859
|
-
] }),
|
|
21860
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:gap-1.5 fc:mt-2.5 fc:pt-2.5 fc:border-t fc:border-slate-100 fc:flex-wrap", children: [
|
|
21861
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:tracking-wider fc:mr-1", children: "Quick Track:" }),
|
|
21862
|
-
popularFileNumbers.map((no) => /* @__PURE__ */ jsx99(
|
|
21067
|
+
/* @__PURE__ */ jsxs98(
|
|
21863
21068
|
"button",
|
|
21864
21069
|
{
|
|
21865
21070
|
type: "button",
|
|
21866
|
-
onClick: () => handleTrack(
|
|
21867
|
-
className:
|
|
21868
|
-
children:
|
|
21869
|
-
|
|
21870
|
-
|
|
21871
|
-
|
|
21071
|
+
onClick: () => handleTrack(),
|
|
21072
|
+
className: "fc:flex fc:items-center fc:gap-1.5 fc:px-4 fc:py-2 fc:bg-blue-600 hover:fc:bg-blue-700 fc:text-white fc:text-xs fc:font-bold fc:rounded-xl fc:shadow-sm fc:transition-all fc:shrink-0 fc:cursor-pointer disabled:fc:opacity-50",
|
|
21073
|
+
children: [
|
|
21074
|
+
/* @__PURE__ */ jsx99(RiRouteLine2, { size: 14 }),
|
|
21075
|
+
/* @__PURE__ */ jsx99("span", { children: "Track Now" })
|
|
21076
|
+
]
|
|
21077
|
+
}
|
|
21078
|
+
)
|
|
21872
21079
|
] })
|
|
21873
|
-
] }),
|
|
21080
|
+
] }) }),
|
|
21874
21081
|
/* @__PURE__ */ jsx99("div", { className: "fc:bg-white fc:border fc:border-slate-200 fc:rounded-3xl fc:shadow-sm fc:p-5 fc:flex fc:flex-col", children: viewMode === "tracker" ? (
|
|
21875
21082
|
/* ========================================================
|
|
21876
21083
|
VIEW 1: LIVE TRACKING DASHBOARD
|
|
21877
21084
|
======================================================== */
|
|
21878
|
-
/* @__PURE__ */
|
|
21879
|
-
/* @__PURE__ */ jsxs98(
|
|
21880
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:
|
|
21881
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:gap-
|
|
21882
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:
|
|
21883
|
-
/* @__PURE__ */
|
|
21884
|
-
|
|
21885
|
-
"
|
|
21886
|
-
|
|
21085
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:space-y-4", children: [
|
|
21086
|
+
selectedApplication && /* @__PURE__ */ jsxs98(Fragment5, { children: [
|
|
21087
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:rounded-2xl fc:border fc:border-blue-100 fc:bg-gradient-to-r fc:from-blue-50/80 fc:via-indigo-50/40 fc:to-white fc:p-4.5 fc:shadow-sm", children: [
|
|
21088
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:justify-between fc:gap-3 fc:flex-wrap", children: [
|
|
21089
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:gap-2 fc:flex-wrap", children: [
|
|
21090
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:inline-flex fc:items-center fc:gap-1.5 fc:bg-blue-600 fc:text-white fc:text-xs fc:font-bold fc:px-3 fc:py-1 fc:rounded-lg fc:shadow-sm", children: [
|
|
21091
|
+
/* @__PURE__ */ jsx99(RiRouteLine2, { size: 13 }),
|
|
21092
|
+
/* @__PURE__ */ jsxs98("span", { children: [
|
|
21093
|
+
"App No: ",
|
|
21094
|
+
selectedApplication.fileNumber
|
|
21095
|
+
] })
|
|
21096
|
+
] }),
|
|
21097
|
+
/* @__PURE__ */ jsx99(
|
|
21098
|
+
"button",
|
|
21099
|
+
{
|
|
21100
|
+
type: "button",
|
|
21101
|
+
onClick: () => handleCopyFileNumber(selectedApplication.fileNumber),
|
|
21102
|
+
title: "Copy Application Number",
|
|
21103
|
+
className: "fc:text-blue-600 hover:fc:text-blue-800 fc:p-1 fc:rounded-md hover:fc:bg-blue-100/70 fc:transition-all",
|
|
21104
|
+
children: /* @__PURE__ */ jsx99(RiFileCopyLine, { size: 14 })
|
|
21105
|
+
}
|
|
21106
|
+
),
|
|
21107
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-bold fc:px-2.5 fc:py-0.5 fc:rounded-full fc:bg-white fc:border fc:border-slate-200 fc:text-slate-800", children: selectedApplication.workflowName }),
|
|
21108
|
+
/* @__PURE__ */ jsxs98(
|
|
21109
|
+
"span",
|
|
21110
|
+
{
|
|
21111
|
+
className: `fc:text-xs fc:font-bold fc:px-2.5 fc:py-0.5 fc:rounded-full fc:border ${selectedApplication.priority === "Urgent" ? "fc:bg-red-50 fc:text-red-700 fc:border-red-200" : selectedApplication.priority === "High" ? "fc:bg-amber-50 fc:text-amber-700 fc:border-amber-200" : "fc:bg-blue-50 fc:text-blue-700 fc:border-blue-200"}`,
|
|
21112
|
+
children: [
|
|
21113
|
+
selectedApplication.priority,
|
|
21114
|
+
" Priority"
|
|
21115
|
+
]
|
|
21116
|
+
}
|
|
21117
|
+
),
|
|
21118
|
+
/* @__PURE__ */ jsxs98("span", { className: "fc:text-xs fc:font-bold fc:px-2.5 fc:py-0.5 fc:rounded-full fc:bg-emerald-50 fc:text-emerald-700 fc:border fc:border-emerald-200", children: [
|
|
21119
|
+
"Status: ",
|
|
21120
|
+
selectedApplication.status
|
|
21887
21121
|
] })
|
|
21888
21122
|
] }),
|
|
21889
|
-
/* @__PURE__ */
|
|
21123
|
+
/* @__PURE__ */ jsxs98(
|
|
21890
21124
|
"button",
|
|
21891
21125
|
{
|
|
21892
21126
|
type: "button",
|
|
21893
|
-
onClick: () =>
|
|
21894
|
-
|
|
21895
|
-
className: "fc:text-blue-600 hover:fc:text-blue-800 fc:p-1 fc:rounded-md hover:fc:bg-blue-100/70 fc:transition-all",
|
|
21896
|
-
children: /* @__PURE__ */ jsx99(RiFileCopyLine, { size: 14 })
|
|
21897
|
-
}
|
|
21898
|
-
),
|
|
21899
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-bold fc:px-2.5 fc:py-0.5 fc:rounded-full fc:bg-white fc:border fc:border-slate-200 fc:text-slate-800", children: selectedApplication.workflowName }),
|
|
21900
|
-
/* @__PURE__ */ jsxs98(
|
|
21901
|
-
"span",
|
|
21902
|
-
{
|
|
21903
|
-
className: `fc:text-xs fc:font-bold fc:px-2.5 fc:py-0.5 fc:rounded-full fc:border ${selectedApplication.priority === "Urgent" ? "fc:bg-red-50 fc:text-red-700 fc:border-red-200" : selectedApplication.priority === "High" ? "fc:bg-amber-50 fc:text-amber-700 fc:border-amber-200" : "fc:bg-blue-50 fc:text-blue-700 fc:border-blue-200"}`,
|
|
21127
|
+
onClick: () => setSlipModalOpen(true),
|
|
21128
|
+
className: "fc:flex fc:items-center fc:gap-1.5 fc:px-3 fc:py-1.5 fc:bg-blue-600 hover:fc:bg-blue-700 fc:text-white fc:text-xs fc:font-bold fc:rounded-xl fc:shadow-sm fc:transition-all fc:shrink-0",
|
|
21904
21129
|
children: [
|
|
21905
|
-
|
|
21906
|
-
"
|
|
21130
|
+
/* @__PURE__ */ jsx99(RiPrinterLine2, { size: 13 }),
|
|
21131
|
+
/* @__PURE__ */ jsx99("span", { children: "Print Tracking Slip" })
|
|
21907
21132
|
]
|
|
21908
21133
|
}
|
|
21909
|
-
)
|
|
21910
|
-
/* @__PURE__ */ jsxs98("span", { className: "fc:text-xs fc:font-bold fc:px-2.5 fc:py-0.5 fc:rounded-full fc:bg-emerald-50 fc:text-emerald-700 fc:border fc:border-emerald-200", children: [
|
|
21911
|
-
"Status: ",
|
|
21912
|
-
selectedApplication.status
|
|
21913
|
-
] })
|
|
21134
|
+
)
|
|
21914
21135
|
] }),
|
|
21915
|
-
/* @__PURE__ */
|
|
21916
|
-
|
|
21917
|
-
{
|
|
21918
|
-
|
|
21919
|
-
|
|
21920
|
-
|
|
21921
|
-
|
|
21922
|
-
|
|
21923
|
-
|
|
21924
|
-
|
|
21925
|
-
|
|
21926
|
-
|
|
21927
|
-
|
|
21928
|
-
|
|
21929
|
-
|
|
21930
|
-
|
|
21931
|
-
|
|
21932
|
-
|
|
21933
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-slate-400", children: "Dept:" }),
|
|
21934
|
-
/* @__PURE__ */ jsx99("strong", { className: "fc:text-slate-700", children: selectedApplication.department })
|
|
21935
|
-
] }),
|
|
21936
|
-
/* @__PURE__ */ jsxs98("span", { className: "fc:flex fc:items-center fc:gap-1", children: [
|
|
21937
|
-
/* @__PURE__ */ jsx99(RiUserLine2, { size: 13, className: "fc:text-slate-400" }),
|
|
21938
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-slate-400", children: "Applicant:" }),
|
|
21939
|
-
/* @__PURE__ */ jsx99("strong", { className: "fc:text-slate-700", children: selectedApplication.applicant })
|
|
21136
|
+
/* @__PURE__ */ jsx99("div", { className: "fc:mt-2.5", children: /* @__PURE__ */ jsx99("h2", { className: "fc:text-base fc:font-bold fc:text-slate-800 fc:leading-snug", children: selectedApplication.subject }) }),
|
|
21137
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:justify-between fc:gap-3 fc:mt-2.5 fc:pt-2.5 fc:border-t fc:border-blue-100/70 fc:text-xs fc:text-slate-600 fc:flex-wrap", children: [
|
|
21138
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:gap-4 fc:flex-wrap", children: [
|
|
21139
|
+
/* @__PURE__ */ jsxs98("span", { className: "fc:flex fc:items-center fc:gap-1", children: [
|
|
21140
|
+
/* @__PURE__ */ jsx99(RiBuildingLine2, { size: 13, className: "fc:text-slate-400" }),
|
|
21141
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-slate-400", children: "Dept:" }),
|
|
21142
|
+
/* @__PURE__ */ jsx99("strong", { className: "fc:text-slate-700", children: selectedApplication.department })
|
|
21143
|
+
] }),
|
|
21144
|
+
/* @__PURE__ */ jsxs98("span", { className: "fc:flex fc:items-center fc:gap-1", children: [
|
|
21145
|
+
/* @__PURE__ */ jsx99(RiUserLine2, { size: 13, className: "fc:text-slate-400" }),
|
|
21146
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-slate-400", children: "Applicant:" }),
|
|
21147
|
+
/* @__PURE__ */ jsx99("strong", { className: "fc:text-slate-700", children: selectedApplication.applicant })
|
|
21148
|
+
] }),
|
|
21149
|
+
/* @__PURE__ */ jsxs98("span", { className: "fc:flex fc:items-center fc:gap-1", children: [
|
|
21150
|
+
/* @__PURE__ */ jsx99(RiTimeLine2, { size: 13, className: "fc:text-slate-400" }),
|
|
21151
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-slate-400", children: "Submitted:" }),
|
|
21152
|
+
/* @__PURE__ */ jsx99("strong", { className: "fc:text-slate-700", children: selectedApplication.receivedDate })
|
|
21153
|
+
] })
|
|
21940
21154
|
] }),
|
|
21941
|
-
/* @__PURE__ */ jsxs98("
|
|
21942
|
-
/* @__PURE__ */ jsx99(
|
|
21943
|
-
/* @__PURE__ */ jsx99("
|
|
21944
|
-
/* @__PURE__ */
|
|
21155
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:gap-1.5", children: [
|
|
21156
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-slate-400", children: "SLA:" }),
|
|
21157
|
+
/* @__PURE__ */ jsx99("strong", { className: "fc:text-red-600 fc:font-extrabold", children: selectedApplication.slaStatus }),
|
|
21158
|
+
/* @__PURE__ */ jsxs98("span", { className: "fc:text-slate-400", children: [
|
|
21159
|
+
"\u2022 Due: ",
|
|
21160
|
+
selectedApplication.dueDate
|
|
21161
|
+
] })
|
|
21945
21162
|
] })
|
|
21946
21163
|
] }),
|
|
21947
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:
|
|
21948
|
-
/* @__PURE__ */
|
|
21949
|
-
|
|
21950
|
-
|
|
21951
|
-
|
|
21952
|
-
|
|
21953
|
-
|
|
21164
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:mt-2.5 fc:pt-2 fc:border-t fc:border-blue-100/50", children: [
|
|
21165
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:justify-between fc:items-center fc:text-[11px] fc:mb-1", children: [
|
|
21166
|
+
/* @__PURE__ */ jsxs98("span", { className: "fc:font-bold fc:text-slate-600", children: [
|
|
21167
|
+
"Lifecycle Progress: ",
|
|
21168
|
+
/* @__PURE__ */ jsxs98("strong", { children: [
|
|
21169
|
+
selectedApplication.progressPercent || 50,
|
|
21170
|
+
"% Completed"
|
|
21171
|
+
] })
|
|
21172
|
+
] }),
|
|
21173
|
+
/* @__PURE__ */ jsxs98("span", { className: "fc:font-bold fc:text-indigo-600", children: [
|
|
21174
|
+
"Active Desk: ",
|
|
21175
|
+
/* @__PURE__ */ jsx99("strong", { children: selectedApplication.assignedTo || "Central Scrutiny Cell" })
|
|
21176
|
+
] })
|
|
21177
|
+
] }),
|
|
21178
|
+
/* @__PURE__ */ jsx99("div", { className: "fc:w-full fc:bg-slate-200/80 fc:h-1.5 fc:rounded-full fc:overflow-hidden", children: /* @__PURE__ */ jsx99(
|
|
21179
|
+
"div",
|
|
21180
|
+
{
|
|
21181
|
+
className: "fc:bg-gradient-to-r fc:from-blue-600 fc:to-indigo-600 fc:h-full fc:rounded-full fc:transition-all fc:duration-500",
|
|
21182
|
+
style: { width: `${selectedApplication.progressPercent || 50}%` }
|
|
21183
|
+
}
|
|
21184
|
+
) })
|
|
21954
21185
|
] })
|
|
21955
21186
|
] }),
|
|
21956
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:
|
|
21957
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:
|
|
21958
|
-
/* @__PURE__ */ jsxs98("
|
|
21959
|
-
"
|
|
21960
|
-
/* @__PURE__ */
|
|
21961
|
-
selectedApplication.progressPercent || 50,
|
|
21962
|
-
"% Completed"
|
|
21963
|
-
] })
|
|
21187
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50/70 fc:border fc:border-slate-200 fc:rounded-2xl fc:p-3.5", children: [
|
|
21188
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:justify-between fc:mb-2.5", children: [
|
|
21189
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:gap-2", children: [
|
|
21190
|
+
/* @__PURE__ */ jsx99("div", { className: "fc:w-2 fc:h-2 fc:rounded-full fc:bg-blue-600" }),
|
|
21191
|
+
/* @__PURE__ */ jsx99("h3", { className: "fc:text-xs fc:font-bold fc:text-slate-800 fc:uppercase fc:tracking-wider", children: "Workflow Progression Stages" })
|
|
21964
21192
|
] }),
|
|
21965
|
-
/* @__PURE__ */ jsxs98("span", { className: "fc:
|
|
21966
|
-
"
|
|
21967
|
-
/* @__PURE__ */ jsx99("strong", { children: selectedApplication.
|
|
21193
|
+
/* @__PURE__ */ jsxs98("span", { className: "fc:text-xs fc:text-slate-500", children: [
|
|
21194
|
+
"Current Step: ",
|
|
21195
|
+
/* @__PURE__ */ jsx99("strong", { className: "fc:text-indigo-600", children: selectedApplication.currentStep })
|
|
21968
21196
|
] })
|
|
21969
21197
|
] }),
|
|
21970
|
-
/* @__PURE__ */ jsx99(
|
|
21198
|
+
/* @__PURE__ */ jsx99(
|
|
21971
21199
|
"div",
|
|
21972
21200
|
{
|
|
21973
|
-
className: "fc:
|
|
21974
|
-
style: {
|
|
21975
|
-
|
|
21976
|
-
|
|
21977
|
-
|
|
21978
|
-
|
|
21979
|
-
|
|
21980
|
-
|
|
21981
|
-
|
|
21982
|
-
|
|
21983
|
-
|
|
21984
|
-
|
|
21985
|
-
|
|
21986
|
-
|
|
21987
|
-
|
|
21988
|
-
|
|
21989
|
-
|
|
21990
|
-
|
|
21991
|
-
|
|
21992
|
-
|
|
21993
|
-
|
|
21994
|
-
|
|
21995
|
-
|
|
21996
|
-
|
|
21997
|
-
|
|
21998
|
-
|
|
21999
|
-
|
|
22000
|
-
|
|
22001
|
-
|
|
22002
|
-
|
|
22003
|
-
|
|
22004
|
-
|
|
22005
|
-
|
|
22006
|
-
|
|
22007
|
-
|
|
22008
|
-
|
|
22009
|
-
|
|
22010
|
-
|
|
22011
|
-
|
|
22012
|
-
|
|
22013
|
-
|
|
22014
|
-
|
|
22015
|
-
|
|
22016
|
-
|
|
22017
|
-
|
|
22018
|
-
|
|
22019
|
-
|
|
22020
|
-
|
|
22021
|
-
|
|
22022
|
-
|
|
22023
|
-
|
|
22024
|
-
|
|
22025
|
-
|
|
22026
|
-
|
|
22027
|
-
|
|
22028
|
-
}
|
|
22029
|
-
),
|
|
22030
|
-
/* @__PURE__ */ jsx99(
|
|
22031
|
-
"p",
|
|
22032
|
-
{
|
|
22033
|
-
className: "fc:text-[10px] fc:text-slate-500 fc:truncate fc:mt-0.5",
|
|
22034
|
-
title: stage.description,
|
|
22035
|
-
children: stage.description
|
|
22036
|
-
}
|
|
22037
|
-
)
|
|
22038
|
-
] }),
|
|
22039
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:mt-1.5 fc:pt-1.5 fc:border-t fc:border-slate-200/50 fc:flex fc:items-center fc:justify-between fc:text-[9px] fc:text-slate-400", children: [
|
|
22040
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:truncate", title: stage.officer, children: stage.officer }),
|
|
22041
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:font-medium fc:text-slate-500 fc:shrink-0", children: stage.date.split(" ")[0] })
|
|
22042
|
-
] })
|
|
22043
|
-
]
|
|
22044
|
-
},
|
|
22045
|
-
stage.stageId || idx
|
|
22046
|
-
);
|
|
22047
|
-
})
|
|
22048
|
-
}
|
|
22049
|
-
)
|
|
22050
|
-
] }),
|
|
22051
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-white fc:border fc:border-slate-200 fc:rounded-2xl fc:overflow-hidden", children: [
|
|
22052
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:border-b fc:border-slate-200 fc:bg-slate-50/60 fc:px-3 fc:pt-1.5", children: [
|
|
22053
|
-
/* @__PURE__ */ jsxs98(
|
|
22054
|
-
"button",
|
|
22055
|
-
{
|
|
22056
|
-
type: "button",
|
|
22057
|
-
onClick: () => setActiveTab("timeline"),
|
|
22058
|
-
className: `fc:flex fc:items-center fc:gap-1.5 fc:px-3.5 fc:py-2 fc:text-xs fc:font-bold fc:border-b-2 fc:transition-all ${activeTab === "timeline" ? "fc:border-blue-600 fc:text-blue-600 fc:bg-white fc:rounded-t-lg" : "fc:border-transparent fc:text-slate-600 hover:fc:text-slate-900"}`,
|
|
22059
|
-
children: [
|
|
22060
|
-
/* @__PURE__ */ jsx99(RiRouteLine2, { size: 14 }),
|
|
22061
|
-
/* @__PURE__ */ jsx99("span", { children: "Movement History & Audit Trail" }),
|
|
22062
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:bg-slate-200 fc:text-slate-700 fc:px-1.5 fc:py-0.2 fc:rounded-full fc:text-[9px]", children: ((_b = selectedApplication.movementHistory) == null ? void 0 : _b.length) || 0 })
|
|
22063
|
-
]
|
|
22064
|
-
}
|
|
22065
|
-
),
|
|
22066
|
-
/* @__PURE__ */ jsxs98(
|
|
22067
|
-
"button",
|
|
22068
|
-
{
|
|
22069
|
-
type: "button",
|
|
22070
|
-
onClick: () => setActiveTab("details"),
|
|
22071
|
-
className: `fc:flex fc:items-center fc:gap-1.5 fc:px-3.5 fc:py-2 fc:text-xs fc:font-bold fc:border-b-2 fc:transition-all ${activeTab === "details" ? "fc:border-blue-600 fc:text-blue-600 fc:bg-white fc:rounded-t-lg" : "fc:border-transparent fc:text-slate-600 hover:fc:text-slate-900"}`,
|
|
22072
|
-
children: [
|
|
22073
|
-
/* @__PURE__ */ jsx99(RiFileListLine, { size: 14 }),
|
|
22074
|
-
/* @__PURE__ */ jsx99("span", { children: "Application Full Attributes" })
|
|
22075
|
-
]
|
|
22076
|
-
}
|
|
22077
|
-
),
|
|
22078
|
-
/* @__PURE__ */ jsxs98(
|
|
22079
|
-
"button",
|
|
22080
|
-
{
|
|
22081
|
-
type: "button",
|
|
22082
|
-
onClick: () => setActiveTab("documents"),
|
|
22083
|
-
className: `fc:flex fc:items-center fc:gap-1.5 fc:px-3.5 fc:py-2 fc:text-xs fc:font-bold fc:border-b-2 fc:transition-all ${activeTab === "documents" ? "fc:border-blue-600 fc:text-blue-600 fc:bg-white fc:rounded-t-lg" : "fc:border-transparent fc:text-slate-600 hover:fc:text-slate-900"}`,
|
|
22084
|
-
children: [
|
|
22085
|
-
/* @__PURE__ */ jsx99(RiFileTextLine3, { size: 14 }),
|
|
22086
|
-
/* @__PURE__ */ jsx99("span", { children: "Uploaded Documents" }),
|
|
22087
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:bg-slate-200 fc:text-slate-700 fc:px-1.5 fc:py-0.2 fc:rounded-full fc:text-[9px]", children: ((_c = selectedApplication.documents) == null ? void 0 : _c.length) || 0 })
|
|
22088
|
-
]
|
|
21201
|
+
className: "fc:grid fc:gap-2 fc:items-stretch",
|
|
21202
|
+
style: {
|
|
21203
|
+
gridTemplateColumns: `repeat(${((_a = selectedApplication.stages) == null ? void 0 : _a.length) || 4}, minmax(0, 1fr))`
|
|
21204
|
+
},
|
|
21205
|
+
children: (selectedApplication.stages || []).map((stage, idx) => {
|
|
21206
|
+
const isCompleted = stage.status === "completed";
|
|
21207
|
+
const isInProgress = stage.status === "in-progress";
|
|
21208
|
+
return /* @__PURE__ */ jsxs98(
|
|
21209
|
+
"div",
|
|
21210
|
+
{
|
|
21211
|
+
className: `fc:relative fc:flex fc:flex-col fc:justify-between fc:p-2.5 fc:rounded-xl fc:border fc:transition-all ${isCompleted ? "fc:bg-emerald-50/60 fc:border-emerald-200/80" : isInProgress ? "fc:bg-blue-50 fc:border-blue-300 fc:shadow-sm fc:ring-1 fc:ring-blue-200" : "fc:bg-white fc:border-slate-200"}`,
|
|
21212
|
+
children: [
|
|
21213
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:justify-between fc:gap-1 fc:mb-1.5", children: [
|
|
21214
|
+
/* @__PURE__ */ jsx99(
|
|
21215
|
+
"span",
|
|
21216
|
+
{
|
|
21217
|
+
className: `fc:w-5 fc:h-5 fc:rounded-full fc:flex fc:items-center fc:justify-center fc:text-[10px] fc:font-extrabold fc:shrink-0 ${isCompleted ? "fc:bg-emerald-600 fc:text-white" : isInProgress ? "fc:bg-blue-600 fc:text-white" : "fc:bg-slate-200 fc:text-slate-600"}`,
|
|
21218
|
+
children: isCompleted ? /* @__PURE__ */ jsx99(RiCheckLine2, { size: 12 }) : idx + 1
|
|
21219
|
+
}
|
|
21220
|
+
),
|
|
21221
|
+
/* @__PURE__ */ jsx99(
|
|
21222
|
+
"span",
|
|
21223
|
+
{
|
|
21224
|
+
className: `fc:text-[9px] fc:font-bold fc:px-1.5 fc:py-0.2 fc:rounded-full ${isCompleted ? "fc:bg-emerald-100 fc:text-emerald-700" : isInProgress ? "fc:bg-blue-100 fc:text-blue-700 fc:animate-pulse" : "fc:bg-slate-100 fc:text-slate-500"}`,
|
|
21225
|
+
children: isCompleted ? "Completed" : isInProgress ? "Active Step" : "Pending"
|
|
21226
|
+
}
|
|
21227
|
+
)
|
|
21228
|
+
] }),
|
|
21229
|
+
/* @__PURE__ */ jsxs98("div", { children: [
|
|
21230
|
+
/* @__PURE__ */ jsx99(
|
|
21231
|
+
"h4",
|
|
21232
|
+
{
|
|
21233
|
+
className: "fc:text-[11px] fc:font-bold fc:text-slate-800 fc:truncate",
|
|
21234
|
+
title: stage.title,
|
|
21235
|
+
children: stage.title
|
|
21236
|
+
}
|
|
21237
|
+
),
|
|
21238
|
+
/* @__PURE__ */ jsx99(
|
|
21239
|
+
"p",
|
|
21240
|
+
{
|
|
21241
|
+
className: "fc:text-[10px] fc:text-slate-500 fc:truncate fc:mt-0.5",
|
|
21242
|
+
title: stage.description,
|
|
21243
|
+
children: stage.description
|
|
21244
|
+
}
|
|
21245
|
+
)
|
|
21246
|
+
] }),
|
|
21247
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:mt-1.5 fc:pt-1.5 fc:border-t fc:border-slate-200/50 fc:flex fc:items-center fc:justify-between fc:text-[9px] fc:text-slate-400", children: [
|
|
21248
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:truncate", title: stage.officer, children: stage.officer }),
|
|
21249
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:font-medium fc:text-slate-500 fc:shrink-0", children: stage.date.split(" ")[0] })
|
|
21250
|
+
] })
|
|
21251
|
+
]
|
|
21252
|
+
},
|
|
21253
|
+
stage.stageId || idx
|
|
21254
|
+
);
|
|
21255
|
+
})
|
|
22089
21256
|
}
|
|
22090
21257
|
)
|
|
22091
21258
|
] }),
|
|
22092
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:
|
|
22093
|
-
|
|
22094
|
-
/* @__PURE__ */
|
|
22095
|
-
|
|
22096
|
-
|
|
22097
|
-
|
|
22098
|
-
|
|
22099
|
-
|
|
22100
|
-
|
|
22101
|
-
|
|
22102
|
-
/* @__PURE__ */ jsx99("
|
|
21259
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-white fc:border fc:border-slate-200 fc:rounded-2xl fc:overflow-hidden", children: [
|
|
21260
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:border-b fc:border-slate-200 fc:bg-slate-50/60 fc:px-3 fc:pt-1.5", children: [
|
|
21261
|
+
/* @__PURE__ */ jsxs98(
|
|
21262
|
+
"button",
|
|
21263
|
+
{
|
|
21264
|
+
type: "button",
|
|
21265
|
+
onClick: () => setActiveTab("timeline"),
|
|
21266
|
+
className: `fc:flex fc:items-center fc:gap-1.5 fc:px-3.5 fc:py-2 fc:text-xs fc:font-bold fc:border-b-2 fc:transition-all ${activeTab === "timeline" ? "fc:border-blue-600 fc:text-blue-600 fc:bg-white fc:rounded-t-lg" : "fc:border-transparent fc:text-slate-600 hover:fc:text-slate-900"}`,
|
|
21267
|
+
children: [
|
|
21268
|
+
/* @__PURE__ */ jsx99(RiRouteLine2, { size: 14 }),
|
|
21269
|
+
/* @__PURE__ */ jsx99("span", { children: "Movement History & Audit Trail" }),
|
|
21270
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:bg-slate-200 fc:text-slate-700 fc:px-1.5 fc:py-0.2 fc:rounded-full fc:text-[9px]", children: ((_b = selectedApplication.movementHistory) == null ? void 0 : _b.length) || 0 })
|
|
21271
|
+
]
|
|
21272
|
+
}
|
|
21273
|
+
),
|
|
21274
|
+
/* @__PURE__ */ jsxs98(
|
|
21275
|
+
"button",
|
|
21276
|
+
{
|
|
21277
|
+
type: "button",
|
|
21278
|
+
onClick: () => setActiveTab("details"),
|
|
21279
|
+
className: `fc:flex fc:items-center fc:gap-1.5 fc:px-3.5 fc:py-2 fc:text-xs fc:font-bold fc:border-b-2 fc:transition-all ${activeTab === "details" ? "fc:border-blue-600 fc:text-blue-600 fc:bg-white fc:rounded-t-lg" : "fc:border-transparent fc:text-slate-600 hover:fc:text-slate-900"}`,
|
|
21280
|
+
children: [
|
|
21281
|
+
/* @__PURE__ */ jsx99(RiFileListLine, { size: 14 }),
|
|
21282
|
+
/* @__PURE__ */ jsx99("span", { children: "Application Full Attributes" })
|
|
21283
|
+
]
|
|
21284
|
+
}
|
|
21285
|
+
),
|
|
21286
|
+
/* @__PURE__ */ jsxs98(
|
|
21287
|
+
"button",
|
|
21288
|
+
{
|
|
21289
|
+
type: "button",
|
|
21290
|
+
onClick: () => setActiveTab("documents"),
|
|
21291
|
+
className: `fc:flex fc:items-center fc:gap-1.5 fc:px-3.5 fc:py-2 fc:text-xs fc:font-bold fc:border-b-2 fc:transition-all ${activeTab === "documents" ? "fc:border-blue-600 fc:text-blue-600 fc:bg-white fc:rounded-t-lg" : "fc:border-transparent fc:text-slate-600 hover:fc:text-slate-900"}`,
|
|
21292
|
+
children: [
|
|
21293
|
+
/* @__PURE__ */ jsx99(RiFileTextLine3, { size: 14 }),
|
|
21294
|
+
/* @__PURE__ */ jsx99("span", { children: "Uploaded Documents" }),
|
|
21295
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:bg-slate-200 fc:text-slate-700 fc:px-1.5 fc:py-0.2 fc:rounded-full fc:text-[9px]", children: ((_c = selectedApplication.documents) == null ? void 0 : _c.length) || 0 })
|
|
21296
|
+
]
|
|
21297
|
+
}
|
|
21298
|
+
)
|
|
21299
|
+
] }),
|
|
21300
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:p-4", children: [
|
|
21301
|
+
activeTab === "timeline" && /* @__PURE__ */ jsx99("div", { className: "fc:space-y-3", children: /* @__PURE__ */ jsx99("div", { className: "fc:relative fc:pl-5 fc:space-y-4 before:fc:absolute before:fc:left-2 before:fc:top-2 before:fc:bottom-2 before:fc:w-0.5 before:fc:bg-slate-200", children: (selectedApplication.movementHistory || []).map((move, idx) => /* @__PURE__ */ jsxs98("div", { className: "fc:relative fc:space-y-1", children: [
|
|
21302
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:absolute fc:-left-[17px] fc:top-1 fc:w-2.5 fc:h-2.5 fc:rounded-full fc:bg-blue-600 fc:ring-4 fc:ring-blue-100" }),
|
|
21303
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:justify-between fc:gap-2 fc:flex-wrap", children: [
|
|
21304
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:gap-2", children: [
|
|
21305
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-bold fc:text-slate-800", children: move.action }),
|
|
21306
|
+
/* @__PURE__ */ jsxs98("span", { className: "fc:text-[11px] fc:text-slate-500", children: [
|
|
21307
|
+
"(",
|
|
21308
|
+
move.fromStep,
|
|
21309
|
+
" \u2192 ",
|
|
21310
|
+
/* @__PURE__ */ jsx99("strong", { className: "fc:text-blue-600", children: move.toStep }),
|
|
21311
|
+
")"
|
|
21312
|
+
] })
|
|
21313
|
+
] }),
|
|
21314
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400", children: move.timestamp })
|
|
21315
|
+
] }),
|
|
21316
|
+
/* @__PURE__ */ jsxs98("p", { className: "fc:text-xs fc:text-slate-600 fc:bg-slate-50 fc:p-2 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
21317
|
+
/* @__PURE__ */ jsx99("strong", { children: "Remarks:" }),
|
|
21318
|
+
" ",
|
|
21319
|
+
move.remarks
|
|
21320
|
+
] }),
|
|
21321
|
+
/* @__PURE__ */ jsxs98("span", { className: "fc:text-[10px] fc:text-slate-400", children: [
|
|
21322
|
+
"Action Officer: ",
|
|
21323
|
+
/* @__PURE__ */ jsx99("strong", { children: move.officer })
|
|
21324
|
+
] })
|
|
21325
|
+
] }, move.id || idx)) }) }),
|
|
21326
|
+
activeTab === "details" && /* @__PURE__ */ jsxs98("div", { className: "fc:grid fc:grid-cols-1 md:fc:grid-cols-3 fc:gap-3 fc:text-xs", children: [
|
|
21327
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
21328
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Application / File Number" }),
|
|
21329
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-bold fc:text-blue-600 fc:mt-0.5 fc:block", children: selectedApplication.fileNumber })
|
|
21330
|
+
] }),
|
|
21331
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
21332
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Workflow Name" }),
|
|
21333
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-semibold fc:text-slate-800 fc:mt-0.5 fc:block", children: selectedApplication.workflowName })
|
|
21334
|
+
] }),
|
|
21335
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
21336
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Department / Ministry" }),
|
|
21337
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-semibold fc:text-slate-800 fc:mt-0.5 fc:block", children: selectedApplication.department })
|
|
21338
|
+
] }),
|
|
21339
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
21340
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Applicant / Originator Entity" }),
|
|
21341
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-semibold fc:text-slate-800 fc:mt-0.5 fc:block", children: selectedApplication.applicant })
|
|
21342
|
+
] }),
|
|
21343
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
21344
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Proposal Category" }),
|
|
21345
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-semibold fc:text-slate-800 fc:mt-0.5 fc:block", children: selectedApplication.category })
|
|
21346
|
+
] }),
|
|
21347
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
21348
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Financial Year" }),
|
|
21349
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-semibold fc:text-slate-800 fc:mt-0.5 fc:block", children: selectedApplication.financialYear })
|
|
21350
|
+
] }),
|
|
21351
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
21352
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Received Timestamp" }),
|
|
21353
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-semibold fc:text-slate-800 fc:mt-0.5 fc:block", children: selectedApplication.receivedDate })
|
|
21354
|
+
] }),
|
|
21355
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
21356
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Target SLA Due Date" }),
|
|
21357
|
+
/* @__PURE__ */ jsxs98("span", { className: "fc:text-xs fc:font-bold fc:text-red-600 fc:mt-0.5 fc:block", children: [
|
|
21358
|
+
selectedApplication.dueDate,
|
|
21359
|
+
" (",
|
|
21360
|
+
selectedApplication.slaStatus,
|
|
22103
21361
|
")"
|
|
22104
21362
|
] })
|
|
22105
21363
|
] }),
|
|
22106
|
-
/* @__PURE__ */
|
|
22107
|
-
|
|
22108
|
-
|
|
22109
|
-
|
|
22110
|
-
|
|
22111
|
-
|
|
22112
|
-
|
|
22113
|
-
|
|
22114
|
-
"Action Officer: ",
|
|
22115
|
-
/* @__PURE__ */ jsx99("strong", { children: move.officer })
|
|
22116
|
-
] })
|
|
22117
|
-
] }, move.id || idx)) }) }),
|
|
22118
|
-
activeTab === "details" && /* @__PURE__ */ jsxs98("div", { className: "fc:grid fc:grid-cols-1 md:fc:grid-cols-3 fc:gap-3 fc:text-xs", children: [
|
|
22119
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
22120
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Application / File Number" }),
|
|
22121
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-bold fc:text-blue-600 fc:mt-0.5 fc:block", children: selectedApplication.fileNumber })
|
|
22122
|
-
] }),
|
|
22123
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
22124
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Workflow Name" }),
|
|
22125
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-semibold fc:text-slate-800 fc:mt-0.5 fc:block", children: selectedApplication.workflowName })
|
|
22126
|
-
] }),
|
|
22127
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
22128
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Department / Ministry" }),
|
|
22129
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-semibold fc:text-slate-800 fc:mt-0.5 fc:block", children: selectedApplication.department })
|
|
22130
|
-
] }),
|
|
22131
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
22132
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Applicant / Originator Entity" }),
|
|
22133
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-semibold fc:text-slate-800 fc:mt-0.5 fc:block", children: selectedApplication.applicant })
|
|
22134
|
-
] }),
|
|
22135
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
22136
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Proposal Category" }),
|
|
22137
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-semibold fc:text-slate-800 fc:mt-0.5 fc:block", children: selectedApplication.category })
|
|
22138
|
-
] }),
|
|
22139
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
22140
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Financial Year" }),
|
|
22141
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-semibold fc:text-slate-800 fc:mt-0.5 fc:block", children: selectedApplication.financialYear })
|
|
22142
|
-
] }),
|
|
22143
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
22144
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Received Timestamp" }),
|
|
22145
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-xs fc:font-semibold fc:text-slate-800 fc:mt-0.5 fc:block", children: selectedApplication.receivedDate })
|
|
22146
|
-
] }),
|
|
22147
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
22148
|
-
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Target SLA Due Date" }),
|
|
22149
|
-
/* @__PURE__ */ jsxs98("span", { className: "fc:text-xs fc:font-bold fc:text-red-600 fc:mt-0.5 fc:block", children: [
|
|
22150
|
-
selectedApplication.dueDate,
|
|
22151
|
-
" (",
|
|
22152
|
-
selectedApplication.slaStatus,
|
|
22153
|
-
")"
|
|
21364
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:bg-slate-50 fc:p-3 fc:rounded-xl fc:border fc:border-slate-100", children: [
|
|
21365
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:text-slate-400 fc:uppercase fc:block", children: "Current Active Desk" }),
|
|
21366
|
+
/* @__PURE__ */ jsxs98("span", { className: "fc:text-xs fc:font-bold fc:text-indigo-600 fc:mt-0.5 fc:block", children: [
|
|
21367
|
+
selectedApplication.assignedTo,
|
|
21368
|
+
" (",
|
|
21369
|
+
selectedApplication.currentStep,
|
|
21370
|
+
")"
|
|
21371
|
+
] })
|
|
22154
21372
|
] })
|
|
22155
21373
|
] }),
|
|
22156
|
-
/* @__PURE__ */
|
|
22157
|
-
|
|
22158
|
-
|
|
22159
|
-
|
|
22160
|
-
|
|
22161
|
-
|
|
22162
|
-
|
|
22163
|
-
|
|
22164
|
-
|
|
22165
|
-
|
|
22166
|
-
|
|
22167
|
-
|
|
22168
|
-
|
|
22169
|
-
className: "fc:flex fc:items-center fc:justify-between fc:p-2.5 fc:rounded-xl fc:border fc:border-slate-200 fc:bg-slate-50/50 hover:fc:bg-slate-50 fc:transition-all",
|
|
22170
|
-
children: [
|
|
22171
|
-
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:gap-2.5", children: [
|
|
22172
|
-
/* @__PURE__ */ jsx99("div", { className: "fc:w-7 fc:h-7 fc:rounded-lg fc:bg-red-50 fc:text-red-600 fc:flex fc:items-center fc:justify-center fc:font-bold fc:text-[10px]", children: doc.type }),
|
|
22173
|
-
/* @__PURE__ */ jsxs98("div", { children: [
|
|
22174
|
-
/* @__PURE__ */ jsx99("h5", { className: "fc:text-xs fc:font-bold fc:text-slate-800", children: doc.name }),
|
|
22175
|
-
/* @__PURE__ */ jsxs98("span", { className: "fc:text-[10px] fc:text-slate-400", children: [
|
|
22176
|
-
"Size: ",
|
|
22177
|
-
doc.size
|
|
21374
|
+
activeTab === "documents" && /* @__PURE__ */ jsx99("div", { className: "fc:grid fc:grid-cols-1 md:fc:grid-cols-2 fc:gap-3", children: (selectedApplication.documents || []).map((doc, i) => /* @__PURE__ */ jsxs98(
|
|
21375
|
+
"div",
|
|
21376
|
+
{
|
|
21377
|
+
className: "fc:flex fc:items-center fc:justify-between fc:p-2.5 fc:rounded-xl fc:border fc:border-slate-200 fc:bg-slate-50/50 hover:fc:bg-slate-50 fc:transition-all",
|
|
21378
|
+
children: [
|
|
21379
|
+
/* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:items-center fc:gap-2.5", children: [
|
|
21380
|
+
/* @__PURE__ */ jsx99("div", { className: "fc:w-7 fc:h-7 fc:rounded-lg fc:bg-red-50 fc:text-red-600 fc:flex fc:items-center fc:justify-center fc:font-bold fc:text-[10px]", children: doc.type }),
|
|
21381
|
+
/* @__PURE__ */ jsxs98("div", { children: [
|
|
21382
|
+
/* @__PURE__ */ jsx99("h5", { className: "fc:text-xs fc:font-bold fc:text-slate-800", children: doc.name }),
|
|
21383
|
+
/* @__PURE__ */ jsxs98("span", { className: "fc:text-[10px] fc:text-slate-400", children: [
|
|
21384
|
+
"Size: ",
|
|
21385
|
+
doc.size
|
|
21386
|
+
] })
|
|
22178
21387
|
] })
|
|
22179
|
-
] })
|
|
22180
|
-
|
|
22181
|
-
|
|
22182
|
-
|
|
22183
|
-
|
|
22184
|
-
|
|
22185
|
-
|
|
21388
|
+
] }),
|
|
21389
|
+
/* @__PURE__ */ jsx99("span", { className: "fc:text-[10px] fc:font-bold fc:px-2 fc:py-0.5 fc:rounded-full fc:bg-emerald-50 fc:text-emerald-700 fc:border fc:border-emerald-200", children: doc.status })
|
|
21390
|
+
]
|
|
21391
|
+
},
|
|
21392
|
+
i
|
|
21393
|
+
)) })
|
|
21394
|
+
] })
|
|
22186
21395
|
] })
|
|
21396
|
+
] }),
|
|
21397
|
+
!selectedApplication && /* @__PURE__ */ jsxs98("div", { className: "fc:flex fc:min-h-72 fc:flex-col fc:items-center fc:justify-center fc:gap-2 fc:text-center", children: [
|
|
21398
|
+
/* @__PURE__ */ jsx99(RiRouteLine2, { size: 28, className: "fc:text-slate-300" }),
|
|
21399
|
+
/* @__PURE__ */ jsx99("h2", { className: "fc:text-sm fc:font-bold fc:text-slate-700", children: "No tracking data available" }),
|
|
21400
|
+
/* @__PURE__ */ jsx99("p", { className: "fc:max-w-md fc:text-xs fc:text-slate-500", children: "Configure the application tracking endpoint to load real application status and movement details." })
|
|
22187
21401
|
] })
|
|
22188
|
-
] })
|
|
21402
|
+
] })
|
|
22189
21403
|
) : (
|
|
22190
21404
|
/* ========================================================
|
|
22191
21405
|
VIEW 2: APPLICATIONS REGISTRY TABLE (MATCHING INBOX TABLE)
|