Files
2025-11-13 15:06:15 +03:00

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;
}
}