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

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