@hed-hog/operations 0.0.329 → 0.0.331

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.
Files changed (290) hide show
  1. package/README.md +5 -5
  2. package/dist/controllers/operations-collaborators.controller.d.ts +7 -216
  3. package/dist/controllers/operations-collaborators.controller.d.ts.map +1 -1
  4. package/dist/controllers/operations-contracts.controller.d.ts +6 -6
  5. package/dist/controllers/operations-projects.controller.d.ts +25 -0
  6. package/dist/controllers/operations-projects.controller.d.ts.map +1 -1
  7. package/dist/controllers/operations-projects.controller.js +48 -0
  8. package/dist/controllers/operations-projects.controller.js.map +1 -1
  9. package/dist/controllers/operations-reports.controller.d.ts +1 -1
  10. package/dist/controllers/operations-tasks.controller.d.ts +30 -5
  11. package/dist/controllers/operations-tasks.controller.d.ts.map +1 -1
  12. package/dist/controllers/operations-tasks.controller.js +43 -32
  13. package/dist/controllers/operations-tasks.controller.js.map +1 -1
  14. package/dist/controllers/operations-timesheets.controller.d.ts +9 -9
  15. package/dist/dashboard/components/DashboardLayout.d.ts +30 -0
  16. package/dist/dashboard/components/DashboardLayout.d.ts.map +1 -0
  17. package/dist/dashboard/components/DashboardLayout.js +87 -0
  18. package/dist/dashboard/components/DashboardLayout.js.map +1 -0
  19. package/dist/dashboard/components/widget-registry.d.ts +23 -0
  20. package/dist/dashboard/components/widget-registry.d.ts.map +1 -0
  21. package/dist/dashboard/components/widget-registry.js +245 -0
  22. package/dist/dashboard/components/widget-registry.js.map +1 -0
  23. package/dist/dashboard/hooks/useDashboardData.d.ts +20 -0
  24. package/dist/dashboard/hooks/useDashboardData.d.ts.map +1 -0
  25. package/dist/dashboard/hooks/useDashboardData.js +24 -0
  26. package/dist/dashboard/hooks/useDashboardData.js.map +1 -0
  27. package/dist/dashboard/types/widgets.types.d.ts +233 -0
  28. package/dist/dashboard/types/widgets.types.d.ts.map +1 -0
  29. package/dist/dashboard/types/widgets.types.js +6 -0
  30. package/dist/dashboard/types/widgets.types.js.map +1 -0
  31. package/dist/dashboard/widgets/CapacityDistribution.d.ts +23 -0
  32. package/dist/dashboard/widgets/CapacityDistribution.d.ts.map +1 -0
  33. package/dist/dashboard/widgets/CapacityDistribution.js +11 -0
  34. package/dist/dashboard/widgets/CapacityDistribution.js.map +1 -0
  35. package/dist/dashboard/widgets/EffortByProject.d.ts +22 -0
  36. package/dist/dashboard/widgets/EffortByProject.d.ts.map +1 -0
  37. package/dist/dashboard/widgets/EffortByProject.js +11 -0
  38. package/dist/dashboard/widgets/EffortByProject.js.map +1 -0
  39. package/dist/dashboard/widgets/HeadcountByArea.d.ts +24 -0
  40. package/dist/dashboard/widgets/HeadcountByArea.d.ts.map +1 -0
  41. package/dist/dashboard/widgets/HeadcountByArea.js +11 -0
  42. package/dist/dashboard/widgets/HeadcountByArea.js.map +1 -0
  43. package/dist/dashboard/widgets/ManagedProjectsStatus.d.ts +18 -0
  44. package/dist/dashboard/widgets/ManagedProjectsStatus.d.ts.map +1 -0
  45. package/dist/dashboard/widgets/ManagedProjectsStatus.js +12 -0
  46. package/dist/dashboard/widgets/ManagedProjectsStatus.js.map +1 -0
  47. package/dist/dashboard/widgets/MyHoursPeriodKpi.d.ts +22 -0
  48. package/dist/dashboard/widgets/MyHoursPeriodKpi.d.ts.map +1 -0
  49. package/dist/dashboard/widgets/MyHoursPeriodKpi.js +12 -0
  50. package/dist/dashboard/widgets/MyHoursPeriodKpi.js.map +1 -0
  51. package/dist/dashboard/widgets/MyOpenRequestsKpi.d.ts +19 -0
  52. package/dist/dashboard/widgets/MyOpenRequestsKpi.d.ts.map +1 -0
  53. package/dist/dashboard/widgets/MyOpenRequestsKpi.js +17 -0
  54. package/dist/dashboard/widgets/MyOpenRequestsKpi.js.map +1 -0
  55. package/dist/dashboard/widgets/MyPendingRequestsList.d.ts +23 -0
  56. package/dist/dashboard/widgets/MyPendingRequestsList.d.ts.map +1 -0
  57. package/dist/dashboard/widgets/MyPendingRequestsList.js +14 -0
  58. package/dist/dashboard/widgets/MyPendingRequestsList.js.map +1 -0
  59. package/dist/dashboard/widgets/MyProjectAllocationsKpi.d.ts +22 -0
  60. package/dist/dashboard/widgets/MyProjectAllocationsKpi.d.ts.map +1 -0
  61. package/dist/dashboard/widgets/MyProjectAllocationsKpi.js +11 -0
  62. package/dist/dashboard/widgets/MyProjectAllocationsKpi.js.map +1 -0
  63. package/dist/dashboard/widgets/MyQuickActions.d.ts +23 -0
  64. package/dist/dashboard/widgets/MyQuickActions.d.ts.map +1 -0
  65. package/dist/dashboard/widgets/MyQuickActions.js +18 -0
  66. package/dist/dashboard/widgets/MyQuickActions.js.map +1 -0
  67. package/dist/dashboard/widgets/MyRelevantDeadlines.d.ts +23 -0
  68. package/dist/dashboard/widgets/MyRelevantDeadlines.d.ts.map +1 -0
  69. package/dist/dashboard/widgets/MyRelevantDeadlines.js +22 -0
  70. package/dist/dashboard/widgets/MyRelevantDeadlines.js.map +1 -0
  71. package/dist/dashboard/widgets/MyTimesheetStatusKpi.d.ts +17 -0
  72. package/dist/dashboard/widgets/MyTimesheetStatusKpi.d.ts.map +1 -0
  73. package/dist/dashboard/widgets/MyTimesheetStatusKpi.js +11 -0
  74. package/dist/dashboard/widgets/MyTimesheetStatusKpi.js.map +1 -0
  75. package/dist/dashboard/widgets/MyWeeklyJourney.d.ts +21 -0
  76. package/dist/dashboard/widgets/MyWeeklyJourney.d.ts.map +1 -0
  77. package/dist/dashboard/widgets/MyWeeklyJourney.js +19 -0
  78. package/dist/dashboard/widgets/MyWeeklyJourney.js.map +1 -0
  79. package/dist/dashboard/widgets/PortfolioCostsKpi.d.ts +19 -0
  80. package/dist/dashboard/widgets/PortfolioCostsKpi.d.ts.map +1 -0
  81. package/dist/dashboard/widgets/PortfolioCostsKpi.js +12 -0
  82. package/dist/dashboard/widgets/PortfolioCostsKpi.js.map +1 -0
  83. package/dist/dashboard/widgets/PortfolioEffortKpi.d.ts +18 -0
  84. package/dist/dashboard/widgets/PortfolioEffortKpi.d.ts.map +1 -0
  85. package/dist/dashboard/widgets/PortfolioEffortKpi.js +8 -0
  86. package/dist/dashboard/widgets/PortfolioEffortKpi.js.map +1 -0
  87. package/dist/dashboard/widgets/PortfolioProjectsKpi.d.ts +22 -0
  88. package/dist/dashboard/widgets/PortfolioProjectsKpi.d.ts.map +1 -0
  89. package/dist/dashboard/widgets/PortfolioProjectsKpi.js +56 -0
  90. package/dist/dashboard/widgets/PortfolioProjectsKpi.js.map +1 -0
  91. package/dist/dashboard/widgets/PortfolioRiskKpi.d.ts +19 -0
  92. package/dist/dashboard/widgets/PortfolioRiskKpi.d.ts.map +1 -0
  93. package/dist/dashboard/widgets/PortfolioRiskKpi.js +11 -0
  94. package/dist/dashboard/widgets/PortfolioRiskKpi.js.map +1 -0
  95. package/dist/dashboard/widgets/ProjectStatusOverview.d.ts +19 -0
  96. package/dist/dashboard/widgets/ProjectStatusOverview.d.ts.map +1 -0
  97. package/dist/dashboard/widgets/ProjectStatusOverview.js +18 -0
  98. package/dist/dashboard/widgets/ProjectStatusOverview.js.map +1 -0
  99. package/dist/dashboard/widgets/StrategicDeadlines.d.ts +24 -0
  100. package/dist/dashboard/widgets/StrategicDeadlines.d.ts.map +1 -0
  101. package/dist/dashboard/widgets/StrategicDeadlines.js +22 -0
  102. package/dist/dashboard/widgets/StrategicDeadlines.js.map +1 -0
  103. package/dist/dashboard/widgets/TeamApprovalQueue.d.ts +24 -0
  104. package/dist/dashboard/widgets/TeamApprovalQueue.d.ts.map +1 -0
  105. package/dist/dashboard/widgets/TeamApprovalQueue.js +12 -0
  106. package/dist/dashboard/widgets/TeamApprovalQueue.js.map +1 -0
  107. package/dist/dashboard/widgets/TeamCapacityKpi.d.ts +18 -0
  108. package/dist/dashboard/widgets/TeamCapacityKpi.d.ts.map +1 -0
  109. package/dist/dashboard/widgets/TeamCapacityKpi.js +19 -0
  110. package/dist/dashboard/widgets/TeamCapacityKpi.js.map +1 -0
  111. package/dist/dashboard/widgets/TeamHeadcountKpi.d.ts +22 -0
  112. package/dist/dashboard/widgets/TeamHeadcountKpi.d.ts.map +1 -0
  113. package/dist/dashboard/widgets/TeamHeadcountKpi.js +56 -0
  114. package/dist/dashboard/widgets/TeamHeadcountKpi.js.map +1 -0
  115. package/dist/dashboard/widgets/TeamHoursKpi.d.ts +19 -0
  116. package/dist/dashboard/widgets/TeamHoursKpi.d.ts.map +1 -0
  117. package/dist/dashboard/widgets/TeamHoursKpi.js +13 -0
  118. package/dist/dashboard/widgets/TeamHoursKpi.js.map +1 -0
  119. package/dist/dashboard/widgets/TeamPendingApprovalsKpi.d.ts +20 -0
  120. package/dist/dashboard/widgets/TeamPendingApprovalsKpi.d.ts.map +1 -0
  121. package/dist/dashboard/widgets/TeamPendingApprovalsKpi.js +11 -0
  122. package/dist/dashboard/widgets/TeamPendingApprovalsKpi.js.map +1 -0
  123. package/dist/dashboard/widgets/TeamUtilizationOverview.d.ts +18 -0
  124. package/dist/dashboard/widgets/TeamUtilizationOverview.d.ts.map +1 -0
  125. package/dist/dashboard/widgets/TeamUtilizationOverview.js +17 -0
  126. package/dist/dashboard/widgets/TeamUtilizationOverview.js.map +1 -0
  127. package/dist/dashboard/widgets/TeamWorkloadAlerts.d.ts +24 -0
  128. package/dist/dashboard/widgets/TeamWorkloadAlerts.d.ts.map +1 -0
  129. package/dist/dashboard/widgets/TeamWorkloadAlerts.js +19 -0
  130. package/dist/dashboard/widgets/TeamWorkloadAlerts.js.map +1 -0
  131. package/dist/dashboard/widgets/index.d.ts +24 -0
  132. package/dist/dashboard/widgets/index.d.ts.map +1 -0
  133. package/dist/dashboard/widgets/index.js +54 -0
  134. package/dist/dashboard/widgets/index.js.map +1 -0
  135. package/dist/dto/create-collaborator.dto.d.ts +0 -1
  136. package/dist/dto/create-collaborator.dto.d.ts.map +1 -1
  137. package/dist/dto/create-collaborator.dto.js +0 -6
  138. package/dist/dto/create-collaborator.dto.js.map +1 -1
  139. package/dist/index.d.ts +2 -0
  140. package/dist/index.d.ts.map +1 -1
  141. package/dist/index.js +2 -0
  142. package/dist/index.js.map +1 -1
  143. package/dist/operations.controller.d.ts +42 -0
  144. package/dist/operations.controller.d.ts.map +1 -1
  145. package/dist/operations.service.d.ts +178 -264
  146. package/dist/operations.service.d.ts.map +1 -1
  147. package/dist/operations.service.js +2170 -1340
  148. package/dist/operations.service.js.map +1 -1
  149. package/dist/operations.service.spec.js +345 -174
  150. package/dist/operations.service.spec.js.map +1 -1
  151. package/hedhog/data/dashboard_component.yaml +66 -0
  152. package/hedhog/data/dashboard_component_role.yaml +8 -8
  153. package/hedhog/data/dashboard_item.yaml +25 -25
  154. package/hedhog/data/dashboard_role.yaml +1 -1
  155. package/hedhog/data/menu.yaml +6 -16
  156. package/hedhog/data/role.yaml +1 -1
  157. package/hedhog/data/route.yaml +116 -55
  158. package/hedhog/frontend/app/_components/async-options-combobox.tsx.ejs +15 -9
  159. package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +39 -99
  160. package/hedhog/frontend/app/_components/collaborator-picker.tsx.ejs +158 -0
  161. package/hedhog/frontend/app/_components/my-project-summary-screen.tsx.ejs +314 -116
  162. package/hedhog/frontend/app/_components/project-assignments-tab.tsx.ejs +434 -449
  163. package/hedhog/frontend/app/_components/project-costs-section.tsx.ejs +51 -81
  164. package/hedhog/frontend/app/_components/project-details-screen.tsx.ejs +328 -423
  165. package/hedhog/frontend/app/_components/project-file-attachments.tsx.ejs +371 -0
  166. package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +446 -377
  167. package/hedhog/frontend/app/_components/task-detail-sheet.tsx.ejs +803 -581
  168. package/hedhog/frontend/app/_components/task-file-attachments.tsx.ejs +14 -9
  169. package/hedhog/frontend/app/_components/task-form-fields.tsx.ejs +406 -0
  170. package/hedhog/frontend/app/_components/task-form-sheet.tsx.ejs +629 -784
  171. package/hedhog/frontend/app/_components/task-info-display.tsx.ejs +137 -0
  172. package/hedhog/frontend/app/_components/timesheet-entry-create-sheet.tsx.ejs +306 -0
  173. package/hedhog/frontend/app/_lib/api.ts.ejs +480 -476
  174. package/hedhog/frontend/app/_lib/hooks/use-values-visibility.ts.ejs +61 -0
  175. package/hedhog/frontend/app/_lib/types.ts.ejs +66 -5
  176. package/hedhog/frontend/app/_lib/utils/format.ts.ejs +0 -2
  177. package/hedhog/frontend/app/_lib/utils/task-ui.ts.ejs +43 -0
  178. package/hedhog/frontend/app/approvals/page.tsx.ejs +11 -2
  179. package/hedhog/frontend/app/collaborator-types/page.tsx.ejs +6 -1
  180. package/hedhog/frontend/app/collaborators/page.tsx.ejs +127 -42
  181. package/hedhog/frontend/app/contracts/page.tsx.ejs +29 -8
  182. package/hedhog/frontend/app/dashboard/widgets/CapacityDistribution.tsx.ejs +84 -0
  183. package/hedhog/frontend/app/dashboard/widgets/EffortByProject.tsx.ejs +85 -0
  184. package/hedhog/frontend/app/dashboard/widgets/HeadcountByArea.tsx.ejs +101 -0
  185. package/hedhog/frontend/app/dashboard/widgets/ManagedProjectsStatus.tsx.ejs +113 -0
  186. package/hedhog/frontend/app/dashboard/widgets/MyHoursPeriodKpi.tsx.ejs +87 -0
  187. package/hedhog/frontend/app/dashboard/widgets/MyOpenRequestsKpi.tsx.ejs +97 -0
  188. package/hedhog/frontend/app/dashboard/widgets/MyPendingRequestsList.tsx.ejs +99 -0
  189. package/hedhog/frontend/app/dashboard/widgets/MyProjectAllocationsKpi.tsx.ejs +78 -0
  190. package/hedhog/frontend/app/dashboard/widgets/MyQuickActions.tsx.ejs +130 -0
  191. package/hedhog/frontend/app/dashboard/widgets/MyRelevantDeadlines.tsx.ejs +144 -0
  192. package/hedhog/frontend/app/dashboard/widgets/MyTimesheetStatusKpi.tsx.ejs +78 -0
  193. package/hedhog/frontend/app/dashboard/widgets/MyWeeklyJourney.tsx.ejs +99 -0
  194. package/hedhog/frontend/app/dashboard/widgets/PortfolioCostsKpi.tsx.ejs +112 -0
  195. package/hedhog/frontend/app/dashboard/widgets/PortfolioEffortKpi.tsx.ejs +93 -0
  196. package/hedhog/frontend/app/dashboard/widgets/PortfolioProjectsKpi.tsx.ejs +96 -0
  197. package/hedhog/frontend/app/dashboard/widgets/PortfolioRiskKpi.tsx.ejs +115 -0
  198. package/hedhog/frontend/app/dashboard/widgets/ProjectStatusOverview.tsx.ejs +120 -0
  199. package/hedhog/frontend/app/dashboard/widgets/StrategicDeadlines.tsx.ejs +146 -0
  200. package/hedhog/frontend/app/dashboard/widgets/TeamApprovalQueue.tsx.ejs +108 -0
  201. package/hedhog/frontend/app/dashboard/widgets/TeamCapacityKpi.tsx.ejs +97 -0
  202. package/hedhog/frontend/app/dashboard/widgets/TeamHeadcountKpi.tsx.ejs +100 -0
  203. package/hedhog/frontend/app/dashboard/widgets/TeamHoursKpi.tsx.ejs +104 -0
  204. package/hedhog/frontend/app/dashboard/widgets/TeamPendingApprovalsKpi.tsx.ejs +110 -0
  205. package/hedhog/frontend/app/dashboard/widgets/TeamUtilizationOverview.tsx.ejs +115 -0
  206. package/hedhog/frontend/app/dashboard/widgets/TeamWorkloadAlerts.tsx.ejs +117 -0
  207. package/hedhog/frontend/app/dashboard/widgets/index.ts.ejs +26 -0
  208. package/hedhog/frontend/app/departments/page.tsx.ejs +6 -1
  209. package/hedhog/frontend/app/my-projects/page.tsx.ejs +59 -16
  210. package/hedhog/frontend/app/my-tasks/page.tsx.ejs +329 -106
  211. package/hedhog/frontend/app/project-cost-categories/page.tsx.ejs +58 -52
  212. package/hedhog/frontend/app/project-cost-types/page.tsx.ejs +58 -51
  213. package/hedhog/frontend/app/projects/page.tsx.ejs +436 -35
  214. package/hedhog/frontend/app/reports/collaborators/page.tsx.ejs +65 -52
  215. package/hedhog/frontend/app/reports/projects/page.tsx.ejs +80 -82
  216. package/hedhog/frontend/app/schedule-adjustments/page.tsx.ejs +13 -2
  217. package/hedhog/frontend/app/time-off/page.tsx.ejs +6 -1
  218. package/hedhog/frontend/app/timesheets/page.tsx.ejs +10 -4
  219. package/hedhog/frontend/messages/en.json +460 -61
  220. package/hedhog/frontend/messages/operations/en.json +61 -52
  221. package/hedhog/frontend/messages/operations/pt.json +59 -43
  222. package/hedhog/frontend/messages/pt.json +460 -61
  223. package/hedhog/frontend/widgets/capacity-distribution.tsx.ejs +17 -0
  224. package/hedhog/frontend/widgets/effort-by-project.tsx.ejs +17 -0
  225. package/hedhog/frontend/widgets/headcount-by-area.tsx.ejs +17 -0
  226. package/hedhog/frontend/widgets/index.ts.ejs +25 -0
  227. package/hedhog/frontend/widgets/managed-projects-status.tsx.ejs +17 -0
  228. package/hedhog/frontend/widgets/my-hours-period-kpi.tsx.ejs +17 -0
  229. package/hedhog/frontend/widgets/my-open-requests-kpi.tsx.ejs +17 -0
  230. package/hedhog/frontend/widgets/my-pending-requests-list.tsx.ejs +17 -0
  231. package/hedhog/frontend/widgets/my-project-allocations-kpi.tsx.ejs +17 -0
  232. package/hedhog/frontend/widgets/my-quick-actions.tsx.ejs +17 -0
  233. package/hedhog/frontend/widgets/my-relevant-deadlines.tsx.ejs +17 -0
  234. package/hedhog/frontend/widgets/my-timesheet-status-kpi.tsx.ejs +17 -0
  235. package/hedhog/frontend/widgets/my-weekly-journey.tsx.ejs +17 -0
  236. package/hedhog/frontend/widgets/portfolio-costs-kpi.tsx.ejs +17 -0
  237. package/hedhog/frontend/widgets/portfolio-effort-kpi.tsx.ejs +17 -0
  238. package/hedhog/frontend/widgets/portfolio-projects-kpi.tsx.ejs +17 -0
  239. package/hedhog/frontend/widgets/portfolio-risk-kpi.tsx.ejs +17 -0
  240. package/hedhog/frontend/widgets/project-status-overview.tsx.ejs +17 -0
  241. package/hedhog/frontend/widgets/shared-operations-widget.tsx.ejs +170 -0
  242. package/hedhog/frontend/widgets/strategic-deadlines.tsx.ejs +17 -0
  243. package/hedhog/frontend/widgets/team-approval-queue.tsx.ejs +17 -0
  244. package/hedhog/frontend/widgets/team-capacity-kpi.tsx.ejs +17 -0
  245. package/hedhog/frontend/widgets/team-headcount-kpi.tsx.ejs +17 -0
  246. package/hedhog/frontend/widgets/team-hours-kpi.tsx.ejs +17 -0
  247. package/hedhog/frontend/widgets/team-pending-approvals-kpi.tsx.ejs +17 -0
  248. package/hedhog/frontend/widgets/team-utilization-overview.tsx.ejs +17 -0
  249. package/hedhog/frontend/widgets/team-workload-alerts.tsx.ejs +17 -0
  250. package/hedhog/table/operations_collaborator.yaml +8 -13
  251. package/hedhog/table/operations_project.yaml +1 -1
  252. package/hedhog/table/operations_project_file.yaml +23 -0
  253. package/hedhog/table/operations_task.yaml +76 -69
  254. package/hedhog/table/operations_task_activity.yaml +51 -0
  255. package/package.json +7 -6
  256. package/src/controllers/operations-projects.controller.ts +41 -8
  257. package/src/controllers/operations-tasks.controller.ts +156 -166
  258. package/src/dashboard/README.md +214 -0
  259. package/src/dashboard/components/DashboardLayout.tsx +131 -0
  260. package/src/dashboard/components/widget-registry.ts +255 -0
  261. package/src/dashboard/hooks/useDashboardData.ts +29 -0
  262. package/src/dashboard/types/widgets.types.ts +237 -0
  263. package/src/dashboard/widgets/CapacityDistribution.tsx +56 -0
  264. package/src/dashboard/widgets/EffortByProject.tsx +51 -0
  265. package/src/dashboard/widgets/HeadcountByArea.tsx +57 -0
  266. package/src/dashboard/widgets/ManagedProjectsStatus.tsx +53 -0
  267. package/src/dashboard/widgets/MyHoursPeriodKpi.tsx +87 -0
  268. package/src/dashboard/widgets/MyOpenRequestsKpi.tsx +51 -0
  269. package/src/dashboard/widgets/MyPendingRequestsList.tsx +63 -0
  270. package/src/dashboard/widgets/MyProjectAllocationsKpi.tsx +57 -0
  271. package/src/dashboard/widgets/MyQuickActions.tsx +62 -0
  272. package/src/dashboard/widgets/MyRelevantDeadlines.tsx +84 -0
  273. package/src/dashboard/widgets/MyTimesheetStatusKpi.tsx +65 -0
  274. package/src/dashboard/widgets/MyWeeklyJourney.tsx +57 -0
  275. package/src/dashboard/widgets/PortfolioCostsKpi.tsx +48 -0
  276. package/src/dashboard/widgets/PortfolioEffortKpi.tsx +41 -0
  277. package/src/dashboard/widgets/PortfolioRiskKpi.tsx +50 -0
  278. package/src/dashboard/widgets/ProjectStatusOverview.tsx +52 -0
  279. package/src/dashboard/widgets/StrategicDeadlines.tsx +93 -0
  280. package/src/dashboard/widgets/TeamApprovalQueue.tsx +70 -0
  281. package/src/dashboard/widgets/TeamCapacityKpi.tsx +50 -0
  282. package/src/dashboard/widgets/TeamHoursKpi.tsx +51 -0
  283. package/src/dashboard/widgets/TeamPendingApprovalsKpi.tsx +53 -0
  284. package/src/dashboard/widgets/TeamUtilizationOverview.tsx +62 -0
  285. package/src/dashboard/widgets/TeamWorkloadAlerts.tsx +81 -0
  286. package/src/dashboard/widgets/index.ts +26 -0
  287. package/src/dto/create-collaborator.dto.ts +4 -11
  288. package/src/index.ts +3 -0
  289. package/src/operations.service.spec.ts +988 -764
  290. package/src/operations.service.ts +4300 -2538
@@ -5,7 +5,7 @@
5
5
  - where:
6
6
  slug: admin
7
7
  - where:
8
- slug: admin-operations-collaborator
8
+ slug: operations-collaborator
9
9
  - where:
10
10
  slug: admin-operations-supervisor
11
11
  - where:
@@ -40,7 +40,7 @@
40
40
  - where:
41
41
  slug: admin
42
42
  - where:
43
- slug: admin-operations-collaborator
43
+ slug: operations-collaborator
44
44
  - where:
45
45
  slug: admin-operations-supervisor
46
46
  - where:
@@ -53,7 +53,7 @@
53
53
  - where:
54
54
  slug: admin
55
55
  - where:
56
- slug: admin-operations-collaborator
56
+ slug: operations-collaborator
57
57
  - where:
58
58
  slug: admin-operations-supervisor
59
59
  - where:
@@ -75,7 +75,7 @@
75
75
  - where:
76
76
  slug: admin
77
77
  - where:
78
- slug: admin-operations-collaborator
78
+ slug: operations-collaborator
79
79
  - where:
80
80
  slug: admin-operations-supervisor
81
81
  - where:
@@ -108,7 +108,7 @@
108
108
  - where:
109
109
  slug: admin
110
110
  - where:
111
- slug: admin-operations-collaborator
111
+ slug: operations-collaborator
112
112
  - where:
113
113
  slug: admin-operations-supervisor
114
114
  - where:
@@ -148,7 +148,7 @@
148
148
  - where:
149
149
  slug: admin
150
150
  - where:
151
- slug: admin-operations-collaborator
151
+ slug: operations-collaborator
152
152
  - where:
153
153
  slug: admin-operations-supervisor
154
154
  - where:
@@ -179,7 +179,7 @@
179
179
  - where:
180
180
  slug: admin
181
181
  - where:
182
- slug: admin-operations-collaborator
182
+ slug: operations-collaborator
183
183
  - where:
184
184
  slug: admin-operations-supervisor
185
185
  - where:
@@ -201,7 +201,7 @@
201
201
  - where:
202
202
  slug: admin
203
203
  - where:
204
- slug: admin-operations-collaborator
204
+ slug: operations-collaborator
205
205
  - where:
206
206
  slug: admin-operations-supervisor
207
207
  - where:
@@ -223,7 +223,7 @@
223
223
  - where:
224
224
  slug: admin
225
225
  - where:
226
- slug: admin-operations-collaborator
226
+ slug: operations-collaborator
227
227
  - where:
228
228
  slug: admin-operations-supervisor
229
229
  - where:
@@ -236,7 +236,7 @@
236
236
  - where:
237
237
  slug: admin
238
238
  - where:
239
- slug: admin-operations-collaborator
239
+ slug: operations-collaborator
240
240
  - where:
241
241
  slug: admin-operations-supervisor
242
242
  - where:
@@ -249,7 +249,7 @@
249
249
  - where:
250
250
  slug: admin
251
251
  - where:
252
- slug: admin-operations-collaborator
252
+ slug: operations-collaborator
253
253
  - where:
254
254
  slug: admin-operations-supervisor
255
255
  - where:
@@ -262,7 +262,7 @@
262
262
  - where:
263
263
  slug: admin
264
264
  - where:
265
- slug: admin-operations-collaborator
265
+ slug: operations-collaborator
266
266
  - where:
267
267
  slug: admin-operations-supervisor
268
268
  - where:
@@ -275,7 +275,7 @@
275
275
  - where:
276
276
  slug: admin
277
277
  - where:
278
- slug: admin-operations-collaborator
278
+ slug: operations-collaborator
279
279
  - where:
280
280
  slug: admin-operations-supervisor
281
281
  - where:
@@ -288,7 +288,7 @@
288
288
  - where:
289
289
  slug: admin
290
290
  - where:
291
- slug: admin-operations-collaborator
291
+ slug: operations-collaborator
292
292
  - where:
293
293
  slug: admin-operations-supervisor
294
294
  - where:
@@ -301,7 +301,7 @@
301
301
  - where:
302
302
  slug: admin
303
303
  - where:
304
- slug: admin-operations-collaborator
304
+ slug: operations-collaborator
305
305
  - where:
306
306
  slug: admin-operations-supervisor
307
307
  - where:
@@ -314,7 +314,7 @@
314
314
  - where:
315
315
  slug: admin
316
316
  - where:
317
- slug: admin-operations-collaborator
317
+ slug: operations-collaborator
318
318
  - where:
319
319
  slug: admin-operations-supervisor
320
320
  - where:
@@ -327,7 +327,7 @@
327
327
  - where:
328
328
  slug: admin
329
329
  - where:
330
- slug: admin-operations-collaborator
330
+ slug: operations-collaborator
331
331
  - where:
332
332
  slug: admin-operations-supervisor
333
333
  - where:
@@ -340,7 +340,7 @@
340
340
  - where:
341
341
  slug: admin
342
342
  - where:
343
- slug: admin-operations-collaborator
343
+ slug: operations-collaborator
344
344
  - where:
345
345
  slug: admin-operations-supervisor
346
346
  - where:
@@ -353,7 +353,7 @@
353
353
  - where:
354
354
  slug: admin
355
355
  - where:
356
- slug: admin-operations-collaborator
356
+ slug: operations-collaborator
357
357
  - where:
358
358
  slug: admin-operations-supervisor
359
359
  - where:
@@ -366,7 +366,7 @@
366
366
  - where:
367
367
  slug: admin
368
368
  - where:
369
- slug: admin-operations-collaborator
369
+ slug: operations-collaborator
370
370
  - where:
371
371
  slug: admin-operations-supervisor
372
372
  - where:
@@ -379,7 +379,20 @@
379
379
  - where:
380
380
  slug: admin
381
381
  - where:
382
- slug: admin-operations-collaborator
382
+ slug: operations-collaborator
383
+ - where:
384
+ slug: admin-operations-supervisor
385
+ - where:
386
+ slug: admin-operations-director
387
+
388
+ - url: /operations/tasks/:id/activities
389
+ method: GET
390
+ relations:
391
+ role:
392
+ - where:
393
+ slug: admin
394
+ - where:
395
+ slug: operations-collaborator
383
396
  - where:
384
397
  slug: admin-operations-supervisor
385
398
  - where:
@@ -392,7 +405,7 @@
392
405
  - where:
393
406
  slug: admin
394
407
  - where:
395
- slug: admin-operations-collaborator
408
+ slug: operations-collaborator
396
409
  - where:
397
410
  slug: admin-operations-supervisor
398
411
  - where:
@@ -405,7 +418,7 @@
405
418
  - where:
406
419
  slug: admin
407
420
  - where:
408
- slug: admin-operations-collaborator
421
+ slug: operations-collaborator
409
422
  - where:
410
423
  slug: admin-operations-supervisor
411
424
  - where:
@@ -418,7 +431,7 @@
418
431
  - where:
419
432
  slug: admin
420
433
  - where:
421
- slug: admin-operations-collaborator
434
+ slug: operations-collaborator
422
435
  - where:
423
436
  slug: admin-operations-supervisor
424
437
  - where:
@@ -431,7 +444,7 @@
431
444
  - where:
432
445
  slug: admin
433
446
  - where:
434
- slug: admin-operations-collaborator
447
+ slug: operations-collaborator
435
448
  - where:
436
449
  slug: admin-operations-supervisor
437
450
  - where:
@@ -453,7 +466,7 @@
453
466
  - where:
454
467
  slug: admin
455
468
  - where:
456
- slug: admin-operations-collaborator
469
+ slug: operations-collaborator
457
470
  - where:
458
471
  slug: admin-operations-supervisor
459
472
  - where:
@@ -466,7 +479,7 @@
466
479
  - where:
467
480
  slug: admin
468
481
  - where:
469
- slug: admin-operations-collaborator
482
+ slug: operations-collaborator
470
483
  - where:
471
484
  slug: admin-operations-supervisor
472
485
  - where:
@@ -481,6 +494,54 @@
481
494
  - where:
482
495
  slug: admin-operations-director
483
496
 
497
+ - url: /operations/projects/:id
498
+ method: DELETE
499
+ relations:
500
+ role:
501
+ - where:
502
+ slug: admin
503
+ - where:
504
+ slug: admin-operations-director
505
+
506
+ - url: /operations/projects/:id/files
507
+ method: GET
508
+ relations:
509
+ role:
510
+ - where:
511
+ slug: admin
512
+ - where:
513
+ slug: operations-collaborator
514
+ - where:
515
+ slug: admin-operations-supervisor
516
+ - where:
517
+ slug: admin-operations-director
518
+
519
+ - url: /operations/projects/:id/files
520
+ method: POST
521
+ relations:
522
+ role:
523
+ - where:
524
+ slug: admin
525
+ - where:
526
+ slug: operations-collaborator
527
+ - where:
528
+ slug: admin-operations-supervisor
529
+ - where:
530
+ slug: admin-operations-director
531
+
532
+ - url: /operations/projects/:id/files/:fileRelationId
533
+ method: DELETE
534
+ relations:
535
+ role:
536
+ - where:
537
+ slug: admin
538
+ - where:
539
+ slug: operations-collaborator
540
+ - where:
541
+ slug: admin-operations-supervisor
542
+ - where:
543
+ slug: admin-operations-director
544
+
484
545
  - url: /operations/contracts
485
546
  method: GET
486
547
  relations:
@@ -488,7 +549,7 @@
488
549
  - where:
489
550
  slug: admin
490
551
  - where:
491
- slug: admin-operations-collaborator
552
+ slug: operations-collaborator
492
553
  - where:
493
554
  slug: admin-operations-supervisor
494
555
  - where:
@@ -501,7 +562,7 @@
501
562
  - where:
502
563
  slug: admin
503
564
  - where:
504
- slug: admin-operations-collaborator
565
+ slug: operations-collaborator
505
566
  - where:
506
567
  slug: admin-operations-supervisor
507
568
  - where:
@@ -523,7 +584,7 @@
523
584
  - where:
524
585
  slug: admin
525
586
  - where:
526
- slug: admin-operations-collaborator
587
+ slug: operations-collaborator
527
588
  - where:
528
589
  slug: admin-operations-supervisor
529
590
  - where:
@@ -554,7 +615,7 @@
554
615
  - where:
555
616
  slug: admin
556
617
  - where:
557
- slug: admin-operations-collaborator
618
+ slug: operations-collaborator
558
619
  - where:
559
620
  slug: admin-operations-supervisor
560
621
  - where:
@@ -567,7 +628,7 @@
567
628
  - where:
568
629
  slug: admin
569
630
  - where:
570
- slug: admin-operations-collaborator
631
+ slug: operations-collaborator
571
632
  - where:
572
633
  slug: admin-operations-supervisor
573
634
  - where:
@@ -580,7 +641,7 @@
580
641
  - where:
581
642
  slug: admin
582
643
  - where:
583
- slug: admin-operations-collaborator
644
+ slug: operations-collaborator
584
645
  - where:
585
646
  slug: admin-operations-supervisor
586
647
  - where:
@@ -593,7 +654,7 @@
593
654
  - where:
594
655
  slug: admin
595
656
  - where:
596
- slug: admin-operations-collaborator
657
+ slug: operations-collaborator
597
658
  - where:
598
659
  slug: admin-operations-supervisor
599
660
  - where:
@@ -606,7 +667,7 @@
606
667
  - where:
607
668
  slug: admin
608
669
  - where:
609
- slug: admin-operations-collaborator
670
+ slug: operations-collaborator
610
671
  - where:
611
672
  slug: admin-operations-supervisor
612
673
  - where:
@@ -619,7 +680,7 @@
619
680
  - where:
620
681
  slug: admin
621
682
  - where:
622
- slug: admin-operations-collaborator
683
+ slug: operations-collaborator
623
684
  - where:
624
685
  slug: admin-operations-supervisor
625
686
  - where:
@@ -632,7 +693,7 @@
632
693
  - where:
633
694
  slug: admin
634
695
  - where:
635
- slug: admin-operations-collaborator
696
+ slug: operations-collaborator
636
697
  - where:
637
698
  slug: admin-operations-supervisor
638
699
  - where:
@@ -645,7 +706,7 @@
645
706
  - where:
646
707
  slug: admin
647
708
  - where:
648
- slug: admin-operations-collaborator
709
+ slug: operations-collaborator
649
710
  - where:
650
711
  slug: admin-operations-supervisor
651
712
  - where:
@@ -658,7 +719,7 @@
658
719
  - where:
659
720
  slug: admin
660
721
  - where:
661
- slug: admin-operations-collaborator
722
+ slug: operations-collaborator
662
723
  - where:
663
724
  slug: admin-operations-supervisor
664
725
  - where:
@@ -671,7 +732,7 @@
671
732
  - where:
672
733
  slug: admin
673
734
  - where:
674
- slug: admin-operations-collaborator
735
+ slug: operations-collaborator
675
736
  - where:
676
737
  slug: admin-operations-director
677
738
 
@@ -682,7 +743,7 @@
682
743
  - where:
683
744
  slug: admin
684
745
  - where:
685
- slug: admin-operations-collaborator
746
+ slug: operations-collaborator
686
747
  - where:
687
748
  slug: admin-operations-supervisor
688
749
  - where:
@@ -695,7 +756,7 @@
695
756
  - where:
696
757
  slug: admin
697
758
  - where:
698
- slug: admin-operations-collaborator
759
+ slug: operations-collaborator
699
760
  - where:
700
761
  slug: admin-operations-director
701
762
 
@@ -810,7 +871,7 @@
810
871
  - where:
811
872
  slug: admin
812
873
  - where:
813
- slug: admin-operations-collaborator
874
+ slug: operations-collaborator
814
875
  - where:
815
876
  slug: admin-operations-supervisor
816
877
  - where:
@@ -832,7 +893,7 @@
832
893
  - where:
833
894
  slug: admin
834
895
  - where:
835
- slug: admin-operations-collaborator
896
+ slug: operations-collaborator
836
897
  - where:
837
898
  slug: admin-operations-supervisor
838
899
  - where:
@@ -872,7 +933,7 @@
872
933
  - where:
873
934
  slug: admin
874
935
  - where:
875
- slug: admin-operations-collaborator
936
+ slug: operations-collaborator
876
937
  - where:
877
938
  slug: admin-operations-supervisor
878
939
  - where:
@@ -912,7 +973,7 @@
912
973
  - where:
913
974
  slug: admin
914
975
  - where:
915
- slug: admin-operations-collaborator
976
+ slug: operations-collaborator
916
977
  - where:
917
978
  slug: admin-operations-supervisor
918
979
  - where:
@@ -925,7 +986,7 @@
925
986
  - where:
926
987
  slug: admin
927
988
  - where:
928
- slug: admin-operations-collaborator
989
+ slug: operations-collaborator
929
990
  - where:
930
991
  slug: admin-operations-supervisor
931
992
  - where:
@@ -938,7 +999,7 @@
938
999
  - where:
939
1000
  slug: admin
940
1001
  - where:
941
- slug: admin-operations-collaborator
1002
+ slug: operations-collaborator
942
1003
  - where:
943
1004
  slug: admin-operations-supervisor
944
1005
  - where:
@@ -978,7 +1039,7 @@
978
1039
  - where:
979
1040
  slug: admin
980
1041
  - where:
981
- slug: admin-operations-collaborator
1042
+ slug: operations-collaborator
982
1043
  - where:
983
1044
  slug: admin-operations-supervisor
984
1045
  - where:
@@ -991,7 +1052,7 @@
991
1052
  - where:
992
1053
  slug: admin
993
1054
  - where:
994
- slug: admin-operations-collaborator
1055
+ slug: operations-collaborator
995
1056
  - where:
996
1057
  slug: admin-operations-supervisor
997
1058
  - where:
@@ -1031,7 +1092,7 @@
1031
1092
  - where:
1032
1093
  slug: admin
1033
1094
  - where:
1034
- slug: admin-operations-collaborator
1095
+ slug: operations-collaborator
1035
1096
  - where:
1036
1097
  slug: admin-operations-supervisor
1037
1098
  - where:
@@ -1044,7 +1105,7 @@
1044
1105
  - where:
1045
1106
  slug: admin
1046
1107
  - where:
1047
- slug: admin-operations-collaborator
1108
+ slug: operations-collaborator
1048
1109
  - where:
1049
1110
  slug: admin-operations-supervisor
1050
1111
  - where:
@@ -1057,7 +1118,7 @@
1057
1118
  - where:
1058
1119
  slug: admin
1059
1120
  - where:
1060
- slug: admin-operations-collaborator
1121
+ slug: operations-collaborator
1061
1122
  - where:
1062
1123
  slug: admin-operations-supervisor
1063
1124
  - where:
@@ -1070,7 +1131,7 @@
1070
1131
  - where:
1071
1132
  slug: admin
1072
1133
  - where:
1073
- slug: admin-operations-collaborator
1134
+ slug: operations-collaborator
1074
1135
  - where:
1075
1136
  slug: admin-operations-supervisor
1076
1137
  - where:
@@ -1083,7 +1144,7 @@
1083
1144
  - where:
1084
1145
  slug: admin
1085
1146
  - where:
1086
- slug: admin-operations-collaborator
1147
+ slug: operations-collaborator
1087
1148
  - where:
1088
1149
  slug: admin-operations-supervisor
1089
1150
  - where:
@@ -18,6 +18,7 @@ import {
18
18
  } from '@/components/ui/popover';
19
19
  import { cn } from '@/lib/utils';
20
20
  import { Check, ChevronsUpDown, Loader2, Plus, X } from 'lucide-react';
21
+ import { useTranslations } from 'next-intl';
21
22
 
22
23
  export type AsyncOptionComboboxOption = {
23
24
  id: number | string;
@@ -57,9 +58,9 @@ export function AsyncOptionsCombobox<T extends AsyncOptionComboboxOption>({
57
58
  placeholder,
58
59
  searchPlaceholder,
59
60
  emptyLabel,
60
- loadingLabel = 'Loading...',
61
- loadMoreLabel = 'Load more',
62
- clearLabel = 'Clear selection',
61
+ loadingLabel,
62
+ loadMoreLabel,
63
+ clearLabel,
63
64
  createLabel,
64
65
  onCreateClick,
65
66
  isLoading = false,
@@ -68,7 +69,12 @@ export function AsyncOptionsCombobox<T extends AsyncOptionComboboxOption>({
68
69
  disabled = false,
69
70
  className,
70
71
  }: AsyncOptionsComboboxProps<T>) {
72
+ const t = useTranslations('Common');
71
73
  const [open, setOpen] = useState(false);
74
+ const resolvedLoadingLabel = loadingLabel ?? t('labels.loading');
75
+ const resolvedLoadMoreLabel = loadMoreLabel ?? t('actions.loadMore');
76
+ const resolvedClearLabel = clearLabel ?? t('actions.clearSelection');
77
+ const resolvedCreateLabel = createLabel ?? t('actions.create');
72
78
 
73
79
  const normalizedOptions = useMemo(() => {
74
80
  const unique = new Map<string, T>();
@@ -122,12 +128,12 @@ export function AsyncOptionsCombobox<T extends AsyncOptionComboboxOption>({
122
128
  {isLoading ? (
123
129
  <div className="flex items-center justify-center gap-2 text-muted-foreground">
124
130
  <Loader2 className="size-4 animate-spin" />
125
- <span>{loadingLabel}</span>
131
+ <span>{resolvedLoadingLabel}</span>
126
132
  </div>
127
133
  ) : (
128
134
  <div className="space-y-2">
129
135
  <p className="text-muted-foreground">{emptyLabel}</p>
130
- {onCreateClick && createLabel ? (
136
+ {onCreateClick ? (
131
137
  <Button
132
138
  type="button"
133
139
  variant="outline"
@@ -138,7 +144,7 @@ export function AsyncOptionsCombobox<T extends AsyncOptionComboboxOption>({
138
144
  }}
139
145
  >
140
146
  <Plus className="size-4" />
141
- {createLabel}
147
+ {resolvedCreateLabel}
142
148
  </Button>
143
149
  ) : null}
144
150
  </div>
@@ -192,7 +198,7 @@ export function AsyncOptionsCombobox<T extends AsyncOptionComboboxOption>({
192
198
  {isLoading ? (
193
199
  <Loader2 className="size-4 animate-spin" />
194
200
  ) : null}
195
- {loadMoreLabel}
201
+ {resolvedLoadMoreLabel}
196
202
  </Button>
197
203
  </div>
198
204
  ) : null}
@@ -207,7 +213,7 @@ export function AsyncOptionsCombobox<T extends AsyncOptionComboboxOption>({
207
213
  variant="ghost"
208
214
  size="icon"
209
215
  className="shrink-0"
210
- aria-label={clearLabel}
216
+ aria-label={resolvedClearLabel}
211
217
  onClick={() => onSelect(null)}
212
218
  disabled={disabled}
213
219
  >
@@ -221,7 +227,7 @@ export function AsyncOptionsCombobox<T extends AsyncOptionComboboxOption>({
221
227
  variant="outline"
222
228
  size="icon"
223
229
  className="shrink-0"
224
- aria-label={createLabel ?? 'Create'}
230
+ aria-label={createLabel ?? t('actions.create')}
225
231
  onClick={onCreateClick}
226
232
  disabled={disabled}
227
233
  >