@hed-hog/operations 0.0.3 → 0.0.286
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +122 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/operations-data.controller.d.ts +139 -0
- package/dist/operations-data.controller.d.ts.map +1 -0
- package/dist/operations-data.controller.js +113 -0
- package/dist/operations-data.controller.js.map +1 -0
- package/dist/operations-growth.controller.d.ts +48 -0
- package/dist/operations-growth.controller.d.ts.map +1 -0
- package/dist/operations-growth.controller.js +90 -0
- package/dist/operations-growth.controller.js.map +1 -0
- package/dist/operations.module.d.ts.map +1 -1
- package/dist/operations.module.js +10 -4
- package/dist/operations.module.js.map +1 -1
- package/dist/operations.service.d.ts +178 -0
- package/dist/operations.service.d.ts.map +1 -0
- package/dist/operations.service.js +134 -0
- package/dist/operations.service.js.map +1 -0
- package/hedhog/data/menu.yaml +251 -132
- package/hedhog/data/operations_career_level.yaml +102 -0
- package/hedhog/data/operations_career_track.yaml +8 -0
- package/hedhog/data/operations_certification.yaml +38 -0
- package/hedhog/data/operations_evaluation_cycle.yaml +18 -0
- package/hedhog/data/operations_performance_criterion.yaml +48 -0
- package/hedhog/data/role.yaml +14 -7
- package/hedhog/data/route.yaml +143 -80
- package/hedhog/frontend/app/_components/allocation-calendar.tsx.ejs +56 -56
- package/hedhog/frontend/app/_components/kanban-board.tsx.ejs +626 -83
- package/hedhog/frontend/app/_components/operations-header.tsx.ejs +29 -29
- package/hedhog/frontend/app/_components/section-card.tsx.ejs +32 -32
- package/hedhog/frontend/app/_components/status-badge.tsx.ejs +15 -15
- package/hedhog/frontend/app/_components/timesheet-entry-dialog.tsx.ejs +142 -142
- package/hedhog/frontend/app/_lib/hooks/use-operations-data.ts.ejs +41 -41
- package/hedhog/frontend/app/_lib/hooks/use-operations-growth-data.ts.ejs +63 -0
- package/hedhog/frontend/app/_lib/mocks/allocations.mock.ts.ejs +74 -74
- package/hedhog/frontend/app/_lib/mocks/contracts.mock.ts.ejs +74 -74
- package/hedhog/frontend/app/_lib/mocks/operations-growth.mock.ts.ejs +824 -0
- package/hedhog/frontend/app/_lib/mocks/projects.mock.ts.ejs +455 -60
- package/hedhog/frontend/app/_lib/mocks/tasks.mock.ts.ejs +117 -88
- package/hedhog/frontend/app/_lib/mocks/timesheets.mock.ts.ejs +84 -84
- package/hedhog/frontend/app/_lib/mocks/users.mock.ts.ejs +67 -67
- package/hedhog/frontend/app/_lib/services/contracts.service.ts.ejs +10 -10
- package/hedhog/frontend/app/_lib/services/operations-growth.service.ts.ejs +31 -0
- package/hedhog/frontend/app/_lib/services/projects.service.ts.ejs +10 -10
- package/hedhog/frontend/app/_lib/services/tasks.service.ts.ejs +10 -10
- package/hedhog/frontend/app/_lib/services/timesheets.service.ts.ejs +10 -10
- package/hedhog/frontend/app/_lib/types/operations-growth.ts.ejs +209 -0
- package/hedhog/frontend/app/_lib/types/operations.ts.ejs +156 -95
- package/hedhog/frontend/app/_lib/utils/format.ts.ejs +25 -25
- package/hedhog/frontend/app/_lib/utils/growth.ts.ejs +62 -0
- package/hedhog/frontend/app/_lib/utils/metrics.ts.ejs +103 -103
- package/hedhog/frontend/app/_lib/utils/status.ts.ejs +80 -80
- package/hedhog/frontend/app/allocations/page.tsx.ejs +155 -99
- package/hedhog/frontend/app/approvals/page.tsx.ejs +147 -147
- package/hedhog/frontend/app/career/page.tsx.ejs +143 -0
- package/hedhog/frontend/app/certifications/page.tsx.ejs +202 -0
- package/hedhog/frontend/app/contracts/[id]/page.tsx.ejs +108 -108
- package/hedhog/frontend/app/contracts/page.tsx.ejs +181 -124
- package/hedhog/frontend/app/evaluations/page.tsx.ejs +278 -0
- package/hedhog/frontend/app/goals/page.tsx.ejs +171 -0
- package/hedhog/frontend/app/growth/page.tsx.ejs +288 -0
- package/hedhog/frontend/app/layout.tsx.ejs +9 -9
- package/hedhog/frontend/app/manager/page.tsx.ejs +175 -0
- package/hedhog/frontend/app/page.tsx.ejs +177 -177
- package/hedhog/frontend/app/projects/[id]/page.tsx.ejs +936 -186
- package/hedhog/frontend/app/projects/page.tsx.ejs +1074 -111
- package/hedhog/frontend/app/rewards/page.tsx.ejs +196 -0
- package/hedhog/frontend/app/tasks/page.tsx.ejs +999 -47
- package/hedhog/frontend/app/timesheets/page.tsx.ejs +126 -126
- package/hedhog/frontend/messages/en.json +454 -142
- package/hedhog/frontend/messages/pt.json +454 -142
- package/hedhog/table/operations_allocation.yaml +52 -0
- package/hedhog/table/operations_calibration_item.yaml +61 -0
- package/hedhog/table/operations_calibration_session.yaml +25 -0
- package/hedhog/table/operations_career_level.yaml +75 -0
- package/hedhog/table/operations_career_track.yaml +21 -0
- package/hedhog/table/operations_certification.yaml +48 -0
- package/hedhog/table/operations_contract.yaml +57 -0
- package/hedhog/table/operations_employee.yaml +64 -0
- package/hedhog/table/operations_employee_certification.yaml +43 -0
- package/hedhog/table/operations_employee_connect.yaml +61 -0
- package/hedhog/table/operations_employee_evaluation.yaml +113 -0
- package/hedhog/table/operations_employee_evaluation_item.yaml +39 -0
- package/hedhog/table/operations_employee_profile.yaml +80 -0
- package/hedhog/table/operations_employee_skill_matrix.yaml +30 -0
- package/hedhog/table/operations_evaluation_cycle.yaml +31 -0
- package/hedhog/table/operations_goal.yaml +67 -0
- package/hedhog/table/operations_goal_progress.yaml +31 -0
- package/hedhog/table/operations_performance_criterion.yaml +29 -0
- package/hedhog/table/operations_project.yaml +66 -0
- package/hedhog/table/operations_promotion_readiness.yaml +49 -0
- package/hedhog/table/operations_promotion_recommendation.yaml +63 -0
- package/hedhog/table/operations_public_recognition.yaml +46 -0
- package/hedhog/table/operations_reward.yaml +100 -0
- package/hedhog/table/operations_score_event.yaml +81 -0
- package/hedhog/table/operations_task.yaml +60 -0
- package/hedhog/table/operations_timesheet.yaml +49 -0
- package/hedhog/table/operations_timesheet_entry.yaml +51 -0
- package/package.json +4 -4
- package/src/index.ts +2 -1
- package/src/language/en.json +8 -8
- package/src/language/pt.json +8 -8
- package/src/operations-data.controller.ts +54 -0
- package/src/operations-growth.controller.ts +44 -0
- package/src/operations.module.ts +21 -15
- package/src/operations.service.ts +137 -0
|
@@ -1,142 +1,454 @@
|
|
|
1
|
-
{
|
|
2
|
-
"DashboardPage": {
|
|
3
|
-
"title": "Operations Dashboard",
|
|
4
|
-
"description": "Track delivery health, utilization, approvals, and team throughput.",
|
|
5
|
-
"breadcrumb": "Dashboard",
|
|
6
|
-
"cards": {
|
|
7
|
-
"activeProjects": "Total Active Projects",
|
|
8
|
-
"loggedHours": "Hours Logged This Month",
|
|
9
|
-
"pendingHours": "Hours Pending Approval",
|
|
10
|
-
"revenue": "Revenue",
|
|
11
|
-
"utilization": "Team Utilization"
|
|
12
|
-
},
|
|
13
|
-
"charts": {
|
|
14
|
-
"hoursByProject": "Hours by Project",
|
|
15
|
-
"hoursByProjectDescription": "Logged effort grouped by active engagements.",
|
|
16
|
-
"hoursByUser": "Hours by User",
|
|
17
|
-
"hoursByUserDescription": "Delivery effort by consultant.",
|
|
18
|
-
"approvalStatus": "Approval Status",
|
|
19
|
-
"approvalStatusDescription": "Approved, pending, and rejected entries.",
|
|
20
|
-
"weeklyTrend": "Weekly Timesheet Trend",
|
|
21
|
-
"weeklyTrendDescription": "Recent weekly delivery cadence."
|
|
22
|
-
},
|
|
23
|
-
"recentTable": {
|
|
24
|
-
"title": "Recent Timesheet Entries",
|
|
25
|
-
"description": "Latest operational logging activity.",
|
|
26
|
-
"user": "User",
|
|
27
|
-
"project": "Project",
|
|
28
|
-
"task": "Task",
|
|
29
|
-
"hours": "Hours",
|
|
30
|
-
"status": "Status"
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
"ContractsPage": {
|
|
34
|
-
"title": "Contracts",
|
|
35
|
-
"description": "Review commercial agreements, caps, and linked delivery streams.",
|
|
36
|
-
"breadcrumb": "Contracts",
|
|
37
|
-
"tableTitle": "Contract Registry",
|
|
38
|
-
"tableDescription": "Static mock list ready for future API pagination and filters.",
|
|
39
|
-
"searchPlaceholder": "Search contract or client...",
|
|
40
|
-
"filters": {
|
|
41
|
-
"all": "All statuses",
|
|
42
|
-
"active": "Active",
|
|
43
|
-
"renewal": "Renewal",
|
|
44
|
-
"expired": "Expired",
|
|
45
|
-
"draft": "Draft"
|
|
46
|
-
},
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
"
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
"
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
"
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
"
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
"
|
|
134
|
-
"
|
|
135
|
-
"
|
|
136
|
-
"
|
|
137
|
-
"
|
|
138
|
-
"
|
|
139
|
-
"
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
1
|
+
{
|
|
2
|
+
"DashboardPage": {
|
|
3
|
+
"title": "Operations Dashboard",
|
|
4
|
+
"description": "Track delivery health, utilization, approvals, and team throughput.",
|
|
5
|
+
"breadcrumb": "Dashboard",
|
|
6
|
+
"cards": {
|
|
7
|
+
"activeProjects": "Total Active Projects",
|
|
8
|
+
"loggedHours": "Hours Logged This Month",
|
|
9
|
+
"pendingHours": "Hours Pending Approval",
|
|
10
|
+
"revenue": "Revenue",
|
|
11
|
+
"utilization": "Team Utilization"
|
|
12
|
+
},
|
|
13
|
+
"charts": {
|
|
14
|
+
"hoursByProject": "Hours by Project",
|
|
15
|
+
"hoursByProjectDescription": "Logged effort grouped by active engagements.",
|
|
16
|
+
"hoursByUser": "Hours by User",
|
|
17
|
+
"hoursByUserDescription": "Delivery effort by consultant.",
|
|
18
|
+
"approvalStatus": "Approval Status",
|
|
19
|
+
"approvalStatusDescription": "Approved, pending, and rejected entries.",
|
|
20
|
+
"weeklyTrend": "Weekly Timesheet Trend",
|
|
21
|
+
"weeklyTrendDescription": "Recent weekly delivery cadence."
|
|
22
|
+
},
|
|
23
|
+
"recentTable": {
|
|
24
|
+
"title": "Recent Timesheet Entries",
|
|
25
|
+
"description": "Latest operational logging activity.",
|
|
26
|
+
"user": "User",
|
|
27
|
+
"project": "Project",
|
|
28
|
+
"task": "Task",
|
|
29
|
+
"hours": "Hours",
|
|
30
|
+
"status": "Status"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"ContractsPage": {
|
|
34
|
+
"title": "Contracts",
|
|
35
|
+
"description": "Review commercial agreements, caps, and linked delivery streams.",
|
|
36
|
+
"breadcrumb": "Contracts",
|
|
37
|
+
"tableTitle": "Contract Registry",
|
|
38
|
+
"tableDescription": "Static mock list ready for future API pagination and filters.",
|
|
39
|
+
"searchPlaceholder": "Search contract or client...",
|
|
40
|
+
"filters": {
|
|
41
|
+
"all": "All statuses",
|
|
42
|
+
"active": "Active",
|
|
43
|
+
"renewal": "Renewal",
|
|
44
|
+
"expired": "Expired",
|
|
45
|
+
"draft": "Draft"
|
|
46
|
+
},
|
|
47
|
+
"emptyState": {
|
|
48
|
+
"title": "No contracts found",
|
|
49
|
+
"description": "Adjust your search filters to view registered contracts.",
|
|
50
|
+
"action": "Clear filters"
|
|
51
|
+
},
|
|
52
|
+
"columns": {
|
|
53
|
+
"name": "Contract Name",
|
|
54
|
+
"client": "Client",
|
|
55
|
+
"type": "Type",
|
|
56
|
+
"startDate": "Start Date",
|
|
57
|
+
"endDate": "End Date",
|
|
58
|
+
"hourRate": "Hour Rate",
|
|
59
|
+
"hourLimit": "Hour Limit",
|
|
60
|
+
"status": "Status"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"ProjectsPage": {
|
|
64
|
+
"title": "Projects",
|
|
65
|
+
"description": "Navigate portfolio health, progress, and staffing at a glance.",
|
|
66
|
+
"breadcrumb": "Projects",
|
|
67
|
+
"searchPlaceholder": "Search project or client...",
|
|
68
|
+
"budget": "Budget",
|
|
69
|
+
"dateRange": "Date Range",
|
|
70
|
+
"view": {
|
|
71
|
+
"table": "Table view",
|
|
72
|
+
"grid": "Grid view"
|
|
73
|
+
},
|
|
74
|
+
"actions": {
|
|
75
|
+
"create": "New Project",
|
|
76
|
+
"edit": "Edit",
|
|
77
|
+
"save": "Save Project"
|
|
78
|
+
},
|
|
79
|
+
"stats": {
|
|
80
|
+
"totalProjects": "Total Projects",
|
|
81
|
+
"activeProjects": "Active Projects",
|
|
82
|
+
"avgProgress": "Average Progress",
|
|
83
|
+
"totalHours": "Total Logged Hours"
|
|
84
|
+
},
|
|
85
|
+
"filters": {
|
|
86
|
+
"statusAll": "All statuses",
|
|
87
|
+
"progressAll": "Any progress",
|
|
88
|
+
"progress0To25": "0% to 25%",
|
|
89
|
+
"progress26To50": "26% to 50%",
|
|
90
|
+
"progress51To75": "51% to 75%",
|
|
91
|
+
"progress76To100": "76% to 100%"
|
|
92
|
+
},
|
|
93
|
+
"statusOptions": {
|
|
94
|
+
"planning": "Planning",
|
|
95
|
+
"active": "Active",
|
|
96
|
+
"atRisk": "At Risk",
|
|
97
|
+
"paused": "Paused",
|
|
98
|
+
"completed": "Completed"
|
|
99
|
+
},
|
|
100
|
+
"columns": {
|
|
101
|
+
"project": "Project",
|
|
102
|
+
"client": "Client",
|
|
103
|
+
"status": "Status",
|
|
104
|
+
"progress": "Progress",
|
|
105
|
+
"team": "Team",
|
|
106
|
+
"hours": "Hours",
|
|
107
|
+
"dates": "Dates",
|
|
108
|
+
"budget": "Budget",
|
|
109
|
+
"actions": "Actions"
|
|
110
|
+
},
|
|
111
|
+
"emptyState": {
|
|
112
|
+
"title": "No projects match your current filters",
|
|
113
|
+
"description": "Try broadening search criteria to view projects.",
|
|
114
|
+
"action": "Clear filters"
|
|
115
|
+
},
|
|
116
|
+
"sheet": {
|
|
117
|
+
"createTitle": "Create project",
|
|
118
|
+
"createDescription": "Add a new project to your operations portfolio.",
|
|
119
|
+
"editTitle": "Edit project",
|
|
120
|
+
"editDescription": "Adjust project details and keep delivery planning updated."
|
|
121
|
+
},
|
|
122
|
+
"form": {
|
|
123
|
+
"nameLabel": "Project name",
|
|
124
|
+
"namePlaceholder": "Ex: Atlas CRM Expansion",
|
|
125
|
+
"clientLabel": "Client",
|
|
126
|
+
"clientPlaceholder": "Ex: Atlas Logistics",
|
|
127
|
+
"contractLabel": "Contract",
|
|
128
|
+
"contractPlaceholder": "Select a linked contract",
|
|
129
|
+
"statusLabel": "Status",
|
|
130
|
+
"statusPlaceholder": "Select a status",
|
|
131
|
+
"progressLabel": "Progress (%)",
|
|
132
|
+
"progressPlaceholder": "Ex: 45",
|
|
133
|
+
"hoursLabel": "Logged hours",
|
|
134
|
+
"hoursPlaceholder": "Ex: 120",
|
|
135
|
+
"budgetLabel": "Budget",
|
|
136
|
+
"budgetPlaceholder": "Ex: 98000",
|
|
137
|
+
"startDateLabel": "Start date",
|
|
138
|
+
"startDatePlaceholder": "Select start date",
|
|
139
|
+
"endDateLabel": "End date",
|
|
140
|
+
"endDatePlaceholder": "Select end date",
|
|
141
|
+
"invalidDateRange": "End date must be after start date.",
|
|
142
|
+
"teamMembersLabel": "Team members",
|
|
143
|
+
"teamMembersDescription": "Select at least one contributor for the project.",
|
|
144
|
+
"descriptionLabel": "Project description",
|
|
145
|
+
"descriptionHint": "Describe project scope, deliverables, and operational context."
|
|
146
|
+
},
|
|
147
|
+
"toasts": {
|
|
148
|
+
"created": "Project created successfully.",
|
|
149
|
+
"updated": "Project updated successfully."
|
|
150
|
+
},
|
|
151
|
+
"progress": "Progress",
|
|
152
|
+
"teamMembers": "Team Members",
|
|
153
|
+
"hoursLogged": "Hours Logged",
|
|
154
|
+
"startDate": "Start Date",
|
|
155
|
+
"endDate": "End Date"
|
|
156
|
+
},
|
|
157
|
+
"ProjectDetailsPage": {
|
|
158
|
+
"notFound": "Project not found.",
|
|
159
|
+
"breadcrumb": "Project Details",
|
|
160
|
+
"description": "Detailed project view for {client} with execution, team, finance, and governance data.",
|
|
161
|
+
"tabs": {
|
|
162
|
+
"overview": "Overview",
|
|
163
|
+
"execution": "Execution",
|
|
164
|
+
"team": "Team",
|
|
165
|
+
"finance": "Finance",
|
|
166
|
+
"timesheets": "Timesheets",
|
|
167
|
+
"governance": "Governance"
|
|
168
|
+
},
|
|
169
|
+
"stats": {
|
|
170
|
+
"progress": "Progress",
|
|
171
|
+
"actualCost": "Actual Cost",
|
|
172
|
+
"remainingBudget": "Remaining Budget",
|
|
173
|
+
"throughput": "Throughput"
|
|
174
|
+
},
|
|
175
|
+
"projectStatus": {
|
|
176
|
+
"planning": "Planning",
|
|
177
|
+
"active": "Active",
|
|
178
|
+
"at-risk": "At Risk",
|
|
179
|
+
"paused": "Paused",
|
|
180
|
+
"completed": "Completed"
|
|
181
|
+
},
|
|
182
|
+
"health": {
|
|
183
|
+
"scope": "Scope",
|
|
184
|
+
"schedule": "Schedule",
|
|
185
|
+
"budget": "Budget",
|
|
186
|
+
"quality": "Quality"
|
|
187
|
+
},
|
|
188
|
+
"healthStatus": {
|
|
189
|
+
"excellent": "Excellent",
|
|
190
|
+
"stable": "Stable",
|
|
191
|
+
"attention": "Attention",
|
|
192
|
+
"critical": "Critical"
|
|
193
|
+
},
|
|
194
|
+
"riskSeverity": {
|
|
195
|
+
"low": "Low",
|
|
196
|
+
"medium": "Medium",
|
|
197
|
+
"high": "High"
|
|
198
|
+
},
|
|
199
|
+
"riskStatus": {
|
|
200
|
+
"open": "Open",
|
|
201
|
+
"mitigated": "Mitigated",
|
|
202
|
+
"accepted": "Accepted"
|
|
203
|
+
},
|
|
204
|
+
"milestoneStatus": {
|
|
205
|
+
"done": "Done",
|
|
206
|
+
"next": "Next",
|
|
207
|
+
"delayed": "Delayed"
|
|
208
|
+
},
|
|
209
|
+
"dependencyType": {
|
|
210
|
+
"internal": "Internal",
|
|
211
|
+
"client": "Client",
|
|
212
|
+
"vendor": "Vendor"
|
|
213
|
+
},
|
|
214
|
+
"dependencyStatus": {
|
|
215
|
+
"on-track": "On Track",
|
|
216
|
+
"watch": "Watch",
|
|
217
|
+
"blocked": "Blocked"
|
|
218
|
+
},
|
|
219
|
+
"approvals": {
|
|
220
|
+
"approved": "Approved",
|
|
221
|
+
"pending": "Pending",
|
|
222
|
+
"rejected": "Rejected"
|
|
223
|
+
},
|
|
224
|
+
"taskStatus": {
|
|
225
|
+
"backlog": "Backlog",
|
|
226
|
+
"todo": "To Do",
|
|
227
|
+
"inProgress": "In Progress",
|
|
228
|
+
"review": "Review",
|
|
229
|
+
"done": "Done"
|
|
230
|
+
},
|
|
231
|
+
"hero": {
|
|
232
|
+
"progress": "Progress",
|
|
233
|
+
"budget": "Budget",
|
|
234
|
+
"hours": "Logged Hours",
|
|
235
|
+
"scheduleVariance": "Schedule Variance"
|
|
236
|
+
},
|
|
237
|
+
"labels": {
|
|
238
|
+
"health": "Health",
|
|
239
|
+
"risks": "Risks",
|
|
240
|
+
"period": "Period",
|
|
241
|
+
"contract": "Contract",
|
|
242
|
+
"teamSize": "Team: {count} people",
|
|
243
|
+
"owner": "Owner",
|
|
244
|
+
"impact": "Impact",
|
|
245
|
+
"mitigation": "Mitigation",
|
|
246
|
+
"type": "Type",
|
|
247
|
+
"totalTasks": "Total tasks",
|
|
248
|
+
"estimatedHours": "Estimated hours"
|
|
249
|
+
},
|
|
250
|
+
"sections": {
|
|
251
|
+
"progressTrend": "Progress Trend",
|
|
252
|
+
"progressTrendDescription": "Planned versus actual progress trend by month.",
|
|
253
|
+
"health": "Project Health",
|
|
254
|
+
"healthDescription": "Executive health view by delivery dimension.",
|
|
255
|
+
"milestones": "Milestones",
|
|
256
|
+
"milestonesDescription": "Timeline of key milestones and deliverables.",
|
|
257
|
+
"risks": "Risks and Mitigation",
|
|
258
|
+
"risksDescription": "Active risks, impacts, and mitigation plans.",
|
|
259
|
+
"taskDistribution": "Task Distribution",
|
|
260
|
+
"taskDistributionDescription": "Task volume by workflow status.",
|
|
261
|
+
"kanban": "Kanban",
|
|
262
|
+
"kanbanDescription": "Current team workflow board.",
|
|
263
|
+
"taskTable": "Detailed Backlog",
|
|
264
|
+
"taskTableDescription": "Tasks, owners, due dates, and estimates.",
|
|
265
|
+
"teamAllocation": "Team Allocation",
|
|
266
|
+
"teamAllocationDescription": "Capacity and utilization by contributor.",
|
|
267
|
+
"teamCost": "Team Cost Composition",
|
|
268
|
+
"teamCostDescription": "Distribution of hourly rates by allocated member.",
|
|
269
|
+
"budgetStatus": "Budget Status",
|
|
270
|
+
"budgetStatusDescription": "Consolidated current financial consumption.",
|
|
271
|
+
"costForecast": "Cost Forecast",
|
|
272
|
+
"costForecastDescription": "Planned versus actual cost over time.",
|
|
273
|
+
"approvalsDistribution": "Approvals Distribution",
|
|
274
|
+
"approvalsDistributionDescription": "Overview of timesheet approval statuses.",
|
|
275
|
+
"timesheets": "Timesheet Entries",
|
|
276
|
+
"timesheetsDescription": "Detailed project timesheet records.",
|
|
277
|
+
"governance": "Governance and Contract",
|
|
278
|
+
"governanceDescription": "Contract and operating governance details.",
|
|
279
|
+
"dependencies": "Dependencies",
|
|
280
|
+
"dependenciesDescription": "Internal and external delivery dependencies.",
|
|
281
|
+
"decisions": "Decisions",
|
|
282
|
+
"decisionsDescription": "Governance decision log.",
|
|
283
|
+
"nextActions": "Next Actions",
|
|
284
|
+
"nextActionsDescription": "Immediate actions to keep delivery health on track."
|
|
285
|
+
},
|
|
286
|
+
"table": {
|
|
287
|
+
"task": "Task",
|
|
288
|
+
"assignee": "Assignee",
|
|
289
|
+
"dueDate": "Due Date",
|
|
290
|
+
"estimate": "Estimate",
|
|
291
|
+
"status": "Status",
|
|
292
|
+
"member": "Member",
|
|
293
|
+
"role": "Role",
|
|
294
|
+
"hourRate": "Hour Rate",
|
|
295
|
+
"utilization": "Utilization",
|
|
296
|
+
"date": "Date",
|
|
297
|
+
"user": "User",
|
|
298
|
+
"hours": "Hours",
|
|
299
|
+
"description": "Description"
|
|
300
|
+
},
|
|
301
|
+
"finance": {
|
|
302
|
+
"totalBudget": "Total Budget",
|
|
303
|
+
"actualCost": "Actual Cost",
|
|
304
|
+
"remainingBudget": "Remaining Budget",
|
|
305
|
+
"budgetConsumption": "Budget Consumption"
|
|
306
|
+
},
|
|
307
|
+
"charts": {
|
|
308
|
+
"plannedProgress": "Planned Progress",
|
|
309
|
+
"actualProgress": "Actual Progress",
|
|
310
|
+
"plannedCost": "Planned Cost",
|
|
311
|
+
"actualCost": "Actual Cost"
|
|
312
|
+
},
|
|
313
|
+
"governance": {
|
|
314
|
+
"client": "Client",
|
|
315
|
+
"contract": "Contract",
|
|
316
|
+
"sla": "SLA",
|
|
317
|
+
"billingRules": "Billing Rules"
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
"AllocationsPage": {
|
|
321
|
+
"title": "Allocations",
|
|
322
|
+
"description": "Track weekly capacity, staffing coverage, and allocation windows.",
|
|
323
|
+
"breadcrumb": "Allocations",
|
|
324
|
+
"tableTitle": "Allocation Matrix",
|
|
325
|
+
"tableDescription": "Delivery allocation snapshot by user and project.",
|
|
326
|
+
"searchPlaceholder": "Search user or project...",
|
|
327
|
+
"emptyState": {
|
|
328
|
+
"title": "No allocations found",
|
|
329
|
+
"description": "Try a different search to view team allocations.",
|
|
330
|
+
"action": "Clear search"
|
|
331
|
+
},
|
|
332
|
+
"columns": {
|
|
333
|
+
"user": "User",
|
|
334
|
+
"role": "Role",
|
|
335
|
+
"project": "Project",
|
|
336
|
+
"weeklyHours": "Weekly Hours",
|
|
337
|
+
"allocation": "Allocation %",
|
|
338
|
+
"startDate": "Start Date",
|
|
339
|
+
"endDate": "End Date"
|
|
340
|
+
},
|
|
341
|
+
"calendarTitle": "Allocation Calendar View",
|
|
342
|
+
"calendarDescription": "Mock weekly planner for future scheduling APIs."
|
|
343
|
+
},
|
|
344
|
+
"TasksPage": {
|
|
345
|
+
"title": "Tasks / Kanban",
|
|
346
|
+
"description": "Trello-inspired execution board with drag-and-drop, keyboard shortcuts, and mock data.",
|
|
347
|
+
"breadcrumb": "Tasks",
|
|
348
|
+
"boardTitle": "Kanban Board",
|
|
349
|
+
"boardDescription": "Operational work items grouped by delivery stage.",
|
|
350
|
+
"searchPlaceholder": "Search title, project, label, or description...",
|
|
351
|
+
"newTask": "New Task",
|
|
352
|
+
"openCommands": "Commands",
|
|
353
|
+
"applyFilters": "Search",
|
|
354
|
+
"clearFilters": "Clear",
|
|
355
|
+
"archiveSelection": "Archive selected",
|
|
356
|
+
"openFocused": "Open focused",
|
|
357
|
+
"selectedCount": "{count} selected",
|
|
358
|
+
"newTaskTitle": "New planning task",
|
|
359
|
+
"newTaskDescription": "Task created from keyboard shortcut in mock mode.",
|
|
360
|
+
"filters": {
|
|
361
|
+
"assignee": "Assignee",
|
|
362
|
+
"allAssignees": "All assignees",
|
|
363
|
+
"unassigned": "Unassigned",
|
|
364
|
+
"project": "Project",
|
|
365
|
+
"allProjects": "All projects"
|
|
366
|
+
},
|
|
367
|
+
"stats": {
|
|
368
|
+
"totalTasks": "Total active",
|
|
369
|
+
"inProgress": "In progress",
|
|
370
|
+
"review": "In review",
|
|
371
|
+
"done": "Done",
|
|
372
|
+
"critical": "High priority"
|
|
373
|
+
},
|
|
374
|
+
"keyboardMode": {
|
|
375
|
+
"enabled": "Keyboard drag enabled",
|
|
376
|
+
"disabled": "Keyboard drag disabled"
|
|
377
|
+
},
|
|
378
|
+
"shortcuts": {
|
|
379
|
+
"create": "Create task",
|
|
380
|
+
"focusSearch": "Focus search",
|
|
381
|
+
"toggleKeyboardDrag": "Toggle keyboard drag",
|
|
382
|
+
"openTask": "Open focused task",
|
|
383
|
+
"archive": "Archive selection",
|
|
384
|
+
"navigate": "Navigate cards"
|
|
385
|
+
},
|
|
386
|
+
"commands": {
|
|
387
|
+
"title": "Task Commands",
|
|
388
|
+
"description": "Run quick actions without leaving the board.",
|
|
389
|
+
"placeholder": "Type a command or jump to an action...",
|
|
390
|
+
"empty": "No command found.",
|
|
391
|
+
"actions": "Actions",
|
|
392
|
+
"newTask": "Create a new mock task",
|
|
393
|
+
"enableKeyboardDrag": "Enable keyboard drag mode",
|
|
394
|
+
"disableKeyboardDrag": "Disable keyboard drag mode",
|
|
395
|
+
"archiveSelected": "Archive selected cards",
|
|
396
|
+
"openFocused": "Open focused task details"
|
|
397
|
+
},
|
|
398
|
+
"empty": {
|
|
399
|
+
"title": "No visible tasks",
|
|
400
|
+
"description": "Your current filters removed all cards from the board. Clear filters or create a new task."
|
|
401
|
+
},
|
|
402
|
+
"detail": {
|
|
403
|
+
"descriptionLabel": "Description",
|
|
404
|
+
"priority": "Priority",
|
|
405
|
+
"estimate": "Estimate",
|
|
406
|
+
"labels": "Labels",
|
|
407
|
+
"quickActions": "Quick status actions"
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
"TimesheetsPage": {
|
|
411
|
+
"title": "Timesheets",
|
|
412
|
+
"description": "Manage weekly entries, summaries, and approvals with a mock-first flow.",
|
|
413
|
+
"breadcrumb": "Timesheets",
|
|
414
|
+
"summary": {
|
|
415
|
+
"totalHours": "Total Hours",
|
|
416
|
+
"dailyTotals": "Daily Totals",
|
|
417
|
+
"weeklyTotal": "Weekly Total"
|
|
418
|
+
},
|
|
419
|
+
"gridTitle": "Weekly Timesheet Grid",
|
|
420
|
+
"gridDescription": "Entries are static for now but use a replaceable service layer.",
|
|
421
|
+
"searchPlaceholder": "Search user, project, task, or description...",
|
|
422
|
+
"columns": {
|
|
423
|
+
"date": "Date",
|
|
424
|
+
"user": "User",
|
|
425
|
+
"project": "Project",
|
|
426
|
+
"task": "Task",
|
|
427
|
+
"hours": "Hours",
|
|
428
|
+
"description": "Description",
|
|
429
|
+
"status": "Status"
|
|
430
|
+
}
|
|
431
|
+
},
|
|
432
|
+
"ApprovalsPage": {
|
|
433
|
+
"title": "Approvals",
|
|
434
|
+
"description": "Manager queue for timesheet review and approval decisions.",
|
|
435
|
+
"breadcrumb": "Approvals",
|
|
436
|
+
"cards": {
|
|
437
|
+
"pending": "Pending",
|
|
438
|
+
"approved": "Approved",
|
|
439
|
+
"rejected": "Rejected"
|
|
440
|
+
},
|
|
441
|
+
"queueTitle": "Approval Queue",
|
|
442
|
+
"queueDescription": "Static approval actions change local UI state only.",
|
|
443
|
+
"searchPlaceholder": "Search user, project, or description...",
|
|
444
|
+
"columns": {
|
|
445
|
+
"user": "User",
|
|
446
|
+
"project": "Project",
|
|
447
|
+
"date": "Date",
|
|
448
|
+
"hours": "Hours",
|
|
449
|
+
"description": "Description",
|
|
450
|
+
"status": "Status",
|
|
451
|
+
"actions": "Actions"
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
}
|