Files
KAFM-Project/constants/constant.ts

667 lines
17 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 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 permitsData = [
{
permit: "PTW-2663",
workingType: "Work at Height",
location: "Atrium void",
contractor: "Blue Star",
validityDate: "Jun 26, 2026",
validityTime: "08:3017: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:0013: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:0018: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:0012: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:0016: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:0015: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:3017: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",
},
];