@dssp/supervision 0.0.8 → 0.0.10

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 (224) hide show
  1. package/client/pages/building-inspection/building-inspection-detail-checklist.ts +186 -0
  2. package/client/pages/building-inspection/building-inspection-detail-drawing.ts +160 -0
  3. package/client/pages/building-inspection/building-inspection-list.ts +430 -0
  4. package/client/pages/building-inspection/component/building-inspection-detail-header.ts +94 -0
  5. package/client/pages/building-inspection/inspection-create-popup.ts +696 -0
  6. package/client/pages/checklist/checklist-view.ts +443 -0
  7. package/client/pages/checklist-template/checklist-template-item.ts +240 -0
  8. package/client/pages/checklist-template/checklist-template-list.ts +271 -0
  9. package/client/pages/checklist-template/checklist-type-management.ts +242 -0
  10. package/client/route.ts +14 -18
  11. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.d.ts +21 -0
  12. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js +187 -0
  13. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js.map +1 -0
  14. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.d.ts +21 -0
  15. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js +169 -0
  16. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js.map +1 -0
  17. package/dist-client/pages/building-inspection/building-inspection-list.d.ts +67 -0
  18. package/dist-client/pages/building-inspection/building-inspection-list.js +434 -0
  19. package/dist-client/pages/building-inspection/building-inspection-list.js.map +1 -0
  20. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.d.ts +1 -0
  21. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js +118 -0
  22. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js.map +1 -0
  23. package/dist-client/pages/building-inspection/inspection-create-popup.d.ts +3 -0
  24. package/dist-client/pages/building-inspection/inspection-create-popup.js +735 -0
  25. package/dist-client/pages/building-inspection/inspection-create-popup.js.map +1 -0
  26. package/dist-client/pages/checklist/checklist-view.d.ts +6 -0
  27. package/dist-client/pages/checklist/checklist-view.js +434 -0
  28. package/dist-client/pages/checklist/checklist-view.js.map +1 -0
  29. package/dist-client/pages/checklist-template/checklist-template-item.d.ts +2 -0
  30. package/dist-client/pages/checklist-template/checklist-template-item.js +237 -0
  31. package/dist-client/pages/checklist-template/checklist-template-item.js.map +1 -0
  32. package/dist-client/pages/{check-item/check-item-list-page.d.ts → checklist-template/checklist-template-list.d.ts} +8 -27
  33. package/dist-client/pages/checklist-template/checklist-template-list.js +259 -0
  34. package/dist-client/pages/checklist-template/checklist-template-list.js.map +1 -0
  35. package/dist-client/pages/checklist-template/checklist-type-management.d.ts +48 -0
  36. package/dist-client/pages/checklist-template/checklist-type-management.js +229 -0
  37. package/dist-client/pages/checklist-template/checklist-type-management.js.map +1 -0
  38. package/dist-client/route.d.ts +1 -1
  39. package/dist-client/route.js +10 -13
  40. package/dist-client/route.js.map +1 -1
  41. package/dist-client/tsconfig.tsbuildinfo +1 -1
  42. package/dist-server/index.d.ts +1 -1
  43. package/dist-server/index.js +1 -1
  44. package/dist-server/index.js.map +1 -1
  45. package/dist-server/service/building-inspection/building-inspection-history.d.ts +17 -0
  46. package/dist-server/service/building-inspection/building-inspection-history.js +85 -0
  47. package/dist-server/service/building-inspection/building-inspection-history.js.map +1 -0
  48. package/dist-server/service/building-inspection/building-inspection-mutation.d.ts +8 -0
  49. package/dist-server/service/building-inspection/building-inspection-mutation.js +148 -0
  50. package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -0
  51. package/dist-server/service/building-inspection/building-inspection-query.d.ts +20 -0
  52. package/dist-server/service/building-inspection/building-inspection-query.js +235 -0
  53. package/dist-server/service/building-inspection/building-inspection-query.js.map +1 -0
  54. package/dist-server/service/building-inspection/building-inspection-type.d.ts +43 -0
  55. package/dist-server/service/building-inspection/building-inspection-type.js +153 -0
  56. package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -0
  57. package/dist-server/service/building-inspection/building-inspection.d.ts +26 -0
  58. package/dist-server/service/building-inspection/building-inspection.js +113 -0
  59. package/dist-server/service/building-inspection/building-inspection.js.map +1 -0
  60. package/dist-server/service/building-inspection/event-subscriber.d.ts +7 -0
  61. package/dist-server/service/building-inspection/event-subscriber.js +21 -0
  62. package/dist-server/service/building-inspection/event-subscriber.js.map +1 -0
  63. package/dist-server/service/building-inspection/index.d.ts +10 -0
  64. package/dist-server/service/building-inspection/index.js +14 -0
  65. package/dist-server/service/building-inspection/index.js.map +1 -0
  66. package/dist-server/service/checklist/checklist-history.d.ts +24 -0
  67. package/dist-server/service/checklist/checklist-history.js +120 -0
  68. package/dist-server/service/checklist/checklist-history.js.map +1 -0
  69. package/dist-server/service/checklist/checklist-mutation.d.ts +8 -0
  70. package/dist-server/service/checklist/checklist-mutation.js +96 -0
  71. package/dist-server/service/checklist/checklist-mutation.js.map +1 -0
  72. package/dist-server/service/checklist/checklist-query.d.ts +12 -0
  73. package/dist-server/service/checklist/checklist-query.js +83 -0
  74. package/dist-server/service/checklist/checklist-query.js.map +1 -0
  75. package/dist-server/service/checklist/checklist-type.d.ts +18 -0
  76. package/dist-server/service/checklist/checklist-type.js +69 -0
  77. package/dist-server/service/checklist/checklist-type.js.map +1 -0
  78. package/dist-server/service/checklist/checklist.d.ts +31 -0
  79. package/dist-server/service/checklist/checklist.js +143 -0
  80. package/dist-server/service/checklist/checklist.js.map +1 -0
  81. package/dist-server/service/checklist/event-subscriber.d.ts +7 -0
  82. package/dist-server/service/checklist/event-subscriber.js +21 -0
  83. package/dist-server/service/checklist/event-subscriber.js.map +1 -0
  84. package/dist-server/service/checklist/index.d.ts +8 -0
  85. package/dist-server/service/checklist/index.js +12 -0
  86. package/dist-server/service/checklist/index.js.map +1 -0
  87. package/dist-server/service/checklist-item/checklist-item-mutation.d.ts +2 -0
  88. package/dist-server/service/checklist-item/checklist-item-mutation.js +13 -0
  89. package/dist-server/service/checklist-item/checklist-item-mutation.js.map +1 -0
  90. package/dist-server/service/checklist-item/checklist-item-query.d.ts +10 -0
  91. package/dist-server/service/checklist-item/checklist-item-query.js +68 -0
  92. package/dist-server/service/checklist-item/checklist-item-query.js.map +1 -0
  93. package/dist-server/service/checklist-item/checklist-item-type.d.ts +5 -0
  94. package/dist-server/service/checklist-item/checklist-item-type.js +21 -0
  95. package/dist-server/service/checklist-item/checklist-item-type.js.map +1 -0
  96. package/dist-server/service/checklist-item/checklist-item.d.ts +26 -0
  97. package/dist-server/service/checklist-item/checklist-item.js +113 -0
  98. package/dist-server/service/checklist-item/checklist-item.js.map +1 -0
  99. package/dist-server/service/checklist-item/index.d.ts +5 -0
  100. package/dist-server/service/checklist-item/index.js +10 -0
  101. package/dist-server/service/checklist-item/index.js.map +1 -0
  102. package/dist-server/service/checklist-template/checklist-template-mutation.d.ts +6 -0
  103. package/dist-server/service/checklist-template/checklist-template-mutation.js +64 -0
  104. package/dist-server/service/checklist-template/checklist-template-mutation.js.map +1 -0
  105. package/dist-server/service/checklist-template/checklist-template-query.d.ts +10 -0
  106. package/dist-server/service/checklist-template/checklist-template-query.js +65 -0
  107. package/dist-server/service/checklist-template/checklist-template-query.js.map +1 -0
  108. package/dist-server/service/checklist-template/checklist-template-type.d.ts +10 -0
  109. package/dist-server/service/checklist-template/checklist-template-type.js +39 -0
  110. package/dist-server/service/checklist-template/checklist-template-type.js.map +1 -0
  111. package/dist-server/service/checklist-template/checklist-template.d.ts +17 -0
  112. package/dist-server/service/checklist-template/checklist-template.js +78 -0
  113. package/dist-server/service/checklist-template/checklist-template.js.map +1 -0
  114. package/dist-server/service/checklist-template/index.d.ts +5 -0
  115. package/dist-server/service/checklist-template/index.js +9 -0
  116. package/dist-server/service/checklist-template/index.js.map +1 -0
  117. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.d.ts +7 -0
  118. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js +68 -0
  119. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js.map +1 -0
  120. package/dist-server/service/checklist-template-item/checklist-template-item-query.d.ts +10 -0
  121. package/dist-server/service/checklist-template-item/checklist-template-item-query.js +66 -0
  122. package/dist-server/service/checklist-template-item/checklist-template-item-query.js.map +1 -0
  123. package/dist-server/service/checklist-template-item/checklist-template-item-type.d.ts +16 -0
  124. package/dist-server/service/checklist-template-item/checklist-template-item-type.js +60 -0
  125. package/dist-server/service/checklist-template-item/checklist-template-item-type.js.map +1 -0
  126. package/dist-server/service/checklist-template-item/checklist-template-item.d.ts +19 -0
  127. package/dist-server/service/checklist-template-item/checklist-template-item.js +87 -0
  128. package/dist-server/service/checklist-template-item/checklist-template-item.js.map +1 -0
  129. package/dist-server/service/checklist-template-item/index.d.ts +5 -0
  130. package/dist-server/service/checklist-template-item/index.js +9 -0
  131. package/dist-server/service/checklist-template-item/index.js.map +1 -0
  132. package/dist-server/service/checklist-type/checklist-type-mutation.d.ts +6 -0
  133. package/dist-server/service/checklist-type/checklist-type-mutation.js +64 -0
  134. package/dist-server/service/checklist-type/checklist-type-mutation.js.map +1 -0
  135. package/dist-server/service/checklist-type/checklist-type-query.d.ts +10 -0
  136. package/dist-server/service/checklist-type/checklist-type-query.js +65 -0
  137. package/dist-server/service/checklist-type/checklist-type-query.js.map +1 -0
  138. package/dist-server/service/checklist-type/checklist-type-type.d.ts +11 -0
  139. package/dist-server/service/checklist-type/checklist-type-type.js +43 -0
  140. package/dist-server/service/checklist-type/checklist-type-type.js.map +1 -0
  141. package/dist-server/service/checklist-type/checklist-type.d.ts +19 -0
  142. package/dist-server/service/checklist-type/checklist-type.js +78 -0
  143. package/dist-server/service/checklist-type/checklist-type.js.map +1 -0
  144. package/dist-server/service/checklist-type/index.d.ts +5 -0
  145. package/dist-server/service/checklist-type/index.js +9 -0
  146. package/dist-server/service/checklist-type/index.js.map +1 -0
  147. package/dist-server/service/index.d.ts +8 -3
  148. package/dist-server/service/index.js +25 -5
  149. package/dist-server/service/index.js.map +1 -1
  150. package/dist-server/service/issue/issue.d.ts +1 -3
  151. package/dist-server/service/issue/issue.js +1 -7
  152. package/dist-server/service/issue/issue.js.map +1 -1
  153. package/dist-server/service/supervisor/supervisor.d.ts +1 -3
  154. package/dist-server/service/supervisor/supervisor.js +1 -7
  155. package/dist-server/service/supervisor/supervisor.js.map +1 -1
  156. package/dist-server/tsconfig.tsbuildinfo +1 -1
  157. package/helps/supervision/checklist-item.md +160 -0
  158. package/helps/supervision/checklist.md +160 -0
  159. package/package.json +11 -7
  160. package/server/index.ts +1 -1
  161. package/server/service/building-inspection/building-inspection-history.ts +70 -0
  162. package/server/service/building-inspection/building-inspection-mutation.ts +147 -0
  163. package/server/service/building-inspection/building-inspection-query.ts +202 -0
  164. package/server/service/building-inspection/building-inspection-type.ts +101 -0
  165. package/server/service/building-inspection/building-inspection.ts +106 -0
  166. package/server/service/building-inspection/event-subscriber.ts +20 -0
  167. package/server/service/building-inspection/index.ts +11 -0
  168. package/server/service/checklist/checklist-history.ts +96 -0
  169. package/server/service/checklist/checklist-mutation.ts +103 -0
  170. package/server/service/checklist/checklist-query.ts +52 -0
  171. package/server/service/{check-item/check-item-type.ts → checklist/checklist-type.ts} +6 -18
  172. package/server/service/checklist/checklist.ts +127 -0
  173. package/server/service/checklist/event-subscriber.ts +17 -0
  174. package/server/service/checklist/index.ts +9 -0
  175. package/server/service/checklist-item/checklist-item-mutation.ts +5 -0
  176. package/server/service/checklist-item/checklist-item-query.ts +43 -0
  177. package/server/service/checklist-item/checklist-item-type.ts +12 -0
  178. package/server/service/checklist-item/checklist-item.ts +100 -0
  179. package/server/service/checklist-item/index.ts +7 -0
  180. package/server/service/checklist-template/checklist-template-mutation.ts +66 -0
  181. package/server/service/checklist-template/checklist-template-query.ts +39 -0
  182. package/server/service/checklist-template/checklist-template-type.ts +23 -0
  183. package/server/service/checklist-template/checklist-template.ts +71 -0
  184. package/server/service/checklist-template/index.ts +6 -0
  185. package/server/service/checklist-template-item/checklist-template-item-mutation.ts +64 -0
  186. package/server/service/checklist-template-item/checklist-template-item-query.ts +39 -0
  187. package/server/service/checklist-template-item/checklist-template-item-type.ts +39 -0
  188. package/server/service/checklist-template-item/checklist-template-item.ts +67 -0
  189. package/server/service/checklist-template-item/index.ts +6 -0
  190. package/server/service/checklist-type/checklist-type-mutation.ts +66 -0
  191. package/server/service/checklist-type/checklist-type-query.ts +39 -0
  192. package/server/service/checklist-type/checklist-type-type.ts +26 -0
  193. package/server/service/checklist-type/checklist-type.ts +64 -0
  194. package/server/service/checklist-type/index.ts +6 -0
  195. package/server/service/index.ts +59 -23
  196. package/server/service/issue/issue.ts +1 -6
  197. package/server/service/supervisor/supervisor.ts +1 -6
  198. package/things-factory.config.js +11 -7
  199. package/client/pages/check-item/check-item-importer.ts +0 -94
  200. package/client/pages/check-item/check-item-list-page.ts +0 -340
  201. package/dist-client/pages/check-item/check-item-importer.d.ts +0 -10
  202. package/dist-client/pages/check-item/check-item-importer.js +0 -101
  203. package/dist-client/pages/check-item/check-item-importer.js.map +0 -1
  204. package/dist-client/pages/check-item/check-item-list-page.js +0 -323
  205. package/dist-client/pages/check-item/check-item-list-page.js.map +0 -1
  206. package/dist-server/service/check-item/check-item-mutation.d.ts +0 -10
  207. package/dist-server/service/check-item/check-item-mutation.js +0 -168
  208. package/dist-server/service/check-item/check-item-mutation.js.map +0 -1
  209. package/dist-server/service/check-item/check-item-query.d.ts +0 -12
  210. package/dist-server/service/check-item/check-item-query.js +0 -97
  211. package/dist-server/service/check-item/check-item-query.js.map +0 -1
  212. package/dist-server/service/check-item/check-item-type.d.ts +0 -23
  213. package/dist-server/service/check-item/check-item-type.js +0 -86
  214. package/dist-server/service/check-item/check-item-type.js.map +0 -1
  215. package/dist-server/service/check-item/check-item.d.ts +0 -28
  216. package/dist-server/service/check-item/check-item.js +0 -117
  217. package/dist-server/service/check-item/check-item.js.map +0 -1
  218. package/dist-server/service/check-item/index.d.ts +0 -6
  219. package/dist-server/service/check-item/index.js +0 -10
  220. package/dist-server/service/check-item/index.js.map +0 -1
  221. package/server/service/check-item/check-item-mutation.ts +0 -198
  222. package/server/service/check-item/check-item-query.ts +0 -62
  223. package/server/service/check-item/check-item.ts +0 -111
  224. package/server/service/check-item/index.ts +0 -7
@@ -0,0 +1,434 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@material/web/icon/icon.js';
3
+ import '@operato/data-grist';
4
+ import { CommonGristStyles, CommonButtonStyles, ScrollbarStyles } from '@operato/styles';
5
+ import { PageView, navigate } from '@operato/shell';
6
+ import { css, html } from 'lit';
7
+ import { customElement, query, state } from 'lit/decorators.js';
8
+ import { ScopedElementsMixin } from '@open-wc/scoped-elements';
9
+ import { DataGrist } from '@operato/data-grist';
10
+ import { client } from '@operato/graphql';
11
+ import { notify } from '@operato/layout';
12
+ import gql from 'graphql-tag';
13
+ import { openPopup } from '@operato/layout';
14
+ import './inspection-create-popup';
15
+ import '@operato/event-view/ox-event-view.js';
16
+ export var ChecklistTypeMainType;
17
+ (function (ChecklistTypeMainType) {
18
+ ChecklistTypeMainType["BASIC"] = "10";
19
+ ChecklistTypeMainType["NON_BASIC"] = "20";
20
+ })(ChecklistTypeMainType || (ChecklistTypeMainType = {}));
21
+ export const CHECKLIST_MAIN_TYPE_LIST = {
22
+ [ChecklistTypeMainType.BASIC]: '기본 업무',
23
+ [ChecklistTypeMainType.NON_BASIC]: '기본 외 업무'
24
+ };
25
+ export var BuildingInspectionStatus;
26
+ (function (BuildingInspectionStatus) {
27
+ BuildingInspectionStatus["WAIT"] = "WAIT";
28
+ BuildingInspectionStatus["REQUEST"] = "REQUEST";
29
+ BuildingInspectionStatus["PASS"] = "PASS";
30
+ BuildingInspectionStatus["FAIL"] = "FAIL";
31
+ })(BuildingInspectionStatus || (BuildingInspectionStatus = {}));
32
+ export const BUILDING_INSPECTION_STATUS = {
33
+ [BuildingInspectionStatus.WAIT]: '검측 대기',
34
+ [BuildingInspectionStatus.REQUEST]: '검측 요청',
35
+ [BuildingInspectionStatus.PASS]: '합격',
36
+ [BuildingInspectionStatus.FAIL]: '불합격'
37
+ };
38
+ let BuildingInspectionList = class BuildingInspectionList extends ScopedElementsMixin(PageView) {
39
+ constructor() {
40
+ super(...arguments);
41
+ this.defaultProject = {
42
+ name: '',
43
+ buildingComplex: {
44
+ buildings: []
45
+ }
46
+ };
47
+ this.buildingLevelId = '';
48
+ this.project = Object.assign({}, this.defaultProject);
49
+ this.location = '';
50
+ this.building = {};
51
+ this.drawingImage = '';
52
+ this.buildingInspectionSummary = {};
53
+ }
54
+ get context() {
55
+ return {
56
+ title: '검측 관리',
57
+ actions: [
58
+ Object.assign({ title: '검측 등록', action: this._openCreateInspection.bind(this) }, CommonButtonStyles.submit),
59
+ Object.assign({ title: '삭제', action: this._deleteChecklistType.bind(this) }, CommonButtonStyles.delete)
60
+ ]
61
+ };
62
+ }
63
+ render() {
64
+ return html `
65
+ <div header>
66
+ <h2>${this.project.name} ${this.location}</h2>
67
+ </div>
68
+
69
+ <div body>
70
+ <div top>
71
+ <img drawing src=${this.drawingImage || '/assets/images/img-drawing-default.png'} />
72
+ <div>
73
+ <h3>${this.location} 검측 현황</h3>
74
+ <div inspection-data>
75
+ <div>
76
+ ${Object.entries(BUILDING_INSPECTION_STATUS).map(status => html ` <div>${status[1]} ${this.buildingInspectionSummary[status[0].toLowerCase()]}건</div> `)}
77
+ </div>
78
+ <ox-event-view mode=${'monthly'}> </ox-event-view>
79
+ </div>
80
+ </div>
81
+ </div>
82
+
83
+ <div bottom>
84
+ <ox-grist .mode=${'GRID'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}> </ox-grist>
85
+ </div>
86
+ </div>
87
+ `;
88
+ }
89
+ async pageUpdated(changes, lifecycle) {
90
+ if (this.active) {
91
+ this.buildingLevelId = lifecycle.resourceId || '';
92
+ await this.initProject(this.buildingLevelId);
93
+ this.grist.fetch();
94
+ }
95
+ }
96
+ async initProject(buildingLevelId = '') {
97
+ var _a, _b;
98
+ const response = await client.query({
99
+ query: gql `
100
+ query ProjectByBuildingLevelId($buildingLevelId: String!) {
101
+ projectByBuildingLevelId(buildingLevelId: $buildingLevelId) {
102
+ id
103
+ name
104
+ mainPhoto {
105
+ fullpath
106
+ }
107
+ buildingComplex {
108
+ id
109
+ drawing {
110
+ id
111
+ name
112
+ fullpath
113
+ }
114
+ buildings {
115
+ id
116
+ name
117
+ }
118
+ }
119
+ }
120
+
121
+ buildingInspectionSummaryOfBuildingLevel(buildingLevelId: $buildingLevelId) {
122
+ wait
123
+ request
124
+ pass
125
+ fail
126
+ }
127
+ }
128
+ `,
129
+ variables: {
130
+ buildingLevelId
131
+ }
132
+ });
133
+ if (response.errors)
134
+ return;
135
+ this.project = (_a = response.data) === null || _a === void 0 ? void 0 : _a.projectByBuildingLevelId;
136
+ this.buildingInspectionSummary = (_b = response.data) === null || _b === void 0 ? void 0 : _b.buildingInspectionSummaryOfBuildingLevel;
137
+ // 캘린더 최소 높이 속성 수정
138
+ this.eventView.style.setProperty('--calendar-monthly-date-min-height', '50px');
139
+ }
140
+ async pageInitialized(lifecycle) {
141
+ this.gristConfig = {
142
+ columns: [
143
+ { type: 'gutter', gutterName: 'sequence' },
144
+ { type: 'gutter', gutterName: 'row-selector', multiple: true },
145
+ {
146
+ type: 'string',
147
+ name: 'id',
148
+ hidden: true
149
+ },
150
+ {
151
+ type: 'string',
152
+ name: 'location',
153
+ header: '위치',
154
+ width: 150
155
+ },
156
+ {
157
+ type: 'string',
158
+ name: 'constructionType',
159
+ header: '공종',
160
+ width: 120
161
+ },
162
+ {
163
+ type: 'string',
164
+ name: 'inspectionParts',
165
+ header: '검측 부위',
166
+ record: {
167
+ renderer: value => (value === null || value === void 0 ? void 0 : value.join(', ')) || ''
168
+ },
169
+ width: 200
170
+ },
171
+ {
172
+ type: 'string',
173
+ name: 'requestDate',
174
+ header: '검측 요청일',
175
+ width: 120
176
+ },
177
+ {
178
+ type: 'string',
179
+ name: 'status',
180
+ header: '검측 결과',
181
+ record: {
182
+ renderer: value => BUILDING_INSPECTION_STATUS[value]
183
+ },
184
+ width: 120
185
+ },
186
+ {
187
+ type: 'datetime',
188
+ name: '',
189
+ header: '검측 결과 데이터',
190
+ width: 180
191
+ }
192
+ ],
193
+ rows: {
194
+ selectable: {
195
+ multiple: true
196
+ },
197
+ appendable: false,
198
+ handlers: {
199
+ click: (columns, data, column, record, rowIndex) => {
200
+ navigate(`building-inspection-detail-drawing/${record.id}`);
201
+ }
202
+ }
203
+ },
204
+ sorters: [{ name: 'requestDate' }]
205
+ };
206
+ }
207
+ async fetchHandler({ page = 1, limit = 100, sortings = [], filters = [] }) {
208
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
209
+ if (!this.buildingLevelId)
210
+ return;
211
+ const response = await client.query({
212
+ query: gql `
213
+ query BuildingInspectionsOfBuildingLevel($params: BuildingInspectionsOfBuildingLevel!) {
214
+ buildingInspectionsOfBuildingLevel(params: $params) {
215
+ items {
216
+ id
217
+ status
218
+ requestDate
219
+ buildingLevel {
220
+ floor
221
+ building {
222
+ id
223
+ name
224
+ }
225
+ mainDrawing {
226
+ id
227
+ name
228
+ fullpath
229
+ }
230
+ mainDrawingImage
231
+ }
232
+ checklist {
233
+ checklistId: id
234
+ name
235
+ constructionType
236
+ constructionDetailType
237
+ location
238
+ inspectionParts
239
+ }
240
+ }
241
+ total
242
+ }
243
+ }
244
+ `,
245
+ variables: {
246
+ params: {
247
+ buildingLevelId: this.buildingLevelId,
248
+ limit: 0
249
+ }
250
+ }
251
+ });
252
+ let items = ((_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.buildingInspectionsOfBuildingLevel) === null || _b === void 0 ? void 0 : _b.items) || [];
253
+ items = items.map(item => (Object.assign(Object.assign(Object.assign({}, item), item.checklist), { requestDate: this._formatDate(item.requestDate) })));
254
+ this.location = ((_d = (_c = items[0]) === null || _c === void 0 ? void 0 : _c.checklist) === null || _d === void 0 ? void 0 : _d.location) || '';
255
+ this.drawingImage = ((_f = (_e = items[0]) === null || _e === void 0 ? void 0 : _e.buildingLevel) === null || _f === void 0 ? void 0 : _f.mainDrawingImage) || '';
256
+ this.building = ((_h = (_g = items[0]) === null || _g === void 0 ? void 0 : _g.buildingLevel) === null || _h === void 0 ? void 0 : _h.building) || {};
257
+ return {
258
+ total: ((_k = (_j = response.data) === null || _j === void 0 ? void 0 : _j.buildingInspectionsOfBuildingLevel) === null || _k === void 0 ? void 0 : _k.total) || 0,
259
+ records: items
260
+ };
261
+ }
262
+ async _deleteChecklistType() {
263
+ if (confirm('삭제하시겠습니까?')) {
264
+ const ids = this.grist.selected.map(record => record.id);
265
+ if (ids && ids.length > 0) {
266
+ const response = await client.mutate({
267
+ mutation: gql `
268
+ mutation ($ids: [String!]!) {
269
+ deleteBuildingInspections(ids: $ids)
270
+ }
271
+ `,
272
+ variables: {
273
+ ids
274
+ }
275
+ });
276
+ if (!response.errors) {
277
+ this.grist.fetch();
278
+ notify({ message: '삭제되었습니다.' });
279
+ }
280
+ }
281
+ }
282
+ }
283
+ _openCreateInspection() {
284
+ openPopup(html `
285
+ <inspection-create-popup
286
+ .projectId=${this.project.id}
287
+ .selectedBuildingId=${this.building.id}
288
+ .selectedBuildingLevelId=${this.buildingLevelId}
289
+ @requestRefresh="${() => this.grist.fetch()}"
290
+ ></inspection-create-popup>
291
+ `, {
292
+ backdrop: true,
293
+ size: 'large',
294
+ title: '검측 요청서 등록'
295
+ });
296
+ }
297
+ _formatDate(date) {
298
+ return date
299
+ ? new Intl.DateTimeFormat('en-CA', {
300
+ timeZone: 'Asia/Seoul',
301
+ year: 'numeric',
302
+ month: '2-digit',
303
+ day: '2-digit'
304
+ }).format(new Date(date))
305
+ : '';
306
+ }
307
+ };
308
+ BuildingInspectionList.styles = [
309
+ ScrollbarStyles,
310
+ CommonGristStyles,
311
+ css `
312
+ :host {
313
+ display: grid;
314
+ grid-template-rows: 75px auto;
315
+ color: #4e5055;
316
+
317
+ width: 100%;
318
+ background-color: #f7f7f7;
319
+ overflow-y: auto;
320
+
321
+ --grid-record-emphasized-background-color: red;
322
+ --grid-record-emphasized-color: yellow;
323
+ }
324
+
325
+ md-filled-button {
326
+ --md-filled-button-container-color: #0595e5;
327
+ --md-filled-button-container-height: 30px;
328
+ --md-filled-button-trailing-space: 15px;
329
+ --md-filled-button-leading-space: 15px;
330
+ }
331
+ md-outlined-button {
332
+ --md-outlined-button-container-height: 30px;
333
+ --md-outlined-button-trailing-space: 15px;
334
+ --md-outlined-button-leading-space: 15px;
335
+ }
336
+
337
+ *[bold] {
338
+ font-weight: bold;
339
+ }
340
+
341
+ div[header] {
342
+ display: flex;
343
+ margin: 0px 20px;
344
+
345
+ h2 {
346
+ flex: 0.5;
347
+ color: #3f71a0;
348
+ }
349
+ }
350
+
351
+ div[body] {
352
+ display: flex;
353
+ flex-direction: column;
354
+ margin: 0px 25px 25px 25px;
355
+ gap: 10px;
356
+ min-height: fit-content;
357
+
358
+ h3 {
359
+ color: #2e79be;
360
+ font-size: 18px;
361
+ margin: 0px;
362
+ }
363
+
364
+ & > div {
365
+ display: flex;
366
+ gap: 10px;
367
+ padding: 15px;
368
+ border-radius: 5px;
369
+ }
370
+
371
+ div[top] {
372
+ background-color: #ffffff;
373
+ border: 1px solid #cccccc80;
374
+
375
+ img[drawing] {
376
+ width: 400px;
377
+ height: 400px;
378
+ }
379
+
380
+ div[inspection-data] {
381
+ display: flex;
382
+ }
383
+ }
384
+
385
+ div[bottom] {
386
+ height: auto;
387
+ overflow-y: auto;
388
+ display: flex;
389
+ flex-direction: column;
390
+ }
391
+ }
392
+ `
393
+ ];
394
+ __decorate([
395
+ state(),
396
+ __metadata("design:type", Object)
397
+ ], BuildingInspectionList.prototype, "gristConfig", void 0);
398
+ __decorate([
399
+ state(),
400
+ __metadata("design:type", String)
401
+ ], BuildingInspectionList.prototype, "buildingLevelId", void 0);
402
+ __decorate([
403
+ state(),
404
+ __metadata("design:type", Object)
405
+ ], BuildingInspectionList.prototype, "project", void 0);
406
+ __decorate([
407
+ state(),
408
+ __metadata("design:type", String)
409
+ ], BuildingInspectionList.prototype, "location", void 0);
410
+ __decorate([
411
+ state(),
412
+ __metadata("design:type", Object)
413
+ ], BuildingInspectionList.prototype, "building", void 0);
414
+ __decorate([
415
+ state(),
416
+ __metadata("design:type", String)
417
+ ], BuildingInspectionList.prototype, "drawingImage", void 0);
418
+ __decorate([
419
+ state(),
420
+ __metadata("design:type", Object)
421
+ ], BuildingInspectionList.prototype, "buildingInspectionSummary", void 0);
422
+ __decorate([
423
+ query('ox-grist'),
424
+ __metadata("design:type", DataGrist)
425
+ ], BuildingInspectionList.prototype, "grist", void 0);
426
+ __decorate([
427
+ query('ox-event-view'),
428
+ __metadata("design:type", HTMLElement)
429
+ ], BuildingInspectionList.prototype, "eventView", void 0);
430
+ BuildingInspectionList = __decorate([
431
+ customElement('building-inspection-list')
432
+ ], BuildingInspectionList);
433
+ export { BuildingInspectionList };
434
+ //# sourceMappingURL=building-inspection-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"building-inspection-list.js","sourceRoot":"","sources":["../../../client/pages/building-inspection/building-inspection-list.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/data-grist'\n\nimport { CommonGristStyles, CommonButtonStyles, ScrollbarStyles } from '@operato/styles'\nimport { PageView, navigate } from '@operato/shell'\nimport { css, html } from 'lit'\nimport { PageLifecycle } from '@operato/shell/dist/src/app/pages/page-view'\nimport { customElement, query, state } from 'lit/decorators.js'\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements'\nimport { DataGrist, FetchOption } from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { notify } from '@operato/layout'\nimport gql from 'graphql-tag'\nimport { openPopup } from '@operato/layout'\nimport './inspection-create-popup'\nimport '@operato/event-view/ox-event-view.js'\n\nexport enum ChecklistTypeMainType {\n BASIC = '10',\n NON_BASIC = '20'\n}\nexport const CHECKLIST_MAIN_TYPE_LIST = {\n [ChecklistTypeMainType.BASIC]: '기본 업무',\n [ChecklistTypeMainType.NON_BASIC]: '기본 외 업무'\n}\n\nexport enum BuildingInspectionStatus {\n WAIT = 'WAIT',\n REQUEST = 'REQUEST',\n PASS = 'PASS',\n FAIL = 'FAIL'\n}\nexport const BUILDING_INSPECTION_STATUS = {\n [BuildingInspectionStatus.WAIT]: '검측 대기',\n [BuildingInspectionStatus.REQUEST]: '검측 요청',\n [BuildingInspectionStatus.PASS]: '합격',\n [BuildingInspectionStatus.FAIL]: '불합격'\n}\n\n@customElement('building-inspection-list')\nexport class BuildingInspectionList extends ScopedElementsMixin(PageView) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n css`\n :host {\n display: grid;\n grid-template-rows: 75px auto;\n color: #4e5055;\n\n width: 100%;\n background-color: #f7f7f7;\n overflow-y: auto;\n\n --grid-record-emphasized-background-color: red;\n --grid-record-emphasized-color: yellow;\n }\n\n md-filled-button {\n --md-filled-button-container-color: #0595e5;\n --md-filled-button-container-height: 30px;\n --md-filled-button-trailing-space: 15px;\n --md-filled-button-leading-space: 15px;\n }\n md-outlined-button {\n --md-outlined-button-container-height: 30px;\n --md-outlined-button-trailing-space: 15px;\n --md-outlined-button-leading-space: 15px;\n }\n\n *[bold] {\n font-weight: bold;\n }\n\n div[header] {\n display: flex;\n margin: 0px 20px;\n\n h2 {\n flex: 0.5;\n color: #3f71a0;\n }\n }\n\n div[body] {\n display: flex;\n flex-direction: column;\n margin: 0px 25px 25px 25px;\n gap: 10px;\n min-height: fit-content;\n\n h3 {\n color: #2e79be;\n font-size: 18px;\n margin: 0px;\n }\n\n & > div {\n display: flex;\n gap: 10px;\n padding: 15px;\n border-radius: 5px;\n }\n\n div[top] {\n background-color: #ffffff;\n border: 1px solid #cccccc80;\n\n img[drawing] {\n width: 400px;\n height: 400px;\n }\n\n div[inspection-data] {\n display: flex;\n }\n }\n\n div[bottom] {\n height: auto;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n }\n }\n `\n ]\n\n private defaultProject = {\n name: '',\n buildingComplex: {\n buildings: []\n }\n }\n\n @state() private gristConfig: any\n @state() buildingLevelId: string = ''\n @state() project: any = { ...this.defaultProject }\n @state() location: string = ''\n @state() building: any = {}\n @state() drawingImage: string = ''\n @state() buildingInspectionSummary: any = {}\n\n @query('ox-grist') private grist!: DataGrist\n @query('ox-event-view') private eventView!: HTMLElement\n\n get context() {\n return {\n title: '검측 관리',\n actions: [\n {\n title: '검측 등록',\n action: this._openCreateInspection.bind(this),\n ...CommonButtonStyles.submit\n },\n {\n title: '삭제',\n action: this._deleteChecklistType.bind(this),\n ...CommonButtonStyles.delete\n }\n ]\n }\n }\n\n render() {\n return html`\n <div header>\n <h2>${this.project.name} ${this.location}</h2>\n </div>\n\n <div body>\n <div top>\n <img drawing src=${this.drawingImage || '/assets/images/img-drawing-default.png'} />\n <div>\n <h3>${this.location} 검측 현황</h3>\n <div inspection-data>\n <div>\n ${Object.entries(BUILDING_INSPECTION_STATUS).map(\n status => html` <div>${status[1]} ${this.buildingInspectionSummary[status[0].toLowerCase()]}건</div> `\n )}\n </div>\n <ox-event-view mode=${'monthly'}> </ox-event-view>\n </div>\n </div>\n </div>\n\n <div bottom>\n <ox-grist .mode=${'GRID'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}> </ox-grist>\n </div>\n </div>\n `\n }\n\n async pageUpdated(changes: any, lifecycle: PageLifecycle) {\n if (this.active) {\n this.buildingLevelId = lifecycle.resourceId || ''\n\n await this.initProject(this.buildingLevelId)\n this.grist.fetch()\n }\n }\n\n async initProject(buildingLevelId: string = '') {\n const response = await client.query({\n query: gql`\n query ProjectByBuildingLevelId($buildingLevelId: String!) {\n projectByBuildingLevelId(buildingLevelId: $buildingLevelId) {\n id\n name\n mainPhoto {\n fullpath\n }\n buildingComplex {\n id\n drawing {\n id\n name\n fullpath\n }\n buildings {\n id\n name\n }\n }\n }\n\n buildingInspectionSummaryOfBuildingLevel(buildingLevelId: $buildingLevelId) {\n wait\n request\n pass\n fail\n }\n }\n `,\n variables: {\n buildingLevelId\n }\n })\n\n if (response.errors) return\n\n this.project = response.data?.projectByBuildingLevelId\n this.buildingInspectionSummary = response.data?.buildingInspectionSummaryOfBuildingLevel\n\n // 캘린더 최소 높이 속성 수정\n this.eventView.style.setProperty('--calendar-monthly-date-min-height', '50px')\n }\n\n async pageInitialized(lifecycle: any) {\n this.gristConfig = {\n columns: [\n { type: 'gutter', gutterName: 'sequence' },\n { type: 'gutter', gutterName: 'row-selector', multiple: true },\n {\n type: 'string',\n name: 'id',\n hidden: true\n },\n {\n type: 'string',\n name: 'location',\n header: '위치',\n width: 150\n },\n {\n type: 'string',\n name: 'constructionType',\n header: '공종',\n width: 120\n },\n {\n type: 'string',\n name: 'inspectionParts',\n header: '검측 부위',\n record: {\n renderer: value => value?.join(', ') || ''\n },\n width: 200\n },\n {\n type: 'string',\n name: 'requestDate',\n header: '검측 요청일',\n width: 120\n },\n {\n type: 'string',\n name: 'status',\n header: '검측 결과',\n record: {\n renderer: value => BUILDING_INSPECTION_STATUS[value]\n },\n width: 120\n },\n {\n type: 'datetime',\n name: '',\n header: '검측 결과 데이터',\n width: 180\n }\n ],\n rows: {\n selectable: {\n multiple: true\n },\n appendable: false,\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n navigate(`building-inspection-detail-drawing/${record.id}`)\n }\n }\n },\n sorters: [{ name: 'requestDate' }]\n }\n }\n\n async fetchHandler({ page = 1, limit = 100, sortings = [], filters = [] }: FetchOption) {\n if (!this.buildingLevelId) return\n\n const response = await client.query({\n query: gql`\n query BuildingInspectionsOfBuildingLevel($params: BuildingInspectionsOfBuildingLevel!) {\n buildingInspectionsOfBuildingLevel(params: $params) {\n items {\n id\n status\n requestDate\n buildingLevel {\n floor\n building {\n id\n name\n }\n mainDrawing {\n id\n name\n fullpath\n }\n mainDrawingImage\n }\n checklist {\n checklistId: id\n name\n constructionType\n constructionDetailType\n location\n inspectionParts\n }\n }\n total\n }\n }\n `,\n variables: {\n params: {\n buildingLevelId: this.buildingLevelId,\n limit: 0\n }\n }\n })\n\n let items = response.data?.buildingInspectionsOfBuildingLevel?.items || []\n items = items.map(item => ({\n ...item,\n ...item.checklist,\n requestDate: this._formatDate(item.requestDate)\n }))\n\n this.location = items[0]?.checklist?.location || ''\n this.drawingImage = items[0]?.buildingLevel?.mainDrawingImage || ''\n this.building = items[0]?.buildingLevel?.building || {}\n\n return {\n total: response.data?.buildingInspectionsOfBuildingLevel?.total || 0,\n records: items\n }\n }\n\n private async _deleteChecklistType() {\n if (confirm('삭제하시겠습니까?')) {\n const ids = this.grist.selected.map(record => record.id)\n if (ids && ids.length > 0) {\n const response = await client.mutate({\n mutation: gql`\n mutation ($ids: [String!]!) {\n deleteBuildingInspections(ids: $ids)\n }\n `,\n variables: {\n ids\n }\n })\n\n if (!response.errors) {\n this.grist.fetch()\n notify({ message: '삭제되었습니다.' })\n }\n }\n }\n }\n\n private _openCreateInspection() {\n openPopup(\n html`\n <inspection-create-popup\n .projectId=${this.project.id}\n .selectedBuildingId=${this.building.id}\n .selectedBuildingLevelId=${this.buildingLevelId}\n @requestRefresh=\"${() => this.grist.fetch()}\"\n ></inspection-create-popup>\n `,\n {\n backdrop: true,\n size: 'large',\n title: '검측 요청서 등록'\n }\n )\n }\n\n private _formatDate(date: Date | undefined) {\n return date\n ? new Intl.DateTimeFormat('en-CA', {\n timeZone: 'Asia/Seoul',\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n }).format(new Date(date))\n : ''\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ import '@material/web/icon/icon.js';
@@ -0,0 +1,118 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@material/web/icon/icon.js';
3
+ import { css, html, LitElement } from 'lit';
4
+ import { customElement, property } from 'lit/decorators.js';
5
+ import { ButtonContainerStyles, ScrollbarStyles } from '@operato/styles';
6
+ let buildingInspectionDetailHeader = class buildingInspectionDetailHeader extends LitElement {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.buildingInspectionId = '';
10
+ this.buildingLevelId = '';
11
+ this.projectName = '';
12
+ this.buildingName = '';
13
+ this.buildingLevelFloor = '';
14
+ }
15
+ render() {
16
+ return html `
17
+ <div header>
18
+ <h2>${this.projectName || ''} ${this.buildingName || ''} ${this.buildingLevelFloor || ''}층</h2>
19
+ <div button-container>
20
+ <md-elevated-button href=${`building-inspection-list/${this.buildingLevelId}`}>
21
+ <md-icon slot="icon">assignment</md-icon>검측 리스트
22
+ </md-elevated-button>
23
+ <md-elevated-button href=${`building-inspection-detail-drawing/${this.buildingInspectionId}`}>
24
+ <md-icon slot="icon">assignment</md-icon>검측도면
25
+ </md-elevated-button>
26
+ <md-elevated-button href=${`building-inspection-detail-checklist/${this.buildingInspectionId}`}>
27
+ <md-icon slot="icon">description</md-icon>검측 체크리스트
28
+ </md-elevated-button>
29
+ <md-elevated-button href=${`building-inspection-detail-photo/${this.buildingInspectionId}`}>
30
+ <md-icon slot="icon">description</md-icon>사진촬영
31
+ </md-elevated-button>
32
+ </div>
33
+ </div>
34
+ `;
35
+ }
36
+ };
37
+ buildingInspectionDetailHeader.styles = [
38
+ ButtonContainerStyles,
39
+ ScrollbarStyles,
40
+ css `
41
+ :host {
42
+ }
43
+
44
+ md-filled-button {
45
+ --md-filled-button-container-color: #0595e5;
46
+ --md-filled-button-container-height: 30px;
47
+ --md-filled-button-trailing-space: 15px;
48
+ --md-filled-button-leading-space: 15px;
49
+ }
50
+ md-outlined-button {
51
+ --md-outlined-button-container-height: 30px;
52
+ --md-outlined-button-trailing-space: 15px;
53
+ --md-outlined-button-leading-space: 15px;
54
+ }
55
+
56
+ *[bold] {
57
+ font-weight: bold;
58
+ }
59
+
60
+ div[header] {
61
+ display: flex;
62
+ margin: 0px 20px;
63
+
64
+ h2 {
65
+ flex: 0.5;
66
+ color: #3f71a0;
67
+ }
68
+
69
+ div[button-container] {
70
+ display: flex;
71
+ align-items: center;
72
+ justify-content: end;
73
+ flex: 0.5;
74
+
75
+ md-elevated-button {
76
+ margin: 0px 3px;
77
+
78
+ --md-elevated-button-container-height: 35px;
79
+ --md-elevated-button-label-text-size: 16px;
80
+ --md-elevated-button-container-color: #0595e5;
81
+
82
+ --md-elevated-button-label-text-color: #fff;
83
+ --md-elevated-button-hover-label-text-color: #fff;
84
+ --md-elevated-button-pressed-label-text-color: #fff;
85
+ --md-elevated-button-focus-label-text-color: #fff;
86
+ --md-elevated-button-icon-color: #fff;
87
+ --md-elevated-button-hover-icon-color: #fff;
88
+ --md-elevated-button-pressed-icon-color: #fff;
89
+ --md-elevated-button-focus-icon-color: #fff;
90
+ }
91
+ }
92
+ }
93
+ `
94
+ ];
95
+ __decorate([
96
+ property({ type: String }),
97
+ __metadata("design:type", String)
98
+ ], buildingInspectionDetailHeader.prototype, "buildingInspectionId", void 0);
99
+ __decorate([
100
+ property({ type: String }),
101
+ __metadata("design:type", String)
102
+ ], buildingInspectionDetailHeader.prototype, "buildingLevelId", void 0);
103
+ __decorate([
104
+ property({ type: String }),
105
+ __metadata("design:type", String)
106
+ ], buildingInspectionDetailHeader.prototype, "projectName", void 0);
107
+ __decorate([
108
+ property({ type: String }),
109
+ __metadata("design:type", String)
110
+ ], buildingInspectionDetailHeader.prototype, "buildingName", void 0);
111
+ __decorate([
112
+ property({ type: String }),
113
+ __metadata("design:type", String)
114
+ ], buildingInspectionDetailHeader.prototype, "buildingLevelFloor", void 0);
115
+ buildingInspectionDetailHeader = __decorate([
116
+ customElement('building-inspection-detail-header')
117
+ ], buildingInspectionDetailHeader);
118
+ //# sourceMappingURL=building-inspection-detail-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"building-inspection-detail-header.js","sourceRoot":"","sources":["../../../../client/pages/building-inspection/component/building-inspection-detail-header.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAS,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGxE,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,UAAU;IAAvD;;QA4D8B,yBAAoB,GAAW,EAAE,CAAA;QACjC,oBAAe,GAAW,EAAE,CAAA;QAC5B,gBAAW,GAAW,EAAE,CAAA;QACxB,iBAAY,GAAW,EAAE,CAAA;QACzB,uBAAkB,GAAW,EAAE,CAAA;IAuB7D,CAAC;IArBC,MAAM;QACJ,OAAO,IAAI,CAAA;;cAED,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,IAAI,IAAI,CAAC,kBAAkB,IAAI,EAAE;;qCAE3D,4BAA4B,IAAI,CAAC,eAAe,EAAE;;;qCAGlD,sCAAsC,IAAI,CAAC,oBAAoB,EAAE;;;qCAGjE,wCAAwC,IAAI,CAAC,oBAAoB,EAAE;;;qCAGnE,oCAAoC,IAAI,CAAC,oBAAoB,EAAE;;;;;KAK/F,CAAA;IACH,CAAC;;AArFM,qCAAM,GAAG;IACd,qBAAqB;IACrB,eAAe;IACf,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqDF;CACF,CAAA;AAED;IAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;4EAAkC;AAC7D;IAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;uEAA6B;AACxD;IAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mEAAyB;AACpD;IAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;oEAA0B;AACrD;IAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;0EAAgC;AAhEvD,8BAA8B;IADnC,aAAa,CAAC,mCAAmC,CAAC;GAC7C,8BAA8B,CAuFnC","sourcesContent":["import '@material/web/icon/icon.js'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { ButtonContainerStyles, ScrollbarStyles } from '@operato/styles'\n\n@customElement('building-inspection-detail-header')\nclass buildingInspectionDetailHeader extends LitElement {\n static styles = [\n ButtonContainerStyles,\n ScrollbarStyles,\n css`\n :host {\n }\n\n md-filled-button {\n --md-filled-button-container-color: #0595e5;\n --md-filled-button-container-height: 30px;\n --md-filled-button-trailing-space: 15px;\n --md-filled-button-leading-space: 15px;\n }\n md-outlined-button {\n --md-outlined-button-container-height: 30px;\n --md-outlined-button-trailing-space: 15px;\n --md-outlined-button-leading-space: 15px;\n }\n\n *[bold] {\n font-weight: bold;\n }\n\n div[header] {\n display: flex;\n margin: 0px 20px;\n\n h2 {\n flex: 0.5;\n color: #3f71a0;\n }\n\n div[button-container] {\n display: flex;\n align-items: center;\n justify-content: end;\n flex: 0.5;\n\n md-elevated-button {\n margin: 0px 3px;\n\n --md-elevated-button-container-height: 35px;\n --md-elevated-button-label-text-size: 16px;\n --md-elevated-button-container-color: #0595e5;\n\n --md-elevated-button-label-text-color: #fff;\n --md-elevated-button-hover-label-text-color: #fff;\n --md-elevated-button-pressed-label-text-color: #fff;\n --md-elevated-button-focus-label-text-color: #fff;\n --md-elevated-button-icon-color: #fff;\n --md-elevated-button-hover-icon-color: #fff;\n --md-elevated-button-pressed-icon-color: #fff;\n --md-elevated-button-focus-icon-color: #fff;\n }\n }\n }\n `\n ]\n\n @property({ type: String }) buildingInspectionId: string = ''\n @property({ type: String }) buildingLevelId: string = ''\n @property({ type: String }) projectName: string = ''\n @property({ type: String }) buildingName: string = ''\n @property({ type: String }) buildingLevelFloor: string = ''\n\n render() {\n return html`\n <div header>\n <h2>${this.projectName || ''} ${this.buildingName || ''} ${this.buildingLevelFloor || ''}층</h2>\n <div button-container>\n <md-elevated-button href=${`building-inspection-list/${this.buildingLevelId}`}>\n <md-icon slot=\"icon\">assignment</md-icon>검측 리스트\n </md-elevated-button>\n <md-elevated-button href=${`building-inspection-detail-drawing/${this.buildingInspectionId}`}>\n <md-icon slot=\"icon\">assignment</md-icon>검측도면\n </md-elevated-button>\n <md-elevated-button href=${`building-inspection-detail-checklist/${this.buildingInspectionId}`}>\n <md-icon slot=\"icon\">description</md-icon>검측 체크리스트\n </md-elevated-button>\n <md-elevated-button href=${`building-inspection-detail-photo/${this.buildingInspectionId}`}>\n <md-icon slot=\"icon\">description</md-icon>사진촬영\n </md-elevated-button>\n </div>\n </div>\n `\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import '@material/web/icon/icon.js';
2
+ import '@operato/data-grist/ox-grist.js';
3
+ import '../checklist/checklist-view';