@hed-hog/operations 0.0.327 → 0.0.329

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 (571) hide show
  1. package/dist/controllers/operations-tasks.controller.d.ts +3 -3
  2. package/dist/operations.service.d.ts +3 -3
  3. package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +7 -7
  4. package/hedhog/frontend/app/_components/department-picker.tsx.ejs +125 -0
  5. package/hedhog/frontend/app/_components/department-select-with-create.tsx.ejs +64 -325
  6. package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +16 -16
  7. package/hedhog/frontend/app/_components/system-user-picker.tsx.ejs +198 -0
  8. package/hedhog/frontend/app/_components/system-user-select-with-create.tsx.ejs +107 -569
  9. package/hedhog/frontend/messages/en.json +79 -10
  10. package/hedhog/frontend/messages/operations/en.json +67 -3
  11. package/hedhog/frontend/messages/operations/pt.json +67 -3
  12. package/hedhog/frontend/messages/pt.json +77 -8
  13. package/package.json +5 -5
  14. package/hedhog/frontend/app/_components/collaborator-details-screen.tsx.ejs +0 -476
  15. package/hedhog/frontend/app/_components/collaborator-select-with-create.tsx.ejs +0 -261
  16. package/hedhog/frontend/app/_components/contract-content-editor.tsx.ejs +0 -258
  17. package/hedhog/frontend/app/_components/person-select-with-create.tsx.ejs +0 -1
  18. package/hedhog/frontend/messages/en.json.ejs +0 -2060
  19. package/hedhog/frontend/messages/operations/operations/en.json +0 -2102
  20. package/hedhog/frontend/messages/operations/operations/pt.json +0 -2111
  21. package/hedhog/frontend/messages/pt.json.ejs +0 -2067
  22. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/async-options-combobox.d.ts +0 -29
  23. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/async-options-combobox.d.ts.map +0 -1
  24. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/async-options-combobox.js +0 -95
  25. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/async-options-combobox.js.map +0 -1
  26. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/async-options-combobox.tsx +0 -233
  27. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-costs-section.d.ts +0 -10
  28. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-costs-section.d.ts.map +0 -1
  29. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-costs-section.js +0 -577
  30. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-costs-section.js.map +0 -1
  31. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-costs-section.tsx +0 -868
  32. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-details-screen.d.ts +0 -4
  33. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-details-screen.d.ts.map +0 -1
  34. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-details-screen.js +0 -337
  35. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-details-screen.js.map +0 -1
  36. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-details-screen.tsx +0 -476
  37. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-form-screen.d.ts +0 -9
  38. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-form-screen.d.ts.map +0 -1
  39. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-form-screen.js +0 -1348
  40. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-form-screen.js.map +0 -1
  41. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-form-screen.tsx +0 -2233
  42. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-select-with-create.d.ts +0 -12
  43. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-select-with-create.d.ts.map +0 -1
  44. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-select-with-create.js +0 -162
  45. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-select-with-create.js.map +0 -1
  46. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/collaborator-select-with-create.tsx +0 -261
  47. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-content-editor.d.ts +0 -18
  48. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-content-editor.d.ts.map +0 -1
  49. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-content-editor.js +0 -145
  50. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-content-editor.js.map +0 -1
  51. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-content-editor.tsx +0 -258
  52. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-details-screen.d.ts +0 -4
  53. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-details-screen.d.ts.map +0 -1
  54. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-details-screen.js +0 -223
  55. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-details-screen.js.map +0 -1
  56. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-details-screen.tsx +0 -342
  57. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-form-screen.d.ts +0 -58
  58. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-form-screen.d.ts.map +0 -1
  59. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-form-screen.js +0 -438
  60. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-form-screen.js.map +0 -1
  61. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/contract-form-screen.tsx +0 -698
  62. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/department-select-with-create.d.ts +0 -20
  63. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/department-select-with-create.d.ts.map +0 -1
  64. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/department-select-with-create.js +0 -233
  65. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/department-select-with-create.js.map +0 -1
  66. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/department-select-with-create.tsx +0 -392
  67. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/my-project-summary-screen.d.ts +0 -4
  68. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/my-project-summary-screen.d.ts.map +0 -1
  69. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/my-project-summary-screen.js +0 -814
  70. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/my-project-summary-screen.js.map +0 -1
  71. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/my-project-summary-screen.tsx +0 -1288
  72. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-calendar-view.d.ts +0 -21
  73. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-calendar-view.d.ts.map +0 -1
  74. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-calendar-view.js +0 -174
  75. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-calendar-view.js.map +0 -1
  76. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-calendar-view.tsx +0 -306
  77. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-header.d.ts +0 -10
  78. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-header.d.ts.map +0 -1
  79. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-header.js +0 -12
  80. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-header.js.map +0 -1
  81. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/operations-header.tsx +0 -29
  82. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/person-select-with-create.d.ts +0 -15
  83. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/person-select-with-create.d.ts.map +0 -1
  84. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/person-select-with-create.js +0 -501
  85. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/person-select-with-create.js.map +0 -1
  86. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/person-select-with-create.tsx +0 -853
  87. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-costs-section.d.ts +0 -6
  88. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-costs-section.d.ts.map +0 -1
  89. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-costs-section.js +0 -847
  90. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-costs-section.js.map +0 -1
  91. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-costs-section.tsx +0 -1340
  92. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-details-screen.d.ts +0 -4
  93. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-details-screen.d.ts.map +0 -1
  94. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-details-screen.js +0 -2930
  95. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-details-screen.js.map +0 -1
  96. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-details-screen.tsx +0 -4378
  97. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-form-screen.d.ts +0 -9
  98. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-form-screen.d.ts.map +0 -1
  99. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-form-screen.js +0 -1013
  100. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-form-screen.js.map +0 -1
  101. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/project-form-screen.tsx +0 -1745
  102. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/section-card.d.ts +0 -13
  103. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/section-card.d.ts.map +0 -1
  104. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/section-card.js +0 -38
  105. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/section-card.js.map +0 -1
  106. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/section-card.tsx +0 -74
  107. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/status-badge.d.ts +0 -7
  108. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/status-badge.d.ts.map +0 -1
  109. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/status-badge.js +0 -11
  110. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/status-badge.js.map +0 -1
  111. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/status-badge.tsx +0 -15
  112. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/system-user-select-with-create.d.ts +0 -18
  113. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/system-user-select-with-create.d.ts.map +0 -1
  114. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/system-user-select-with-create.js +0 -406
  115. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/system-user-select-with-create.js.map +0 -1
  116. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/system-user-select-with-create.tsx +0 -660
  117. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-detail-sheet.d.ts +0 -26
  118. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-detail-sheet.d.ts.map +0 -1
  119. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-detail-sheet.js +0 -332
  120. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-detail-sheet.js.map +0 -1
  121. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-detail-sheet.tsx +0 -518
  122. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-file-attachments.d.ts +0 -6
  123. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-file-attachments.d.ts.map +0 -1
  124. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-file-attachments.js +0 -255
  125. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-file-attachments.js.map +0 -1
  126. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/task-file-attachments.tsx +0 -388
  127. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/timesheet-task-create-sheet.d.ts +0 -10
  128. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/timesheet-task-create-sheet.d.ts.map +0 -1
  129. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/timesheet-task-create-sheet.js +0 -131
  130. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/timesheet-task-create-sheet.js.map +0 -1
  131. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_components/timesheet-task-create-sheet.tsx +0 -214
  132. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/api.d.ts +0 -108
  133. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/api.d.ts.map +0 -1
  134. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/api.js +0 -162
  135. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/api.js.map +0 -1
  136. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/api.ts +0 -428
  137. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/hooks/use-operations-access.d.ts +0 -8
  138. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/hooks/use-operations-access.d.ts.map +0 -1
  139. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/hooks/use-operations-access.js +0 -36
  140. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/hooks/use-operations-access.js.map +0 -1
  141. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/hooks/use-operations-access.ts +0 -44
  142. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/types.d.ts +0 -837
  143. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/types.d.ts.map +0 -1
  144. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/types.js +0 -3
  145. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/types.js.map +0 -1
  146. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/types.ts +0 -861
  147. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/format.d.ts +0 -16
  148. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/format.d.ts.map +0 -1
  149. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/format.js +0 -182
  150. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/format.js.map +0 -1
  151. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/format.ts +0 -250
  152. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/forms.d.ts +0 -4
  153. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/forms.d.ts.map +0 -1
  154. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/forms.js +0 -51
  155. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/forms.js.map +0 -1
  156. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/utils/forms.ts +0 -61
  157. package/hedhog/frontend/src/app/(app)/(libraries)/operations/approvals/page.d.ts +0 -2
  158. package/hedhog/frontend/src/app/(app)/(libraries)/operations/approvals/page.d.ts.map +0 -1
  159. package/hedhog/frontend/src/app/(app)/(libraries)/operations/approvals/page.js +0 -954
  160. package/hedhog/frontend/src/app/(app)/(libraries)/operations/approvals/page.js.map +0 -1
  161. package/hedhog/frontend/src/app/(app)/(libraries)/operations/approvals/page.tsx +0 -1277
  162. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborator-types/page.d.ts +0 -2
  163. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborator-types/page.d.ts.map +0 -1
  164. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborator-types/page.js +0 -488
  165. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborator-types/page.js.map +0 -1
  166. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborator-types/page.tsx +0 -805
  167. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/edit/page.d.ts +0 -6
  168. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/edit/page.d.ts.map +0 -1
  169. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/edit/page.js +0 -9
  170. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/edit/page.js.map +0 -1
  171. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/edit/page.tsx +0 -11
  172. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/page.d.ts +0 -6
  173. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/page.d.ts.map +0 -1
  174. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/page.js +0 -9
  175. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/page.js.map +0 -1
  176. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/[id]/page.tsx +0 -11
  177. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/new/page.d.ts +0 -2
  178. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/new/page.d.ts.map +0 -1
  179. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/new/page.js +0 -8
  180. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/new/page.js.map +0 -1
  181. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/new/page.tsx +0 -5
  182. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/page.d.ts +0 -2
  183. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/page.d.ts.map +0 -1
  184. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/page.js +0 -612
  185. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/page.js.map +0 -1
  186. package/hedhog/frontend/src/app/(app)/(libraries)/operations/collaborators/page.tsx +0 -939
  187. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/edit/page.d.ts +0 -6
  188. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/edit/page.d.ts.map +0 -1
  189. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/edit/page.js +0 -9
  190. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/edit/page.js.map +0 -1
  191. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/edit/page.tsx +0 -11
  192. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/page.d.ts +0 -6
  193. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/page.d.ts.map +0 -1
  194. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/page.js +0 -9
  195. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/page.js.map +0 -1
  196. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/[id]/page.tsx +0 -11
  197. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/new/page.d.ts +0 -6
  198. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/new/page.d.ts.map +0 -1
  199. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/new/page.js +0 -9
  200. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/new/page.js.map +0 -1
  201. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/new/page.tsx +0 -17
  202. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/page.d.ts +0 -2
  203. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/page.d.ts.map +0 -1
  204. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/page.js +0 -348
  205. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/page.js.map +0 -1
  206. package/hedhog/frontend/src/app/(app)/(libraries)/operations/contracts/page.tsx +0 -536
  207. package/hedhog/frontend/src/app/(app)/(libraries)/operations/departments/page.d.ts +0 -2
  208. package/hedhog/frontend/src/app/(app)/(libraries)/operations/departments/page.d.ts.map +0 -1
  209. package/hedhog/frontend/src/app/(app)/(libraries)/operations/departments/page.js +0 -401
  210. package/hedhog/frontend/src/app/(app)/(libraries)/operations/departments/page.js.map +0 -1
  211. package/hedhog/frontend/src/app/(app)/(libraries)/operations/departments/page.tsx +0 -607
  212. package/hedhog/frontend/src/app/(app)/(libraries)/operations/layout.d.ts +0 -5
  213. package/hedhog/frontend/src/app/(app)/(libraries)/operations/layout.d.ts.map +0 -1
  214. package/hedhog/frontend/src/app/(app)/(libraries)/operations/layout.js +0 -7
  215. package/hedhog/frontend/src/app/(app)/(libraries)/operations/layout.js.map +0 -1
  216. package/hedhog/frontend/src/app/(app)/(libraries)/operations/layout.tsx +0 -9
  217. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/[id]/page.d.ts +0 -6
  218. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/[id]/page.d.ts.map +0 -1
  219. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/[id]/page.js +0 -9
  220. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/[id]/page.js.map +0 -1
  221. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/[id]/page.tsx +0 -11
  222. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/page.d.ts +0 -2
  223. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/page.d.ts.map +0 -1
  224. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/page.js +0 -321
  225. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/page.js.map +0 -1
  226. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-projects/page.tsx +0 -440
  227. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-tasks/page.d.ts +0 -2
  228. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-tasks/page.d.ts.map +0 -1
  229. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-tasks/page.js +0 -939
  230. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-tasks/page.js.map +0 -1
  231. package/hedhog/frontend/src/app/(app)/(libraries)/operations/my-tasks/page.tsx +0 -1499
  232. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/async-options-combobox.d.ts +0 -29
  233. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/async-options-combobox.d.ts.map +0 -1
  234. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/async-options-combobox.js +0 -95
  235. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/async-options-combobox.js.map +0 -1
  236. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/async-options-combobox.tsx +0 -233
  237. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-costs-section.d.ts +0 -10
  238. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-costs-section.d.ts.map +0 -1
  239. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-costs-section.js +0 -577
  240. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-costs-section.js.map +0 -1
  241. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-costs-section.tsx +0 -868
  242. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-details-screen.d.ts +0 -4
  243. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-details-screen.d.ts.map +0 -1
  244. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-details-screen.js +0 -337
  245. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-details-screen.js.map +0 -1
  246. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-details-screen.tsx +0 -476
  247. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-form-screen.d.ts +0 -9
  248. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-form-screen.d.ts.map +0 -1
  249. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-form-screen.js +0 -1348
  250. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-form-screen.js.map +0 -1
  251. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-form-screen.tsx +0 -2233
  252. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-select-with-create.d.ts +0 -12
  253. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-select-with-create.d.ts.map +0 -1
  254. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-select-with-create.js +0 -162
  255. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-select-with-create.js.map +0 -1
  256. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/collaborator-select-with-create.tsx +0 -261
  257. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-content-editor.d.ts +0 -18
  258. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-content-editor.d.ts.map +0 -1
  259. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-content-editor.js +0 -145
  260. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-content-editor.js.map +0 -1
  261. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-content-editor.tsx +0 -258
  262. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-details-screen.d.ts +0 -4
  263. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-details-screen.d.ts.map +0 -1
  264. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-details-screen.js +0 -223
  265. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-details-screen.js.map +0 -1
  266. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-details-screen.tsx +0 -342
  267. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-form-screen.d.ts +0 -58
  268. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-form-screen.d.ts.map +0 -1
  269. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-form-screen.js +0 -438
  270. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-form-screen.js.map +0 -1
  271. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/contract-form-screen.tsx +0 -698
  272. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/department-select-with-create.d.ts +0 -20
  273. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/department-select-with-create.d.ts.map +0 -1
  274. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/department-select-with-create.js +0 -233
  275. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/department-select-with-create.js.map +0 -1
  276. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/department-select-with-create.tsx +0 -392
  277. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/my-project-summary-screen.d.ts +0 -4
  278. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/my-project-summary-screen.d.ts.map +0 -1
  279. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/my-project-summary-screen.js +0 -814
  280. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/my-project-summary-screen.js.map +0 -1
  281. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/my-project-summary-screen.tsx +0 -1288
  282. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-calendar-view.d.ts +0 -21
  283. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-calendar-view.d.ts.map +0 -1
  284. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-calendar-view.js +0 -174
  285. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-calendar-view.js.map +0 -1
  286. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-calendar-view.tsx +0 -306
  287. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-header.d.ts +0 -10
  288. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-header.d.ts.map +0 -1
  289. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-header.js +0 -12
  290. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-header.js.map +0 -1
  291. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/operations-header.tsx +0 -29
  292. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/person-select-with-create.d.ts +0 -15
  293. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/person-select-with-create.d.ts.map +0 -1
  294. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/person-select-with-create.js +0 -501
  295. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/person-select-with-create.js.map +0 -1
  296. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/person-select-with-create.tsx +0 -853
  297. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-cost-report-screen.d.ts +0 -6
  298. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-cost-report-screen.d.ts.map +0 -1
  299. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-cost-report-screen.js +0 -459
  300. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-cost-report-screen.js.map +0 -1
  301. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-cost-report-screen.tsx +0 -598
  302. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-costs-section.d.ts +0 -6
  303. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-costs-section.d.ts.map +0 -1
  304. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-costs-section.js +0 -876
  305. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-costs-section.js.map +0 -1
  306. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-costs-section.tsx +0 -1368
  307. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-details-screen.d.ts +0 -4
  308. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-details-screen.d.ts.map +0 -1
  309. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-details-screen.js +0 -2930
  310. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-details-screen.js.map +0 -1
  311. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-details-screen.tsx +0 -4378
  312. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-form-screen.d.ts +0 -9
  313. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-form-screen.d.ts.map +0 -1
  314. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-form-screen.js +0 -1013
  315. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-form-screen.js.map +0 -1
  316. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/project-form-screen.tsx +0 -1745
  317. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/section-card.d.ts +0 -13
  318. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/section-card.d.ts.map +0 -1
  319. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/section-card.js +0 -38
  320. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/section-card.js.map +0 -1
  321. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/section-card.tsx +0 -74
  322. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/status-badge.d.ts +0 -7
  323. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/status-badge.d.ts.map +0 -1
  324. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/status-badge.js +0 -11
  325. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/status-badge.js.map +0 -1
  326. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/status-badge.tsx +0 -15
  327. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/system-user-select-with-create.d.ts +0 -18
  328. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/system-user-select-with-create.d.ts.map +0 -1
  329. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/system-user-select-with-create.js +0 -406
  330. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/system-user-select-with-create.js.map +0 -1
  331. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/system-user-select-with-create.tsx +0 -660
  332. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-detail-sheet.d.ts +0 -26
  333. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-detail-sheet.d.ts.map +0 -1
  334. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-detail-sheet.js +0 -332
  335. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-detail-sheet.js.map +0 -1
  336. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-detail-sheet.tsx +0 -518
  337. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-file-attachments.d.ts +0 -6
  338. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-file-attachments.d.ts.map +0 -1
  339. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-file-attachments.js +0 -255
  340. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-file-attachments.js.map +0 -1
  341. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/task-file-attachments.tsx +0 -388
  342. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/timesheet-task-create-sheet.d.ts +0 -10
  343. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/timesheet-task-create-sheet.d.ts.map +0 -1
  344. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/timesheet-task-create-sheet.js +0 -131
  345. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/timesheet-task-create-sheet.js.map +0 -1
  346. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_components/timesheet-task-create-sheet.tsx +0 -214
  347. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/api.d.ts +0 -108
  348. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/api.d.ts.map +0 -1
  349. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/api.js +0 -162
  350. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/api.js.map +0 -1
  351. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/api.ts +0 -428
  352. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/hooks/use-operations-access.d.ts +0 -8
  353. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/hooks/use-operations-access.d.ts.map +0 -1
  354. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/hooks/use-operations-access.js +0 -36
  355. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/hooks/use-operations-access.js.map +0 -1
  356. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/hooks/use-operations-access.ts +0 -44
  357. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/types.d.ts +0 -837
  358. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/types.d.ts.map +0 -1
  359. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/types.js +0 -3
  360. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/types.js.map +0 -1
  361. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/types.ts +0 -861
  362. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/format.d.ts +0 -16
  363. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/format.d.ts.map +0 -1
  364. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/format.js +0 -182
  365. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/format.js.map +0 -1
  366. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/format.ts +0 -250
  367. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/forms.d.ts +0 -4
  368. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/forms.d.ts.map +0 -1
  369. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/forms.js +0 -51
  370. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/forms.js.map +0 -1
  371. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/utils/forms.ts +0 -61
  372. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/approvals/page.d.ts +0 -2
  373. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/approvals/page.d.ts.map +0 -1
  374. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/approvals/page.js +0 -954
  375. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/approvals/page.js.map +0 -1
  376. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/approvals/page.tsx +0 -1277
  377. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborator-types/page.d.ts +0 -2
  378. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborator-types/page.d.ts.map +0 -1
  379. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborator-types/page.js +0 -488
  380. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborator-types/page.js.map +0 -1
  381. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborator-types/page.tsx +0 -805
  382. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/edit/page.d.ts +0 -6
  383. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/edit/page.d.ts.map +0 -1
  384. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/edit/page.js +0 -9
  385. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/edit/page.js.map +0 -1
  386. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/edit/page.tsx +0 -11
  387. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/page.d.ts +0 -6
  388. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/page.d.ts.map +0 -1
  389. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/page.js +0 -9
  390. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/page.js.map +0 -1
  391. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/[id]/page.tsx +0 -11
  392. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/new/page.d.ts +0 -2
  393. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/new/page.d.ts.map +0 -1
  394. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/new/page.js +0 -8
  395. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/new/page.js.map +0 -1
  396. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/new/page.tsx +0 -5
  397. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/page.d.ts +0 -2
  398. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/page.d.ts.map +0 -1
  399. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/page.js +0 -612
  400. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/page.js.map +0 -1
  401. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/collaborators/page.tsx +0 -939
  402. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/edit/page.d.ts +0 -6
  403. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/edit/page.d.ts.map +0 -1
  404. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/edit/page.js +0 -9
  405. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/edit/page.js.map +0 -1
  406. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/edit/page.tsx +0 -11
  407. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/page.d.ts +0 -6
  408. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/page.d.ts.map +0 -1
  409. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/page.js +0 -9
  410. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/page.js.map +0 -1
  411. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/[id]/page.tsx +0 -11
  412. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/new/page.d.ts +0 -6
  413. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/new/page.d.ts.map +0 -1
  414. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/new/page.js +0 -9
  415. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/new/page.js.map +0 -1
  416. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/new/page.tsx +0 -17
  417. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/page.d.ts +0 -2
  418. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/page.d.ts.map +0 -1
  419. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/page.js +0 -348
  420. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/page.js.map +0 -1
  421. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/contracts/page.tsx +0 -536
  422. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/departments/page.d.ts +0 -2
  423. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/departments/page.d.ts.map +0 -1
  424. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/departments/page.js +0 -401
  425. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/departments/page.js.map +0 -1
  426. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/departments/page.tsx +0 -607
  427. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/layout.d.ts +0 -5
  428. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/layout.d.ts.map +0 -1
  429. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/layout.js +0 -7
  430. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/layout.js.map +0 -1
  431. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/layout.tsx +0 -9
  432. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/[id]/page.d.ts +0 -6
  433. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/[id]/page.d.ts.map +0 -1
  434. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/[id]/page.js +0 -9
  435. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/[id]/page.js.map +0 -1
  436. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/[id]/page.tsx +0 -11
  437. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/page.d.ts +0 -2
  438. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/page.d.ts.map +0 -1
  439. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/page.js +0 -321
  440. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/page.js.map +0 -1
  441. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-projects/page.tsx +0 -440
  442. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-tasks/page.d.ts +0 -2
  443. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-tasks/page.d.ts.map +0 -1
  444. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-tasks/page.js +0 -939
  445. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-tasks/page.js.map +0 -1
  446. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/my-tasks/page.tsx +0 -1499
  447. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/page.d.ts +0 -2
  448. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/page.d.ts.map +0 -1
  449. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/page.js +0 -8
  450. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/page.js.map +0 -1
  451. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/page.tsx +0 -5
  452. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-categories/page.d.ts +0 -2
  453. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-categories/page.d.ts.map +0 -1
  454. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-categories/page.js +0 -436
  455. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-categories/page.js.map +0 -1
  456. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-categories/page.tsx +0 -675
  457. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-types/page.d.ts +0 -2
  458. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-types/page.d.ts.map +0 -1
  459. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-types/page.js +0 -563
  460. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-types/page.js.map +0 -1
  461. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/project-cost-types/page.tsx +0 -846
  462. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/costs-report/page.d.ts +0 -6
  463. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/costs-report/page.d.ts.map +0 -1
  464. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/costs-report/page.js +0 -9
  465. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/costs-report/page.js.map +0 -1
  466. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/costs-report/page.tsx +0 -10
  467. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/edit/page.d.ts +0 -6
  468. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/edit/page.d.ts.map +0 -1
  469. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/edit/page.js +0 -9
  470. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/edit/page.js.map +0 -1
  471. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/edit/page.tsx +0 -11
  472. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/page.d.ts +0 -6
  473. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/page.d.ts.map +0 -1
  474. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/page.js +0 -9
  475. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/page.js.map +0 -1
  476. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/[id]/page.tsx +0 -11
  477. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/new/page.d.ts +0 -2
  478. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/new/page.d.ts.map +0 -1
  479. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/new/page.js +0 -8
  480. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/new/page.js.map +0 -1
  481. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/new/page.tsx +0 -5
  482. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/page.d.ts +0 -2
  483. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/page.d.ts.map +0 -1
  484. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/page.js +0 -492
  485. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/page.js.map +0 -1
  486. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/projects/page.tsx +0 -757
  487. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/collaborators/page.d.ts +0 -2
  488. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/collaborators/page.d.ts.map +0 -1
  489. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/collaborators/page.js +0 -342
  490. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/collaborators/page.js.map +0 -1
  491. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/collaborators/page.tsx +0 -430
  492. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/projects/page.d.ts +0 -2
  493. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/projects/page.d.ts.map +0 -1
  494. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/projects/page.js +0 -338
  495. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/projects/page.js.map +0 -1
  496. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/reports/projects/page.tsx +0 -428
  497. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/schedule-adjustments/page.d.ts +0 -2
  498. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/schedule-adjustments/page.d.ts.map +0 -1
  499. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/schedule-adjustments/page.js +0 -660
  500. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/schedule-adjustments/page.js.map +0 -1
  501. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/schedule-adjustments/page.tsx +0 -992
  502. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/time-off/page.d.ts +0 -2
  503. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/time-off/page.d.ts.map +0 -1
  504. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/time-off/page.js +0 -515
  505. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/time-off/page.js.map +0 -1
  506. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/time-off/page.tsx +0 -707
  507. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/timesheets/page.d.ts +0 -2
  508. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/timesheets/page.d.ts.map +0 -1
  509. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/timesheets/page.js +0 -1141
  510. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/timesheets/page.js.map +0 -1
  511. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/timesheets/page.tsx +0 -1705
  512. package/hedhog/frontend/src/app/(app)/(libraries)/operations/page.d.ts +0 -2
  513. package/hedhog/frontend/src/app/(app)/(libraries)/operations/page.d.ts.map +0 -1
  514. package/hedhog/frontend/src/app/(app)/(libraries)/operations/page.js +0 -8
  515. package/hedhog/frontend/src/app/(app)/(libraries)/operations/page.js.map +0 -1
  516. package/hedhog/frontend/src/app/(app)/(libraries)/operations/page.tsx +0 -5
  517. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-categories/page.d.ts +0 -2
  518. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-categories/page.d.ts.map +0 -1
  519. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-categories/page.js +0 -436
  520. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-categories/page.js.map +0 -1
  521. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-categories/page.tsx +0 -675
  522. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-types/page.d.ts +0 -2
  523. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-types/page.d.ts.map +0 -1
  524. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-types/page.js +0 -563
  525. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-types/page.js.map +0 -1
  526. package/hedhog/frontend/src/app/(app)/(libraries)/operations/project-cost-types/page.tsx +0 -846
  527. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/edit/page.d.ts +0 -6
  528. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/edit/page.d.ts.map +0 -1
  529. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/edit/page.js +0 -9
  530. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/edit/page.js.map +0 -1
  531. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/edit/page.tsx +0 -11
  532. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/page.d.ts +0 -6
  533. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/page.d.ts.map +0 -1
  534. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/page.js +0 -9
  535. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/page.js.map +0 -1
  536. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/[id]/page.tsx +0 -11
  537. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/new/page.d.ts +0 -2
  538. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/new/page.d.ts.map +0 -1
  539. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/new/page.js +0 -8
  540. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/new/page.js.map +0 -1
  541. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/new/page.tsx +0 -5
  542. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/page.d.ts +0 -2
  543. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/page.d.ts.map +0 -1
  544. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/page.js +0 -492
  545. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/page.js.map +0 -1
  546. package/hedhog/frontend/src/app/(app)/(libraries)/operations/projects/page.tsx +0 -757
  547. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/collaborators/page.d.ts +0 -2
  548. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/collaborators/page.d.ts.map +0 -1
  549. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/collaborators/page.js +0 -342
  550. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/collaborators/page.js.map +0 -1
  551. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/collaborators/page.tsx +0 -430
  552. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/projects/page.d.ts +0 -2
  553. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/projects/page.d.ts.map +0 -1
  554. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/projects/page.js +0 -338
  555. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/projects/page.js.map +0 -1
  556. package/hedhog/frontend/src/app/(app)/(libraries)/operations/reports/projects/page.tsx +0 -428
  557. package/hedhog/frontend/src/app/(app)/(libraries)/operations/schedule-adjustments/page.d.ts +0 -2
  558. package/hedhog/frontend/src/app/(app)/(libraries)/operations/schedule-adjustments/page.d.ts.map +0 -1
  559. package/hedhog/frontend/src/app/(app)/(libraries)/operations/schedule-adjustments/page.js +0 -660
  560. package/hedhog/frontend/src/app/(app)/(libraries)/operations/schedule-adjustments/page.js.map +0 -1
  561. package/hedhog/frontend/src/app/(app)/(libraries)/operations/schedule-adjustments/page.tsx +0 -992
  562. package/hedhog/frontend/src/app/(app)/(libraries)/operations/time-off/page.d.ts +0 -2
  563. package/hedhog/frontend/src/app/(app)/(libraries)/operations/time-off/page.d.ts.map +0 -1
  564. package/hedhog/frontend/src/app/(app)/(libraries)/operations/time-off/page.js +0 -515
  565. package/hedhog/frontend/src/app/(app)/(libraries)/operations/time-off/page.js.map +0 -1
  566. package/hedhog/frontend/src/app/(app)/(libraries)/operations/time-off/page.tsx +0 -707
  567. package/hedhog/frontend/src/app/(app)/(libraries)/operations/timesheets/page.d.ts +0 -2
  568. package/hedhog/frontend/src/app/(app)/(libraries)/operations/timesheets/page.d.ts.map +0 -1
  569. package/hedhog/frontend/src/app/(app)/(libraries)/operations/timesheets/page.js +0 -1141
  570. package/hedhog/frontend/src/app/(app)/(libraries)/operations/timesheets/page.js.map +0 -1
  571. package/hedhog/frontend/src/app/(app)/(libraries)/operations/timesheets/page.tsx +0 -1705
@@ -1,1013 +0,0 @@
1
- "use strict";
2
- 'use client';
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ProjectFormScreen = ProjectFormScreen;
8
- const entity_list_1 = require("@/components/entity-list");
9
- const avatar_1 = require("@/components/ui/avatar");
10
- const button_1 = require("@/components/ui/button");
11
- const checkbox_1 = require("@/components/ui/checkbox");
12
- const command_1 = require("@/components/ui/command");
13
- const form_1 = require("@/components/ui/form");
14
- const form_actions_1 = require("@/components/ui/form-actions");
15
- const input_1 = require("@/components/ui/input");
16
- const input_money_1 = require("@/components/ui/input-money");
17
- const label_1 = require("@/components/ui/label");
18
- const popover_1 = require("@/components/ui/popover");
19
- const select_1 = require("@/components/ui/select");
20
- const sheet_1 = require("@/components/ui/sheet");
21
- const textarea_1 = require("@/components/ui/textarea");
22
- const tooltip_1 = require("@/components/ui/tooltip");
23
- const next_app_provider_1 = require("@hed-hog/next-app-provider");
24
- const zod_1 = require("@hookform/resolvers/zod");
25
- const lucide_react_1 = require("lucide-react");
26
- const next_intl_1 = require("next-intl");
27
- const link_1 = __importDefault(require("next/link"));
28
- const navigation_1 = require("next/navigation");
29
- const react_1 = require("react");
30
- const react_hook_form_1 = require("react-hook-form");
31
- const zod_2 = require("zod");
32
- const api_1 = require("../_lib/api");
33
- const use_operations_access_1 = require("../_lib/hooks/use-operations-access");
34
- const format_1 = require("../_lib/utils/format");
35
- const forms_1 = require("../_lib/utils/forms");
36
- const contract_form_screen_1 = require("./contract-form-screen");
37
- const department_select_with_create_1 = require("./department-select-with-create");
38
- const operations_header_1 = require("./operations-header");
39
- const person_select_with_create_1 = require("./person-select-with-create");
40
- const OPTION_PAGE_SIZE = 12;
41
- function generateProjectCode(name) {
42
- const words = name.trim().split(/\s+/).filter(Boolean);
43
- if (words.length === 0)
44
- return '';
45
- if (words.length === 1)
46
- return words[0].slice(0, 5).toUpperCase();
47
- return words
48
- .map((w) => w[0].toUpperCase())
49
- .join('')
50
- .slice(0, 6);
51
- }
52
- function normalizeDateInputValue(value) {
53
- if (!value) {
54
- return '';
55
- }
56
- const normalizedValue = String(value).trim();
57
- if (!normalizedValue) {
58
- return '';
59
- }
60
- const directMatch = normalizedValue.match(/^\d{4}-\d{2}-\d{2}/);
61
- if (directMatch === null || directMatch === void 0 ? void 0 : directMatch[0]) {
62
- return directMatch[0];
63
- }
64
- const parsedDate = new Date(normalizedValue);
65
- if (Number.isNaN(parsedDate.getTime())) {
66
- return normalizedValue;
67
- }
68
- return parsedDate.toISOString().slice(0, 10);
69
- }
70
- function buildEmptyForm(collaborators = []) {
71
- return {
72
- contractId: 'none',
73
- managerCollaboratorId: 'none',
74
- code: '',
75
- name: '',
76
- clientName: '',
77
- summary: '',
78
- status: 'planning',
79
- progressPercent: '',
80
- deliveryModel: 'project_delivery',
81
- budgetAmount: '',
82
- startDate: '',
83
- endDate: '',
84
- billingModel: 'time_and_material',
85
- monthlyHourCap: '',
86
- contractCode: '',
87
- contractName: '',
88
- contractDescription: '',
89
- teamAssignments: collaborators.map((collaborator) => ({
90
- collaboratorId: collaborator.id,
91
- selected: false,
92
- projectRoleId: 'none',
93
- roleLabel: '',
94
- weeklyHours: '',
95
- allocationPercent: '',
96
- status: 'active',
97
- startDate: new Date().toISOString().split('T')[0],
98
- endDate: '',
99
- })),
100
- };
101
- }
102
- function toFormState(project, collaborators) {
103
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
104
- const collaboratorOptions = collaborators.length > 0
105
- ? collaborators
106
- : ((_a = project.assignments) !== null && _a !== void 0 ? _a : []).map((assignment) => ({
107
- id: assignment.collaboratorId,
108
- code: '',
109
- displayName: assignment.collaboratorName,
110
- department: null,
111
- title: null,
112
- status: 'active',
113
- }));
114
- const assignments = new Map(((_b = project.assignments) !== null && _b !== void 0 ? _b : []).map((assignment) => [
115
- assignment.collaboratorId,
116
- assignment,
117
- ]));
118
- return {
119
- contractId: ((_c = project.relatedContract) === null || _c === void 0 ? void 0 : _c.id)
120
- ? String(project.relatedContract.id)
121
- : 'none',
122
- managerCollaboratorId: project.managerCollaboratorId
123
- ? String(project.managerCollaboratorId)
124
- : 'none',
125
- code: (_d = project.code) !== null && _d !== void 0 ? _d : '',
126
- name: (_e = project.name) !== null && _e !== void 0 ? _e : '',
127
- clientName: (_f = project.clientName) !== null && _f !== void 0 ? _f : '',
128
- summary: (_g = project.summary) !== null && _g !== void 0 ? _g : '',
129
- status: (_h = project.status) !== null && _h !== void 0 ? _h : 'planning',
130
- progressPercent: project.progressPercent !== null && project.progressPercent !== undefined
131
- ? String(project.progressPercent)
132
- : '',
133
- deliveryModel: (_j = project.deliveryModel) !== null && _j !== void 0 ? _j : 'project_delivery',
134
- budgetAmount: project.budgetAmount !== null && project.budgetAmount !== undefined
135
- ? String(project.budgetAmount)
136
- : '',
137
- startDate: normalizeDateInputValue(project.startDate),
138
- endDate: normalizeDateInputValue(project.endDate),
139
- billingModel: (_l = (_k = project.relatedContract) === null || _k === void 0 ? void 0 : _k.billingModel) !== null && _l !== void 0 ? _l : 'time_and_material',
140
- monthlyHourCap: ((_m = project.relatedContract) === null || _m === void 0 ? void 0 : _m.monthlyHourCap) !== null &&
141
- ((_o = project.relatedContract) === null || _o === void 0 ? void 0 : _o.monthlyHourCap) !== undefined
142
- ? String(project.relatedContract.monthlyHourCap)
143
- : '',
144
- contractCode: (_q = (_p = project.relatedContract) === null || _p === void 0 ? void 0 : _p.code) !== null && _q !== void 0 ? _q : '',
145
- contractName: (_s = (_r = project.relatedContract) === null || _r === void 0 ? void 0 : _r.name) !== null && _s !== void 0 ? _s : '',
146
- contractDescription: (_u = (_t = project.relatedContract) === null || _t === void 0 ? void 0 : _t.description) !== null && _u !== void 0 ? _u : '',
147
- teamAssignments: collaboratorOptions.map((collaborator) => {
148
- var _a, _b;
149
- const assignment = assignments.get(collaborator.id);
150
- return {
151
- collaboratorId: collaborator.id,
152
- selected: Boolean(assignment),
153
- projectRoleId: (assignment === null || assignment === void 0 ? void 0 : assignment.projectRoleId)
154
- ? String(assignment.projectRoleId)
155
- : 'none',
156
- roleLabel: (_a = assignment === null || assignment === void 0 ? void 0 : assignment.roleLabel) !== null && _a !== void 0 ? _a : '',
157
- weeklyHours: (assignment === null || assignment === void 0 ? void 0 : assignment.weeklyHours) !== null &&
158
- (assignment === null || assignment === void 0 ? void 0 : assignment.weeklyHours) !== undefined
159
- ? String(assignment.weeklyHours)
160
- : '',
161
- allocationPercent: (assignment === null || assignment === void 0 ? void 0 : assignment.allocationPercent) !== null &&
162
- (assignment === null || assignment === void 0 ? void 0 : assignment.allocationPercent) !== undefined
163
- ? String(assignment.allocationPercent)
164
- : '',
165
- status: (_b = assignment === null || assignment === void 0 ? void 0 : assignment.status) !== null && _b !== void 0 ? _b : 'active',
166
- startDate: normalizeDateInputValue(assignment === null || assignment === void 0 ? void 0 : assignment.startDate) || new Date().toISOString().split('T')[0],
167
- endDate: normalizeDateInputValue(assignment === null || assignment === void 0 ? void 0 : assignment.endDate),
168
- };
169
- }),
170
- };
171
- }
172
- function SearchableSelect({ label, value, options, placeholder, searchPlaceholder, emptyLabel, onChange, }) {
173
- var _a;
174
- const commonT = (0, next_intl_1.useTranslations)('operations.Common');
175
- const [open, setOpen] = (0, react_1.useState)(false);
176
- const [search, setSearch] = (0, react_1.useState)('');
177
- const [visibleCount, setVisibleCount] = (0, react_1.useState)(OPTION_PAGE_SIZE);
178
- const filteredOptions = (0, react_1.useMemo)(() => {
179
- const normalizedSearch = search.trim().toLowerCase();
180
- if (!normalizedSearch) {
181
- return options;
182
- }
183
- return options.filter((option) => [option.title, option.description]
184
- .filter(Boolean)
185
- .some((field) => String(field).toLowerCase().includes(normalizedSearch)));
186
- }, [options, search]);
187
- const selectedOption = options.find((option) => String(option.id) === value);
188
- const visibleOptions = filteredOptions.slice(0, visibleCount);
189
- return (<div className="grid gap-2">
190
- {label ? <label_1.Label>{label}</label_1.Label> : null}
191
-
192
- <popover_1.Popover open={open} onOpenChange={(nextOpen) => {
193
- setOpen(nextOpen);
194
- setVisibleCount(OPTION_PAGE_SIZE);
195
- if (!nextOpen) {
196
- setSearch('');
197
- }
198
- }}>
199
- <popover_1.PopoverTrigger asChild>
200
- <button_1.Button type="button" variant="outline" role="combobox" className="w-full justify-between overflow-hidden">
201
- <span className="truncate text-left">
202
- {(_a = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.title) !== null && _a !== void 0 ? _a : emptyLabel}
203
- </span>
204
- <lucide_react_1.ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50"/>
205
- </button_1.Button>
206
- </popover_1.PopoverTrigger>
207
- <popover_1.PopoverContent className="p-0" style={{ width: 'var(--radix-popover-trigger-width)' }}>
208
- <command_1.Command shouldFilter={false}>
209
- <command_1.CommandInput placeholder={searchPlaceholder} value={search} onValueChange={(nextValue) => {
210
- setSearch(nextValue);
211
- setVisibleCount(OPTION_PAGE_SIZE);
212
- }}/>
213
- <command_1.CommandList>
214
- <command_1.CommandEmpty>
215
- <div className="p-2 text-sm text-muted-foreground">
216
- {commonT('states.emptyDescription')}
217
- </div>
218
- </command_1.CommandEmpty>
219
-
220
- <command_1.CommandGroup>
221
- <command_1.CommandItem value="none" onSelect={() => {
222
- onChange('none');
223
- setOpen(false);
224
- }}>
225
- {value === 'none' ? (<lucide_react_1.Check className="mr-2 h-4 w-4"/>) : (<span className="mr-2 h-4 w-4"/>)}
226
- {placeholder}
227
- </command_1.CommandItem>
228
-
229
- {visibleOptions.map((option) => {
230
- var _a;
231
- return (<command_1.CommandItem key={option.id} value={`${option.title} ${(_a = option.description) !== null && _a !== void 0 ? _a : ''}`} onSelect={() => {
232
- onChange(String(option.id));
233
- setOpen(false);
234
- }}>
235
- {String(option.id) === value ? (<lucide_react_1.Check className="mr-2 h-4 w-4"/>) : (<span className="mr-2 h-4 w-4"/>)}
236
- {option.avatarUrl !== undefined ? (<avatar_1.Avatar className="mr-2 h-6 w-6 shrink-0">
237
- {option.avatarUrl ? (<avatar_1.AvatarImage src={option.avatarUrl} alt={option.title}/>) : null}
238
- <avatar_1.AvatarFallback className="text-[9px] font-medium">
239
- {option.title
240
- .trim()
241
- .split(' ')
242
- .filter(Boolean)
243
- .slice(0, 2)
244
- .map((w) => w[0].toUpperCase())
245
- .join('')}
246
- </avatar_1.AvatarFallback>
247
- </avatar_1.Avatar>) : null}
248
- <div className="min-w-0">
249
- <div className="truncate">{option.title}</div>
250
- {option.description ? (<div className="truncate text-xs text-muted-foreground">
251
- {option.description}
252
- </div>) : null}
253
- </div>
254
- </command_1.CommandItem>);
255
- })}
256
- </command_1.CommandGroup>
257
-
258
- {filteredOptions.length > visibleCount ? (<div className="border-t p-2">
259
- <button_1.Button type="button" variant="ghost" className="w-full" onClick={() => setVisibleCount((current) => current + OPTION_PAGE_SIZE)}>
260
- {commonT('actions.loadMore')}
261
- </button_1.Button>
262
- </div>) : null}
263
- </command_1.CommandList>
264
- </command_1.Command>
265
- </popover_1.PopoverContent>
266
- </popover_1.Popover>
267
- </div>);
268
- }
269
- function FieldLabel({ label, hint }) {
270
- return (<div className="flex items-center gap-1.5">
271
- <label_1.Label>{label}</label_1.Label>
272
- {hint ? (<tooltip_1.Tooltip>
273
- <tooltip_1.TooltipTrigger asChild>
274
- <span className="inline-flex cursor-help text-muted-foreground">
275
- <lucide_react_1.Info className="h-3.5 w-3.5"/>
276
- </span>
277
- </tooltip_1.TooltipTrigger>
278
- <tooltip_1.TooltipContent>
279
- <p>{hint}</p>
280
- </tooltip_1.TooltipContent>
281
- </tooltip_1.Tooltip>) : null}
282
- </div>);
283
- }
284
- function ContractSelectWithCreate({ value, contracts, label, selectPlaceholder, searchPlaceholder, onChange, onCreated, initialValues, }) {
285
- const commonT = (0, next_intl_1.useTranslations)('operations.Common');
286
- const contractT = (0, next_intl_1.useTranslations)('operations.ContractFormPage');
287
- const selectedContract = contracts.find((item) => String(item.id) === value);
288
- const hasSelection = value !== 'none';
289
- const [isCreateSheetOpen, setIsCreateSheetOpen] = (0, react_1.useState)(false);
290
- return (<>
291
- <div className="space-y-2">
292
- <div className="grid min-w-0 grid-cols-[minmax(0,1fr)_auto] gap-2 sm:grid-cols-[minmax(0,1fr)_auto_auto]">
293
- <SearchableSelect label={label} value={value} options={contracts.map((contract) => ({
294
- id: contract.id,
295
- title: contract.name ||
296
- contract.code ||
297
- commonT('labels.notAvailable'),
298
- description: [
299
- contract.code,
300
- contract.clientName,
301
- contractT.has(`options.contractTypes.${contract.contractType}`)
302
- ? contractT(`options.contractTypes.${contract.contractType}`)
303
- : (0, format_1.formatEnumLabel)(contract.contractType),
304
- ]
305
- .filter(Boolean)
306
- .join(' • '),
307
- }))} placeholder={selectPlaceholder} searchPlaceholder={searchPlaceholder} emptyLabel={commonT('labels.notAssigned')} onChange={onChange}/>
308
-
309
- {hasSelection ? (<button_1.Button type="button" variant="outline" size="icon" className="shrink-0" onClick={() => onChange('none')} aria-label={commonT('actions.clearSelection')}>
310
- <lucide_react_1.X className="size-4"/>
311
- </button_1.Button>) : null}
312
-
313
- <button_1.Button type="button" variant="outline" size="icon" className="shrink-0" onClick={() => setIsCreateSheetOpen(true)} aria-label={commonT('actions.create')}>
314
- <lucide_react_1.Plus className="size-4"/>
315
- </button_1.Button>
316
- </div>
317
-
318
- {selectedContract ? (<button_1.Button type="button" variant="outline" size="sm" asChild className="w-fit">
319
- <link_1.default href={`/operations/contracts?edit=${selectedContract.id}`}>
320
- <lucide_react_1.FileText className="size-4"/>
321
- {commonT('actions.openContract')}
322
- </link_1.default>
323
- </button_1.Button>) : null}
324
- </div>
325
-
326
- <sheet_1.Sheet open={isCreateSheetOpen} onOpenChange={setIsCreateSheetOpen}>
327
- <sheet_1.SheetContent className="w-full overflow-y-auto sm:max-w-7xl">
328
- <sheet_1.SheetHeader>
329
- <sheet_1.SheetTitle>{contractT('newTitle')}</sheet_1.SheetTitle>
330
- <sheet_1.SheetDescription>{contractT('description')}</sheet_1.SheetDescription>
331
- </sheet_1.SheetHeader>
332
-
333
- <contract_form_screen_1.ContractFormScreen initialValues={initialValues} onCancel={() => setIsCreateSheetOpen(false)} onSaved={async (contract) => {
334
- const createdContractId = (contract === null || contract === void 0 ? void 0 : contract.id)
335
- ? String(contract.id)
336
- : value;
337
- onChange(createdContractId);
338
- await (onCreated === null || onCreated === void 0 ? void 0 : onCreated(contract));
339
- setIsCreateSheetOpen(false);
340
- }}/>
341
- </sheet_1.SheetContent>
342
- </sheet_1.Sheet>
343
- </>);
344
- }
345
- function ProjectFormScreen({ projectId, onSaved, onCancel, }) {
346
- const t = (0, next_intl_1.useTranslations)('operations.ProjectFormPage');
347
- const commonT = (0, next_intl_1.useTranslations)('operations.Common');
348
- const contractT = (0, next_intl_1.useTranslations)('operations.ContractFormPage');
349
- const { request, showToastHandler, currentLocaleCode } = (0, next_app_provider_1.useApp)();
350
- const access = (0, use_operations_access_1.useOperationsAccess)();
351
- const router = (0, navigation_1.useRouter)();
352
- const [assignmentSearch, setAssignmentSearch] = (0, react_1.useState)('');
353
- const isSheetMode = Boolean(onCancel);
354
- const isCreateMode = !projectId;
355
- const [codeAutoMode, setCodeAutoMode] = (0, react_1.useState)(isCreateMode);
356
- const projectFormSchema = (0, react_1.useMemo)(() => zod_2.z.object({
357
- contractId: zod_2.z.string(),
358
- managerCollaboratorId: zod_2.z.string(),
359
- code: zod_2.z.string().trim().min(1, t('messages.requiredFields')),
360
- name: zod_2.z.string().trim().min(1, t('messages.requiredFields')),
361
- clientName: zod_2.z.string().trim().min(1, t('messages.requiredFields')),
362
- summary: zod_2.z.string(),
363
- status: zod_2.z.string(),
364
- progressPercent: zod_2.z
365
- .string()
366
- .refine((value) => !value ||
367
- (!Number.isNaN(Number(value)) &&
368
- Number(value) >= 0 &&
369
- Number(value) <= 100), t('hints.progressPercent')),
370
- deliveryModel: zod_2.z.string(),
371
- budgetAmount: zod_2.z.string(),
372
- startDate: zod_2.z.string(),
373
- endDate: zod_2.z.string(),
374
- billingModel: zod_2.z.string(),
375
- monthlyHourCap: zod_2.z.string(),
376
- contractCode: zod_2.z.string(),
377
- contractName: zod_2.z.string(),
378
- contractDescription: zod_2.z.string(),
379
- teamAssignments: zod_2.z
380
- .array(zod_2.z.object({
381
- collaboratorId: zod_2.z.number(),
382
- selected: zod_2.z.boolean(),
383
- projectRoleId: zod_2.z.string(),
384
- roleLabel: zod_2.z.string(),
385
- weeklyHours: zod_2.z.string(),
386
- allocationPercent: zod_2.z.string(),
387
- status: zod_2.z.string(),
388
- startDate: zod_2.z.string(),
389
- endDate: zod_2.z.string(),
390
- }))
391
- .superRefine((assignments, ctx) => {
392
- assignments.forEach((assignment, index) => {
393
- if (assignment.selected && !assignment.roleLabel.trim()) {
394
- ctx.addIssue({
395
- code: zod_2.z.ZodIssueCode.custom,
396
- message: t('messages.roleRequired'),
397
- path: [index, 'roleLabel'],
398
- });
399
- }
400
- });
401
- }),
402
- }), [t]);
403
- const formMethods = (0, react_hook_form_1.useForm)({
404
- resolver: (0, zod_1.zodResolver)(projectFormSchema),
405
- defaultValues: buildEmptyForm(),
406
- mode: 'onSubmit',
407
- reValidateMode: 'onChange',
408
- });
409
- const form = formMethods.watch();
410
- const setForm = (updater) => {
411
- const current = formMethods.getValues();
412
- const next = typeof updater === 'function' ? updater(current) : updater;
413
- formMethods.reset(next, {
414
- keepErrors: true,
415
- keepDirty: true,
416
- keepTouched: true,
417
- });
418
- };
419
- const { data: rawCollaborators } = (0, next_app_provider_1.useQuery)({
420
- queryKey: ['operations-project-form-collaborators', currentLocaleCode],
421
- enabled: access.isDirector,
422
- queryFn: () => (0, api_1.fetchOperations)(request, '/operations/collaborators'),
423
- });
424
- // Stable reference prevents the useEffect(reset, [collaborators, project]) from
425
- // re-running on every render while the query is still loading (undefined → [] new ref).
426
- const collaborators = (0, react_1.useMemo)(() => rawCollaborators !== null && rawCollaborators !== void 0 ? rawCollaborators : [], [rawCollaborators]);
427
- const { data: contracts = [], refetch: refetchContracts } = (0, next_app_provider_1.useQuery)({
428
- queryKey: ['operations-project-form-contracts', currentLocaleCode],
429
- enabled: access.isDirector,
430
- queryFn: () => (0, api_1.fetchOperations)(request, '/operations/contracts'),
431
- });
432
- const { data: projectRoles = [], refetch: refetchProjectRoles } = (0, next_app_provider_1.useQuery)({
433
- queryKey: ['operations-project-form-project-roles', currentLocaleCode],
434
- enabled: access.isDirector,
435
- staleTime: 0,
436
- refetchOnMount: 'always',
437
- queryFn: () => (0, api_1.fetchOperations)(request, '/operations/project-roles'),
438
- });
439
- const { data: project, isLoading: isLoadingProject } = (0, next_app_provider_1.useQuery)({
440
- queryKey: ['operations-project-form', currentLocaleCode, projectId],
441
- enabled: Boolean(projectId),
442
- staleTime: 0,
443
- refetchOnMount: 'always',
444
- queryFn: () => (0, api_1.fetchOperations)(request, `/operations/projects/${projectId}`),
445
- });
446
- (0, react_1.useEffect)(() => {
447
- if (project) {
448
- formMethods.reset(toFormState(project, collaborators));
449
- return;
450
- }
451
- if (!collaborators.length) {
452
- return;
453
- }
454
- const currentValues = formMethods.getValues();
455
- if (!currentValues.teamAssignments.length) {
456
- formMethods.reset(buildEmptyForm(collaborators));
457
- }
458
- }, [collaborators, formMethods, project]);
459
- const availableCollaborators = (0, react_1.useMemo)(() => {
460
- var _a, _b;
461
- const byId = new Map();
462
- for (const collaborator of collaborators) {
463
- byId.set(collaborator.id, collaborator);
464
- }
465
- if ((project === null || project === void 0 ? void 0 : project.managerCollaboratorId) &&
466
- !byId.has(project.managerCollaboratorId)) {
467
- byId.set(project.managerCollaboratorId, {
468
- id: project.managerCollaboratorId,
469
- code: '',
470
- displayName: (_a = project.managerName) !== null && _a !== void 0 ? _a : `#${project.managerCollaboratorId}`,
471
- department: null,
472
- title: null,
473
- status: 'active',
474
- });
475
- }
476
- for (const assignment of (_b = project === null || project === void 0 ? void 0 : project.assignments) !== null && _b !== void 0 ? _b : []) {
477
- if (!byId.has(assignment.collaboratorId)) {
478
- byId.set(assignment.collaboratorId, {
479
- id: assignment.collaboratorId,
480
- code: '',
481
- displayName: assignment.collaboratorName,
482
- department: null,
483
- title: null,
484
- status: 'active',
485
- });
486
- }
487
- }
488
- return Array.from(byId.values());
489
- }, [collaborators, project]);
490
- const availableContracts = (0, react_1.useMemo)(() => {
491
- if (!(project === null || project === void 0 ? void 0 : project.relatedContract)) {
492
- return contracts;
493
- }
494
- const hasSelectedContract = contracts.some((contract) => { var _a; return contract.id === ((_a = project.relatedContract) === null || _a === void 0 ? void 0 : _a.id); });
495
- return hasSelectedContract
496
- ? contracts
497
- : [project.relatedContract, ...contracts];
498
- }, [contracts, project]);
499
- const selectedContract = (0, react_1.useMemo)(() => {
500
- var _a;
501
- return (_a = availableContracts.find((contract) => String(contract.id) === form.contractId)) !== null && _a !== void 0 ? _a : null;
502
- }, [availableContracts, form.contractId]);
503
- const managerOptions = (0, react_1.useMemo)(() => availableCollaborators.map((collaborator) => ({
504
- id: collaborator.id,
505
- title: collaborator.displayName,
506
- description: [collaborator.department, collaborator.title]
507
- .filter(Boolean)
508
- .join(' • '),
509
- avatarUrl: typeof collaborator.personAvatarId === 'number' &&
510
- collaborator.personAvatarId > 0
511
- ? `${process.env.NEXT_PUBLIC_API_BASE_URL}/person/avatar/${collaborator.personAvatarId}`
512
- : null,
513
- })), [availableCollaborators]);
514
- const projectRoleOptions = (0, react_1.useMemo)(() => projectRoles.map((role) => {
515
- var _a, _b;
516
- return ({
517
- id: role.id,
518
- name: role.name,
519
- code: (_a = role.code) !== null && _a !== void 0 ? _a : null,
520
- description: (_b = role.description) !== null && _b !== void 0 ? _b : null,
521
- });
522
- }), [projectRoles]);
523
- const createProjectRole = async (projectRoleName) => {
524
- try {
525
- const createdRole = await (0, api_1.mutateOperations)(request, '/operations/project-roles', 'POST', {
526
- name: projectRoleName,
527
- });
528
- await refetchProjectRoles();
529
- return createdRole;
530
- }
531
- catch (error) {
532
- showToastHandler === null || showToastHandler === void 0 ? void 0 : showToastHandler('error', (0, api_1.getOperationsErrorMessage)(error, t('messages.projectRoleSaveError')));
533
- return null;
534
- }
535
- };
536
- const selectedAssignmentsCount = (0, react_1.useMemo)(() => form.teamAssignments.filter((assignment) => assignment.selected).length, [form.teamAssignments]);
537
- const filteredAssignments = (0, react_1.useMemo)(() => {
538
- const normalizedSearch = assignmentSearch.trim().toLowerCase();
539
- return form.teamAssignments.filter((assignment) => {
540
- const collaborator = availableCollaborators.find((item) => item.id === assignment.collaboratorId);
541
- if (!collaborator) {
542
- return false;
543
- }
544
- if (!normalizedSearch) {
545
- return true;
546
- }
547
- return [
548
- collaborator.displayName,
549
- collaborator.department,
550
- collaborator.title,
551
- collaborator.code,
552
- ]
553
- .filter(Boolean)
554
- .some((value) => String(value).toLowerCase().includes(normalizedSearch));
555
- });
556
- }, [assignmentSearch, availableCollaborators, form.teamAssignments]);
557
- const updateAssignment = (collaboratorId, patch) => {
558
- const nextAssignments = formMethods
559
- .getValues('teamAssignments')
560
- .map((assignment) => assignment.collaboratorId === collaboratorId
561
- ? Object.assign(Object.assign({}, assignment), patch) : assignment);
562
- formMethods.setValue('teamAssignments', nextAssignments, {
563
- shouldDirty: true,
564
- shouldValidate: true,
565
- });
566
- };
567
- const onSubmit = async (values) => {
568
- var _a;
569
- const payload = {
570
- contractId: values.contractId === 'none'
571
- ? null
572
- : (0, forms_1.parseNumberInput)(values.contractId),
573
- managerCollaboratorId: values.managerCollaboratorId === 'none'
574
- ? null
575
- : (0, forms_1.parseNumberInput)(values.managerCollaboratorId),
576
- code: values.code.trim(),
577
- name: values.name.trim(),
578
- clientName: (0, forms_1.trimToNull)(values.clientName),
579
- summary: (0, forms_1.trimToNull)(values.summary),
580
- status: values.status,
581
- progressPercent: (0, forms_1.parseNumberInput)(values.progressPercent),
582
- deliveryModel: (_a = (0, forms_1.trimToNull)(values.deliveryModel)) !== null && _a !== void 0 ? _a : 'project_delivery',
583
- budgetAmount: (0, forms_1.parseNumberInput)(values.budgetAmount),
584
- startDate: (0, forms_1.trimToNull)(values.startDate),
585
- endDate: (0, forms_1.trimToNull)(values.endDate),
586
- billingModel: values.billingModel,
587
- monthlyHourCap: (0, forms_1.parseNumberInput)(values.monthlyHourCap),
588
- contractCode: (0, forms_1.trimToNull)(values.contractCode),
589
- contractName: (0, forms_1.trimToNull)(values.contractName),
590
- contractDescription: (0, forms_1.trimToNull)(values.contractDescription),
591
- teamAssignments: values.teamAssignments
592
- .filter((assignment) => assignment.selected)
593
- .map((assignment) => ({
594
- collaboratorId: assignment.collaboratorId,
595
- projectRoleId: assignment.projectRoleId === 'none'
596
- ? null
597
- : (0, forms_1.parseNumberInput)(assignment.projectRoleId),
598
- roleLabel: (0, forms_1.trimToNull)(assignment.roleLabel),
599
- weeklyHours: (0, forms_1.parseNumberInput)(assignment.weeklyHours),
600
- allocationPercent: (0, forms_1.parseNumberInput)(assignment.allocationPercent),
601
- status: assignment.status,
602
- startDate: (0, forms_1.trimToNull)(assignment.startDate),
603
- endDate: (0, forms_1.trimToNull)(assignment.endDate),
604
- })),
605
- };
606
- try {
607
- const response = projectId
608
- ? await (0, api_1.mutateOperations)(request, `/operations/projects/${projectId}`, 'PATCH', payload)
609
- : await (0, api_1.mutateOperations)(request, '/operations/projects', 'POST', payload);
610
- showToastHandler === null || showToastHandler === void 0 ? void 0 : showToastHandler('success', projectId ? t('messages.updateSuccess') : t('messages.createSuccess'));
611
- if (onSaved) {
612
- await onSaved(response);
613
- return;
614
- }
615
- router.push(`/operations/projects/${response.id}`);
616
- }
617
- catch (error) {
618
- showToastHandler === null || showToastHandler === void 0 ? void 0 : showToastHandler('error', (0, api_1.getOperationsErrorMessage)(error, projectId ? t('messages.updateError') : t('messages.createError')));
619
- }
620
- };
621
- const handleInvalidSubmit = () => {
622
- showToastHandler === null || showToastHandler === void 0 ? void 0 : showToastHandler('error', t('messages.requiredFields'));
623
- };
624
- const noAccessState = (<entity_list_1.EmptyState icon={<lucide_react_1.FolderKanban className="size-12"/>} title={commonT('states.noAccessTitle')} description={t('noAccessDescription')} actionLabel={commonT('actions.refresh')} onAction={() => router.refresh()}/>);
625
- if (!access.isDirector && !access.isLoading) {
626
- if (isSheetMode) {
627
- return <div className="pt-4">{noAccessState}</div>;
628
- }
629
- return (<entity_list_1.Page>
630
- <operations_header_1.OperationsHeader title={t(projectId ? 'editTitle' : 'newTitle')} description={t('description')} current={t('breadcrumb')}/>
631
- {noAccessState}
632
- </entity_list_1.Page>);
633
- }
634
- const formContent = (<form_1.Form {...formMethods}>
635
- <form onSubmit={formMethods.handleSubmit(onSubmit, handleInvalidSubmit)} className="min-w-0 space-y-5 overflow-x-hidden px-4">
636
- <section className="space-y-3">
637
- <div className="space-y-0.5">
638
- <h3 className="text-xs font-semibold uppercase tracking-wide text-muted-foreground">
639
- {t('sections.basicInfo')}
640
- </h3>
641
- <p className="text-[11px] text-muted-foreground/80">
642
- {t(isCreateMode
643
- ? 'sections.basicInfoCreateDescription'
644
- : 'sections.basicInfoDescription')}
645
- </p>
646
- </div>
647
- <form_1.FormField control={formMethods.control} name="name" render={({ field }) => (<form_1.FormItem className="min-w-0">
648
- <form_1.FormLabel>{t('fields.name')}</form_1.FormLabel>
649
- <form_1.FormControl>
650
- <input_1.Input {...field} placeholder={t('placeholders.name')} autoFocus onChange={(e) => {
651
- field.onChange(e);
652
- if (codeAutoMode) {
653
- formMethods.setValue('code', generateProjectCode(e.target.value));
654
- }
655
- }}/>
656
- </form_1.FormControl>
657
- <form_1.FormMessage />
658
- </form_1.FormItem>)}/>
659
- <div className="grid min-w-0 gap-3 lg:grid-cols-6">
660
- <form_1.FormField control={formMethods.control} name="code" render={({ field }) => (<form_1.FormItem className="min-w-0 lg:col-span-1">
661
- <form_1.FormLabel>{t('fields.code')}</form_1.FormLabel>
662
- <form_1.FormControl>
663
- <input_1.Input {...field} placeholder={t('placeholders.code')} onChange={(e) => {
664
- setCodeAutoMode(false);
665
- field.onChange(e);
666
- }}/>
667
- </form_1.FormControl>
668
- <form_1.FormMessage />
669
- </form_1.FormItem>)}/>
670
- <form_1.FormField control={formMethods.control} name="clientName" render={({ field, fieldState }) => (<form_1.FormItem className="min-w-0 lg:col-span-3">
671
- <form_1.FormLabel>{t('fields.clientName')}</form_1.FormLabel>
672
- <form_1.FormControl>
673
- <div className={fieldState.error
674
- ? 'rounded-md border border-destructive p-1'
675
- : ''}>
676
- <person_select_with_create_1.PersonSelectWithCreate label="" entityLabel={t('fields.clientName')} value={null} initialSelectedLabel={field.value} selectPlaceholder={t('placeholders.clientName')} onChange={(_, personName) => field.onChange(personName !== null && personName !== void 0 ? personName : '')} personTypeFilter="all" createType="company"/>
677
- </div>
678
- </form_1.FormControl>
679
- <form_1.FormMessage />
680
- </form_1.FormItem>)}/>
681
-
682
- <form_1.FormField control={formMethods.control} name="deliveryModel" render={({ field }) => (<form_1.FormItem className="min-w-0 lg:col-span-2">
683
- <form_1.FormLabel>{t('fields.deliveryModel')}</form_1.FormLabel>
684
- <select_1.Select value={field.value} onValueChange={field.onChange}>
685
- <form_1.FormControl>
686
- <select_1.SelectTrigger className="w-full">
687
- <select_1.SelectValue />
688
- </select_1.SelectTrigger>
689
- </form_1.FormControl>
690
- <select_1.SelectContent>
691
- <select_1.SelectItem value="project_delivery">
692
- {t('options.deliveryModels.project_delivery')}
693
- </select_1.SelectItem>
694
- <select_1.SelectItem value="dedicated_team">
695
- {t('options.deliveryModels.dedicated_team')}
696
- </select_1.SelectItem>
697
- <select_1.SelectItem value="shared_team">
698
- {t('options.deliveryModels.shared_team')}
699
- </select_1.SelectItem>
700
- <select_1.SelectItem value="support">
701
- {t('options.deliveryModels.support')}
702
- </select_1.SelectItem>
703
- </select_1.SelectContent>
704
- </select_1.Select>
705
- <form_1.FormMessage />
706
- </form_1.FormItem>)}/>
707
- <form_1.FormField control={formMethods.control} name="summary" render={({ field }) => (<form_1.FormItem className="min-w-0 lg:col-span-6">
708
- <form_1.FormLabel>{t('fields.summary')}</form_1.FormLabel>
709
- <form_1.FormControl>
710
- <textarea_1.Textarea {...field} rows={3} placeholder={t('placeholders.summary')}/>
711
- </form_1.FormControl>
712
- <form_1.FormMessage />
713
- </form_1.FormItem>)}/>
714
- </div>
715
- </section>
716
-
717
- <section className="space-y-3">
718
- <div className="space-y-0.5">
719
- <h3 className="text-xs font-semibold uppercase tracking-wide text-muted-foreground">
720
- {t('sections.governance')}
721
- </h3>
722
- <p className="text-[11px] text-muted-foreground/80">
723
- {t(isCreateMode
724
- ? 'sections.governanceCreateDescription'
725
- : 'sections.governanceDescription')}
726
- </p>
727
- </div>
728
- <div className="grid min-w-0 gap-3 md:grid-cols-2 xl:grid-cols-5">
729
- <div className="min-w-0 space-y-2">
730
- <FieldLabel label={commonT('labels.manager')}/>
731
- <SearchableSelect label="" value={form.managerCollaboratorId} options={managerOptions} placeholder={commonT('labels.notAssigned')} searchPlaceholder={t('placeholders.managerSearch')} emptyLabel={commonT('labels.notAssigned')} onChange={(value) => setForm((current) => (Object.assign(Object.assign({}, current), { managerCollaboratorId: value })))}/>
732
- </div>
733
- <div className="min-w-0 space-y-2">
734
- <FieldLabel label={commonT('labels.startDate')}/>
735
- <input_1.Input type="date" value={form.startDate} onChange={(event) => setForm((current) => (Object.assign(Object.assign({}, current), { startDate: event.target.value })))}/>
736
- </div>
737
- {!isCreateMode ? (<>
738
- <div className="min-w-0 space-y-2">
739
- <FieldLabel label={commonT('labels.status')}/>
740
- <select_1.Select value={form.status} onValueChange={(value) => setForm((current) => (Object.assign(Object.assign({}, current), { status: value })))}>
741
- <select_1.SelectTrigger className="w-full">
742
- <select_1.SelectValue />
743
- </select_1.SelectTrigger>
744
- <select_1.SelectContent>
745
- <select_1.SelectItem value="planning">
746
- {t('options.statuses.planning')}
747
- </select_1.SelectItem>
748
- <select_1.SelectItem value="active">
749
- {t('options.statuses.active')}
750
- </select_1.SelectItem>
751
- <select_1.SelectItem value="at_risk">
752
- {t('options.statuses.at_risk')}
753
- </select_1.SelectItem>
754
- <select_1.SelectItem value="paused">
755
- {t('options.statuses.paused')}
756
- </select_1.SelectItem>
757
- <select_1.SelectItem value="completed">
758
- {t('options.statuses.completed')}
759
- </select_1.SelectItem>
760
- <select_1.SelectItem value="archived">
761
- {t('options.statuses.archived')}
762
- </select_1.SelectItem>
763
- </select_1.SelectContent>
764
- </select_1.Select>
765
- </div>
766
- <div className="min-w-0 space-y-2">
767
- <FieldLabel label={commonT('labels.endDate')}/>
768
- <input_1.Input type="date" value={form.endDate} onChange={(event) => setForm((current) => (Object.assign(Object.assign({}, current), { endDate: event.target.value })))}/>
769
- </div>
770
- <form_1.FormField control={formMethods.control} name="progressPercent" render={({ field }) => {
771
- var _a;
772
- return (<form_1.FormItem className="min-w-0 gap-0">
773
- <form_1.FormLabel>{t('fields.progressPercent')}</form_1.FormLabel>
774
- <form_1.FormControl>
775
- <input_1.Input {...field} type="text" inputMode="decimal" placeholder={t('placeholders.progressPercent')} value={(_a = field.value) !== null && _a !== void 0 ? _a : ''} onChange={(event) => field.onChange((0, forms_1.normalizePercentInput)(event.target.value))}/>
776
- </form_1.FormControl>
777
- <form_1.FormMessage />
778
- </form_1.FormItem>);
779
- }}/>
780
- </>) : null}
781
- </div>
782
- </section>
783
-
784
- {!isCreateMode ? (<>
785
- <section className="space-y-3">
786
- <div className="space-y-0.5">
787
- <h3 className="text-xs font-semibold uppercase tracking-wide text-muted-foreground">
788
- {t('sections.financials')}
789
- </h3>
790
- <p className="text-[11px] text-muted-foreground/80">
791
- {t('sections.financialsDescription')}
792
- </p>
793
- </div>
794
- <div className="grid min-w-0 gap-3 md:grid-cols-2 xl:grid-cols-4">
795
- <div className="min-w-0 space-y-2">
796
- <FieldLabel label={commonT('labels.budget')}/>
797
- <input_money_1.InputMoney value={form.budgetAmount === '' ? '' : Number(form.budgetAmount)} onValueChange={(value) => setForm((current) => (Object.assign(Object.assign({}, current), { budgetAmount: value !== null ? String(value) : '' })))}/>
798
- </div>
799
- <div className="min-w-0 space-y-2">
800
- <FieldLabel label={commonT('labels.monthlyHourCap')} hint={t('hints.monthlyHourCap')}/>
801
- <input_1.Input type="text" inputMode="numeric" placeholder={t('placeholders.monthlyHourCap')} value={form.monthlyHourCap} onChange={(event) => {
802
- const raw = event.target.value.replace(/[^0-9]/g, '');
803
- setForm((current) => (Object.assign(Object.assign({}, current), { monthlyHourCap: raw })));
804
- }}/>
805
- </div>
806
- <div className="min-w-0 space-y-2">
807
- <FieldLabel label={commonT('labels.billingModel')}/>
808
- <select_1.Select value={form.billingModel} onValueChange={(value) => setForm((current) => (Object.assign(Object.assign({}, current), { billingModel: value })))}>
809
- <select_1.SelectTrigger className="w-full">
810
- <select_1.SelectValue />
811
- </select_1.SelectTrigger>
812
- <select_1.SelectContent>
813
- <select_1.SelectItem value="time_and_material">
814
- {t('options.billingModels.time_and_material')}
815
- </select_1.SelectItem>
816
- <select_1.SelectItem value="monthly_retainer">
817
- {t('options.billingModels.monthly_retainer')}
818
- </select_1.SelectItem>
819
- <select_1.SelectItem value="fixed_price">
820
- {t('options.billingModels.fixed_price')}
821
- </select_1.SelectItem>
822
- </select_1.SelectContent>
823
- </select_1.Select>
824
- </div>
825
- <div className="min-w-0 space-y-2">
826
- <FieldLabel label={commonT('labels.contract')} hint={t('hints.contract')}/>
827
- <ContractSelectWithCreate label="" value={form.contractId} contracts={availableContracts} selectPlaceholder={commonT('labels.notAssigned')} searchPlaceholder={t('placeholders.contractSearch')} onChange={(value) => setForm((current) => (Object.assign(Object.assign({}, current), { contractId: value })))} onCreated={async (contract) => {
828
- await refetchContracts();
829
- setForm((current) => {
830
- var _a;
831
- return (Object.assign(Object.assign({}, current), { contractId: (contract === null || contract === void 0 ? void 0 : contract.id)
832
- ? String(contract.id)
833
- : current.contractId, billingModel: (_a = contract === null || contract === void 0 ? void 0 : contract.billingModel) !== null && _a !== void 0 ? _a : current.billingModel, monthlyHourCap: (contract === null || contract === void 0 ? void 0 : contract.monthlyHourCap) !== null &&
834
- (contract === null || contract === void 0 ? void 0 : contract.monthlyHourCap) !== undefined
835
- ? String(contract.monthlyHourCap)
836
- : current.monthlyHourCap }));
837
- });
838
- }} initialValues={{
839
- code: form.code ? `PRJ-${form.code}` : '',
840
- name: form.name ? `${form.name} Service Agreement` : '',
841
- clientName: form.clientName,
842
- contractCategory: 'client',
843
- contractType: 'service_agreement',
844
- signatureStatus: 'not_started',
845
- billingModel: form.billingModel,
846
- budgetAmount: form.budgetAmount,
847
- monthlyHourCap: form.monthlyHourCap,
848
- startDate: form.startDate,
849
- endDate: form.endDate,
850
- description: form.summary,
851
- contentHtml: '',
852
- }}/>
853
- </div>
854
- </div>
855
- </section>
856
-
857
- <section className="space-y-3">
858
- <div className="space-y-0.5">
859
- <h3 className="text-xs font-semibold uppercase tracking-wide text-muted-foreground">
860
- {t('sections.team')}
861
- </h3>
862
- <p className="text-[11px] text-muted-foreground/80">
863
- {t('sections.teamDescription', {
864
- count: selectedAssignmentsCount,
865
- })}
866
- </p>
867
- </div>
868
- <div className="space-y-3">
869
- <div className="relative">
870
- <lucide_react_1.Search className="pointer-events-none absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2 text-muted-foreground"/>
871
- <input_1.Input className="pl-9" value={assignmentSearch} placeholder={t('placeholders.assignmentSearch')} onChange={(event) => setAssignmentSearch(event.target.value)}/>
872
- </div>
873
-
874
- <div className="space-y-2">
875
- {filteredAssignments.map((assignment) => {
876
- var _a, _b;
877
- const collaborator = availableCollaborators.find((item) => item.id === assignment.collaboratorId);
878
- const assignmentIndex = form.teamAssignments.findIndex((item) => item.collaboratorId === assignment.collaboratorId);
879
- const roleError = assignmentIndex >= 0
880
- ? (_b = (_a = formMethods.formState.errors.teamAssignments) === null || _a === void 0 ? void 0 : _a[assignmentIndex]) === null || _b === void 0 ? void 0 : _b.roleLabel
881
- : undefined;
882
- if (!collaborator) {
883
- return null;
884
- }
885
- return (<div key={assignment.collaboratorId} className="grid min-w-0 gap-2 rounded-lg border px-3 py-2 xl:grid-cols-[minmax(0,1.25fr)_minmax(0,1.2fr)_110px_110px]">
886
- <label className="flex cursor-pointer items-start gap-3 py-1">
887
- <checkbox_1.Checkbox checked={assignment.selected} onCheckedChange={(checked) => updateAssignment(assignment.collaboratorId, {
888
- selected: checked === true,
889
- })}/>
890
- <div className="min-w-0">
891
- <div className="truncate font-medium">
892
- {collaborator.displayName}
893
- </div>
894
- <div className="truncate text-xs text-muted-foreground">
895
- {[
896
- collaborator.department,
897
- collaborator.title,
898
- collaborator.code,
899
- ]
900
- .filter(Boolean)
901
- .join(' • ') || commonT('labels.notAvailable')}
902
- </div>
903
- </div>
904
- </label>
905
- <div className="space-y-1">
906
- <department_select_with_create_1.DepartmentSelectWithCreate label="" value={assignment.roleLabel} options={projectRoleOptions} disabled={!assignment.selected} selectPlaceholder={t('placeholders.roleLabel')} createDescription={t('fields.roleLabel')} createPlaceholder={t('placeholders.roleLabelCreate')} onChange={(role) => updateAssignment(assignment.collaboratorId, {
907
- projectRoleId: role.id
908
- ? String(role.id)
909
- : 'none',
910
- roleLabel: role.name,
911
- })} onCreate={createProjectRole}/>
912
- {(roleError === null || roleError === void 0 ? void 0 : roleError.message) ? (<p className="text-sm text-destructive">
913
- {String(roleError.message)}
914
- </p>) : null}
915
- </div>
916
- <input_1.Input className="h-9 mt-2 self-start" type="number" min="0" step="0.5" placeholder={t('fields.weeklyHours')} value={assignment.weeklyHours} disabled={!assignment.selected} onChange={(event) => {
917
- const hours = event.target.value;
918
- const updates = {
919
- weeklyHours: hours,
920
- };
921
- const cap = collaborator.weeklyCapacityHours;
922
- if (cap && hours && Number(hours) > 0) {
923
- const pct = Math.round((Number(hours) / cap) * 100);
924
- updates.allocationPercent = String(Math.min(pct, 100));
925
- }
926
- updateAssignment(assignment.collaboratorId, updates);
927
- }}/>
928
- <input_1.Input className="h-9 mt-2 self-start" type="text" inputMode="decimal" placeholder={t('fields.allocationPercent')} value={assignment.allocationPercent} disabled={!assignment.selected} onChange={(event) => {
929
- const pct = (0, forms_1.normalizePercentInput)(event.target.value);
930
- const updates = {
931
- allocationPercent: pct,
932
- };
933
- const cap = collaborator.weeklyCapacityHours;
934
- if (cap && pct && Number(pct) > 0) {
935
- const hours = Math.round((Number(pct) / 100) * cap);
936
- updates.weeklyHours = String(hours);
937
- }
938
- updateAssignment(assignment.collaboratorId, updates);
939
- }}/>
940
- <div className="flex items-center gap-2 xl:col-span-4">
941
- <div className="flex-1">
942
- <label className="text-xs text-muted-foreground">{t('fields.assignmentStartDate')}</label>
943
- <input_1.Input className="h-9" type="date" value={assignment.startDate} disabled={!assignment.selected} onChange={(event) => updateAssignment(assignment.collaboratorId, {
944
- startDate: event.target.value,
945
- })}/>
946
- </div>
947
- <div className="flex-1">
948
- <label className="text-xs text-muted-foreground">{t('fields.assignmentEndDate')}</label>
949
- <input_1.Input className="h-9" type="date" value={assignment.endDate} disabled={!assignment.selected} onChange={(event) => updateAssignment(assignment.collaboratorId, {
950
- endDate: event.target.value,
951
- })}/>
952
- </div>
953
- </div>
954
- </div>);
955
- })}
956
- </div>
957
- </div>
958
- </section>
959
- </>) : (<section className="space-y-3 rounded-lg border border-dashed bg-muted/20 px-4 py-4">
960
- <div className="space-y-0.5">
961
- <h3 className="text-xs font-semibold uppercase tracking-wide text-muted-foreground">
962
- {t('sections.nextSteps')}
963
- </h3>
964
- <p className="text-[11px] text-muted-foreground/80">
965
- {t('sections.nextStepsDescription')}
966
- </p>
967
- </div>
968
- </section>)}
969
- </form>
970
- </form_1.Form>);
971
- const loadingState = projectId && isLoadingProject ? (<div className="text-sm text-muted-foreground">{t('loading')}</div>) : null;
972
- const contractStatusState = project ? (<div className="text-xs text-muted-foreground">
973
- {t('messages.currentContractStatus', {
974
- status: project.contractStatus
975
- ? project.contractStatus
976
- : commonT('labels.notAssigned'),
977
- })}
978
- </div>) : null;
979
- if (isSheetMode) {
980
- return (<div className="mt-6 space-y-4 pb-6">
981
- {formContent}
982
- <div className="space-y-2 px-4">
983
- {loadingState}
984
- {contractStatusState}
985
- </div>
986
-
987
- <form_actions_1.FormActions sheet cancelLabel={commonT('actions.cancel')} onCancel={onCancel} onSubmit={() => void formMethods.handleSubmit(onSubmit, handleInvalidSubmit)()} submitIcon={<lucide_react_1.Save className="size-4"/>} submitLabel={commonT('actions.save')} submitSize="lg"/>
988
- </div>);
989
- }
990
- return (<entity_list_1.Page>
991
- <operations_header_1.OperationsHeader title={t(projectId ? 'editTitle' : 'newTitle')} description={t('description')} current={t('breadcrumb')} actions={<div className="flex gap-2">
992
- <button_1.Button variant="outline" size="sm" asChild>
993
- <link_1.default href={projectId
994
- ? `/operations/projects/${projectId}`
995
- : '/operations/projects'}>
996
- <lucide_react_1.ArrowLeft className="size-4"/>
997
- {commonT('actions.back')}
998
- </link_1.default>
999
- </button_1.Button>
1000
- <button_1.Button size="sm" type="button" onClick={() => void formMethods.handleSubmit(onSubmit, handleInvalidSubmit)()}>
1001
- <lucide_react_1.Save className="size-4"/>
1002
- {commonT('actions.save')}
1003
- </button_1.Button>
1004
- </div>}/>
1005
-
1006
- {formContent}
1007
- <div className="space-y-2">
1008
- {loadingState}
1009
- {contractStatusState}
1010
- </div>
1011
- </entity_list_1.Page>);
1012
- }
1013
- //# sourceMappingURL=project-form-screen.js.map