import { BarChart2, Box, CheckSquare, ClipboardCheck, Crosshair, FileText, LayoutGrid, Zap } from "lucide-react"; 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' }, ]; // Emission Sources Progress Data export const EMISSION_SOURCES = [ { name: "Purchased electricity", percentage: "58%", width: "w-[58%]", color: "bg-sky-400" }, { name: "DG / fuel combustion", percentage: "21%", width: "w-[21%]", color: "bg-amber-400" }, { name: "Refrigerants (fugitive)", percentage: "12%", width: "w-[12%]", color: "bg-rose-400" }, { name: "Water & waste", percentage: "9%", width: "w-[9%]", color: "bg-slate-400" }, ]; 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 aiHelpdeskTabs: string[] = [ 'Live triage', 'Invoice verification', 'SLA Enforecment', 'Automation rules', ]; export const Reqeusttabs: string[] = [ 'TFM Requests', 'Engineering', 'Schedule Complaints' ]; export const trainingtabs: string[] = [ 'Courses', 'Certificates & history', ]; 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 connectedassettabs:string[]=[ 'Asset Fleet', 'Excursions', 'Optimisation', ] export const sustainabilitytabs:string[]=[ 'ESG Data Hub', 'IoT sensor', 'Reporting engine', 'Target & forecasts', 'Social & goverance', ] export const gpsTrackingtabs:string[]=[ 'Live tracking', 'Geo-fences', 'Entry/exit logs', 'Route history', 'Mobile app', ] 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" } ]; export const wasteStreams = [ { name: "General / landfill", amount: "1240", percentage: 70, color: "bg-slate-500" }, { name: "Recyclable (paper/plastic)", amount: "860", percentage: 50, color: "bg-teal-400" }, { name: "Organic / compost", amount: "540", percentage: 35, color: "bg-emerald-400" }, { name: "E-waste", amount: "120", percentage: 10, color: "bg-blue-500" }, { name: "Hazardous", amount: "64", percentage: 5, color: "bg-rose-400" }, ]; export const scheduleItems = [ { frequency: "Mon · Wed · Fri", stream: "General + recyclable", vendor: "GreenCycle Pvt" }, { frequency: "Tue · Sat", stream: "Organic / compost", vendor: "In-house" }, { frequency: "Monthly", stream: "E-waste", vendor: "EcoReco" }, { frequency: "On call", stream: "Hazardous", vendor: "Ramky Enviro" }, ]; export const plantLoadData = [ { month: '08', height: 'h-[35%]' }, { month: '09', height: 'h-[38%]' }, { month: '10', height: 'h-[32%]' }, { month: '11', height: 'h-[40%]' }, { month: '12', height: 'h-[52%]' }, { month: '13', height: 'h-[68%]' }, { month: '14', height: 'h-[78%]' }, { month: '15', height: 'h-[78%]' }, { month: '16', height: 'h-[78%]' }, { month: '17', height: 'h-[78%]' }, { month: '18', height: 'h-[78%]' }, { month: '19', height: 'h-[78%]' } ]; // Initial roles state export const rolesList = [ { id: "admin", label: "Admin", badge: "all" }, { id: "helpdesk", label: "Helpdesk", badge: "scoped" }, { id: "mne_supervisor", label: "M&E Supervisor", badge: "scoped" }, { id: "technician", label: "Technician", badge: "scoped" }, { id: "tenant", label: "Tenant", badge: "scoped" }, ]; // Initial permissions table data export const initialPermissions = [ { id: 1, module: "Help Desk", menu: "Daily Location Checklist", permissions: { all: false, view: true, add: true, edit: true, delete: false, cancel: true, print: true }, }, { id: 2, module: "Equipment", menu: "Site-Wise Equipment", permissions: { all: false, view: true, add: true, edit: true, delete: false, cancel: true, print: true }, }, { id: 3, module: "Equipment", menu: "AMC Schedule", permissions: { all: false, view: true, add: true, edit: true, delete: false, cancel: true, print: true }, }, { id: 4, module: "Request", menu: "TFM Request", permissions: { all: false, view: true, add: true, edit: true, delete: false, cancel: true, print: true }, }, { id: 5, module: "Energy", menu: "Meter Reading", permissions: { all: false, view: true, add: true, edit: true, delete: false, cancel: true, print: true }, }, { id: 6, module: "Master", menu: "Request Location", permissions: { all: false, view: true, add: true, edit: true, delete: false, cancel: true, print: true }, }, { id: 7, module: "Security", menu: "Users", permissions: { all: false, view: true, add: true, edit: true, delete: false, cancel: true, print: true }, }, ]; export const blocks = ["Block 1", "Block 2", "Tower A"]; export const floors = ["Ground", "Floor 1", "Floor 2"]; export const zones = ["Zone N", "Zone Z1", "Zone Z2"]; // Mock user location data matching the screenshot export const userData = [ { name: "Dhananjay T.", email: "dhananjay@kafm.io", mobile: "7489477369", latitude: "18.5450", longitude: "73.7935", site: "Apple One", // Relative coordinates for the map visual dots (X%, Y%) x: "19%", y: "38%", }, { name: "ME Local", email: "me.local@kafm.io", mobile: "9876543210", latitude: "18.5469", longitude: "73.7945", site: "Apple One", x: "44%", y: "43%", }, { name: "TECH Local", email: "tech.local@kafm.io", mobile: "9123456780", latitude: "18.5441", longitude: "73.7951", site: "Apple One", x: "69%", y: "48%", }, ]; export const STAT_CARDS_DATA = [ { title: "SLA ADHERENCE", value: "90%", subtext: "target 90% · automated tracking", progress: 90, color: "bg-[#00c985]", // Vibrant emerald green valueColor: "text-[#00c985]", }, { title: "AVG WO RESOLUTION", value: "22.4 h", subtext: "target < 24 h · portfolio median", progress: 93, color: "bg-[#2dd4bf]", // Mint / Teal valueColor: "text-white", }, { title: "MANUAL DATA ENTRY", value: "-80%", subtext: "agent-captured requests & readings", progress: 80, color: "bg-[#2dd4bf]", // Mint / Teal valueColor: "text-[#2dd4bf]", }, { title: "REPORTING EFFORT", value: "-75%", subtext: "metrics ready for review — no compiling", progress: 75, color: "bg-[#2dd4bf]", // Mint / Teal valueColor: "text-[#2dd4bf]", }, ]; // Data for Risk Radar export const RISK_RADAR_ITEMS = [ { title: "Coastal One · vendor gap", desc: "HVAC vendor completion rate fell to 61% — 8 PPMs at risk of slipping this month. Backup vendor suggested.", tag: "Escalates in ~6 days", tagColor: "text-rose-400", dotColor: "bg-rose-500", action: "Assign backup", }, { title: "Lakeside · SLA drift", desc: "P2 response times trending +18% over 3 weeks; correlated with night-shift staffing.", tag: "Breach risk · next week", tagColor: "text-amber-400", dotColor: "bg-amber-400", action: "Adjust roster", }, { title: "Monsoon readiness", desc: "4 of 11 waterproofing checks pending across portfolio with rains forecast in 10 days.", tag: "Window closing", tagColor: "text-amber-400", dotColor: "bg-amber-400", action: "Schedule now", }, { title: "Spares shortfall", desc: "AHU belt stock below reorder level at 2 sites; next PPM cycle consumes remaining stock.", tag: "3 weeks of stock left", tagColor: "text-sky-400", dotColor: "bg-sky-400", action: "Raise PO", }, ]; // Data for Vendor Performance export const VENDOR_PERFORMANCE = [ { name: "CoolServ HVAC", score: 94, barColor: "bg-emerald-400" }, { name: "Apex Elevators", score: 91, barColor: "bg-emerald-400" }, { name: "SecureWatch", score: 86, barColor: "bg-emerald-400" }, { name: "AquaPure", score: 82, barColor: "bg-amber-400" }, { name: "GreenScape", score: 61, barColor: "bg-rose-400" }, ]; // Data for Live Context Feed export const LIVE_FEED = [ { time: "now", text: "Vendor CoolServ acknowledged P1 · Chiller-02 — tenant portal updated" }, { time: "4 min", text: "Energy spike at Lakeside auto-linked to AHU-07 alert" }, { time: "11 min", text: "Coastal One WO-1221 completed · SLA met · invoice draft created" }, { time: "26 min", text: "Tenant satisfaction pulse: 4.4 ★ this week (+0.2)" }, ]; export const STAFF_DATA = [ { name: "Ravi Kumar", role: "M&E Technician", zone: "Chiller plant", inTime: "08:02", hrs: "6.4", status: "ON-SITE", statusType: "success" }, { name: "Sana Iqbal", role: "HVAC Engineer", zone: "AHU room L7", inTime: "08:15", hrs: "6.1", status: "ON-SITE", statusType: "success" }, { name: "Mohan D.", role: "Electrician", zone: "En route", inTime: "—", hrs: "0", status: "EN-ROUTE", statusType: "warning" }, { name: "Lakshmi N.", role: "Housekeeping Lead", zone: "Lobby + L2", inTime: "07:48", hrs: "6.7", status: "ON-SITE", statusType: "success" }, { name: "Arjun P.", role: "Plumber", zone: "Off-site", inTime: "—", hrs: "0", status: "OFF-SITE", statusType: "neutral" }, { name: "Fatima R.", role: "BMS Operator", zone: "Control room", inTime: "06:55", hrs: "7.6", status: "ON-SITE", statusType: "success" }, ]; export const permitsData = [ { permit: "PTW-2663", workingType: "Work at Height", location: "Atrium void", contractor: "Blue Star", validityDate: "Jun 26, 2026", validityTime: "08:30–17:00", crew: 2, status: "ACTIVE", actionText: "Close out", isHighlighted: false, }, { permit: "PTW-2664", workingType: "Electrical Isolation", location: "STP wet well", contractor: "Sterling FM", validityDate: "Jun 26, 2026", validityTime: "09:00–13:00", crew: 3, status: "SUBMITTED", actionText: "Approve", isHighlighted: true, // Row with highlight bar }, { permit: "PTW-2665", workingType: "Confined Space", location: "DG yard", contractor: "In-house team", validityDate: "Jun 26, 2026", validityTime: "14:00–18:00", crew: 4, status: "APPROVED", actionText: "Activate", isHighlighted: false, }, { permit: "PTW-2666", workingType: "Hot Work", location: "Roof terrace", contractor: "Voltas Ltd", validityDate: "Jun 25, 2026", validityTime: "08:00–12:00", crew: 5, status: "EXPIRED", hasViewIconOnly: true, isHighlighted: false, }, { permit: "PTW-2667", workingType: "Work at Height", location: "LT panel room", contractor: "Blue Star", validityDate: "Jun 25, 2026", validityTime: "10:00–16:00", crew: 2, status: "CLOSED", hasViewIconOnly: true, isHighlighted: false, }, { permit: "PTW-2668", workingType: "Electrical Isolation", location: "Chiller plant", contractor: "Sterling FM", validityDate: "Jun 26, 2026", validityTime: "11:00–15:00", crew: 3, status: "REJECTED", hasViewIconOnly: true, isHighlighted: false, }, { permit: "PTW-2726", workingType: "Work at Height", location: "Atrium void", contractor: "Blue Star", validityDate: "Jun 26, 2026", validityTime: "08:30–17:00", crew: 2, status: "DRAFT", actionText: "Submit", isHighlighted: false, }, ]; export const LIVE_ACTIVITIES = [ { time: "2 min ago", title: "AC not cooling — 4F, Zone B", detail: "Reset VAV setpoint via BMS · confirmed with requester", status: "AUTO-RESOLVED", conf: "96% conf", statusColor: "text-emerald-400 bg-emerald-950/60 border-emerald-800/40", dotColor: "bg-emerald-400", }, { time: "9 min ago", title: "Water leakage near lobby lift", detail: "Safety keyword detected → priority P1 · plumber dispatched", status: "ESCALATED", conf: "99% conf", statusColor: "text-rose-400 bg-rose-950/60 border-rose-800/40", dotColor: "bg-rose-400", }, { time: "22 min ago", title: "Meeting room projector flickering", detail: "Assigned to AV vendor · parts history attached", status: "ROUTED", conf: "88% conf", statusColor: "text-sky-400 bg-sky-950/60 border-sky-800/40", dotColor: "bg-sky-400", }, { time: "38 min ago", title: "Request for extra chairs — Hall 2", detail: "Soft-service task created · housekeeping confirmed", status: "AUTO-RESOLVED", conf: "94% conf", statusColor: "text-emerald-400 bg-emerald-950/60 border-emerald-800/40", dotColor: "bg-emerald-400", }, { time: "1 h ago", title: "Bad odour in basement parking", detail: "Linked to drain-line PPM due tomorrow — merged to avoid duplicate", status: "ROUTED", conf: "82% conf", statusColor: "text-sky-400 bg-sky-950/60 border-sky-800/40", dotColor: "bg-sky-400", }, { time: "2 h ago", title: "Card reader not working — Gate 3", detail: "Security-critical asset → P2 · vendor SLA timer started", status: "ESCALATED", conf: "97% conf", statusColor: "text-amber-400 bg-amber-950/60 border-amber-800/40", dotColor: "bg-amber-400", }, ]; export const HANDLES_DATA = [ { title: "Routine comfort requests", subtitle: "temperature, lighting, cleaning", }, { title: "Duplicate & merge detection", subtitle: "links repeats to open WOs", }, { title: "Priority & safety triage", subtitle: "P1 keywords escalate instantly", }, { title: "Vendor dispatch", subtitle: "assigns per contract & skill", }, ]; export const initialRows = [ // Row 1 (2 cards) { id: "row-1", widgets: [ { id: "w1", title: "TFM Requests · Monthly", type: "report.widget" }, { id: "w2", title: "Recent Activity", type: "report.widget" }, ], }, // Row 2 (2 cards) { id: "row-2", widgets: [ { id: "w3", title: "Schedule Performance", type: "report.widget" }, { id: "w4", title: "Energy · Today", type: "report.widget" }, ], }, // Row 3 (3 cards) { id: "row-3", widgets: [ { id: "w5", title: "Top 5 Requester", type: "report.widget" }, { id: "w6", title: "Asset Register", type: "report.widget" }, { id: "w7", title: "PM Plan vs Started", type: "report.widget" }, ], }, ]; export const initialLanguageValues = [ { id: 1, app: "Web Console", menu: "Tenant", screen: "Tenant List", uiKey: "btn.add_tenant", code: "EN", value: "Add Tenant", }, { id: 2, app: "Web Console", menu: "Site", screen: "Site List", uiKey: "btn.add_site", code: "EN", value: "Add Site", }, { id: 3, app: "Mobile App", menu: "Inspections", screen: "QR Round", uiKey: "lbl.scan_qr", code: "EN", value: "Scan QR to begin round", }, ]; export const initialModules = [ { id: "MOD-01", title: "Dashboard", description: "Operational overview & live KPIs", icon: LayoutGrid, menus: [], // Currently empty as per screenshot }, { id: "MOD-02", title: "Helpdesk", description: "Tickets, requests & SLA tracking", icon: CheckSquare, menus: ["Tickets", "SLA Settings", "Queues"], }, { id: "MOD-03", title: "Equipment", description: "Asset register & equipment groups", icon: Crosshair, menus: ["Asset Register", "Categories"], }, { id: "MOD-04", title: "Request", description: "Service requests & approvals", icon: FileText, menus: ["My Requests", "Approvals"], }, { id: "MOD-05", title: "Inventory", description: "Stock, spares & consumables", icon: Box, menus: ["Stock Levels", "Suppliers"], }, { id: "MOD-06", title: "Energy", description: "Meters, consumption & analytics", icon: Zap, menus: ["Meters", "Analytics"], }, { id: "MOD-07", title: "Inspections", description: "QR rounds & checklists", icon: ClipboardCheck, menus: ["Rounds", "Checklists"], }, { id: "MOD-08", title: "Reports", description: "Analytics & export tools", icon: BarChart2, menus: ["Scheduled Reports", "Custom Builder"], }, ];