@dssp/supervision 1.0.0-alpha.66 → 1.0.0-alpha.74

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 (152) hide show
  1. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.js +1 -0
  2. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.js.map +1 -1
  3. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js +1 -0
  4. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js.map +1 -1
  5. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js +1 -0
  6. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js.map +1 -1
  7. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.d.ts +2 -0
  8. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js +16 -0
  9. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js.map +1 -1
  10. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js +1 -0
  11. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js.map +1 -1
  12. package/dist-client/pages/building-inspection/building-inspection-management.d.ts +72 -0
  13. package/dist-client/pages/building-inspection/building-inspection-management.js +1256 -0
  14. package/dist-client/pages/building-inspection/building-inspection-management.js.map +1 -0
  15. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js +8 -3
  16. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js.map +1 -1
  17. package/dist-client/pages/building-inspection/component/image-preview-popup.js +0 -3
  18. package/dist-client/pages/building-inspection/component/image-preview-popup.js.map +1 -1
  19. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.d.ts +5 -0
  20. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js +62 -3
  21. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js.map +1 -1
  22. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.d.ts +1 -0
  23. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js +8 -2
  24. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js.map +1 -1
  25. package/dist-client/pages/building-inspection/component/inspection-event-provider.js +3 -1
  26. package/dist-client/pages/building-inspection/component/inspection-event-provider.js.map +1 -1
  27. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.d.ts +3 -0
  28. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.js +791 -0
  29. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.js.map +1 -0
  30. package/dist-client/pages/checklist/checklist-view.js +76 -5
  31. package/dist-client/pages/checklist/checklist-view.js.map +1 -1
  32. package/dist-client/pages/checklist-database/checklist-database.d.ts +35 -0
  33. package/dist-client/pages/checklist-database/checklist-database.js +539 -0
  34. package/dist-client/pages/checklist-database/checklist-database.js.map +1 -0
  35. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.d.ts +2 -0
  36. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.js +242 -0
  37. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.js.map +1 -0
  38. package/dist-client/pages/checklist-template/construction-checklist-template-list.d.ts +55 -0
  39. package/dist-client/pages/checklist-template/construction-checklist-template-list.js +409 -0
  40. package/dist-client/pages/checklist-template/construction-checklist-template-list.js.map +1 -0
  41. package/dist-client/pages/project-checklist/project-checklist-management.d.ts +50 -0
  42. package/dist-client/pages/project-checklist/project-checklist-management.js +910 -0
  43. package/dist-client/pages/project-checklist/project-checklist-management.js.map +1 -0
  44. package/dist-client/route.d.ts +1 -1
  45. package/dist-client/route.js +12 -0
  46. package/dist-client/route.js.map +1 -1
  47. package/dist-client/tsconfig.tsbuildinfo +1 -1
  48. package/dist-server/service/action-plan/action-plan-mutation.js +5 -6
  49. package/dist-server/service/action-plan/action-plan-mutation.js.map +1 -1
  50. package/dist-server/service/action-plan/action-plan-query.d.ts +2 -2
  51. package/dist-server/service/action-plan/action-plan-query.js +5 -11
  52. package/dist-server/service/action-plan/action-plan-query.js.map +1 -1
  53. package/dist-server/service/building-inspection/building-inspection-mutation.js +3 -3
  54. package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -1
  55. package/dist-server/service/building-inspection/building-inspection-query.d.ts +2 -2
  56. package/dist-server/service/building-inspection/building-inspection-query.js +19 -22
  57. package/dist-server/service/building-inspection/building-inspection-query.js.map +1 -1
  58. package/dist-server/service/building-inspection/building-inspection-type.d.ts +1 -0
  59. package/dist-server/service/building-inspection/building-inspection-type.js +4 -0
  60. package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -1
  61. package/dist-server/service/building-inspection/building-inspection.js +14 -1
  62. package/dist-server/service/building-inspection/building-inspection.js.map +1 -1
  63. package/dist-server/service/checklist-template/checklist-template-query.d.ts +1 -1
  64. package/dist-server/service/checklist-template/checklist-template-query.js +2 -5
  65. package/dist-server/service/checklist-template/checklist-template-query.js.map +1 -1
  66. package/dist-server/service/checklist-type/checklist-type-query.d.ts +1 -1
  67. package/dist-server/service/checklist-type/checklist-type-query.js +2 -5
  68. package/dist-server/service/checklist-type/checklist-type-query.js.map +1 -1
  69. package/dist-server/service/construction-checklist-template/construction-checklist-template-mutation.d.ts +7 -0
  70. package/dist-server/service/construction-checklist-template/construction-checklist-template-mutation.js +107 -0
  71. package/dist-server/service/construction-checklist-template/construction-checklist-template-mutation.js.map +1 -0
  72. package/dist-server/service/construction-checklist-template/construction-checklist-template-query.d.ts +10 -0
  73. package/dist-server/service/construction-checklist-template/construction-checklist-template-query.js +62 -0
  74. package/dist-server/service/construction-checklist-template/construction-checklist-template-query.js.map +1 -0
  75. package/dist-server/service/construction-checklist-template/construction-checklist-template-type.d.ts +11 -0
  76. package/dist-server/service/construction-checklist-template/construction-checklist-template-type.js +43 -0
  77. package/dist-server/service/construction-checklist-template/construction-checklist-template-type.js.map +1 -0
  78. package/dist-server/service/construction-checklist-template/construction-checklist-template.d.ts +18 -0
  79. package/dist-server/service/construction-checklist-template/construction-checklist-template.js +80 -0
  80. package/dist-server/service/construction-checklist-template/construction-checklist-template.js.map +1 -0
  81. package/dist-server/service/construction-checklist-template/index.d.ts +5 -0
  82. package/dist-server/service/construction-checklist-template/index.js +9 -0
  83. package/dist-server/service/construction-checklist-template/index.js.map +1 -0
  84. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.d.ts +6 -0
  85. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.js +60 -0
  86. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.js.map +1 -0
  87. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-query.d.ts +9 -0
  88. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-query.js +53 -0
  89. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-query.js.map +1 -0
  90. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-type.d.ts +17 -0
  91. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-type.js +67 -0
  92. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-type.js.map +1 -0
  93. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item.d.ts +24 -0
  94. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item.js +113 -0
  95. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item.js.map +1 -0
  96. package/dist-server/service/construction-checklist-template-item/index.d.ts +5 -0
  97. package/dist-server/service/construction-checklist-template-item/index.js +9 -0
  98. package/dist-server/service/construction-checklist-template-item/index.js.map +1 -0
  99. package/dist-server/service/construction-checklist-template-item/spec-matching-service.d.ts +2 -0
  100. package/dist-server/service/construction-checklist-template-item/spec-matching-service.js +50 -0
  101. package/dist-server/service/construction-checklist-template-item/spec-matching-service.js.map +1 -0
  102. package/dist-server/service/index.d.ts +5 -1
  103. package/dist-server/service/index.js +16 -0
  104. package/dist-server/service/index.js.map +1 -1
  105. package/dist-server/service/issue/issue-mutation.js +5 -6
  106. package/dist-server/service/issue/issue-mutation.js.map +1 -1
  107. package/dist-server/service/issue/issue-query.d.ts +2 -2
  108. package/dist-server/service/issue/issue-query.js +5 -11
  109. package/dist-server/service/issue/issue-query.js.map +1 -1
  110. package/dist-server/service/project-checklist/index.d.ts +5 -0
  111. package/dist-server/service/project-checklist/index.js +9 -0
  112. package/dist-server/service/project-checklist/index.js.map +1 -0
  113. package/dist-server/service/project-checklist/project-checklist-mutation.d.ts +7 -0
  114. package/dist-server/service/project-checklist/project-checklist-mutation.js +109 -0
  115. package/dist-server/service/project-checklist/project-checklist-mutation.js.map +1 -0
  116. package/dist-server/service/project-checklist/project-checklist-query.d.ts +12 -0
  117. package/dist-server/service/project-checklist/project-checklist-query.js +76 -0
  118. package/dist-server/service/project-checklist/project-checklist-query.js.map +1 -0
  119. package/dist-server/service/project-checklist/project-checklist-type.d.ts +18 -0
  120. package/dist-server/service/project-checklist/project-checklist-type.js +69 -0
  121. package/dist-server/service/project-checklist/project-checklist-type.js.map +1 -0
  122. package/dist-server/service/project-checklist/project-checklist.d.ts +20 -0
  123. package/dist-server/service/project-checklist/project-checklist.js +90 -0
  124. package/dist-server/service/project-checklist/project-checklist.js.map +1 -0
  125. package/dist-server/service/project-checklist-item/index.d.ts +4 -0
  126. package/dist-server/service/project-checklist-item/index.js +9 -0
  127. package/dist-server/service/project-checklist-item/index.js.map +1 -0
  128. package/dist-server/service/project-checklist-item/project-checklist-item-mutation.d.ts +2 -0
  129. package/dist-server/service/project-checklist-item/project-checklist-item-mutation.js +13 -0
  130. package/dist-server/service/project-checklist-item/project-checklist-item-mutation.js.map +1 -0
  131. package/dist-server/service/project-checklist-item/project-checklist-item-query.d.ts +5 -0
  132. package/dist-server/service/project-checklist-item/project-checklist-item-query.js +34 -0
  133. package/dist-server/service/project-checklist-item/project-checklist-item-query.js.map +1 -0
  134. package/dist-server/service/project-checklist-item/project-checklist-item-type.d.ts +5 -0
  135. package/dist-server/service/project-checklist-item/project-checklist-item-type.js +21 -0
  136. package/dist-server/service/project-checklist-item/project-checklist-item-type.js.map +1 -0
  137. package/dist-server/service/project-checklist-item/project-checklist-item.d.ts +17 -0
  138. package/dist-server/service/project-checklist-item/project-checklist-item.js +82 -0
  139. package/dist-server/service/project-checklist-item/project-checklist-item.js.map +1 -0
  140. package/dist-server/service/project-report/project-report-mutation.js +5 -6
  141. package/dist-server/service/project-report/project-report-mutation.js.map +1 -1
  142. package/dist-server/service/project-report/project-report-query.d.ts +2 -2
  143. package/dist-server/service/project-report/project-report-query.js +5 -11
  144. package/dist-server/service/project-report/project-report-query.js.map +1 -1
  145. package/dist-server/service/supervisor/supervisor-mutation.js +5 -6
  146. package/dist-server/service/supervisor/supervisor-mutation.js.map +1 -1
  147. package/dist-server/service/supervisor/supervisor-query.d.ts +2 -2
  148. package/dist-server/service/supervisor/supervisor-query.js +5 -11
  149. package/dist-server/service/supervisor/supervisor-query.js.map +1 -1
  150. package/dist-server/tsconfig.tsbuildinfo +1 -1
  151. package/package.json +4 -4
  152. package/things-factory.config.js +7 -1
@@ -0,0 +1,791 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@material/web/icon/icon.js';
3
+ import '@operato/data-grist/ox-grist.js';
4
+ import gql from 'graphql-tag';
5
+ import { css, html, LitElement } from 'lit';
6
+ import { customElement, property, query, state } from 'lit/decorators.js';
7
+ import { DataGrist } from '@operato/data-grist/ox-grist.js';
8
+ import { client } from '@operato/graphql';
9
+ import { ButtonContainerStyles, ScrollbarStyles } from '@operato/styles';
10
+ import { notify } from '@operato/layout';
11
+ import { BuildingInspectionStatus, CHECKLIST_MAIN_TYPE_LIST } from './building-inspection-list';
12
+ import '../checklist/checklist-view';
13
+ let InspectionWithChecklistCreatePopup = class InspectionWithChecklistCreatePopup extends LitElement {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.projectId = '';
17
+ this.selectedBuildingId = '';
18
+ this.selectedBuildingLevelId = '';
19
+ this.project = {};
20
+ this.buildings = [];
21
+ this.selectedBuilding = {};
22
+ this.selectedLevel = {};
23
+ this.constructionTypes = [];
24
+ this.allDetailTypes = [];
25
+ this.inspectionDrawingTypes = [];
26
+ this.selectedInspectionDrawingType = {};
27
+ this.selectedInspectionParts = [];
28
+ this.projectChecklists = [];
29
+ this.selectedProjectChecklist = null;
30
+ this.checklistItems = [];
31
+ this.checklist = {};
32
+ this.activeTab = 'edit';
33
+ }
34
+ render() {
35
+ var _a, _b, _c, _d, _e, _f, _g, _h;
36
+ const ctName = this._getConstructionTypeName((_a = this.selectedProjectChecklist) === null || _a === void 0 ? void 0 : _a.constructionTypeId);
37
+ const cdtName = this._getConstructionDetailTypeName((_b = this.selectedProjectChecklist) === null || _b === void 0 ? void 0 : _b.constructionDetailTypeId);
38
+ return html `
39
+ <div body>
40
+ <div tab-container ?inactive=${this.activeTab !== 'edit'} edit>
41
+ <!-- 체크리스트 선택 -->
42
+ <div checklist-select>
43
+ <h3>체크리스트 선택</h3>
44
+ <div data-row single>
45
+ <label>체크리스트</label>
46
+ <md-filled-select projectChecklist @change=${this._onSelectProjectChecklist}>
47
+ <md-select-option value="">
48
+ <div slot="headline">선택</div>
49
+ </md-select-option>
50
+ ${this.projectChecklists.map(cl => {
51
+ const clCtName = this._getConstructionTypeName(cl.constructionTypeId);
52
+ const clCdtName = this._getConstructionDetailTypeName(cl.constructionDetailTypeId);
53
+ return html `
54
+ <md-select-option .value=${cl.id}>
55
+ <div slot="headline">${cl.name} (${clCtName} / ${clCdtName})</div>
56
+ </md-select-option>
57
+ `;
58
+ })}
59
+ </md-filled-select>
60
+ </div>
61
+ </div>
62
+
63
+ <!-- 세부 정보 (항상 표시) -->
64
+ <div detail>
65
+ <h3>세부 정보</h3>
66
+
67
+ <div data-row>
68
+ <label>동</label>
69
+ <md-filled-select building @change=${this._onSelectBuilding}>
70
+ ${(_c = this.buildings) === null || _c === void 0 ? void 0 : _c.map(building => {
71
+ return html `<md-select-option .value=${building.id}>
72
+ <div slot="headline">${building.name}</div>
73
+ </md-select-option>`;
74
+ })}
75
+ </md-filled-select>
76
+
77
+ <div partition></div>
78
+
79
+ <label>층</label>
80
+ <md-filled-select level @change=${this._onSelectBuildingLevel}>
81
+ ${(_e = (_d = this.selectedBuilding) === null || _d === void 0 ? void 0 : _d.buildingLevels) === null || _e === void 0 ? void 0 : _e.map(level => {
82
+ return html `<md-select-option .value=${level.id}>
83
+ <div slot="headline">${level.floorDisplayName}</div>
84
+ </md-select-option>`;
85
+ })}
86
+ </md-filled-select>
87
+ </div>
88
+
89
+ <div data-row>
90
+ <label>검측 도면</label>
91
+ <md-filled-select inspectionDrawingType @change=${this._onSelectInspectionDrawingType}>
92
+ ${(_f = this.inspectionDrawingTypes) === null || _f === void 0 ? void 0 : _f.map(inspectionDrawingType => {
93
+ return html `<md-select-option .value=${inspectionDrawingType.id}>
94
+ <div slot="headline">${inspectionDrawingType.name}</div>
95
+ </md-select-option>`;
96
+ })}
97
+ </md-filled-select>
98
+
99
+ <div partition></div>
100
+
101
+ <label>검측 부위</label>
102
+ <div inspection-parts>
103
+ ${(_h = (_g = this.selectedInspectionDrawingType) === null || _g === void 0 ? void 0 : _g.inspectionParts) === null || _h === void 0 ? void 0 : _h.map(inspectionPart => {
104
+ return html `
105
+ <span>
106
+ <md-checkbox
107
+ id=${'check_' + inspectionPart.id}
108
+ ?checked="${this.isSelected(inspectionPart)}"
109
+ @click=${() => this._onSelectInspectionPart(inspectionPart)}
110
+ ></md-checkbox>
111
+ <label>${inspectionPart.name}</label>
112
+ </span>
113
+ `;
114
+ })}
115
+ </div>
116
+ </div>
117
+ </div>
118
+
119
+ ${this.selectedProjectChecklist
120
+ ? html `
121
+ <!-- 체크리스트 정보 (읽기 전용) -->
122
+ <div checklist-info>
123
+ <h3>체크리스트 정보</h3>
124
+ <div data-row single>
125
+ <label>이름</label>
126
+ <span info>${this.selectedProjectChecklist.name}</span>
127
+ </div>
128
+ <div data-row>
129
+ <label>공종</label>
130
+ <span info>${ctName}</span>
131
+
132
+ <div partition></div>
133
+
134
+ <label>세부공종</label>
135
+ <span info>${cdtName}</span>
136
+ </div>
137
+ </div>
138
+
139
+ <!-- 검사 항목 그리드 (읽기 전용) -->
140
+ <ox-grist
141
+ .mode=${'GRID'}
142
+ .config=${this.gristConfig}
143
+ .fetchHandler=${this.fetchHandler.bind(this)}
144
+ @wheel=${this._onGristWheel}
145
+ >
146
+ </ox-grist>
147
+ `
148
+ : html `
149
+ <div no-checklist>체크리스트를 선택하면 검사 항목이 표시됩니다.</div>
150
+ `}
151
+ </div>
152
+
153
+ <div tab-container ?inactive=${this.activeTab !== 'preview'} preview>
154
+ <checklist-view
155
+ .mode=${"VIEWER" /* ChecklistMode.VIEWER */}
156
+ .projectType=${this.project.projectType}
157
+ .checklist=${this.checklist}
158
+ ></checklist-view>
159
+ </div>
160
+ </div>
161
+
162
+ <div tabs>
163
+ <button ?active=${this.activeTab === 'edit'} @click=${() => (this.activeTab = 'edit')}>검측 요청 정보</button>
164
+ <button ?active=${this.activeTab === 'preview'} @click=${() => (this.activeTab = 'preview')}>미리보기</button>
165
+ </div>
166
+
167
+ <div button-container>
168
+ <md-elevated-button blue @click=${this._createInspection}>
169
+ <md-icon slot="icon">task</md-icon>검측 등록
170
+ </md-elevated-button>
171
+ <md-elevated-button @click=${this._close}> <md-icon slot="icon">cancel</md-icon>취소</md-elevated-button>
172
+ </div>
173
+ `;
174
+ }
175
+ updated() {
176
+ var _a, _b;
177
+ if (this.checklistViewContainer && this.checklistView) {
178
+ const ratio = Math.round((((_a = this.checklistViewContainer) === null || _a === void 0 ? void 0 : _a.offsetWidth) / ((_b = this.checklistView) === null || _b === void 0 ? void 0 : _b.offsetWidth)) * 100) / 100 || 1;
179
+ this.checklistView.style.transform = `scale(${ratio})`;
180
+ }
181
+ }
182
+ async firstUpdated() {
183
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
184
+ const response = await client.query({
185
+ query: gql `
186
+ query Project($id: String!, $checklistFilters: [Filter!]) {
187
+ project(id: $id) {
188
+ id
189
+ name
190
+ projectType
191
+ documentNaming
192
+ buildingComplex {
193
+ id
194
+ buildings {
195
+ id
196
+ name
197
+ }
198
+ }
199
+ }
200
+
201
+ constructionTypes {
202
+ items {
203
+ id
204
+ name
205
+ constructionDetailTypes {
206
+ id
207
+ name
208
+ }
209
+ }
210
+ }
211
+
212
+ inspectionDrawingTypes {
213
+ items {
214
+ name
215
+ id
216
+ }
217
+ }
218
+
219
+ projectChecklists(filters: $checklistFilters) {
220
+ items {
221
+ id
222
+ name
223
+ constructionTypeId
224
+ constructionDetailTypeId
225
+ projectChecklistItems {
226
+ id
227
+ mainType
228
+ name
229
+ inspctionCriteria
230
+ sequence
231
+ }
232
+ }
233
+ }
234
+ }
235
+ `,
236
+ variables: {
237
+ id: this.projectId,
238
+ checklistFilters: [{ name: 'projectId', value: this.projectId, operator: 'eq' }]
239
+ }
240
+ });
241
+ if (response.errors)
242
+ return;
243
+ const project = (_a = response.data) === null || _a === void 0 ? void 0 : _a.project;
244
+ const constructionTypes = ((_c = (_b = response.data) === null || _b === void 0 ? void 0 : _b.constructionTypes) === null || _c === void 0 ? void 0 : _c.items) || [];
245
+ const inspectionDrawingTypes = ((_e = (_d = response.data) === null || _d === void 0 ? void 0 : _d.inspectionDrawingTypes) === null || _e === void 0 ? void 0 : _e.items) || [];
246
+ const projectChecklists = ((_g = (_f = response.data) === null || _f === void 0 ? void 0 : _f.projectChecklists) === null || _g === void 0 ? void 0 : _g.items) || [];
247
+ this.project = project;
248
+ this.buildings = [...(((_h = project === null || project === void 0 ? void 0 : project.buildingComplex) === null || _h === void 0 ? void 0 : _h.buildings) || [])];
249
+ this.constructionTypes = [...constructionTypes];
250
+ this.allDetailTypes = constructionTypes.flatMap(ct => (ct.constructionDetailTypes || []).map(dt => (Object.assign(Object.assign({}, dt), { constructionTypeId: ct.id }))));
251
+ this.inspectionDrawingTypes = [...inspectionDrawingTypes];
252
+ this.projectChecklists = [...projectChecklists];
253
+ // selectedBuildingId가 있으면 해당 빌딩 선택, 없으면 첫번째 빌딩 선택
254
+ this.selectedBuilding = this.selectedBuildingId
255
+ ? this.buildings.find(building => building.id == this.selectedBuildingId)
256
+ : this.buildings[0];
257
+ this.selectedInspectionDrawingType = inspectionDrawingTypes === null || inspectionDrawingTypes === void 0 ? void 0 : inspectionDrawingTypes[0];
258
+ // 선택된 동의 층 리스트 가져오기
259
+ this.selectedBuilding = await this._getBuilding((_j = this.selectedBuilding) === null || _j === void 0 ? void 0 : _j.id);
260
+ this.selectedInspectionDrawingType = await this._getInspectionDrawingType((_k = this.selectedInspectionDrawingType) === null || _k === void 0 ? void 0 : _k.id);
261
+ // selectedBuildingLevelId가 있으면 선택된 층, 없으면 첫번째 층 선택
262
+ this.selectedLevel = this.selectedBuildingLevelId
263
+ ? (_m = (_l = this.selectedBuilding) === null || _l === void 0 ? void 0 : _l.buildingLevels) === null || _m === void 0 ? void 0 : _m.find(level => level.id == this.selectedBuildingLevelId)
264
+ : (_p = (_o = this.selectedBuilding) === null || _o === void 0 ? void 0 : _o.buildingLevels) === null || _p === void 0 ? void 0 : _p[0];
265
+ this.selectedInspectionParts = [];
266
+ // 동, 층이 랜더링 된 후에 select를 위해 이 시점에서 랜더링
267
+ this.selectedBuilding = await Object.assign({}, this.selectedBuilding);
268
+ // 기본 값 셋팅 select
269
+ await ((_q = this.htmlSelectBuilding) === null || _q === void 0 ? void 0 : _q.select((_r = this.selectedBuilding) === null || _r === void 0 ? void 0 : _r.id));
270
+ await ((_s = this.htmlSelectLevel) === null || _s === void 0 ? void 0 : _s.select((_t = this.selectedLevel) === null || _t === void 0 ? void 0 : _t.id));
271
+ await ((_u = this.htmlSelectInspectionDrawingType) === null || _u === void 0 ? void 0 : _u.select((_v = this.selectedInspectionDrawingType) === null || _v === void 0 ? void 0 : _v.id));
272
+ await ((_w = this.htmlSelectProjectChecklist) === null || _w === void 0 ? void 0 : _w.selectIndex(0));
273
+ this.checklist = {
274
+ location: `${((_x = this.selectedBuilding) === null || _x === void 0 ? void 0 : _x.name) || ''} ${((_y = this.selectedLevel) === null || _y === void 0 ? void 0 : _y.floorDisplayName) || ''}층`,
275
+ documentNo: `${project.documentNaming} 검측 제01-00000호`,
276
+ buildingInspection: {
277
+ status: BuildingInspectionStatus.WAIT
278
+ }
279
+ };
280
+ // 그리드 셋팅
281
+ this._setGristConfig();
282
+ }
283
+ async _getBuilding(buildingId = '') {
284
+ var _a;
285
+ if (!buildingId)
286
+ return {};
287
+ const response = await client.query({
288
+ query: gql `
289
+ query Building($id: String!) {
290
+ building(id: $id) {
291
+ id
292
+ name
293
+ buildingLevels {
294
+ id
295
+ floor
296
+ floorDisplayName
297
+ mainDrawing {
298
+ id
299
+ name
300
+ fullpath
301
+ }
302
+ mainDrawingImage
303
+ }
304
+ }
305
+ }
306
+ `,
307
+ variables: {
308
+ id: buildingId
309
+ }
310
+ });
311
+ if (response.errors)
312
+ return {};
313
+ return ((_a = response.data) === null || _a === void 0 ? void 0 : _a.building) || {};
314
+ }
315
+ async _getInspectionDrawingType(id = '') {
316
+ var _a;
317
+ if (!id)
318
+ return {};
319
+ const response = await client.query({
320
+ query: gql `
321
+ query InspectionDrawingType($id: String!) {
322
+ inspectionDrawingType(id: $id) {
323
+ id
324
+ name
325
+ inspectionParts {
326
+ id
327
+ name
328
+ }
329
+ }
330
+ }
331
+ `,
332
+ variables: { id }
333
+ });
334
+ if (response.errors)
335
+ return {};
336
+ return ((_a = response.data) === null || _a === void 0 ? void 0 : _a.inspectionDrawingType) || {};
337
+ }
338
+ _getConstructionTypeName(ctId) {
339
+ var _a;
340
+ return ((_a = this.constructionTypes.find(ct => ct.id === ctId)) === null || _a === void 0 ? void 0 : _a.name) || '';
341
+ }
342
+ _getConstructionDetailTypeName(cdtId) {
343
+ var _a;
344
+ return ((_a = this.allDetailTypes.find(dt => dt.id === cdtId)) === null || _a === void 0 ? void 0 : _a.name) || '';
345
+ }
346
+ _onSelectProjectChecklist(e) {
347
+ const id = e.target.value;
348
+ const checklist = this.projectChecklists.find(c => c.id === id);
349
+ this.selectedProjectChecklist = checklist || null;
350
+ this.checklistItems = ((checklist === null || checklist === void 0 ? void 0 : checklist.projectChecklistItems) || []).sort((a, b) => (a.sequence || 0) - (b.sequence || 0));
351
+ this._updateChecklist();
352
+ // 그리드가 있을때만 fetch (체크리스트 미선택 → 선택 시 grist가 새로 렌더링됨)
353
+ this.updateComplete.then(() => {
354
+ var _a;
355
+ (_a = this.grist) === null || _a === void 0 ? void 0 : _a.fetch();
356
+ });
357
+ }
358
+ async _onSelectBuilding(e) {
359
+ var _a, _b, _c;
360
+ const buildingId = e.target.value;
361
+ this.selectedBuilding = await this._getBuilding(buildingId);
362
+ this.selectedLevel = await Object.assign({}, (_b = (_a = this.selectedBuilding) === null || _a === void 0 ? void 0 : _a.buildingLevels) === null || _b === void 0 ? void 0 : _b[0]);
363
+ await ((_c = this.htmlSelectLevel) === null || _c === void 0 ? void 0 : _c.selectIndex(0));
364
+ this._updateChecklist();
365
+ }
366
+ _onSelectBuildingLevel(e) {
367
+ var _a, _b;
368
+ const buildingLevelId = e.target.value;
369
+ this.selectedLevel = Object.assign({}, (((_b = (_a = this.selectedBuilding) === null || _a === void 0 ? void 0 : _a.buildingLevels) === null || _b === void 0 ? void 0 : _b.find(v => v.id == buildingLevelId)) || {}));
370
+ this._updateChecklist();
371
+ }
372
+ async _onSelectInspectionDrawingType(e) {
373
+ const inspectionDrawingTypeId = e.target.value;
374
+ this.selectedInspectionDrawingType = await this._getInspectionDrawingType(inspectionDrawingTypeId);
375
+ this.selectedInspectionParts = [];
376
+ this._updateChecklist();
377
+ }
378
+ _onSelectInspectionPart(part) {
379
+ if (this.selectedInspectionParts.includes(part.name)) {
380
+ this.selectedInspectionParts = this.selectedInspectionParts.filter(item => item !== part.name);
381
+ }
382
+ else {
383
+ this.selectedInspectionParts.push(part.name);
384
+ }
385
+ this.selectedInspectionParts = [...this.selectedInspectionParts];
386
+ this._updateChecklist();
387
+ }
388
+ isSelected(option) {
389
+ return this.selectedInspectionParts.includes(option.name);
390
+ }
391
+ _updateChecklist() {
392
+ var _a, _b, _c, _d, _e, _f;
393
+ const ctName = this._getConstructionTypeName((_a = this.selectedProjectChecklist) === null || _a === void 0 ? void 0 : _a.constructionTypeId);
394
+ const cdtName = this._getConstructionDetailTypeName((_b = this.selectedProjectChecklist) === null || _b === void 0 ? void 0 : _b.constructionDetailTypeId);
395
+ this.checklist = {
396
+ name: ((_c = this.selectedProjectChecklist) === null || _c === void 0 ? void 0 : _c.name) || '',
397
+ constructionType: ctName,
398
+ constructionDetailType: cdtName,
399
+ location: ((_d = this.selectedBuilding) === null || _d === void 0 ? void 0 : _d.name) && ((_e = this.selectedLevel) === null || _e === void 0 ? void 0 : _e.floorDisplayName)
400
+ ? `${this.selectedBuilding.name} ${this.selectedLevel.floorDisplayName}층`
401
+ : '',
402
+ inspectionDrawingType: ((_f = this.selectedInspectionDrawingType) === null || _f === void 0 ? void 0 : _f.name) || '',
403
+ inspectionParts: this.selectedInspectionParts,
404
+ documentNo: `${this.project.documentNaming || ''} 검측 제01-00000호`,
405
+ buildingInspection: {
406
+ status: BuildingInspectionStatus.WAIT
407
+ },
408
+ checklistItems: this.checklistItems.map((item, idx) => (Object.assign(Object.assign({}, item), { detailType: '', sequence: idx })))
409
+ };
410
+ }
411
+ _setGristConfig() {
412
+ this.gristConfig = {
413
+ columns: [
414
+ { type: 'gutter', gutterName: 'sequence' },
415
+ {
416
+ type: 'select',
417
+ name: 'mainType',
418
+ header: '구분',
419
+ record: {
420
+ editable: false,
421
+ options: Object.keys(CHECKLIST_MAIN_TYPE_LIST).map(key => ({
422
+ display: CHECKLIST_MAIN_TYPE_LIST[key],
423
+ value: key
424
+ }))
425
+ },
426
+ width: 100
427
+ },
428
+ {
429
+ type: 'string',
430
+ name: 'name',
431
+ header: '검사 항목',
432
+ record: {
433
+ editable: false
434
+ },
435
+ width: 200
436
+ },
437
+ {
438
+ type: 'string',
439
+ name: 'inspctionCriteria',
440
+ header: '검사 기준',
441
+ record: {
442
+ editable: false
443
+ },
444
+ width: 200
445
+ }
446
+ ],
447
+ rows: {
448
+ appendable: false
449
+ },
450
+ pagination: {
451
+ infinite: true
452
+ },
453
+ sorters: [{ name: 'sequence' }]
454
+ };
455
+ }
456
+ async fetchHandler() {
457
+ if (!this.selectedProjectChecklist)
458
+ return { records: [] };
459
+ return {
460
+ records: this.checklistItems
461
+ };
462
+ }
463
+ async _createInspection() {
464
+ var _a, _b, _c, _d, _e, _f;
465
+ if (!this.selectedProjectChecklist) {
466
+ notify({ message: '체크리스트를 선택해주세요.', level: 'warn' });
467
+ return;
468
+ }
469
+ if (!this.checklistItems.length) {
470
+ notify({ message: '체크리스트에 검사 항목이 없습니다.', level: 'warn' });
471
+ return;
472
+ }
473
+ const ctName = this._getConstructionTypeName(this.selectedProjectChecklist.constructionTypeId);
474
+ const cdtName = this._getConstructionDetailTypeName(this.selectedProjectChecklist.constructionDetailTypeId);
475
+ let patch = {};
476
+ patch.buildingLevelId = (_a = this.htmlSelectLevel) === null || _a === void 0 ? void 0 : _a.value;
477
+ patch.checklist = {
478
+ name: this.selectedProjectChecklist.name,
479
+ constructionType: ctName,
480
+ constructionDetailType: cdtName,
481
+ location: `${(_b = this.htmlSelectBuilding) === null || _b === void 0 ? void 0 : _b.displayText} ${(_c = this.htmlSelectLevel) === null || _c === void 0 ? void 0 : _c.displayText}층`,
482
+ inspectionDrawingType: (_d = this.selectedInspectionDrawingType) === null || _d === void 0 ? void 0 : _d.name,
483
+ inspectionParts: this.selectedInspectionParts
484
+ };
485
+ patch.checklistItem = this.checklistItems.map(item => ({
486
+ name: item.name,
487
+ mainType: item.mainType || '',
488
+ detailType: '',
489
+ inspctionCriteria: item.inspctionCriteria || ''
490
+ }));
491
+ const response = await client.mutate({
492
+ mutation: gql `
493
+ mutation CreateBuildingInspection($patch: NewBuildingInspection!) {
494
+ createBuildingInspection(patch: $patch) {
495
+ id
496
+ }
497
+ }
498
+ `,
499
+ variables: {
500
+ patch
501
+ }
502
+ });
503
+ if (!response.errors) {
504
+ notify({ message: '검측을 등록하였습니다.' });
505
+ this.requestRefresh();
506
+ this._close();
507
+ }
508
+ else {
509
+ notify({ message: ((_f = (_e = response.errors) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.message) || '검측 등록에 실패하였습니다.', level: 'error' });
510
+ }
511
+ }
512
+ _onGristWheel(e) {
513
+ const body = this.renderRoot.querySelector('div[body]');
514
+ if (body) {
515
+ body.scrollTop += e.deltaY;
516
+ e.preventDefault();
517
+ }
518
+ }
519
+ requestRefresh() {
520
+ this.dispatchEvent(new CustomEvent('requestRefresh'));
521
+ }
522
+ _close() {
523
+ history.back();
524
+ }
525
+ };
526
+ InspectionWithChecklistCreatePopup.styles = [
527
+ ButtonContainerStyles,
528
+ ScrollbarStyles,
529
+ css `
530
+ :host {
531
+ display: flex;
532
+ flex-direction: column;
533
+ padding: 15px 20px;
534
+
535
+ background-color: var(--md-sys-color-surface);
536
+ }
537
+
538
+ md-filled-select {
539
+ width: auto;
540
+ min-width: 150px;
541
+ --md-filled-select-text-field-container-color: transparent;
542
+ --md-filled-select-text-field-active-indicator-color: #999;
543
+ --md-filled-select-text-field-input-text-size: 14px;
544
+ --md-filled-select-text-field-input-text-weight: bold;
545
+ --md-filled-select-text-field-input-text-line-height: 6px;
546
+ }
547
+ md-filled-select[level] {
548
+ min-width: 110px;
549
+ margin-left: 20px;
550
+ }
551
+ md-filled-select[projectChecklist] {
552
+ min-width: 300px;
553
+ }
554
+
555
+ checklist-view {
556
+ pointer-events: none;
557
+ transform-origin: top left;
558
+ }
559
+
560
+ div[body] {
561
+ height: 100%;
562
+ overflow-y: auto;
563
+
564
+ div[tab-container][inactive] {
565
+ display: none !important;
566
+ }
567
+
568
+ div[edit] {
569
+ width: 100%;
570
+
571
+ div[checklist-select],
572
+ div[checklist-info],
573
+ div[detail] {
574
+ margin-bottom: 30px;
575
+ }
576
+
577
+ h3 {
578
+ position: relative;
579
+ color: #0595e5;
580
+ font-size: 17px;
581
+ font-weight: 700;
582
+ background-color: var(--md-sys-color-surface);
583
+ margin-top: 0;
584
+ margin-bottom: 5px;
585
+ }
586
+
587
+ div[data-row] {
588
+ display: grid;
589
+ grid-template-columns: 100px 1fr 0.3fr 100px 1fr;
590
+ gap: 15px;
591
+ margin-bottom: 11px;
592
+
593
+ & > label {
594
+ display: flex;
595
+ justify-content: flex-end;
596
+ align-items: center;
597
+ font-size: 15px;
598
+ }
599
+
600
+ & > span[info] {
601
+ display: flex;
602
+ align-items: center;
603
+ font-size: 15px;
604
+ font-weight: bold;
605
+ color: #333;
606
+ padding: 4px 0;
607
+ }
608
+
609
+ div[inspection-parts] {
610
+ display: block;
611
+ margin-top: 7px;
612
+
613
+ & > span {
614
+ display: inline-block;
615
+ margin-right: 5px;
616
+ margin-bottom: 5px;
617
+
618
+ & > md-checkbox {
619
+ margin-top: 2px;
620
+ }
621
+ }
622
+ }
623
+ }
624
+
625
+ div[data-row][single] {
626
+ grid-template-columns: 100px 1fr;
627
+ }
628
+ }
629
+
630
+ div[preview] {
631
+ display: flex;
632
+ overflow-y: auto;
633
+ overflow-x: hidden;
634
+ }
635
+ }
636
+
637
+ div[tabs] {
638
+ display: flex;
639
+
640
+ button {
641
+ background-color: #fff;
642
+ padding: 6px 14px;
643
+ color: #999;
644
+ border: solid 1px #999;
645
+ border-top: none;
646
+ border-radius: 0px 0px 8px 8px;
647
+ margin-right: -2px;
648
+ cursor: pointer;
649
+
650
+ &[active] {
651
+ color: var(--button-color, var(--md-sys-color-on-secondary-container));
652
+ font-weight: 600;
653
+ }
654
+ }
655
+ }
656
+
657
+ div[button-container] {
658
+ display: flex;
659
+ justify-content: flex-end;
660
+ gap: 10px;
661
+
662
+ md-elevated-button[blue] {
663
+ --md-elevated-button-container-color: #0595e5;
664
+
665
+ --md-elevated-button-label-text-color: #fff;
666
+ --md-elevated-button-hover-label-text-color: #fff;
667
+ --md-elevated-button-pressed-label-text-color: #fff;
668
+ --md-elevated-button-focus-label-text-color: #fff;
669
+ --md-elevated-button-icon-color: #fff;
670
+ --md-elevated-button-hover-icon-color: #fff;
671
+ --md-elevated-button-pressed-icon-color: #fff;
672
+ --md-elevated-button-focus-icon-color: #fff;
673
+ }
674
+ }
675
+
676
+ div[no-checklist] {
677
+ display: flex;
678
+ align-items: center;
679
+ justify-content: center;
680
+ padding: 20px;
681
+ color: #999;
682
+ font-size: 14px;
683
+ border: 1px dashed #ccc;
684
+ border-radius: 8px;
685
+ }
686
+ `
687
+ ];
688
+ __decorate([
689
+ property({ type: String }),
690
+ __metadata("design:type", String)
691
+ ], InspectionWithChecklistCreatePopup.prototype, "projectId", void 0);
692
+ __decorate([
693
+ property({ type: String }),
694
+ __metadata("design:type", String)
695
+ ], InspectionWithChecklistCreatePopup.prototype, "selectedBuildingId", void 0);
696
+ __decorate([
697
+ property({ type: String }),
698
+ __metadata("design:type", String)
699
+ ], InspectionWithChecklistCreatePopup.prototype, "selectedBuildingLevelId", void 0);
700
+ __decorate([
701
+ state(),
702
+ __metadata("design:type", Object)
703
+ ], InspectionWithChecklistCreatePopup.prototype, "project", void 0);
704
+ __decorate([
705
+ state(),
706
+ __metadata("design:type", Array)
707
+ ], InspectionWithChecklistCreatePopup.prototype, "buildings", void 0);
708
+ __decorate([
709
+ state(),
710
+ __metadata("design:type", Object)
711
+ ], InspectionWithChecklistCreatePopup.prototype, "selectedBuilding", void 0);
712
+ __decorate([
713
+ state(),
714
+ __metadata("design:type", Object)
715
+ ], InspectionWithChecklistCreatePopup.prototype, "selectedLevel", void 0);
716
+ __decorate([
717
+ state(),
718
+ __metadata("design:type", Array)
719
+ ], InspectionWithChecklistCreatePopup.prototype, "constructionTypes", void 0);
720
+ __decorate([
721
+ state(),
722
+ __metadata("design:type", Array)
723
+ ], InspectionWithChecklistCreatePopup.prototype, "allDetailTypes", void 0);
724
+ __decorate([
725
+ state(),
726
+ __metadata("design:type", Array)
727
+ ], InspectionWithChecklistCreatePopup.prototype, "inspectionDrawingTypes", void 0);
728
+ __decorate([
729
+ state(),
730
+ __metadata("design:type", Object)
731
+ ], InspectionWithChecklistCreatePopup.prototype, "selectedInspectionDrawingType", void 0);
732
+ __decorate([
733
+ state(),
734
+ __metadata("design:type", Array)
735
+ ], InspectionWithChecklistCreatePopup.prototype, "selectedInspectionParts", void 0);
736
+ __decorate([
737
+ state(),
738
+ __metadata("design:type", Array)
739
+ ], InspectionWithChecklistCreatePopup.prototype, "projectChecklists", void 0);
740
+ __decorate([
741
+ state(),
742
+ __metadata("design:type", Object)
743
+ ], InspectionWithChecklistCreatePopup.prototype, "selectedProjectChecklist", void 0);
744
+ __decorate([
745
+ state(),
746
+ __metadata("design:type", Array)
747
+ ], InspectionWithChecklistCreatePopup.prototype, "checklistItems", void 0);
748
+ __decorate([
749
+ state(),
750
+ __metadata("design:type", Object)
751
+ ], InspectionWithChecklistCreatePopup.prototype, "checklist", void 0);
752
+ __decorate([
753
+ state(),
754
+ __metadata("design:type", String)
755
+ ], InspectionWithChecklistCreatePopup.prototype, "activeTab", void 0);
756
+ __decorate([
757
+ state(),
758
+ __metadata("design:type", Object)
759
+ ], InspectionWithChecklistCreatePopup.prototype, "gristConfig", void 0);
760
+ __decorate([
761
+ query('md-filled-select[building]'),
762
+ __metadata("design:type", Object)
763
+ ], InspectionWithChecklistCreatePopup.prototype, "htmlSelectBuilding", void 0);
764
+ __decorate([
765
+ query('md-filled-select[level]'),
766
+ __metadata("design:type", Object)
767
+ ], InspectionWithChecklistCreatePopup.prototype, "htmlSelectLevel", void 0);
768
+ __decorate([
769
+ query('md-filled-select[inspectionDrawingType]'),
770
+ __metadata("design:type", Object)
771
+ ], InspectionWithChecklistCreatePopup.prototype, "htmlSelectInspectionDrawingType", void 0);
772
+ __decorate([
773
+ query('md-filled-select[projectChecklist]'),
774
+ __metadata("design:type", Object)
775
+ ], InspectionWithChecklistCreatePopup.prototype, "htmlSelectProjectChecklist", void 0);
776
+ __decorate([
777
+ query('ox-grist'),
778
+ __metadata("design:type", DataGrist)
779
+ ], InspectionWithChecklistCreatePopup.prototype, "grist", void 0);
780
+ __decorate([
781
+ query('div[preview]'),
782
+ __metadata("design:type", HTMLDivElement)
783
+ ], InspectionWithChecklistCreatePopup.prototype, "checklistViewContainer", void 0);
784
+ __decorate([
785
+ query('checklist-view'),
786
+ __metadata("design:type", HTMLElement)
787
+ ], InspectionWithChecklistCreatePopup.prototype, "checklistView", void 0);
788
+ InspectionWithChecklistCreatePopup = __decorate([
789
+ customElement('inspection-with-checklist-create-popup')
790
+ ], InspectionWithChecklistCreatePopup);
791
+ //# sourceMappingURL=inspection-with-checklist-create-popup.js.map