@dssp/supervision 1.0.0-alpha.9 → 1.0.0-alpha.93

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 (363) hide show
  1. package/dist-client/graphql/building-inspection.d.ts +1 -0
  2. package/dist-client/graphql/building-inspection.js +102 -0
  3. package/dist-client/graphql/building-inspection.js.map +1 -0
  4. package/dist-client/pages/action-plan/action-plan-list-page.d.ts +1 -2
  5. package/dist-client/pages/action-plan/action-plan-list-page.js +1 -2
  6. package/dist-client/pages/action-plan/action-plan-list-page.js.map +1 -1
  7. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.d.ts +22 -0
  8. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.js +171 -0
  9. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.js.map +1 -0
  10. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.d.ts +59 -0
  11. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js +868 -0
  12. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js.map +1 -0
  13. package/dist-client/pages/building-inspection/building-inspection-detail-camera.d.ts +8 -6
  14. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js +116 -65
  15. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js.map +1 -1
  16. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.d.ts +11 -0
  17. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js +147 -72
  18. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js.map +1 -1
  19. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.d.ts +1 -0
  20. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js +78 -14
  21. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js.map +1 -1
  22. package/dist-client/pages/building-inspection/building-inspection-list.d.ts +26 -2
  23. package/dist-client/pages/building-inspection/building-inspection-list.js +375 -34
  24. package/dist-client/pages/building-inspection/building-inspection-list.js.map +1 -1
  25. package/dist-client/pages/building-inspection/building-inspection-management.d.ts +82 -0
  26. package/dist-client/pages/building-inspection/building-inspection-management.js +1527 -0
  27. package/dist-client/pages/building-inspection/building-inspection-management.js.map +1 -0
  28. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.d.ts +3 -0
  29. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js +112 -20
  30. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js.map +1 -1
  31. package/dist-client/pages/building-inspection/component/daily-worklog-popup.d.ts +27 -0
  32. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js +542 -0
  33. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js.map +1 -0
  34. package/dist-client/pages/building-inspection/component/field-document/field-document-constants.d.ts +18 -0
  35. package/dist-client/pages/building-inspection/component/field-document/field-document-constants.js +630 -0
  36. package/dist-client/pages/building-inspection/component/field-document/field-document-constants.js.map +1 -0
  37. package/dist-client/pages/building-inspection/component/field-document/field-document-detail-popup.d.ts +10 -0
  38. package/dist-client/pages/building-inspection/component/field-document/field-document-detail-popup.js +219 -0
  39. package/dist-client/pages/building-inspection/component/field-document/field-document-detail-popup.js.map +1 -0
  40. package/dist-client/pages/building-inspection/component/field-document/field-document-list-panel.d.ts +25 -0
  41. package/dist-client/pages/building-inspection/component/field-document/field-document-list-panel.js +546 -0
  42. package/dist-client/pages/building-inspection/component/field-document/field-document-list-panel.js.map +1 -0
  43. package/dist-client/pages/building-inspection/component/field-document/field-document-popup.d.ts +42 -0
  44. package/dist-client/pages/building-inspection/component/field-document/field-document-popup.js +738 -0
  45. package/dist-client/pages/building-inspection/component/field-document/field-document-popup.js.map +1 -0
  46. package/dist-client/pages/building-inspection/component/image-preview-popup.d.ts +15 -0
  47. package/dist-client/pages/building-inspection/component/image-preview-popup.js +348 -0
  48. package/dist-client/pages/building-inspection/component/image-preview-popup.js.map +1 -0
  49. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.d.ts +25 -0
  50. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js +491 -0
  51. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js.map +1 -0
  52. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.d.ts +31 -0
  53. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js +485 -0
  54. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js.map +1 -0
  55. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.d.ts +27 -0
  56. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js +416 -0
  57. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js.map +1 -0
  58. package/dist-client/pages/building-inspection/component/inspection-event-provider.d.ts +4 -2
  59. package/dist-client/pages/building-inspection/component/inspection-event-provider.js +156 -37
  60. package/dist-client/pages/building-inspection/component/inspection-event-provider.js.map +1 -1
  61. package/dist-client/pages/building-inspection/inspection-create-popup.js +23 -12
  62. package/dist-client/pages/building-inspection/inspection-create-popup.js.map +1 -1
  63. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.d.ts +3 -0
  64. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.js +817 -0
  65. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.js.map +1 -0
  66. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.d.ts +16 -2
  67. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js +250 -45
  68. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js.map +1 -1
  69. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js +10 -6
  70. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js.map +1 -1
  71. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.d.ts +19 -0
  72. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.js +205 -0
  73. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.js.map +1 -0
  74. package/dist-client/pages/checklist/attachment-list-popup.d.ts +1 -0
  75. package/dist-client/pages/checklist/attachment-list-popup.js +251 -69
  76. package/dist-client/pages/checklist/attachment-list-popup.js.map +1 -1
  77. package/dist-client/pages/checklist/checklist-view.d.ts +6 -4
  78. package/dist-client/pages/checklist/checklist-view.js +249 -37
  79. package/dist-client/pages/checklist/checklist-view.js.map +1 -1
  80. package/dist-client/pages/checklist/comment-list-popup.js +15 -5
  81. package/dist-client/pages/checklist/comment-list-popup.js.map +1 -1
  82. package/dist-client/pages/checklist/file-preview-popup.js +0 -1
  83. package/dist-client/pages/checklist/file-preview-popup.js.map +1 -1
  84. package/dist-client/pages/checklist/inspection-info-popup.d.ts +49 -0
  85. package/dist-client/pages/checklist/inspection-info-popup.js +683 -0
  86. package/dist-client/pages/checklist/inspection-info-popup.js.map +1 -0
  87. package/dist-client/pages/checklist/inspection-tab-popup.d.ts +18 -0
  88. package/dist-client/pages/checklist/inspection-tab-popup.js +196 -0
  89. package/dist-client/pages/checklist/inspection-tab-popup.js.map +1 -0
  90. package/dist-client/pages/checklist/kcs-criteria-popup.d.ts +15 -0
  91. package/dist-client/pages/checklist/kcs-criteria-popup.js +174 -0
  92. package/dist-client/pages/checklist/kcs-criteria-popup.js.map +1 -0
  93. package/dist-client/pages/checklist-database/checklist-database.d.ts +35 -0
  94. package/dist-client/pages/checklist-database/checklist-database.js +540 -0
  95. package/dist-client/pages/checklist-database/checklist-database.js.map +1 -0
  96. package/dist-client/pages/checklist-template/checklist-template-item.js +39 -3
  97. package/dist-client/pages/checklist-template/checklist-template-item.js.map +1 -1
  98. package/dist-client/pages/checklist-template/checklist-template-list.js +3 -2
  99. package/dist-client/pages/checklist-template/checklist-template-list.js.map +1 -1
  100. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.d.ts +2 -0
  101. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.js +223 -0
  102. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.js.map +1 -0
  103. package/dist-client/pages/checklist-template/construction-checklist-template-list.d.ts +55 -0
  104. package/dist-client/pages/checklist-template/construction-checklist-template-list.js +404 -0
  105. package/dist-client/pages/checklist-template/construction-checklist-template-list.js.map +1 -0
  106. package/dist-client/pages/issue/issue-list-page.d.ts +1 -2
  107. package/dist-client/pages/issue/issue-list-page.js +1 -2
  108. package/dist-client/pages/issue/issue-list-page.js.map +1 -1
  109. package/dist-client/pages/project-checklist/project-checklist-management.d.ts +58 -0
  110. package/dist-client/pages/project-checklist/project-checklist-management.js +1076 -0
  111. package/dist-client/pages/project-checklist/project-checklist-management.js.map +1 -0
  112. package/dist-client/pages/project-report/project-report-list-page.d.ts +1 -2
  113. package/dist-client/pages/project-report/project-report-list-page.js +1 -2
  114. package/dist-client/pages/project-report/project-report-list-page.js.map +1 -1
  115. package/dist-client/pages/supervisor/supervisor-list-page.d.ts +1 -2
  116. package/dist-client/pages/supervisor/supervisor-list-page.js +1 -2
  117. package/dist-client/pages/supervisor/supervisor-list-page.js.map +1 -1
  118. package/dist-client/route.d.ts +1 -1
  119. package/dist-client/route.js +18 -0
  120. package/dist-client/route.js.map +1 -1
  121. package/dist-client/stt/speech-to-text.d.ts +13 -8
  122. package/dist-client/stt/speech-to-text.js +282 -40
  123. package/dist-client/stt/speech-to-text.js.map +1 -1
  124. package/dist-client/tsconfig.tsbuildinfo +1 -1
  125. package/dist-server/service/action-plan/action-plan-mutation.js +5 -6
  126. package/dist-server/service/action-plan/action-plan-mutation.js.map +1 -1
  127. package/dist-server/service/action-plan/action-plan-query.d.ts +2 -2
  128. package/dist-server/service/action-plan/action-plan-query.js +5 -11
  129. package/dist-server/service/action-plan/action-plan-query.js.map +1 -1
  130. package/dist-server/service/building-inspection/building-inspection-mutation.d.ts +2 -3
  131. package/dist-server/service/building-inspection/building-inspection-mutation.js +102 -34
  132. package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -1
  133. package/dist-server/service/building-inspection/building-inspection-query.d.ts +9 -7
  134. package/dist-server/service/building-inspection/building-inspection-query.js +168 -52
  135. package/dist-server/service/building-inspection/building-inspection-query.js.map +1 -1
  136. package/dist-server/service/building-inspection/building-inspection-type.d.ts +32 -11
  137. package/dist-server/service/building-inspection/building-inspection-type.js +111 -23
  138. package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -1
  139. package/dist-server/service/building-inspection/building-inspection.d.ts +5 -0
  140. package/dist-server/service/building-inspection/building-inspection.js +37 -4
  141. package/dist-server/service/building-inspection/building-inspection.js.map +1 -1
  142. package/dist-server/service/building-inspection/index.d.ts +3 -4
  143. package/dist-server/service/building-inspection/index.js +10 -3
  144. package/dist-server/service/building-inspection/index.js.map +1 -1
  145. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.d.ts +6 -0
  146. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js +66 -0
  147. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js.map +1 -0
  148. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.d.ts +16 -0
  149. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js +171 -0
  150. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js.map +1 -0
  151. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.d.ts +23 -0
  152. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js +90 -0
  153. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js.map +1 -0
  154. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.d.ts +33 -0
  155. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js +132 -0
  156. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js.map +1 -0
  157. package/dist-server/service/building-inspection-daily-worklog/index.d.ts +5 -0
  158. package/dist-server/service/building-inspection-daily-worklog/index.js +9 -0
  159. package/dist-server/service/building-inspection-daily-worklog/index.js.map +1 -0
  160. package/dist-server/service/building-inspection-history/building-inspection-history-query.d.ts +16 -0
  161. package/dist-server/service/building-inspection-history/building-inspection-history-query.js +120 -0
  162. package/dist-server/service/building-inspection-history/building-inspection-history-query.js.map +1 -0
  163. package/dist-server/service/building-inspection-history/building-inspection-history-type.d.ts +5 -0
  164. package/dist-server/service/building-inspection-history/building-inspection-history-type.js +21 -0
  165. package/dist-server/service/building-inspection-history/building-inspection-history-type.js.map +1 -0
  166. package/dist-server/service/building-inspection-history/building-inspection-history.d.ts +35 -0
  167. package/dist-server/service/building-inspection-history/building-inspection-history.js +162 -0
  168. package/dist-server/service/building-inspection-history/building-inspection-history.js.map +1 -0
  169. package/dist-server/service/building-inspection-history/event-subscriber.d.ts +7 -0
  170. package/dist-server/service/building-inspection-history/event-subscriber.js +21 -0
  171. package/dist-server/service/building-inspection-history/event-subscriber.js.map +1 -0
  172. package/dist-server/service/building-inspection-history/index.d.ts +6 -0
  173. package/dist-server/service/building-inspection-history/index.js +10 -0
  174. package/dist-server/service/building-inspection-history/index.js.map +1 -0
  175. package/dist-server/service/checklist/checklist-mutation.d.ts +0 -5
  176. package/dist-server/service/checklist/checklist-mutation.js +1 -67
  177. package/dist-server/service/checklist/checklist-mutation.js.map +1 -1
  178. package/dist-server/service/checklist/checklist-query.d.ts +7 -0
  179. package/dist-server/service/checklist/checklist-query.js +83 -0
  180. package/dist-server/service/checklist/checklist-query.js.map +1 -1
  181. package/dist-server/service/checklist/checklist-type.d.ts +0 -13
  182. package/dist-server/service/checklist/checklist-type.js +1 -49
  183. package/dist-server/service/checklist/checklist-type.js.map +1 -1
  184. package/dist-server/service/checklist/checklist.d.ts +24 -7
  185. package/dist-server/service/checklist/checklist.js +75 -30
  186. package/dist-server/service/checklist/checklist.js.map +1 -1
  187. package/dist-server/service/checklist/event-subscriber.d.ts +7 -0
  188. package/dist-server/service/checklist/event-subscriber.js +21 -0
  189. package/dist-server/service/checklist/event-subscriber.js.map +1 -0
  190. package/dist-server/service/checklist/index.d.ts +1 -2
  191. package/dist-server/service/checklist/index.js +1 -2
  192. package/dist-server/service/checklist/index.js.map +1 -1
  193. package/dist-server/service/checklist-history/checklist-history-query.d.ts +11 -0
  194. package/dist-server/service/checklist-history/checklist-history-query.js +77 -0
  195. package/dist-server/service/checklist-history/checklist-history-query.js.map +1 -0
  196. package/dist-server/service/checklist-history/checklist-history-type.d.ts +5 -0
  197. package/dist-server/service/checklist-history/checklist-history-type.js +21 -0
  198. package/dist-server/service/checklist-history/checklist-history-type.js.map +1 -0
  199. package/dist-server/service/{checklist → checklist-history}/checklist-history.d.ts +19 -1
  200. package/dist-server/service/{checklist → checklist-history}/checklist-history.js +97 -14
  201. package/dist-server/service/checklist-history/checklist-history.js.map +1 -0
  202. package/dist-server/service/checklist-history/event-subscriber.d.ts +7 -0
  203. package/dist-server/service/checklist-history/event-subscriber.js +21 -0
  204. package/dist-server/service/checklist-history/event-subscriber.js.map +1 -0
  205. package/dist-server/service/checklist-history/index.d.ts +6 -0
  206. package/dist-server/service/checklist-history/index.js +10 -0
  207. package/dist-server/service/checklist-history/index.js.map +1 -0
  208. package/dist-server/service/checklist-item/checklist-item-query.d.ts +1 -1
  209. package/dist-server/service/checklist-item/checklist-item-query.js +5 -3
  210. package/dist-server/service/checklist-item/checklist-item-query.js.map +1 -1
  211. package/dist-server/service/checklist-item/checklist-item.d.ts +2 -0
  212. package/dist-server/service/checklist-item/checklist-item.js +11 -1
  213. package/dist-server/service/checklist-item/checklist-item.js.map +1 -1
  214. package/dist-server/service/checklist-item/index.d.ts +0 -1
  215. package/dist-server/service/checklist-item/index.js +1 -2
  216. package/dist-server/service/checklist-item/index.js.map +1 -1
  217. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.d.ts +1 -0
  218. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js +33 -6
  219. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js.map +1 -1
  220. package/dist-server/service/checklist-item-history/checklist-item-history-query.d.ts +16 -0
  221. package/dist-server/service/checklist-item-history/checklist-item-history-query.js +123 -0
  222. package/dist-server/service/checklist-item-history/checklist-item-history-query.js.map +1 -0
  223. package/dist-server/service/checklist-item-history/checklist-item-history-type.d.ts +5 -0
  224. package/dist-server/service/checklist-item-history/checklist-item-history-type.js +21 -0
  225. package/dist-server/service/checklist-item-history/checklist-item-history-type.js.map +1 -0
  226. package/dist-server/service/checklist-item-history/checklist-item-history.d.ts +27 -0
  227. package/dist-server/service/checklist-item-history/checklist-item-history.js +133 -0
  228. package/dist-server/service/checklist-item-history/checklist-item-history.js.map +1 -0
  229. package/dist-server/service/checklist-item-history/event-subscriber.d.ts +7 -0
  230. package/dist-server/service/checklist-item-history/event-subscriber.js +21 -0
  231. package/dist-server/service/checklist-item-history/event-subscriber.js.map +1 -0
  232. package/dist-server/service/checklist-item-history/index.d.ts +6 -0
  233. package/dist-server/service/checklist-item-history/index.js +10 -0
  234. package/dist-server/service/checklist-item-history/index.js.map +1 -0
  235. package/dist-server/service/checklist-template/checklist-template-query.d.ts +1 -1
  236. package/dist-server/service/checklist-template/checklist-template-query.js +2 -5
  237. package/dist-server/service/checklist-template/checklist-template-query.js.map +1 -1
  238. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js +13 -1
  239. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js.map +1 -1
  240. package/dist-server/service/checklist-template-item/checklist-template-item-type.d.ts +3 -0
  241. package/dist-server/service/checklist-template-item/checklist-template-item-type.js +9 -0
  242. package/dist-server/service/checklist-template-item/checklist-template-item-type.js.map +1 -1
  243. package/dist-server/service/checklist-template-item/checklist-template-item.d.ts +7 -0
  244. package/dist-server/service/checklist-template-item/checklist-template-item.js +22 -2
  245. package/dist-server/service/checklist-template-item/checklist-template-item.js.map +1 -1
  246. package/dist-server/service/checklist-template-item/spec-matching-service.d.ts +2 -0
  247. package/dist-server/service/checklist-template-item/spec-matching-service.js +51 -0
  248. package/dist-server/service/checklist-template-item/spec-matching-service.js.map +1 -0
  249. package/dist-server/service/checklist-type/checklist-type-query.d.ts +1 -1
  250. package/dist-server/service/checklist-type/checklist-type-query.js +2 -5
  251. package/dist-server/service/checklist-type/checklist-type-query.js.map +1 -1
  252. package/dist-server/service/construction-checklist-template/construction-checklist-template-mutation.d.ts +7 -0
  253. package/dist-server/service/construction-checklist-template/construction-checklist-template-mutation.js +107 -0
  254. package/dist-server/service/construction-checklist-template/construction-checklist-template-mutation.js.map +1 -0
  255. package/dist-server/service/construction-checklist-template/construction-checklist-template-query.d.ts +10 -0
  256. package/dist-server/service/construction-checklist-template/construction-checklist-template-query.js +62 -0
  257. package/dist-server/service/construction-checklist-template/construction-checklist-template-query.js.map +1 -0
  258. package/dist-server/service/construction-checklist-template/construction-checklist-template-type.d.ts +11 -0
  259. package/dist-server/service/construction-checklist-template/construction-checklist-template-type.js +43 -0
  260. package/dist-server/service/construction-checklist-template/construction-checklist-template-type.js.map +1 -0
  261. package/dist-server/service/construction-checklist-template/construction-checklist-template.d.ts +18 -0
  262. package/dist-server/service/construction-checklist-template/construction-checklist-template.js +80 -0
  263. package/dist-server/service/construction-checklist-template/construction-checklist-template.js.map +1 -0
  264. package/dist-server/service/construction-checklist-template/index.d.ts +5 -0
  265. package/dist-server/service/construction-checklist-template/index.js +9 -0
  266. package/dist-server/service/construction-checklist-template/index.js.map +1 -0
  267. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.d.ts +6 -0
  268. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.js +56 -0
  269. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.js.map +1 -0
  270. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-query.d.ts +9 -0
  271. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-query.js +53 -0
  272. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-query.js.map +1 -0
  273. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-type.d.ts +17 -0
  274. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-type.js +67 -0
  275. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-type.js.map +1 -0
  276. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item.d.ts +24 -0
  277. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item.js +113 -0
  278. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item.js.map +1 -0
  279. package/dist-server/service/construction-checklist-template-item/index.d.ts +5 -0
  280. package/dist-server/service/construction-checklist-template-item/index.js +9 -0
  281. package/dist-server/service/construction-checklist-template-item/index.js.map +1 -0
  282. package/dist-server/service/field-document/field-document-auto-file.d.ts +21 -0
  283. package/dist-server/service/field-document/field-document-auto-file.js +47 -0
  284. package/dist-server/service/field-document/field-document-auto-file.js.map +1 -0
  285. package/dist-server/service/field-document/field-document-mutation.d.ts +9 -0
  286. package/dist-server/service/field-document/field-document-mutation.js +139 -0
  287. package/dist-server/service/field-document/field-document-mutation.js.map +1 -0
  288. package/dist-server/service/field-document/field-document-query.d.ts +14 -0
  289. package/dist-server/service/field-document/field-document-query.js +120 -0
  290. package/dist-server/service/field-document/field-document-query.js.map +1 -0
  291. package/dist-server/service/field-document/field-document-summary-service.d.ts +10 -0
  292. package/dist-server/service/field-document/field-document-summary-service.js +79 -0
  293. package/dist-server/service/field-document/field-document-summary-service.js.map +1 -0
  294. package/dist-server/service/field-document/field-document-type.d.ts +24 -0
  295. package/dist-server/service/field-document/field-document-type.js +88 -0
  296. package/dist-server/service/field-document/field-document-type.js.map +1 -0
  297. package/dist-server/service/field-document/field-document.d.ts +29 -0
  298. package/dist-server/service/field-document/field-document.js +127 -0
  299. package/dist-server/service/field-document/field-document.js.map +1 -0
  300. package/dist-server/service/field-document/index.d.ts +5 -0
  301. package/dist-server/service/field-document/index.js +9 -0
  302. package/dist-server/service/field-document/index.js.map +1 -0
  303. package/dist-server/service/index.d.ts +9 -1
  304. package/dist-server/service/index.js +42 -3
  305. package/dist-server/service/index.js.map +1 -1
  306. package/dist-server/service/issue/issue-mutation.js +5 -6
  307. package/dist-server/service/issue/issue-mutation.js.map +1 -1
  308. package/dist-server/service/issue/issue-query.d.ts +2 -2
  309. package/dist-server/service/issue/issue-query.js +5 -11
  310. package/dist-server/service/issue/issue-query.js.map +1 -1
  311. package/dist-server/service/project-checklist/index.d.ts +5 -0
  312. package/dist-server/service/project-checklist/index.js +9 -0
  313. package/dist-server/service/project-checklist/index.js.map +1 -0
  314. package/dist-server/service/project-checklist/project-checklist-mutation.d.ts +7 -0
  315. package/dist-server/service/project-checklist/project-checklist-mutation.js +118 -0
  316. package/dist-server/service/project-checklist/project-checklist-mutation.js.map +1 -0
  317. package/dist-server/service/project-checklist/project-checklist-query.d.ts +12 -0
  318. package/dist-server/service/project-checklist/project-checklist-query.js +76 -0
  319. package/dist-server/service/project-checklist/project-checklist-query.js.map +1 -0
  320. package/dist-server/service/project-checklist/project-checklist-type.d.ts +18 -0
  321. package/dist-server/service/project-checklist/project-checklist-type.js +69 -0
  322. package/dist-server/service/project-checklist/project-checklist-type.js.map +1 -0
  323. package/dist-server/service/project-checklist/project-checklist.d.ts +20 -0
  324. package/dist-server/service/project-checklist/project-checklist.js +90 -0
  325. package/dist-server/service/project-checklist/project-checklist.js.map +1 -0
  326. package/dist-server/service/project-checklist/spec-matching-service.d.ts +17 -0
  327. package/dist-server/service/project-checklist/spec-matching-service.js +91 -0
  328. package/dist-server/service/project-checklist/spec-matching-service.js.map +1 -0
  329. package/dist-server/service/project-checklist-item/index.d.ts +4 -0
  330. package/dist-server/service/project-checklist-item/index.js +9 -0
  331. package/dist-server/service/project-checklist-item/index.js.map +1 -0
  332. package/dist-server/service/project-checklist-item/project-checklist-item-mutation.d.ts +2 -0
  333. package/dist-server/service/project-checklist-item/project-checklist-item-mutation.js +13 -0
  334. package/dist-server/service/project-checklist-item/project-checklist-item-mutation.js.map +1 -0
  335. package/dist-server/service/project-checklist-item/project-checklist-item-query.d.ts +5 -0
  336. package/dist-server/service/project-checklist-item/project-checklist-item-query.js +34 -0
  337. package/dist-server/service/project-checklist-item/project-checklist-item-query.js.map +1 -0
  338. package/dist-server/service/project-checklist-item/project-checklist-item-type.d.ts +5 -0
  339. package/dist-server/service/project-checklist-item/project-checklist-item-type.js +21 -0
  340. package/dist-server/service/project-checklist-item/project-checklist-item-type.js.map +1 -0
  341. package/dist-server/service/project-checklist-item/project-checklist-item.d.ts +19 -0
  342. package/dist-server/service/project-checklist-item/project-checklist-item.js +92 -0
  343. package/dist-server/service/project-checklist-item/project-checklist-item.js.map +1 -0
  344. package/dist-server/service/project-report/project-report-mutation.js +5 -6
  345. package/dist-server/service/project-report/project-report-mutation.js.map +1 -1
  346. package/dist-server/service/project-report/project-report-query.d.ts +2 -2
  347. package/dist-server/service/project-report/project-report-query.js +5 -11
  348. package/dist-server/service/project-report/project-report-query.js.map +1 -1
  349. package/dist-server/service/project-report/project-report.d.ts +0 -2
  350. package/dist-server/service/project-report/project-report.js +0 -6
  351. package/dist-server/service/project-report/project-report.js.map +1 -1
  352. package/dist-server/service/supervisor/supervisor-mutation.js +5 -6
  353. package/dist-server/service/supervisor/supervisor-mutation.js.map +1 -1
  354. package/dist-server/service/supervisor/supervisor-query.d.ts +2 -2
  355. package/dist-server/service/supervisor/supervisor-query.js +5 -11
  356. package/dist-server/service/supervisor/supervisor-query.js.map +1 -1
  357. package/dist-server/tsconfig.tsbuildinfo +1 -1
  358. package/package.json +14 -13
  359. package/things-factory.config.js +9 -1
  360. package/dist-server/service/building-inspection/building-inspection-history.d.ts +0 -17
  361. package/dist-server/service/building-inspection/building-inspection-history.js +0 -86
  362. package/dist-server/service/building-inspection/building-inspection-history.js.map +0 -1
  363. package/dist-server/service/checklist/checklist-history.js.map +0 -1
@@ -0,0 +1,546 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@material/web/icon/icon.js';
3
+ import '../../component/image-preview-popup';
4
+ import { ScrollbarStyles } from '@operato/styles';
5
+ import { css, html, LitElement } from 'lit';
6
+ import { customElement, property, state } from 'lit/decorators.js';
7
+ import { openPopup } from '@operato/layout';
8
+ let FieldDocumentListPanel = class FieldDocumentListPanel extends LitElement {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.projectId = '';
12
+ this.code = '';
13
+ this.folderName = '';
14
+ this.documents = [];
15
+ this.selectedIds = new Set();
16
+ this.isDragOver = false;
17
+ this.selectedDoc = null;
18
+ }
19
+ render() {
20
+ return html `
21
+ <div panel-header>
22
+ <h3>문서 목록${this.folderName ? ` - ${this.folderName}` : ''}</h3>
23
+ <span doc-count>${this.documents.length}건</span>
24
+ </div>
25
+
26
+ ${this.code
27
+ ? html `
28
+ <div table-header>
29
+ <div></div>
30
+ <div>
31
+ <input
32
+ type="checkbox"
33
+ @change=${this._toggleAll}
34
+ .checked=${this.selectedIds.size > 0 && this.selectedIds.size === this.documents.length}
35
+ />
36
+ </div>
37
+ <div>문서번호</div>
38
+ <div style="justify-content:flex-start; padding-left:8px;">제 목</div>
39
+ <div>등록부서</div>
40
+ <div>등록자</div>
41
+ <div>자료분류</div>
42
+ <div>기술분야</div>
43
+ <div>등록일자</div>
44
+ </div>
45
+
46
+ <div
47
+ doc-list
48
+ @dragover=${this._onListDragOver}
49
+ @dragleave=${this._onListDragLeave}
50
+ @drop=${this._onListDrop}
51
+ >
52
+ ${this.isDragOver ? html `<div drop-zone><span>여기에 파일을 놓으세요</span></div>` : ''}
53
+
54
+ ${this.documents.length > 0
55
+ ? this.documents.map((doc, idx) => {
56
+ var _a, _b;
57
+ return html `
58
+ <div
59
+ doc-item
60
+ draggable="true"
61
+ ?selected=${((_a = this.selectedDoc) === null || _a === void 0 ? void 0 : _a.id) === doc.id}
62
+ @dragstart=${(e) => this._onDocDragStart(e, doc)}
63
+ @click=${() => this._selectDoc(doc)}
64
+ >
65
+ <div>
66
+ <md-icon
67
+ preview
68
+ @click=${(e) => {
69
+ e.stopPropagation();
70
+ this._openPreview(doc);
71
+ }}
72
+ >visibility</md-icon>
73
+ </div>
74
+ <div>
75
+ <input
76
+ type="checkbox"
77
+ .checked=${this.selectedIds.has(doc.id)}
78
+ @change=${(e) => this._toggleDoc(e, doc.id)}
79
+ @click=${(e) => e.stopPropagation()}
80
+ />
81
+ </div>
82
+ <div>${doc.code}${String(idx + 1).padStart(2, '0')}</div>
83
+ <div name-cell>
84
+ ${doc.isFavorite ? html `<md-icon favorite>star</md-icon>` : ''}
85
+ <span>${doc.name}</span>
86
+ </div>
87
+ <div></div>
88
+ <div>${((_b = doc.creator) === null || _b === void 0 ? void 0 : _b.name) || ''}</div>
89
+ <div></div>
90
+ <div></div>
91
+ <div>${this._formatDate(doc.createdAt)}</div>
92
+ </div>
93
+ `;
94
+ })
95
+ : html `
96
+ <div empty-state>
97
+ <md-icon>folder_open</md-icon>
98
+ <div>등록된 문서가 없습니다.</div>
99
+ <div style="font-size:12px; margin-top:4px;">파일을 드래그하여 업로드하세요.</div>
100
+ </div>
101
+ `}
102
+ </div>
103
+
104
+ ${this.selectedDoc
105
+ ? html `
106
+ <div doc-detail>
107
+ <div detail-content>
108
+ <md-icon file-icon>description</md-icon>
109
+ <div detail-info>
110
+ <div file-name>${this.selectedDoc.name}</div>
111
+ <div file-meta>
112
+ <div>수정한 날짜: ${this._formatDateTime(this.selectedDoc.createdAt)}</div>
113
+ ${this.selectedDoc.fileSize ? html `<div>크기: ${this._formatFileSize(this.selectedDoc.fileSize)}</div>` : ''}
114
+ </div>
115
+ ${this.selectedDoc.aiSummary
116
+ ? html `
117
+ <div ai-summary>
118
+ <strong><md-icon>auto_awesome</md-icon>AI 브리핑</strong>
119
+ ${this.selectedDoc.aiSummary}
120
+ </div>
121
+ `
122
+ : this.selectedDoc.aiSummaryStatus === '10'
123
+ ? html `
124
+ <div ai-pending>
125
+ <md-icon>hourglass_top</md-icon>
126
+ AI 요약 생성 중...
127
+ </div>
128
+ `
129
+ : ''}
130
+ </div>
131
+ </div>
132
+ </div>
133
+ `
134
+ : ''}
135
+ `
136
+ : html `
137
+ <div empty-state>
138
+ <md-icon>folder</md-icon>
139
+ <div>소분류 폴더를 선택해주세요.</div>
140
+ </div>
141
+ `}
142
+ `;
143
+ }
144
+ _selectDoc(doc) {
145
+ this.selectedDoc = doc;
146
+ }
147
+ _openPreview(doc) {
148
+ this.selectedDoc = doc;
149
+ if (!doc.fullpath)
150
+ return;
151
+ const ext = doc.fullpath.toLowerCase().split('.').pop() || '';
152
+ const isImage = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg'].includes(ext);
153
+ if (isImage) {
154
+ openPopup(html `<image-preview-popup
155
+ .images=${[{ fullpath: doc.fullpath, name: doc.name }]}
156
+ .currentIndex=${0}
157
+ ></image-preview-popup>`, { backdrop: true, size: 'large', title: doc.name });
158
+ }
159
+ else {
160
+ // PDF 등 기타 파일은 새 탭에서 열기
161
+ window.open(doc.fullpath, '_blank');
162
+ }
163
+ }
164
+ _toggleDoc(e, id) {
165
+ const checked = e.target.checked;
166
+ const newSet = new Set(this.selectedIds);
167
+ if (checked) {
168
+ newSet.add(id);
169
+ }
170
+ else {
171
+ newSet.delete(id);
172
+ }
173
+ this.selectedIds = newSet;
174
+ this.dispatchEvent(new CustomEvent('document-selected', { detail: newSet }));
175
+ }
176
+ _toggleAll(e) {
177
+ const checked = e.target.checked;
178
+ if (checked) {
179
+ this.selectedIds = new Set(this.documents.map(d => d.id));
180
+ }
181
+ else {
182
+ this.selectedIds = new Set();
183
+ }
184
+ this.dispatchEvent(new CustomEvent('document-selected', { detail: this.selectedIds }));
185
+ }
186
+ /* Drag & Drop: 데스크톱 파일 업로드 */
187
+ _onListDragOver(e) {
188
+ var _a;
189
+ const types = ((_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.types) || [];
190
+ if (types.includes('Files')) {
191
+ e.preventDefault();
192
+ this.isDragOver = true;
193
+ }
194
+ }
195
+ _onListDragLeave() {
196
+ this.isDragOver = false;
197
+ }
198
+ _onListDrop(e) {
199
+ var _a;
200
+ e.preventDefault();
201
+ this.isDragOver = false;
202
+ const files = Array.from(((_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.files) || []);
203
+ if (files.length > 0) {
204
+ this.dispatchEvent(new CustomEvent('documents-changed', { detail: { files } }));
205
+ }
206
+ }
207
+ /* Drag: 문서 이동용 */
208
+ _onDocDragStart(e, doc) {
209
+ var _a;
210
+ const ids = this.selectedIds.has(doc.id) ? Array.from(this.selectedIds) : [doc.id];
211
+ (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.setData('application/x-field-document-ids', JSON.stringify(ids));
212
+ e.dataTransfer.effectAllowed = 'move';
213
+ }
214
+ _formatDate(date) {
215
+ if (!date)
216
+ return '';
217
+ try {
218
+ const d = new Date(date);
219
+ return new Intl.DateTimeFormat('ko-KR', {
220
+ timeZone: 'Asia/Seoul',
221
+ year: 'numeric',
222
+ month: '2-digit',
223
+ day: '2-digit'
224
+ }).format(d);
225
+ }
226
+ catch (_a) {
227
+ return '';
228
+ }
229
+ }
230
+ _formatFileSize(size) {
231
+ const bytes = Number(size);
232
+ if (isNaN(bytes))
233
+ return size;
234
+ if (bytes < 1024)
235
+ return `${bytes} B`;
236
+ if (bytes < 1024 * 1024)
237
+ return `${(bytes / 1024).toFixed(1)} KB`;
238
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
239
+ }
240
+ _formatDateTime(date) {
241
+ if (!date)
242
+ return '';
243
+ try {
244
+ const d = new Date(date);
245
+ return new Intl.DateTimeFormat('ko-KR', {
246
+ timeZone: 'Asia/Seoul',
247
+ year: 'numeric',
248
+ month: '2-digit',
249
+ day: '2-digit',
250
+ hour: '2-digit',
251
+ minute: '2-digit',
252
+ hour12: true
253
+ }).format(d);
254
+ }
255
+ catch (_a) {
256
+ return '';
257
+ }
258
+ }
259
+ };
260
+ FieldDocumentListPanel.styles = [
261
+ ScrollbarStyles,
262
+ css `
263
+ :host {
264
+ display: flex;
265
+ flex-direction: column;
266
+ overflow: hidden;
267
+ }
268
+
269
+ div[panel-header] {
270
+ display: flex;
271
+ align-items: center;
272
+ padding: 10px 16px;
273
+ background: #fafafa;
274
+ border-bottom: 1px solid #e0e0e0;
275
+
276
+ h3 {
277
+ margin: 0;
278
+ font-size: 14px;
279
+ color: #333;
280
+ flex: 1;
281
+ }
282
+
283
+ span[doc-count] {
284
+ font-size: 12px;
285
+ color: #999;
286
+ }
287
+ }
288
+
289
+ div[table-header] {
290
+ display: grid;
291
+ grid-template-columns: 30px 40px 80px 1fr 80px 80px 80px 80px 100px;
292
+ padding: 8px 16px;
293
+ background: #f0e6e6;
294
+ font-size: 12px;
295
+ font-weight: bold;
296
+ color: #666;
297
+ border-bottom: 1px solid #ddd;
298
+
299
+ & > div {
300
+ display: flex;
301
+ align-items: center;
302
+ justify-content: center;
303
+ }
304
+ }
305
+
306
+ div[doc-list] {
307
+ flex: 1;
308
+ overflow-y: auto;
309
+ overflow-x: hidden;
310
+ position: relative;
311
+ }
312
+
313
+ div[doc-item] {
314
+ display: grid;
315
+ grid-template-columns: 30px 40px 80px 1fr 80px 80px 80px 80px 100px;
316
+ padding: 8px 16px;
317
+ border-bottom: 1px solid #f0f0f0;
318
+ font-size: 13px;
319
+ cursor: pointer;
320
+ transition: background-color 0.15s;
321
+ align-items: center;
322
+
323
+ &:hover {
324
+ background-color: #f5f5f5;
325
+ }
326
+
327
+ & > div {
328
+ display: flex;
329
+ align-items: center;
330
+ justify-content: center;
331
+ overflow: hidden;
332
+ text-overflow: ellipsis;
333
+ white-space: nowrap;
334
+ }
335
+
336
+ md-icon[preview] {
337
+ --md-icon-size: 18px;
338
+ cursor: pointer;
339
+ color: #999;
340
+ border-radius: 50%;
341
+ padding: 2px;
342
+ }
343
+
344
+ md-icon[preview]:hover {
345
+ color: #0595e5;
346
+ background: #e3f2fd;
347
+ }
348
+
349
+ div[name-cell] {
350
+ justify-content: flex-start;
351
+ gap: 6px;
352
+
353
+ md-icon[favorite] {
354
+ --md-icon-size: 16px;
355
+ color: #ffc107;
356
+ flex-shrink: 0;
357
+ }
358
+
359
+ span {
360
+ overflow: hidden;
361
+ text-overflow: ellipsis;
362
+ }
363
+ }
364
+
365
+ div[ai-cell] {
366
+ font-size: 11px;
367
+
368
+ span[ai-done] {
369
+ display: flex;
370
+ align-items: center;
371
+ gap: 2px;
372
+ color: #2e7d32;
373
+
374
+ md-icon {
375
+ --md-icon-size: 14px;
376
+ color: #4caf50;
377
+ }
378
+ }
379
+
380
+ span[ai-pending] {
381
+ color: #ef6c00;
382
+ }
383
+ }
384
+
385
+ input[type='checkbox'] {
386
+ cursor: pointer;
387
+ }
388
+ }
389
+
390
+ div[doc-item][selected] {
391
+ background-color: #e3f2fd;
392
+ }
393
+
394
+ div[doc-item][draggable='true'] {
395
+ cursor: grab;
396
+
397
+ &:active {
398
+ cursor: grabbing;
399
+ }
400
+ }
401
+
402
+ div[drop-zone] {
403
+ position: absolute;
404
+ inset: 0;
405
+ display: flex;
406
+ align-items: center;
407
+ justify-content: center;
408
+ background: rgba(33, 150, 243, 0.08);
409
+ border: 3px dashed #1976d2;
410
+ border-radius: 8px;
411
+ z-index: 10;
412
+ pointer-events: none;
413
+
414
+ span {
415
+ font-size: 16px;
416
+ color: #1976d2;
417
+ font-weight: bold;
418
+ }
419
+ }
420
+
421
+ div[empty-state] {
422
+ display: flex;
423
+ flex-direction: column;
424
+ align-items: center;
425
+ justify-content: center;
426
+ padding: 60px 20px;
427
+ color: #999;
428
+ flex: 1;
429
+
430
+ md-icon {
431
+ --md-icon-size: 48px;
432
+ color: #ddd;
433
+ margin-bottom: 12px;
434
+ }
435
+ }
436
+
437
+ div[doc-detail] {
438
+ padding: 12px 16px;
439
+ background: #fafafa;
440
+ border-top: 1px solid #e0e0e0;
441
+ overflow-y: auto;
442
+
443
+ div[detail-content] {
444
+ display: flex;
445
+ align-items: flex-start;
446
+ gap: 12px;
447
+
448
+ md-icon[file-icon] {
449
+ --md-icon-size: 36px;
450
+ color: #0595e5;
451
+ background: #e3f2fd;
452
+ padding: 8px;
453
+ border-radius: 8px;
454
+ flex-shrink: 0;
455
+ }
456
+
457
+ div[detail-info] {
458
+ flex: 1;
459
+
460
+ div[file-name] {
461
+ font-weight: bold;
462
+ font-size: 14px;
463
+ margin-bottom: 4px;
464
+ }
465
+
466
+ div[file-meta] {
467
+ font-size: 12px;
468
+ color: #666;
469
+ margin-bottom: 8px;
470
+ }
471
+
472
+ div[ai-summary] {
473
+ padding: 8px 12px;
474
+ background: #e8f5e9;
475
+ border-radius: 6px;
476
+ font-size: 12px;
477
+ color: #333;
478
+
479
+ strong {
480
+ display: flex;
481
+ align-items: center;
482
+ gap: 6px;
483
+ margin-bottom: 4px;
484
+ }
485
+
486
+ md-icon {
487
+ --md-icon-size: 18px;
488
+ color: #4caf50;
489
+ flex-shrink: 0;
490
+ }
491
+ }
492
+
493
+ div[ai-pending] {
494
+ display: flex;
495
+ align-items: center;
496
+ gap: 6px;
497
+ padding: 8px 12px;
498
+ background: #fff3e0;
499
+ border-radius: 6px;
500
+ font-size: 12px;
501
+ color: #ef6c00;
502
+
503
+ md-icon {
504
+ --md-icon-size: 18px;
505
+ flex-shrink: 0;
506
+ }
507
+ }
508
+ }
509
+ }
510
+
511
+ }
512
+ `
513
+ ];
514
+ __decorate([
515
+ property({ type: String }),
516
+ __metadata("design:type", String)
517
+ ], FieldDocumentListPanel.prototype, "projectId", void 0);
518
+ __decorate([
519
+ property({ type: String }),
520
+ __metadata("design:type", String)
521
+ ], FieldDocumentListPanel.prototype, "code", void 0);
522
+ __decorate([
523
+ property({ type: String }),
524
+ __metadata("design:type", String)
525
+ ], FieldDocumentListPanel.prototype, "folderName", void 0);
526
+ __decorate([
527
+ property({ type: Array }),
528
+ __metadata("design:type", Array)
529
+ ], FieldDocumentListPanel.prototype, "documents", void 0);
530
+ __decorate([
531
+ state(),
532
+ __metadata("design:type", Set)
533
+ ], FieldDocumentListPanel.prototype, "selectedIds", void 0);
534
+ __decorate([
535
+ state(),
536
+ __metadata("design:type", Boolean)
537
+ ], FieldDocumentListPanel.prototype, "isDragOver", void 0);
538
+ __decorate([
539
+ state(),
540
+ __metadata("design:type", Object)
541
+ ], FieldDocumentListPanel.prototype, "selectedDoc", void 0);
542
+ FieldDocumentListPanel = __decorate([
543
+ customElement('field-document-list-panel')
544
+ ], FieldDocumentListPanel);
545
+ export { FieldDocumentListPanel };
546
+ //# sourceMappingURL=field-document-list-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-document-list-panel.js","sourceRoot":"","sources":["../../../../../client/pages/building-inspection/component/field-document/field-document-list-panel.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '../../component/image-preview-popup'\n\nimport { ScrollbarStyles } from '@operato/styles'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { openPopup } from '@operato/layout'\n\n@customElement('field-document-list-panel')\nexport class FieldDocumentListPanel extends LitElement {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n div[panel-header] {\n display: flex;\n align-items: center;\n padding: 10px 16px;\n background: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n\n h3 {\n margin: 0;\n font-size: 14px;\n color: #333;\n flex: 1;\n }\n\n span[doc-count] {\n font-size: 12px;\n color: #999;\n }\n }\n\n div[table-header] {\n display: grid;\n grid-template-columns: 30px 40px 80px 1fr 80px 80px 80px 80px 100px;\n padding: 8px 16px;\n background: #f0e6e6;\n font-size: 12px;\n font-weight: bold;\n color: #666;\n border-bottom: 1px solid #ddd;\n\n & > div {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n\n div[doc-list] {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n position: relative;\n }\n\n div[doc-item] {\n display: grid;\n grid-template-columns: 30px 40px 80px 1fr 80px 80px 80px 80px 100px;\n padding: 8px 16px;\n border-bottom: 1px solid #f0f0f0;\n font-size: 13px;\n cursor: pointer;\n transition: background-color 0.15s;\n align-items: center;\n\n &:hover {\n background-color: #f5f5f5;\n }\n\n & > div {\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n md-icon[preview] {\n --md-icon-size: 18px;\n cursor: pointer;\n color: #999;\n border-radius: 50%;\n padding: 2px;\n }\n\n md-icon[preview]:hover {\n color: #0595e5;\n background: #e3f2fd;\n }\n\n div[name-cell] {\n justify-content: flex-start;\n gap: 6px;\n\n md-icon[favorite] {\n --md-icon-size: 16px;\n color: #ffc107;\n flex-shrink: 0;\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n div[ai-cell] {\n font-size: 11px;\n\n span[ai-done] {\n display: flex;\n align-items: center;\n gap: 2px;\n color: #2e7d32;\n\n md-icon {\n --md-icon-size: 14px;\n color: #4caf50;\n }\n }\n\n span[ai-pending] {\n color: #ef6c00;\n }\n }\n\n input[type='checkbox'] {\n cursor: pointer;\n }\n }\n\n div[doc-item][selected] {\n background-color: #e3f2fd;\n }\n\n div[doc-item][draggable='true'] {\n cursor: grab;\n\n &:active {\n cursor: grabbing;\n }\n }\n\n div[drop-zone] {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(33, 150, 243, 0.08);\n border: 3px dashed #1976d2;\n border-radius: 8px;\n z-index: 10;\n pointer-events: none;\n\n span {\n font-size: 16px;\n color: #1976d2;\n font-weight: bold;\n }\n }\n\n div[empty-state] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: #999;\n flex: 1;\n\n md-icon {\n --md-icon-size: 48px;\n color: #ddd;\n margin-bottom: 12px;\n }\n }\n\n div[doc-detail] {\n padding: 12px 16px;\n background: #fafafa;\n border-top: 1px solid #e0e0e0;\n overflow-y: auto;\n\n div[detail-content] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n\n md-icon[file-icon] {\n --md-icon-size: 36px;\n color: #0595e5;\n background: #e3f2fd;\n padding: 8px;\n border-radius: 8px;\n flex-shrink: 0;\n }\n\n div[detail-info] {\n flex: 1;\n\n div[file-name] {\n font-weight: bold;\n font-size: 14px;\n margin-bottom: 4px;\n }\n\n div[file-meta] {\n font-size: 12px;\n color: #666;\n margin-bottom: 8px;\n }\n\n div[ai-summary] {\n padding: 8px 12px;\n background: #e8f5e9;\n border-radius: 6px;\n font-size: 12px;\n color: #333;\n\n strong {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 4px;\n }\n\n md-icon {\n --md-icon-size: 18px;\n color: #4caf50;\n flex-shrink: 0;\n }\n }\n\n div[ai-pending] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n background: #fff3e0;\n border-radius: 6px;\n font-size: 12px;\n color: #ef6c00;\n\n md-icon {\n --md-icon-size: 18px;\n flex-shrink: 0;\n }\n }\n }\n }\n\n }\n `\n ]\n\n @property({ type: String }) projectId: string = ''\n @property({ type: String }) code: string = ''\n @property({ type: String }) folderName: string = ''\n @property({ type: Array }) documents: any[] = []\n\n @state() private selectedIds: Set<string> = new Set()\n @state() private isDragOver: boolean = false\n @state() private selectedDoc: any = null\n\n render() {\n return html`\n <div panel-header>\n <h3>문서 목록${this.folderName ? ` - ${this.folderName}` : ''}</h3>\n <span doc-count>${this.documents.length}건</span>\n </div>\n\n ${this.code\n ? html`\n <div table-header>\n <div></div>\n <div>\n <input\n type=\"checkbox\"\n @change=${this._toggleAll}\n .checked=${this.selectedIds.size > 0 && this.selectedIds.size === this.documents.length}\n />\n </div>\n <div>문서번호</div>\n <div style=\"justify-content:flex-start; padding-left:8px;\">제 목</div>\n <div>등록부서</div>\n <div>등록자</div>\n <div>자료분류</div>\n <div>기술분야</div>\n <div>등록일자</div>\n </div>\n\n <div\n doc-list\n @dragover=${this._onListDragOver}\n @dragleave=${this._onListDragLeave}\n @drop=${this._onListDrop}\n >\n ${this.isDragOver ? html`<div drop-zone><span>여기에 파일을 놓으세요</span></div>` : ''}\n\n ${this.documents.length > 0\n ? this.documents.map(\n (doc, idx) => html`\n <div\n doc-item\n draggable=\"true\"\n ?selected=${this.selectedDoc?.id === doc.id}\n @dragstart=${(e: DragEvent) => this._onDocDragStart(e, doc)}\n @click=${() => this._selectDoc(doc)}\n >\n <div>\n <md-icon\n preview\n @click=${(e: Event) => {\n e.stopPropagation()\n this._openPreview(doc)\n }}\n >visibility</md-icon>\n </div>\n <div>\n <input\n type=\"checkbox\"\n .checked=${this.selectedIds.has(doc.id)}\n @change=${(e: Event) => this._toggleDoc(e, doc.id)}\n @click=${(e: Event) => e.stopPropagation()}\n />\n </div>\n <div>${doc.code}${String(idx + 1).padStart(2, '0')}</div>\n <div name-cell>\n ${doc.isFavorite ? html`<md-icon favorite>star</md-icon>` : ''}\n <span>${doc.name}</span>\n </div>\n <div></div>\n <div>${doc.creator?.name || ''}</div>\n <div></div>\n <div></div>\n <div>${this._formatDate(doc.createdAt)}</div>\n </div>\n `\n )\n : html`\n <div empty-state>\n <md-icon>folder_open</md-icon>\n <div>등록된 문서가 없습니다.</div>\n <div style=\"font-size:12px; margin-top:4px;\">파일을 드래그하여 업로드하세요.</div>\n </div>\n `}\n </div>\n\n ${this.selectedDoc\n ? html`\n <div doc-detail>\n <div detail-content>\n <md-icon file-icon>description</md-icon>\n <div detail-info>\n <div file-name>${this.selectedDoc.name}</div>\n <div file-meta>\n <div>수정한 날짜: ${this._formatDateTime(this.selectedDoc.createdAt)}</div>\n ${this.selectedDoc.fileSize ? html`<div>크기: ${this._formatFileSize(this.selectedDoc.fileSize)}</div>` : ''}\n </div>\n ${this.selectedDoc.aiSummary\n ? html`\n <div ai-summary>\n <strong><md-icon>auto_awesome</md-icon>AI 브리핑</strong>\n ${this.selectedDoc.aiSummary}\n </div>\n `\n : this.selectedDoc.aiSummaryStatus === '10'\n ? html`\n <div ai-pending>\n <md-icon>hourglass_top</md-icon>\n AI 요약 생성 중...\n </div>\n `\n : ''}\n </div>\n </div>\n </div>\n `\n : ''}\n `\n : html`\n <div empty-state>\n <md-icon>folder</md-icon>\n <div>소분류 폴더를 선택해주세요.</div>\n </div>\n `}\n `\n }\n\n private _selectDoc(doc: any) {\n this.selectedDoc = doc\n }\n\n private _openPreview(doc: any) {\n this.selectedDoc = doc\n\n if (!doc.fullpath) return\n\n const ext = doc.fullpath.toLowerCase().split('.').pop() || ''\n const isImage = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg'].includes(ext)\n\n if (isImage) {\n openPopup(\n html`<image-preview-popup\n .images=${[{ fullpath: doc.fullpath, name: doc.name }]}\n .currentIndex=${0}\n ></image-preview-popup>`,\n { backdrop: true, size: 'large', title: doc.name }\n )\n } else {\n // PDF 등 기타 파일은 새 탭에서 열기\n window.open(doc.fullpath, '_blank')\n }\n }\n\n private _toggleDoc(e: Event, id: string) {\n const checked = (e.target as HTMLInputElement).checked\n const newSet = new Set(this.selectedIds)\n if (checked) {\n newSet.add(id)\n } else {\n newSet.delete(id)\n }\n this.selectedIds = newSet\n this.dispatchEvent(new CustomEvent('document-selected', { detail: newSet }))\n }\n\n private _toggleAll(e: Event) {\n const checked = (e.target as HTMLInputElement).checked\n if (checked) {\n this.selectedIds = new Set(this.documents.map(d => d.id))\n } else {\n this.selectedIds = new Set()\n }\n this.dispatchEvent(new CustomEvent('document-selected', { detail: this.selectedIds }))\n }\n\n /* Drag & Drop: 데스크톱 파일 업로드 */\n private _onListDragOver(e: DragEvent) {\n const types = e.dataTransfer?.types || []\n if (types.includes('Files')) {\n e.preventDefault()\n this.isDragOver = true\n }\n }\n\n private _onListDragLeave() {\n this.isDragOver = false\n }\n\n private _onListDrop(e: DragEvent) {\n e.preventDefault()\n this.isDragOver = false\n\n const files = Array.from(e.dataTransfer?.files || [])\n if (files.length > 0) {\n this.dispatchEvent(new CustomEvent('documents-changed', { detail: { files } }))\n }\n }\n\n /* Drag: 문서 이동용 */\n private _onDocDragStart(e: DragEvent, doc: any) {\n const ids = this.selectedIds.has(doc.id) ? Array.from(this.selectedIds) : [doc.id]\n e.dataTransfer?.setData('application/x-field-document-ids', JSON.stringify(ids))\n e.dataTransfer!.effectAllowed = 'move'\n }\n\n private _formatDate(date: any): string {\n if (!date) return ''\n try {\n const d = new Date(date)\n return new Intl.DateTimeFormat('ko-KR', {\n timeZone: 'Asia/Seoul',\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n }).format(d)\n } catch {\n return ''\n }\n }\n\n private _formatFileSize(size: string): string {\n const bytes = Number(size)\n if (isNaN(bytes)) return size\n if (bytes < 1024) return `${bytes} B`\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`\n }\n\n private _formatDateTime(date: any): string {\n if (!date) return ''\n try {\n const d = new Date(date)\n return new Intl.DateTimeFormat('ko-KR', {\n timeZone: 'Asia/Seoul',\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n hour12: true\n }).format(d)\n } catch {\n return ''\n }\n }\n}\n"]}
@@ -0,0 +1,42 @@
1
+ import '@material/web/icon/icon.js';
2
+ import '@material/web/button/filled-button.js';
3
+ import '@material/web/button/outlined-button.js';
4
+ import '@material/web/progress/circular-progress.js';
5
+ import './field-document-list-panel';
6
+ import { LitElement } from 'lit';
7
+ export declare class FieldDocumentPopup extends LitElement {
8
+ static styles: import("lit").CSSResult[];
9
+ projectId: string;
10
+ private selectedMajor;
11
+ private selectedMiddle;
12
+ private selectedMinor;
13
+ private documents;
14
+ private selectedDocIds;
15
+ private codeCounts;
16
+ private dragOverItem;
17
+ private uploading;
18
+ private uploadingFile;
19
+ private _tooltipText;
20
+ private _tooltipX;
21
+ private _tooltipY;
22
+ render(): import("lit-html").TemplateResult<1>;
23
+ firstUpdated(): Promise<void>;
24
+ private _selectMajor;
25
+ private _selectMiddle;
26
+ private _selectMinor;
27
+ private _loadDocuments;
28
+ private _loadCounts;
29
+ private _getMajorCount;
30
+ private _getMiddleCount;
31
+ private _shareDocuments;
32
+ private _toggleFavorites;
33
+ private _triggerUpload;
34
+ private _onNativeFileSelected;
35
+ private _uploadFiles;
36
+ private _deleteDocuments;
37
+ private _onFolderDragOver;
38
+ private _expandTimeout;
39
+ private _onFolderDrop;
40
+ private _onDocumentsChanged;
41
+ private _showTooltip;
42
+ }