@dssp/supervision 1.0.0-alpha.5 → 1.0.0-alpha.51

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 (205) hide show
  1. package/dist-client/graphql/building-inspection.d.ts +1 -0
  2. package/dist-client/graphql/building-inspection.js +100 -0
  3. package/dist-client/graphql/building-inspection.js.map +1 -0
  4. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.d.ts +22 -0
  5. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.js +169 -0
  6. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.js.map +1 -0
  7. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.d.ts +57 -0
  8. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js +825 -0
  9. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js.map +1 -0
  10. package/dist-client/pages/building-inspection/building-inspection-detail-camera.d.ts +8 -6
  11. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js +115 -65
  12. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js.map +1 -1
  13. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.d.ts +9 -0
  14. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js +130 -72
  15. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js.map +1 -1
  16. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.d.ts +1 -0
  17. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js +77 -14
  18. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js.map +1 -1
  19. package/dist-client/pages/building-inspection/building-inspection-list.d.ts +18 -2
  20. package/dist-client/pages/building-inspection/building-inspection-list.js +360 -28
  21. package/dist-client/pages/building-inspection/building-inspection-list.js.map +1 -1
  22. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.d.ts +3 -0
  23. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js +104 -17
  24. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js.map +1 -1
  25. package/dist-client/pages/building-inspection/component/daily-worklog-popup.d.ts +27 -0
  26. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js +542 -0
  27. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js.map +1 -0
  28. package/dist-client/pages/building-inspection/component/image-preview-popup.d.ts +15 -0
  29. package/dist-client/pages/building-inspection/component/image-preview-popup.js +351 -0
  30. package/dist-client/pages/building-inspection/component/image-preview-popup.js.map +1 -0
  31. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.d.ts +20 -0
  32. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js +432 -0
  33. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js.map +1 -0
  34. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.d.ts +30 -0
  35. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js +479 -0
  36. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js.map +1 -0
  37. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.d.ts +27 -0
  38. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js +416 -0
  39. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js.map +1 -0
  40. package/dist-client/pages/building-inspection/component/inspection-event-provider.d.ts +2 -1
  41. package/dist-client/pages/building-inspection/component/inspection-event-provider.js +39 -17
  42. package/dist-client/pages/building-inspection/component/inspection-event-provider.js.map +1 -1
  43. package/dist-client/pages/building-inspection/inspection-create-popup.js +22 -9
  44. package/dist-client/pages/building-inspection/inspection-create-popup.js.map +1 -1
  45. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.d.ts +20 -0
  46. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js +433 -57
  47. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js.map +1 -1
  48. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js +131 -17
  49. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js.map +1 -1
  50. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.d.ts +19 -0
  51. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.js +205 -0
  52. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.js.map +1 -0
  53. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.d.ts +15 -0
  54. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.js +430 -0
  55. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.js.map +1 -0
  56. package/dist-client/pages/checklist/attachment-list-popup.d.ts +1 -0
  57. package/dist-client/pages/checklist/attachment-list-popup.js +250 -67
  58. package/dist-client/pages/checklist/attachment-list-popup.js.map +1 -1
  59. package/dist-client/pages/checklist/checklist-view.d.ts +5 -0
  60. package/dist-client/pages/checklist/checklist-view.js +99 -29
  61. package/dist-client/pages/checklist/checklist-view.js.map +1 -1
  62. package/dist-client/pages/checklist/comment-list-popup.js +14 -3
  63. package/dist-client/pages/checklist/comment-list-popup.js.map +1 -1
  64. package/dist-client/pages/checklist/file-preview-popup.js +0 -1
  65. package/dist-client/pages/checklist/file-preview-popup.js.map +1 -1
  66. package/dist-client/pages/checklist/inspection-info-popup.d.ts +50 -0
  67. package/dist-client/pages/checklist/inspection-info-popup.js +684 -0
  68. package/dist-client/pages/checklist/inspection-info-popup.js.map +1 -0
  69. package/dist-client/pages/checklist/inspection-tab-popup.d.ts +18 -0
  70. package/dist-client/pages/checklist/inspection-tab-popup.js +196 -0
  71. package/dist-client/pages/checklist/inspection-tab-popup.js.map +1 -0
  72. package/dist-client/pages/checklist-template/checklist-template-item.js +14 -3
  73. package/dist-client/pages/checklist-template/checklist-template-item.js.map +1 -1
  74. package/dist-client/pages/checklist-template/checklist-template-list.js +1 -1
  75. package/dist-client/pages/checklist-template/checklist-template-list.js.map +1 -1
  76. package/dist-client/route.d.ts +1 -1
  77. package/dist-client/route.js +6 -0
  78. package/dist-client/route.js.map +1 -1
  79. package/dist-client/tsconfig.tsbuildinfo +1 -1
  80. package/dist-server/service/building-inspection/building-inspection-mutation.d.ts +3 -3
  81. package/dist-server/service/building-inspection/building-inspection-mutation.js +130 -36
  82. package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -1
  83. package/dist-server/service/building-inspection/building-inspection-query.d.ts +3 -5
  84. package/dist-server/service/building-inspection/building-inspection-query.js +16 -29
  85. package/dist-server/service/building-inspection/building-inspection-query.js.map +1 -1
  86. package/dist-server/service/building-inspection/building-inspection-type.d.ts +23 -7
  87. package/dist-server/service/building-inspection/building-inspection-type.js +80 -13
  88. package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -1
  89. package/dist-server/service/building-inspection/building-inspection.d.ts +4 -0
  90. package/dist-server/service/building-inspection/building-inspection.js +17 -2
  91. package/dist-server/service/building-inspection/building-inspection.js.map +1 -1
  92. package/dist-server/service/building-inspection/index.d.ts +3 -4
  93. package/dist-server/service/building-inspection/index.js +10 -3
  94. package/dist-server/service/building-inspection/index.js.map +1 -1
  95. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.d.ts +6 -0
  96. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js +56 -0
  97. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js.map +1 -0
  98. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.d.ts +16 -0
  99. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js +171 -0
  100. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js.map +1 -0
  101. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.d.ts +23 -0
  102. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js +90 -0
  103. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js.map +1 -0
  104. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.d.ts +33 -0
  105. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js +132 -0
  106. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js.map +1 -0
  107. package/dist-server/service/building-inspection-daily-worklog/index.d.ts +5 -0
  108. package/dist-server/service/building-inspection-daily-worklog/index.js +9 -0
  109. package/dist-server/service/building-inspection-daily-worklog/index.js.map +1 -0
  110. package/dist-server/service/building-inspection-history/building-inspection-history-query.d.ts +16 -0
  111. package/dist-server/service/building-inspection-history/building-inspection-history-query.js +120 -0
  112. package/dist-server/service/building-inspection-history/building-inspection-history-query.js.map +1 -0
  113. package/dist-server/service/building-inspection-history/building-inspection-history-type.d.ts +5 -0
  114. package/dist-server/service/building-inspection-history/building-inspection-history-type.js +21 -0
  115. package/dist-server/service/building-inspection-history/building-inspection-history-type.js.map +1 -0
  116. package/dist-server/service/building-inspection-history/building-inspection-history.d.ts +34 -0
  117. package/dist-server/service/building-inspection-history/building-inspection-history.js +157 -0
  118. package/dist-server/service/building-inspection-history/building-inspection-history.js.map +1 -0
  119. package/dist-server/service/building-inspection-history/event-subscriber.d.ts +7 -0
  120. package/dist-server/service/building-inspection-history/event-subscriber.js +21 -0
  121. package/dist-server/service/building-inspection-history/event-subscriber.js.map +1 -0
  122. package/dist-server/service/building-inspection-history/index.d.ts +6 -0
  123. package/dist-server/service/building-inspection-history/index.js +10 -0
  124. package/dist-server/service/building-inspection-history/index.js.map +1 -0
  125. package/dist-server/service/checklist/checklist-mutation.d.ts +0 -5
  126. package/dist-server/service/checklist/checklist-mutation.js +1 -67
  127. package/dist-server/service/checklist/checklist-mutation.js.map +1 -1
  128. package/dist-server/service/checklist/checklist-query.d.ts +7 -0
  129. package/dist-server/service/checklist/checklist-query.js +83 -0
  130. package/dist-server/service/checklist/checklist-query.js.map +1 -1
  131. package/dist-server/service/checklist/checklist-type.d.ts +0 -13
  132. package/dist-server/service/checklist/checklist-type.js +1 -49
  133. package/dist-server/service/checklist/checklist-type.js.map +1 -1
  134. package/dist-server/service/checklist/checklist.d.ts +28 -3
  135. package/dist-server/service/checklist/checklist.js +89 -15
  136. package/dist-server/service/checklist/checklist.js.map +1 -1
  137. package/dist-server/service/checklist/event-subscriber.d.ts +7 -0
  138. package/dist-server/service/checklist/event-subscriber.js +21 -0
  139. package/dist-server/service/checklist/event-subscriber.js.map +1 -0
  140. package/dist-server/service/checklist/index.d.ts +1 -2
  141. package/dist-server/service/checklist/index.js +1 -2
  142. package/dist-server/service/checklist/index.js.map +1 -1
  143. package/dist-server/service/checklist-history/checklist-history-query.d.ts +11 -0
  144. package/dist-server/service/checklist-history/checklist-history-query.js +77 -0
  145. package/dist-server/service/checklist-history/checklist-history-query.js.map +1 -0
  146. package/dist-server/service/checklist-history/checklist-history-type.d.ts +5 -0
  147. package/dist-server/service/checklist-history/checklist-history-type.js +21 -0
  148. package/dist-server/service/checklist-history/checklist-history-type.js.map +1 -0
  149. package/dist-server/service/{checklist → checklist-history}/checklist-history.d.ts +19 -1
  150. package/dist-server/service/{checklist → checklist-history}/checklist-history.js +97 -14
  151. package/dist-server/service/checklist-history/checklist-history.js.map +1 -0
  152. package/dist-server/service/checklist-history/event-subscriber.d.ts +7 -0
  153. package/dist-server/service/checklist-history/event-subscriber.js +21 -0
  154. package/dist-server/service/checklist-history/event-subscriber.js.map +1 -0
  155. package/dist-server/service/checklist-history/index.d.ts +6 -0
  156. package/dist-server/service/checklist-history/index.js +10 -0
  157. package/dist-server/service/checklist-history/index.js.map +1 -0
  158. package/dist-server/service/checklist-item/checklist-item-query.d.ts +1 -1
  159. package/dist-server/service/checklist-item/checklist-item-query.js +5 -3
  160. package/dist-server/service/checklist-item/checklist-item-query.js.map +1 -1
  161. package/dist-server/service/checklist-item/index.d.ts +0 -1
  162. package/dist-server/service/checklist-item/index.js +1 -2
  163. package/dist-server/service/checklist-item/index.js.map +1 -1
  164. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.d.ts +1 -0
  165. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js +33 -6
  166. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js.map +1 -1
  167. package/dist-server/service/checklist-item-history/checklist-item-history-query.d.ts +16 -0
  168. package/dist-server/service/checklist-item-history/checklist-item-history-query.js +123 -0
  169. package/dist-server/service/checklist-item-history/checklist-item-history-query.js.map +1 -0
  170. package/dist-server/service/checklist-item-history/checklist-item-history-type.d.ts +5 -0
  171. package/dist-server/service/checklist-item-history/checklist-item-history-type.js +21 -0
  172. package/dist-server/service/checklist-item-history/checklist-item-history-type.js.map +1 -0
  173. package/dist-server/service/checklist-item-history/checklist-item-history.d.ts +25 -0
  174. package/dist-server/service/checklist-item-history/checklist-item-history.js +123 -0
  175. package/dist-server/service/checklist-item-history/checklist-item-history.js.map +1 -0
  176. package/dist-server/service/checklist-item-history/event-subscriber.d.ts +7 -0
  177. package/dist-server/service/checklist-item-history/event-subscriber.js +21 -0
  178. package/dist-server/service/checklist-item-history/event-subscriber.js.map +1 -0
  179. package/dist-server/service/checklist-item-history/index.d.ts +6 -0
  180. package/dist-server/service/checklist-item-history/index.js +10 -0
  181. package/dist-server/service/checklist-item-history/index.js.map +1 -0
  182. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js +4 -1
  183. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js.map +1 -1
  184. package/dist-server/service/checklist-template-item/checklist-template-item-type.d.ts +2 -0
  185. package/dist-server/service/checklist-template-item/checklist-template-item-type.js +5 -0
  186. package/dist-server/service/checklist-template-item/checklist-template-item-type.js.map +1 -1
  187. package/dist-server/service/checklist-template-item/checklist-template-item.d.ts +6 -0
  188. package/dist-server/service/checklist-template-item/checklist-template-item.js +16 -1
  189. package/dist-server/service/checklist-template-item/checklist-template-item.js.map +1 -1
  190. package/dist-server/service/checklist-template-item/spec-matching-service.d.ts +2 -0
  191. package/dist-server/service/checklist-template-item/spec-matching-service.js +50 -0
  192. package/dist-server/service/checklist-template-item/spec-matching-service.js.map +1 -0
  193. package/dist-server/service/index.d.ts +4 -1
  194. package/dist-server/service/index.js +22 -3
  195. package/dist-server/service/index.js.map +1 -1
  196. package/dist-server/service/project-report/project-report.d.ts +0 -2
  197. package/dist-server/service/project-report/project-report.js +0 -6
  198. package/dist-server/service/project-report/project-report.js.map +1 -1
  199. package/dist-server/tsconfig.tsbuildinfo +1 -1
  200. package/package.json +14 -13
  201. package/things-factory.config.js +2 -0
  202. package/dist-server/service/building-inspection/building-inspection-history.d.ts +0 -17
  203. package/dist-server/service/building-inspection/building-inspection-history.js +0 -86
  204. package/dist-server/service/building-inspection/building-inspection-history.js.map +0 -1
  205. package/dist-server/service/checklist/checklist-history.js.map +0 -1
@@ -13,6 +13,11 @@ import { notify, openPopup } from '@operato/layout';
13
13
  import './component/notice-comment-popup';
14
14
  import './component/grid-inspection-create-popup';
15
15
  import { BUILDING_INSPECTION_STATUS_DISPLAY, BuildingInspectionStatus } from '../building-inspection/building-inspection-list';
16
+ import '../checklist/inspection-tab-popup';
17
+ import { verifyBiometric } from '@things-factory/auth-base/dist-client';
18
+ import { OxPrompt } from '@operato/popup';
19
+ import './component/plan-preview-popup';
20
+ import './component/grid-inspection-list-layer';
16
21
  let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends ScopedElementsMixin(PageView) {
17
22
  constructor() {
18
23
  super(...arguments);
@@ -24,12 +29,14 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
24
29
  };
25
30
  this.project = Object.assign({}, this.defaultProject);
26
31
  this.buildingInspections = [];
32
+ this.cellToInspections = {};
27
33
  this.buildingInspectionSummaryOfProject = {};
28
34
  this.buildingInspectionSummaryOfBuildingLevel = {};
29
35
  this.selectedBuilding = {};
30
36
  this.selectedLevel = {};
31
37
  this.selectedInspection = {};
32
38
  this.cell = '';
39
+ this.listLayer = { open: false, cell: '', items: [] };
33
40
  }
34
41
  get context() {
35
42
  return {
@@ -37,13 +44,16 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
37
44
  };
38
45
  }
39
46
  render() {
40
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
47
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
41
48
  // 그리드 가로, 세로 길이 배열 생성
42
49
  const planXScale = Array.from({ length: ((_b = (_a = this.project) === null || _a === void 0 ? void 0 : _a.buildingComplex) === null || _b === void 0 ? void 0 : _b.planXScale) || 0 }, (_, i) => i);
43
50
  const planYScale = Array.from({ length: ((_d = (_c = this.project) === null || _c === void 0 ? void 0 : _c.buildingComplex) === null || _d === void 0 ? void 0 : _d.planYScale) || 0 }, (_, i) => i);
44
51
  return html `
45
52
  <div header>
46
- <h2>${this.project.name} ${(_e = this.selectedBuilding) === null || _e === void 0 ? void 0 : _e.name} ${(_f = this.selectedLevel) === null || _f === void 0 ? void 0 : _f.floor}층</h2>
53
+ <h2>
54
+ <md-icon slot="icon" back @click=${() => history.back()}>arrow_back</md-icon>
55
+ ${this.project.name} ${(_e = this.selectedBuilding) === null || _e === void 0 ? void 0 : _e.name} ${(_f = this.selectedLevel) === null || _f === void 0 ? void 0 : _f.floorDisplayName}층
56
+ </h2>
47
57
  <div button-container>
48
58
  <md-elevated-button href=${`project-update/${this.project.id}`}>
49
59
  <md-icon slot="icon">assignment</md-icon>프로젝트 정보 수정
@@ -51,6 +61,9 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
51
61
  <md-elevated-button href=${`project-plan-management/${this.project.id}`}>
52
62
  <md-icon slot="icon">description</md-icon>도면 관리
53
63
  </md-elevated-button>
64
+ <md-elevated-button @click=${this._openPlanPreviewPopup}>
65
+ <md-icon slot="icon">folder_eye</md-icon>추가 도면 보기
66
+ </md-elevated-button>
54
67
  </div>
55
68
  </div>
56
69
 
@@ -79,22 +92,22 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
79
92
  </div>
80
93
 
81
94
  <div state>
82
- <span
83
- ><md-icon request slot="icon">frame_inspect</md-icon> 검측대기
84
- <span bold>${this.buildingInspectionSummaryOfProject[BuildingInspectionStatus.WAIT.toLowerCase()]}</span></span
85
- >
86
- <span
87
- ><md-icon request slot="icon">exclamation</md-icon> 검측요청
88
- <span bold>${this.buildingInspectionSummaryOfProject[BuildingInspectionStatus.REQUEST.toLowerCase()]}</span></span
89
- >
90
- <span
91
- ><md-icon pass slot="icon">check</md-icon> 합격
92
- <span bold>${this.buildingInspectionSummaryOfProject[BuildingInspectionStatus.PASS.toLowerCase()]}</span></span
93
- >
94
- <span
95
- ><md-icon fail slot="icon">close</md-icon> 불합격
96
- <span bold>${this.buildingInspectionSummaryOfProject[BuildingInspectionStatus.FAIL.toLowerCase()]}</span></span
97
- >
95
+ <span>
96
+ <md-icon request slot="icon">frame_inspect</md-icon> 검측대기
97
+ <span bold>${this.buildingInspectionSummaryOfProject[BuildingInspectionStatus.WAIT.toLowerCase()]}</span>
98
+ </span>
99
+ <span>
100
+ <md-icon request slot="icon">exclamation</md-icon> 검측요청
101
+ <span bold>${this.buildingInspectionSummaryOfProject[BuildingInspectionStatus.REQUEST.toLowerCase()]}</span>
102
+ </span>
103
+ <span>
104
+ <md-icon pass slot="icon">check</md-icon> 합격
105
+ <span bold>${this.buildingInspectionSummaryOfProject[BuildingInspectionStatus.PASS.toLowerCase()]}</span>
106
+ </span>
107
+ <span>
108
+ <md-icon fail slot="icon">close</md-icon> 불합격
109
+ <span bold>${this.buildingInspectionSummaryOfProject[BuildingInspectionStatus.FAIL.toLowerCase()]}</span>
110
+ </span>
98
111
  </div>
99
112
  </div>
100
113
 
@@ -104,20 +117,30 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
104
117
  <div grid>
105
118
  ${planXScale.map(v => html ` <div row=${v}>
106
119
  ${planYScale.map(vv => {
107
- const buildingInspection = this.buildingInspections.find(i => i.cellX === v && i.cellY === vv);
108
- const status = (buildingInspection === null || buildingInspection === void 0 ? void 0 : buildingInspection.status) || '';
109
- return html `<div
110
- column=${vv}
111
- cell=${`${v},${vv}`}
112
- buildingInspectionId=${buildingInspection === null || buildingInspection === void 0 ? void 0 : buildingInspection.id}
113
- status=${status}
114
- @click=${this._onClickGrid}
115
- >
116
- ${this._getIconHtmlByStatus(status)}
120
+ const cellKey = `${v},${vv}`;
121
+ const inspections = this.cellToInspections[cellKey] || [];
122
+ const count = inspections.length;
123
+ let countClass = '';
124
+ if (count > 0) {
125
+ const allPass = inspections.every(i => i.status === BuildingInspectionStatus.PASS);
126
+ const anyFail = inspections.some(i => i.status === BuildingInspectionStatus.FAIL);
127
+ countClass = allPass ? 'green' : anyFail ? 'red' : 'black';
128
+ }
129
+ return html `<div column=${vv} cell=${cellKey} @click=${this._onClickGrid}>
130
+ ${count > 0 ? html `<span class="cell-count ${countClass}">${count}</span>` : ''}
117
131
  </div>`;
118
132
  })}
119
133
  </div>`)}
120
134
  </div>
135
+ ${this.listLayer.open
136
+ ? html `<grid-inspection-list-layer
137
+ .items=${this.listLayer.items}
138
+ .anchorEl=${this._getCellElement(this.listLayer.cell)}
139
+ .containerEl=${this.drawingContainer}
140
+ @select=${this._onSelectListItem}
141
+ @close=${this._closeListLayer}
142
+ ></grid-inspection-list-layer>`
143
+ : ''}
121
144
  </div>
122
145
  </div>
123
146
 
@@ -125,20 +148,20 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
125
148
  <div top bold>
126
149
  <div>신규 등록 현황</div>
127
150
  <div content>
128
- <span
129
- ><md-icon request slot="icon">frame_inspect</md-icon>
151
+ <span>
152
+ <md-icon request slot="icon">frame_inspect</md-icon>
130
153
  ${this.buildingInspectionSummaryOfBuildingLevel[BuildingInspectionStatus.WAIT.toLowerCase()]}
131
154
  </span>
132
- <span
133
- ><md-icon request slot="icon">exclamation</md-icon>
155
+ <span>
156
+ <md-icon request slot="icon">exclamation</md-icon>
134
157
  ${this.buildingInspectionSummaryOfBuildingLevel[BuildingInspectionStatus.REQUEST.toLowerCase()]}
135
158
  </span>
136
- <span
137
- ><md-icon pass slot="icon">check</md-icon>
159
+ <span>
160
+ <md-icon pass slot="icon">check</md-icon>
138
161
  ${this.buildingInspectionSummaryOfBuildingLevel[BuildingInspectionStatus.PASS.toLowerCase()]}
139
162
  </span>
140
- <span
141
- ><md-icon fail slot="icon">close</md-icon>
163
+ <span>
164
+ <md-icon fail slot="icon">close</md-icon>
142
165
  ${this.buildingInspectionSummaryOfBuildingLevel[BuildingInspectionStatus.FAIL.toLowerCase()]}
143
166
  </span>
144
167
  </div>
@@ -146,33 +169,86 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
146
169
 
147
170
  <div bottom>
148
171
  <div name bold>층별 공지사항</div>
149
- <md-elevated-button @click=${e => this._onClicPopupNotice()}
150
- >공지사항 확인하기(${((_o = this.selectedLevel) === null || _o === void 0 ? void 0 : _o.noticeCount) || 0})</md-elevated-button
151
- >
172
+ <md-elevated-button @click=${e => this._onClicPopupNotice()}>
173
+ 공지사항 확인하기(${((_o = this.selectedLevel) === null || _o === void 0 ? void 0 : _o.noticeCount) || 0})
174
+ </md-elevated-button>
152
175
 
153
176
  <div name bold>시공검측 세부사항</div>
154
177
  ${html `
155
178
  <div view>
179
+ <div status>
180
+ ${this._getIconHtmlByStatus(this.selectedInspection.status)}
181
+ <span bold> ${BUILDING_INSPECTION_STATUS_DISPLAY[this.selectedInspection.status]}</span>
182
+ </div>
183
+
184
+ <div>
185
+ <div date>공종 : ${((_q = (_p = this.selectedInspection) === null || _p === void 0 ? void 0 : _p.checklist) === null || _q === void 0 ? void 0 : _q.constructionType) || ''}</div>
186
+ </div>
187
+
188
+ <hr />
189
+
190
+ <div>
191
+ <div date>세부 공종 : ${((_s = (_r = this.selectedInspection) === null || _r === void 0 ? void 0 : _r.checklist) === null || _s === void 0 ? void 0 : _s.constructionDetailType) || ''}</div>
192
+ </div>
193
+
194
+ <hr />
195
+
156
196
  <div>
157
- <div status>
158
- ${this._getIconHtmlByStatus(this.selectedInspection.status)}
159
- <span bold> ${BUILDING_INSPECTION_STATUS_DISPLAY[this.selectedInspection.status]}</span>
160
- </div>
161
197
  <div date>검측일 : ${this.selectedInspection.requestDate}</div>
162
198
  </div>
199
+
163
200
  <hr />
164
- <!-- <div desc>${this.selectedInspection.detail} <img /></div>
165
- <hr />-->
201
+
166
202
  <div manager>
167
- 담당자 : ${(_q = (_p = this.selectedInspection) === null || _p === void 0 ? void 0 : _p.manager) === null || _q === void 0 ? void 0 : _q.name} <br />
168
- ${(_s = (_r = this.selectedInspection) === null || _r === void 0 ? void 0 : _r.manager) === null || _s === void 0 ? void 0 : _s.phone}
203
+ 담당자 : ${(_u = (_t = this.selectedInspection) === null || _t === void 0 ? void 0 : _t.manager) === null || _u === void 0 ? void 0 : _u.name} <br />
204
+ ${(_w = (_v = this.selectedInspection) === null || _v === void 0 ? void 0 : _v.manager) === null || _w === void 0 ? void 0 : _w.phone}
169
205
  </div>
206
+
170
207
  <hr />
208
+
209
+ ${this.selectedInspection.memo
210
+ ? html `
211
+ <div>
212
+ <div date>메모 : ${this.selectedInspection.memo}</div>
213
+ </div>
214
+ <hr />
215
+ `
216
+ : html ``}
217
+ ${((_x = this.selectedInspection.attachments) === null || _x === void 0 ? void 0 : _x.length) > 0
218
+ ? html `
219
+ <div class="attachment-info">
220
+ <span class="attachment-count">첨부파일: ${this.selectedInspection.attachments.length}개</span>
221
+ <md-elevated-button @click=${() => this._onClickUpdateInspection(1)}>
222
+ <md-icon slot="icon">attach_file</md-icon>첨부파일 보기
223
+ </md-elevated-button>
224
+ </div>
225
+ <hr />
226
+ `
227
+ : html ``}
171
228
  </div>
172
229
 
173
- <input type="checkbox" name="apply-to-all" checked />
230
+ <!-- 전층 동일 적용 버튼 -->
231
+ ${this.selectedInspection.status
232
+ ? html `<md-filled-button apply-to-all @click=${() => this._onClickApplyToAll()}>전층 동일 적용</md-filled-button>`
233
+ : html ``}
174
234
 
175
- <md-outlined-button @click=${() => this._onClickCreateInspection()}>검측 정보 등록 </md-outlined-button>
235
+ <!-- 검측 정보 등록, 수정 버튼 -->
236
+ ${!this.cell
237
+ ? html ``
238
+ : !this.selectedInspection.status
239
+ ? html `<md-outlined-button @click=${() => this._onClickCreateInspection()}>검측 정보 등록 </md-outlined-button>`
240
+ : this.selectedInspection.status == BuildingInspectionStatus.PASS
241
+ ? html `<md-filled-button @click=${() => this._onClickUpdateInspection()}>검측 정보 보기 </md-filled-button> `
242
+ : html `
243
+ <md-filled-button update @click=${() => this._onClickUpdateInspection()}>
244
+ 검측 정보 수정
245
+ </md-filled-button>
246
+ ${this.selectedInspection.status == BuildingInspectionStatus.WAIT
247
+ ? html `<md-filled-button delete @click=${() => this._onClickDeleteInspection()}>
248
+ 삭제
249
+ </md-filled-button>`
250
+ : html ``}
251
+ `}
176
252
  `}
177
253
  </div>
178
254
  </div>
@@ -199,10 +275,16 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
199
275
  project(id: $id) {
200
276
  id
201
277
  name
278
+ projectType
202
279
  buildingComplex {
203
280
  id
204
281
  planXScale
205
282
  planYScale
283
+ overallConstructorEmails
284
+ taskConstructorEmails
285
+ overallSupervisoryEmails
286
+ taskSupervisoryEmails
287
+
206
288
  buildings {
207
289
  id
208
290
  name
@@ -231,6 +313,10 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
231
313
  cellY
232
314
  status
233
315
  requestDate
316
+ checklist {
317
+ constructionType
318
+ constructionDetailType
319
+ }
234
320
  creator {
235
321
  id
236
322
  name
@@ -250,6 +336,7 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
250
336
  return;
251
337
  this.project = (_a = response.data) === null || _a === void 0 ? void 0 : _a.project;
252
338
  this.buildingInspections = (_c = (_b = response.data) === null || _b === void 0 ? void 0 : _b.buildingInspectionsOfBuildingLevel) === null || _c === void 0 ? void 0 : _c.items;
339
+ this._groupInspectionsByCell();
253
340
  this.buildingInspectionSummaryOfProject = (_d = response.data) === null || _d === void 0 ? void 0 : _d.buildingInspectionSummaryOfProject;
254
341
  this.buildingInspectionSummaryOfBuildingLevel = (_e = response.data) === null || _e === void 0 ? void 0 : _e.buildingInspectionSummaryOfBuildingLevel;
255
342
  // buildingId 파라미터가 있으면 선택된 빌딩, 없으면 첫번째 빌딩 선택
@@ -279,6 +366,7 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
279
366
  buildingLevels {
280
367
  id
281
368
  floor
369
+ floorDisplayName
282
370
  noticeCount
283
371
  mainDrawing {
284
372
  id
@@ -309,10 +397,38 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
309
397
  cellY
310
398
  status
311
399
  requestDate
400
+ memo
401
+ attachments {
402
+ id
403
+ }
312
404
 
313
405
  checklist {
314
406
  id
315
407
  name
408
+ constructionType
409
+ constructionDetailType
410
+ location
411
+ inspectionParts
412
+ documentNo
413
+ constructionInspectionDate
414
+ supervisorInspectionDate
415
+ overallConstructorSignature
416
+ taskConstructorSignature
417
+ overallSupervisorySignature
418
+ taskSupervisorySignature
419
+
420
+ checklistItems {
421
+ id
422
+ name
423
+ sequence
424
+ mainType
425
+ detailType
426
+ inspctionCriteria
427
+ constructionConfirmStatus
428
+ supervisoryConfirmStatus
429
+ checklistItemCommentCount
430
+ checklistItemAttachmentCount
431
+ }
316
432
  }
317
433
 
318
434
  manager {
@@ -335,6 +451,7 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
335
451
  const buildingId = e.target.value;
336
452
  this.selectedBuilding = await this._getBuilding(buildingId);
337
453
  this.selectedLevel = Object.assign({}, (_b = (_a = this.selectedBuilding) === null || _a === void 0 ? void 0 : _a.buildingLevels) === null || _b === void 0 ? void 0 : _b[0]);
454
+ this.refresh();
338
455
  }
339
456
  _onSelectBuildingLevel(e) {
340
457
  var _a, _b, _c;
@@ -346,14 +463,22 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
346
463
  async _onClickGrid(e) {
347
464
  var _a;
348
465
  const target = e.currentTarget;
349
- const buildingInspectionId = target.getAttribute('buildingInspectionId');
350
466
  const cell = target.getAttribute('cell');
351
467
  // active 속성 모두 제거후 클릭한 셀만 active로 변경
352
- (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('div[cell][active]').forEach(e => e.removeAttribute('active'));
353
- target.setAttribute('active', true);
354
- const [cellX, cellY] = cell.split(',');
355
- this.selectedInspection = buildingInspectionId ? await this._getBuildingInspection(buildingInspectionId) : { cellX, cellY };
356
- this.cell = cell;
468
+ (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('div[cell][active]').forEach(el => el.removeAttribute('active'));
469
+ target.setAttribute('active', 'true');
470
+ const [cellX, cellY] = (cell || '').split(',');
471
+ const items = this.cellToInspections[cell || ''] || [];
472
+ // 검측이 없으면 기존처럼 등록 가능하도록 선택만 처리
473
+ if (items.length === 0) {
474
+ this._closeListLayer();
475
+ this.selectedInspection = { cellX, cellY };
476
+ this.cell = cell || '';
477
+ return;
478
+ }
479
+ // 검측이 있으면 레이어 오픈
480
+ this.cell = cell || '';
481
+ this._openListLayer(target, items, this.cell);
357
482
  }
358
483
  _onClicPopupNotice() {
359
484
  var _a, _b;
@@ -388,6 +513,19 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
388
513
  ></grid-inspection-create-popup>
389
514
  `, { backdrop: true, size: 'large', title: '검측 요청서 등록' });
390
515
  }
516
+ _onClickUpdateInspection(initialTab = 0) {
517
+ openPopup(html `
518
+ <inspection-tab-popup
519
+ .selectedInspection=${this.selectedInspection}
520
+ .project=${this.project}
521
+ .initialTab=${initialTab}
522
+ @modify-checklist=${(e) => this.validateChecklist(e.detail.checklist)}
523
+ @requestRefresh=${async (e) => {
524
+ await this.refresh(e.detail.buildingInspectionId);
525
+ }}
526
+ ></inspection-tab-popup>
527
+ `, { backdrop: true, size: 'large', title: '검측 요청서 수정' });
528
+ }
391
529
  async refresh(buildingInspectionId = '') {
392
530
  // 그리드, 서머리 정보 갱신
393
531
  await this.initProject(this.project.id, this.selectedBuilding.id, this.selectedLevel.id);
@@ -397,10 +535,10 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
397
535
  _getIconHtmlByStatus(status) {
398
536
  if (!status)
399
537
  return '';
400
- if (status == BuildingInspectionStatus.WAIT || status == BuildingInspectionStatus.REQUEST) {
538
+ if (status == BuildingInspectionStatus.WAIT || status == BuildingInspectionStatus.OVERALL_WAIT) {
401
539
  return html `<md-icon request slot="icon">frame_inspect</md-icon>`;
402
540
  }
403
- if (status == BuildingInspectionStatus.OVERALL_WAIT || status == BuildingInspectionStatus.OVERALL_REQUEST) {
541
+ if (status == BuildingInspectionStatus.REQUEST || status == BuildingInspectionStatus.OVERALL_REQUEST) {
404
542
  return html `<md-icon request slot="icon">exclamation</md-icon>`;
405
543
  }
406
544
  if (status == BuildingInspectionStatus.PASS) {
@@ -408,6 +546,156 @@ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends Sc
408
546
  }
409
547
  return html `<md-icon fail slot="icon">close</md-icon>`;
410
548
  }
549
+ _groupInspectionsByCell() {
550
+ const map = {};
551
+ for (const item of this.buildingInspections || []) {
552
+ const key = `${item.cellX},${item.cellY}`;
553
+ if (!map[key])
554
+ map[key] = [];
555
+ map[key].push(item);
556
+ }
557
+ this.cellToInspections = map;
558
+ }
559
+ _openListLayer(anchorEl, items, cell) {
560
+ this.listLayer = { open: true, cell, items };
561
+ }
562
+ _closeListLayer() {
563
+ if (!this.listLayer.open)
564
+ return;
565
+ this.listLayer = { open: false, cell: '', items: [] };
566
+ }
567
+ async _onSelectListItem(e) {
568
+ var _a;
569
+ const id = (_a = e.detail) === null || _a === void 0 ? void 0 : _a.id;
570
+ if (!id)
571
+ return;
572
+ const inspection = await this._getBuildingInspection(id);
573
+ this.selectedInspection = inspection;
574
+ this._closeListLayer();
575
+ }
576
+ _getCellElement(cell) {
577
+ var _a;
578
+ if (!cell)
579
+ return null;
580
+ return (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`div[cell='${cell}']`);
581
+ }
582
+ async validateChecklist(checklist) {
583
+ var _a, _b;
584
+ try {
585
+ const result = await verifyBiometric();
586
+ if (result.verified) {
587
+ console.log('Verification successful. Proceeding with sensitive action.');
588
+ }
589
+ else {
590
+ notify({ message: 'Verification failed:' + result.message });
591
+ return;
592
+ }
593
+ }
594
+ catch (error) {
595
+ notify({ message: 'Error during biometric verification:' + error });
596
+ return;
597
+ }
598
+ const response = await client.mutate({
599
+ mutation: gql `
600
+ mutation UpdateBuildingInspectionChecklist($buildingInspection: UpdateBuildingInspectionSubmitType!) {
601
+ updateBuildingInspectionChecklist(buildingInspection: $buildingInspection)
602
+ }
603
+ `,
604
+ variables: {
605
+ buildingInspection: {
606
+ id: this.selectedInspection.id,
607
+ checklist: {
608
+ id: checklist.id,
609
+ overallConstructorSignature: checklist.overallConstructorSignature,
610
+ taskConstructorSignature: checklist.taskConstructorSignature,
611
+ overallSupervisorySignature: checklist.overallSupervisorySignature,
612
+ taskSupervisorySignature: checklist.taskSupervisorySignature
613
+ },
614
+ checklistItem: checklist.checklistItems.map(item => ({
615
+ id: item.id,
616
+ constructionConfirmStatus: item.constructionConfirmStatus,
617
+ supervisoryConfirmStatus: item.supervisoryConfirmStatus
618
+ }))
619
+ }
620
+ }
621
+ });
622
+ if (!response.errors) {
623
+ notify({ message: '검측 요청서를 등록하였습니다.' });
624
+ this.refresh(this.selectedInspection.id);
625
+ history.back();
626
+ }
627
+ else {
628
+ notify({ message: ((_b = (_a = response.errors) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.message) || '검측 요청서 등록에 실패하였습니다.', level: 'error' });
629
+ }
630
+ }
631
+ async _onClickApplyToAll() {
632
+ var _a, _b;
633
+ if ((await OxPrompt.open({
634
+ title: '전층 동일 적용',
635
+ text: '해당 검측을 전층에 동일하게 적용 하시겠습니까?',
636
+ confirmButton: { text: '확인' },
637
+ cancelButton: { text: '취소' }
638
+ })) === false) {
639
+ return;
640
+ }
641
+ const response = await client.mutate({
642
+ mutation: gql `
643
+ mutation ApplyToAllBuildingInspection($buildingInspectionId: String!) {
644
+ applyToAllBuildingInspection(buildingInspectionId: $buildingInspectionId)
645
+ }
646
+ `,
647
+ variables: {
648
+ buildingInspectionId: this.selectedInspection.id
649
+ }
650
+ });
651
+ if (!response.errors) {
652
+ notify({ message: '전층 동일 적용 완료' });
653
+ this.refresh(this.selectedInspection.id);
654
+ }
655
+ else {
656
+ notify({ message: ((_b = (_a = response.errors) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.message) || '전층 동일 적용에 실패하였습니다.', level: 'error' });
657
+ }
658
+ }
659
+ _openPlanPreviewPopup() {
660
+ openPopup(html `<plan-preview-popup .buildingLevelId=${this.selectedLevel.id}></plan-preview-popup>`, {
661
+ backdrop: true,
662
+ size: 'large',
663
+ title: '추가 도면 보기'
664
+ });
665
+ }
666
+ async _onClickDeleteInspection() {
667
+ var _a, _b, _c;
668
+ if (!((_a = this.selectedInspection) === null || _a === void 0 ? void 0 : _a.id)) {
669
+ notify({ message: '삭제할 검측을 선택해주세요.', level: 'info' });
670
+ return;
671
+ }
672
+ const confirmed = await OxPrompt.open({
673
+ title: '검측 삭제',
674
+ text: '해당 검측을 삭제하시겠습니까? 삭제 후 되돌릴 수 없습니다.',
675
+ confirmButton: { text: '삭제' },
676
+ cancelButton: { text: '취소' }
677
+ });
678
+ if (confirmed === false)
679
+ return;
680
+ const response = await client.mutate({
681
+ mutation: gql `
682
+ mutation ($ids: [String!]!) {
683
+ deleteBuildingInspections(ids: $ids)
684
+ }
685
+ `,
686
+ variables: {
687
+ ids: [this.selectedInspection.id]
688
+ }
689
+ });
690
+ if (!response.errors) {
691
+ notify({ message: '삭제되었습니다.' });
692
+ this.selectedInspection = {};
693
+ await this.refresh();
694
+ }
695
+ else {
696
+ notify({ message: ((_c = (_b = response.errors) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.message) || '삭제에 실패하였습니다.', level: 'error' });
697
+ }
698
+ }
411
699
  };
412
700
  BuildingInspectionGridDetail.styles = [
413
701
  css `
@@ -430,6 +718,15 @@ BuildingInspectionGridDetail.styles = [
430
718
  --md-filled-button-trailing-space: 15px;
431
719
  --md-filled-button-leading-space: 15px;
432
720
  }
721
+ md-filled-button[update] {
722
+ --md-filled-button-container-color: #42b382;
723
+ }
724
+ md-filled-button[apply-to-all] {
725
+ --md-filled-button-container-color: #aaa;
726
+ }
727
+ md-filled-button[delete] {
728
+ --md-filled-button-container-color: #ff4444;
729
+ }
433
730
  md-outlined-button {
434
731
  color: #586878;
435
732
  font-weight: bold;
@@ -482,8 +779,28 @@ BuildingInspectionGridDetail.styles = [
482
779
  margin: 0px 20px;
483
780
 
484
781
  h2 {
782
+ display: flex;
783
+ gap: 7px;
485
784
  flex: 0.5;
486
785
  color: #3f71a0;
786
+ font-size: 18px;
787
+
788
+ md-icon[back] {
789
+ background: linear-gradient(135deg, #3f71a0 0%, #5a8cc7 100%);
790
+ color: white;
791
+ padding: 8px;
792
+ border-radius: 50%;
793
+ cursor: pointer;
794
+ box-shadow: 0 2px 8px rgba(63, 113, 160, 0.3);
795
+ width: 14px;
796
+ height: 14px;
797
+ --md-icon-size: 20px;
798
+ }
799
+
800
+ md-icon[back]:hover {
801
+ background: linear-gradient(135deg, #2e5c89 0%, #4a7bb0 100%);
802
+ box-shadow: 0 4px 12px rgba(63, 113, 160, 0.4);
803
+ }
487
804
  }
488
805
 
489
806
  div[button-container] {
@@ -594,6 +911,7 @@ BuildingInspectionGridDetail.styles = [
594
911
  display: flex;
595
912
  justify-content: center;
596
913
  align-items: center;
914
+ position: relative;
597
915
  }
598
916
  }
599
917
 
@@ -707,6 +1025,52 @@ BuildingInspectionGridDetail.styles = [
707
1025
  }
708
1026
  }
709
1027
  }
1028
+
1029
+ .attachment-info {
1030
+ display: flex;
1031
+ align-items: center;
1032
+ justify-content: space-between;
1033
+ margin-bottom: 8px;
1034
+ gap: 5px;
1035
+ flex-direction: column;
1036
+ align-items: flex-start;
1037
+ }
1038
+
1039
+ .attachment-count {
1040
+ font-size: 14px;
1041
+ color: #586878;
1042
+ }
1043
+ .cell-count {
1044
+ position: absolute;
1045
+ top: 4px;
1046
+ right: 4px;
1047
+ display: flex;
1048
+ align-items: center;
1049
+ justify-content: center;
1050
+ justify-self: anchor-center;
1051
+ align-self: anchor-center;
1052
+ width: 22px;
1053
+ height: 22px;
1054
+ background: #ffffff;
1055
+ border: 2px solid #cccccc;
1056
+ border-radius: 50%;
1057
+ font-weight: 700;
1058
+ font-size: 13px;
1059
+ line-height: 1;
1060
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
1061
+ }
1062
+ .cell-count.green {
1063
+ color: #2e7d32;
1064
+ border-color: #4bbb4a;
1065
+ }
1066
+ .cell-count.red {
1067
+ color: #b71c1c;
1068
+ border-color: #ff4444;
1069
+ }
1070
+ .cell-count.black {
1071
+ color: #333333;
1072
+ border-color: #4e5055;
1073
+ }
710
1074
  `
711
1075
  ];
712
1076
  __decorate([
@@ -717,6 +1081,10 @@ __decorate([
717
1081
  state(),
718
1082
  __metadata("design:type", Object)
719
1083
  ], BuildingInspectionGridDetail.prototype, "buildingInspections", void 0);
1084
+ __decorate([
1085
+ state(),
1086
+ __metadata("design:type", Object)
1087
+ ], BuildingInspectionGridDetail.prototype, "cellToInspections", void 0);
720
1088
  __decorate([
721
1089
  state(),
722
1090
  __metadata("design:type", Object)
@@ -741,6 +1109,10 @@ __decorate([
741
1109
  state(),
742
1110
  __metadata("design:type", String)
743
1111
  ], BuildingInspectionGridDetail.prototype, "cell", void 0);
1112
+ __decorate([
1113
+ state(),
1114
+ __metadata("design:type", Object)
1115
+ ], BuildingInspectionGridDetail.prototype, "listLayer", void 0);
744
1116
  __decorate([
745
1117
  query('md-filled-select[building]'),
746
1118
  __metadata("design:type", Object)
@@ -749,6 +1121,10 @@ __decorate([
749
1121
  query('md-filled-select[level]'),
750
1122
  __metadata("design:type", Object)
751
1123
  ], BuildingInspectionGridDetail.prototype, "htmlSelectLevel", void 0);
1124
+ __decorate([
1125
+ query('div[drawing]'),
1126
+ __metadata("design:type", HTMLDivElement)
1127
+ ], BuildingInspectionGridDetail.prototype, "drawingContainer", void 0);
752
1128
  BuildingInspectionGridDetail = __decorate([
753
1129
  customElement('building-inspection-grid-detail')
754
1130
  ], BuildingInspectionGridDetail);