164 lines
8.1 KiB
Dart
164 lines
8.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
|
|
final Map<String, IconData> 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;
|
|
}
|
|
} |