@hed-hog/operations 0.0.321 → 0.0.325

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 (701) hide show
  1. package/dist/controllers/operations-collaborators.controller.d.ts +9 -0
  2. package/dist/controllers/operations-collaborators.controller.d.ts.map +1 -1
  3. package/dist/controllers/operations-collaborators.controller.js +25 -0
  4. package/dist/controllers/operations-collaborators.controller.js.map +1 -1
  5. package/dist/controllers/operations-contracts.controller.d.ts +9 -9
  6. package/dist/controllers/operations-project-costs.controller.d.ts +422 -0
  7. package/dist/controllers/operations-project-costs.controller.d.ts.map +1 -0
  8. package/dist/controllers/operations-project-costs.controller.js +250 -0
  9. package/dist/controllers/operations-project-costs.controller.js.map +1 -0
  10. package/dist/controllers/operations-reports.controller.d.ts +9 -0
  11. package/dist/controllers/operations-reports.controller.d.ts.map +1 -1
  12. package/dist/controllers/operations-tasks.controller.d.ts +64 -0
  13. package/dist/controllers/operations-tasks.controller.d.ts.map +1 -1
  14. package/dist/controllers/operations-tasks.controller.js +85 -0
  15. package/dist/controllers/operations-tasks.controller.js.map +1 -1
  16. package/dist/controllers/operations-timesheets.controller.d.ts +1 -0
  17. package/dist/controllers/operations-timesheets.controller.d.ts.map +1 -1
  18. package/dist/dto/create-collaborator-project-assignment.dto.d.ts +5 -0
  19. package/dist/dto/create-collaborator-project-assignment.dto.d.ts.map +1 -0
  20. package/dist/dto/create-collaborator-project-assignment.dto.js +30 -0
  21. package/dist/dto/create-collaborator-project-assignment.dto.js.map +1 -0
  22. package/dist/dto/create-project-cost-category.dto.d.ts +10 -0
  23. package/dist/dto/create-project-cost-category.dto.d.ts.map +1 -0
  24. package/dist/dto/create-project-cost-category.dto.js +59 -0
  25. package/dist/dto/create-project-cost-category.dto.js.map +1 -0
  26. package/dist/dto/create-project-cost-type.dto.d.ts +14 -0
  27. package/dist/dto/create-project-cost-type.dto.d.ts.map +1 -0
  28. package/dist/dto/create-project-cost-type.dto.js +87 -0
  29. package/dist/dto/create-project-cost-type.dto.js.map +1 -0
  30. package/dist/dto/create-project-cost.dto.d.ts +22 -0
  31. package/dist/dto/create-project-cost.dto.d.ts.map +1 -0
  32. package/dist/dto/create-project-cost.dto.js +135 -0
  33. package/dist/dto/create-project-cost.dto.js.map +1 -0
  34. package/dist/dto/create-task.dto.d.ts.map +1 -1
  35. package/dist/dto/create-task.dto.js +0 -1
  36. package/dist/dto/create-task.dto.js.map +1 -1
  37. package/dist/dto/get-project-cost-report.dto.d.ts +10 -0
  38. package/dist/dto/get-project-cost-report.dto.d.ts.map +1 -0
  39. package/dist/dto/get-project-cost-report.dto.js +65 -0
  40. package/dist/dto/get-project-cost-report.dto.js.map +1 -0
  41. package/dist/dto/list-project-cost-categories.dto.d.ts +6 -0
  42. package/dist/dto/list-project-cost-categories.dto.d.ts.map +1 -0
  43. package/dist/dto/list-project-cost-categories.dto.js +34 -0
  44. package/dist/dto/list-project-cost-categories.dto.js.map +1 -0
  45. package/dist/dto/list-project-cost-types.dto.d.ts +8 -0
  46. package/dist/dto/list-project-cost-types.dto.d.ts.map +1 -0
  47. package/dist/dto/list-project-cost-types.dto.js +45 -0
  48. package/dist/dto/list-project-cost-types.dto.js.map +1 -0
  49. package/dist/dto/list-project-costs.dto.d.ts +14 -0
  50. package/dist/dto/list-project-costs.dto.d.ts.map +1 -0
  51. package/dist/dto/list-project-costs.dto.js +81 -0
  52. package/dist/dto/list-project-costs.dto.js.map +1 -0
  53. package/dist/dto/list-tasks.dto.d.ts +1 -0
  54. package/dist/dto/list-tasks.dto.d.ts.map +1 -1
  55. package/dist/dto/list-tasks.dto.js +6 -0
  56. package/dist/dto/list-tasks.dto.js.map +1 -1
  57. package/dist/dto/list-timesheets.dto.d.ts +1 -0
  58. package/dist/dto/list-timesheets.dto.d.ts.map +1 -1
  59. package/dist/dto/list-timesheets.dto.js +7 -0
  60. package/dist/dto/list-timesheets.dto.js.map +1 -1
  61. package/dist/dto/update-collaborator-project-assignment.dto.d.ts +11 -0
  62. package/dist/dto/update-collaborator-project-assignment.dto.d.ts.map +1 -0
  63. package/dist/dto/update-collaborator-project-assignment.dto.js +65 -0
  64. package/dist/dto/update-collaborator-project-assignment.dto.js.map +1 -0
  65. package/dist/dto/update-project-cost-category.dto.d.ts +6 -0
  66. package/dist/dto/update-project-cost-category.dto.d.ts.map +1 -0
  67. package/dist/dto/update-project-cost-category.dto.js +9 -0
  68. package/dist/dto/update-project-cost-category.dto.js.map +1 -0
  69. package/dist/dto/update-project-cost-type.dto.d.ts +6 -0
  70. package/dist/dto/update-project-cost-type.dto.d.ts.map +1 -0
  71. package/dist/dto/update-project-cost-type.dto.js +9 -0
  72. package/dist/dto/update-project-cost-type.dto.js.map +1 -0
  73. package/dist/dto/update-project-cost.dto.d.ts +6 -0
  74. package/dist/dto/update-project-cost.dto.d.ts.map +1 -0
  75. package/dist/dto/update-project-cost.dto.js +9 -0
  76. package/dist/dto/update-project-cost.dto.js.map +1 -0
  77. package/dist/dto/update-task.dto.d.ts.map +1 -1
  78. package/dist/dto/update-task.dto.js +0 -1
  79. package/dist/dto/update-task.dto.js.map +1 -1
  80. package/dist/operations.module.d.ts.map +1 -1
  81. package/dist/operations.module.js +2 -0
  82. package/dist/operations.module.js.map +1 -1
  83. package/dist/operations.service.d.ts +584 -0
  84. package/dist/operations.service.d.ts.map +1 -1
  85. package/dist/operations.service.js +1734 -69
  86. package/dist/operations.service.js.map +1 -1
  87. package/hedhog/data/menu.yaml +52 -0
  88. package/hedhog/data/operations_project_cost_category.yaml +80 -0
  89. package/hedhog/data/operations_project_cost_type.yaml +503 -0
  90. package/hedhog/data/route.yaml +313 -0
  91. package/hedhog/frontend/app/_components/collaborator-costs-section.tsx.ejs +2 -18
  92. package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +185 -276
  93. package/hedhog/frontend/app/_components/collaborator-tasks-tab.tsx.ejs +358 -0
  94. package/hedhog/frontend/app/_components/collaborator-timesheets-tab.tsx.ejs +242 -0
  95. package/hedhog/frontend/app/_components/my-project-summary-screen.tsx.ejs +167 -59
  96. package/hedhog/frontend/app/_components/person-select-with-create.tsx.ejs +1 -826
  97. package/hedhog/frontend/app/_components/project-assignments-tab.tsx.ejs +450 -0
  98. package/hedhog/frontend/app/_components/project-cost-report-screen.tsx.ejs +602 -0
  99. package/hedhog/frontend/app/_components/project-costs-section.tsx.ejs +1401 -0
  100. package/hedhog/frontend/app/_components/project-details-screen.tsx.ejs +3390 -889
  101. package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +118 -79
  102. package/hedhog/frontend/app/_components/task-detail-sheet.tsx.ejs +297 -2
  103. package/hedhog/frontend/app/_components/task-file-attachments.tsx.ejs +388 -0
  104. package/hedhog/frontend/app/_components/task-form-sheet.tsx.ejs +530 -0
  105. package/hedhog/frontend/app/_lib/api.ts.ejs +247 -0
  106. package/hedhog/frontend/app/_lib/types.ts.ejs +197 -7
  107. package/hedhog/frontend/app/_lib/utils/format.ts.ejs +9 -3
  108. package/hedhog/frontend/app/collaborators/page.tsx.ejs +18 -7
  109. package/hedhog/frontend/app/my-tasks/page.tsx.ejs +340 -133
  110. package/hedhog/frontend/app/project-cost-categories/page.tsx.ejs +674 -0
  111. package/hedhog/frontend/app/project-cost-types/page.tsx.ejs +845 -0
  112. package/hedhog/frontend/app/projects/[id]/costs-report/page.tsx.ejs +10 -0
  113. package/hedhog/frontend/app/projects/page.tsx.ejs +105 -22
  114. package/hedhog/frontend/app/reports/collaborators/page.tsx.ejs +20 -349
  115. package/hedhog/frontend/app/reports/projects/page.tsx.ejs +192 -484
  116. package/hedhog/frontend/messages/en.json +421 -11
  117. package/hedhog/frontend/messages/en.json.ejs +2043 -0
  118. package/hedhog/frontend/messages/operations/en.json +2068 -0
  119. package/hedhog/frontend/messages/operations/operations/en.json +2102 -0
  120. package/hedhog/frontend/messages/operations/operations/pt.json +2111 -0
  121. package/hedhog/frontend/messages/operations/pt.json +2072 -0
  122. package/hedhog/frontend/messages/pt.json +426 -14
  123. package/hedhog/frontend/messages/pt.json.ejs +2056 -0
  124. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/async-options-combobox.d.ts +29 -0
  125. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/async-options-combobox.d.ts.map +1 -0
  126. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/async-options-combobox.js +95 -0
  127. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/async-options-combobox.js.map +1 -0
  128. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/async-options-combobox.tsx +233 -0
  129. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-costs-section.d.ts +10 -0
  130. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-costs-section.d.ts.map +1 -0
  131. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-costs-section.js +577 -0
  132. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-costs-section.js.map +1 -0
  133. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-costs-section.tsx +868 -0
  134. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-details-screen.d.ts +4 -0
  135. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-details-screen.d.ts.map +1 -0
  136. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-details-screen.js +337 -0
  137. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-details-screen.js.map +1 -0
  138. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-details-screen.tsx +476 -0
  139. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-form-screen.d.ts +9 -0
  140. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-form-screen.d.ts.map +1 -0
  141. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-form-screen.js +1348 -0
  142. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-form-screen.js.map +1 -0
  143. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-form-screen.tsx +2233 -0
  144. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-select-with-create.d.ts +12 -0
  145. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-select-with-create.d.ts.map +1 -0
  146. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-select-with-create.js +162 -0
  147. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-select-with-create.js.map +1 -0
  148. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-select-with-create.tsx +261 -0
  149. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-content-editor.d.ts +18 -0
  150. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-content-editor.d.ts.map +1 -0
  151. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-content-editor.js +145 -0
  152. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-content-editor.js.map +1 -0
  153. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-content-editor.tsx +258 -0
  154. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-details-screen.d.ts +4 -0
  155. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-details-screen.d.ts.map +1 -0
  156. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-details-screen.js +223 -0
  157. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-details-screen.js.map +1 -0
  158. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-details-screen.tsx +342 -0
  159. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-form-screen.d.ts +58 -0
  160. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-form-screen.d.ts.map +1 -0
  161. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-form-screen.js +438 -0
  162. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-form-screen.js.map +1 -0
  163. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-form-screen.tsx +698 -0
  164. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/department-select-with-create.d.ts +20 -0
  165. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/department-select-with-create.d.ts.map +1 -0
  166. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/department-select-with-create.js +233 -0
  167. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/department-select-with-create.js.map +1 -0
  168. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/department-select-with-create.tsx +392 -0
  169. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/my-project-summary-screen.d.ts +4 -0
  170. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/my-project-summary-screen.d.ts.map +1 -0
  171. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/my-project-summary-screen.js +814 -0
  172. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/my-project-summary-screen.js.map +1 -0
  173. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/my-project-summary-screen.tsx +1288 -0
  174. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-calendar-view.d.ts +21 -0
  175. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-calendar-view.d.ts.map +1 -0
  176. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-calendar-view.js +174 -0
  177. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-calendar-view.js.map +1 -0
  178. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-calendar-view.tsx +306 -0
  179. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-header.d.ts +10 -0
  180. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-header.d.ts.map +1 -0
  181. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-header.js +12 -0
  182. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-header.js.map +1 -0
  183. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-header.tsx +29 -0
  184. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/person-select-with-create.d.ts +15 -0
  185. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/person-select-with-create.d.ts.map +1 -0
  186. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/person-select-with-create.js +501 -0
  187. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/person-select-with-create.js.map +1 -0
  188. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/person-select-with-create.tsx +853 -0
  189. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-costs-section.d.ts +6 -0
  190. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-costs-section.d.ts.map +1 -0
  191. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-costs-section.js +847 -0
  192. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-costs-section.js.map +1 -0
  193. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-costs-section.tsx +1340 -0
  194. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-details-screen.d.ts +4 -0
  195. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-details-screen.d.ts.map +1 -0
  196. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-details-screen.js +2930 -0
  197. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-details-screen.js.map +1 -0
  198. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-details-screen.tsx +4378 -0
  199. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-form-screen.d.ts +9 -0
  200. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-form-screen.d.ts.map +1 -0
  201. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-form-screen.js +1013 -0
  202. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-form-screen.js.map +1 -0
  203. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-form-screen.tsx +1745 -0
  204. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/section-card.d.ts +13 -0
  205. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/section-card.d.ts.map +1 -0
  206. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/section-card.js +38 -0
  207. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/section-card.js.map +1 -0
  208. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/section-card.tsx +74 -0
  209. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/status-badge.d.ts +7 -0
  210. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/status-badge.d.ts.map +1 -0
  211. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/status-badge.js +11 -0
  212. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/status-badge.js.map +1 -0
  213. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/status-badge.tsx +15 -0
  214. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/system-user-select-with-create.d.ts +18 -0
  215. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/system-user-select-with-create.d.ts.map +1 -0
  216. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/system-user-select-with-create.js +406 -0
  217. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/system-user-select-with-create.js.map +1 -0
  218. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/system-user-select-with-create.tsx +660 -0
  219. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-detail-sheet.d.ts +26 -0
  220. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-detail-sheet.d.ts.map +1 -0
  221. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-detail-sheet.js +332 -0
  222. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-detail-sheet.js.map +1 -0
  223. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-detail-sheet.tsx +518 -0
  224. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-file-attachments.d.ts +6 -0
  225. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-file-attachments.d.ts.map +1 -0
  226. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-file-attachments.js +255 -0
  227. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-file-attachments.js.map +1 -0
  228. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-file-attachments.tsx +388 -0
  229. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/timesheet-task-create-sheet.d.ts +10 -0
  230. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/timesheet-task-create-sheet.d.ts.map +1 -0
  231. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/timesheet-task-create-sheet.js +131 -0
  232. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/timesheet-task-create-sheet.js.map +1 -0
  233. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/timesheet-task-create-sheet.tsx +214 -0
  234. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/api.d.ts +108 -0
  235. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/api.d.ts.map +1 -0
  236. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/api.js +162 -0
  237. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/api.js.map +1 -0
  238. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/api.ts +428 -0
  239. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/hooks/use-operations-access.d.ts +8 -0
  240. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/hooks/use-operations-access.d.ts.map +1 -0
  241. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/hooks/use-operations-access.js +36 -0
  242. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/hooks/use-operations-access.js.map +1 -0
  243. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/hooks/use-operations-access.ts +44 -0
  244. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/types.d.ts +836 -0
  245. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/types.d.ts.map +1 -0
  246. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/types.js +3 -0
  247. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/types.js.map +1 -0
  248. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/types.ts +860 -0
  249. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/format.d.ts +16 -0
  250. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/format.d.ts.map +1 -0
  251. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/format.js +182 -0
  252. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/format.js.map +1 -0
  253. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/format.ts +250 -0
  254. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/forms.d.ts +4 -0
  255. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/forms.d.ts.map +1 -0
  256. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/forms.js +51 -0
  257. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/forms.js.map +1 -0
  258. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/forms.ts +61 -0
  259. package/hedhog/frontend/src/app/(app)/(libraries)/operations/approvals/page.d.ts +2 -0
  260. package/hedhog/frontend/src/app/(app)/(libraries)/operations/approvals/page.d.ts.map +1 -0
  261. package/hedhog/frontend/src/app/(app)/(libraries)/operations/approvals/page.js +954 -0
  262. package/hedhog/frontend/src/app/(app)/(libraries)/operations/approvals/page.js.map +1 -0
  263. package/hedhog/frontend/src/app/(app)/(libraries)/operations/approvals/page.tsx +1277 -0
  264. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborator-types/page.d.ts +2 -0
  265. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborator-types/page.d.ts.map +1 -0
  266. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborator-types/page.js +488 -0
  267. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborator-types/page.js.map +1 -0
  268. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborator-types/page.tsx +805 -0
  269. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/edit/page.d.ts +6 -0
  270. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/edit/page.d.ts.map +1 -0
  271. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/edit/page.js +9 -0
  272. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/edit/page.js.map +1 -0
  273. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/edit/page.tsx +11 -0
  274. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/page.d.ts +6 -0
  275. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/page.d.ts.map +1 -0
  276. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/page.js +9 -0
  277. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/page.js.map +1 -0
  278. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/page.tsx +11 -0
  279. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/new/page.d.ts +2 -0
  280. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/new/page.d.ts.map +1 -0
  281. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/new/page.js +8 -0
  282. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/new/page.js.map +1 -0
  283. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/new/page.tsx +5 -0
  284. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/page.d.ts +2 -0
  285. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/page.d.ts.map +1 -0
  286. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/page.js +612 -0
  287. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/page.js.map +1 -0
  288. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/page.tsx +939 -0
  289. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/edit/page.d.ts +6 -0
  290. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/edit/page.d.ts.map +1 -0
  291. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/edit/page.js +9 -0
  292. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/edit/page.js.map +1 -0
  293. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/edit/page.tsx +11 -0
  294. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/page.d.ts +6 -0
  295. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/page.d.ts.map +1 -0
  296. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/page.js +9 -0
  297. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/page.js.map +1 -0
  298. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/page.tsx +11 -0
  299. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/new/page.d.ts +6 -0
  300. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/new/page.d.ts.map +1 -0
  301. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/new/page.js +9 -0
  302. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/new/page.js.map +1 -0
  303. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/new/page.tsx +17 -0
  304. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/page.d.ts +2 -0
  305. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/page.d.ts.map +1 -0
  306. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/page.js +348 -0
  307. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/page.js.map +1 -0
  308. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/page.tsx +536 -0
  309. package/hedhog/frontend/src/app/(app)/(libraries)/operations/departments/page.d.ts +2 -0
  310. package/hedhog/frontend/src/app/(app)/(libraries)/operations/departments/page.d.ts.map +1 -0
  311. package/hedhog/frontend/src/app/(app)/(libraries)/operations/departments/page.js +401 -0
  312. package/hedhog/frontend/src/app/(app)/(libraries)/operations/departments/page.js.map +1 -0
  313. package/hedhog/frontend/src/app/(app)/(libraries)/operations/departments/page.tsx +607 -0
  314. package/hedhog/frontend/src/app/(app)/(libraries)/operations/layout.d.ts +5 -0
  315. package/hedhog/frontend/src/app/(app)/(libraries)/operations/layout.d.ts.map +1 -0
  316. package/hedhog/frontend/src/app/(app)/(libraries)/operations/layout.js +7 -0
  317. package/hedhog/frontend/src/app/(app)/(libraries)/operations/layout.js.map +1 -0
  318. package/hedhog/frontend/src/app/(app)/(libraries)/operations/layout.tsx +9 -0
  319. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/[id]/page.d.ts +6 -0
  320. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/[id]/page.d.ts.map +1 -0
  321. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/[id]/page.js +9 -0
  322. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/[id]/page.js.map +1 -0
  323. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/[id]/page.tsx +11 -0
  324. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/page.d.ts +2 -0
  325. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/page.d.ts.map +1 -0
  326. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/page.js +321 -0
  327. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/page.js.map +1 -0
  328. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/page.tsx +440 -0
  329. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-tasks/page.d.ts +2 -0
  330. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-tasks/page.d.ts.map +1 -0
  331. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-tasks/page.js +939 -0
  332. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-tasks/page.js.map +1 -0
  333. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-tasks/page.tsx +1499 -0
  334. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/async-options-combobox.d.ts +29 -0
  335. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/async-options-combobox.d.ts.map +1 -0
  336. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/async-options-combobox.js +95 -0
  337. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/async-options-combobox.js.map +1 -0
  338. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/async-options-combobox.tsx +233 -0
  339. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-costs-section.d.ts +10 -0
  340. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-costs-section.d.ts.map +1 -0
  341. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-costs-section.js +577 -0
  342. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-costs-section.js.map +1 -0
  343. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-costs-section.tsx +868 -0
  344. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-details-screen.d.ts +4 -0
  345. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-details-screen.d.ts.map +1 -0
  346. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-details-screen.js +337 -0
  347. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-details-screen.js.map +1 -0
  348. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-details-screen.tsx +476 -0
  349. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-form-screen.d.ts +9 -0
  350. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-form-screen.d.ts.map +1 -0
  351. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-form-screen.js +1348 -0
  352. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-form-screen.js.map +1 -0
  353. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-form-screen.tsx +2233 -0
  354. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-select-with-create.d.ts +12 -0
  355. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-select-with-create.d.ts.map +1 -0
  356. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-select-with-create.js +162 -0
  357. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-select-with-create.js.map +1 -0
  358. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-select-with-create.tsx +261 -0
  359. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-content-editor.d.ts +18 -0
  360. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-content-editor.d.ts.map +1 -0
  361. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-content-editor.js +145 -0
  362. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-content-editor.js.map +1 -0
  363. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-content-editor.tsx +258 -0
  364. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-details-screen.d.ts +4 -0
  365. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-details-screen.d.ts.map +1 -0
  366. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-details-screen.js +223 -0
  367. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-details-screen.js.map +1 -0
  368. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-details-screen.tsx +342 -0
  369. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-form-screen.d.ts +58 -0
  370. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-form-screen.d.ts.map +1 -0
  371. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-form-screen.js +438 -0
  372. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-form-screen.js.map +1 -0
  373. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-form-screen.tsx +698 -0
  374. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/department-select-with-create.d.ts +20 -0
  375. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/department-select-with-create.d.ts.map +1 -0
  376. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/department-select-with-create.js +233 -0
  377. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/department-select-with-create.js.map +1 -0
  378. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/department-select-with-create.tsx +392 -0
  379. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/my-project-summary-screen.d.ts +4 -0
  380. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/my-project-summary-screen.d.ts.map +1 -0
  381. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/my-project-summary-screen.js +814 -0
  382. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/my-project-summary-screen.js.map +1 -0
  383. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/my-project-summary-screen.tsx +1288 -0
  384. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-calendar-view.d.ts +21 -0
  385. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-calendar-view.d.ts.map +1 -0
  386. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-calendar-view.js +174 -0
  387. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-calendar-view.js.map +1 -0
  388. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-calendar-view.tsx +306 -0
  389. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-header.d.ts +10 -0
  390. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-header.d.ts.map +1 -0
  391. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-header.js +12 -0
  392. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-header.js.map +1 -0
  393. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-header.tsx +29 -0
  394. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/person-select-with-create.d.ts +15 -0
  395. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/person-select-with-create.d.ts.map +1 -0
  396. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/person-select-with-create.js +501 -0
  397. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/person-select-with-create.js.map +1 -0
  398. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/person-select-with-create.tsx +853 -0
  399. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-cost-report-screen.d.ts +6 -0
  400. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-cost-report-screen.d.ts.map +1 -0
  401. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-cost-report-screen.js +459 -0
  402. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-cost-report-screen.js.map +1 -0
  403. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-cost-report-screen.tsx +598 -0
  404. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-costs-section.d.ts +6 -0
  405. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-costs-section.d.ts.map +1 -0
  406. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-costs-section.js +876 -0
  407. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-costs-section.js.map +1 -0
  408. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-costs-section.tsx +1368 -0
  409. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-details-screen.d.ts +4 -0
  410. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-details-screen.d.ts.map +1 -0
  411. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-details-screen.js +2930 -0
  412. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-details-screen.js.map +1 -0
  413. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-details-screen.tsx +4378 -0
  414. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-form-screen.d.ts +9 -0
  415. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-form-screen.d.ts.map +1 -0
  416. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-form-screen.js +1013 -0
  417. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-form-screen.js.map +1 -0
  418. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-form-screen.tsx +1745 -0
  419. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/section-card.d.ts +13 -0
  420. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/section-card.d.ts.map +1 -0
  421. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/section-card.js +38 -0
  422. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/section-card.js.map +1 -0
  423. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/section-card.tsx +74 -0
  424. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/status-badge.d.ts +7 -0
  425. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/status-badge.d.ts.map +1 -0
  426. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/status-badge.js +11 -0
  427. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/status-badge.js.map +1 -0
  428. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/status-badge.tsx +15 -0
  429. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/system-user-select-with-create.d.ts +18 -0
  430. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/system-user-select-with-create.d.ts.map +1 -0
  431. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/system-user-select-with-create.js +406 -0
  432. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/system-user-select-with-create.js.map +1 -0
  433. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/system-user-select-with-create.tsx +660 -0
  434. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-detail-sheet.d.ts +26 -0
  435. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-detail-sheet.d.ts.map +1 -0
  436. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-detail-sheet.js +332 -0
  437. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-detail-sheet.js.map +1 -0
  438. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-detail-sheet.tsx +518 -0
  439. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-file-attachments.d.ts +6 -0
  440. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-file-attachments.d.ts.map +1 -0
  441. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-file-attachments.js +255 -0
  442. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-file-attachments.js.map +1 -0
  443. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-file-attachments.tsx +388 -0
  444. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/timesheet-task-create-sheet.d.ts +10 -0
  445. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/timesheet-task-create-sheet.d.ts.map +1 -0
  446. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/timesheet-task-create-sheet.js +131 -0
  447. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/timesheet-task-create-sheet.js.map +1 -0
  448. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/timesheet-task-create-sheet.tsx +214 -0
  449. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/api.d.ts +108 -0
  450. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/api.d.ts.map +1 -0
  451. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/api.js +162 -0
  452. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/api.js.map +1 -0
  453. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/api.ts +428 -0
  454. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/hooks/use-operations-access.d.ts +8 -0
  455. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/hooks/use-operations-access.d.ts.map +1 -0
  456. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/hooks/use-operations-access.js +36 -0
  457. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/hooks/use-operations-access.js.map +1 -0
  458. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/hooks/use-operations-access.ts +44 -0
  459. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/types.d.ts +836 -0
  460. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/types.d.ts.map +1 -0
  461. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/types.js +3 -0
  462. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/types.js.map +1 -0
  463. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/types.ts +860 -0
  464. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/format.d.ts +16 -0
  465. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/format.d.ts.map +1 -0
  466. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/format.js +182 -0
  467. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/format.js.map +1 -0
  468. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/format.ts +250 -0
  469. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/forms.d.ts +4 -0
  470. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/forms.d.ts.map +1 -0
  471. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/forms.js +51 -0
  472. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/forms.js.map +1 -0
  473. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/forms.ts +61 -0
  474. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/approvals/page.d.ts +2 -0
  475. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/approvals/page.d.ts.map +1 -0
  476. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/approvals/page.js +954 -0
  477. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/approvals/page.js.map +1 -0
  478. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/approvals/page.tsx +1277 -0
  479. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborator-types/page.d.ts +2 -0
  480. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborator-types/page.d.ts.map +1 -0
  481. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborator-types/page.js +488 -0
  482. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborator-types/page.js.map +1 -0
  483. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborator-types/page.tsx +805 -0
  484. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/edit/page.d.ts +6 -0
  485. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/edit/page.d.ts.map +1 -0
  486. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/edit/page.js +9 -0
  487. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/edit/page.js.map +1 -0
  488. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/edit/page.tsx +11 -0
  489. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/page.d.ts +6 -0
  490. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/page.d.ts.map +1 -0
  491. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/page.js +9 -0
  492. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/page.js.map +1 -0
  493. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/page.tsx +11 -0
  494. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/new/page.d.ts +2 -0
  495. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/new/page.d.ts.map +1 -0
  496. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/new/page.js +8 -0
  497. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/new/page.js.map +1 -0
  498. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/new/page.tsx +5 -0
  499. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/page.d.ts +2 -0
  500. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/page.d.ts.map +1 -0
  501. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/page.js +612 -0
  502. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/page.js.map +1 -0
  503. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/page.tsx +939 -0
  504. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/edit/page.d.ts +6 -0
  505. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/edit/page.d.ts.map +1 -0
  506. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/edit/page.js +9 -0
  507. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/edit/page.js.map +1 -0
  508. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/edit/page.tsx +11 -0
  509. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/page.d.ts +6 -0
  510. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/page.d.ts.map +1 -0
  511. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/page.js +9 -0
  512. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/page.js.map +1 -0
  513. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/page.tsx +11 -0
  514. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/new/page.d.ts +6 -0
  515. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/new/page.d.ts.map +1 -0
  516. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/new/page.js +9 -0
  517. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/new/page.js.map +1 -0
  518. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/new/page.tsx +17 -0
  519. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/page.d.ts +2 -0
  520. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/page.d.ts.map +1 -0
  521. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/page.js +348 -0
  522. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/page.js.map +1 -0
  523. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/page.tsx +536 -0
  524. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/departments/page.d.ts +2 -0
  525. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/departments/page.d.ts.map +1 -0
  526. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/departments/page.js +401 -0
  527. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/departments/page.js.map +1 -0
  528. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/departments/page.tsx +607 -0
  529. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/layout.d.ts +5 -0
  530. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/layout.d.ts.map +1 -0
  531. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/layout.js +7 -0
  532. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/layout.js.map +1 -0
  533. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/layout.tsx +9 -0
  534. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/[id]/page.d.ts +6 -0
  535. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/[id]/page.d.ts.map +1 -0
  536. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/[id]/page.js +9 -0
  537. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/[id]/page.js.map +1 -0
  538. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/[id]/page.tsx +11 -0
  539. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/page.d.ts +2 -0
  540. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/page.d.ts.map +1 -0
  541. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/page.js +321 -0
  542. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/page.js.map +1 -0
  543. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/page.tsx +440 -0
  544. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-tasks/page.d.ts +2 -0
  545. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-tasks/page.d.ts.map +1 -0
  546. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-tasks/page.js +939 -0
  547. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-tasks/page.js.map +1 -0
  548. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-tasks/page.tsx +1499 -0
  549. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/page.d.ts +2 -0
  550. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/page.d.ts.map +1 -0
  551. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/page.js +8 -0
  552. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/page.js.map +1 -0
  553. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/page.tsx +5 -0
  554. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-categories/page.d.ts +2 -0
  555. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-categories/page.d.ts.map +1 -0
  556. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-categories/page.js +436 -0
  557. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-categories/page.js.map +1 -0
  558. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-categories/page.tsx +675 -0
  559. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-types/page.d.ts +2 -0
  560. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-types/page.d.ts.map +1 -0
  561. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-types/page.js +563 -0
  562. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-types/page.js.map +1 -0
  563. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-types/page.tsx +846 -0
  564. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/costs-report/page.d.ts +6 -0
  565. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/costs-report/page.d.ts.map +1 -0
  566. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/costs-report/page.js +9 -0
  567. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/costs-report/page.js.map +1 -0
  568. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/costs-report/page.tsx +10 -0
  569. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/edit/page.d.ts +6 -0
  570. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/edit/page.d.ts.map +1 -0
  571. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/edit/page.js +9 -0
  572. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/edit/page.js.map +1 -0
  573. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/edit/page.tsx +11 -0
  574. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/page.d.ts +6 -0
  575. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/page.d.ts.map +1 -0
  576. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/page.js +9 -0
  577. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/page.js.map +1 -0
  578. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/page.tsx +11 -0
  579. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/new/page.d.ts +2 -0
  580. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/new/page.d.ts.map +1 -0
  581. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/new/page.js +8 -0
  582. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/new/page.js.map +1 -0
  583. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/new/page.tsx +5 -0
  584. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/page.d.ts +2 -0
  585. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/page.d.ts.map +1 -0
  586. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/page.js +492 -0
  587. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/page.js.map +1 -0
  588. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/page.tsx +757 -0
  589. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/collaborators/page.d.ts +2 -0
  590. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/collaborators/page.d.ts.map +1 -0
  591. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/collaborators/page.js +342 -0
  592. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/collaborators/page.js.map +1 -0
  593. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/collaborators/page.tsx +430 -0
  594. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/projects/page.d.ts +2 -0
  595. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/projects/page.d.ts.map +1 -0
  596. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/projects/page.js +338 -0
  597. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/projects/page.js.map +1 -0
  598. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/projects/page.tsx +428 -0
  599. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/schedule-adjustments/page.d.ts +2 -0
  600. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/schedule-adjustments/page.d.ts.map +1 -0
  601. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/schedule-adjustments/page.js +660 -0
  602. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/schedule-adjustments/page.js.map +1 -0
  603. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/schedule-adjustments/page.tsx +992 -0
  604. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/time-off/page.d.ts +2 -0
  605. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/time-off/page.d.ts.map +1 -0
  606. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/time-off/page.js +515 -0
  607. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/time-off/page.js.map +1 -0
  608. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/time-off/page.tsx +707 -0
  609. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/timesheets/page.d.ts +2 -0
  610. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/timesheets/page.d.ts.map +1 -0
  611. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/timesheets/page.js +1141 -0
  612. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/timesheets/page.js.map +1 -0
  613. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/timesheets/page.tsx +1705 -0
  614. package/hedhog/frontend/src/app/(app)/(libraries)/operations/page.d.ts +2 -0
  615. package/hedhog/frontend/src/app/(app)/(libraries)/operations/page.d.ts.map +1 -0
  616. package/hedhog/frontend/src/app/(app)/(libraries)/operations/page.js +8 -0
  617. package/hedhog/frontend/src/app/(app)/(libraries)/operations/page.js.map +1 -0
  618. package/hedhog/frontend/src/app/(app)/(libraries)/operations/page.tsx +5 -0
  619. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-categories/page.d.ts +2 -0
  620. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-categories/page.d.ts.map +1 -0
  621. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-categories/page.js +436 -0
  622. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-categories/page.js.map +1 -0
  623. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-categories/page.tsx +675 -0
  624. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-types/page.d.ts +2 -0
  625. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-types/page.d.ts.map +1 -0
  626. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-types/page.js +563 -0
  627. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-types/page.js.map +1 -0
  628. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-types/page.tsx +846 -0
  629. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/edit/page.d.ts +6 -0
  630. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/edit/page.d.ts.map +1 -0
  631. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/edit/page.js +9 -0
  632. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/edit/page.js.map +1 -0
  633. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/edit/page.tsx +11 -0
  634. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/page.d.ts +6 -0
  635. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/page.d.ts.map +1 -0
  636. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/page.js +9 -0
  637. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/page.js.map +1 -0
  638. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/page.tsx +11 -0
  639. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/new/page.d.ts +2 -0
  640. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/new/page.d.ts.map +1 -0
  641. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/new/page.js +8 -0
  642. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/new/page.js.map +1 -0
  643. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/new/page.tsx +5 -0
  644. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/page.d.ts +2 -0
  645. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/page.d.ts.map +1 -0
  646. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/page.js +492 -0
  647. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/page.js.map +1 -0
  648. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/page.tsx +757 -0
  649. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/collaborators/page.d.ts +2 -0
  650. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/collaborators/page.d.ts.map +1 -0
  651. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/collaborators/page.js +342 -0
  652. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/collaborators/page.js.map +1 -0
  653. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/collaborators/page.tsx +430 -0
  654. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/projects/page.d.ts +2 -0
  655. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/projects/page.d.ts.map +1 -0
  656. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/projects/page.js +338 -0
  657. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/projects/page.js.map +1 -0
  658. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/projects/page.tsx +428 -0
  659. package/hedhog/frontend/src/app/(app)/(libraries)/operations/schedule-adjustments/page.d.ts +2 -0
  660. package/hedhog/frontend/src/app/(app)/(libraries)/operations/schedule-adjustments/page.d.ts.map +1 -0
  661. package/hedhog/frontend/src/app/(app)/(libraries)/operations/schedule-adjustments/page.js +660 -0
  662. package/hedhog/frontend/src/app/(app)/(libraries)/operations/schedule-adjustments/page.js.map +1 -0
  663. package/hedhog/frontend/src/app/(app)/(libraries)/operations/schedule-adjustments/page.tsx +992 -0
  664. package/hedhog/frontend/src/app/(app)/(libraries)/operations/time-off/page.d.ts +2 -0
  665. package/hedhog/frontend/src/app/(app)/(libraries)/operations/time-off/page.d.ts.map +1 -0
  666. package/hedhog/frontend/src/app/(app)/(libraries)/operations/time-off/page.js +515 -0
  667. package/hedhog/frontend/src/app/(app)/(libraries)/operations/time-off/page.js.map +1 -0
  668. package/hedhog/frontend/src/app/(app)/(libraries)/operations/time-off/page.tsx +707 -0
  669. package/hedhog/frontend/src/app/(app)/(libraries)/operations/timesheets/page.d.ts +2 -0
  670. package/hedhog/frontend/src/app/(app)/(libraries)/operations/timesheets/page.d.ts.map +1 -0
  671. package/hedhog/frontend/src/app/(app)/(libraries)/operations/timesheets/page.js +1141 -0
  672. package/hedhog/frontend/src/app/(app)/(libraries)/operations/timesheets/page.js.map +1 -0
  673. package/hedhog/frontend/src/app/(app)/(libraries)/operations/timesheets/page.tsx +1705 -0
  674. package/hedhog/table/operations_project_assignment.yaml +1 -0
  675. package/hedhog/table/operations_project_cost.yaml +93 -0
  676. package/hedhog/table/operations_project_cost_category.yaml +37 -0
  677. package/hedhog/table/operations_project_cost_type.yaml +55 -0
  678. package/hedhog/table/operations_task_comment.yaml +26 -0
  679. package/hedhog/table/operations_task_file.yaml +23 -0
  680. package/package.json +5 -5
  681. package/src/controllers/operations-collaborators.controller.ts +26 -0
  682. package/src/controllers/operations-project-costs.controller.ts +249 -0
  683. package/src/controllers/operations-tasks.controller.ts +92 -9
  684. package/src/dto/create-collaborator-project-assignment.dto.ts +14 -0
  685. package/src/dto/create-project-cost-category.dto.ts +37 -0
  686. package/src/dto/create-project-cost-type.dto.ts +64 -0
  687. package/src/dto/create-project-cost.dto.ts +126 -0
  688. package/src/dto/create-task.dto.ts +0 -1
  689. package/src/dto/get-project-cost-report.dto.ts +46 -0
  690. package/src/dto/list-project-cost-categories.dto.ts +17 -0
  691. package/src/dto/list-project-cost-types.dto.ts +28 -0
  692. package/src/dto/list-project-costs.dto.ts +59 -0
  693. package/src/dto/list-tasks.dto.ts +7 -0
  694. package/src/dto/list-timesheets.dto.ts +7 -1
  695. package/src/dto/update-collaborator-project-assignment.dto.ts +58 -0
  696. package/src/dto/update-project-cost-category.dto.ts +4 -0
  697. package/src/dto/update-project-cost-type.dto.ts +4 -0
  698. package/src/dto/update-project-cost.dto.ts +4 -0
  699. package/src/dto/update-task.dto.ts +0 -1
  700. package/src/operations.module.ts +2 -0
  701. package/src/operations.service.ts +2421 -64
@@ -1,826 +1 @@
1
- 'use client';
2
-
3
- import { Button } from '@/components/ui/button';
4
- import {
5
- Command,
6
- CommandEmpty,
7
- CommandGroup,
8
- CommandInput,
9
- CommandItem,
10
- CommandList,
11
- } from '@/components/ui/command';
12
- import {
13
- Form,
14
- FormControl,
15
- FormField,
16
- FormItem,
17
- FormLabel,
18
- FormMessage,
19
- } from '@/components/ui/form';
20
- import { Input } from '@/components/ui/input';
21
- import { Label } from '@/components/ui/label';
22
- import {
23
- Popover,
24
- PopoverContent,
25
- PopoverTrigger,
26
- } from '@/components/ui/popover';
27
- import {
28
- Select,
29
- SelectContent,
30
- SelectItem,
31
- SelectTrigger,
32
- SelectValue,
33
- } from '@/components/ui/select';
34
- import {
35
- Sheet,
36
- SheetContent,
37
- SheetDescription,
38
- SheetHeader,
39
- SheetTitle,
40
- } from '@/components/ui/sheet';
41
- import { useApp, useQuery } from '@hed-hog/next-app-provider';
42
- import { zodResolver } from '@hookform/resolvers/zod';
43
- import { ChevronsUpDown, Plus, X } from 'lucide-react';
44
- import { useTranslations } from 'next-intl';
45
- import { useEffect, useMemo, useRef, useState } from 'react';
46
- import { useForm } from 'react-hook-form';
47
- import { z } from 'zod';
48
-
49
- type PersonOption = {
50
- id: number | string;
51
- name: string;
52
- };
53
-
54
- type CreatePersonValues = {
55
- name: string;
56
- type: 'individual' | 'company';
57
- email?: string;
58
- phone?: string;
59
- document?: string;
60
- line1?: string;
61
- city?: string;
62
- state?: string;
63
- };
64
-
65
- type PersonTypeFilter = 'individual' | 'company' | 'all';
66
-
67
- type ContactTypeLookup = {
68
- code: string;
69
- contact_type_id: number;
70
- };
71
-
72
- type DocumentTypeLookup = {
73
- code: string;
74
- document_type_id: number;
75
- };
76
-
77
- type CreatePersonResponse = {
78
- id?: number;
79
- data?: {
80
- id?: number;
81
- };
82
- };
83
-
84
- type PaginatedResponse<T> = {
85
- data?: T[];
86
- };
87
-
88
- function usePersonFieldWithCreateTranslations() {
89
- const tRoot = useTranslations();
90
-
91
- return (
92
- key: string,
93
- values?: Record<string, string | number | boolean | null | undefined>
94
- ) => {
95
- const contactKey = `contact.PersonFieldWithCreate.${key}`;
96
- const filteredValues = values
97
- ? Object.fromEntries(
98
- Object.entries(values).filter(
99
- ([, value]) =>
100
- typeof value === 'string' || typeof value === 'number'
101
- )
102
- )
103
- : undefined;
104
-
105
- if (tRoot.has(contactKey)) {
106
- return tRoot(
107
- contactKey,
108
- filteredValues as Record<string, string | number> | undefined
109
- );
110
- }
111
-
112
- return tRoot(
113
- `finance.PersonFieldWithCreate.${key}`,
114
- filteredValues as Record<string, string | number> | undefined
115
- );
116
- };
117
- }
118
-
119
- function CreatePersonSheet({
120
- open,
121
- onOpenChange,
122
- onCreated,
123
- entityLabel,
124
- defaultCreateType = 'individual',
125
- lockCreateType = false,
126
- }: {
127
- open: boolean;
128
- onOpenChange: (open: boolean) => void;
129
- onCreated: (person: PersonOption) => void;
130
- entityLabel: string;
131
- defaultCreateType?: Exclude<PersonTypeFilter, 'all'>;
132
- lockCreateType?: boolean;
133
- }) {
134
- const { request, showToastHandler, currentLocaleCode, getSettingValue } =
135
- useApp();
136
- const t = usePersonFieldWithCreateTranslations();
137
- const allowCompanyRegistration =
138
- getSettingValue('contact-allow-company-registration') !== false;
139
-
140
- const effectiveDefaultType: Exclude<PersonTypeFilter, 'all'> =
141
- allowCompanyRegistration ? defaultCreateType : 'individual';
142
-
143
- const createPersonSchema = useMemo(
144
- () =>
145
- z.object({
146
- name: z.string().trim().min(2, 'Nome é obrigatório'),
147
- type: allowCompanyRegistration
148
- ? z.enum(['individual', 'company'])
149
- : z.literal('individual'),
150
- email: z
151
- .string()
152
- .trim()
153
- .email('E-mail inválido')
154
- .optional()
155
- .or(z.literal('')),
156
- phone: z.string().trim().optional(),
157
- document: z.string().trim().optional(),
158
- line1: z.string().optional(),
159
- city: z.string().optional(),
160
- state: z.string().optional(),
161
- }),
162
- [allowCompanyRegistration]
163
- );
164
-
165
- const form = useForm<CreatePersonValues>({
166
- resolver: zodResolver(createPersonSchema),
167
- defaultValues: {
168
- name: '',
169
- type: effectiveDefaultType,
170
- email: '',
171
- phone: '',
172
- document: '',
173
- line1: '',
174
- city: '',
175
- state: '',
176
- },
177
- });
178
-
179
- const selectedType =
180
- allowCompanyRegistration && !lockCreateType
181
- ? form.watch('type')
182
- : effectiveDefaultType;
183
-
184
- useEffect(() => {
185
- if (!allowCompanyRegistration || lockCreateType) {
186
- form.setValue('type', effectiveDefaultType);
187
- }
188
- }, [allowCompanyRegistration, effectiveDefaultType, form, lockCreateType]);
189
-
190
- const { data: contactTypes = [] } = useQuery<ContactTypeLookup[]>({
191
- queryKey: ['operations-person-field-contact-types', currentLocaleCode],
192
- queryFn: async () => {
193
- const response = await request<PaginatedResponse<ContactTypeLookup>>({
194
- url: '/person-contact-type?pageSize=100',
195
- method: 'GET',
196
- });
197
- return response?.data?.data || [];
198
- },
199
- placeholderData: (old) => old ?? [],
200
- });
201
-
202
- const { data: documentTypes = [] } = useQuery<DocumentTypeLookup[]>({
203
- queryKey: ['operations-person-field-document-types', currentLocaleCode],
204
- queryFn: async () => {
205
- const response = await request<PaginatedResponse<DocumentTypeLookup>>({
206
- url: '/person-document-type?pageSize=100',
207
- method: 'GET',
208
- });
209
- return response?.data?.data || [];
210
- },
211
- placeholderData: (old) => old ?? [],
212
- });
213
-
214
- const resolveContactTypeId = (code: string, fallbackIndex = 0) => {
215
- const found = contactTypes.find(
216
- (item) => String(item.code).toUpperCase() === code
217
- );
218
- return (
219
- found?.contact_type_id || contactTypes[fallbackIndex]?.contact_type_id
220
- );
221
- };
222
-
223
- const resolveDocumentTypeId = (code: string) => {
224
- const found = documentTypes.find(
225
- (item) => String(item.code).toUpperCase() === code
226
- );
227
- return found?.document_type_id || documentTypes[0]?.document_type_id;
228
- };
229
-
230
- const handleSubmit = async (values: CreatePersonValues) => {
231
- try {
232
- const normalizedType =
233
- allowCompanyRegistration && !lockCreateType
234
- ? values.type
235
- : effectiveDefaultType;
236
-
237
- const createResponse = await request<CreatePersonResponse>({
238
- url: '/person',
239
- method: 'POST',
240
- data: {
241
- name: values.name,
242
- type: normalizedType,
243
- status: 'active',
244
- },
245
- });
246
-
247
- const personId = Number(
248
- createResponse?.data?.id ?? createResponse?.data?.data?.id
249
- );
250
-
251
- if (!personId) {
252
- throw new Error('Could not identify the created person record');
253
- }
254
-
255
- const emailTypeId = resolveContactTypeId('EMAIL', 0);
256
- const phoneTypeId =
257
- resolveContactTypeId('PHONE', 1) || resolveContactTypeId('MOBILE', 1);
258
- const documentTypeId = resolveDocumentTypeId(
259
- normalizedType === 'individual' ? 'CPF' : 'CNPJ'
260
- );
261
-
262
- const contacts = [
263
- values.email && emailTypeId
264
- ? {
265
- value: values.email.trim(),
266
- is_primary: true,
267
- contact_type_id: emailTypeId,
268
- }
269
- : null,
270
- values.phone && phoneTypeId
271
- ? {
272
- value: values.phone.trim(),
273
- is_primary: true,
274
- contact_type_id: phoneTypeId,
275
- }
276
- : null,
277
- ].filter(Boolean);
278
-
279
- const documents = values.document?.trim()
280
- ? [
281
- {
282
- value: values.document.trim(),
283
- document_type_id: documentTypeId,
284
- },
285
- ]
286
- : [];
287
-
288
- const addresses =
289
- values.line1 && values.city && values.state
290
- ? [
291
- {
292
- line1: values.line1.trim(),
293
- city: values.city.trim(),
294
- state: values.state.trim(),
295
- is_primary: true,
296
- address_type: 'residential',
297
- },
298
- ]
299
- : [];
300
-
301
- await request({
302
- url: `/person/${personId}`,
303
- method: 'PATCH',
304
- data: {
305
- name: values.name,
306
- type: normalizedType,
307
- status: 'active',
308
- contacts,
309
- documents,
310
- addresses,
311
- },
312
- });
313
-
314
- onCreated({ id: personId, name: values.name });
315
- form.reset();
316
- onOpenChange(false);
317
- showToastHandler?.(
318
- 'success',
319
- t('messages.createdSuccess', { entityLabel })
320
- );
321
- } catch {
322
- showToastHandler?.('error', t('messages.createdError', { entityLabel }));
323
- }
324
- };
325
-
326
- return (
327
- <Sheet
328
- open={open}
329
- onOpenChange={(nextOpen) => {
330
- onOpenChange(nextOpen);
331
- if (!nextOpen) {
332
- form.reset();
333
- }
334
- }}
335
- >
336
- <SheetContent
337
- className="w-full overflow-y-auto sm:max-w-xl"
338
- onCloseAutoFocus={(event) => event.preventDefault()}
339
- >
340
- <SheetHeader>
341
- <SheetTitle>{t('sheet.title', { entityLabel })}</SheetTitle>
342
- <SheetDescription>
343
- {allowCompanyRegistration
344
- ? t('sheet.description')
345
- : t('sheet.descriptionIndividualOnly')}
346
- </SheetDescription>
347
- </SheetHeader>
348
-
349
- <Form {...form}>
350
- <div className="space-y-4 p-4">
351
- <FormField
352
- control={form.control}
353
- name="name"
354
- render={({ field }) => (
355
- <FormItem>
356
- <FormLabel>{t('fields.name')}</FormLabel>
357
- <FormControl>
358
- <Input
359
- placeholder={t('placeholders.name', { entityLabel })}
360
- {...field}
361
- />
362
- </FormControl>
363
- <FormMessage />
364
- </FormItem>
365
- )}
366
- />
367
-
368
- {allowCompanyRegistration && !lockCreateType ? (
369
- <FormField
370
- control={form.control}
371
- name="type"
372
- render={({ field }) => (
373
- <FormItem>
374
- <FormLabel>{t('fields.type')}</FormLabel>
375
- <Select value={field.value} onValueChange={field.onChange}>
376
- <FormControl>
377
- <SelectTrigger>
378
- <SelectValue placeholder={t('common.select')} />
379
- </SelectTrigger>
380
- </FormControl>
381
- <SelectContent>
382
- <SelectItem value="individual">
383
- {t('types.individual')}
384
- </SelectItem>
385
- <SelectItem value="company">
386
- {t('types.company')}
387
- </SelectItem>
388
- </SelectContent>
389
- </Select>
390
- <FormMessage />
391
- </FormItem>
392
- )}
393
- />
394
- ) : null}
395
-
396
- <div className="grid grid-cols-1 gap-4 sm:grid-cols-2">
397
- <FormField
398
- control={form.control}
399
- name="document"
400
- render={({ field }) => (
401
- <FormItem>
402
- <FormLabel>
403
- {selectedType === 'individual'
404
- ? t('fields.documentIndividualOptional')
405
- : t('fields.documentCompanyOptional')}
406
- </FormLabel>
407
- <FormControl>
408
- <Input
409
- placeholder={
410
- selectedType === 'individual'
411
- ? '000.000.000-00'
412
- : '00.000.000/0000-00'
413
- }
414
- {...field}
415
- value={field.value || ''}
416
- />
417
- </FormControl>
418
- <FormMessage />
419
- </FormItem>
420
- )}
421
- />
422
-
423
- <FormField
424
- control={form.control}
425
- name="email"
426
- render={({ field }) => (
427
- <FormItem>
428
- <FormLabel>{t('fields.emailOptional')}</FormLabel>
429
- <FormControl>
430
- <Input
431
- placeholder={t('placeholders.email', { entityLabel })}
432
- {...field}
433
- value={field.value || ''}
434
- />
435
- </FormControl>
436
- <FormMessage />
437
- </FormItem>
438
- )}
439
- />
440
- </div>
441
-
442
- <FormField
443
- control={form.control}
444
- name="phone"
445
- render={({ field }) => (
446
- <FormItem>
447
- <FormLabel>{t('fields.phoneOptional')}</FormLabel>
448
- <FormControl>
449
- <Input
450
- placeholder={t('placeholders.phone')}
451
- {...field}
452
- value={field.value || ''}
453
- />
454
- </FormControl>
455
- <FormMessage />
456
- </FormItem>
457
- )}
458
- />
459
-
460
- <div className="rounded-md border p-3">
461
- <p className="mb-3 text-sm font-medium">
462
- {t('fields.addressOptional')}
463
- </p>
464
- <div className="grid grid-cols-1 gap-3 sm:grid-cols-2">
465
- <FormField
466
- control={form.control}
467
- name="line1"
468
- render={({ field }) => (
469
- <FormItem className="sm:col-span-2">
470
- <FormControl>
471
- <Input
472
- placeholder={t('placeholders.addressLine1')}
473
- {...field}
474
- value={field.value || ''}
475
- />
476
- </FormControl>
477
- <FormMessage />
478
- </FormItem>
479
- )}
480
- />
481
-
482
- <FormField
483
- control={form.control}
484
- name="city"
485
- render={({ field }) => (
486
- <FormItem>
487
- <FormControl>
488
- <Input
489
- placeholder={t('placeholders.city')}
490
- {...field}
491
- value={field.value || ''}
492
- />
493
- </FormControl>
494
- <FormMessage />
495
- </FormItem>
496
- )}
497
- />
498
-
499
- <FormField
500
- control={form.control}
501
- name="state"
502
- render={({ field }) => (
503
- <FormItem>
504
- <FormControl>
505
- <Input
506
- placeholder={t('placeholders.state')}
507
- {...field}
508
- value={field.value || ''}
509
- />
510
- </FormControl>
511
- <FormMessage />
512
- </FormItem>
513
- )}
514
- />
515
- </div>
516
- </div>
517
-
518
- <div className="flex justify-end gap-2">
519
- <Button
520
- type="button"
521
- variant="outline"
522
- onClick={() => onOpenChange(false)}
523
- >
524
- {t('actions.cancel')}
525
- </Button>
526
- <Button
527
- type="button"
528
- disabled={form.formState.isSubmitting}
529
- onClick={() => {
530
- void form.handleSubmit(handleSubmit)();
531
- }}
532
- >
533
- {t('actions.saveEntity', { entityLabel })}
534
- </Button>
535
- </div>
536
- </div>
537
- </Form>
538
- </SheetContent>
539
- </Sheet>
540
- );
541
- }
542
-
543
- export function PersonSelectWithCreate({
544
- label,
545
- entityLabel,
546
- value,
547
- onChange,
548
- selectPlaceholder,
549
- personTypeFilter = 'all',
550
- createType = 'individual',
551
- lockCreateType = false,
552
- initialSelectedLabel = '',
553
- disabled = false,
554
- }: {
555
- label: string;
556
- entityLabel: string;
557
- value?: string | number | null;
558
- onChange: (personId: number | null, personName: string) => void;
559
- selectPlaceholder: string;
560
- personTypeFilter?: PersonTypeFilter;
561
- createType?: Exclude<PersonTypeFilter, 'all'>;
562
- lockCreateType?: boolean;
563
- initialSelectedLabel?: string;
564
- disabled?: boolean;
565
- }) {
566
- const { request } = useApp();
567
- const t = usePersonFieldWithCreateTranslations();
568
- const [personOpen, setPersonOpen] = useState(false);
569
- const [personSearch, setPersonSearch] = useState('');
570
- const [debouncedPersonSearch, setDebouncedPersonSearch] = useState('');
571
- const [createPersonOpen, setCreatePersonOpen] = useState(false);
572
- const [selectedPersonLabel, setSelectedPersonLabel] =
573
- useState(initialSelectedLabel);
574
- const parentScrollContainerRef = useRef<HTMLElement | null>(null);
575
- const parentScrollTopRef = useRef(0);
576
-
577
- useEffect(() => {
578
- const timeout = setTimeout(() => {
579
- setDebouncedPersonSearch(personSearch);
580
- }, 300);
581
-
582
- return () => clearTimeout(timeout);
583
- }, [personSearch]);
584
-
585
- useEffect(() => {
586
- setSelectedPersonLabel(initialSelectedLabel);
587
- }, [initialSelectedLabel]);
588
-
589
- const captureParentScrollPosition = (trigger: HTMLElement) => {
590
- const parentSheetContent = trigger.closest(
591
- '[data-radix-dialog-content]'
592
- ) as HTMLElement | null;
593
-
594
- if (!parentSheetContent) {
595
- parentScrollContainerRef.current = null;
596
- parentScrollTopRef.current = 0;
597
- return;
598
- }
599
-
600
- parentScrollContainerRef.current = parentSheetContent;
601
- parentScrollTopRef.current = parentSheetContent.scrollTop;
602
- };
603
-
604
- const restoreParentScrollPosition = () => {
605
- const fallbackOpenDialog = (
606
- Array.from(
607
- document.querySelectorAll(
608
- '[data-radix-dialog-content][data-state="open"]'
609
- )
610
- ) as HTMLElement[]
611
- ).at(-1);
612
-
613
- const container =
614
- parentScrollContainerRef.current &&
615
- document.body.contains(parentScrollContainerRef.current)
616
- ? parentScrollContainerRef.current
617
- : fallbackOpenDialog || null;
618
-
619
- if (!container) {
620
- return;
621
- }
622
-
623
- const restore = () => {
624
- container.scrollTop = parentScrollTopRef.current;
625
- };
626
-
627
- requestAnimationFrame(restore);
628
- setTimeout(restore, 0);
629
- setTimeout(restore, 120);
630
- };
631
-
632
- const { data: personOptionsData = [], isLoading: isLoadingPersons } =
633
- useQuery<PersonOption[]>({
634
- queryKey: [
635
- 'operations-person-autocomplete',
636
- entityLabel,
637
- debouncedPersonSearch,
638
- personTypeFilter,
639
- ],
640
- queryFn: async () => {
641
- const params = new URLSearchParams();
642
- params.set('page', '1');
643
- params.set('pageSize', '20');
644
- if (personTypeFilter !== 'all') {
645
- params.set('type', personTypeFilter);
646
- }
647
- if (debouncedPersonSearch.trim()) {
648
- params.set('search', debouncedPersonSearch.trim());
649
- }
650
-
651
- const response = await request<
652
- PaginatedResponse<PersonOption> | PersonOption[]
653
- >({
654
- url: `/person?${params.toString()}`,
655
- method: 'GET',
656
- });
657
-
658
- const payload = response?.data;
659
- if (Array.isArray(payload)) {
660
- return payload as PersonOption[];
661
- }
662
-
663
- if (payload && 'data' in payload && Array.isArray(payload.data)) {
664
- return payload.data as PersonOption[];
665
- }
666
-
667
- return [];
668
- },
669
- placeholderData: (old) => old ?? [],
670
- });
671
-
672
- const normalizedValue =
673
- value !== undefined && value !== null && String(value).length > 0
674
- ? String(value)
675
- : '';
676
- const hasValue = normalizedValue.length > 0;
677
- const displayLabel =
678
- hasValue
679
- ? (personOptionsData.find(
680
- (person) => String(person.id) === normalizedValue
681
- )?.name ??
682
- selectedPersonLabel ??
683
- `ID #${normalizedValue}`)
684
- : selectedPersonLabel || selectPlaceholder;
685
- const hasSelection = hasValue || Boolean(selectedPersonLabel);
686
-
687
- return (
688
- <>
689
- <div className="grid min-w-0 gap-2">
690
- {label ? <Label>{label}</Label> : null}
691
-
692
- <div className="grid min-w-0 grid-cols-[minmax(0,1fr)_auto] gap-2 sm:grid-cols-[minmax(0,1fr)_auto_auto]">
693
- <Popover
694
- open={!disabled && personOpen}
695
- onOpenChange={(open) => {
696
- if (!disabled) {
697
- setPersonOpen(open);
698
- }
699
- }}
700
- >
701
- <PopoverTrigger asChild>
702
- <Button
703
- type="button"
704
- variant="outline"
705
- role="combobox"
706
- disabled={disabled}
707
- className="min-w-0 max-w-full justify-between overflow-hidden"
708
- >
709
- <span className="min-w-0 flex-1 truncate text-left">
710
- {displayLabel}
711
- </span>
712
- <ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50" />
713
- </Button>
714
- </PopoverTrigger>
715
- <PopoverContent
716
- className="p-0"
717
- style={{ width: 'var(--radix-popover-trigger-width)' }}
718
- >
719
- <Command shouldFilter={false}>
720
- <CommandInput
721
- placeholder={t('search.placeholder')}
722
- value={personSearch}
723
- onValueChange={setPersonSearch}
724
- />
725
- <CommandList>
726
- <CommandEmpty>
727
- {isLoadingPersons ? (
728
- t('search.loading')
729
- ) : (
730
- <div className="space-y-2 p-2 text-center">
731
- <p className="text-sm text-muted-foreground">
732
- {t('search.noResults')}
733
- </p>
734
- <Button
735
- type="button"
736
- variant="outline"
737
- className="w-full"
738
- onClick={(event) => {
739
- captureParentScrollPosition(event.currentTarget);
740
- setPersonOpen(false);
741
- setCreatePersonOpen(true);
742
- }}
743
- >
744
- {t('actions.createNew')}
745
- </Button>
746
- </div>
747
- )}
748
- </CommandEmpty>
749
- <CommandGroup>
750
- {personOptionsData.map((person) => (
751
- <CommandItem
752
- key={String(person.id)}
753
- value={`${person.name}-${person.id}`}
754
- onSelect={() => {
755
- onChange(Number(person.id), person.name);
756
- setSelectedPersonLabel(person.name);
757
- setPersonOpen(false);
758
- }}
759
- >
760
- {person.name}
761
- </CommandItem>
762
- ))}
763
- </CommandGroup>
764
- </CommandList>
765
- </Command>
766
- </PopoverContent>
767
- </Popover>
768
-
769
- {hasSelection ? (
770
- <Button
771
- type="button"
772
- variant="outline"
773
- size="icon"
774
- className="shrink-0"
775
- disabled={disabled}
776
- onClick={() => {
777
- onChange(null, '');
778
- setPersonSearch('');
779
- setSelectedPersonLabel('');
780
- setPersonOpen(false);
781
- }}
782
- aria-label={t('actions.clearSelection')}
783
- >
784
- <X className="h-4 w-4" />
785
- </Button>
786
- ) : null}
787
-
788
- <Button
789
- type="button"
790
- variant="outline"
791
- size="icon"
792
- className="shrink-0"
793
- disabled={disabled}
794
- onClick={(event) => {
795
- captureParentScrollPosition(event.currentTarget);
796
- setPersonOpen(false);
797
- setCreatePersonOpen(true);
798
- }}
799
- aria-label={t('actions.createEntityAria', { entityLabel })}
800
- >
801
- <Plus className="h-4 w-4" />
802
- </Button>
803
- </div>
804
- </div>
805
-
806
- <CreatePersonSheet
807
- open={createPersonOpen}
808
- onOpenChange={(nextOpen) => {
809
- setCreatePersonOpen(nextOpen);
810
- if (!nextOpen) {
811
- restoreParentScrollPosition();
812
- }
813
- }}
814
- entityLabel={entityLabel}
815
- defaultCreateType={createType}
816
- lockCreateType={lockCreateType}
817
- onCreated={(person) => {
818
- onChange(Number(person.id), person.name);
819
- setSelectedPersonLabel(person.name);
820
- setPersonSearch(person.name);
821
- setCreatePersonOpen(false);
822
- }}
823
- />
824
- </>
825
- );
826
- }
1
+ export { PersonPicker as PersonSelectWithCreate } from '../../contact/_components/person-picker';