@dssp/project 1.0.0 → 1.0.2

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 (327) hide show
  1. package/dist-client/bootstrap.d.ts +0 -0
  2. package/dist-client/bootstrap.js +2 -0
  3. package/dist-client/bootstrap.js.map +1 -0
  4. package/dist-client/index.d.ts +1 -0
  5. package/dist-client/index.js +2 -0
  6. package/dist-client/index.js.map +1 -0
  7. package/dist-client/pages/lib/chatbot-widget.d.ts +53 -0
  8. package/dist-client/pages/lib/chatbot-widget.js +631 -0
  9. package/dist-client/pages/lib/chatbot-widget.js.map +1 -0
  10. package/dist-client/pages/lib/select2-component.d.ts +23 -0
  11. package/dist-client/pages/lib/select2-component.js +181 -0
  12. package/dist-client/pages/lib/select2-component.js.map +1 -0
  13. package/dist-client/pages/lib/waether.d.ts +7 -0
  14. package/dist-client/pages/lib/waether.js +156 -0
  15. package/dist-client/pages/lib/waether.js.map +1 -0
  16. package/dist-client/pages/project/component/pagenation.d.ts +18 -0
  17. package/dist-client/pages/project/component/pagenation.js +142 -0
  18. package/dist-client/pages/project/component/pagenation.js.map +1 -0
  19. package/dist-client/pages/project/component/project-update-header.d.ts +1 -0
  20. package/dist-client/pages/project/component/project-update-header.js +121 -0
  21. package/dist-client/pages/project/component/project-update-header.js.map +1 -0
  22. package/dist-client/pages/project/popup/checklist/task-checklist-attachment-list-popup.d.ts +1 -0
  23. package/dist-client/pages/project/popup/checklist/task-checklist-attachment-list-popup.js +308 -0
  24. package/dist-client/pages/project/popup/checklist/task-checklist-attachment-list-popup.js.map +1 -0
  25. package/dist-client/pages/project/popup/checklist/task-checklist-comment-list-popup.d.ts +1 -0
  26. package/dist-client/pages/project/popup/checklist/task-checklist-comment-list-popup.js +356 -0
  27. package/dist-client/pages/project/popup/checklist/task-checklist-comment-list-popup.js.map +1 -0
  28. package/dist-client/pages/project/popup/checklist/task-checklist-create-popup.d.ts +1 -0
  29. package/dist-client/pages/project/popup/checklist/task-checklist-create-popup.js +682 -0
  30. package/dist-client/pages/project/popup/checklist/task-checklist-create-popup.js.map +1 -0
  31. package/dist-client/pages/project/popup/checklist/task-checklist-view.d.ts +33 -0
  32. package/dist-client/pages/project/popup/checklist/task-checklist-view.js +676 -0
  33. package/dist-client/pages/project/popup/checklist/task-checklist-view.js.map +1 -0
  34. package/dist-client/pages/project/popup/popup-plan-export.d.ts +10 -0
  35. package/dist-client/pages/project/popup/popup-plan-export.js +242 -0
  36. package/dist-client/pages/project/popup/popup-plan-export.js.map +1 -0
  37. package/dist-client/pages/project/popup/popup-plan-upload.d.ts +13 -0
  38. package/dist-client/pages/project/popup/popup-plan-upload.js +265 -0
  39. package/dist-client/pages/project/popup/popup-plan-upload.js.map +1 -0
  40. package/dist-client/pages/project/popup/popup-project-create.d.ts +12 -0
  41. package/dist-client/pages/project/popup/popup-project-create.js +152 -0
  42. package/dist-client/pages/project/popup/popup-project-create.js.map +1 -0
  43. package/dist-client/pages/project/popup/popup-task-upload.d.ts +9 -0
  44. package/dist-client/pages/project/popup/popup-task-upload.js +105 -0
  45. package/dist-client/pages/project/popup/popup-task-upload.js.map +1 -0
  46. package/dist-client/pages/project/project-completed-list.d.ts +23 -0
  47. package/dist-client/pages/project/project-completed-list.js +322 -0
  48. package/dist-client/pages/project/project-completed-list.js.map +1 -0
  49. package/dist-client/pages/project/project-detail.d.ts +47 -0
  50. package/dist-client/pages/project/project-detail.js +1065 -0
  51. package/dist-client/pages/project/project-detail.js.map +1 -0
  52. package/dist-client/pages/project/project-list.d.ts +201 -0
  53. package/dist-client/pages/project/project-list.js +410 -0
  54. package/dist-client/pages/project/project-list.js.map +1 -0
  55. package/dist-client/pages/project/project-plan-management.d.ts +33 -0
  56. package/dist-client/pages/project/project-plan-management.js +492 -0
  57. package/dist-client/pages/project/project-plan-management.js.map +1 -0
  58. package/dist-client/pages/project/project-setting-list.d.ts +31 -0
  59. package/dist-client/pages/project/project-setting-list.js +456 -0
  60. package/dist-client/pages/project/project-setting-list.js.map +1 -0
  61. package/dist-client/pages/project/project-task-list.d.ts +18 -0
  62. package/dist-client/pages/project/project-task-list.js +306 -0
  63. package/dist-client/pages/project/project-task-list.js.map +1 -0
  64. package/dist-client/pages/project/project-task.d.ts +51 -0
  65. package/dist-client/pages/project/project-task.js +692 -0
  66. package/dist-client/pages/project/project-task.js.map +1 -0
  67. package/dist-client/pages/project/project-update.d.ts +81 -0
  68. package/dist-client/pages/project/project-update.js +1477 -0
  69. package/dist-client/pages/project/project-update.js.map +1 -0
  70. package/dist-client/pages/resource/construction-detail-type-popup.d.ts +2 -0
  71. package/dist-client/pages/resource/construction-detail-type-popup.js +197 -0
  72. package/dist-client/pages/resource/construction-detail-type-popup.js.map +1 -0
  73. package/dist-client/pages/resource/construction-type-management.d.ts +34 -0
  74. package/dist-client/pages/resource/construction-type-management.js +214 -0
  75. package/dist-client/pages/resource/construction-type-management.js.map +1 -0
  76. package/dist-client/pages/resource/inspection-drawing-type-management.d.ts +48 -0
  77. package/dist-client/pages/resource/inspection-drawing-type-management.js +234 -0
  78. package/dist-client/pages/resource/inspection-drawing-type-management.js.map +1 -0
  79. package/dist-client/pages/resource/inspection-part-popup.d.ts +2 -0
  80. package/dist-client/pages/resource/inspection-part-popup.js +197 -0
  81. package/dist-client/pages/resource/inspection-part-popup.js.map +1 -0
  82. package/dist-client/pages/resource/resource-importer.d.ts +10 -0
  83. package/dist-client/pages/resource/resource-importer.js +101 -0
  84. package/dist-client/pages/resource/resource-importer.js.map +1 -0
  85. package/dist-client/pages/resource/resource-list-page.d.ts +62 -0
  86. package/dist-client/pages/resource/resource-list-page.js +331 -0
  87. package/dist-client/pages/resource/resource-list-page.js.map +1 -0
  88. package/dist-client/pages/resource/worker-type-management.d.ts +34 -0
  89. package/dist-client/pages/resource/worker-type-management.js +180 -0
  90. package/dist-client/pages/resource/worker-type-management.js.map +1 -0
  91. package/dist-client/pages/task/task-importer.d.ts +10 -0
  92. package/dist-client/pages/task/task-importer.js +101 -0
  93. package/dist-client/pages/task/task-importer.js.map +1 -0
  94. package/dist-client/pages/task/task-list-page.d.ts +62 -0
  95. package/dist-client/pages/task/task-list-page.js +322 -0
  96. package/dist-client/pages/task/task-list-page.js.map +1 -0
  97. package/dist-client/pages/task-resource/task-resource-importer.d.ts +10 -0
  98. package/dist-client/pages/task-resource/task-resource-importer.js +101 -0
  99. package/dist-client/pages/task-resource/task-resource-importer.js.map +1 -0
  100. package/dist-client/pages/task-resource/task-resource-list-page.d.ts +62 -0
  101. package/dist-client/pages/task-resource/task-resource-list-page.js +331 -0
  102. package/dist-client/pages/task-resource/task-resource-list-page.js.map +1 -0
  103. package/dist-client/route.d.ts +1 -0
  104. package/dist-client/route.js +44 -0
  105. package/dist-client/route.js.map +1 -0
  106. package/dist-client/shared/domain-context.d.ts +18 -0
  107. package/dist-client/shared/domain-context.js +28 -0
  108. package/dist-client/shared/domain-context.js.map +1 -0
  109. package/dist-client/tsconfig.tsbuildinfo +1 -0
  110. package/dist-client/viewparts/domain-switch.d.ts +19 -0
  111. package/dist-client/viewparts/domain-switch.js +274 -0
  112. package/dist-client/viewparts/domain-switch.js.map +1 -0
  113. package/dist-server/controllers/export-tasks.d.ts +7 -0
  114. package/dist-server/controllers/export-tasks.js +29 -0
  115. package/dist-server/controllers/export-tasks.js.map +1 -0
  116. package/dist-server/controllers/import-task.d.ts +3 -0
  117. package/dist-server/controllers/import-task.js +113 -0
  118. package/dist-server/controllers/import-task.js.map +1 -0
  119. package/dist-server/controllers/index.d.ts +0 -0
  120. package/dist-server/controllers/index.js +1 -0
  121. package/dist-server/controllers/index.js.map +1 -0
  122. package/dist-server/controllers/parse-excel.d.ts +2 -0
  123. package/dist-server/controllers/parse-excel.js +74 -0
  124. package/dist-server/controllers/parse-excel.js.map +1 -0
  125. package/dist-server/controllers/types.d.ts +18 -0
  126. package/dist-server/controllers/types.js +3 -0
  127. package/dist-server/controllers/types.js.map +1 -0
  128. package/dist-server/index.d.ts +3 -0
  129. package/dist-server/index.js +7 -0
  130. package/dist-server/index.js.map +1 -0
  131. package/dist-server/middlewares/index.d.ts +1 -0
  132. package/dist-server/middlewares/index.js +7 -0
  133. package/dist-server/middlewares/index.js.map +1 -0
  134. package/dist-server/migrations/1723861466413-seed-roles.d.ts +5 -0
  135. package/dist-server/migrations/1723861466413-seed-roles.js +117 -0
  136. package/dist-server/migrations/1723861466413-seed-roles.js.map +1 -0
  137. package/dist-server/migrations/1723861466414-seed-codes.d.ts +5 -0
  138. package/dist-server/migrations/1723861466414-seed-codes.js +150 -0
  139. package/dist-server/migrations/1723861466414-seed-codes.js.map +1 -0
  140. package/dist-server/migrations/1723861476419-seed-resources.d.ts +5 -0
  141. package/dist-server/migrations/1723861476419-seed-resources.js +57 -0
  142. package/dist-server/migrations/1723861476419-seed-resources.js.map +1 -0
  143. package/dist-server/migrations/1723861478420-seed-/bsample-project.d.ts +5 -0
  144. package/dist-server/migrations/1723861478420-seed-/bsample-project.js +68 -0
  145. package/dist-server/migrations/1723861478420-seed-/bsample-project.js.map +1 -0
  146. package/dist-server/migrations/1723861478421-seed-/bsample-tasks.d.ts +5 -0
  147. package/dist-server/migrations/1723861478421-seed-/bsample-tasks.js +189 -0
  148. package/dist-server/migrations/1723861478421-seed-/bsample-tasks.js.map +1 -0
  149. package/dist-server/migrations/index.d.ts +1 -0
  150. package/dist-server/migrations/index.js +12 -0
  151. package/dist-server/migrations/index.js.map +1 -0
  152. package/dist-server/routes.d.ts +1 -0
  153. package/dist-server/routes.js +105 -0
  154. package/dist-server/routes.js.map +1 -0
  155. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.d.ts +6 -0
  156. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js +56 -0
  157. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js.map +1 -0
  158. package/dist-server/service/construction-detail-type/construction-detail-type-query.d.ts +9 -0
  159. package/dist-server/service/construction-detail-type/construction-detail-type-query.js +53 -0
  160. package/dist-server/service/construction-detail-type/construction-detail-type-query.js.map +1 -0
  161. package/dist-server/service/construction-detail-type/construction-detail-type-type.d.ts +11 -0
  162. package/dist-server/service/construction-detail-type/construction-detail-type-type.js +43 -0
  163. package/dist-server/service/construction-detail-type/construction-detail-type-type.js.map +1 -0
  164. package/dist-server/service/construction-detail-type/construction-detail-type.d.ts +15 -0
  165. package/dist-server/service/construction-detail-type/construction-detail-type.js +69 -0
  166. package/dist-server/service/construction-detail-type/construction-detail-type.js.map +1 -0
  167. package/dist-server/service/construction-detail-type/index.d.ts +5 -0
  168. package/dist-server/service/construction-detail-type/index.js +9 -0
  169. package/dist-server/service/construction-detail-type/index.js.map +1 -0
  170. package/dist-server/service/construction-type/construction-type-mutation.d.ts +6 -0
  171. package/dist-server/service/construction-type/construction-type-mutation.js +64 -0
  172. package/dist-server/service/construction-type/construction-type-mutation.js.map +1 -0
  173. package/dist-server/service/construction-type/construction-type-query.d.ts +13 -0
  174. package/dist-server/service/construction-type/construction-type-query.js +87 -0
  175. package/dist-server/service/construction-type/construction-type-query.js.map +1 -0
  176. package/dist-server/service/construction-type/construction-type-type.d.ts +12 -0
  177. package/dist-server/service/construction-type/construction-type-type.js +47 -0
  178. package/dist-server/service/construction-type/construction-type-type.js.map +1 -0
  179. package/dist-server/service/construction-type/construction-type.d.ts +19 -0
  180. package/dist-server/service/construction-type/construction-type.js +88 -0
  181. package/dist-server/service/construction-type/construction-type.js.map +1 -0
  182. package/dist-server/service/construction-type/index.d.ts +5 -0
  183. package/dist-server/service/construction-type/index.js +9 -0
  184. package/dist-server/service/construction-type/index.js.map +1 -0
  185. package/dist-server/service/index.d.ts +15 -0
  186. package/dist-server/service/index.js +59 -0
  187. package/dist-server/service/index.js.map +1 -0
  188. package/dist-server/service/inspection-drawing-type/index.d.ts +5 -0
  189. package/dist-server/service/inspection-drawing-type/index.js +9 -0
  190. package/dist-server/service/inspection-drawing-type/index.js.map +1 -0
  191. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.d.ts +6 -0
  192. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js +64 -0
  193. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js.map +1 -0
  194. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.d.ts +12 -0
  195. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js +78 -0
  196. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js.map +1 -0
  197. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.d.ts +10 -0
  198. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js +39 -0
  199. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js.map +1 -0
  200. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.d.ts +16 -0
  201. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js +72 -0
  202. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js.map +1 -0
  203. package/dist-server/service/inspection-part/index.d.ts +5 -0
  204. package/dist-server/service/inspection-part/index.js +9 -0
  205. package/dist-server/service/inspection-part/index.js.map +1 -0
  206. package/dist-server/service/inspection-part/inspection-part-mutation.d.ts +6 -0
  207. package/dist-server/service/inspection-part/inspection-part-mutation.js +55 -0
  208. package/dist-server/service/inspection-part/inspection-part-mutation.js.map +1 -0
  209. package/dist-server/service/inspection-part/inspection-part-query.d.ts +10 -0
  210. package/dist-server/service/inspection-part/inspection-part-query.js +66 -0
  211. package/dist-server/service/inspection-part/inspection-part-query.js.map +1 -0
  212. package/dist-server/service/inspection-part/inspection-part-type.d.ts +11 -0
  213. package/dist-server/service/inspection-part/inspection-part-type.js +43 -0
  214. package/dist-server/service/inspection-part/inspection-part-type.js.map +1 -0
  215. package/dist-server/service/inspection-part/inspection-part.d.ts +15 -0
  216. package/dist-server/service/inspection-part/inspection-part.js +69 -0
  217. package/dist-server/service/inspection-part/inspection-part.js.map +1 -0
  218. package/dist-server/service/manager/index.d.ts +7 -0
  219. package/dist-server/service/manager/index.js +11 -0
  220. package/dist-server/service/manager/index.js.map +1 -0
  221. package/dist-server/service/manager/manager-mutation.d.ts +5 -0
  222. package/dist-server/service/manager/manager-mutation.js +39 -0
  223. package/dist-server/service/manager/manager-mutation.js.map +1 -0
  224. package/dist-server/service/manager/manager-query.d.ts +4 -0
  225. package/dist-server/service/manager/manager-query.js +35 -0
  226. package/dist-server/service/manager/manager-query.js.map +1 -0
  227. package/dist-server/service/manager/manager-type.d.ts +15 -0
  228. package/dist-server/service/manager/manager-type.js +62 -0
  229. package/dist-server/service/manager/manager-type.js.map +1 -0
  230. package/dist-server/service/manager/manager.d.ts +8 -0
  231. package/dist-server/service/manager/manager.js +41 -0
  232. package/dist-server/service/manager/manager.js.map +1 -0
  233. package/dist-server/service/project/index.d.ts +5 -0
  234. package/dist-server/service/project/index.js +9 -0
  235. package/dist-server/service/project/index.js.map +1 -0
  236. package/dist-server/service/project/issue-project-code.d.ts +7 -0
  237. package/dist-server/service/project/issue-project-code.js +27 -0
  238. package/dist-server/service/project/issue-project-code.js.map +1 -0
  239. package/dist-server/service/project/project-mutation.d.ts +28 -0
  240. package/dist-server/service/project/project-mutation.js +499 -0
  241. package/dist-server/service/project/project-mutation.js.map +1 -0
  242. package/dist-server/service/project/project-query.d.ts +31 -0
  243. package/dist-server/service/project/project-query.js +307 -0
  244. package/dist-server/service/project/project-query.js.map +1 -0
  245. package/dist-server/service/project/project-type.d.ts +42 -0
  246. package/dist-server/service/project/project-type.js +152 -0
  247. package/dist-server/service/project/project-type.js.map +1 -0
  248. package/dist-server/service/project/project.d.ts +66 -0
  249. package/dist-server/service/project/project.js +247 -0
  250. package/dist-server/service/project/project.js.map +1 -0
  251. package/dist-server/service/resource/index.d.ts +6 -0
  252. package/dist-server/service/resource/index.js +10 -0
  253. package/dist-server/service/resource/index.js.map +1 -0
  254. package/dist-server/service/resource/resource-mutation.d.ts +10 -0
  255. package/dist-server/service/resource/resource-mutation.js +131 -0
  256. package/dist-server/service/resource/resource-mutation.js.map +1 -0
  257. package/dist-server/service/resource/resource-query.d.ts +11 -0
  258. package/dist-server/service/resource/resource-query.js +76 -0
  259. package/dist-server/service/resource/resource-query.js.map +1 -0
  260. package/dist-server/service/resource/resource-type.d.ts +17 -0
  261. package/dist-server/service/resource/resource-type.js +65 -0
  262. package/dist-server/service/resource/resource-type.js.map +1 -0
  263. package/dist-server/service/resource/resource.d.ts +24 -0
  264. package/dist-server/service/resource/resource.js +93 -0
  265. package/dist-server/service/resource/resource.js.map +1 -0
  266. package/dist-server/service/task/index.d.ts +5 -0
  267. package/dist-server/service/task/index.js +9 -0
  268. package/dist-server/service/task/index.js.map +1 -0
  269. package/dist-server/service/task/task-mutation.d.ts +10 -0
  270. package/dist-server/service/task/task-mutation.js +135 -0
  271. package/dist-server/service/task/task-mutation.js.map +1 -0
  272. package/dist-server/service/task/task-query.d.ts +21 -0
  273. package/dist-server/service/task/task-query.js +219 -0
  274. package/dist-server/service/task/task-query.js.map +1 -0
  275. package/dist-server/service/task/task-type.d.ts +31 -0
  276. package/dist-server/service/task/task-type.js +114 -0
  277. package/dist-server/service/task/task-type.js.map +1 -0
  278. package/dist-server/service/task/task.d.ts +35 -0
  279. package/dist-server/service/task/task.js +151 -0
  280. package/dist-server/service/task/task.js.map +1 -0
  281. package/dist-server/service/task-checklist-binding/index.d.ts +5 -0
  282. package/dist-server/service/task-checklist-binding/index.js +9 -0
  283. package/dist-server/service/task-checklist-binding/index.js.map +1 -0
  284. package/dist-server/service/task-checklist-binding/task-checklist-binding-mutation.d.ts +5 -0
  285. package/dist-server/service/task-checklist-binding/task-checklist-binding-mutation.js +188 -0
  286. package/dist-server/service/task-checklist-binding/task-checklist-binding-mutation.js.map +1 -0
  287. package/dist-server/service/task-checklist-binding/task-checklist-binding-query.d.ts +8 -0
  288. package/dist-server/service/task-checklist-binding/task-checklist-binding-query.js +61 -0
  289. package/dist-server/service/task-checklist-binding/task-checklist-binding-query.js.map +1 -0
  290. package/dist-server/service/task-checklist-binding/task-checklist-binding-type.d.ts +15 -0
  291. package/dist-server/service/task-checklist-binding/task-checklist-binding-type.js +57 -0
  292. package/dist-server/service/task-checklist-binding/task-checklist-binding-type.js.map +1 -0
  293. package/dist-server/service/task-checklist-binding/task-checklist-binding.d.ts +22 -0
  294. package/dist-server/service/task-checklist-binding/task-checklist-binding.js +106 -0
  295. package/dist-server/service/task-checklist-binding/task-checklist-binding.js.map +1 -0
  296. package/dist-server/service/task-resource/index.d.ts +6 -0
  297. package/dist-server/service/task-resource/index.js +10 -0
  298. package/dist-server/service/task-resource/index.js.map +1 -0
  299. package/dist-server/service/task-resource/task-resource-mutation.d.ts +10 -0
  300. package/dist-server/service/task-resource/task-resource-mutation.js +132 -0
  301. package/dist-server/service/task-resource/task-resource-mutation.js.map +1 -0
  302. package/dist-server/service/task-resource/task-resource-query.d.ts +7 -0
  303. package/dist-server/service/task-resource/task-resource-query.js +45 -0
  304. package/dist-server/service/task-resource/task-resource-query.js.map +1 -0
  305. package/dist-server/service/task-resource/task-resource-type.d.ts +17 -0
  306. package/dist-server/service/task-resource/task-resource-type.js +65 -0
  307. package/dist-server/service/task-resource/task-resource-type.js.map +1 -0
  308. package/dist-server/service/task-resource/task-resource.d.ts +13 -0
  309. package/dist-server/service/task-resource/task-resource.js +59 -0
  310. package/dist-server/service/task-resource/task-resource.js.map +1 -0
  311. package/dist-server/service/worker-type/index.d.ts +5 -0
  312. package/dist-server/service/worker-type/index.js +9 -0
  313. package/dist-server/service/worker-type/index.js.map +1 -0
  314. package/dist-server/service/worker-type/worker-type-mutation.d.ts +6 -0
  315. package/dist-server/service/worker-type/worker-type-mutation.js +64 -0
  316. package/dist-server/service/worker-type/worker-type-mutation.js.map +1 -0
  317. package/dist-server/service/worker-type/worker-type-query.d.ts +11 -0
  318. package/dist-server/service/worker-type/worker-type-query.js +73 -0
  319. package/dist-server/service/worker-type/worker-type-query.js.map +1 -0
  320. package/dist-server/service/worker-type/worker-type-type.d.ts +11 -0
  321. package/dist-server/service/worker-type/worker-type-type.js +43 -0
  322. package/dist-server/service/worker-type/worker-type-type.js.map +1 -0
  323. package/dist-server/service/worker-type/worker-type.d.ts +16 -0
  324. package/dist-server/service/worker-type/worker-type.js +77 -0
  325. package/dist-server/service/worker-type/worker-type.js.map +1 -0
  326. package/dist-server/tsconfig.tsbuildinfo +1 -0
  327. package/package.json +4 -4
@@ -0,0 +1,1065 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@material/web/icon/icon.js';
3
+ import '@material/web/button/elevated-button.js';
4
+ import '@material/web/textfield/outlined-text-field.js';
5
+ import '@material/web/button/outlined-button.js';
6
+ import { navigate, PageView } from '@operato/shell';
7
+ import { css, html } from 'lit';
8
+ import { customElement, state } from 'lit/decorators.js';
9
+ import { ScopedElementsMixin } from '@open-wc/scoped-elements';
10
+ import { client } from '@operato/graphql';
11
+ import { ScrollbarStyles } from '@operato/styles';
12
+ import gql from 'graphql-tag';
13
+ import { BUILDING_INSPECTION_STATUS, BUILDING_INSPECTION_RE_STATUS, ProjectType } from './project-list';
14
+ import _getWeather from '../lib/waether';
15
+ import '@operato/chart/ox-progress-circle.js';
16
+ import { isProjectTypeDomain } from '../../shared/domain-context';
17
+ let ProjectDetail = class ProjectDetail extends ScopedElementsMixin(PageView) {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.defaultProject = {
21
+ name: '',
22
+ buildingComplex: {
23
+ address: '',
24
+ area: 0,
25
+ constructionCompany: '',
26
+ clientCompany: '',
27
+ supervisoryCompany: '',
28
+ designCompany: '',
29
+ constructionType: '',
30
+ buildings: []
31
+ }
32
+ };
33
+ this.projectId = '';
34
+ this.project = Object.assign({}, this.defaultProject);
35
+ this.buildingInspections = [];
36
+ this.inspectionSummary = {
37
+ wait: 0,
38
+ request: 0,
39
+ pass: 0,
40
+ fail: 0,
41
+ reWait: 0
42
+ };
43
+ this.statusFilter = '';
44
+ this.configProjectType = '';
45
+ this.weather = {
46
+ rain: 0,
47
+ temperature: 0,
48
+ humidity: 0,
49
+ windDirection: '',
50
+ windSpeed: 0
51
+ };
52
+ }
53
+ get context() {
54
+ var _a;
55
+ return {
56
+ title: !isProjectTypeDomain() && ((_a = this.project) === null || _a === void 0 ? void 0 : _a.name)
57
+ ? `진행 중 프로젝트 상세 정보 - ${this.project.name}`
58
+ : '진행 중 프로젝트 상세 정보'
59
+ };
60
+ }
61
+ render() {
62
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
63
+ let totalInspectionCount = this.inspectionSummary.pass + this.inspectionSummary.fail + this.inspectionSummary.request + this.inspectionSummary.wait;
64
+ return html `
65
+ <div header>
66
+ <h2>
67
+ <md-icon slot="icon" back @click=${() => history.back()}>arrow_back</md-icon>
68
+ ${this.project.name}
69
+ </h2>
70
+ <div button-container>
71
+ ${this.configProjectType === ProjectType.DCSP
72
+ ? html `
73
+ <md-elevated-button href="employee-list"> <md-icon slot="icon">badge</md-icon>인력 관리 </md-elevated-button>
74
+ <md-elevated-button href=${`project-plan-management/${this.project.id}`}>
75
+ <md-icon slot="icon">description</md-icon>도면 관리
76
+ </md-elevated-button>
77
+ <md-elevated-button href=${`project-task/${this.project.id}`}>
78
+ <md-icon slot="icon">event_note</md-icon>공정표 관리
79
+ </md-elevated-button>
80
+ <md-elevated-button href=${`project-checklist-management/${this.project.id}`}>
81
+ <md-icon slot="icon">checklist</md-icon>체크리스트 관리
82
+ </md-elevated-button>
83
+ <md-elevated-button href=${`building-inspection-management/${this.project.id}`}>
84
+ <md-icon slot="icon">open_in_new</md-icon>업무 바로가기
85
+ </md-elevated-button>
86
+ `
87
+ : html `
88
+ <md-elevated-button
89
+ target="_blank"
90
+ href=${((_a = this.project.buildingComplex) === null || _a === void 0 ? void 0 : _a.virtualTourLink) || ''}
91
+ ?disabled=${!((_b = this.project.buildingComplex) === null || _b === void 0 ? void 0 : _b.virtualTourLink)}
92
+ >
93
+ <md-icon slot="icon">smart_toy</md-icon>Virtual Tour
94
+ </md-elevated-button>
95
+ <md-elevated-button href=${`project-update/${this.project.id}`}>
96
+ <md-icon slot="icon">assignment</md-icon>프로젝트 정보 수정
97
+ </md-elevated-button>
98
+ <md-elevated-button href=${`project-plan-management/${this.project.id}`}>
99
+ <md-icon slot="icon">description</md-icon>도면 관리
100
+ </md-elevated-button>
101
+ <md-elevated-button href=${`project-task/${this.project.id}`}>
102
+ <md-icon slot="icon">event_note</md-icon>공정표 관리
103
+ </md-elevated-button>
104
+ `}
105
+ </div>
106
+ </div>
107
+
108
+ <div body>
109
+ <div>
110
+ <div left-top>
111
+ <h3>
112
+ 기본 정보
113
+ <md-elevated-button href=${`project-update/${this.project.id}`}>
114
+ <md-icon slot="icon">assignment</md-icon>프로젝트 정보 수정
115
+ </md-elevated-button>
116
+ </h3>
117
+ <div content-1>
118
+ <img
119
+ ?no-image=${!((_c = this.project.mainPhoto) === null || _c === void 0 ? void 0 : _c.fullpath)}
120
+ src=${((_d = this.project.mainPhoto) === null || _d === void 0 ? void 0 : _d.fullpath) || '/assets/images/no-image.png'}
121
+ />
122
+
123
+ <div>
124
+ <div row>
125
+ <span>- 면적 : </span>
126
+ <span>${(_f = (_e = this.project.buildingComplex) === null || _e === void 0 ? void 0 : _e.area) === null || _f === void 0 ? void 0 : _f.toLocaleString()} ㎡</span>
127
+ </div>
128
+ <div row>
129
+ <span>- 착공~준공 : </span>
130
+ <span bold>${this.project.startDate}~${this.project.endDate}</span>
131
+ </div>
132
+ <div row>
133
+ <span>- 발주처 : </span>
134
+ <span>${(_g = this.project.buildingComplex) === null || _g === void 0 ? void 0 : _g.clientCompany}</span>
135
+ </div>
136
+ <div row>
137
+ <span>- 건설사 : </span>
138
+ <span>${(_h = this.project.buildingComplex) === null || _h === void 0 ? void 0 : _h.constructionCompany}</span>
139
+ </div>
140
+ <div row>
141
+ <span>- 감리사 : </span>
142
+ <span>${(_j = this.project.buildingComplex) === null || _j === void 0 ? void 0 : _j.supervisoryCompany}</span>
143
+ </div>
144
+ <div row>
145
+ <span>- 설계사 : </span>
146
+ <span>${(_k = this.project.buildingComplex) === null || _k === void 0 ? void 0 : _k.designCompany}</span>
147
+ </div>
148
+ </div>
149
+ </div>
150
+
151
+ <div content-2>
152
+ <div row>
153
+ <span>- 건설구분 : </span>
154
+ <span>${(_l = this.project.buildingComplex) === null || _l === void 0 ? void 0 : _l.constructionType}</span>
155
+ </div>
156
+ <div row>
157
+ <span>- 공사금액 : </span>
158
+ <span>${(_o = (_m = this.project.buildingComplex) === null || _m === void 0 ? void 0 : _m.constructionCost) === null || _o === void 0 ? void 0 : _o.toLocaleString()} 억원</span>
159
+ </div>
160
+ <div row>
161
+ <span>- 세대수 : </span>
162
+ <span>${(_q = (_p = this.project.buildingComplex) === null || _p === void 0 ? void 0 : _p.householdCount) === null || _q === void 0 ? void 0 : _q.toLocaleString()}</span>
163
+ </div>
164
+ <div row>
165
+ <span>- 기타 : </span>
166
+ <span>${(_r = this.project.buildingComplex) === null || _r === void 0 ? void 0 : _r.etc}</span>
167
+ </div>
168
+ </div>
169
+ </div>
170
+
171
+ <div left-bottom>
172
+ <h3>
173
+ 조감도(BIM도면)
174
+ <md-elevated-button
175
+ target="_blank"
176
+ href=${((_s = this.project.buildingComplex) === null || _s === void 0 ? void 0 : _s.virtualTourLink) || ''}
177
+ ?disabled=${!((_t = this.project.buildingComplex) === null || _t === void 0 ? void 0 : _t.virtualTourLink)}
178
+ >
179
+ <md-icon slot="icon">smart_toy</md-icon>Virtual Tour
180
+ </md-elevated-button>
181
+ </h3>
182
+ ${((_v = (_u = this.project.buildingComplex) === null || _u === void 0 ? void 0 : _u.drawing) === null || _v === void 0 ? void 0 : _v.fullpath)
183
+ ? html `<div building-complex-img></div>`
184
+ : html `<img building-complex-img src="/assets/images/img-building-complex-default.jpg" />`}
185
+ </div>
186
+ </div>
187
+
188
+ <div>
189
+ <div right-top>
190
+ <h3>프로젝트 현황</h3>
191
+
192
+ <div kpi-header>
193
+ <span kpi-datetime
194
+ >${new Date().toLocaleDateString('ko-KR')}
195
+ ${new Date().toLocaleTimeString('ko-KR', { hour: '2-digit', minute: '2-digit', hour12: false })}</span
196
+ >
197
+ </div>
198
+ <div state>
199
+ <div kpi-container>
200
+ <div kpi-info-item kpi>
201
+ <ox-progress-circle
202
+ .value=${this.project.kpi || 0}
203
+ fontColor="transparent"
204
+ borderStyle="none"
205
+ innerCircleSize="30%"
206
+ circleColor="#E15757"
207
+ background="#f6f6f6"
208
+ size="120px"
209
+ ></ox-progress-circle>
210
+
211
+ <div kpi-info-label>
212
+ <span kpi-info-label>KPI 지수</span>
213
+ <span kpi-info-value bold>${this.project.kpi || 0}%</span>
214
+ </div>
215
+ </div>
216
+ <div kpi-info-item>
217
+ <span kpi-info-label>검측 통과율</span>
218
+ <span kpi-info-value>
219
+ <span bold>${((_w = this.inspectionSummary.pass) === null || _w === void 0 ? void 0 : _w.toLocaleString()) || 0}</span>
220
+ <span small> / ${(totalInspectionCount === null || totalInspectionCount === void 0 ? void 0 : totalInspectionCount.toLocaleString()) || 0}</span>
221
+ </span>
222
+ </div>
223
+ <div kpi-info-item>
224
+ <span kpi-info-label>작업 중 로봇</span>
225
+ <span kpi-info-value>
226
+ <span bold>${((_x = this.project.robotCount) === null || _x === void 0 ? void 0 : _x.toLocaleString()) || 0}</span>
227
+ <span small> 대</span>
228
+ </span>
229
+ </div>
230
+ <div kpi-info-item weather>
231
+ <div>
232
+ <span><md-icon slot="icon">rainy</md-icon>강수확률</span>
233
+ <span bold>${this.weather.rain}%</span>
234
+ </div>
235
+ <div>
236
+ <span><md-icon slot="icon">humidity_percentage</md-icon> 습도</span>
237
+ <span bold>${this.weather.humidity}%</span>
238
+ </div>
239
+ <div>
240
+ <span><md-icon slot="icon">thermostat</md-icon> 온도</span>
241
+ <span bold>${this.weather.temperature}°C</span>
242
+ </div>
243
+
244
+ <!--
245
+ <div>
246
+ <span><md-icon slot="icon">arrows_output</md-icon> 풍향</span>
247
+ <span bold>${this.weather.windDirection}</span>
248
+ </div>
249
+ <div>
250
+ <span><md-icon slot="icon">air</md-icon> 풍속</span>
251
+ <span bold>${this.weather.windSpeed} m/s</span>
252
+ </div>
253
+ -->
254
+ </div>
255
+ </div>
256
+
257
+ <div progress-container>
258
+ <span progress>
259
+ <ox-progress-circle
260
+ .value=${this.project.totalProgress}
261
+ titleText="전체"
262
+ suffix="%"
263
+ fontSize="27px"
264
+ fontColor="#4E5055"
265
+ borderStyle="none"
266
+ innerCircleSize="28%"
267
+ circleColor="#0595E5"
268
+ shadow="#00000026 4px 4px 4px"
269
+ background="#eaf5fd"
270
+ ></ox-progress-circle>
271
+ <div>전체공정율(%)</div>
272
+ </span>
273
+ <span progress>
274
+ <ox-progress-circle
275
+ .value=${this.project.weeklyProgress}
276
+ titleText="주간"
277
+ suffix="%"
278
+ fontSize="27px"
279
+ fontColor="#4E5055"
280
+ borderStyle="none"
281
+ innerCircleSize="28%"
282
+ circleColor="#06B5AF"
283
+ shadow="#00000026 4px 4px 4px"
284
+ background="#eaf7f7"
285
+ ></ox-progress-circle>
286
+ <div week>주간공정율(%)</div>
287
+ </span>
288
+
289
+ <span progress>
290
+ <ox-progress-circle
291
+ .value=${this.project.inspPassRate}
292
+ titleText="검측 통과"
293
+ suffix="%"
294
+ fontSize="27px"
295
+ fontColor="#4E5055"
296
+ borderStyle="none"
297
+ innerCircleSize="28%"
298
+ circleColor="#1BB401"
299
+ shadow="#00000026 4px 4px 4px"
300
+ background="#e8f7e5"
301
+ ></ox-progress-circle>
302
+ <div insp-pass-rate>통과 비율(%)</div>
303
+ </span>
304
+ <span progress>
305
+ <ox-progress-circle
306
+ .value=${this.project.robotProgressRate}
307
+ titleText="로봇작업"
308
+ suffix="%"
309
+ fontSize="27px"
310
+ fontColor="#4E5055"
311
+ borderStyle="none"
312
+ innerCircleSize="28%"
313
+ circleColor="#8957D8"
314
+ shadow="#00000026 4px 4px 4px"
315
+ background="#f3eefb"
316
+ ></ox-progress-circle>
317
+ <div robot-progress-rate>진행률(%)</div>
318
+ </span>
319
+ </div>
320
+ </div>
321
+ <div notice>
322
+ <div name bold>공지사항</div>
323
+ <div content>${this.project.buildingComplex.notice}</div>
324
+ </div>
325
+
326
+ <div inspection>
327
+ <span name bold>
328
+ <md-icon slot="icon">list_alt_add</md-icon>
329
+ 작업 현황
330
+ </span>
331
+ <span ?active=${this.statusFilter === 'WAIT'} @click=${() => this._onClickStatusFilter('WAIT')}>
332
+ <div>작업 완료</div>
333
+ <div bold wait>${(this.inspectionSummary.wait || 0) - (this.inspectionSummary.reWait || 0)}</div>
334
+ </span>
335
+ <span ?active=${this.statusFilter === 'REQUEST'} @click=${() => this._onClickStatusFilter('REQUEST')}>
336
+ <div>감리 대기</div>
337
+ <div bold request>${this.inspectionSummary.request}</div>
338
+ </span>
339
+ <span ?active=${this.statusFilter === 'FAIL'} @click=${() => this._onClickStatusFilter('FAIL')}>
340
+ <div>조치 필요</div>
341
+ <div bold fail>${this.inspectionSummary.fail}</div>
342
+ </span>
343
+ <span ?active=${this.statusFilter === 'RE_WAIT'} @click=${() => this._onClickStatusFilter('RE_WAIT')}>
344
+ <div>재검측 대기</div>
345
+ <div bold re-wait>${this.inspectionSummary.reWait || 0}</div>
346
+ </span>
347
+ <span ?active=${this.statusFilter === 'PASS'} @click=${() => this._onClickStatusFilter('PASS')}>
348
+ <div>검측 완료</div>
349
+ <div bold pass>${this.inspectionSummary.pass}</div>
350
+ </span>
351
+ </div>
352
+ </div>
353
+
354
+ <div right-bottom>
355
+ <h3>검측 현황${this.statusFilter ? ` (${this._getStatusFilterLabel()} 목록)` : ''}</h3>
356
+ <div table-container>
357
+ <hr />
358
+ <table>
359
+ <thead>
360
+ <tr>
361
+ <th width="3%"></th>
362
+ <th width="10%">검측 위치</th>
363
+ <th width="10%">공종</th>
364
+ <th width="22%">내용</th>
365
+ <th width="15%">검측 요청일</th>
366
+ <th width="10%">작업 상태</th>
367
+ </tr>
368
+ </thead>
369
+ <tbody>
370
+ ${this.buildingInspections.map((inspection, idx) => {
371
+ var _a, _b, _c, _d, _e, _f;
372
+ return html ` <tr @click=${() => this._onClickInspection(inspection)}>
373
+ <td>${idx + 1}</td>
374
+ <td>${(_b = (_a = inspection === null || inspection === void 0 ? void 0 : inspection.buildingLevel) === null || _a === void 0 ? void 0 : _a.building) === null || _b === void 0 ? void 0 : _b.name} ${(_c = inspection === null || inspection === void 0 ? void 0 : inspection.buildingLevel) === null || _c === void 0 ? void 0 : _c.floorDisplayName}층</td>
375
+ <td bold>${(_d = inspection.checklist) === null || _d === void 0 ? void 0 : _d.constructionType}</td>
376
+ <td>${((_f = (_e = inspection.checklist) === null || _e === void 0 ? void 0 : _e.inspectionParts) === null || _f === void 0 ? void 0 : _f.join(', ')) || ''}</td>
377
+ <td>${this._formatDate(inspection.requestDate)}</td>
378
+ <td bold status=${inspection.status || ''}>
379
+ ${inspection.status &&
380
+ ((inspection.failCount || 0) > 0 ? BUILDING_INSPECTION_RE_STATUS : BUILDING_INSPECTION_STATUS)[inspection.status]}
381
+ </td>
382
+ </tr>`;
383
+ })}
384
+ </tbody>
385
+ </table>
386
+ </div>
387
+ </div>
388
+ </div>
389
+ </div>
390
+ `;
391
+ }
392
+ async pageInitialized(lifecycle) { }
393
+ async pageUpdated(changes, lifecycle) {
394
+ var _a, _b;
395
+ if (this.active) {
396
+ this.projectId = lifecycle.resourceId || '';
397
+ // resourceId 없이 진입한 경우 (프로젝트 테넌트 → / 접속)
398
+ if (!this.projectId) {
399
+ const res = await client.query({
400
+ query: gql `
401
+ query {
402
+ currentProject {
403
+ id
404
+ }
405
+ }
406
+ `
407
+ });
408
+ const projectId = (_b = (_a = res.data) === null || _a === void 0 ? void 0 : _a.currentProject) === null || _b === void 0 ? void 0 : _b.id;
409
+ if (projectId) {
410
+ navigate(`project-detail/${projectId}`);
411
+ return;
412
+ }
413
+ }
414
+ await Promise.all([this.initProject(lifecycle.resourceId), this._fetchProjectType()]);
415
+ }
416
+ }
417
+ async _fetchProjectType() {
418
+ var _a;
419
+ const response = await client.query({
420
+ query: gql `
421
+ query {
422
+ currentProjectType
423
+ }
424
+ `
425
+ });
426
+ this.configProjectType = ((_a = response.data) === null || _a === void 0 ? void 0 : _a.currentProjectType) || '';
427
+ }
428
+ async initProject(projectId = '') {
429
+ var _a, _b, _c, _d, _e;
430
+ const response = await client.query({
431
+ query: gql `
432
+ query Project($id: String!, $projectId: String!, $params: BuildingInspectionsOfProject!) {
433
+ project(id: $id) {
434
+ id
435
+ name
436
+ startDate
437
+ endDate
438
+ projectType
439
+ mainPhoto {
440
+ fullpath
441
+ }
442
+ totalProgress
443
+ weeklyProgress
444
+ kpi
445
+ inspPassRate
446
+ robotProgressRate
447
+ structuralSafetyRate
448
+ robotCount
449
+ buildingComplex {
450
+ id
451
+ address
452
+ latitude
453
+ longitude
454
+ area
455
+ clientCompany
456
+ constructionCompany
457
+ supervisoryCompany
458
+ designCompany
459
+ drawing {
460
+ id
461
+ name
462
+ fullpath
463
+ }
464
+ constructionType
465
+ constructionCost
466
+ etc
467
+ notice
468
+ householdCount
469
+ buildingCount
470
+ virtualTourLink
471
+ buildings {
472
+ id
473
+ name
474
+ floorCount
475
+ }
476
+ }
477
+ }
478
+
479
+ inspectionSummary: buildingInspectionSummaryOfProject(projectId: $projectId) {
480
+ wait
481
+ request
482
+ pass
483
+ fail
484
+ reWait
485
+ }
486
+
487
+ buildingInspectionsOfProject(params: $params) {
488
+ items {
489
+ id
490
+ status
491
+ failCount
492
+ requestDate
493
+ buildingLevel {
494
+ id
495
+ floor
496
+ floorDisplayName
497
+ building {
498
+ id
499
+ name
500
+ }
501
+ }
502
+ checklist {
503
+ name
504
+ constructionType
505
+ constructionDetailType
506
+ inspectionParts
507
+ }
508
+ }
509
+ total
510
+ }
511
+ }
512
+ `,
513
+ variables: {
514
+ id: projectId,
515
+ projectId,
516
+ params: Object.assign({ projectId, limit: 10 }, (this.statusFilter ? { statusFilter: this.statusFilter } : {}))
517
+ }
518
+ });
519
+ if (response.errors)
520
+ return;
521
+ this.project = ((_a = response.data) === null || _a === void 0 ? void 0 : _a.project) || {};
522
+ this.inspectionSummary = ((_b = response.data) === null || _b === void 0 ? void 0 : _b.inspectionSummary) || {};
523
+ this.buildingInspections = ((_d = (_c = response.data) === null || _c === void 0 ? void 0 : _c.buildingInspectionsOfProject) === null || _d === void 0 ? void 0 : _d.items) || [];
524
+ this.updateContext();
525
+ const { latitude, longitude } = (_e = this.project) === null || _e === void 0 ? void 0 : _e.buildingComplex;
526
+ if (latitude && longitude) {
527
+ this.weather = await _getWeather(latitude, longitude);
528
+ }
529
+ }
530
+ async _onClickStatusFilter(filter) {
531
+ // 같은 필터 클릭 시 해제
532
+ this.statusFilter = this.statusFilter === filter ? '' : filter;
533
+ await this.initProject(this.projectId);
534
+ }
535
+ _getStatusFilterLabel() {
536
+ const labels = {
537
+ WAIT: '작업 완료',
538
+ REQUEST: '감리 대기',
539
+ FAIL: '조치 필요',
540
+ RE_WAIT: '재검측 대기',
541
+ PASS: '검측 완료'
542
+ };
543
+ return labels[this.statusFilter] || '';
544
+ }
545
+ _onClickInspection(buildingInspection) {
546
+ var _a, _b, _c;
547
+ console.log('buildingInspection :', buildingInspection);
548
+ if (this.project.projectType === ProjectType.DSSP) {
549
+ navigate(`building-inspection-grid-detail/${this.project.id}?buildingId=${(_b = (_a = buildingInspection === null || buildingInspection === void 0 ? void 0 : buildingInspection.buildingLevel) === null || _a === void 0 ? void 0 : _a.building) === null || _b === void 0 ? void 0 : _b.id}&levelId=${(_c = buildingInspection === null || buildingInspection === void 0 ? void 0 : buildingInspection.buildingLevel) === null || _c === void 0 ? void 0 : _c.id}`);
550
+ }
551
+ else if (this.project.projectType === ProjectType.DCSP) {
552
+ navigate(`building-inspection-detail-drawing/${buildingInspection.id}`);
553
+ }
554
+ }
555
+ _formatDate(date) {
556
+ if (!date)
557
+ return '';
558
+ try {
559
+ const parsed = typeof date === 'string' && /^\d+$/.test(date) ? new Date(Number(date)) : new Date(date);
560
+ return new Intl.DateTimeFormat('en-CA', {
561
+ timeZone: 'Asia/Seoul',
562
+ year: 'numeric',
563
+ month: '2-digit',
564
+ day: '2-digit'
565
+ }).format(parsed);
566
+ }
567
+ catch (_a) {
568
+ return String(date).split('T')[0] || '';
569
+ }
570
+ }
571
+ };
572
+ ProjectDetail.styles = [
573
+ ScrollbarStyles,
574
+ css `
575
+ :host {
576
+ display: grid;
577
+ grid-template-rows: 55px auto;
578
+ color: #4e5055;
579
+
580
+ width: 100%;
581
+ background-color: var(--md-sys-color-background, #f6f6f6);
582
+ overflow-y: auto;
583
+
584
+ --grid-record-emphasized-background-color: red;
585
+ --grid-record-emphasized-color: yellow;
586
+ }
587
+
588
+ md-outlined-button {
589
+ --md-outlined-button-container-height: 30px;
590
+ --md-outlined-button-trailing-space: var(--spacing-medium, 8px);
591
+ --md-outlined-button-leading-space: var(--spacing-medium, 8px);
592
+ --md-sys-color-outline: rgba(51, 51, 51, 0.2);
593
+ }
594
+
595
+ *[bold] {
596
+ font-weight: bold;
597
+ }
598
+
599
+ div[header] {
600
+ display: flex;
601
+ margin: 0px var(--spacing-large, 12px);
602
+
603
+ h2 {
604
+ display: flex;
605
+ gap: 7px;
606
+ flex: 0.5;
607
+ color: #3f71a0;
608
+ font-size: 18px;
609
+
610
+ md-icon[back] {
611
+ background: linear-gradient(135deg, #3f71a0 0%, #5a8cc7 100%);
612
+ color: white;
613
+ padding: 8px;
614
+ border-radius: 50%;
615
+ cursor: pointer;
616
+ box-shadow: 0 2px 8px rgba(63, 113, 160, 0.3);
617
+ width: 14px;
618
+ height: 14px;
619
+ --md-icon-size: 20px;
620
+ }
621
+
622
+ md-icon[back]:hover {
623
+ background: linear-gradient(135deg, #2e5c89 0%, #4a7bb0 100%);
624
+ box-shadow: 0 4px 12px rgba(63, 113, 160, 0.4);
625
+ }
626
+ }
627
+
628
+ div[button-container] {
629
+ display: flex;
630
+ align-items: center;
631
+ justify-content: end;
632
+ flex: 0.5;
633
+
634
+ md-elevated-button {
635
+ margin: 0 var(--spacing-small, 4px);
636
+
637
+ --md-elevated-button-container-height: 32px;
638
+ --md-elevated-button-label-text-size: 16px;
639
+ --md-elevated-button-container-color: #0595e5;
640
+
641
+ --md-elevated-button-label-text-color: var(--md-sys-color-on-primary);
642
+ --md-elevated-button-hover-label-text-color: var(--md-sys-color-on-primary);
643
+ --md-elevated-button-pressed-label-text-color: var(--md-sys-color-on-primary);
644
+ --md-elevated-button-focus-label-text-color: var(--md-sys-color-on-primary);
645
+ --md-elevated-button-icon-color: var(--md-sys-color-on-primary);
646
+ --md-elevated-button-hover-icon-color: var(--md-sys-color-on-primary);
647
+ --md-elevated-button-pressed-icon-color: var(--md-sys-color-on-primary);
648
+ --md-elevated-button-focus-icon-color: var(--md-sys-color-on-primary);
649
+ }
650
+ }
651
+ }
652
+
653
+ div[body] {
654
+ display: flex;
655
+ margin: var(--spacing-large, 12px);
656
+ margin-top: 0;
657
+ gap: var(--spacing-medium, 8px);
658
+
659
+ h3 {
660
+ display: flex;
661
+ align-items: center;
662
+ justify-content: space-between;
663
+ color: #2e79be;
664
+ font-size: 16px;
665
+ margin: 0px;
666
+
667
+ a {
668
+ text-decoration: none;
669
+ color: #2e79be;
670
+ }
671
+
672
+ md-elevated-button {
673
+ --md-elevated-button-container-height: 28px;
674
+ --md-elevated-button-label-text-size: 13px;
675
+ --md-elevated-button-container-color: #0595e5;
676
+ --md-elevated-button-label-text-color: var(--md-sys-color-on-primary);
677
+ --md-elevated-button-hover-label-text-color: var(--md-sys-color-on-primary);
678
+ --md-elevated-button-pressed-label-text-color: var(--md-sys-color-on-primary);
679
+ --md-elevated-button-focus-label-text-color: var(--md-sys-color-on-primary);
680
+ --md-elevated-button-icon-color: var(--md-sys-color-on-primary);
681
+ --md-elevated-button-hover-icon-color: var(--md-sys-color-on-primary);
682
+ --md-elevated-button-pressed-icon-color: var(--md-sys-color-on-primary);
683
+ --md-elevated-button-focus-icon-color: var(--md-sys-color-on-primary);
684
+ }
685
+ }
686
+
687
+ & > div {
688
+ display: flex;
689
+ flex: 1;
690
+ gap: var(--spacing-medium, 8px);
691
+ flex-direction: column;
692
+
693
+ & > div {
694
+ display: flex;
695
+ flex-direction: column;
696
+ background-color: var(--md-sys-color-on-primary);
697
+ border: 1px solid #cccccc80;
698
+ gap: var(--spacing-medium, 8px);
699
+ padding: var(--spacing-large, 12px);
700
+ border-radius: 5px;
701
+ }
702
+
703
+ div[left-top] {
704
+ div[content-1] {
705
+ display: flex;
706
+ align-items: center;
707
+ gap: var(--spacing-medium, 8px);
708
+ font-size: 14px;
709
+
710
+ img {
711
+ width: 42%;
712
+ height: auto;
713
+ aspect-ratio: 1920 / 1080;
714
+ border: 1px solid #cccccc80;
715
+ }
716
+ img[no-image] {
717
+ object-fit: contain;
718
+ opacity: 0.5;
719
+ }
720
+ }
721
+ div[content-2] {
722
+ height: 65px;
723
+ overflow-y: auto;
724
+ font-size: 14px;
725
+ }
726
+ }
727
+
728
+ div[left-bottom] {
729
+ flex: 1;
730
+
731
+ display: flex;
732
+ flex-direction: column;
733
+
734
+ [building-complex-img] {
735
+ width: 100%;
736
+ flex: 1;
737
+ aspect-ratio: 2 / 1;
738
+ }
739
+
740
+ img {
741
+ opacity: 0.5;
742
+ }
743
+ }
744
+
745
+ div[right-top] {
746
+ div[state] {
747
+ display: flex;
748
+ flex-direction: column;
749
+ gap: var(--spacing-large, 12px);
750
+
751
+ div[progress-container] {
752
+ display: flex;
753
+ justify-content: space-around;
754
+ gap: 8px;
755
+
756
+ span[progress] {
757
+ max-width: 165px;
758
+ text-align: center;
759
+ display: flex;
760
+ justify-self: center;
761
+ flex-direction: column;
762
+ width: 100%;
763
+ margin-inline: 12px;
764
+
765
+ & > div {
766
+ font-weight: bold;
767
+ color: #2e79be;
768
+ font-size: 16px;
769
+ margin-top: 9px;
770
+ }
771
+ & > div[week] {
772
+ color: #06b5af;
773
+ }
774
+ & > div[insp-pass-rate] {
775
+ color: #1bb401;
776
+ }
777
+ & > div[robot-progress-rate] {
778
+ color: #8957d8;
779
+ }
780
+ }
781
+ }
782
+
783
+ div[weather] {
784
+ display: flex;
785
+ flex-direction: column;
786
+ gap: var(--spacing-small, 4px);
787
+ margin-left: var(--spacing-medium, 8px);
788
+ font-size: 14px;
789
+
790
+ & > div {
791
+ display: flex;
792
+ justify-content: space-between;
793
+ --md-icon-size: 18px;
794
+ margin-right: var(--spacing-small, 4px);
795
+
796
+ & > span {
797
+ display: flex;
798
+ align-items: center;
799
+ gap: var(--spacing-tiny, 2px);
800
+ }
801
+ }
802
+ }
803
+ }
804
+ div[inspection] {
805
+ display: grid;
806
+ grid-template-columns: 1.4fr 0.9fr 0.9fr 0.9fr 0.9fr 0.9fr;
807
+ margin-top: 10px;
808
+ background: #f6f6f6;
809
+ border-radius: 7px;
810
+ padding: var(--spacing-small, 4px) 0px;
811
+
812
+ & > span {
813
+ display: flex;
814
+ flex-direction: column;
815
+ align-items: center;
816
+ justify-content: center;
817
+ border-radius: 5px;
818
+ padding: 4px 0;
819
+
820
+ &:not([name]) {
821
+ cursor: pointer;
822
+ }
823
+ &:not([name]):hover {
824
+ background: #e8e8e8;
825
+ }
826
+ &[active] {
827
+ background: #dceefb;
828
+ }
829
+
830
+ div[wait] {
831
+ color: #4e5055;
832
+ }
833
+ div[request] {
834
+ color: #2e79be;
835
+ }
836
+ div[pass] {
837
+ color: #1bb401;
838
+ }
839
+ div[fail] {
840
+ color: #ff4444;
841
+ }
842
+ div[re-wait] {
843
+ color: #e89c0e;
844
+ }
845
+ }
846
+ & > span[name] {
847
+ flex-direction: row;
848
+ text-align: right;
849
+ gap: var(--spacing-medium, 8px);
850
+ line-height: 1.3;
851
+
852
+ md-icon {
853
+ width: 40px;
854
+ height: 40px;
855
+ border-radius: 7px;
856
+ color: #fff;
857
+ background: #f16154;
858
+ }
859
+ }
860
+ }
861
+ div[kpi-container] {
862
+ display: flex;
863
+ gap: 8px;
864
+ margin-bottom: 8px;
865
+ align-items: center;
866
+
867
+ div[kpi-header] {
868
+ grid-column: 1 / -1;
869
+ display: flex;
870
+ justify-content: space-between;
871
+ align-items: center;
872
+ margin-bottom: var(--spacing-small, 4px);
873
+
874
+ span[kpi-title] {
875
+ font-weight: bold;
876
+ font-size: 16px;
877
+ color: #2e79be;
878
+ }
879
+
880
+ span[kpi-datetime] {
881
+ font-size: 12px;
882
+ color: #666;
883
+ }
884
+ }
885
+
886
+ div[kpi-info-item] {
887
+ display: flex;
888
+ flex: 1;
889
+ flex-direction: column;
890
+ align-items: center;
891
+ padding: 5px;
892
+ background: #f6f6f6;
893
+ border-radius: 4px;
894
+ min-height: 50px;
895
+ justify-content: center;
896
+ margin-inline: 12px;
897
+ border-radius: 7px;
898
+
899
+ span[kpi-info-label] {
900
+ font-size: 16px;
901
+ color: #4e5055;
902
+ margin-bottom: 2px;
903
+ }
904
+
905
+ span[kpi-info-value] {
906
+ font-size: 18px;
907
+
908
+ & > span[small] {
909
+ font-size: 17px;
910
+ }
911
+ }
912
+
913
+ &[weather] {
914
+ background: none;
915
+ align-items: flex-start;
916
+
917
+ & > div {
918
+ width: 100%;
919
+ }
920
+ }
921
+
922
+ &[kpi] {
923
+ flex-direction: row;
924
+ justify-content: space-around;
925
+
926
+ div[kpi-info-label] {
927
+ display: flex;
928
+ flex-direction: column;
929
+ }
930
+
931
+ ox-progress-circle {
932
+ width: 45px;
933
+ }
934
+ }
935
+ }
936
+ }
937
+ div[notice] {
938
+ margin-top: var(--spacing-medium, 8px);
939
+
940
+ div[name] {
941
+ margin-left: 4px;
942
+ }
943
+ div[content] {
944
+ background-color: #ebc8321a;
945
+ border-radius: 10px;
946
+ padding: var(--spacing-medium, 8px);
947
+ font-size: 14px;
948
+ margin-top: var(--spacing-small, 4px);
949
+ }
950
+ }
951
+ }
952
+
953
+ div[right-bottom] {
954
+ flex: 1;
955
+
956
+ display: flex;
957
+ flex-direction: column;
958
+
959
+ div[table-container] {
960
+ flex: 1;
961
+
962
+ overflow-y: auto;
963
+ overflow-x: hidden;
964
+ position: relative;
965
+ }
966
+
967
+ hr {
968
+ position: sticky;
969
+ margin: 0;
970
+ top: 0px;
971
+ border: 1px solid #3295f1;
972
+ }
973
+
974
+ table {
975
+ width: 100%;
976
+ border-collapse: collapse;
977
+ table-layout: fixed;
978
+ }
979
+
980
+ thead {
981
+ position: sticky;
982
+ top: var(--spacing-tiny, 2px);
983
+ background-color: #464651;
984
+ color: var(--md-sys-color-on-primary);
985
+ z-index: 1;
986
+ }
987
+
988
+ thead th {
989
+ padding: var(--spacing-tiny, 2px) var(--spacing-small, 4px);
990
+ font-size: 15px;
991
+ text-wrap: pretty;
992
+ }
993
+
994
+ tbody td {
995
+ border-bottom: 1px solid rgba(51, 51, 51, 0.2);
996
+ padding: var(--spacing-small, 4px);
997
+ text-align: center;
998
+ white-space: nowrap;
999
+ text-overflow: ellipsis;
1000
+ overflow: hidden;
1001
+ font-size: 13px;
1002
+ }
1003
+
1004
+ tbody td[status='FAIL'] {
1005
+ color: #e15757;
1006
+ }
1007
+
1008
+ md-elevated-button {
1009
+ margin: 0 var(--spacing-small, 4px);
1010
+
1011
+ --md-elevated-button-container-height: 32px;
1012
+ --md-elevated-button-label-text-size: 16px;
1013
+ --md-elevated-button-container-color: #0595e5;
1014
+
1015
+ --md-elevated-button-label-text-color: var(--md-sys-color-on-primary);
1016
+ --md-elevated-button-hover-label-text-color: var(--md-sys-color-on-primary);
1017
+ --md-elevated-button-pressed-label-text-color: var(--md-sys-color-on-primary);
1018
+ --md-elevated-button-focus-label-text-color: var(--md-sys-color-on-primary);
1019
+ --md-elevated-button-icon-color: var(--md-sys-color-on-primary);
1020
+ --md-elevated-button-hover-icon-color: var(--md-sys-color-on-primary);
1021
+ --md-elevated-button-pressed-icon-color: var(--md-sys-color-on-primary);
1022
+ --md-elevated-button-focus-icon-color: var(--md-sys-color-on-primary);
1023
+
1024
+ &[red] {
1025
+ --md-elevated-button-container-color: #e15757;
1026
+ }
1027
+ }
1028
+ }
1029
+ }
1030
+ }
1031
+ `
1032
+ ];
1033
+ __decorate([
1034
+ state(),
1035
+ __metadata("design:type", String)
1036
+ ], ProjectDetail.prototype, "projectId", void 0);
1037
+ __decorate([
1038
+ state(),
1039
+ __metadata("design:type", Object)
1040
+ ], ProjectDetail.prototype, "project", void 0);
1041
+ __decorate([
1042
+ state(),
1043
+ __metadata("design:type", Array)
1044
+ ], ProjectDetail.prototype, "buildingInspections", void 0);
1045
+ __decorate([
1046
+ state(),
1047
+ __metadata("design:type", Object)
1048
+ ], ProjectDetail.prototype, "inspectionSummary", void 0);
1049
+ __decorate([
1050
+ state(),
1051
+ __metadata("design:type", String)
1052
+ ], ProjectDetail.prototype, "statusFilter", void 0);
1053
+ __decorate([
1054
+ state(),
1055
+ __metadata("design:type", String)
1056
+ ], ProjectDetail.prototype, "configProjectType", void 0);
1057
+ __decorate([
1058
+ state(),
1059
+ __metadata("design:type", Object)
1060
+ ], ProjectDetail.prototype, "weather", void 0);
1061
+ ProjectDetail = __decorate([
1062
+ customElement('project-detail')
1063
+ ], ProjectDetail);
1064
+ export { ProjectDetail };
1065
+ //# sourceMappingURL=project-detail.js.map