@dssp/supervision 1.0.0-alpha.3 → 1.0.0-alpha.31

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 (168) 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-checklist.d.ts +9 -0
  5. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js +130 -72
  6. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js.map +1 -1
  7. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.d.ts +1 -1
  8. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js +93 -25
  9. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js.map +1 -1
  10. package/dist-client/pages/building-inspection/building-inspection-list.d.ts +18 -2
  11. package/dist-client/pages/building-inspection/building-inspection-list.js +327 -27
  12. package/dist-client/pages/building-inspection/building-inspection-list.js.map +1 -1
  13. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js +31 -9
  14. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js.map +1 -1
  15. package/dist-client/pages/building-inspection/component/daily-worklog-popup.d.ts +22 -0
  16. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js +431 -0
  17. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js.map +1 -0
  18. package/dist-client/pages/building-inspection/component/image-preview-popup.d.ts +15 -0
  19. package/dist-client/pages/building-inspection/component/image-preview-popup.js +351 -0
  20. package/dist-client/pages/building-inspection/component/image-preview-popup.js.map +1 -0
  21. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.d.ts +20 -0
  22. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js +432 -0
  23. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js.map +1 -0
  24. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.d.ts +30 -0
  25. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js +479 -0
  26. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js.map +1 -0
  27. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.d.ts +27 -0
  28. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js +401 -0
  29. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js.map +1 -0
  30. package/dist-client/pages/building-inspection/component/inspection-event-provider.d.ts +2 -1
  31. package/dist-client/pages/building-inspection/component/inspection-event-provider.js +39 -17
  32. package/dist-client/pages/building-inspection/component/inspection-event-provider.js.map +1 -1
  33. package/dist-client/pages/building-inspection/inspection-create-popup.js +22 -9
  34. package/dist-client/pages/building-inspection/inspection-create-popup.js.map +1 -1
  35. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.d.ts +48 -0
  36. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js +1030 -0
  37. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js.map +1 -0
  38. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.d.ts +2 -0
  39. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js +740 -0
  40. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js.map +1 -0
  41. package/dist-client/pages/building-inspection-grid/component/notice-comment-popup.d.ts +1 -0
  42. package/dist-client/pages/building-inspection-grid/component/notice-comment-popup.js +304 -0
  43. package/dist-client/pages/building-inspection-grid/component/notice-comment-popup.js.map +1 -0
  44. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.d.ts +15 -0
  45. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.js +430 -0
  46. package/dist-client/pages/building-inspection-grid/component/plan-preview-popup.js.map +1 -0
  47. package/dist-client/pages/checklist/attachment-list-popup.d.ts +1 -0
  48. package/dist-client/pages/checklist/attachment-list-popup.js +250 -67
  49. package/dist-client/pages/checklist/attachment-list-popup.js.map +1 -1
  50. package/dist-client/pages/checklist/checklist-view.d.ts +7 -0
  51. package/dist-client/pages/checklist/checklist-view.js +363 -185
  52. package/dist-client/pages/checklist/checklist-view.js.map +1 -1
  53. package/dist-client/pages/checklist/comment-list-popup.js +14 -3
  54. package/dist-client/pages/checklist/comment-list-popup.js.map +1 -1
  55. package/dist-client/pages/checklist/file-preview-popup.js +0 -1
  56. package/dist-client/pages/checklist/file-preview-popup.js.map +1 -1
  57. package/dist-client/pages/checklist/inspection-info-popup.d.ts +50 -0
  58. package/dist-client/pages/checklist/inspection-info-popup.js +684 -0
  59. package/dist-client/pages/checklist/inspection-info-popup.js.map +1 -0
  60. package/dist-client/pages/checklist/inspection-tab-popup.d.ts +18 -0
  61. package/dist-client/pages/checklist/inspection-tab-popup.js +196 -0
  62. package/dist-client/pages/checklist/inspection-tab-popup.js.map +1 -0
  63. package/dist-client/pages/checklist-template/checklist-template-item.js +8 -3
  64. package/dist-client/pages/checklist-template/checklist-template-item.js.map +1 -1
  65. package/dist-client/pages/checklist-template/checklist-template-list.js +2 -2
  66. package/dist-client/pages/checklist-template/checklist-template-list.js.map +1 -1
  67. package/dist-client/route.d.ts +1 -1
  68. package/dist-client/route.js +3 -0
  69. package/dist-client/route.js.map +1 -1
  70. package/dist-client/stt/speech-to-text.d.ts +36 -0
  71. package/dist-client/stt/speech-to-text.js +89 -0
  72. package/dist-client/stt/speech-to-text.js.map +1 -0
  73. package/dist-client/stt/stt-utils.d.ts +28 -0
  74. package/dist-client/stt/stt-utils.js +146 -0
  75. package/dist-client/stt/stt-utils.js.map +1 -0
  76. package/dist-client/tsconfig.tsbuildinfo +1 -1
  77. package/dist-server/service/action-plan/index.d.ts +0 -1
  78. package/dist-server/service/action-plan/index.js +1 -2
  79. package/dist-server/service/action-plan/index.js.map +1 -1
  80. package/dist-server/service/building-inspection/building-inspection-history.d.ts +1 -0
  81. package/dist-server/service/building-inspection/building-inspection-history.js +5 -0
  82. package/dist-server/service/building-inspection/building-inspection-history.js.map +1 -1
  83. package/dist-server/service/building-inspection/building-inspection-mutation.d.ts +3 -3
  84. package/dist-server/service/building-inspection/building-inspection-mutation.js +145 -34
  85. package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -1
  86. package/dist-server/service/building-inspection/building-inspection-query.d.ts +3 -4
  87. package/dist-server/service/building-inspection/building-inspection-query.js +46 -30
  88. package/dist-server/service/building-inspection/building-inspection-query.js.map +1 -1
  89. package/dist-server/service/building-inspection/building-inspection-type.d.ts +28 -9
  90. package/dist-server/service/building-inspection/building-inspection-type.js +96 -17
  91. package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -1
  92. package/dist-server/service/building-inspection/building-inspection.d.ts +13 -0
  93. package/dist-server/service/building-inspection/building-inspection.js +55 -2
  94. package/dist-server/service/building-inspection/building-inspection.js.map +1 -1
  95. package/dist-server/service/building-inspection/index.d.ts +3 -5
  96. package/dist-server/service/building-inspection/index.js +10 -4
  97. package/dist-server/service/building-inspection/index.js.map +1 -1
  98. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.d.ts +6 -0
  99. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js +56 -0
  100. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js.map +1 -0
  101. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.d.ts +14 -0
  102. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js +135 -0
  103. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js.map +1 -0
  104. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.d.ts +19 -0
  105. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js +74 -0
  106. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js.map +1 -0
  107. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.d.ts +27 -0
  108. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js +104 -0
  109. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js.map +1 -0
  110. package/dist-server/service/building-inspection-daily-worklog/index.d.ts +5 -0
  111. package/dist-server/service/building-inspection-daily-worklog/index.js +9 -0
  112. package/dist-server/service/building-inspection-daily-worklog/index.js.map +1 -0
  113. package/dist-server/service/checklist/checklist-history.d.ts +8 -0
  114. package/dist-server/service/checklist/checklist-history.js +36 -0
  115. package/dist-server/service/checklist/checklist-history.js.map +1 -1
  116. package/dist-server/service/checklist/checklist-mutation.d.ts +0 -5
  117. package/dist-server/service/checklist/checklist-mutation.js +1 -67
  118. package/dist-server/service/checklist/checklist-mutation.js.map +1 -1
  119. package/dist-server/service/checklist/checklist-query.d.ts +6 -0
  120. package/dist-server/service/checklist/checklist-query.js +63 -0
  121. package/dist-server/service/checklist/checklist-query.js.map +1 -1
  122. package/dist-server/service/checklist/checklist-type.d.ts +0 -13
  123. package/dist-server/service/checklist/checklist-type.js +1 -49
  124. package/dist-server/service/checklist/checklist-type.js.map +1 -1
  125. package/dist-server/service/checklist/checklist.d.ts +38 -3
  126. package/dist-server/service/checklist/checklist.js +131 -15
  127. package/dist-server/service/checklist/checklist.js.map +1 -1
  128. package/dist-server/service/checklist/index.d.ts +0 -2
  129. package/dist-server/service/checklist/index.js +1 -3
  130. package/dist-server/service/checklist/index.js.map +1 -1
  131. package/dist-server/service/checklist-item/checklist-item-query.d.ts +1 -1
  132. package/dist-server/service/checklist-item/checklist-item-query.js +5 -3
  133. package/dist-server/service/checklist-item/checklist-item-query.js.map +1 -1
  134. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.d.ts +1 -0
  135. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js +33 -6
  136. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js.map +1 -1
  137. package/dist-server/service/checklist-item-comment/index.d.ts +0 -2
  138. package/dist-server/service/checklist-item-comment/index.js +1 -3
  139. package/dist-server/service/checklist-item-comment/index.js.map +1 -1
  140. package/dist-server/service/checklist-template-item/checklist-template-item.js +2 -4
  141. package/dist-server/service/checklist-template-item/checklist-template-item.js.map +1 -1
  142. package/dist-server/service/index.d.ts +3 -2
  143. package/dist-server/service/index.js +8 -13
  144. package/dist-server/service/index.js.map +1 -1
  145. package/dist-server/service/issue/index.d.ts +0 -1
  146. package/dist-server/service/issue/index.js +1 -2
  147. package/dist-server/service/issue/index.js.map +1 -1
  148. package/dist-server/service/project-report/index.d.ts +0 -1
  149. package/dist-server/service/project-report/index.js +1 -2
  150. package/dist-server/service/project-report/index.js.map +1 -1
  151. package/dist-server/service/project-report/project-report.d.ts +0 -2
  152. package/dist-server/service/project-report/project-report.js +0 -6
  153. package/dist-server/service/project-report/project-report.js.map +1 -1
  154. package/dist-server/service/supervisor/index.d.ts +0 -1
  155. package/dist-server/service/supervisor/index.js +1 -2
  156. package/dist-server/service/supervisor/index.js.map +1 -1
  157. package/dist-server/tsconfig.tsbuildinfo +1 -1
  158. package/package.json +13 -13
  159. package/things-factory.config.js +3 -1
  160. package/dist-server/service/building-inspection/event-subscriber.d.ts +0 -7
  161. package/dist-server/service/building-inspection/event-subscriber.js +0 -21
  162. package/dist-server/service/building-inspection/event-subscriber.js.map +0 -1
  163. package/dist-server/service/checklist/event-subscriber.d.ts +0 -7
  164. package/dist-server/service/checklist/event-subscriber.js +0 -21
  165. package/dist-server/service/checklist/event-subscriber.js.map +0 -1
  166. package/dist-server/service/checklist-item-comment/event-subscriber.d.ts +0 -7
  167. package/dist-server/service/checklist-item-comment/event-subscriber.js +0 -21
  168. package/dist-server/service/checklist-item-comment/event-subscriber.js.map +0 -1
@@ -0,0 +1,1030 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@material/web/icon/icon.js';
3
+ import '@material/web/button/elevated-button.js';
4
+ import '@material/web/textfield/outlined-text-field.js';
5
+ import '@material/web/button/outlined-button.js';
6
+ import { PageView } from '@operato/shell';
7
+ import { css, html } from 'lit';
8
+ import { customElement, state, query } from 'lit/decorators.js';
9
+ import { ScopedElementsMixin } from '@open-wc/scoped-elements';
10
+ import { client } from '@operato/graphql';
11
+ import gql from 'graphql-tag';
12
+ import { notify, openPopup } from '@operato/layout';
13
+ import './component/notice-comment-popup';
14
+ import './component/grid-inspection-create-popup';
15
+ import { BUILDING_INSPECTION_STATUS_DISPLAY, BuildingInspectionStatus } from '../building-inspection/building-inspection-list';
16
+ import '../checklist/inspection-info-popup';
17
+ import '../checklist/inspection-tab-popup';
18
+ import { verifyBiometric } from '@things-factory/auth-base/dist-client';
19
+ import { OxPrompt } from '@operato/popup';
20
+ import './component/plan-preview-popup';
21
+ let BuildingInspectionGridDetail = class BuildingInspectionGridDetail extends ScopedElementsMixin(PageView) {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.defaultProject = {
25
+ name: '',
26
+ buildingComplex: {
27
+ buildings: []
28
+ }
29
+ };
30
+ this.project = Object.assign({}, this.defaultProject);
31
+ this.buildingInspections = [];
32
+ this.buildingInspectionSummaryOfProject = {};
33
+ this.buildingInspectionSummaryOfBuildingLevel = {};
34
+ this.selectedBuilding = {};
35
+ this.selectedLevel = {};
36
+ this.selectedInspection = {};
37
+ this.cell = '';
38
+ }
39
+ get context() {
40
+ return {
41
+ title: '층별 시공검측 상세 정보'
42
+ };
43
+ }
44
+ render() {
45
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
46
+ // 그리드 가로, 세로 길이 배열 생성
47
+ 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);
48
+ 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);
49
+ return html `
50
+ <div header>
51
+ <h2>
52
+ <md-icon slot="icon" back @click=${() => history.back()}>arrow_back</md-icon>
53
+ ${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}층
54
+ </h2>
55
+ <div button-container>
56
+ <md-elevated-button href=${`project-update/${this.project.id}`}>
57
+ <md-icon slot="icon">assignment</md-icon>프로젝트 정보 수정
58
+ </md-elevated-button>
59
+ <md-elevated-button href=${`project-plan-management/${this.project.id}`}>
60
+ <md-icon slot="icon">description</md-icon>도면 관리
61
+ </md-elevated-button>
62
+ <md-elevated-button @click=${this._openPlanPreviewPopup}>
63
+ <md-icon slot="icon">folder_eye</md-icon>추가 도면 보기
64
+ </md-elevated-button>
65
+ </div>
66
+ </div>
67
+
68
+ <div body>
69
+ <div left>
70
+ <div select>
71
+ <div>
72
+ <md-filled-select building @change=${this._onSelectBuilding}>
73
+ ${(_j = (_h = (_g = this.project) === null || _g === void 0 ? void 0 : _g.buildingComplex) === null || _h === void 0 ? void 0 : _h.buildings) === null || _j === void 0 ? void 0 : _j.map(building => {
74
+ var _a;
75
+ const selected = building.id === ((_a = this.selectedBuilding) === null || _a === void 0 ? void 0 : _a.id);
76
+ return html ` <md-select-option ?selected=${selected} .value=${building.id}>
77
+ <div slot="headline">${building.name}</div>
78
+ </md-select-option>`;
79
+ })}
80
+ </md-filled-select>
81
+
82
+ <md-filled-select level @change=${this._onSelectBuildingLevel}>
83
+ ${(_l = (_k = this.selectedBuilding) === null || _k === void 0 ? void 0 : _k.buildingLevels) === null || _l === void 0 ? void 0 : _l.map(level => {
84
+ const selected = level.id === this.selectedLevel.id;
85
+ return html `<md-select-option ?selected=${selected} .value=${level.id}>
86
+ <div slot="headline">${level.floor}</div>
87
+ </md-select-option>`;
88
+ })}
89
+ </md-filled-select>
90
+ </div>
91
+
92
+ <div state>
93
+ <span>
94
+ <md-icon request slot="icon">frame_inspect</md-icon> 검측대기
95
+ <span bold>${this.buildingInspectionSummaryOfProject[BuildingInspectionStatus.WAIT.toLowerCase()]}</span>
96
+ </span>
97
+ <span>
98
+ <md-icon request slot="icon">exclamation</md-icon> 검측요청
99
+ <span bold>${this.buildingInspectionSummaryOfProject[BuildingInspectionStatus.REQUEST.toLowerCase()]}</span>
100
+ </span>
101
+ <span>
102
+ <md-icon pass slot="icon">check</md-icon> 합격
103
+ <span bold>${this.buildingInspectionSummaryOfProject[BuildingInspectionStatus.PASS.toLowerCase()]}</span>
104
+ </span>
105
+ <span>
106
+ <md-icon fail slot="icon">close</md-icon> 불합격
107
+ <span bold>${this.buildingInspectionSummaryOfProject[BuildingInspectionStatus.FAIL.toLowerCase()]}</span>
108
+ </span>
109
+ </div>
110
+ </div>
111
+
112
+ <div drawing>
113
+ <img src=${((_m = this.selectedLevel) === null || _m === void 0 ? void 0 : _m.mainDrawingImage) || '/assets/images/img-drawing-default.png'} />
114
+
115
+ <div grid>
116
+ ${planXScale.map(v => html ` <div row=${v}>
117
+ ${planYScale.map(vv => {
118
+ const buildingInspection = this.buildingInspections.find(i => i.cellX === v && i.cellY === vv);
119
+ const status = (buildingInspection === null || buildingInspection === void 0 ? void 0 : buildingInspection.status) || '';
120
+ return html `<div
121
+ column=${vv}
122
+ cell=${`${v},${vv}`}
123
+ buildingInspectionId=${buildingInspection === null || buildingInspection === void 0 ? void 0 : buildingInspection.id}
124
+ status=${status}
125
+ @click=${this._onClickGrid}
126
+ >
127
+ ${this._getIconHtmlByStatus(status)}
128
+ </div>`;
129
+ })}
130
+ </div>`)}
131
+ </div>
132
+ </div>
133
+ </div>
134
+
135
+ <div right>
136
+ <div top bold>
137
+ <div>신규 등록 현황</div>
138
+ <div content>
139
+ <span>
140
+ <md-icon request slot="icon">frame_inspect</md-icon>
141
+ ${this.buildingInspectionSummaryOfBuildingLevel[BuildingInspectionStatus.WAIT.toLowerCase()]}
142
+ </span>
143
+ <span>
144
+ <md-icon request slot="icon">exclamation</md-icon>
145
+ ${this.buildingInspectionSummaryOfBuildingLevel[BuildingInspectionStatus.REQUEST.toLowerCase()]}
146
+ </span>
147
+ <span>
148
+ <md-icon pass slot="icon">check</md-icon>
149
+ ${this.buildingInspectionSummaryOfBuildingLevel[BuildingInspectionStatus.PASS.toLowerCase()]}
150
+ </span>
151
+ <span>
152
+ <md-icon fail slot="icon">close</md-icon>
153
+ ${this.buildingInspectionSummaryOfBuildingLevel[BuildingInspectionStatus.FAIL.toLowerCase()]}
154
+ </span>
155
+ </div>
156
+ </div>
157
+
158
+ <div bottom>
159
+ <div name bold>층별 공지사항</div>
160
+ <md-elevated-button @click=${e => this._onClicPopupNotice()}>
161
+ 공지사항 확인하기(${((_o = this.selectedLevel) === null || _o === void 0 ? void 0 : _o.noticeCount) || 0})
162
+ </md-elevated-button>
163
+
164
+ <div name bold>시공검측 세부사항</div>
165
+ ${html `
166
+ <div view>
167
+ <div status>
168
+ ${this._getIconHtmlByStatus(this.selectedInspection.status)}
169
+ <span bold> ${BUILDING_INSPECTION_STATUS_DISPLAY[this.selectedInspection.status]}</span>
170
+ </div>
171
+
172
+ <div>
173
+ <div date>공종 : ${((_q = (_p = this.selectedInspection) === null || _p === void 0 ? void 0 : _p.checklist) === null || _q === void 0 ? void 0 : _q.constructionType) || ''}</div>
174
+ </div>
175
+
176
+ <hr />
177
+
178
+ <div>
179
+ <div date>세부 공종 : ${((_s = (_r = this.selectedInspection) === null || _r === void 0 ? void 0 : _r.checklist) === null || _s === void 0 ? void 0 : _s.constructionDetailType) || ''}</div>
180
+ </div>
181
+
182
+ <hr />
183
+
184
+ <div>
185
+ <div date>검측일 : ${this.selectedInspection.requestDate}</div>
186
+ </div>
187
+
188
+ <hr />
189
+
190
+ <div manager>
191
+ 담당자 : ${(_u = (_t = this.selectedInspection) === null || _t === void 0 ? void 0 : _t.manager) === null || _u === void 0 ? void 0 : _u.name} <br />
192
+ ${(_w = (_v = this.selectedInspection) === null || _v === void 0 ? void 0 : _v.manager) === null || _w === void 0 ? void 0 : _w.phone}
193
+ </div>
194
+
195
+ <hr />
196
+
197
+ ${this.selectedInspection.memo
198
+ ? html `
199
+ <div>
200
+ <div date>메모 : ${this.selectedInspection.memo}</div>
201
+ </div>
202
+ <hr />
203
+ `
204
+ : html ``}
205
+ ${((_x = this.selectedInspection.attachments) === null || _x === void 0 ? void 0 : _x.length) > 0
206
+ ? html `
207
+ <div class="attachment-info">
208
+ <span class="attachment-count">첨부파일: ${this.selectedInspection.attachments.length}개</span>
209
+ <md-elevated-button @click=${() => this._onClickUpdateInspection(1)}>
210
+ <md-icon slot="icon">attach_file</md-icon>첨부파일 보기
211
+ </md-elevated-button>
212
+ </div>
213
+ <hr />
214
+ `
215
+ : html ``}
216
+ </div>
217
+
218
+ <!-- 전층 동일 적용 버튼 -->
219
+ ${this.selectedInspection.status
220
+ ? html `<md-filled-button apply-to-all @click=${() => this._onClickApplyToAll()}>전층 동일 적용</md-filled-button>`
221
+ : html ``}
222
+
223
+ <!-- 검측 정보 등록, 수정 버튼 -->
224
+ ${!this.cell
225
+ ? html ``
226
+ : !this.selectedInspection.status
227
+ ? html `<md-outlined-button @click=${() => this._onClickCreateInspection()}>검측 정보 등록 </md-outlined-button>`
228
+ : this.selectedInspection.status == BuildingInspectionStatus.PASS
229
+ ? html `<md-filled-button @click=${() => this._onClickUpdateInspection()}>검측 정보 보기 </md-filled-button> `
230
+ : html `
231
+ <md-filled-button update @click=${() => this._onClickUpdateInspection()}>
232
+ 검측 정보 수정
233
+ </md-filled-button>
234
+ ${this.selectedInspection.status == BuildingInspectionStatus.WAIT
235
+ ? html `<md-filled-button delete @click=${() => this._onClickDeleteInspection()}>
236
+ 삭제
237
+ </md-filled-button>`
238
+ : html ``}
239
+ `}
240
+ `}
241
+ </div>
242
+ </div>
243
+ </div>
244
+ `;
245
+ }
246
+ async pageInitialized(lifecycle) { }
247
+ async pageUpdated(changes, lifecycle) {
248
+ if (this.active) {
249
+ const params = lifecycle.params;
250
+ await this.initProject(lifecycle.resourceId, params.buildingId, params.levelId);
251
+ }
252
+ }
253
+ async initProject(projectId = '', buildingId = '', levelId = '') {
254
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
255
+ const response = await client.query({
256
+ query: gql `
257
+ query Project(
258
+ $id: String!
259
+ $projectId: String!
260
+ $buildingLevelId: String!
261
+ $params: BuildingInspectionsOfBuildingLevel!
262
+ ) {
263
+ project(id: $id) {
264
+ id
265
+ name
266
+ projectType
267
+ buildingComplex {
268
+ id
269
+ planXScale
270
+ planYScale
271
+ overallConstructorEmails
272
+ taskConstructorEmails
273
+ overallSupervisoryEmails
274
+ taskSupervisoryEmails
275
+
276
+ buildings {
277
+ id
278
+ name
279
+ }
280
+ }
281
+ }
282
+
283
+ buildingInspectionSummaryOfProject(projectId: $projectId) {
284
+ wait
285
+ request
286
+ pass
287
+ fail
288
+ }
289
+
290
+ buildingInspectionSummaryOfBuildingLevel(buildingLevelId: $buildingLevelId) {
291
+ wait
292
+ request
293
+ pass
294
+ fail
295
+ }
296
+
297
+ buildingInspectionsOfBuildingLevel(params: $params) {
298
+ items {
299
+ id
300
+ cellX
301
+ cellY
302
+ status
303
+ requestDate
304
+ creator {
305
+ id
306
+ name
307
+ }
308
+ }
309
+ }
310
+ }
311
+ `,
312
+ variables: {
313
+ id: projectId,
314
+ projectId: projectId,
315
+ buildingLevelId: levelId,
316
+ params: { buildingLevelId: levelId }
317
+ }
318
+ });
319
+ if (response.errors)
320
+ return;
321
+ this.project = (_a = response.data) === null || _a === void 0 ? void 0 : _a.project;
322
+ this.buildingInspections = (_c = (_b = response.data) === null || _b === void 0 ? void 0 : _b.buildingInspectionsOfBuildingLevel) === null || _c === void 0 ? void 0 : _c.items;
323
+ this.buildingInspectionSummaryOfProject = (_d = response.data) === null || _d === void 0 ? void 0 : _d.buildingInspectionSummaryOfProject;
324
+ this.buildingInspectionSummaryOfBuildingLevel = (_e = response.data) === null || _e === void 0 ? void 0 : _e.buildingInspectionSummaryOfBuildingLevel;
325
+ // buildingId 파라미터가 있으면 선택된 빌딩, 없으면 첫번째 빌딩 선택
326
+ this.selectedBuilding = buildingId
327
+ ? (_h = (_g = (_f = this.project) === null || _f === void 0 ? void 0 : _f.buildingComplex) === null || _g === void 0 ? void 0 : _g.buildings) === null || _h === void 0 ? void 0 : _h.filter(v => v.id === buildingId)[0]
328
+ : (_l = (_k = (_j = this.project) === null || _j === void 0 ? void 0 : _j.buildingComplex) === null || _k === void 0 ? void 0 : _k.buildings) === null || _l === void 0 ? void 0 : _l[0];
329
+ // 선택된 동의 층 리스트 가져오기
330
+ this.selectedBuilding = await this._getBuilding(this.selectedBuilding.id);
331
+ // levelId 파라미터가 있으면 선택된 층, 없으면 첫번째 층 선택
332
+ this.selectedLevel = levelId
333
+ ? (_o = (_m = this.selectedBuilding) === null || _m === void 0 ? void 0 : _m.buildingLevels) === null || _o === void 0 ? void 0 : _o.filter(v => v.id === levelId)[0]
334
+ : (_q = (_p = this.selectedBuilding) === null || _p === void 0 ? void 0 : _p.buildingLevels) === null || _q === void 0 ? void 0 : _q[0];
335
+ // 동, 층이 랜더링 된 후에 select를 위해 이 시점에서 랜더링
336
+ this.selectedBuilding = await Object.assign({}, this.selectedBuilding);
337
+ // 기본 값 셋팅 select
338
+ await this.htmlSelectBuilding.select(this.selectedBuilding.id);
339
+ await this.htmlSelectLevel.select(this.selectedLevel.id);
340
+ }
341
+ async _getBuilding(buildingId = '') {
342
+ var _a;
343
+ const response = await client.query({
344
+ query: gql `
345
+ query Building($id: String!) {
346
+ building(id: $id) {
347
+ id
348
+ name
349
+ buildingLevels {
350
+ id
351
+ floor
352
+ floorDisplayName
353
+ noticeCount
354
+ mainDrawing {
355
+ id
356
+ name
357
+ fullpath
358
+ }
359
+ mainDrawingImage
360
+ }
361
+ }
362
+ }
363
+ `,
364
+ variables: {
365
+ id: buildingId
366
+ }
367
+ });
368
+ if (response.errors)
369
+ return;
370
+ return ((_a = response.data) === null || _a === void 0 ? void 0 : _a.building) || {};
371
+ }
372
+ async _getBuildingInspection(buildingInspectionId = '') {
373
+ var _a;
374
+ const response = await client.query({
375
+ query: gql `
376
+ query BuildingInspection($id: String!) {
377
+ buildingInspection(id: $id) {
378
+ id
379
+ cellX
380
+ cellY
381
+ status
382
+ requestDate
383
+ memo
384
+ attachments {
385
+ id
386
+ }
387
+
388
+ checklist {
389
+ id
390
+ name
391
+ constructionType
392
+ constructionDetailType
393
+ location
394
+ inspectionParts
395
+ documentNo
396
+ constructionInspectionDate
397
+ supervisorInspectionDate
398
+ overallConstructorSignature
399
+ taskConstructorSignature
400
+ overallSupervisorySignature
401
+ taskSupervisorySignature
402
+
403
+ checklistItems {
404
+ id
405
+ name
406
+ sequence
407
+ mainType
408
+ detailType
409
+ inspctionCriteria
410
+ constructionConfirmStatus
411
+ supervisoryConfirmStatus
412
+ checklistItemCommentCount
413
+ checklistItemAttachmentCount
414
+ }
415
+ }
416
+
417
+ manager {
418
+ userId
419
+ name
420
+ }
421
+ }
422
+ }
423
+ `,
424
+ variables: {
425
+ id: buildingInspectionId
426
+ }
427
+ });
428
+ if (response.errors)
429
+ return;
430
+ return ((_a = response.data) === null || _a === void 0 ? void 0 : _a.buildingInspection) || {};
431
+ }
432
+ async _onSelectBuilding(e) {
433
+ var _a, _b;
434
+ const buildingId = e.target.value;
435
+ this.selectedBuilding = await this._getBuilding(buildingId);
436
+ this.selectedLevel = Object.assign({}, (_b = (_a = this.selectedBuilding) === null || _a === void 0 ? void 0 : _a.buildingLevels) === null || _b === void 0 ? void 0 : _b[0]);
437
+ this.refresh();
438
+ }
439
+ _onSelectBuildingLevel(e) {
440
+ var _a, _b, _c;
441
+ // SELECT event는 target, 팝업 Close는 detail
442
+ const buildingLevelId = ((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.value) || e.detail.buildingLevelId;
443
+ this.selectedLevel = Object.assign({}, (((_c = (_b = this.selectedBuilding) === null || _b === void 0 ? void 0 : _b.buildingLevels) === null || _c === void 0 ? void 0 : _c.find(v => v.id == buildingLevelId)) || {}));
444
+ this.refresh();
445
+ }
446
+ async _onClickGrid(e) {
447
+ var _a;
448
+ const target = e.currentTarget;
449
+ const buildingInspectionId = target.getAttribute('buildingInspectionId');
450
+ const cell = target.getAttribute('cell');
451
+ // active 속성 모두 제거후 클릭한 셀만 active로 변경
452
+ (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('div[cell][active]').forEach(e => e.removeAttribute('active'));
453
+ target.setAttribute('active', true);
454
+ const [cellX, cellY] = cell.split(',');
455
+ this.selectedInspection = buildingInspectionId ? await this._getBuildingInspection(buildingInspectionId) : { cellX, cellY };
456
+ this.cell = cell;
457
+ }
458
+ _onClicPopupNotice() {
459
+ var _a, _b;
460
+ openPopup(html `<notice-comment-popup
461
+ .buildingLevelId=${this.selectedLevel.id}
462
+ .title=${`${(_a = this.selectedBuilding) === null || _a === void 0 ? void 0 : _a.name} ${(_b = this.selectedLevel) === null || _b === void 0 ? void 0 : _b.floor}층 공지사항`}
463
+ @change-comment=${(e) => {
464
+ if (e.detail.type === 'create') {
465
+ this.selectedLevel.noticeCount++; // 코멘트 카운트 + 1
466
+ }
467
+ else if (e.detail.type === 'delete') {
468
+ this.selectedLevel.noticeCount--; // 코멘트 카운트 - 1
469
+ }
470
+ this.requestUpdate();
471
+ }}
472
+ ></notice-comment-popup>`, { backdrop: true, size: 'medium', title: '층별 공지사항' });
473
+ }
474
+ _onClickCreateInspection() {
475
+ if (!this.cell) {
476
+ notify({ message: '셀을 선택해주세요.' });
477
+ return;
478
+ }
479
+ openPopup(html `
480
+ <grid-inspection-create-popup
481
+ .projectId=${this.project.id}
482
+ .selectedBuildingId=${this.selectedBuilding.id}
483
+ .selectedBuildingLevelId=${this.selectedLevel.id}
484
+ .cell=${this.cell}
485
+ @requestRefresh=${async (e) => {
486
+ await this.refresh(e.detail.buildingInspectionId);
487
+ }}
488
+ ></grid-inspection-create-popup>
489
+ `, { backdrop: true, size: 'large', title: '검측 요청서 등록' });
490
+ }
491
+ _onClickUpdateInspection(initialTab = 0) {
492
+ openPopup(html `
493
+ <inspection-tab-popup
494
+ .selectedInspection=${this.selectedInspection}
495
+ .project=${this.project}
496
+ .initialTab=${initialTab}
497
+ @modify-checklist=${(e) => this.validateChecklist(e.detail.checklist)}
498
+ @requestRefresh=${async (e) => {
499
+ await this.refresh(e.detail.buildingInspectionId);
500
+ }}
501
+ ></inspection-tab-popup>
502
+ `, { backdrop: true, size: 'large', title: '검측 요청서 수정' });
503
+ }
504
+ async refresh(buildingInspectionId = '') {
505
+ // 그리드, 서머리 정보 갱신
506
+ await this.initProject(this.project.id, this.selectedBuilding.id, this.selectedLevel.id);
507
+ // 선택된 검측 정보 갱신
508
+ this.selectedInspection = buildingInspectionId ? await this._getBuildingInspection(buildingInspectionId) : {};
509
+ }
510
+ _getIconHtmlByStatus(status) {
511
+ if (!status)
512
+ return '';
513
+ if (status == BuildingInspectionStatus.WAIT || status == BuildingInspectionStatus.OVERALL_WAIT) {
514
+ return html `<md-icon request slot="icon">frame_inspect</md-icon>`;
515
+ }
516
+ if (status == BuildingInspectionStatus.REQUEST || status == BuildingInspectionStatus.OVERALL_REQUEST) {
517
+ return html `<md-icon request slot="icon">exclamation</md-icon>`;
518
+ }
519
+ if (status == BuildingInspectionStatus.PASS) {
520
+ return html `<md-icon pass slot="icon">check</md-icon>`;
521
+ }
522
+ return html `<md-icon fail slot="icon">close</md-icon>`;
523
+ }
524
+ async validateChecklist(checklist) {
525
+ var _a, _b;
526
+ try {
527
+ const result = await verifyBiometric();
528
+ if (result.verified) {
529
+ console.log('Verification successful. Proceeding with sensitive action.');
530
+ }
531
+ else {
532
+ notify({ message: 'Verification failed:' + result.message });
533
+ return;
534
+ }
535
+ }
536
+ catch (error) {
537
+ notify({ message: 'Error during biometric verification:' + error });
538
+ return;
539
+ }
540
+ const response = await client.mutate({
541
+ mutation: gql `
542
+ mutation UpdateBuildingInspectionChecklist($buildingInspection: UpdateBuildingInspectionSubmitType!) {
543
+ updateBuildingInspectionChecklist(buildingInspection: $buildingInspection)
544
+ }
545
+ `,
546
+ variables: {
547
+ buildingInspection: {
548
+ id: this.selectedInspection.id,
549
+ checklist: {
550
+ id: checklist.id,
551
+ overallConstructorSignature: checklist.overallConstructorSignature,
552
+ taskConstructorSignature: checklist.taskConstructorSignature,
553
+ overallSupervisorySignature: checklist.overallSupervisorySignature,
554
+ taskSupervisorySignature: checklist.taskSupervisorySignature
555
+ },
556
+ checklistItem: checklist.checklistItems.map(item => ({
557
+ id: item.id,
558
+ constructionConfirmStatus: item.constructionConfirmStatus,
559
+ supervisoryConfirmStatus: item.supervisoryConfirmStatus
560
+ }))
561
+ }
562
+ }
563
+ });
564
+ if (!response.errors) {
565
+ notify({ message: '검측 요청서를 등록하였습니다.' });
566
+ this.refresh(this.selectedInspection.id);
567
+ history.back();
568
+ }
569
+ else {
570
+ notify({ message: ((_b = (_a = response.errors) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.message) || '검측 요청서 등록에 실패하였습니다.', level: 'error' });
571
+ }
572
+ }
573
+ async _onClickApplyToAll() {
574
+ var _a, _b;
575
+ if ((await OxPrompt.open({
576
+ title: '전층 동일 적용',
577
+ text: '해당 검측을 전층에 동일하게 적용 하시겠습니까?',
578
+ confirmButton: { text: '확인' },
579
+ cancelButton: { text: '취소' }
580
+ })) === false) {
581
+ return;
582
+ }
583
+ const response = await client.mutate({
584
+ mutation: gql `
585
+ mutation ApplyToAllBuildingInspection($buildingInspectionId: String!) {
586
+ applyToAllBuildingInspection(buildingInspectionId: $buildingInspectionId)
587
+ }
588
+ `,
589
+ variables: {
590
+ buildingInspectionId: this.selectedInspection.id
591
+ }
592
+ });
593
+ if (!response.errors) {
594
+ notify({ message: '전층 동일 적용 완료' });
595
+ this.refresh(this.selectedInspection.id);
596
+ }
597
+ else {
598
+ notify({ message: ((_b = (_a = response.errors) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.message) || '전층 동일 적용에 실패하였습니다.', level: 'error' });
599
+ }
600
+ }
601
+ _openPlanPreviewPopup() {
602
+ openPopup(html `<plan-preview-popup .buildingLevelId=${this.selectedLevel.id}></plan-preview-popup>`, {
603
+ backdrop: true,
604
+ size: 'large',
605
+ title: '추가 도면 보기'
606
+ });
607
+ }
608
+ async _onClickDeleteInspection() {
609
+ var _a, _b, _c;
610
+ if (!((_a = this.selectedInspection) === null || _a === void 0 ? void 0 : _a.id)) {
611
+ notify({ message: '삭제할 검측을 선택해주세요.', level: 'info' });
612
+ return;
613
+ }
614
+ const confirmed = await OxPrompt.open({
615
+ title: '검측 삭제',
616
+ text: '해당 검측을 삭제하시겠습니까? 삭제 후 되돌릴 수 없습니다.',
617
+ confirmButton: { text: '삭제' },
618
+ cancelButton: { text: '취소' }
619
+ });
620
+ if (confirmed === false)
621
+ return;
622
+ const response = await client.mutate({
623
+ mutation: gql `
624
+ mutation ($ids: [String!]!) {
625
+ deleteBuildingInspections(ids: $ids)
626
+ }
627
+ `,
628
+ variables: {
629
+ ids: [this.selectedInspection.id]
630
+ }
631
+ });
632
+ if (!response.errors) {
633
+ notify({ message: '삭제되었습니다.' });
634
+ this.selectedInspection = {};
635
+ await this.refresh();
636
+ }
637
+ else {
638
+ notify({ message: ((_c = (_b = response.errors) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.message) || '삭제에 실패하였습니다.', level: 'error' });
639
+ }
640
+ }
641
+ };
642
+ BuildingInspectionGridDetail.styles = [
643
+ css `
644
+ :host {
645
+ display: grid;
646
+ grid-template-rows: 75px auto;
647
+ color: #4e5055;
648
+
649
+ width: 100%;
650
+ background-color: #f7f7f7;
651
+ overflow-y: auto;
652
+
653
+ --grid-record-emphasized-background-color: red;
654
+ --grid-record-emphasized-color: yellow;
655
+ }
656
+
657
+ md-filled-button {
658
+ --md-filled-button-container-color: #0595e5;
659
+ --md-filled-button-container-height: 30px;
660
+ --md-filled-button-trailing-space: 15px;
661
+ --md-filled-button-leading-space: 15px;
662
+ }
663
+ md-filled-button[update] {
664
+ --md-filled-button-container-color: #42b382;
665
+ }
666
+ md-filled-button[apply-to-all] {
667
+ --md-filled-button-container-color: #aaa;
668
+ }
669
+ md-filled-button[delete] {
670
+ --md-filled-button-container-color: #ff4444;
671
+ }
672
+ md-outlined-button {
673
+ color: #586878;
674
+ font-weight: bold;
675
+ --md-outlined-button-label-text-size: 13px;
676
+ --md-outlined-button-container-height: 30px;
677
+ --md-outlined-button-trailing-space: 15px;
678
+ --md-outlined-button-leading-space: 15px;
679
+ }
680
+ md-filled-select {
681
+ width: auto;
682
+ min-width: 150px;
683
+ --md-filled-select-text-field-container-color: transparent;
684
+ --md-filled-select-text-field-active-indicator-color: #999;
685
+ --md-filled-select-text-field-input-text-size: 14px;
686
+ --md-filled-select-text-field-input-text-weight: bold;
687
+ --md-filled-select-text-field-input-text-line-height: 6px;
688
+ }
689
+ md-filled-select[level] {
690
+ min-width: 110px;
691
+ margin-left: 20px;
692
+ }
693
+
694
+ md-icon[request],
695
+ md-icon[pass],
696
+ md-icon[fail] {
697
+ width: 20px;
698
+ height: 20px;
699
+ margin-right: 4px;
700
+ border-radius: 5px;
701
+ font-size: 21px;
702
+ font-weight: 700;
703
+ color: #fff;
704
+ }
705
+ md-icon[request] {
706
+ background-color: #4e5055;
707
+ }
708
+ md-icon[pass] {
709
+ background-color: #4bbb4a;
710
+ }
711
+ md-icon[fail] {
712
+ background-color: #ff4444;
713
+ }
714
+
715
+ *[bold] {
716
+ font-weight: bold;
717
+ }
718
+
719
+ div[header] {
720
+ display: flex;
721
+ margin: 0px 20px;
722
+
723
+ h2 {
724
+ display: flex;
725
+ gap: 7px;
726
+ flex: 0.5;
727
+ color: #3f71a0;
728
+ font-size: 18px;
729
+
730
+ md-icon[back] {
731
+ background: linear-gradient(135deg, #3f71a0 0%, #5a8cc7 100%);
732
+ color: white;
733
+ padding: 8px;
734
+ border-radius: 50%;
735
+ cursor: pointer;
736
+ box-shadow: 0 2px 8px rgba(63, 113, 160, 0.3);
737
+ width: 14px;
738
+ height: 14px;
739
+ --md-icon-size: 20px;
740
+ }
741
+
742
+ md-icon[back]:hover {
743
+ background: linear-gradient(135deg, #2e5c89 0%, #4a7bb0 100%);
744
+ box-shadow: 0 4px 12px rgba(63, 113, 160, 0.4);
745
+ }
746
+ }
747
+
748
+ div[button-container] {
749
+ display: flex;
750
+ align-items: center;
751
+ justify-content: end;
752
+ flex: 0.5;
753
+
754
+ md-elevated-button {
755
+ margin: 0px 3px;
756
+
757
+ --md-elevated-button-container-height: 35px;
758
+ --md-elevated-button-label-text-size: 16px;
759
+ --md-elevated-button-container-color: #0595e5;
760
+
761
+ --md-elevated-button-label-text-color: #fff;
762
+ --md-elevated-button-hover-label-text-color: #fff;
763
+ --md-elevated-button-pressed-label-text-color: #fff;
764
+ --md-elevated-button-focus-label-text-color: #fff;
765
+ --md-elevated-button-icon-color: #fff;
766
+ --md-elevated-button-hover-icon-color: #fff;
767
+ --md-elevated-button-pressed-icon-color: #fff;
768
+ --md-elevated-button-focus-icon-color: #fff;
769
+ }
770
+ }
771
+ }
772
+
773
+ div[body] {
774
+ display: grid;
775
+ grid-template-columns: 1fr 200px;
776
+ margin: 0px 25px 25px 25px;
777
+ gap: 10px;
778
+ min-height: fit-content;
779
+
780
+ h3 {
781
+ color: #2e79be;
782
+ font-size: 18px;
783
+ margin: 0px;
784
+ }
785
+
786
+ & > div {
787
+ display: flex;
788
+ gap: 10px;
789
+ border-radius: 5px;
790
+ }
791
+
792
+ div[left] {
793
+ flex-direction: column;
794
+
795
+ div[select] {
796
+ display: flex;
797
+ align-items: center;
798
+ justify-content: space-between;
799
+ background-color: #2ea4df1a;
800
+ border: 1px solid #2ea4df33;
801
+ font-size: 18px;
802
+ padding: 7px 10px;
803
+ border-radius: 5px;
804
+ gap: 12px;
805
+
806
+ & > div[state] {
807
+ display: flex;
808
+ font-size: 15px;
809
+ margin-right: 12px;
810
+ gap: 10px;
811
+
812
+ & > span {
813
+ display: flex;
814
+ align-items: center;
815
+ margin-left: 15px;
816
+ gap: 2px;
817
+ }
818
+ }
819
+ }
820
+
821
+ div[drawing] {
822
+ width: 100%;
823
+ background-color: #ffffff;
824
+ border: 1px solid #cccccc;
825
+ border-radius: 5px;
826
+ position: relative;
827
+ }
828
+
829
+ img {
830
+ width: 100%;
831
+ background-size: contain;
832
+ }
833
+
834
+ div[grid] {
835
+ display: flex;
836
+ position: absolute;
837
+ width: 100%;
838
+ height: 100%;
839
+ top: 0;
840
+ left: 0;
841
+ border: 1px #ccc solid;
842
+ justify-content: space-between;
843
+
844
+ & > div[row] {
845
+ display: flex;
846
+ flex-direction: column;
847
+ justify-content: space-between;
848
+ flex: 1;
849
+
850
+ & > div[column] {
851
+ flex: 1;
852
+ border: dashed 1px #2ea4df99;
853
+ display: flex;
854
+ justify-content: center;
855
+ align-items: center;
856
+ }
857
+ }
858
+
859
+ div[row='1'] div[column] {
860
+ border-left: none !important;
861
+ }
862
+ div[row]:last-of-type div[column] {
863
+ border-right: none !important;
864
+ }
865
+ div[column='1'] {
866
+ border-top: none !important;
867
+ }
868
+ div[column]:last-of-type {
869
+ border-bottom: none !important;
870
+ }
871
+
872
+ div[cell] {
873
+ &[status='WAIT'],
874
+ &[status='REQUEST'],
875
+ &[status='OVERALL_WAIT'],
876
+ &[status='OVERALL_REQUEST'],
877
+ &[status='PASS'],
878
+ &[status='FAIL'] {
879
+ background-color: #2ea4df1a;
880
+ }
881
+
882
+ &[active] {
883
+ background-color: #2ea4df99;
884
+ }
885
+ }
886
+ }
887
+ }
888
+
889
+ div[right] {
890
+ flex-direction: column;
891
+ gap: 15px;
892
+
893
+ & > div {
894
+ background-color: #ffffff;
895
+ border: 1px solid #cccccc80;
896
+ padding: 11px 12px 15px 12px;
897
+ border-radius: 5px;
898
+ }
899
+
900
+ div[top] {
901
+ div[content] {
902
+ display: grid;
903
+ grid-template-columns: 1fr 1fr;
904
+ gap: 5px;
905
+ align-items: center;
906
+ margin-top: 8px;
907
+ justify-content: space-between;
908
+
909
+ span {
910
+ display: flex;
911
+ align-items: center;
912
+ min-width: 55px;
913
+ }
914
+ }
915
+ }
916
+
917
+ div[bottom] {
918
+ display: flex;
919
+ flex-direction: column;
920
+ flex: 1;
921
+ gap: 10px;
922
+
923
+ & > div {
924
+ display: flex;
925
+ flex-direction: column;
926
+ gap: 9px;
927
+
928
+ hr {
929
+ border: 1px #cccccc dashed;
930
+ width: 100%;
931
+ margin: 0;
932
+ }
933
+ }
934
+
935
+ div[view] {
936
+ flex: 1;
937
+
938
+ div[status] {
939
+ display: flex;
940
+ align-items: center;
941
+ margin-bottom: 7px;
942
+ }
943
+
944
+ div[date],
945
+ div[manager] {
946
+ font-size: 14px;
947
+ }
948
+ }
949
+
950
+ div[edit] {
951
+ flex: 1;
952
+ }
953
+
954
+ md-elevated-button {
955
+ --md-elevated-button-container-color: #fafafa;
956
+
957
+ --md-elevated-button-label-text-color: #586878;
958
+ --md-elevated-button-hover-label-text-color: #586878;
959
+ --md-elevated-button-pressed-label-text-color: #586878;
960
+ --md-elevated-button-focus-label-text-color: #586878;
961
+ --md-elevated-button-icon-color: #586878;
962
+ --md-elevated-button-hover-icon-color: #586878;
963
+ --md-elevated-button-pressed-icon-color: #586878;
964
+ --md-elevated-button-focus-icon-color: #586878;
965
+ }
966
+ }
967
+ }
968
+ }
969
+
970
+ .attachment-info {
971
+ display: flex;
972
+ align-items: center;
973
+ justify-content: space-between;
974
+ margin-bottom: 8px;
975
+ gap: 5px;
976
+ flex-direction: column;
977
+ align-items: flex-start;
978
+ }
979
+
980
+ .attachment-count {
981
+ font-size: 14px;
982
+ color: #586878;
983
+ }
984
+ `
985
+ ];
986
+ __decorate([
987
+ state(),
988
+ __metadata("design:type", Object)
989
+ ], BuildingInspectionGridDetail.prototype, "project", void 0);
990
+ __decorate([
991
+ state(),
992
+ __metadata("design:type", Object)
993
+ ], BuildingInspectionGridDetail.prototype, "buildingInspections", void 0);
994
+ __decorate([
995
+ state(),
996
+ __metadata("design:type", Object)
997
+ ], BuildingInspectionGridDetail.prototype, "buildingInspectionSummaryOfProject", void 0);
998
+ __decorate([
999
+ state(),
1000
+ __metadata("design:type", Object)
1001
+ ], BuildingInspectionGridDetail.prototype, "buildingInspectionSummaryOfBuildingLevel", void 0);
1002
+ __decorate([
1003
+ state(),
1004
+ __metadata("design:type", Object)
1005
+ ], BuildingInspectionGridDetail.prototype, "selectedBuilding", void 0);
1006
+ __decorate([
1007
+ state(),
1008
+ __metadata("design:type", Object)
1009
+ ], BuildingInspectionGridDetail.prototype, "selectedLevel", void 0);
1010
+ __decorate([
1011
+ state(),
1012
+ __metadata("design:type", Object)
1013
+ ], BuildingInspectionGridDetail.prototype, "selectedInspection", void 0);
1014
+ __decorate([
1015
+ state(),
1016
+ __metadata("design:type", String)
1017
+ ], BuildingInspectionGridDetail.prototype, "cell", void 0);
1018
+ __decorate([
1019
+ query('md-filled-select[building]'),
1020
+ __metadata("design:type", Object)
1021
+ ], BuildingInspectionGridDetail.prototype, "htmlSelectBuilding", void 0);
1022
+ __decorate([
1023
+ query('md-filled-select[level]'),
1024
+ __metadata("design:type", Object)
1025
+ ], BuildingInspectionGridDetail.prototype, "htmlSelectLevel", void 0);
1026
+ BuildingInspectionGridDetail = __decorate([
1027
+ customElement('building-inspection-grid-detail')
1028
+ ], BuildingInspectionGridDetail);
1029
+ export { BuildingInspectionGridDetail };
1030
+ //# sourceMappingURL=building-inspection-grid-detail.js.map