import 'package:flutter/material.dart'; final Map iconMapping = { // General Project Management Icons 'dashboard': Icons.dashboard, // Overview screen 'project': Icons.work, // Represents a project 'tasks': Icons.check_box, // Task list 'calendar': Icons.calendar_today, // Calendar view 'team': Icons.group, // Team collaboration 'kanban': Icons.view_column, // Kanban board 'timeline': Icons.timeline, // Project timeline 'milestone': Icons.flag, // Milestones 'priority': Icons.priority_high, // General priority indicator 'settings': Icons.settings, // Settings or configurations 'chat': Icons.chat, // Communication/chat 'files': Icons.insert_drive_file, // File management 'notes': Icons.note, // Notes or documentation 'report': Icons.insert_chart, // Reporting and analytics // Priority Related Icons 'to_do': Icons.assignment, // To do tasks 'in_progress': Icons.autorenew, // Tasks in progress 'complete': Icons.check_circle, // Completed tasks 'archived': Icons.archive, // Archived tasks // Deadline Related Icons 'deadline': Icons.timer, // Deadline indicator 'reminder': Icons.alarm, // Deadline reminder 'due_today': Icons.today, // Tasks due today 'upcoming': Icons.event_available, // Upcoming deadlines // Additional 'overdue': Icons.warning, // Overdue tasks or deadlines 'budget': Icons.account_balance_wallet, // Budget and finance 'resource': Icons.perm_contact_calendar, // Resource allocation 'risk': Icons.warning_amber, // Risk management 'feedback': Icons.feedback, // Feedback and reviews 'timeline_edit': Icons.edit_calendar, // Edit project timeline 'workflow': Icons.shuffle, // Workflow management 'dependencies': Icons.link, // Task dependencies 'progress': Icons.show_chart, // Project progress 'schedule': Icons.schedule, // Scheduling 'support': Icons.support, // Support/help 'permissions': Icons.lock, // Access permissions 'backup': Icons.backup, // Data backup 'integration': Icons.extension, // Integrations 'search': Icons.search, // Search functionality 'announcement': Icons.announcement, // Announcements or updates 'analytics': Icons.analytics, // Project analytics 'assignment': Icons.assignment_turned_in, // Task assignments 'discussions': Icons.forum, // Discussions/threads 'timeline_view': Icons.view_timeline, // Detailed timeline view 'board': Icons.dashboard_customize, // Custom project boards 'approval': Icons.how_to_vote, // Approvals 'review': Icons.rate_review, // Reviews and feedback 'objective': Icons.golf_course, // Objectives/goals 'settings_advanced': Icons.tune, // Advanced settings 'time_tracking': Icons.timer_outlined, // Time tracking 'checklist': Icons.checklist, // Checklists 'sync': Icons.sync, // Syncing data 'upload': Icons.cloud_upload, // Upload files 'download': Icons.cloud_download, // Download files 'share': Icons.share, // Sharing options 'tag': Icons.label, // Tags/labels 'notifications': Icons.notifications, // Notifications 'user_roles': Icons.manage_accounts, // User roles and permissions 'logout': Icons.logout, // Logout 'automation': Icons.auto_awesome, // Automation 'history': Icons.history, // Project history/logs 'estimate': Icons.calculate, // Estimates and costing 'quality': Icons.verified, // Quality assurance 'strategy': Icons.lightbulb, // Strategy planning 'feedback_form': Icons.comment, // Feedback forms 'presentation': Icons.slideshow, // Project presentations }; class ProjectIcons { static const IconData dashboard = Icons.dashboard; static const IconData project = Icons.work; static const IconData tasks = Icons.check_box; static const IconData calendar = Icons.calendar_today; static const IconData team = Icons.group; static const IconData kanban = Icons.view_column; static const IconData timeline = Icons.timeline; static const IconData milestone = Icons.flag; static const IconData priority = Icons.priority_high; static const IconData settings = Icons.settings; static const IconData chat = Icons.chat; static const IconData files = Icons.insert_drive_file; static const IconData notes = Icons.note; static const IconData report = Icons.insert_chart; static const IconData todo = Icons.assignment; static const IconData inProgress = Icons.autorenew; static const IconData complete = Icons.check_circle; static const IconData archived = Icons.archive; static const IconData deadline = Icons.timer; static const IconData reminder = Icons.alarm; static const IconData dueToday = Icons.today; static const IconData upcoming = Icons.event_available; static const IconData overdue = Icons.warning; static const IconData budget = Icons.account_balance_wallet; static const IconData resource = Icons.perm_contact_calendar; static const IconData risk = Icons.warning_amber; static const IconData feedback = Icons.feedback; static const IconData timelineEdit = Icons.edit_calendar; static const IconData workflow = Icons.shuffle; static const IconData dependencies = Icons.link; static const IconData progress = Icons.show_chart; static const IconData schedule = Icons.schedule; static const IconData support = Icons.support; static const IconData permissions = Icons.lock; static const IconData backup = Icons.backup; static const IconData integration = Icons.extension; static const IconData search = Icons.search; static const IconData announcement = Icons.announcement; static const IconData analytics = Icons.analytics; static const IconData assignment = Icons.assignment_turned_in; static const IconData discussions = Icons.forum; static const IconData timelineView = Icons.view_timeline; static const IconData board = Icons.dashboard_customize; static const IconData approval = Icons.how_to_vote; static const IconData review = Icons.rate_review; static const IconData objective = Icons.golf_course; static const IconData settingsAdvanced = Icons.tune; static const IconData timeTracking = Icons.timer_outlined; static const IconData checklist = Icons.checklist; static const IconData sync = Icons.sync; static const IconData upload = Icons.cloud_upload; static const IconData download = Icons.cloud_download; static const IconData share = Icons.share; static const IconData tag = Icons.label; static const IconData notifications = Icons.notifications; static const IconData userRoles = Icons.manage_accounts; static const IconData logout = Icons.logout; static const IconData automation = Icons.auto_awesome; static const IconData history = Icons.history; static const IconData estimate = Icons.calculate; static const IconData quality = Icons.verified; static const IconData strategy = Icons.lightbulb; static const IconData feedbackForm = Icons.comment; static const IconData presentation = Icons.slideshow; } extension IconDataKeyExtension on IconData { String get toIconKey { return iconMapping.entries.firstWhere( (entry) => entry.value == this, orElse: () => throw Exception('IconData not found in mapping.'), ).key; } } extension IconDataFromKeyExtension on String { IconData get toIconData { final iconData = iconMapping[this]; if (iconData == null) { throw Exception('No IconData found for key: $this'); } return iconData; } }