@dssp/supervision 1.0.0 → 1.0.1

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 (501) hide show
  1. package/dist-client/bootstrap.d.ts +1 -0
  2. package/dist-client/bootstrap.js +2 -0
  3. package/dist-client/bootstrap.js.map +1 -0
  4. package/dist-client/graphql/building-inspection.d.ts +1 -0
  5. package/dist-client/graphql/building-inspection.js +102 -0
  6. package/dist-client/graphql/building-inspection.js.map +1 -0
  7. package/dist-client/index.d.ts +0 -0
  8. package/dist-client/index.js +2 -0
  9. package/dist-client/index.js.map +1 -0
  10. package/dist-client/pages/action-plan/action-plan-importer.d.ts +10 -0
  11. package/dist-client/pages/action-plan/action-plan-importer.js +101 -0
  12. package/dist-client/pages/action-plan/action-plan-importer.js.map +1 -0
  13. package/dist-client/pages/action-plan/action-plan-list-page.d.ts +62 -0
  14. package/dist-client/pages/action-plan/action-plan-list-page.js +322 -0
  15. package/dist-client/pages/action-plan/action-plan-list-page.js.map +1 -0
  16. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.d.ts +22 -0
  17. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.js +171 -0
  18. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.js.map +1 -0
  19. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.d.ts +71 -0
  20. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js +1407 -0
  21. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js.map +1 -0
  22. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement_old_ai.d.ts +59 -0
  23. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement_old_ai.js +868 -0
  24. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement_old_ai.js.map +1 -0
  25. package/dist-client/pages/building-inspection/building-inspection-detail-camera.d.ts +27 -0
  26. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js +342 -0
  27. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js.map +1 -0
  28. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.d.ts +31 -0
  29. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js +332 -0
  30. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js.map +1 -0
  31. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.d.ts +36 -0
  32. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js +369 -0
  33. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js.map +1 -0
  34. package/dist-client/pages/building-inspection/building-inspection-list.d.ts +98 -0
  35. package/dist-client/pages/building-inspection/building-inspection-list.js +914 -0
  36. package/dist-client/pages/building-inspection/building-inspection-list.js.map +1 -0
  37. package/dist-client/pages/building-inspection/building-inspection-management.d.ts +82 -0
  38. package/dist-client/pages/building-inspection/building-inspection-management.js +1527 -0
  39. package/dist-client/pages/building-inspection/building-inspection-management.js.map +1 -0
  40. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.d.ts +1 -0
  41. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js +178 -0
  42. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js.map +1 -0
  43. package/dist-client/pages/building-inspection/component/daily-worklog-popup.d.ts +27 -0
  44. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js +542 -0
  45. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js.map +1 -0
  46. package/dist-client/pages/building-inspection/component/field-document/field-document-constants.d.ts +18 -0
  47. package/dist-client/pages/building-inspection/component/field-document/field-document-constants.js +630 -0
  48. package/dist-client/pages/building-inspection/component/field-document/field-document-constants.js.map +1 -0
  49. package/dist-client/pages/building-inspection/component/field-document/field-document-detail-popup.d.ts +10 -0
  50. package/dist-client/pages/building-inspection/component/field-document/field-document-detail-popup.js +219 -0
  51. package/dist-client/pages/building-inspection/component/field-document/field-document-detail-popup.js.map +1 -0
  52. package/dist-client/pages/building-inspection/component/field-document/field-document-list-panel.d.ts +25 -0
  53. package/dist-client/pages/building-inspection/component/field-document/field-document-list-panel.js +546 -0
  54. package/dist-client/pages/building-inspection/component/field-document/field-document-list-panel.js.map +1 -0
  55. package/dist-client/pages/building-inspection/component/field-document/field-document-popup.d.ts +42 -0
  56. package/dist-client/pages/building-inspection/component/field-document/field-document-popup.js +738 -0
  57. package/dist-client/pages/building-inspection/component/field-document/field-document-popup.js.map +1 -0
  58. package/dist-client/pages/building-inspection/component/image-preview-popup.d.ts +15 -0
  59. package/dist-client/pages/building-inspection/component/image-preview-popup.js +348 -0
  60. package/dist-client/pages/building-inspection/component/image-preview-popup.js.map +1 -0
  61. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.d.ts +25 -0
  62. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js +491 -0
  63. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js.map +1 -0
  64. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.d.ts +31 -0
  65. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js +485 -0
  66. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js.map +1 -0
  67. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.d.ts +27 -0
  68. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js +416 -0
  69. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js.map +1 -0
  70. package/dist-client/pages/building-inspection/component/inspection-event-provider.d.ts +9 -0
  71. package/dist-client/pages/building-inspection/component/inspection-event-provider.js +190 -0
  72. package/dist-client/pages/building-inspection/component/inspection-event-provider.js.map +1 -0
  73. package/dist-client/pages/building-inspection/inspection-create-popup.d.ts +3 -0
  74. package/dist-client/pages/building-inspection/inspection-create-popup.js +841 -0
  75. package/dist-client/pages/building-inspection/inspection-create-popup.js.map +1 -0
  76. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.d.ts +4 -0
  77. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.js +844 -0
  78. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.js.map +1 -0
  79. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.d.ts +60 -0
  80. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js +1135 -0
  81. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js.map +1 -0
  82. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.d.ts +2 -0
  83. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js +740 -0
  84. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js.map +1 -0
  85. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.d.ts +19 -0
  86. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.js +205 -0
  87. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.js.map +1 -0
  88. package/dist-client/pages/building-inspection-grid/component/notice-comment-popup.d.ts +1 -0
  89. package/dist-client/pages/building-inspection-grid/component/notice-comment-popup.js +304 -0
  90. package/dist-client/pages/building-inspection-grid/component/notice-comment-popup.js.map +1 -0
  91. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.d.ts +15 -0
  92. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.js +430 -0
  93. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.js.map +1 -0
  94. package/dist-client/pages/checklist/attachment-list-popup.d.ts +3 -0
  95. package/dist-client/pages/checklist/attachment-list-popup.js +492 -0
  96. package/dist-client/pages/checklist/attachment-list-popup.js.map +1 -0
  97. package/dist-client/pages/checklist/checklist-view.d.ts +16 -0
  98. package/dist-client/pages/checklist/checklist-view.js +926 -0
  99. package/dist-client/pages/checklist/checklist-view.js.map +1 -0
  100. package/dist-client/pages/checklist/comment-list-popup.d.ts +1 -0
  101. package/dist-client/pages/checklist/comment-list-popup.js +367 -0
  102. package/dist-client/pages/checklist/comment-list-popup.js.map +1 -0
  103. package/dist-client/pages/checklist/file-preview-popup.d.ts +1 -0
  104. package/dist-client/pages/checklist/file-preview-popup.js +77 -0
  105. package/dist-client/pages/checklist/file-preview-popup.js.map +1 -0
  106. package/dist-client/pages/checklist/inspection-info-popup.d.ts +49 -0
  107. package/dist-client/pages/checklist/inspection-info-popup.js +683 -0
  108. package/dist-client/pages/checklist/inspection-info-popup.js.map +1 -0
  109. package/dist-client/pages/checklist/inspection-tab-popup.d.ts +18 -0
  110. package/dist-client/pages/checklist/inspection-tab-popup.js +196 -0
  111. package/dist-client/pages/checklist/inspection-tab-popup.js.map +1 -0
  112. package/dist-client/pages/checklist/kcs-criteria-popup.d.ts +16 -0
  113. package/dist-client/pages/checklist/kcs-criteria-popup.js +179 -0
  114. package/dist-client/pages/checklist/kcs-criteria-popup.js.map +1 -0
  115. package/dist-client/pages/checklist-database/checklist-database.d.ts +35 -0
  116. package/dist-client/pages/checklist-database/checklist-database.js +540 -0
  117. package/dist-client/pages/checklist-database/checklist-database.js.map +1 -0
  118. package/dist-client/pages/checklist-template/checklist-template-item.d.ts +2 -0
  119. package/dist-client/pages/checklist-template/checklist-template-item.js +278 -0
  120. package/dist-client/pages/checklist-template/checklist-template-item.js.map +1 -0
  121. package/dist-client/pages/checklist-template/checklist-template-list.d.ts +53 -0
  122. package/dist-client/pages/checklist-template/checklist-template-list.js +350 -0
  123. package/dist-client/pages/checklist-template/checklist-template-list.js.map +1 -0
  124. package/dist-client/pages/checklist-template/checklist-type-management.d.ts +55 -0
  125. package/dist-client/pages/checklist-template/checklist-type-management.js +250 -0
  126. package/dist-client/pages/checklist-template/checklist-type-management.js.map +1 -0
  127. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.d.ts +2 -0
  128. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.js +223 -0
  129. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.js.map +1 -0
  130. package/dist-client/pages/checklist-template/construction-checklist-template-list.d.ts +55 -0
  131. package/dist-client/pages/checklist-template/construction-checklist-template-list.js +404 -0
  132. package/dist-client/pages/checklist-template/construction-checklist-template-list.js.map +1 -0
  133. package/dist-client/pages/issue/issue-importer.d.ts +10 -0
  134. package/dist-client/pages/issue/issue-importer.js +101 -0
  135. package/dist-client/pages/issue/issue-importer.js.map +1 -0
  136. package/dist-client/pages/issue/issue-list-page.d.ts +62 -0
  137. package/dist-client/pages/issue/issue-list-page.js +322 -0
  138. package/dist-client/pages/issue/issue-list-page.js.map +1 -0
  139. package/dist-client/pages/project-checklist/project-checklist-management.d.ts +62 -0
  140. package/dist-client/pages/project-checklist/project-checklist-management.js +1145 -0
  141. package/dist-client/pages/project-checklist/project-checklist-management.js.map +1 -0
  142. package/dist-client/pages/project-report/project-report-importer.d.ts +10 -0
  143. package/dist-client/pages/project-report/project-report-importer.js +101 -0
  144. package/dist-client/pages/project-report/project-report-importer.js.map +1 -0
  145. package/dist-client/pages/project-report/project-report-list-page.d.ts +62 -0
  146. package/dist-client/pages/project-report/project-report-list-page.js +322 -0
  147. package/dist-client/pages/project-report/project-report-list-page.js.map +1 -0
  148. package/dist-client/pages/supervisor/supervisor-importer.d.ts +10 -0
  149. package/dist-client/pages/supervisor/supervisor-importer.js +101 -0
  150. package/dist-client/pages/supervisor/supervisor-importer.js.map +1 -0
  151. package/dist-client/pages/supervisor/supervisor-list-page.d.ts +62 -0
  152. package/dist-client/pages/supervisor/supervisor-list-page.js +322 -0
  153. package/dist-client/pages/supervisor/supervisor-list-page.js.map +1 -0
  154. package/dist-client/route.d.ts +1 -0
  155. package/dist-client/route.js +44 -0
  156. package/dist-client/route.js.map +1 -0
  157. package/dist-client/stt/speech-to-text.d.ts +41 -0
  158. package/dist-client/stt/speech-to-text.js +331 -0
  159. package/dist-client/stt/speech-to-text.js.map +1 -0
  160. package/dist-client/stt/stt-utils.d.ts +28 -0
  161. package/dist-client/stt/stt-utils.js +146 -0
  162. package/dist-client/stt/stt-utils.js.map +1 -0
  163. package/dist-client/tsconfig.tsbuildinfo +1 -0
  164. package/dist-server/controllers/index.d.ts +0 -0
  165. package/dist-server/controllers/index.js +1 -0
  166. package/dist-server/controllers/index.js.map +1 -0
  167. package/dist-server/index.d.ts +3 -0
  168. package/dist-server/index.js +7 -0
  169. package/dist-server/index.js.map +1 -0
  170. package/dist-server/middlewares/index.d.ts +1 -0
  171. package/dist-server/middlewares/index.js +7 -0
  172. package/dist-server/middlewares/index.js.map +1 -0
  173. package/dist-server/migrations/index.d.ts +1 -0
  174. package/dist-server/migrations/index.js +12 -0
  175. package/dist-server/migrations/index.js.map +1 -0
  176. package/dist-server/routes.d.ts +0 -0
  177. package/dist-server/routes.js +25 -0
  178. package/dist-server/routes.js.map +1 -0
  179. package/dist-server/service/action-plan/action-plan-mutation.d.ts +10 -0
  180. package/dist-server/service/action-plan/action-plan-mutation.js +167 -0
  181. package/dist-server/service/action-plan/action-plan-mutation.js.map +1 -0
  182. package/dist-server/service/action-plan/action-plan-query.d.ts +12 -0
  183. package/dist-server/service/action-plan/action-plan-query.js +91 -0
  184. package/dist-server/service/action-plan/action-plan-query.js.map +1 -0
  185. package/dist-server/service/action-plan/action-plan-type.d.ts +23 -0
  186. package/dist-server/service/action-plan/action-plan-type.js +86 -0
  187. package/dist-server/service/action-plan/action-plan-type.js.map +1 -0
  188. package/dist-server/service/action-plan/action-plan.d.ts +27 -0
  189. package/dist-server/service/action-plan/action-plan.js +116 -0
  190. package/dist-server/service/action-plan/action-plan.js.map +1 -0
  191. package/dist-server/service/action-plan/index.d.ts +5 -0
  192. package/dist-server/service/action-plan/index.js +9 -0
  193. package/dist-server/service/action-plan/index.js.map +1 -0
  194. package/dist-server/service/building-inspection/building-inspection-mutation.d.ts +9 -0
  195. package/dist-server/service/building-inspection/building-inspection-mutation.js +404 -0
  196. package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -0
  197. package/dist-server/service/building-inspection/building-inspection-query.d.ts +24 -0
  198. package/dist-server/service/building-inspection/building-inspection-query.js +406 -0
  199. package/dist-server/service/building-inspection/building-inspection-query.js.map +1 -0
  200. package/dist-server/service/building-inspection/building-inspection-type.d.ts +89 -0
  201. package/dist-server/service/building-inspection/building-inspection-type.js +330 -0
  202. package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -0
  203. package/dist-server/service/building-inspection/building-inspection.d.ts +42 -0
  204. package/dist-server/service/building-inspection/building-inspection.js +186 -0
  205. package/dist-server/service/building-inspection/building-inspection.js.map +1 -0
  206. package/dist-server/service/building-inspection/index.d.ts +7 -0
  207. package/dist-server/service/building-inspection/index.js +19 -0
  208. package/dist-server/service/building-inspection/index.js.map +1 -0
  209. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.d.ts +6 -0
  210. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js +66 -0
  211. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js.map +1 -0
  212. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.d.ts +16 -0
  213. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js +171 -0
  214. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js.map +1 -0
  215. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.d.ts +23 -0
  216. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js +90 -0
  217. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js.map +1 -0
  218. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.d.ts +33 -0
  219. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js +132 -0
  220. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js.map +1 -0
  221. package/dist-server/service/building-inspection-daily-worklog/index.d.ts +5 -0
  222. package/dist-server/service/building-inspection-daily-worklog/index.js +9 -0
  223. package/dist-server/service/building-inspection-daily-worklog/index.js.map +1 -0
  224. package/dist-server/service/building-inspection-history/building-inspection-history-query.d.ts +16 -0
  225. package/dist-server/service/building-inspection-history/building-inspection-history-query.js +120 -0
  226. package/dist-server/service/building-inspection-history/building-inspection-history-query.js.map +1 -0
  227. package/dist-server/service/building-inspection-history/building-inspection-history-type.d.ts +5 -0
  228. package/dist-server/service/building-inspection-history/building-inspection-history-type.js +21 -0
  229. package/dist-server/service/building-inspection-history/building-inspection-history-type.js.map +1 -0
  230. package/dist-server/service/building-inspection-history/building-inspection-history.d.ts +35 -0
  231. package/dist-server/service/building-inspection-history/building-inspection-history.js +162 -0
  232. package/dist-server/service/building-inspection-history/building-inspection-history.js.map +1 -0
  233. package/dist-server/service/building-inspection-history/event-subscriber.d.ts +7 -0
  234. package/dist-server/service/building-inspection-history/event-subscriber.js +21 -0
  235. package/dist-server/service/building-inspection-history/event-subscriber.js.map +1 -0
  236. package/dist-server/service/building-inspection-history/index.d.ts +6 -0
  237. package/dist-server/service/building-inspection-history/index.js +10 -0
  238. package/dist-server/service/building-inspection-history/index.js.map +1 -0
  239. package/dist-server/service/checklist/checklist-mutation.d.ts +3 -0
  240. package/dist-server/service/checklist/checklist-mutation.js +30 -0
  241. package/dist-server/service/checklist/checklist-mutation.js.map +1 -0
  242. package/dist-server/service/checklist/checklist-query.d.ts +21 -0
  243. package/dist-server/service/checklist/checklist-query.js +177 -0
  244. package/dist-server/service/checklist/checklist-query.js.map +1 -0
  245. package/dist-server/service/checklist/checklist-type.d.ts +5 -0
  246. package/dist-server/service/checklist/checklist-type.js +21 -0
  247. package/dist-server/service/checklist/checklist-type.js.map +1 -0
  248. package/dist-server/service/checklist/checklist.d.ts +66 -0
  249. package/dist-server/service/checklist/checklist.js +259 -0
  250. package/dist-server/service/checklist/checklist.js.map +1 -0
  251. package/dist-server/service/checklist/event-subscriber.d.ts +7 -0
  252. package/dist-server/service/checklist/event-subscriber.js +21 -0
  253. package/dist-server/service/checklist/event-subscriber.js.map +1 -0
  254. package/dist-server/service/checklist/index.d.ts +5 -0
  255. package/dist-server/service/checklist/index.js +9 -0
  256. package/dist-server/service/checklist/index.js.map +1 -0
  257. package/dist-server/service/checklist-history/checklist-history-query.d.ts +11 -0
  258. package/dist-server/service/checklist-history/checklist-history-query.js +77 -0
  259. package/dist-server/service/checklist-history/checklist-history-query.js.map +1 -0
  260. package/dist-server/service/checklist-history/checklist-history-type.d.ts +5 -0
  261. package/dist-server/service/checklist-history/checklist-history-type.js +21 -0
  262. package/dist-server/service/checklist-history/checklist-history-type.js.map +1 -0
  263. package/dist-server/service/checklist-history/checklist-history.d.ts +50 -0
  264. package/dist-server/service/checklist-history/checklist-history.js +239 -0
  265. package/dist-server/service/checklist-history/checklist-history.js.map +1 -0
  266. package/dist-server/service/checklist-history/event-subscriber.d.ts +7 -0
  267. package/dist-server/service/checklist-history/event-subscriber.js +21 -0
  268. package/dist-server/service/checklist-history/event-subscriber.js.map +1 -0
  269. package/dist-server/service/checklist-history/index.d.ts +6 -0
  270. package/dist-server/service/checklist-history/index.js +10 -0
  271. package/dist-server/service/checklist-history/index.js.map +1 -0
  272. package/dist-server/service/checklist-item/checklist-item-mutation.d.ts +4 -0
  273. package/dist-server/service/checklist-item/checklist-item-mutation.js +39 -0
  274. package/dist-server/service/checklist-item/checklist-item-mutation.js.map +1 -0
  275. package/dist-server/service/checklist-item/checklist-item-query.d.ts +18 -0
  276. package/dist-server/service/checklist-item/checklist-item-query.js +138 -0
  277. package/dist-server/service/checklist-item/checklist-item-query.js.map +1 -0
  278. package/dist-server/service/checklist-item/checklist-item-type.d.ts +9 -0
  279. package/dist-server/service/checklist-item/checklist-item-type.js +35 -0
  280. package/dist-server/service/checklist-item/checklist-item-type.js.map +1 -0
  281. package/dist-server/service/checklist-item/checklist-item.d.ts +29 -0
  282. package/dist-server/service/checklist-item/checklist-item.js +124 -0
  283. package/dist-server/service/checklist-item/checklist-item.js.map +1 -0
  284. package/dist-server/service/checklist-item/index.d.ts +5 -0
  285. package/dist-server/service/checklist-item/index.js +9 -0
  286. package/dist-server/service/checklist-item/index.js.map +1 -0
  287. package/dist-server/service/checklist-item-comment/checklist-item-comment-history.d.ts +16 -0
  288. package/dist-server/service/checklist-item-comment/checklist-item-comment-history.js +83 -0
  289. package/dist-server/service/checklist-item-comment/checklist-item-comment-history.js.map +1 -0
  290. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.d.ts +8 -0
  291. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js +114 -0
  292. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js.map +1 -0
  293. package/dist-server/service/checklist-item-comment/checklist-item-comment-query.d.ts +7 -0
  294. package/dist-server/service/checklist-item-comment/checklist-item-comment-query.js +49 -0
  295. package/dist-server/service/checklist-item-comment/checklist-item-comment-query.js.map +1 -0
  296. package/dist-server/service/checklist-item-comment/checklist-item-comment-type.d.ts +14 -0
  297. package/dist-server/service/checklist-item-comment/checklist-item-comment-type.js +53 -0
  298. package/dist-server/service/checklist-item-comment/checklist-item-comment-type.js.map +1 -0
  299. package/dist-server/service/checklist-item-comment/checklist-item-comment.d.ts +12 -0
  300. package/dist-server/service/checklist-item-comment/checklist-item-comment.js +57 -0
  301. package/dist-server/service/checklist-item-comment/checklist-item-comment.js.map +1 -0
  302. package/dist-server/service/checklist-item-comment/index.d.ts +5 -0
  303. package/dist-server/service/checklist-item-comment/index.js +10 -0
  304. package/dist-server/service/checklist-item-comment/index.js.map +1 -0
  305. package/dist-server/service/checklist-item-history/checklist-item-history-query.d.ts +16 -0
  306. package/dist-server/service/checklist-item-history/checklist-item-history-query.js +123 -0
  307. package/dist-server/service/checklist-item-history/checklist-item-history-query.js.map +1 -0
  308. package/dist-server/service/checklist-item-history/checklist-item-history-type.d.ts +5 -0
  309. package/dist-server/service/checklist-item-history/checklist-item-history-type.js +21 -0
  310. package/dist-server/service/checklist-item-history/checklist-item-history-type.js.map +1 -0
  311. package/dist-server/service/checklist-item-history/checklist-item-history.d.ts +27 -0
  312. package/dist-server/service/checklist-item-history/checklist-item-history.js +133 -0
  313. package/dist-server/service/checklist-item-history/checklist-item-history.js.map +1 -0
  314. package/dist-server/service/checklist-item-history/event-subscriber.d.ts +7 -0
  315. package/dist-server/service/checklist-item-history/event-subscriber.js +21 -0
  316. package/dist-server/service/checklist-item-history/event-subscriber.js.map +1 -0
  317. package/dist-server/service/checklist-item-history/index.d.ts +6 -0
  318. package/dist-server/service/checklist-item-history/index.js +10 -0
  319. package/dist-server/service/checklist-item-history/index.js.map +1 -0
  320. package/dist-server/service/checklist-template/checklist-template-mutation.d.ts +6 -0
  321. package/dist-server/service/checklist-template/checklist-template-mutation.js +64 -0
  322. package/dist-server/service/checklist-template/checklist-template-mutation.js.map +1 -0
  323. package/dist-server/service/checklist-template/checklist-template-query.d.ts +10 -0
  324. package/dist-server/service/checklist-template/checklist-template-query.js +62 -0
  325. package/dist-server/service/checklist-template/checklist-template-query.js.map +1 -0
  326. package/dist-server/service/checklist-template/checklist-template-type.d.ts +10 -0
  327. package/dist-server/service/checklist-template/checklist-template-type.js +39 -0
  328. package/dist-server/service/checklist-template/checklist-template-type.js.map +1 -0
  329. package/dist-server/service/checklist-template/checklist-template.d.ts +17 -0
  330. package/dist-server/service/checklist-template/checklist-template.js +78 -0
  331. package/dist-server/service/checklist-template/checklist-template.js.map +1 -0
  332. package/dist-server/service/checklist-template/index.d.ts +5 -0
  333. package/dist-server/service/checklist-template/index.js +9 -0
  334. package/dist-server/service/checklist-template/index.js.map +1 -0
  335. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.d.ts +7 -0
  336. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js +80 -0
  337. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js.map +1 -0
  338. package/dist-server/service/checklist-template-item/checklist-template-item-query.d.ts +11 -0
  339. package/dist-server/service/checklist-template-item/checklist-template-item-query.js +78 -0
  340. package/dist-server/service/checklist-template-item/checklist-template-item-query.js.map +1 -0
  341. package/dist-server/service/checklist-template-item/checklist-template-item-type.d.ts +19 -0
  342. package/dist-server/service/checklist-template-item/checklist-template-item-type.js +69 -0
  343. package/dist-server/service/checklist-template-item/checklist-template-item-type.js.map +1 -0
  344. package/dist-server/service/checklist-template-item/checklist-template-item.d.ts +26 -0
  345. package/dist-server/service/checklist-template-item/checklist-template-item.js +106 -0
  346. package/dist-server/service/checklist-template-item/checklist-template-item.js.map +1 -0
  347. package/dist-server/service/checklist-template-item/index.d.ts +5 -0
  348. package/dist-server/service/checklist-template-item/index.js +9 -0
  349. package/dist-server/service/checklist-template-item/index.js.map +1 -0
  350. package/dist-server/service/checklist-template-item/spec-matching-service.d.ts +2 -0
  351. package/dist-server/service/checklist-template-item/spec-matching-service.js +51 -0
  352. package/dist-server/service/checklist-template-item/spec-matching-service.js.map +1 -0
  353. package/dist-server/service/checklist-type/checklist-type-mutation.d.ts +6 -0
  354. package/dist-server/service/checklist-type/checklist-type-mutation.js +64 -0
  355. package/dist-server/service/checklist-type/checklist-type-mutation.js.map +1 -0
  356. package/dist-server/service/checklist-type/checklist-type-query.d.ts +10 -0
  357. package/dist-server/service/checklist-type/checklist-type-query.js +62 -0
  358. package/dist-server/service/checklist-type/checklist-type-query.js.map +1 -0
  359. package/dist-server/service/checklist-type/checklist-type-type.d.ts +11 -0
  360. package/dist-server/service/checklist-type/checklist-type-type.js +43 -0
  361. package/dist-server/service/checklist-type/checklist-type-type.js.map +1 -0
  362. package/dist-server/service/checklist-type/checklist-type.d.ts +19 -0
  363. package/dist-server/service/checklist-type/checklist-type.js +78 -0
  364. package/dist-server/service/checklist-type/checklist-type.js.map +1 -0
  365. package/dist-server/service/checklist-type/index.d.ts +5 -0
  366. package/dist-server/service/checklist-type/index.js +9 -0
  367. package/dist-server/service/checklist-type/index.js.map +1 -0
  368. package/dist-server/service/construction-checklist-template/construction-checklist-template-mutation.d.ts +7 -0
  369. package/dist-server/service/construction-checklist-template/construction-checklist-template-mutation.js +107 -0
  370. package/dist-server/service/construction-checklist-template/construction-checklist-template-mutation.js.map +1 -0
  371. package/dist-server/service/construction-checklist-template/construction-checklist-template-query.d.ts +10 -0
  372. package/dist-server/service/construction-checklist-template/construction-checklist-template-query.js +62 -0
  373. package/dist-server/service/construction-checklist-template/construction-checklist-template-query.js.map +1 -0
  374. package/dist-server/service/construction-checklist-template/construction-checklist-template-type.d.ts +11 -0
  375. package/dist-server/service/construction-checklist-template/construction-checklist-template-type.js +43 -0
  376. package/dist-server/service/construction-checklist-template/construction-checklist-template-type.js.map +1 -0
  377. package/dist-server/service/construction-checklist-template/construction-checklist-template.d.ts +18 -0
  378. package/dist-server/service/construction-checklist-template/construction-checklist-template.js +80 -0
  379. package/dist-server/service/construction-checklist-template/construction-checklist-template.js.map +1 -0
  380. package/dist-server/service/construction-checklist-template/index.d.ts +5 -0
  381. package/dist-server/service/construction-checklist-template/index.js +9 -0
  382. package/dist-server/service/construction-checklist-template/index.js.map +1 -0
  383. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.d.ts +6 -0
  384. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.js +56 -0
  385. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.js.map +1 -0
  386. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-query.d.ts +9 -0
  387. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-query.js +53 -0
  388. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-query.js.map +1 -0
  389. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-type.d.ts +17 -0
  390. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-type.js +67 -0
  391. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-type.js.map +1 -0
  392. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item.d.ts +24 -0
  393. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item.js +113 -0
  394. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item.js.map +1 -0
  395. package/dist-server/service/construction-checklist-template-item/index.d.ts +5 -0
  396. package/dist-server/service/construction-checklist-template-item/index.js +9 -0
  397. package/dist-server/service/construction-checklist-template-item/index.js.map +1 -0
  398. package/dist-server/service/field-document/field-document-auto-file.d.ts +21 -0
  399. package/dist-server/service/field-document/field-document-auto-file.js +47 -0
  400. package/dist-server/service/field-document/field-document-auto-file.js.map +1 -0
  401. package/dist-server/service/field-document/field-document-mutation.d.ts +9 -0
  402. package/dist-server/service/field-document/field-document-mutation.js +139 -0
  403. package/dist-server/service/field-document/field-document-mutation.js.map +1 -0
  404. package/dist-server/service/field-document/field-document-query.d.ts +14 -0
  405. package/dist-server/service/field-document/field-document-query.js +120 -0
  406. package/dist-server/service/field-document/field-document-query.js.map +1 -0
  407. package/dist-server/service/field-document/field-document-summary-service.d.ts +10 -0
  408. package/dist-server/service/field-document/field-document-summary-service.js +79 -0
  409. package/dist-server/service/field-document/field-document-summary-service.js.map +1 -0
  410. package/dist-server/service/field-document/field-document-type.d.ts +24 -0
  411. package/dist-server/service/field-document/field-document-type.js +88 -0
  412. package/dist-server/service/field-document/field-document-type.js.map +1 -0
  413. package/dist-server/service/field-document/field-document.d.ts +29 -0
  414. package/dist-server/service/field-document/field-document.js +127 -0
  415. package/dist-server/service/field-document/field-document.js.map +1 -0
  416. package/dist-server/service/field-document/index.d.ts +5 -0
  417. package/dist-server/service/field-document/index.js +9 -0
  418. package/dist-server/service/field-document/index.js.map +1 -0
  419. package/dist-server/service/index.d.ts +23 -0
  420. package/dist-server/service/index.js +98 -0
  421. package/dist-server/service/index.js.map +1 -0
  422. package/dist-server/service/issue/index.d.ts +5 -0
  423. package/dist-server/service/issue/index.js +9 -0
  424. package/dist-server/service/issue/index.js.map +1 -0
  425. package/dist-server/service/issue/issue-mutation.d.ts +10 -0
  426. package/dist-server/service/issue/issue-mutation.js +167 -0
  427. package/dist-server/service/issue/issue-mutation.js.map +1 -0
  428. package/dist-server/service/issue/issue-query.d.ts +12 -0
  429. package/dist-server/service/issue/issue-query.js +91 -0
  430. package/dist-server/service/issue/issue-query.js.map +1 -0
  431. package/dist-server/service/issue/issue-type.d.ts +23 -0
  432. package/dist-server/service/issue/issue-type.js +86 -0
  433. package/dist-server/service/issue/issue-type.js.map +1 -0
  434. package/dist-server/service/issue/issue.d.ts +26 -0
  435. package/dist-server/service/issue/issue.js +111 -0
  436. package/dist-server/service/issue/issue.js.map +1 -0
  437. package/dist-server/service/project-checklist/index.d.ts +5 -0
  438. package/dist-server/service/project-checklist/index.js +9 -0
  439. package/dist-server/service/project-checklist/index.js.map +1 -0
  440. package/dist-server/service/project-checklist/project-checklist-mutation.d.ts +7 -0
  441. package/dist-server/service/project-checklist/project-checklist-mutation.js +118 -0
  442. package/dist-server/service/project-checklist/project-checklist-mutation.js.map +1 -0
  443. package/dist-server/service/project-checklist/project-checklist-query.d.ts +12 -0
  444. package/dist-server/service/project-checklist/project-checklist-query.js +76 -0
  445. package/dist-server/service/project-checklist/project-checklist-query.js.map +1 -0
  446. package/dist-server/service/project-checklist/project-checklist-type.d.ts +18 -0
  447. package/dist-server/service/project-checklist/project-checklist-type.js +69 -0
  448. package/dist-server/service/project-checklist/project-checklist-type.js.map +1 -0
  449. package/dist-server/service/project-checklist/project-checklist.d.ts +20 -0
  450. package/dist-server/service/project-checklist/project-checklist.js +90 -0
  451. package/dist-server/service/project-checklist/project-checklist.js.map +1 -0
  452. package/dist-server/service/project-checklist/spec-matching-service.d.ts +17 -0
  453. package/dist-server/service/project-checklist/spec-matching-service.js +140 -0
  454. package/dist-server/service/project-checklist/spec-matching-service.js.map +1 -0
  455. package/dist-server/service/project-checklist-item/index.d.ts +4 -0
  456. package/dist-server/service/project-checklist-item/index.js +9 -0
  457. package/dist-server/service/project-checklist-item/index.js.map +1 -0
  458. package/dist-server/service/project-checklist-item/project-checklist-item-mutation.d.ts +2 -0
  459. package/dist-server/service/project-checklist-item/project-checklist-item-mutation.js +13 -0
  460. package/dist-server/service/project-checklist-item/project-checklist-item-mutation.js.map +1 -0
  461. package/dist-server/service/project-checklist-item/project-checklist-item-query.d.ts +5 -0
  462. package/dist-server/service/project-checklist-item/project-checklist-item-query.js +34 -0
  463. package/dist-server/service/project-checklist-item/project-checklist-item-query.js.map +1 -0
  464. package/dist-server/service/project-checklist-item/project-checklist-item-type.d.ts +5 -0
  465. package/dist-server/service/project-checklist-item/project-checklist-item-type.js +21 -0
  466. package/dist-server/service/project-checklist-item/project-checklist-item-type.js.map +1 -0
  467. package/dist-server/service/project-checklist-item/project-checklist-item.d.ts +19 -0
  468. package/dist-server/service/project-checklist-item/project-checklist-item.js +92 -0
  469. package/dist-server/service/project-checklist-item/project-checklist-item.js.map +1 -0
  470. package/dist-server/service/project-report/index.d.ts +5 -0
  471. package/dist-server/service/project-report/index.js +9 -0
  472. package/dist-server/service/project-report/index.js.map +1 -0
  473. package/dist-server/service/project-report/project-report-mutation.d.ts +10 -0
  474. package/dist-server/service/project-report/project-report-mutation.js +167 -0
  475. package/dist-server/service/project-report/project-report-mutation.js.map +1 -0
  476. package/dist-server/service/project-report/project-report-query.d.ts +12 -0
  477. package/dist-server/service/project-report/project-report-query.js +91 -0
  478. package/dist-server/service/project-report/project-report-query.js.map +1 -0
  479. package/dist-server/service/project-report/project-report-type.d.ts +23 -0
  480. package/dist-server/service/project-report/project-report-type.js +86 -0
  481. package/dist-server/service/project-report/project-report-type.js.map +1 -0
  482. package/dist-server/service/project-report/project-report.d.ts +28 -0
  483. package/dist-server/service/project-report/project-report.js +121 -0
  484. package/dist-server/service/project-report/project-report.js.map +1 -0
  485. package/dist-server/service/supervisor/index.d.ts +5 -0
  486. package/dist-server/service/supervisor/index.js +9 -0
  487. package/dist-server/service/supervisor/index.js.map +1 -0
  488. package/dist-server/service/supervisor/supervisor-mutation.d.ts +10 -0
  489. package/dist-server/service/supervisor/supervisor-mutation.js +167 -0
  490. package/dist-server/service/supervisor/supervisor-mutation.js.map +1 -0
  491. package/dist-server/service/supervisor/supervisor-query.d.ts +12 -0
  492. package/dist-server/service/supervisor/supervisor-query.js +91 -0
  493. package/dist-server/service/supervisor/supervisor-query.js.map +1 -0
  494. package/dist-server/service/supervisor/supervisor-type.d.ts +23 -0
  495. package/dist-server/service/supervisor/supervisor-type.js +86 -0
  496. package/dist-server/service/supervisor/supervisor-type.js.map +1 -0
  497. package/dist-server/service/supervisor/supervisor.d.ts +28 -0
  498. package/dist-server/service/supervisor/supervisor.js +121 -0
  499. package/dist-server/service/supervisor/supervisor.js.map +1 -0
  500. package/dist-server/tsconfig.tsbuildinfo +1 -0
  501. package/package.json +4 -4
@@ -0,0 +1,1145 @@
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/button/filled-button.js';
5
+ import '@material/web/select/filled-select.js';
6
+ import '@material/web/select/select-option.js';
7
+ import '@material/web/textfield/filled-text-field.js';
8
+ import '@operato/data-grist';
9
+ import '../checklist/checklist-view';
10
+ import '../checklist/kcs-criteria-popup';
11
+ import { CommonGristStyles, ScrollbarStyles, ButtonContainerStyles } from '@operato/styles';
12
+ import { PageView } from '@operato/shell';
13
+ import { css, html } from 'lit';
14
+ import { customElement, query, state } from 'lit/decorators.js';
15
+ import { DataGrist } from '@operato/data-grist';
16
+ import { client } from '@operato/graphql';
17
+ import { notify, openPopup } from '@operato/layout';
18
+ import gql from 'graphql-tag';
19
+ import { BuildingInspectionStatus } from '../building-inspection/building-inspection-list';
20
+ let ProjectChecklistManagement = class ProjectChecklistManagement extends PageView {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.projectId = '';
24
+ this.projectName = '';
25
+ this.constructionTypes = [];
26
+ this.allDetailTypes = [];
27
+ this.selectedConstructionType = {};
28
+ this.selectedConstructionDetailType = {};
29
+ this.checklistName = '';
30
+ this.templateItems = [];
31
+ this.isEditMode = false;
32
+ this.selectedChecklistId = null;
33
+ this.siteSpecPdfUrl = '';
34
+ this.siteSpecPdfName = '';
35
+ this.siteSpecDetail = null;
36
+ this.siteSpecDetailItem = '';
37
+ }
38
+ get context() {
39
+ return {
40
+ title: this.projectName ? `체크리스트 관리 - ${this.projectName}` : '체크리스트 관리'
41
+ };
42
+ }
43
+ render() {
44
+ var _a, _b, _c;
45
+ return html `
46
+ <div header>
47
+ <h2>
48
+ <md-icon slot="icon" back @click=${() => history.back()}>arrow_back</md-icon>
49
+ 체크리스트 관리
50
+ </h2>
51
+ <div button-container>
52
+ <input
53
+ id="siteSpecFileInput"
54
+ type="file"
55
+ accept="application/pdf,.pdf"
56
+ style="display: none"
57
+ @change=${this._onUploadSiteSpecPdf}
58
+ />
59
+ ${this.siteSpecPdfName
60
+ ? html `<span site-spec-name title=${this.siteSpecPdfName}>
61
+ <md-icon>description</md-icon>
62
+ <span filename>${this.siteSpecPdfName}</span>
63
+ <md-icon clickable @click=${this._removeSiteSpecPdf}>close</md-icon>
64
+ </span>`
65
+ : ''}
66
+ <md-elevated-button @click=${() => { var _a; return (_a = this.renderRoot.querySelector('#siteSpecFileInput')) === null || _a === void 0 ? void 0 : _a.click(); }}>
67
+ <md-icon slot="icon">upload_file</md-icon>현장 시방서 업로드
68
+ </md-elevated-button>
69
+ <md-elevated-button href=${`project-detail/${this.projectId}`}>
70
+ <md-icon slot="icon">home</md-icon>프로젝트 홈
71
+ </md-elevated-button>
72
+ </div>
73
+ </div>
74
+
75
+ <div body>
76
+ <div left>
77
+ <div section-header>${this.isEditMode ? '체크리스트 수정' : '체크리스트 등록'}</div>
78
+
79
+ <div form-area>
80
+ <label>공종</label>
81
+ <md-filled-select constructionType @change=${this._onSelectConstructionType}>
82
+ <md-select-option ?selected=${!((_a = this.selectedConstructionType) === null || _a === void 0 ? void 0 : _a.id)} value="">
83
+ <div slot="headline">선택</div>
84
+ </md-select-option>
85
+ ${(_b = this.constructionTypes) === null || _b === void 0 ? void 0 : _b.map(ct => {
86
+ var _a;
87
+ const selected = ct.id === ((_a = this.selectedConstructionType) === null || _a === void 0 ? void 0 : _a.id);
88
+ return html `<md-select-option ?selected=${selected} .value=${ct.id}>
89
+ <div slot="headline">${ct.name}</div>
90
+ </md-select-option>`;
91
+ })}
92
+ </md-filled-select>
93
+
94
+ <label>세부공종</label>
95
+ <md-filled-select constructionDetailType @change=${this._onSelectConstructionDetailType}>
96
+ ${(((_c = this.selectedConstructionType) === null || _c === void 0 ? void 0 : _c.constructionDetailTypes) || []).map(cdt => {
97
+ var _a;
98
+ const selected = cdt.id === ((_a = this.selectedConstructionDetailType) === null || _a === void 0 ? void 0 : _a.id);
99
+ return html `<md-select-option ?selected=${selected} .value=${cdt.id}>
100
+ <div slot="headline">${cdt.name}</div>
101
+ </md-select-option>`;
102
+ })}
103
+ </md-filled-select>
104
+
105
+ <label>이름</label>
106
+ <md-filled-text-field
107
+ .value=${this.checklistName}
108
+ @input=${e => {
109
+ this.checklistName = e.target.value;
110
+ }}
111
+ ></md-filled-text-field>
112
+ </div>
113
+
114
+ <ox-grist left .mode=${'GRID'} .config=${this.leftGristConfig}></ox-grist>
115
+
116
+ <div button-container>
117
+ <md-elevated-button save @click=${this._save}>
118
+ <md-icon slot="icon">${this.isEditMode ? 'save' : 'add'}</md-icon>
119
+ ${this.isEditMode ? '수정' : '등록'}
120
+ </md-elevated-button>
121
+ <md-elevated-button delete @click=${this._delete}> <md-icon slot="icon">delete</md-icon>삭제 </md-elevated-button>
122
+ </div>
123
+ </div>
124
+
125
+ <div right>
126
+ <div section-header>체크리스트 목록</div>
127
+
128
+ <ox-grist
129
+ right
130
+ .mode=${'GRID'}
131
+ .config=${this.rightGristConfig}
132
+ .fetchHandler=${this._fetchChecklists.bind(this)}
133
+ ></ox-grist>
134
+ </div>
135
+ </div>
136
+
137
+ ${this.siteSpecDetail
138
+ ? html `<kcs-criteria-popup
139
+ .popupTitle=${'현장 시방서 기준'}
140
+ .kcs=${{ text: this.siteSpecDetail }}
141
+ .itemName=${this.siteSpecDetailItem}
142
+ @close=${() => (this.siteSpecDetail = null)}
143
+ ></kcs-criteria-popup>`
144
+ : ''}
145
+ `;
146
+ }
147
+ async pageUpdated(changes, lifecycle) {
148
+ if (this.active) {
149
+ this.projectId = lifecycle.resourceId || '';
150
+ await this._init();
151
+ }
152
+ }
153
+ async pageInitialized(lifecycle) {
154
+ this.projectId = lifecycle.resourceId || '';
155
+ await this._init();
156
+ }
157
+ async _init() {
158
+ await Promise.all([this._fetchProjectName(), this._fetchConstructionTypes()]);
159
+ this._buildLeftGristConfig();
160
+ this._buildRightGristConfig();
161
+ }
162
+ async _fetchProjectName() {
163
+ var _a, _b, _c, _d;
164
+ if (!this.projectId)
165
+ return;
166
+ const response = await client.query({
167
+ query: gql `
168
+ query Project($id: String!) {
169
+ project(id: $id) {
170
+ name
171
+ siteSpecPdfUrl
172
+ }
173
+ }
174
+ `,
175
+ variables: { id: this.projectId }
176
+ });
177
+ this.projectName = ((_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.project) === null || _b === void 0 ? void 0 : _b.name) || '';
178
+ // 현장 시방서 PDF는 프로젝트 단위로 저장되므로 프로젝트에서 로드
179
+ this.siteSpecPdfUrl = ((_d = (_c = response.data) === null || _c === void 0 ? void 0 : _c.project) === null || _d === void 0 ? void 0 : _d.siteSpecPdfUrl) || '';
180
+ this.siteSpecPdfName = this.siteSpecPdfUrl ? await this._fetchSiteSpecPdfName(this.siteSpecPdfUrl) : '';
181
+ this.updateContext();
182
+ }
183
+ // 현장 시방서 URL(S3 key 기반)에 해당하는 첨부파일의 원본 파일명 조회
184
+ async _fetchSiteSpecPdfName(url) {
185
+ var _a, _b, _c;
186
+ const key = decodeURIComponent(url.split('/').pop() || '');
187
+ try {
188
+ const response = await client.query({
189
+ query: gql `
190
+ query ($filters: [Filter!]) {
191
+ attachments(filters: $filters) {
192
+ items {
193
+ name
194
+ path
195
+ }
196
+ }
197
+ }
198
+ `,
199
+ variables: {
200
+ filters: [
201
+ { name: 'refBy', value: this.projectId, operator: 'eq' },
202
+ { name: 'refType', value: 'Project', operator: 'eq' }
203
+ ]
204
+ }
205
+ });
206
+ const items = ((_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.attachments) === null || _b === void 0 ? void 0 : _b.items) || [];
207
+ return ((_c = items.find(a => a.path === key)) === null || _c === void 0 ? void 0 : _c.name) || key;
208
+ }
209
+ catch (_d) {
210
+ return key;
211
+ }
212
+ }
213
+ // 현장 시방서 PDF 업로드 → 첨부 후 전체 URL(https~)을 프로젝트에 저장
214
+ async _onUploadSiteSpecPdf(e) {
215
+ var _a, _b, _c;
216
+ const input = e.target;
217
+ const file = (_a = input.files) === null || _a === void 0 ? void 0 : _a[0];
218
+ if (!file)
219
+ return;
220
+ if (file.type !== 'application/pdf' && !file.name.toLowerCase().endsWith('.pdf')) {
221
+ notify({ message: 'PDF 파일만 업로드할 수 있습니다.', level: 'warn' });
222
+ input.value = '';
223
+ return;
224
+ }
225
+ const response = await client.mutate({
226
+ mutation: gql `
227
+ mutation ($attachments: [NewAttachment!]!) {
228
+ createAttachments(attachments: $attachments) {
229
+ id
230
+ name
231
+ fullpath
232
+ }
233
+ }
234
+ `,
235
+ variables: {
236
+ attachments: [{ file, refBy: this.projectId, refType: 'Project', description: 'site-spec' }]
237
+ },
238
+ context: { hasUpload: true }
239
+ });
240
+ input.value = '';
241
+ const attachment = (_c = (_b = response.data) === null || _b === void 0 ? void 0 : _b.createAttachments) === null || _c === void 0 ? void 0 : _c[0];
242
+ if (!attachment) {
243
+ notify({ message: '업로드에 실패하였습니다.', level: 'error' });
244
+ return;
245
+ }
246
+ // fullpath 는 /attachment/... 형태의 상대경로 → location.origin 을 붙여 https 전체 URL 생성
247
+ this.siteSpecPdfUrl = `${location.origin}${attachment.fullpath}`;
248
+ this.siteSpecPdfName = attachment.name || file.name;
249
+ await this._saveSiteSpecPdfToProject();
250
+ notify({ message: '현장 시방서를 업로드하였습니다.' });
251
+ }
252
+ async _removeSiteSpecPdf() {
253
+ if (!confirm('현장 시방서를 삭제하시겠습니까?'))
254
+ return;
255
+ this.siteSpecPdfUrl = '';
256
+ this.siteSpecPdfName = '';
257
+ await this._saveSiteSpecPdfToProject();
258
+ notify({ message: '현장 시방서를 삭제하였습니다.' });
259
+ }
260
+ // 현장 시방서 PDF URL을 프로젝트에 저장 (프로젝트 단위 공통 값)
261
+ async _saveSiteSpecPdfToProject() {
262
+ await client.mutate({
263
+ mutation: gql `
264
+ mutation ($project: ProjectPatch!) {
265
+ updateProject(project: $project) {
266
+ id
267
+ }
268
+ }
269
+ `,
270
+ variables: {
271
+ project: { id: this.projectId, siteSpecPdfUrl: this.siteSpecPdfUrl || null }
272
+ }
273
+ });
274
+ }
275
+ async _fetchConstructionTypes() {
276
+ var _a, _b;
277
+ const response = await client.query({
278
+ query: gql `
279
+ query {
280
+ constructionTypes {
281
+ items {
282
+ id
283
+ name
284
+ projectType
285
+ constructionDetailTypes {
286
+ id
287
+ name
288
+ sequence
289
+ }
290
+ }
291
+ }
292
+ }
293
+ `
294
+ });
295
+ const items = (((_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.constructionTypes) === null || _b === void 0 ? void 0 : _b.items) || []).filter((ct) => ct.projectType === 'DCSP' || !ct.projectType);
296
+ this.constructionTypes = items;
297
+ this.allDetailTypes = items.flatMap(ct => (ct.constructionDetailTypes || []).map(dt => (Object.assign(Object.assign({}, dt), { constructionTypeId: ct.id }))));
298
+ // 초기에는 선택하지 않음 (사용자가 직접 선택)
299
+ this.selectedConstructionType = {};
300
+ this.selectedConstructionDetailType = {};
301
+ }
302
+ _buildLeftGristConfig() {
303
+ this.leftGristConfig = {
304
+ columns: [
305
+ { type: 'gutter', gutterName: 'row-selector', multiple: true },
306
+ {
307
+ type: 'gutter',
308
+ gutterName: 'button',
309
+ icon: 'arrow_upward',
310
+ handlers: { click: 'move-up' }
311
+ },
312
+ {
313
+ type: 'gutter',
314
+ gutterName: 'button',
315
+ icon: 'arrow_downward',
316
+ handlers: { click: 'move-down' }
317
+ },
318
+ {
319
+ type: 'string',
320
+ name: 'mainType',
321
+ header: '구분',
322
+ record: { editable: true },
323
+ width: 100
324
+ },
325
+ {
326
+ type: 'text-select',
327
+ name: 'name',
328
+ header: '검사항목',
329
+ record: {
330
+ editable: true,
331
+ options: (value, column, record) => {
332
+ if (!record)
333
+ return [];
334
+ const items = [
335
+ record.originalName,
336
+ record.recommendation1,
337
+ record.recommendation2,
338
+ record.recommendation3,
339
+ record.recommendation4,
340
+ record.recommendation5
341
+ ].filter(Boolean);
342
+ return [...new Set(items)].map(r => ({ display: r, value: r }));
343
+ }
344
+ },
345
+ width: 250
346
+ },
347
+ {
348
+ type: 'string',
349
+ name: 'kcsCriteriaLabel',
350
+ header: 'KCS 시방서 기준',
351
+ record: { editable: false },
352
+ width: 220
353
+ },
354
+ {
355
+ type: 'string',
356
+ name: 'siteSpecCriteria',
357
+ header: '현장 시방서 기준',
358
+ record: {
359
+ editable: false,
360
+ // 본문 앞 20글자만 요약 표시 (클릭 시 팝업으로 전체 본문 확인)
361
+ renderer: (value) => (value && value.length > 20 ? `${value.slice(0, 20)}...` : value || '')
362
+ },
363
+ handlers: {
364
+ click: (columns, data, column, record) => {
365
+ if (!(record === null || record === void 0 ? void 0 : record.siteSpecCriteria))
366
+ return;
367
+ this.siteSpecDetail = record.siteSpecCriteria;
368
+ this.siteSpecDetailItem = record.name || '';
369
+ }
370
+ },
371
+ width: 220
372
+ },
373
+ { type: 'string', name: 'kcsCriteria', hidden: true },
374
+ { type: 'string', name: 'originalName', hidden: true },
375
+ { type: 'string', name: 'recommendation1', hidden: true },
376
+ { type: 'string', name: 'recommendation2', hidden: true },
377
+ { type: 'string', name: 'recommendation3', hidden: true },
378
+ { type: 'string', name: 'recommendation4', hidden: true },
379
+ { type: 'string', name: 'recommendation5', hidden: true }
380
+ ],
381
+ rows: {
382
+ selectable: { multiple: true }
383
+ },
384
+ pagination: { infinite: true }
385
+ };
386
+ }
387
+ _buildRightGristConfig() {
388
+ this.rightGristConfig = {
389
+ columns: [
390
+ { type: 'gutter', gutterName: 'row-selector', multiple: false },
391
+ { type: 'gutter', gutterName: 'sequence' },
392
+ {
393
+ type: 'gutter',
394
+ gutterName: 'button',
395
+ fixed: true,
396
+ icon: 'preview',
397
+ handlers: {
398
+ click: async (columns, data, column, record, rowIndex) => {
399
+ if (!record.id)
400
+ return;
401
+ await this._openPreview(record);
402
+ }
403
+ }
404
+ },
405
+ {
406
+ type: 'string',
407
+ name: 'constructionTypeName',
408
+ header: '공종',
409
+ width: 120
410
+ },
411
+ {
412
+ type: 'string',
413
+ name: 'constructionDetailTypeName',
414
+ header: '세부공종',
415
+ width: 120
416
+ },
417
+ {
418
+ type: 'string',
419
+ name: 'name',
420
+ header: '체크리스트명',
421
+ width: 180
422
+ }
423
+ ],
424
+ rows: {
425
+ selectable: { multiple: false },
426
+ appendable: false,
427
+ handlers: {
428
+ click: this._handleRightGristRowClick.bind(this)
429
+ }
430
+ },
431
+ pagination: { infinite: true }
432
+ };
433
+ }
434
+ async _fetchChecklists() {
435
+ var _a, _b, _c, _d;
436
+ if (!this.projectId)
437
+ return { total: 0, records: [] };
438
+ const response = await client.query({
439
+ query: gql `
440
+ query ($filters: [Filter!], $sortings: [Sorting!]) {
441
+ projectChecklists(filters: $filters, sortings: $sortings) {
442
+ items {
443
+ id
444
+ projectId
445
+ constructionTypeId
446
+ constructionDetailTypeId
447
+ name
448
+ updatedAt
449
+ }
450
+ total
451
+ }
452
+ }
453
+ `,
454
+ variables: {
455
+ filters: [{ name: 'projectId', value: this.projectId, operator: 'eq' }],
456
+ sortings: [{ name: 'updatedAt', desc: true }]
457
+ }
458
+ });
459
+ const items = ((_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.projectChecklists) === null || _b === void 0 ? void 0 : _b.items) || [];
460
+ // 공종/세부공종 이름을 클라이언트에서 매핑
461
+ const records = items.map(item => {
462
+ var _a, _b;
463
+ return (Object.assign(Object.assign({}, item), { constructionTypeName: ((_a = this.constructionTypes.find(ct => ct.id === item.constructionTypeId)) === null || _a === void 0 ? void 0 : _a.name) || '', constructionDetailTypeName: ((_b = this.allDetailTypes.find(dt => dt.id === item.constructionDetailTypeId)) === null || _b === void 0 ? void 0 : _b.name) || '' }));
464
+ });
465
+ return {
466
+ total: ((_d = (_c = response.data) === null || _c === void 0 ? void 0 : _c.projectChecklists) === null || _d === void 0 ? void 0 : _d.total) || 0,
467
+ records
468
+ };
469
+ }
470
+ async _onSelectConstructionType(e) {
471
+ var _a, _b;
472
+ const ctId = e.target.value;
473
+ const ct = this.constructionTypes.find(c => c.id === ctId) || {};
474
+ this.selectedConstructionType = ct;
475
+ this.selectedConstructionDetailType = Object.assign({}, (((_a = ct.constructionDetailTypes) === null || _a === void 0 ? void 0 : _a[0]) || {}));
476
+ // re-render 완료 후 세부공종 select UI 동기화
477
+ await this.updateComplete;
478
+ await ((_b = this.htmlSelectConstructionDetailType) === null || _b === void 0 ? void 0 : _b.selectIndex(0));
479
+ if (!this.isEditMode) {
480
+ await this._loadTemplateItems();
481
+ }
482
+ }
483
+ async _onSelectConstructionDetailType(e) {
484
+ var _a, _b;
485
+ const cdtId = e.target.value;
486
+ this.selectedConstructionDetailType = Object.assign({}, (((_b = (_a = this.selectedConstructionType) === null || _a === void 0 ? void 0 : _a.constructionDetailTypes) === null || _b === void 0 ? void 0 : _b.find(d => d.id === cdtId)) || {}));
487
+ if (!this.isEditMode) {
488
+ await this._loadTemplateItems();
489
+ }
490
+ }
491
+ async _loadTemplateItems() {
492
+ var _a, _b, _c, _d, _e, _f;
493
+ const ctId = (_a = this.selectedConstructionType) === null || _a === void 0 ? void 0 : _a.id;
494
+ const cdtId = (_b = this.selectedConstructionDetailType) === null || _b === void 0 ? void 0 : _b.id;
495
+ if (!ctId || !cdtId) {
496
+ this.templateItems = [];
497
+ this.leftGrist.data = { records: [] };
498
+ return;
499
+ }
500
+ // upsert로 템플릿 찾기/생성
501
+ const upsertRes = await client.mutate({
502
+ mutation: gql `
503
+ mutation ($ctId: String!, $cdtId: String!) {
504
+ upsertConstructionChecklistTemplate(constructionTypeId: $ctId, constructionDetailTypeId: $cdtId) {
505
+ id
506
+ }
507
+ }
508
+ `,
509
+ variables: { ctId, cdtId }
510
+ });
511
+ const templateId = (_d = (_c = upsertRes.data) === null || _c === void 0 ? void 0 : _c.upsertConstructionChecklistTemplate) === null || _d === void 0 ? void 0 : _d.id;
512
+ if (!templateId)
513
+ return;
514
+ const response = await client.query({
515
+ query: gql `
516
+ query ($filters: [Filter!], $sortings: [Sorting!]) {
517
+ constructionChecklistTemplateItems(filters: $filters, sortings: $sortings) {
518
+ items {
519
+ id
520
+ sequence
521
+ mainType
522
+ name
523
+ recommendation1
524
+ recommendation2
525
+ recommendation3
526
+ recommendation4
527
+ recommendation5
528
+ }
529
+ }
530
+ }
531
+ `,
532
+ variables: {
533
+ filters: [{ name: 'constructionChecklistTemplateId', value: templateId, operator: 'eq' }],
534
+ sortings: [{ name: 'sequence' }]
535
+ }
536
+ });
537
+ const items = ((_f = (_e = response.data) === null || _e === void 0 ? void 0 : _e.constructionChecklistTemplateItems) === null || _f === void 0 ? void 0 : _f.items) || [];
538
+ this.templateItems = items;
539
+ // 왼쪽 그리드에 데이터 셋팅 (recommendation 포함)
540
+ // KCS/현장 시방서 기준은 저장(등록/수정) 시 서버에서 매칭되어 채워진다.
541
+ this.leftGrist.data = {
542
+ records: items.map(item => ({
543
+ mainType: item.mainType || '',
544
+ name: item.name || '',
545
+ kcsCriteria: '',
546
+ kcsCriteriaLabel: '',
547
+ siteSpecCriteria: '',
548
+ originalName: item.name || '',
549
+ recommendation1: item.recommendation1 || '',
550
+ recommendation2: item.recommendation2 || '',
551
+ recommendation3: item.recommendation3 || '',
552
+ recommendation4: item.recommendation4 || '',
553
+ recommendation5: item.recommendation5 || ''
554
+ }))
555
+ };
556
+ }
557
+ async _handleRightGristRowClick(columns, data, column, record, rowIndex, field) {
558
+ // 클릭 시 해당 로우 선택/해제 토글
559
+ field === null || field === void 0 ? void 0 : field.dispatchEvent(new CustomEvent('select-record-change', {
560
+ bubbles: true,
561
+ composed: true,
562
+ detail: record['__selected__'] ? { removed: [record] } : { added: [record] }
563
+ }));
564
+ // 토글 반영 후 처리
565
+ setTimeout(async () => {
566
+ var _a, _b, _c, _d;
567
+ const selected = (_b = (_a = this.rightGrist) === null || _a === void 0 ? void 0 : _a.selected) === null || _b === void 0 ? void 0 : _b[0];
568
+ if (!selected || !selected.id) {
569
+ // 선택 해제 → 등록 모드 + 왼쪽 초기화
570
+ await this._resetLeftForm();
571
+ return;
572
+ }
573
+ // 선택 → 수정 모드
574
+ this.isEditMode = true;
575
+ this.selectedChecklistId = selected.id;
576
+ this.checklistName = selected.name || '';
577
+ // 공종/세부공종 세팅
578
+ const ct = this.constructionTypes.find(c => c.id === selected.constructionTypeId) || {};
579
+ this.selectedConstructionType = ct;
580
+ this.selectedConstructionDetailType = Object.assign({}, (((_c = ct.constructionDetailTypes) === null || _c === void 0 ? void 0 : _c.find(d => d.id === selected.constructionDetailTypeId)) || {}));
581
+ // 공종 변경으로 세부공종 options가 re-render 된 후 select UI 동기화
582
+ await this.updateComplete;
583
+ const cdtIndex = (ct.constructionDetailTypes || []).findIndex(d => d.id === selected.constructionDetailTypeId);
584
+ if (cdtIndex >= 0) {
585
+ await ((_d = this.htmlSelectConstructionDetailType) === null || _d === void 0 ? void 0 : _d.selectIndex(cdtIndex));
586
+ }
587
+ // 공종+세부공종의 템플릿 아이템 로드 (추천 options용)
588
+ await this._loadTemplateItemsForEdit(selected.constructionTypeId, selected.constructionDetailTypeId);
589
+ // 저장된 아이템 로드 (FieldResolver 활용)
590
+ const items = await this._fetchChecklistItems(selected.id);
591
+ // templateItems에서 같은 mainType의 recommendation을 매칭
592
+ this.leftGrist.data = {
593
+ records: items.map(item => {
594
+ const tmpl = this.templateItems.find(t => t.mainType === item.mainType) || {};
595
+ return {
596
+ mainType: item.mainType || '',
597
+ name: item.name || '',
598
+ kcsCriteria: item.kcsCriteria || '',
599
+ kcsCriteriaLabel: this._kcsLabel(item.kcsCriteria),
600
+ siteSpecCriteria: item.siteSpecCriteria || '',
601
+ originalName: tmpl.name || item.name || '',
602
+ recommendation1: tmpl.recommendation1 || '',
603
+ recommendation2: tmpl.recommendation2 || '',
604
+ recommendation3: tmpl.recommendation3 || '',
605
+ recommendation4: tmpl.recommendation4 || '',
606
+ recommendation5: tmpl.recommendation5 || ''
607
+ };
608
+ })
609
+ };
610
+ }, 100);
611
+ }
612
+ async _loadTemplateItemsForEdit(ctId, cdtId) {
613
+ var _a, _b, _c, _d;
614
+ if (!ctId || !cdtId) {
615
+ this.templateItems = [];
616
+ return;
617
+ }
618
+ const upsertRes = await client.mutate({
619
+ mutation: gql `
620
+ mutation ($ctId: String!, $cdtId: String!) {
621
+ upsertConstructionChecklistTemplate(constructionTypeId: $ctId, constructionDetailTypeId: $cdtId) {
622
+ id
623
+ }
624
+ }
625
+ `,
626
+ variables: { ctId, cdtId }
627
+ });
628
+ const templateId = (_b = (_a = upsertRes.data) === null || _a === void 0 ? void 0 : _a.upsertConstructionChecklistTemplate) === null || _b === void 0 ? void 0 : _b.id;
629
+ if (!templateId)
630
+ return;
631
+ const response = await client.query({
632
+ query: gql `
633
+ query ($filters: [Filter!], $sortings: [Sorting!]) {
634
+ constructionChecklistTemplateItems(filters: $filters, sortings: $sortings) {
635
+ items {
636
+ id
637
+ sequence
638
+ mainType
639
+ name
640
+ inspctionCriteria
641
+ recommendation1
642
+ recommendation2
643
+ recommendation3
644
+ recommendation4
645
+ recommendation5
646
+ }
647
+ }
648
+ }
649
+ `,
650
+ variables: {
651
+ filters: [{ name: 'constructionChecklistTemplateId', value: templateId, operator: 'eq' }],
652
+ sortings: [{ name: 'sequence' }]
653
+ }
654
+ });
655
+ this.templateItems = ((_d = (_c = response.data) === null || _c === void 0 ? void 0 : _c.constructionChecklistTemplateItems) === null || _d === void 0 ? void 0 : _d.items) || [];
656
+ }
657
+ async _save() {
658
+ var _a, _b, _c, _d;
659
+ const ctId = (_a = this.selectedConstructionType) === null || _a === void 0 ? void 0 : _a.id;
660
+ const cdtId = (_b = this.selectedConstructionDetailType) === null || _b === void 0 ? void 0 : _b.id;
661
+ const name = (_c = this.checklistName) === null || _c === void 0 ? void 0 : _c.trim();
662
+ if (!ctId || !cdtId) {
663
+ notify({ message: '공종과 세부공종을 선택해주세요.', level: 'warn' });
664
+ return;
665
+ }
666
+ if (!name) {
667
+ notify({ message: '이름을 입력해주세요.', level: 'warn' });
668
+ return;
669
+ }
670
+ // 그리드에서 아이템 추출 (KCS/현장 시방서 기준은 서버에서 매칭하여 채운다)
671
+ const records = ((_d = this.leftGrist.dirtyData) === null || _d === void 0 ? void 0 : _d.records) || [];
672
+ const items = records.map((row, idx) => ({
673
+ mainType: row.mainType || null,
674
+ name: row.name || '',
675
+ sequence: idx
676
+ }));
677
+ try {
678
+ if (this.isEditMode && this.selectedChecklistId) {
679
+ // 수정
680
+ const response = await client.mutate({
681
+ mutation: gql `
682
+ mutation ($id: String!, $name: String!, $items: [ProjectChecklistItemInput!]!, $siteSpecPdfUrl: String) {
683
+ updateProjectChecklist(id: $id, name: $name, items: $items, siteSpecPdfUrl: $siteSpecPdfUrl) {
684
+ id
685
+ }
686
+ }
687
+ `,
688
+ variables: {
689
+ id: this.selectedChecklistId,
690
+ name,
691
+ items,
692
+ siteSpecPdfUrl: this.siteSpecPdfUrl || null
693
+ }
694
+ });
695
+ if (!response.errors) {
696
+ // 검사 기준(KCS/현장 시방서)은 백그라운드에서 매칭되어 잠시 후 반영됨
697
+ notify({ message: '수정되었습니다. 검사 기준은 잠시 후 반영됩니다.' });
698
+ this.rightGrist.fetch();
699
+ }
700
+ else {
701
+ notify({ message: '수정에 실패하였습니다.', level: 'error' });
702
+ }
703
+ }
704
+ else {
705
+ // 등록
706
+ const response = await client.mutate({
707
+ mutation: gql `
708
+ mutation (
709
+ $projectId: String!
710
+ $constructionTypeId: String!
711
+ $constructionDetailTypeId: String!
712
+ $name: String!
713
+ $items: [ProjectChecklistItemInput!]!
714
+ $siteSpecPdfUrl: String
715
+ ) {
716
+ createProjectChecklist(
717
+ projectId: $projectId
718
+ constructionTypeId: $constructionTypeId
719
+ constructionDetailTypeId: $constructionDetailTypeId
720
+ name: $name
721
+ items: $items
722
+ siteSpecPdfUrl: $siteSpecPdfUrl
723
+ ) {
724
+ id
725
+ }
726
+ }
727
+ `,
728
+ variables: {
729
+ projectId: this.projectId,
730
+ constructionTypeId: ctId,
731
+ constructionDetailTypeId: cdtId,
732
+ name,
733
+ items,
734
+ siteSpecPdfUrl: this.siteSpecPdfUrl || null
735
+ }
736
+ });
737
+ if (!response.errors) {
738
+ // 검사 기준(KCS/현장 시방서)은 백그라운드에서 매칭되어 잠시 후 반영됨
739
+ notify({ message: '등록되었습니다. 검사 기준은 잠시 후 반영됩니다.' });
740
+ // 오른쪽 그리드 새로고침 + 왼쪽 초기화
741
+ await this.rightGrist.fetch();
742
+ this._resetLeftForm();
743
+ }
744
+ else {
745
+ notify({ message: '등록에 실패하였습니다.', level: 'error' });
746
+ }
747
+ }
748
+ }
749
+ catch (e) {
750
+ notify({ message: '저장 중 오류가 발생하였습니다.', level: 'error' });
751
+ }
752
+ }
753
+ // KCS 기준 JSON 문자열에서 file_label(요약 텍스트) 추출
754
+ _kcsLabel(kcsCriteria) {
755
+ var _a;
756
+ if (!kcsCriteria)
757
+ return '';
758
+ try {
759
+ return ((_a = JSON.parse(kcsCriteria)) === null || _a === void 0 ? void 0 : _a.file_label) || '';
760
+ }
761
+ catch (_b) {
762
+ return '';
763
+ }
764
+ }
765
+ async _resetLeftForm() {
766
+ var _a, _b;
767
+ this.isEditMode = false;
768
+ this.selectedChecklistId = null;
769
+ this.checklistName = '';
770
+ this.selectedConstructionType = {};
771
+ this.selectedConstructionDetailType = {};
772
+ this.templateItems = [];
773
+ this.leftGrist.data = { records: [] };
774
+ await this.updateComplete;
775
+ // md-filled-select 내부 상태 초기화
776
+ (_a = this.htmlSelectConstructionType) === null || _a === void 0 ? void 0 : _a.reset();
777
+ (_b = this.htmlSelectConstructionDetailType) === null || _b === void 0 ? void 0 : _b.reset();
778
+ }
779
+ async _delete() {
780
+ var _a, _b;
781
+ const selectedItems = ((_a = this.leftGrist) === null || _a === void 0 ? void 0 : _a.selected) || [];
782
+ if (selectedItems.length > 0) {
783
+ // 왼쪽 그리드에서 선택된 row 삭제 (클라이언트 측)
784
+ if (confirm('선택된 검사항목을 삭제하시겠습니까?')) {
785
+ const records = ((_b = this.leftGrist.dirtyData) === null || _b === void 0 ? void 0 : _b.records) || [];
786
+ const selectedIndices = new Set(selectedItems.map((_, i) => {
787
+ return records.indexOf(selectedItems[i]);
788
+ }));
789
+ const remaining = records.filter((_, i) => !selectedIndices.has(i));
790
+ this.leftGrist.data = { records: remaining };
791
+ }
792
+ }
793
+ else if (this.isEditMode && this.selectedChecklistId) {
794
+ // 체크리스트 자체 삭제
795
+ if (confirm('이 체크리스트를 삭제하시겠습니까?')) {
796
+ const response = await client.mutate({
797
+ mutation: gql `
798
+ mutation ($ids: [String!]!) {
799
+ deleteProjectChecklists(ids: $ids)
800
+ }
801
+ `,
802
+ variables: { ids: [this.selectedChecklistId] }
803
+ });
804
+ if (!response.errors) {
805
+ notify({ message: '삭제되었습니다.' });
806
+ this.isEditMode = false;
807
+ this.selectedChecklistId = null;
808
+ this.checklistName = '';
809
+ this.leftGrist.data = { records: [] };
810
+ this.rightGrist.fetch();
811
+ }
812
+ }
813
+ }
814
+ else {
815
+ notify({ message: '삭제할 항목을 선택해주세요.', level: 'warn' });
816
+ }
817
+ }
818
+ async _fetchChecklistItems(checklistId) {
819
+ var _a, _b, _c, _d;
820
+ const response = await client.query({
821
+ query: gql `
822
+ query ($filters: [Filter!]) {
823
+ projectChecklists(filters: $filters) {
824
+ items {
825
+ projectChecklistItems {
826
+ id
827
+ mainType
828
+ name
829
+ kcsCriteria
830
+ siteSpecCriteria
831
+ sequence
832
+ }
833
+ }
834
+ }
835
+ }
836
+ `,
837
+ variables: {
838
+ filters: [{ name: 'id', value: checklistId, operator: 'eq' }]
839
+ }
840
+ });
841
+ return ((_d = (_c = (_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.projectChecklists) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.projectChecklistItems) || [];
842
+ }
843
+ async _openPreview(record) {
844
+ var _a, _b;
845
+ const items = await this._fetchChecklistItems(record.id);
846
+ const ctName = ((_a = this.constructionTypes.find(ct => ct.id === record.constructionTypeId)) === null || _a === void 0 ? void 0 : _a.name) || '';
847
+ const cdtName = ((_b = this.allDetailTypes.find(dt => dt.id === record.constructionDetailTypeId)) === null || _b === void 0 ? void 0 : _b.name) || '';
848
+ const checklist = {
849
+ name: record.name,
850
+ constructionType: ctName,
851
+ constructionDetailType: cdtName,
852
+ location: '',
853
+ documentNo: '',
854
+ inspectionParts: [],
855
+ buildingInspection: {
856
+ status: BuildingInspectionStatus.WAIT
857
+ },
858
+ checklistItems: items.map(item => (Object.assign(Object.assign({}, item), { detailType: '' })))
859
+ };
860
+ openPopup(html `
861
+ <div style="overflow-y: auto;">
862
+ <checklist-view .mode=${"VIEWER" /* ChecklistMode.VIEWER */} .checklist=${checklist}></checklist-view>
863
+ </div>
864
+ `, {
865
+ backdrop: true,
866
+ size: 'large',
867
+ title: `체크리스트 미리보기 - ${record.name}`
868
+ });
869
+ }
870
+ };
871
+ ProjectChecklistManagement.styles = [
872
+ ScrollbarStyles,
873
+ CommonGristStyles,
874
+ ButtonContainerStyles,
875
+ css `
876
+ :host {
877
+ display: flex;
878
+ flex-direction: column;
879
+ width: 100%;
880
+ height: 100%;
881
+ background-color: var(--md-sys-color-surface);
882
+ }
883
+
884
+ div[header] {
885
+ display: flex;
886
+ align-items: center;
887
+ padding: 0px 12px;
888
+
889
+ h2 {
890
+ display: flex;
891
+ gap: 7px;
892
+ flex: 1;
893
+ margin-bottom: 8px;
894
+ color: #3f71a0;
895
+ font-size: 18px;
896
+
897
+ md-icon[back] {
898
+ background: linear-gradient(135deg, #3f71a0 0%, #5a8cc7 100%);
899
+ color: white;
900
+ padding: 8px;
901
+ border-radius: 50%;
902
+ cursor: pointer;
903
+ box-shadow: 0 2px 8px rgba(63, 113, 160, 0.3);
904
+ width: 14px;
905
+ height: 14px;
906
+ --md-icon-size: 20px;
907
+ }
908
+
909
+ md-icon[back]:hover {
910
+ background: linear-gradient(135deg, #2e5c89 0%, #4a7bb0 100%);
911
+ box-shadow: 0 4px 12px rgba(63, 113, 160, 0.4);
912
+ }
913
+ }
914
+
915
+ div[button-container] {
916
+ display: flex;
917
+ align-items: center;
918
+ justify-content: end;
919
+ flex: 1;
920
+ padding-top: 8px;
921
+
922
+ span[site-spec-name] {
923
+ display: inline-flex;
924
+ align-items: center;
925
+ gap: 2px;
926
+ margin: 0 6px;
927
+ padding: 4px 8px;
928
+ font-size: 13px;
929
+ color: #3f71a0;
930
+ background-color: #eaf2fb;
931
+ border-radius: 4px;
932
+ max-width: 220px;
933
+
934
+ span[filename] {
935
+ overflow: hidden;
936
+ text-overflow: ellipsis;
937
+ white-space: nowrap;
938
+ }
939
+
940
+ md-icon {
941
+ flex-shrink: 0;
942
+ font-size: 16px;
943
+ --md-icon-size: 16px;
944
+ }
945
+ md-icon[clickable] {
946
+ cursor: pointer;
947
+ }
948
+ }
949
+
950
+ md-elevated-button {
951
+ margin: 0 4px;
952
+ --md-elevated-button-container-height: 32px;
953
+ --md-elevated-button-label-text-size: 16px;
954
+ --md-elevated-button-container-color: #0595e5;
955
+ --md-elevated-button-label-text-color: var(--md-sys-color-on-primary);
956
+ --md-elevated-button-hover-label-text-color: var(--md-sys-color-on-primary);
957
+ --md-elevated-button-pressed-label-text-color: var(--md-sys-color-on-primary);
958
+ --md-elevated-button-focus-label-text-color: var(--md-sys-color-on-primary);
959
+ --md-elevated-button-icon-color: var(--md-sys-color-on-primary);
960
+ --md-elevated-button-hover-icon-color: var(--md-sys-color-on-primary);
961
+ --md-elevated-button-pressed-icon-color: var(--md-sys-color-on-primary);
962
+ --md-elevated-button-focus-icon-color: var(--md-sys-color-on-primary);
963
+ }
964
+ }
965
+ }
966
+
967
+ div[body] {
968
+ display: grid;
969
+ grid-template-columns: 1fr 1fr;
970
+ gap: 15px;
971
+ flex: 1;
972
+ padding: 15px;
973
+ overflow: hidden;
974
+ }
975
+
976
+ div[left],
977
+ div[right] {
978
+ display: flex;
979
+ flex-direction: column;
980
+ overflow: hidden;
981
+ border: 1px solid #ddd;
982
+ border-radius: 8px;
983
+ padding: 15px;
984
+ }
985
+
986
+ div[section-header] {
987
+ font-size: 16px;
988
+ font-weight: 600;
989
+ margin-bottom: 10px;
990
+ color: #0595e5;
991
+ display: flex;
992
+ align-items: center;
993
+ gap: 6px;
994
+ }
995
+
996
+ div[form-area] {
997
+ display: grid;
998
+ grid-template-columns: 80px 1fr;
999
+ gap: 10px;
1000
+ margin-bottom: 10px;
1001
+
1002
+ label {
1003
+ display: flex;
1004
+ align-items: center;
1005
+ justify-content: flex-end;
1006
+ font-size: 14px;
1007
+ }
1008
+ }
1009
+
1010
+ md-filled-select {
1011
+ width: 100%;
1012
+ --md-filled-select-text-field-container-color: transparent;
1013
+ --md-filled-select-text-field-active-indicator-color: #999;
1014
+ --md-filled-select-text-field-input-text-size: 14px;
1015
+ }
1016
+
1017
+ md-filled-text-field {
1018
+ width: 100%;
1019
+ --md-filled-text-field-container-color: transparent;
1020
+ --md-filled-text-field-active-indicator-color: #999;
1021
+ --md-filled-text-field-input-text-size: 14px;
1022
+ }
1023
+
1024
+ ox-grist {
1025
+ flex: 1;
1026
+ overflow-y: auto;
1027
+ }
1028
+
1029
+ div[button-container] {
1030
+ display: flex;
1031
+ justify-content: flex-end;
1032
+ gap: 8px;
1033
+ margin-top: 10px;
1034
+ }
1035
+
1036
+ md-elevated-button[save] {
1037
+ --md-elevated-button-container-color: #0595e5;
1038
+ --md-elevated-button-label-text-color: #fff;
1039
+ --md-elevated-button-hover-label-text-color: #fff;
1040
+ --md-elevated-button-pressed-label-text-color: #fff;
1041
+ --md-elevated-button-focus-label-text-color: #fff;
1042
+ --md-elevated-button-icon-color: #fff;
1043
+ --md-elevated-button-hover-icon-color: #fff;
1044
+ --md-elevated-button-pressed-icon-color: #fff;
1045
+ --md-elevated-button-focus-icon-color: #fff;
1046
+ }
1047
+
1048
+ md-elevated-button[delete] {
1049
+ --md-elevated-button-container-color: #e53935;
1050
+ --md-elevated-button-label-text-color: #fff;
1051
+ --md-elevated-button-hover-label-text-color: #fff;
1052
+ --md-elevated-button-pressed-label-text-color: #fff;
1053
+ --md-elevated-button-focus-label-text-color: #fff;
1054
+ --md-elevated-button-icon-color: #fff;
1055
+ --md-elevated-button-hover-icon-color: #fff;
1056
+ --md-elevated-button-pressed-icon-color: #fff;
1057
+ --md-elevated-button-focus-icon-color: #fff;
1058
+ }
1059
+ `
1060
+ ];
1061
+ __decorate([
1062
+ state(),
1063
+ __metadata("design:type", String)
1064
+ ], ProjectChecklistManagement.prototype, "projectId", void 0);
1065
+ __decorate([
1066
+ state(),
1067
+ __metadata("design:type", String)
1068
+ ], ProjectChecklistManagement.prototype, "projectName", void 0);
1069
+ __decorate([
1070
+ state(),
1071
+ __metadata("design:type", Array)
1072
+ ], ProjectChecklistManagement.prototype, "constructionTypes", void 0);
1073
+ __decorate([
1074
+ state(),
1075
+ __metadata("design:type", Array)
1076
+ ], ProjectChecklistManagement.prototype, "allDetailTypes", void 0);
1077
+ __decorate([
1078
+ state(),
1079
+ __metadata("design:type", Object)
1080
+ ], ProjectChecklistManagement.prototype, "selectedConstructionType", void 0);
1081
+ __decorate([
1082
+ state(),
1083
+ __metadata("design:type", Object)
1084
+ ], ProjectChecklistManagement.prototype, "selectedConstructionDetailType", void 0);
1085
+ __decorate([
1086
+ state(),
1087
+ __metadata("design:type", String)
1088
+ ], ProjectChecklistManagement.prototype, "checklistName", void 0);
1089
+ __decorate([
1090
+ state(),
1091
+ __metadata("design:type", Array)
1092
+ ], ProjectChecklistManagement.prototype, "templateItems", void 0);
1093
+ __decorate([
1094
+ state(),
1095
+ __metadata("design:type", Object)
1096
+ ], ProjectChecklistManagement.prototype, "leftGristConfig", void 0);
1097
+ __decorate([
1098
+ state(),
1099
+ __metadata("design:type", Object)
1100
+ ], ProjectChecklistManagement.prototype, "rightGristConfig", void 0);
1101
+ __decorate([
1102
+ state(),
1103
+ __metadata("design:type", Boolean)
1104
+ ], ProjectChecklistManagement.prototype, "isEditMode", void 0);
1105
+ __decorate([
1106
+ state(),
1107
+ __metadata("design:type", Object)
1108
+ ], ProjectChecklistManagement.prototype, "selectedChecklistId", void 0);
1109
+ __decorate([
1110
+ state(),
1111
+ __metadata("design:type", String)
1112
+ ], ProjectChecklistManagement.prototype, "siteSpecPdfUrl", void 0);
1113
+ __decorate([
1114
+ state(),
1115
+ __metadata("design:type", String)
1116
+ ], ProjectChecklistManagement.prototype, "siteSpecPdfName", void 0);
1117
+ __decorate([
1118
+ state(),
1119
+ __metadata("design:type", Object)
1120
+ ], ProjectChecklistManagement.prototype, "siteSpecDetail", void 0);
1121
+ __decorate([
1122
+ state(),
1123
+ __metadata("design:type", String)
1124
+ ], ProjectChecklistManagement.prototype, "siteSpecDetailItem", void 0);
1125
+ __decorate([
1126
+ query('ox-grist[left]'),
1127
+ __metadata("design:type", DataGrist)
1128
+ ], ProjectChecklistManagement.prototype, "leftGrist", void 0);
1129
+ __decorate([
1130
+ query('ox-grist[right]'),
1131
+ __metadata("design:type", DataGrist)
1132
+ ], ProjectChecklistManagement.prototype, "rightGrist", void 0);
1133
+ __decorate([
1134
+ query('md-filled-select[constructionType]'),
1135
+ __metadata("design:type", Object)
1136
+ ], ProjectChecklistManagement.prototype, "htmlSelectConstructionType", void 0);
1137
+ __decorate([
1138
+ query('md-filled-select[constructionDetailType]'),
1139
+ __metadata("design:type", Object)
1140
+ ], ProjectChecklistManagement.prototype, "htmlSelectConstructionDetailType", void 0);
1141
+ ProjectChecklistManagement = __decorate([
1142
+ customElement('project-checklist-management')
1143
+ ], ProjectChecklistManagement);
1144
+ export { ProjectChecklistManagement };
1145
+ //# sourceMappingURL=project-checklist-management.js.map