462 lines
13 KiB
TypeScript
462 lines
13 KiB
TypeScript
|
|
import { TableRowData } from '@/types/types';
|
|
import {
|
|
LayoutGrid,
|
|
Smile,
|
|
Building2,
|
|
User,
|
|
Target,
|
|
CheckSquare,
|
|
FileText,
|
|
Box,
|
|
Zap,
|
|
ClipboardList,
|
|
Star,
|
|
Monitor,
|
|
UserCheck,
|
|
Calendar,
|
|
Layers,
|
|
Coins,
|
|
Receipt,
|
|
ShieldCheck,
|
|
Flame,
|
|
Recycle,
|
|
GraduationCap,
|
|
Brain,
|
|
Activity,
|
|
Bot,
|
|
Gauge,
|
|
Snowflake,
|
|
Leaf,
|
|
MapPin,
|
|
BarChart3,
|
|
Sun,
|
|
Shield,
|
|
Settings,
|
|
Wallet,
|
|
Radar,
|
|
Cog,
|
|
} from "lucide-react";
|
|
|
|
//Side bar Drop Down menu
|
|
|
|
export const SIDEBAR_ITEMS = [
|
|
{
|
|
title: "Overview",
|
|
icon: LayoutGrid,
|
|
children: [
|
|
{ title: "Dashboard", href: "/dashboard/overview/dashboard", icon: LayoutGrid },
|
|
{ title: "Engagement", href: "/dashboard/overview/engagement", icon: Smile },
|
|
{ title: "Building Owner", href: "/dashboard/overview/buildingOwner", icon: Building2 },
|
|
{ title: "Property Manager", href: "/dashboard/overview/propertyManager", icon: User },
|
|
{ title: "Service Engineer", href: "/dashboard/overview/serviceEngineer", icon: Target },
|
|
],
|
|
},
|
|
{
|
|
title: "Operations",
|
|
icon: Settings,
|
|
children: [
|
|
{ title: "Help Desk", href: "/operations/help-desk", icon: CheckSquare, badge: 6, badgeColor: "bg-amber-500 text-black" },
|
|
{ title: "Equipment", href: "/operations/equipment", icon: Target },
|
|
{ title: "Requests", href: "/operations/requests", icon: FileText, badge: 15, badgeColor: "bg-amber-400 text-black" },
|
|
{ title: "Inventory", href: "/operations/inventory", icon: Box },
|
|
{ title: "Energy", href: "/operations/energy", icon: Zap },
|
|
{ title: "Work Permit", href: "/operations/work-permit", icon: ClipboardList, badge: 3, badgeColor: "bg-amber-500 text-black" },
|
|
{ title: "Vendor & Field Service", href: "/operations/vendor-field", icon: Star, badge: 12, badgeColor: "bg-sky-400 text-black" },
|
|
],
|
|
},
|
|
{
|
|
title: "Workplace",
|
|
icon: Monitor,
|
|
children: [
|
|
{ title: "Visitor Management", href: "/workplace/visitor", icon: UserCheck },
|
|
{ title: "Meeting Rooms", href: "/workplace/meeting-rooms", icon: Calendar },
|
|
{ title: "Workspace", href: "/workplace/workspace", icon: Layers },
|
|
],
|
|
},
|
|
{
|
|
title: "Finance",
|
|
icon: Wallet,
|
|
children: [
|
|
{ title: "O&M Budget", href: "/finance/om-budget", icon: Coins },
|
|
{ title: "Costing & Invoicing", href: "/finance/costing-invoicing", icon: Receipt },
|
|
],
|
|
},
|
|
{
|
|
title: "Compliance & Safety",
|
|
icon: ShieldCheck,
|
|
children: [
|
|
{ title: "Statutory Compliance", href: "/compliance/statutory", icon: ShieldCheck },
|
|
{ title: "Contracts & SLA", href: "/compliance/contracts-sla", icon: FileText },
|
|
{ title: "Fire & Safety", href: "/compliance/fire-safety", icon: Flame },
|
|
{ title: "Waste & ESG", href: "/compliance/waste-esg", icon: Recycle },
|
|
{ title: "Training", href: "/compliance/training", icon: GraduationCap },
|
|
],
|
|
},
|
|
{
|
|
title: "Intelligence",
|
|
icon: Brain,
|
|
children: [{ title: "AI & Predictive", href: "/intelligence/predictive", icon: Brain },
|
|
{ title: "Asset Health", href: "/intelligence/asset-health", icon: ShieldCheck },
|
|
{ title: "Energy Benchmarking", href: "/intelligence/benchmarking", icon: Activity },
|
|
{ title: "AI Helpdesk", href: "/intelligence/ai-helpdesk", icon: Bot },
|
|
{ title: "Connected Ops", href: "/intelligence/connected-ops", icon: Gauge },
|
|
{ title: "Connected Assets", href: "/intelligence/connected-assets", icon: Snowflake },
|
|
{ title: "Sustainability", href: "/intelligence/sustainability", icon: Leaf },
|
|
{ title: "GPS Tracking", href: "/intelligence/gps-tracking", icon: MapPin },],
|
|
},
|
|
{
|
|
title: "IoT Application",
|
|
icon: Radar,
|
|
children: [{ title: "Command Center", href: "/iot/command-center", icon: Gauge },
|
|
{ title: "HVAC Plant", href: "/iot/hvac-plant", icon: Snowflake },
|
|
{ title: "Energy & Utilities", href: "/iot/energy-utilities", icon: Zap },
|
|
{ title: "Device Fleet", href: "/iot/device-fleet", icon: LayoutGrid },
|
|
{ title: "Alarms & Rules", href: "/iot/alarms-rules", icon: Shield, badge: 7, badgeColor: "bg-rose-500 text-white" },],
|
|
},
|
|
{
|
|
title: "Insight",
|
|
icon: BarChart3,
|
|
children: [{ title: "Reports & MMR", href: "/insight/reports", icon: BarChart3 },],
|
|
},
|
|
{
|
|
title: "Configure",
|
|
icon: Cog,
|
|
children: [{ title: "Master Data", href: "/configure/master-data", icon: Layers },
|
|
{ title: "Roles & Access", href: "/configure/roles-access", icon: Shield },
|
|
{ title: "Workflow Automation", href: "/configure/workflow", icon: Bot },
|
|
{ title: "User Location", href: "/configure/user-location", icon: MapPin },
|
|
{ title: "Settings", href: "/configure/settings", icon: Sun },],
|
|
},
|
|
];
|
|
|
|
//Overview dashboard data
|
|
|
|
export const chartData = [
|
|
{ month: 'J', height: 'h-24' },
|
|
{ month: 'F', height: 'h-16' },
|
|
{ month: 'M', height: 'h-32' },
|
|
{ month: 'A', height: 'h-20' },
|
|
{ month: 'M', height: 'h-28' },
|
|
{ month: 'J', height: 'h-12' },
|
|
{ month: 'J', height: 'h-32' },
|
|
{ month: 'A', height: 'h-24' },
|
|
{ month: 'S', height: 'h-30' },
|
|
{ month: 'O', height: 'h-20' },
|
|
{ month: 'N', height: 'h-26' },
|
|
{ month: 'D', height: 'h-24' },
|
|
];
|
|
export const energyData = [
|
|
{ month: "Jan", height: 'h-20' },
|
|
{ month: "Feb", height: 'h-12' },
|
|
{ month: "Mar", height: 'h-24' },
|
|
{ month: "Apr", height: 'h-26' },
|
|
{ month: "May", height: 'h-18' },
|
|
{ month: "Jun", height: 'h-20' },
|
|
];
|
|
|
|
export const activities = [
|
|
{ time: '09:42', text: '6/1009 assigned to ME Local', boldText: '6/1009' },
|
|
{ time: '09:18', text: 'Location checklist Block 1/2 completed', boldText: 'Block 1/2' },
|
|
{ time: '08:55', text: 'Meter MTR-1 reading logged · 58.45 kWh', boldText: 'Meter MTR-1' },
|
|
{ time: '08:30', text: 'PPM job card printed for APP-1100', boldText: 'APP-1100' },
|
|
];
|
|
export const colorMap = {
|
|
teal: 'bg-teal-400',
|
|
amber: 'bg-amber-500',
|
|
rose: 'bg-rose-500',
|
|
emerald: 'bg-emerald-500',
|
|
};
|
|
|
|
export const SATISFACTION_DRIVERS = [
|
|
{ label: "Workplace cleanliness", score: 88, color: "bg-[#10b981]" },
|
|
{ label: "Response to requests", score: 82, color: "bg-[#10b981]" },
|
|
{ label: "Amenities & facilities", score: 79, color: "bg-[#06b6d4]" },
|
|
{ label: "Communication", score: 71, color: "bg-[#f59e0b]" },
|
|
{ label: "Comfort (HVAC / light)", score: 84, color: "bg-[#06b6d4]" },
|
|
];
|
|
|
|
// Mock Data for Tickets & Suggestions
|
|
export const TICKETS_DATA = [
|
|
{ title: "Pantry coffee machine down", type: "Complaint", status: "OPEN" },
|
|
{ title: "Add covered parking", type: "Suggestion", status: "CLOSED" },
|
|
{ title: "Lift slow on L4", type: "Complaint", status: "OPEN" },
|
|
{ title: "Lift slow on L4", type: "Complaint", status: "CLOSED" },
|
|
{ title: "More water dispensers", type: "Complaint", status: "CLOSED" },
|
|
];
|
|
|
|
//Tabs used in Operations dashboards
|
|
|
|
export const equipmentTabs: string[] = [
|
|
'Equipment Groups',
|
|
'Site-Wise Equipment',
|
|
'PPM Checklist',
|
|
'AMC Checklist',
|
|
'PPM Schedule',
|
|
'AMC Schedule',
|
|
'Maintenance Calendar'
|
|
];
|
|
export const helpdeskTtabs: string[] = ['Location', 'Technical',
|
|
'Missed', 'Departments', 'HSQE'];
|
|
|
|
|
|
export const Reqeusttabs: string[] = [
|
|
'TFM Requests',
|
|
'Engineering',
|
|
'Schedule Complaints'
|
|
];
|
|
|
|
export const statusFilters = [
|
|
{ label: 'All', count: 18 },
|
|
{ label: 'Registered', count: 4 },
|
|
{ label: 'Assigned', count: 3 },
|
|
{ label: 'Working', count: 4 },
|
|
{ label: 'Completed', count: 3 },
|
|
{ label: 'Overdue', count: 4 },
|
|
];
|
|
export const reportFilters = [
|
|
{ label: 'Site: All' },
|
|
{ label: 'Group: all' },
|
|
{ label: 'Status:All' },
|
|
|
|
];
|
|
|
|
|
|
export const workPermitFilters = [
|
|
{ label: 'All', count: 10 },
|
|
{ label: 'Awaiting', count: 3 },
|
|
{ label: 'Approved', count: 1},
|
|
{ label: 'Active', count: 2 },
|
|
{ label: 'Closed', count: 1 },
|
|
{ label: 'Expired', count: 1 },
|
|
{ label: 'Rejected', count: 1 },
|
|
];
|
|
|
|
export const visitorFilters = [
|
|
{ label: 'All', count: 12 },
|
|
{ label: 'Expected', count: 2 },
|
|
{ label: 'Pre-Reg', count: 2},
|
|
{ label: 'Onsite', count: 4 },
|
|
{ label: 'Left', count: 3 },
|
|
{ label: 'Denied', count: 1 },
|
|
|
|
];
|
|
|
|
// Data model interface
|
|
|
|
|
|
|
|
|
|
export const roomData = [
|
|
{
|
|
id: 1,
|
|
name: "Boardroom A",
|
|
location: "L10 • 16 seats",
|
|
status: "OCCUPIED",
|
|
statusColor: "bg-rose-500/10 text-rose-400 border-rose-500/20",
|
|
dotColor: "bg-rose-400",
|
|
tags: ["Video", "Display", "VC"],
|
|
subtitle: "Until 11:30 • Quarterly review",
|
|
actionType: "view"
|
|
},
|
|
{
|
|
id: 2,
|
|
name: "Huddle 1",
|
|
location: "L8 • 4 seats",
|
|
status: "AVAILABLE",
|
|
statusColor: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20",
|
|
dotColor: "bg-emerald-400",
|
|
tags: ["Display"],
|
|
subtitle: "Free now",
|
|
actionType: "book"
|
|
},
|
|
{
|
|
id: 3,
|
|
name: "Training Hall",
|
|
location: "L2 • 40 seats",
|
|
status: "RESERVED",
|
|
statusColor: "bg-amber-500/10 text-amber-400 border-amber-500/20",
|
|
dotColor: "bg-amber-400",
|
|
tags: ["Projector", "Mic", "Catering"],
|
|
subtitle: "Until 14:00 • Safety induction",
|
|
actionType: "view"
|
|
},
|
|
{
|
|
id: 4,
|
|
name: "Focus Room 3",
|
|
location: "L8 • 2 seats",
|
|
status: "AVAILABLE",
|
|
statusColor: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20",
|
|
dotColor: "bg-emerald-400",
|
|
tags: ["Display"],
|
|
subtitle: "Free now",
|
|
actionType: "book"
|
|
},
|
|
{
|
|
id: 5,
|
|
name: "Conf B",
|
|
location: "L5 • 10 seats",
|
|
status: "OCCUPIED",
|
|
statusColor: "bg-rose-500/10 text-rose-400 border-rose-500/20",
|
|
dotColor: "bg-rose-400",
|
|
tags: ["Video", "VC", "Whiteboard"],
|
|
subtitle: "Until 12:15 • Vendor call",
|
|
actionType: "view"
|
|
},
|
|
{
|
|
id: 6,
|
|
name: "Collab Zone",
|
|
location: "L3 • 8 seats",
|
|
status: "AVAILABLE",
|
|
statusColor: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20",
|
|
dotColor: "bg-emerald-400",
|
|
tags: ["Display", "Whiteboard"],
|
|
subtitle: "Free now",
|
|
actionType: "book"
|
|
}
|
|
];
|
|
|
|
export const scheduleData = [
|
|
{
|
|
room: "Boardroom A",
|
|
title: "Quarterly business review",
|
|
time: "09:00",
|
|
status: "occupied"
|
|
},
|
|
{
|
|
room: "Conf B",
|
|
title: "Vendor onboarding call",
|
|
time: "10:00",
|
|
status: "occupied"
|
|
},
|
|
{
|
|
room: "Training Hall",
|
|
title: "Fire-safety induction",
|
|
time: "11:30",
|
|
status: "reserved"
|
|
},
|
|
{
|
|
room: "Collab Zone",
|
|
title: "Design sprint",
|
|
time: "14:00",
|
|
status: "available"
|
|
},
|
|
{
|
|
room: "Huddle 1",
|
|
title: "1:1 sync",
|
|
time: "16:00",
|
|
status: "available"
|
|
}
|
|
];
|
|
export const workspaceTabs: string[] = [
|
|
'Desk Booking',
|
|
'Floor Plan',
|
|
'TimeTable',
|
|
|
|
];
|
|
export const reporttabs: string[] = [
|
|
'Equipment',
|
|
'Maintance',
|
|
'Checklists',
|
|
'Requests',
|
|
'Inventory',
|
|
'Energy',
|
|
'HSQE',
|
|
'MMR',
|
|
|
|
|
|
];
|
|
|
|
// Mock Data for Zone Utilization
|
|
export const zoneUtilizationData = [
|
|
{ name: "North Wing · L8", current: 39, max: 48, barColor: "bg-amber-400" },
|
|
{ name: "Quiet Zone · L8", current: 11, max: 24, barColor: "bg-teal-400" },
|
|
{ name: "Collab · L3", current: 22, max: 30, barColor: "bg-amber-400" },
|
|
{ name: "Hot Desk · L5", current: 51, max: 60, barColor: "bg-amber-400" },
|
|
];
|
|
|
|
// Mock Data for Planned vs Actual Categories
|
|
export const categoryData = [
|
|
{
|
|
category: "PPM & AMC contracts",
|
|
type: "OPEX",
|
|
planned: "₹48.0 L",
|
|
actual: "₹31.2 L",
|
|
variance: "+₹16.8 L",
|
|
varianceColor: "text-emerald-400",
|
|
utilization: 65,
|
|
barColor: "bg-teal-400"
|
|
},
|
|
{
|
|
category: "Reactive repairs",
|
|
type: "OPEX",
|
|
planned: "₹15.0 L",
|
|
actual: "₹16.8 L",
|
|
variance: "-₹1.8 L",
|
|
varianceColor: "text-rose-400",
|
|
utilization: 112,
|
|
barColor: "bg-rose-400"
|
|
},
|
|
{
|
|
category: "Energy & utilities",
|
|
type: "OPEX",
|
|
planned: "₹62.0 L",
|
|
actual: "₹54.1 L",
|
|
variance: "+₹7.9 L",
|
|
varianceColor: "text-emerald-400",
|
|
utilization: 87,
|
|
barColor: "bg-teal-400"
|
|
},
|
|
{
|
|
category: "Consumables & spares",
|
|
type: "OPEX",
|
|
planned: "₹9.0 L",
|
|
actual: "₹7.4 L",
|
|
variance: "+₹1.6 L",
|
|
varianceColor: "text-emerald-400",
|
|
utilization: 82,
|
|
barColor: "bg-teal-400"
|
|
},
|
|
{
|
|
category: "Equipment upgrades",
|
|
type: "CAPEX",
|
|
planned: "₹35.0 L",
|
|
actual: "₹12.0 L",
|
|
variance: "+₹23.0 L",
|
|
varianceColor: "text-emerald-400",
|
|
utilization: 34,
|
|
barColor: "bg-teal-400"
|
|
},
|
|
{
|
|
category: "Soft services",
|
|
type: "OPEX",
|
|
planned: "₹22.0 L",
|
|
actual: "₹20.5 L",
|
|
variance: "+₹1.5 L",
|
|
varianceColor: "text-emerald-400",
|
|
utilization: 93,
|
|
barColor: "bg-amber-400"
|
|
}
|
|
];
|
|
|
|
// Mock Data for Approval Queue
|
|
export const approvalQueueData = [
|
|
{
|
|
id: "BUD-114",
|
|
title: "Chiller compressor overhaul",
|
|
meta: "L2 • FM Head • ₹4.8 L",
|
|
status: "pending"
|
|
},
|
|
{
|
|
id: "BUD-115",
|
|
title: "Q3 energy budget revision",
|
|
meta: "L3 • Finance • ₹12.0 L",
|
|
status: "pending"
|
|
},
|
|
{
|
|
id: "BUD-112",
|
|
title: "Fire panel AMC renewal",
|
|
meta: "L1 • Site • ₹2.6 L",
|
|
status: "completed"
|
|
}
|
|
]; |