@dssp/supervision 0.0.18 → 0.0.20

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 (70) hide show
  1. package/client/pages/building-inspection/building-inspection-detail-checklist.ts +16 -10
  2. package/client/pages/building-inspection/building-inspection-detail-drawing.ts +17 -5
  3. package/client/pages/building-inspection/building-inspection-list.ts +152 -48
  4. package/client/pages/building-inspection/component/building-inspection-detail-header.ts +4 -1
  5. package/client/pages/building-inspection/component/inspection-event-provider.ts +32 -0
  6. package/client/pages/building-inspection/inspection-create-popup.ts +186 -124
  7. package/client/pages/checklist/checklist-view.ts +13 -29
  8. package/client/pages/checklist-template/checklist-template-list.ts +106 -9
  9. package/client/pages/checklist-template/checklist-type-management.ts +34 -14
  10. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.d.ts +1 -3
  11. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js +12 -8
  12. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js.map +1 -1
  13. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.d.ts +1 -0
  14. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js +21 -10
  15. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js.map +1 -1
  16. package/dist-client/pages/building-inspection/building-inspection-list.d.ts +5 -1
  17. package/dist-client/pages/building-inspection/building-inspection-list.js +151 -47
  18. package/dist-client/pages/building-inspection/building-inspection-list.js.map +1 -1
  19. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js +4 -1
  20. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js.map +1 -1
  21. package/dist-client/pages/building-inspection/component/inspection-event-provider.d.ts +6 -0
  22. package/dist-client/pages/building-inspection/component/inspection-event-provider.js +26 -0
  23. package/dist-client/pages/building-inspection/component/inspection-event-provider.js.map +1 -0
  24. package/dist-client/pages/building-inspection/inspection-create-popup.js +162 -97
  25. package/dist-client/pages/building-inspection/inspection-create-popup.js.map +1 -1
  26. package/dist-client/pages/checklist/checklist-view.js +9 -38
  27. package/dist-client/pages/checklist/checklist-view.js.map +1 -1
  28. package/dist-client/pages/checklist-template/checklist-template-list.d.ts +10 -1
  29. package/dist-client/pages/checklist-template/checklist-template-list.js +99 -9
  30. package/dist-client/pages/checklist-template/checklist-template-list.js.map +1 -1
  31. package/dist-client/pages/checklist-template/checklist-type-management.d.ts +8 -1
  32. package/dist-client/pages/checklist-template/checklist-type-management.js +35 -14
  33. package/dist-client/pages/checklist-template/checklist-type-management.js.map +1 -1
  34. package/dist-client/route.d.ts +1 -1
  35. package/dist-client/tsconfig.tsbuildinfo +1 -1
  36. package/dist-server/service/building-inspection/building-inspection-history.d.ts +1 -1
  37. package/dist-server/service/building-inspection/building-inspection-history.js +3 -5
  38. package/dist-server/service/building-inspection/building-inspection-history.js.map +1 -1
  39. package/dist-server/service/building-inspection/building-inspection-mutation.js +0 -1
  40. package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -1
  41. package/dist-server/service/building-inspection/building-inspection-query.d.ts +1 -0
  42. package/dist-server/service/building-inspection/building-inspection-query.js +32 -4
  43. package/dist-server/service/building-inspection/building-inspection-query.js.map +1 -1
  44. package/dist-server/service/building-inspection/building-inspection-type.d.ts +1 -0
  45. package/dist-server/service/building-inspection/building-inspection-type.js +4 -0
  46. package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -1
  47. package/dist-server/service/building-inspection/building-inspection.d.ts +1 -1
  48. package/dist-server/service/building-inspection/building-inspection.js +3 -3
  49. package/dist-server/service/building-inspection/building-inspection.js.map +1 -1
  50. package/dist-server/service/checklist/checklist-query.d.ts +2 -0
  51. package/dist-server/service/checklist/checklist-query.js +11 -0
  52. package/dist-server/service/checklist/checklist-query.js.map +1 -1
  53. package/dist-server/service/checklist-template-item/checklist-template-item-query.d.ts +1 -0
  54. package/dist-server/service/checklist-template-item/checklist-template-item-query.js +12 -0
  55. package/dist-server/service/checklist-template-item/checklist-template-item-query.js.map +1 -1
  56. package/dist-server/service/checklist-template-item/checklist-template-item.js +2 -1
  57. package/dist-server/service/checklist-template-item/checklist-template-item.js.map +1 -1
  58. package/dist-server/service/checklist-type/checklist-type-query.js +1 -1
  59. package/dist-server/service/checklist-type/checklist-type-query.js.map +1 -1
  60. package/dist-server/tsconfig.tsbuildinfo +1 -1
  61. package/package.json +4 -4
  62. package/server/service/building-inspection/building-inspection-history.ts +3 -5
  63. package/server/service/building-inspection/building-inspection-mutation.ts +0 -1
  64. package/server/service/building-inspection/building-inspection-query.ts +31 -4
  65. package/server/service/building-inspection/building-inspection-type.ts +3 -0
  66. package/server/service/building-inspection/building-inspection.ts +3 -4
  67. package/server/service/checklist/checklist-query.ts +6 -0
  68. package/server/service/checklist-template-item/checklist-template-item-query.ts +8 -3
  69. package/server/service/checklist-template-item/checklist-template-item.ts +2 -1
  70. package/server/service/checklist-type/checklist-type-query.ts +1 -1
@@ -1,9 +1,9 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import '@material/web/icon/icon.js';
3
3
  import { css, html, LitElement } from 'lit';
4
- import { customElement, property, query } from 'lit/decorators.js';
4
+ import { customElement, property } from 'lit/decorators.js';
5
5
  import { ButtonContainerStyles, ScrollbarStyles } from '@operato/styles';
6
- import { CHECKLIST_MAIN_TYPE_LIST, BuildingInspectionStatus } from '../building-inspection/building-inspection-list';
6
+ import { CHECKLIST_MAIN_TYPE_LIST, BuildingInspectionStatus, BUILDING_INSPECTION_STATUS } from '../building-inspection/building-inspection-list';
7
7
  import '@operato/input/ox-input-signature.js';
8
8
  let ChecklistView = class ChecklistView extends LitElement {
9
9
  constructor() {
@@ -13,7 +13,7 @@ let ChecklistView = class ChecklistView extends LitElement {
13
13
  this.status = BuildingInspectionStatus.WAIT;
14
14
  }
15
15
  render() {
16
- var _a, _b, _c, _d, _e;
16
+ var _a, _b, _c, _d, _e, _f, _g;
17
17
  const today = this._getDate(new Date());
18
18
  const isConstructorStep = this.status == BuildingInspectionStatus.WAIT || this.status == BuildingInspectionStatus.FAIL;
19
19
  const isSupervisoryStep = this.status == BuildingInspectionStatus.REQUEST;
@@ -33,7 +33,6 @@ let ChecklistView = class ChecklistView extends LitElement {
33
33
  return a.sequence - b.sequence;
34
34
  });
35
35
  const processedItems = this.drawChecklistItems(((_c = this.checklist) === null || _c === void 0 ? void 0 : _c.checklistItems) || []);
36
- console.log('this.checklist :', this.checklist);
37
36
  return html `
38
37
  <div wrapper>
39
38
  <div name>${this.checklist.name}</div>
@@ -54,8 +53,8 @@ let ChecklistView = class ChecklistView extends LitElement {
54
53
  <tr>
55
54
  <th>검측 부위</th>
56
55
  <td>${((_e = (_d = this.checklist) === null || _d === void 0 ? void 0 : _d.inspectionParts) === null || _e === void 0 ? void 0 : _e.join(', ')) || ''}</td>
57
- <th></th>
58
- <td></td>
56
+ <th>검측 상태</th>
57
+ <td>${BUILDING_INSPECTION_STATUS[(_g = (_f = this.checklist) === null || _f === void 0 ? void 0 : _f.buildingInspection) === null || _g === void 0 ? void 0 : _g.status]}</td>
59
58
  </tr>
60
59
  </table>
61
60
 
@@ -152,7 +151,7 @@ let ChecklistView = class ChecklistView extends LitElement {
152
151
  <td>
153
152
  <span sign-text>(인)</span>
154
153
  <ox-input-signature
155
- .value=${this.checklist.overallConstructorSignature || ''}
154
+ .value=${this.checklist.overallConstructorSignature}
156
155
  name="overallConstructorSignature"
157
156
  @change=${this._onChangeSignature}
158
157
  ?disabled=${!isConstructorStep}
@@ -165,7 +164,7 @@ let ChecklistView = class ChecklistView extends LitElement {
165
164
  <td>
166
165
  <span sign-text>(인)</span>
167
166
  <ox-input-signature
168
- .value=${this.checklist.taskConstructorSignature || ''}
167
+ .value=${this.checklist.taskConstructorSignature}
169
168
  name="taskConstructorSignature"
170
169
  @change=${this._onChangeSignature}
171
170
  ?disabled=${!isConstructorStep}
@@ -182,7 +181,7 @@ let ChecklistView = class ChecklistView extends LitElement {
182
181
  <td>
183
182
  <span sign-text>(인)</span>
184
183
  <ox-input-signature
185
- .value=${this.checklist.overallSupervisorySignature || ''}
184
+ .value=${this.checklist.overallSupervisorySignature}
186
185
  name="overallSupervisorySignature"
187
186
  @change=${this._onChangeSignature}
188
187
  ?disabled=${!isSupervisoryStep}
@@ -195,7 +194,7 @@ let ChecklistView = class ChecklistView extends LitElement {
195
194
  <td>
196
195
  <span sign-text>(인)</span>
197
196
  <ox-input-signature
198
- .value=${this.checklist.taskSupervisorySignature || ''}
197
+ .value=${this.checklist.taskSupervisorySignature}
199
198
  name="taskSupervisorySignature"
200
199
  @change=${this._onChangeSignature}
201
200
  ?disabled=${!isSupervisoryStep}
@@ -216,18 +215,6 @@ let ChecklistView = class ChecklistView extends LitElement {
216
215
  </div>
217
216
  `;
218
217
  }
219
- // updated(_changed: PropertyValues): void {
220
- // if (_changed.has('checklist')) {
221
- // if (this.checklist?.overallConstructorSignature)
222
- // this.elOverallConstructorSignature.loadSignature(this.checklist?.overallConstructorSignature)
223
- // if (this.checklist?.taskConstructorSignature)
224
- // this.elTaskConstructorSignature.loadSignature(this.checklist?.taskConstructorSignature)
225
- // if (this.checklist?.overallSupervisorySignature)
226
- // this.elOverallSupervisorySignature.loadSignature(this.checklist?.overallSupervisorySignature)
227
- // if (this.checklist?.taskSupervisorySignature)
228
- // this.elTaskSupervisorySignature.loadSignature(this.checklist?.taskSupervisorySignature)
229
- // }
230
- // }
231
218
  _onChangeConfirmStatus(e) {
232
219
  var _a, _b;
233
220
  const target = e.target;
@@ -445,22 +432,6 @@ __decorate([
445
432
  property({ type: String }),
446
433
  __metadata("design:type", String)
447
434
  ], ChecklistView.prototype, "status", void 0);
448
- __decorate([
449
- query('ox-input-signature[name="overallConstructorSignature"]'),
450
- __metadata("design:type", Object)
451
- ], ChecklistView.prototype, "elOverallConstructorSignature", void 0);
452
- __decorate([
453
- query('ox-input-signature[name="taskConstructorSignature"]'),
454
- __metadata("design:type", Object)
455
- ], ChecklistView.prototype, "elTaskConstructorSignature", void 0);
456
- __decorate([
457
- query('ox-input-signature[name="overallSupervisorySignature"]'),
458
- __metadata("design:type", Object)
459
- ], ChecklistView.prototype, "elOverallSupervisorySignature", void 0);
460
- __decorate([
461
- query('ox-input-signature[name="taskSupervisorySignature"]'),
462
- __metadata("design:type", Object)
463
- ], ChecklistView.prototype, "elTaskSupervisorySignature", void 0);
464
435
  ChecklistView = __decorate([
465
436
  customElement('checklist-view')
466
437
  ], ChecklistView);
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-view.js","sourceRoot":"","sources":["../../../client/pages/checklist/checklist-view.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport { css, html, LitElement, PropertyValues } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ButtonContainerStyles, ScrollbarStyles } from '@operato/styles'\nimport { CHECKLIST_MAIN_TYPE_LIST, BuildingInspectionStatus } from '../building-inspection/building-inspection-list'\nimport '@operato/input/ox-input-signature.js'\n\nexport const enum ChecklistMode {\n VIEWER = 'VIEWER',\n EDITOR = 'EDITOR'\n}\n\n@customElement('checklist-view')\nclass ChecklistView extends LitElement {\n static styles = [\n ButtonContainerStyles,\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n font-size: 14px;\n padding: 20px;\n min-width: 800px;\n\n background-color: var(--md-sys-color-surface);\n }\n\n [bold] {\n font-weight: bold;\n }\n\n div[name] {\n display: flex;\n color: #586878;\n font-size: 24px;\n font-weight: bold;\n align-items: center;\n justify-content: center;\n }\n\n table {\n width: 100%;\n font-size: 15px;\n color: #586878;\n text-align: left;\n border-collapse: collapse;\n td,\n th {\n border: 1px #999999 solid;\n padding-inline: 8px;\n }\n th {\n background-color: #efefef;\n font-weight: bold;\n }\n td {\n height: 35px;\n &[radio] {\n text-align: center;\n vertical-align: middle;\n width: 55px;\n }\n &[attachment] {\n width: 90px;\n }\n }\n }\n\n table[header] {\n margin-top: 5px;\n\n td {\n min-width: 180px;\n border-left: none;\n }\n th {\n width: 110px;\n border-right: none;\n }\n }\n\n table[body] {\n border: 2px solid #999999;\n border-bottom: none;\n margin-top: 10px;\n\n th {\n text-align: center;\n\n &[type] {\n min-width: 150px;\n }\n &[inspection-name] {\n min-width: 250px;\n }\n &[result] {\n width: 270px;\n }\n &[criteria] {\n width: 90px;\n }\n &[small] {\n width: 60px;\n }\n }\n td {\n &[main-type] {\n width: 50px;\n text-align: center;\n word-break: keep-all;\n }\n }\n }\n\n table[tail] {\n border: 2px solid #999999;\n border-top: none;\n margin-top: -1px;\n\n tr[first] td {\n border-top: none;\n }\n td {\n width: 25%;\n border-left: none;\n text-align: center;\n position: relative;\n }\n th {\n width: 25%;\n border-right: none;\n }\n\n span[sign-text] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n }\n ox-input-signature {\n margin: 10px;\n\n &[disabled] {\n background: #eee;\n }\n }\n }\n\n div[footer] {\n display: flex;\n flex-direction: column;\n gap: 3px;\n font-size: 12px;\n margin-top: 10px;\n color: #586878;\n text-indent: -9px;\n padding-left: 9px;\n }\n `\n ]\n\n @property({ type: String }) mode: ChecklistMode = ChecklistMode.VIEWER\n @property({ type: Object }) checklist: any = {}\n @property({ type: String }) status: BuildingInspectionStatus = BuildingInspectionStatus.WAIT\n\n @query('ox-input-signature[name=\"overallConstructorSignature\"]') private elOverallConstructorSignature\n @query('ox-input-signature[name=\"taskConstructorSignature\"]') private elTaskConstructorSignature\n @query('ox-input-signature[name=\"overallSupervisorySignature\"]') private elOverallSupervisorySignature\n @query('ox-input-signature[name=\"taskSupervisorySignature\"]') private elTaskSupervisorySignature\n\n render() {\n const today = this._getDate(new Date())\n const isConstructorStep = this.status == BuildingInspectionStatus.WAIT || this.status == BuildingInspectionStatus.FAIL\n const isSupervisoryStep = this.status == BuildingInspectionStatus.REQUEST\n\n // 체크리스트 아이템 정렬\n this.checklist?.checklistItems?.sort((a, b) => {\n // 1순위: mainType 오름차순\n if (a.mainType < b.mainType) return -1\n if (a.mainType > b.mainType) return 1\n\n // 2순위: detailType 오름차순\n if (a.detailType < b.detailType) return -1\n if (a.detailType > b.detailType) return 1\n\n // 3순위: sequence 오름차순\n return a.sequence - b.sequence\n })\n\n const processedItems = this.drawChecklistItems(this.checklist?.checklistItems || [])\n\n console.log('this.checklist :', this.checklist)\n\n return html`\n <div wrapper>\n <div name>${this.checklist.name}</div>\n\n <table header>\n <tr>\n <th>공종</th>\n <td>${this.checklist.constructionType}</td>\n <th>문서 번호</th>\n <td>${this.checklist.documentNo}</td>\n </tr>\n <tr>\n <th>세부 공종</th>\n <td>${this.checklist.constructionDetailType}</td>\n <th>위치 및 부위</th>\n <td>${this.checklist.location}</td>\n </tr>\n <tr>\n <th>검측 부위</th>\n <td>${this.checklist?.inspectionParts?.join(', ') || ''}</td>\n <th></th>\n <td></td>\n </tr>\n </table>\n\n <table body>\n <thead>\n <tr>\n <th colspan=\"2\" rowspan=\"3\" type>구분</th>\n <th rowspan=\"3\" inspection-name>검사항목</th>\n <th rowspan=\"3\" criteria>검사기준</th>\n <th colspan=\"4\" result>검사결과</th>\n <th rowspan=\"3\" small>첨부자료</th>\n <th rowspan=\"3\" small>조치사항</th>\n </tr>\n <tr>\n <th colspan=\"2\">시공자</th>\n <th colspan=\"2\">감리자</th>\n </tr>\n <tr>\n <th>적합</th>\n <th>부적합</th>\n <th>적합</th>\n <th>부적합</th>\n </tr>\n </thead>\n <tbody>\n ${processedItems.map(({ item, showMainTypeCell, mainTypeRowspan, showDetailTypeCell, detailTypeRowspan }, idx) => {\n return html` <tr>\n ${showMainTypeCell\n ? html`<td main-type bold rowspan=\"${mainTypeRowspan}\">${CHECKLIST_MAIN_TYPE_LIST[item.mainType]}</td>`\n : ''}\n ${showDetailTypeCell ? html` <td bold rowspan=\"${detailTypeRowspan}\">${item.detailType}</td> ` : ''}\n\n <td bold>${idx + 1}. ${item.name}</td>\n <td>${item.inspctionCriteria}</td>\n <td radio>\n <md-radio\n item-id=${item.id}\n item-name=\"constructionConfirmStatus\"\n name=${'radio-construction-' + item.id}\n value=\"T\"\n .checked=${item.constructionConfirmStatus === 'T'}\n ?disabled=${!isConstructorStep}\n @change=${this._onChangeConfirmStatus}\n ></md-radio>\n </td>\n <td radio>\n <md-radio\n item-id=${item.id}\n item-name=\"constructionConfirmStatus\"\n name=${'radio-construction-' + item.id}\n value=\"F\"\n .checked=${item.constructionConfirmStatus === 'F'}\n ?disabled=${!isConstructorStep}\n @change=${this._onChangeConfirmStatus}\n ></md-radio>\n </td>\n <td radio>\n <md-radio\n item-id=${item.id}\n item-name=\"supervisoryConfirmStatus\"\n name=${'radio-supervisory-' + item.id}\n value=\"T\"\n .checked=${item.supervisoryConfirmStatus === 'T'}\n ?disabled=${!isSupervisoryStep}\n @change=${this._onChangeConfirmStatus}\n ></md-radio>\n </td>\n <td radio>\n <md-radio\n item-id=${item.id}\n item-name=\"supervisoryConfirmStatus\"\n name=${'radio-supervisory-' + item.id}\n value=\"F\"\n .checked=${item.supervisoryConfirmStatus === 'F'}\n ?disabled=${!isSupervisoryStep}\n @change=${this._onChangeConfirmStatus}\n ></md-radio>\n </td>\n <td attachment></td>\n <td></td>\n </tr>`\n })}\n </tbody>\n </table>\n\n <table tail>\n <tbody>\n <tr first>\n <th rowspan=\"2\">시공자점검일</th>\n <td rowspan=\"2\">\n ${this.mode == ChecklistMode.VIEWER ? today : this._getDate(this.checklist.constructionInspectionDate)}\n </td>\n <th>총괄 시공책임자</th>\n <td>\n <span sign-text>(인)</span>\n <ox-input-signature\n .value=${this.checklist.overallConstructorSignature || ''}\n name=\"overallConstructorSignature\"\n @change=${this._onChangeSignature}\n ?disabled=${!isConstructorStep}\n >\n </ox-input-signature>\n </td>\n </tr>\n <tr>\n <th>공종별 시공관리자</th>\n <td>\n <span sign-text>(인)</span>\n <ox-input-signature\n .value=${this.checklist.taskConstructorSignature || ''}\n name=\"taskConstructorSignature\"\n @change=${this._onChangeSignature}\n ?disabled=${!isConstructorStep}\n >\n </ox-input-signature>\n </td>\n </tr>\n <tr>\n <th rowspan=\"2\">감리자점검일</th>\n <td rowspan=\"2\">\n ${this.mode == ChecklistMode.VIEWER ? today : this._getDate(this.checklist.supervisorInspectionDate)}\n </td>\n <th>총괄 감리책임자</th>\n <td>\n <span sign-text>(인)</span>\n <ox-input-signature\n .value=${this.checklist.overallSupervisorySignature || ''}\n name=\"overallSupervisorySignature\"\n @change=${this._onChangeSignature}\n ?disabled=${!isSupervisoryStep}\n >\n </ox-input-signature>\n </td>\n </tr>\n <tr>\n <th>공종별 감리 책임자</th>\n <td>\n <span sign-text>(인)</span>\n <ox-input-signature\n .value=${this.checklist.taskSupervisorySignature || ''}\n name=\"taskSupervisorySignature\"\n @change=${this._onChangeSignature}\n ?disabled=${!isSupervisoryStep}\n >\n </ox-input-signature>\n </td>\n </tr>\n </tbody>\n </table>\n\n <div footer>\n <div>\n - 검사결과는 1차, 2차로 구분 재검측시 2차에 기록하고 검사기준도 검사결과와 비교될 수 있도록 시방서 또는 도면 등에 있는\n 수치를 작성하며, 수치가 없는 검사항목은 시방서 또는 설계도서에 있는 내용과 검사한 내용으로 작성함\n </div>\n <div>- 검사항목 및 검사기준은 각 공종별로 감리원과 협의하여 작성할 것</div>\n </div>\n </div>\n `\n }\n\n // updated(_changed: PropertyValues): void {\n // if (_changed.has('checklist')) {\n // if (this.checklist?.overallConstructorSignature)\n // this.elOverallConstructorSignature.loadSignature(this.checklist?.overallConstructorSignature)\n // if (this.checklist?.taskConstructorSignature)\n // this.elTaskConstructorSignature.loadSignature(this.checklist?.taskConstructorSignature)\n // if (this.checklist?.overallSupervisorySignature)\n // this.elOverallSupervisorySignature.loadSignature(this.checklist?.overallSupervisorySignature)\n // if (this.checklist?.taskSupervisorySignature)\n // this.elTaskSupervisorySignature.loadSignature(this.checklist?.taskSupervisorySignature)\n // }\n // }\n\n private _onChangeConfirmStatus(e: Event) {\n const target = e.target as HTMLInputElement\n const itemId = target.getAttribute('item-id')\n const name = target.getAttribute('item-name') || ''\n const value = target.value\n\n this.checklist.checklistItems = this.checklist?.checklistItems?.map(item =>\n item.id == itemId ? { ...item, [name]: value } : item\n )\n }\n\n private _onChangeSignature(e: Event) {\n const target = e.target as HTMLInputElement\n\n this.checklist[target.name] = target.value\n }\n\n private _getDate(date) {\n if (!date) return ' 년 월 일'\n\n const _date = new Date(date) || new Date()\n return _date.toLocaleDateString('ko-KR', {\n timeZone: 'Asia/Seoul',\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n })\n }\n\n private drawChecklistItems(checklistItems) {\n const mainTypeRowspans = {}\n const detailTypeRowspans = {}\n let previousMainType = null\n let previousDetailType = null\n\n return checklistItems.map((item, index) => {\n const mainType = item.mainType\n const detailType = item.detailType\n\n // mainType이 변경되면 rowspan을 계산\n if (mainType !== previousMainType) {\n mainTypeRowspans[mainType] = checklistItems.filter(i => i.mainType === mainType).length\n previousDetailType = null // detailType 초기화\n }\n\n // detailType이 변경되면 rowspan을 계산\n if (detailType !== previousDetailType) {\n detailTypeRowspans[`${mainType}-${detailType}`] = checklistItems.filter(\n i => i.mainType === mainType && i.detailType === detailType\n ).length\n }\n\n const showMainTypeCell = mainType !== previousMainType\n const showDetailTypeCell = detailType !== previousDetailType\n\n const mainTypeRowspan = mainTypeRowspans[mainType]\n const detailTypeRowspan = detailTypeRowspans[`${mainType}-${detailType}`]\n\n // 이전 값을 업데이트\n previousMainType = mainType\n previousDetailType = detailType\n\n return {\n item,\n showMainTypeCell,\n mainTypeRowspan,\n showDetailTypeCell,\n detailTypeRowspan\n }\n })\n }\n}\n"]}
1
+ {"version":3,"file":"checklist-view.js","sourceRoot":"","sources":["../../../client/pages/checklist/checklist-view.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ButtonContainerStyles, ScrollbarStyles } from '@operato/styles'\nimport {\n CHECKLIST_MAIN_TYPE_LIST,\n BuildingInspectionStatus,\n BUILDING_INSPECTION_STATUS\n} from '../building-inspection/building-inspection-list'\nimport '@operato/input/ox-input-signature.js'\n\nexport const enum ChecklistMode {\n VIEWER = 'VIEWER',\n EDITOR = 'EDITOR'\n}\n\n@customElement('checklist-view')\nclass ChecklistView extends LitElement {\n static styles = [\n ButtonContainerStyles,\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n font-size: 14px;\n padding: 20px;\n min-width: 800px;\n\n background-color: var(--md-sys-color-surface);\n }\n\n [bold] {\n font-weight: bold;\n }\n\n div[name] {\n display: flex;\n color: #586878;\n font-size: 24px;\n font-weight: bold;\n align-items: center;\n justify-content: center;\n }\n\n table {\n width: 100%;\n font-size: 15px;\n color: #586878;\n text-align: left;\n border-collapse: collapse;\n td,\n th {\n border: 1px #999999 solid;\n padding-inline: 8px;\n }\n th {\n background-color: #efefef;\n font-weight: bold;\n }\n td {\n height: 35px;\n &[radio] {\n text-align: center;\n vertical-align: middle;\n width: 55px;\n }\n &[attachment] {\n width: 90px;\n }\n }\n }\n\n table[header] {\n margin-top: 5px;\n\n td {\n min-width: 180px;\n border-left: none;\n }\n th {\n width: 110px;\n border-right: none;\n }\n }\n\n table[body] {\n border: 2px solid #999999;\n border-bottom: none;\n margin-top: 10px;\n\n th {\n text-align: center;\n\n &[type] {\n min-width: 150px;\n }\n &[inspection-name] {\n min-width: 250px;\n }\n &[result] {\n width: 270px;\n }\n &[criteria] {\n width: 90px;\n }\n &[small] {\n width: 60px;\n }\n }\n td {\n &[main-type] {\n width: 50px;\n text-align: center;\n word-break: keep-all;\n }\n }\n }\n\n table[tail] {\n border: 2px solid #999999;\n border-top: none;\n margin-top: -1px;\n\n tr[first] td {\n border-top: none;\n }\n td {\n width: 25%;\n border-left: none;\n text-align: center;\n position: relative;\n }\n th {\n width: 25%;\n border-right: none;\n }\n\n span[sign-text] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n }\n ox-input-signature {\n margin: 10px;\n\n &[disabled] {\n background: #eee;\n }\n }\n }\n\n div[footer] {\n display: flex;\n flex-direction: column;\n gap: 3px;\n font-size: 12px;\n margin-top: 10px;\n color: #586878;\n text-indent: -9px;\n padding-left: 9px;\n }\n `\n ]\n\n @property({ type: String }) mode: ChecklistMode = ChecklistMode.VIEWER\n @property({ type: Object }) checklist: any = {}\n @property({ type: String }) status: BuildingInspectionStatus = BuildingInspectionStatus.WAIT\n\n render() {\n const today = this._getDate(new Date())\n const isConstructorStep = this.status == BuildingInspectionStatus.WAIT || this.status == BuildingInspectionStatus.FAIL\n const isSupervisoryStep = this.status == BuildingInspectionStatus.REQUEST\n\n // 체크리스트 아이템 정렬\n this.checklist?.checklistItems?.sort((a, b) => {\n // 1순위: mainType 오름차순\n if (a.mainType < b.mainType) return -1\n if (a.mainType > b.mainType) return 1\n\n // 2순위: detailType 오름차순\n if (a.detailType < b.detailType) return -1\n if (a.detailType > b.detailType) return 1\n\n // 3순위: sequence 오름차순\n return a.sequence - b.sequence\n })\n\n const processedItems = this.drawChecklistItems(this.checklist?.checklistItems || [])\n\n return html`\n <div wrapper>\n <div name>${this.checklist.name}</div>\n\n <table header>\n <tr>\n <th>공종</th>\n <td>${this.checklist.constructionType}</td>\n <th>문서 번호</th>\n <td>${this.checklist.documentNo}</td>\n </tr>\n <tr>\n <th>세부 공종</th>\n <td>${this.checklist.constructionDetailType}</td>\n <th>위치 및 부위</th>\n <td>${this.checklist.location}</td>\n </tr>\n <tr>\n <th>검측 부위</th>\n <td>${this.checklist?.inspectionParts?.join(', ') || ''}</td>\n <th>검측 상태</th>\n <td>${BUILDING_INSPECTION_STATUS[this.checklist?.buildingInspection?.status]}</td>\n </tr>\n </table>\n\n <table body>\n <thead>\n <tr>\n <th colspan=\"2\" rowspan=\"3\" type>구분</th>\n <th rowspan=\"3\" inspection-name>검사항목</th>\n <th rowspan=\"3\" criteria>검사기준</th>\n <th colspan=\"4\" result>검사결과</th>\n <th rowspan=\"3\" small>첨부자료</th>\n <th rowspan=\"3\" small>조치사항</th>\n </tr>\n <tr>\n <th colspan=\"2\">시공자</th>\n <th colspan=\"2\">감리자</th>\n </tr>\n <tr>\n <th>적합</th>\n <th>부적합</th>\n <th>적합</th>\n <th>부적합</th>\n </tr>\n </thead>\n <tbody>\n ${processedItems.map(({ item, showMainTypeCell, mainTypeRowspan, showDetailTypeCell, detailTypeRowspan }, idx) => {\n return html` <tr>\n ${showMainTypeCell\n ? html`<td main-type bold rowspan=\"${mainTypeRowspan}\">${CHECKLIST_MAIN_TYPE_LIST[item.mainType]}</td>`\n : ''}\n ${showDetailTypeCell ? html` <td bold rowspan=\"${detailTypeRowspan}\">${item.detailType}</td> ` : ''}\n\n <td bold>${idx + 1}. ${item.name}</td>\n <td>${item.inspctionCriteria}</td>\n <td radio>\n <md-radio\n item-id=${item.id}\n item-name=\"constructionConfirmStatus\"\n name=${'radio-construction-' + item.id}\n value=\"T\"\n .checked=${item.constructionConfirmStatus === 'T'}\n ?disabled=${!isConstructorStep}\n @change=${this._onChangeConfirmStatus}\n ></md-radio>\n </td>\n <td radio>\n <md-radio\n item-id=${item.id}\n item-name=\"constructionConfirmStatus\"\n name=${'radio-construction-' + item.id}\n value=\"F\"\n .checked=${item.constructionConfirmStatus === 'F'}\n ?disabled=${!isConstructorStep}\n @change=${this._onChangeConfirmStatus}\n ></md-radio>\n </td>\n <td radio>\n <md-radio\n item-id=${item.id}\n item-name=\"supervisoryConfirmStatus\"\n name=${'radio-supervisory-' + item.id}\n value=\"T\"\n .checked=${item.supervisoryConfirmStatus === 'T'}\n ?disabled=${!isSupervisoryStep}\n @change=${this._onChangeConfirmStatus}\n ></md-radio>\n </td>\n <td radio>\n <md-radio\n item-id=${item.id}\n item-name=\"supervisoryConfirmStatus\"\n name=${'radio-supervisory-' + item.id}\n value=\"F\"\n .checked=${item.supervisoryConfirmStatus === 'F'}\n ?disabled=${!isSupervisoryStep}\n @change=${this._onChangeConfirmStatus}\n ></md-radio>\n </td>\n <td attachment></td>\n <td></td>\n </tr>`\n })}\n </tbody>\n </table>\n\n <table tail>\n <tbody>\n <tr first>\n <th rowspan=\"2\">시공자점검일</th>\n <td rowspan=\"2\">\n ${this.mode == ChecklistMode.VIEWER ? today : this._getDate(this.checklist.constructionInspectionDate)}\n </td>\n <th>총괄 시공책임자</th>\n <td>\n <span sign-text>(인)</span>\n <ox-input-signature\n .value=${this.checklist.overallConstructorSignature}\n name=\"overallConstructorSignature\"\n @change=${this._onChangeSignature}\n ?disabled=${!isConstructorStep}\n >\n </ox-input-signature>\n </td>\n </tr>\n <tr>\n <th>공종별 시공관리자</th>\n <td>\n <span sign-text>(인)</span>\n <ox-input-signature\n .value=${this.checklist.taskConstructorSignature}\n name=\"taskConstructorSignature\"\n @change=${this._onChangeSignature}\n ?disabled=${!isConstructorStep}\n >\n </ox-input-signature>\n </td>\n </tr>\n <tr>\n <th rowspan=\"2\">감리자점검일</th>\n <td rowspan=\"2\">\n ${this.mode == ChecklistMode.VIEWER ? today : this._getDate(this.checklist.supervisorInspectionDate)}\n </td>\n <th>총괄 감리책임자</th>\n <td>\n <span sign-text>(인)</span>\n <ox-input-signature\n .value=${this.checklist.overallSupervisorySignature}\n name=\"overallSupervisorySignature\"\n @change=${this._onChangeSignature}\n ?disabled=${!isSupervisoryStep}\n >\n </ox-input-signature>\n </td>\n </tr>\n <tr>\n <th>공종별 감리 책임자</th>\n <td>\n <span sign-text>(인)</span>\n <ox-input-signature\n .value=${this.checklist.taskSupervisorySignature}\n name=\"taskSupervisorySignature\"\n @change=${this._onChangeSignature}\n ?disabled=${!isSupervisoryStep}\n >\n </ox-input-signature>\n </td>\n </tr>\n </tbody>\n </table>\n\n <div footer>\n <div>\n - 검사결과는 1차, 2차로 구분 재검측시 2차에 기록하고 검사기준도 검사결과와 비교될 수 있도록 시방서 또는 도면 등에 있는\n 수치를 작성하며, 수치가 없는 검사항목은 시방서 또는 설계도서에 있는 내용과 검사한 내용으로 작성함\n </div>\n <div>- 검사항목 및 검사기준은 각 공종별로 감리원과 협의하여 작성할 것</div>\n </div>\n </div>\n `\n }\n\n private _onChangeConfirmStatus(e: Event) {\n const target = e.target as HTMLInputElement\n const itemId = target.getAttribute('item-id')\n const name = target.getAttribute('item-name') || ''\n const value = target.value\n\n this.checklist.checklistItems = this.checklist?.checklistItems?.map(item =>\n item.id == itemId ? { ...item, [name]: value } : item\n )\n }\n\n private _onChangeSignature(e: Event) {\n const target = e.target as HTMLInputElement\n\n this.checklist[target.name] = target.value\n }\n\n private _getDate(date) {\n if (!date) return ' 년 월 일'\n\n const _date = new Date(date) || new Date()\n return _date.toLocaleDateString('ko-KR', {\n timeZone: 'Asia/Seoul',\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n })\n }\n\n private drawChecklistItems(checklistItems) {\n const mainTypeRowspans = {}\n const detailTypeRowspans = {}\n let previousMainType = null\n let previousDetailType = null\n\n return checklistItems.map((item, index) => {\n const mainType = item.mainType\n const detailType = item.detailType\n\n // mainType이 변경되면 rowspan을 계산\n if (mainType !== previousMainType) {\n mainTypeRowspans[mainType] = checklistItems.filter(i => i.mainType === mainType).length\n previousDetailType = null // detailType 초기화\n }\n\n // detailType이 변경되면 rowspan을 계산\n if (detailType !== previousDetailType) {\n detailTypeRowspans[`${mainType}-${detailType}`] = checklistItems.filter(\n i => i.mainType === mainType && i.detailType === detailType\n ).length\n }\n\n const showMainTypeCell = mainType !== previousMainType\n const showDetailTypeCell = detailType !== previousDetailType\n\n const mainTypeRowspan = mainTypeRowspans[mainType]\n const detailTypeRowspan = detailTypeRowspans[`${mainType}-${detailType}`]\n\n // 이전 값을 업데이트\n previousMainType = mainType\n previousDetailType = detailType\n\n return {\n item,\n showMainTypeCell,\n mainTypeRowspan,\n showDetailTypeCell,\n detailTypeRowspan\n }\n })\n }\n}\n"]}
@@ -1,9 +1,16 @@
1
1
  import '@material/web/icon/icon.js';
2
+ import '@operato/context/ox-context-page-toolbar.js';
2
3
  import '@operato/data-grist';
3
4
  import './checklist-template-item';
5
+ import '../checklist/checklist-view';
4
6
  import { PageView } from '@operato/shell';
5
7
  import { FetchOption } from '@operato/data-grist';
6
- declare const ChecklistTemplateListPage_base: typeof PageView & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/types/src/types").ScopedElementsHost>;
8
+ declare const ChecklistTemplateListPage_base: (new (...args: any[]) => {
9
+ __preferenceProviders: {
10
+ [element: string]: import("@operato/p13n").PagePreferenceProvider;
11
+ };
12
+ getPagePreferenceProvider(element: string): import("@operato/p13n").PagePreferenceProvider | undefined;
13
+ }) & (new (...args: any[]) => import("lit").LitElement) & typeof PageView;
7
14
  export declare class ChecklistTemplateListPage extends ChecklistTemplateListPage_base {
8
15
  static styles: import("lit").CSSResult[];
9
16
  private gristConfig;
@@ -29,6 +36,7 @@ export declare class ChecklistTemplateListPage extends ChecklistTemplateListPage
29
36
  title: string;
30
37
  action: () => Promise<void>;
31
38
  }[];
39
+ toolbar: boolean;
32
40
  };
33
41
  render(): import("lit-html").TemplateResult<1>;
34
42
  pageUpdated(changes: any, lifecycle: any): Promise<void>;
@@ -40,5 +48,6 @@ export declare class ChecklistTemplateListPage extends ChecklistTemplateListPage
40
48
  }>;
41
49
  private deleteChecklistTemplate;
42
50
  private _updateChecklistTemplate;
51
+ private _getChecklistTemplateItems;
43
52
  }
44
53
  export {};
@@ -1,25 +1,30 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import '@material/web/icon/icon.js';
3
+ import '@operato/context/ox-context-page-toolbar.js';
3
4
  import '@operato/data-grist';
4
5
  import './checklist-template-item';
5
- import { CommonGristStyles, CommonButtonStyles, ScrollbarStyles } from '@operato/styles';
6
+ import '../checklist/checklist-view';
7
+ import { CommonGristStyles, CommonButtonStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles';
6
8
  import { PageView } from '@operato/shell';
7
9
  import { css, html } from 'lit';
8
10
  import { customElement, query, state } from 'lit/decorators.js';
9
- import { ScopedElementsMixin } from '@open-wc/scoped-elements';
10
11
  import { DataGrist } from '@operato/data-grist';
11
12
  import { client } from '@operato/graphql';
12
13
  import { notify, openPopup } from '@operato/layout';
14
+ import { i18next, localize } from '@operato/i18n';
15
+ import { p13n } from '@operato/p13n';
13
16
  import gql from 'graphql-tag';
14
- let ChecklistTemplateListPage = class ChecklistTemplateListPage extends ScopedElementsMixin(PageView) {
17
+ import { BuildingInspectionStatus } from '../building-inspection/building-inspection-list';
18
+ let ChecklistTemplateListPage = class ChecklistTemplateListPage extends p13n(localize(i18next)(PageView)) {
15
19
  get context() {
20
+ var _a;
16
21
  return {
17
22
  title: '체크리스트 템플릿 리스트',
18
23
  search: {
19
24
  handler: (search) => {
20
25
  this.grist.searchText = search;
21
26
  },
22
- value: this.grist.searchText
27
+ value: (_a = this.grist) === null || _a === void 0 ? void 0 : _a.searchText
23
28
  },
24
29
  filter: {
25
30
  handler: () => {
@@ -29,17 +34,27 @@ let ChecklistTemplateListPage = class ChecklistTemplateListPage extends ScopedEl
29
34
  actions: [
30
35
  Object.assign({ title: '저장', action: this._updateChecklistTemplate.bind(this) }, CommonButtonStyles.submit),
31
36
  Object.assign({ title: '삭제', action: this.deleteChecklistTemplate.bind(this) }, CommonButtonStyles.delete)
32
- ]
37
+ ],
38
+ toolbar: false
33
39
  };
34
40
  }
35
41
  render() {
36
42
  return html `
37
- <ox-grist .mode=${'GRID'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>
38
- <div slot="headroom">
39
- <div id="filters">
40
- <ox-filters-form autofocus></ox-filters-form>
43
+ <ox-grist
44
+ .mode=${'GRID'}
45
+ .config=${this.gristConfig}
46
+ .fetchHandler=${this.fetchHandler.bind(this)}
47
+ .personalConfigProvider=${this.getPagePreferenceProvider('ox-grist')}
48
+ >
49
+ <div slot="headroom" class="header">
50
+ <div class="filters">
51
+ <ox-filters-form autofocus without-search></ox-filters-form>
41
52
  </div>
53
+
54
+ <ox-context-page-toolbar class="actions" .context=${this.context}> </ox-context-page-toolbar>
42
55
  </div>
56
+
57
+ <ox-grist-personalizer slot="setting"></ox-grist-personalizer>
43
58
  </ox-grist>
44
59
  `;
45
60
  }
@@ -76,6 +91,44 @@ let ChecklistTemplateListPage = class ChecklistTemplateListPage extends ScopedEl
76
91
  }
77
92
  }
78
93
  },
94
+ {
95
+ type: 'gutter',
96
+ gutterName: 'button',
97
+ fixed: true,
98
+ icon: 'preview',
99
+ handlers: {
100
+ click: async (columns, data, column, record, rowIndex) => {
101
+ if (!record.id)
102
+ return;
103
+ const checklistItems = await this._getChecklistTemplateItems(record.id);
104
+ const checklist = {
105
+ name: record.name,
106
+ constructionType: '공종',
107
+ constructionDetailType: '세부 공종',
108
+ location: `xxx동 xxx층`,
109
+ documentNo: '0000-000-000000',
110
+ inspectionParts: ['창, 바닥, 천장'],
111
+ buildingInspection: {
112
+ status: BuildingInspectionStatus.WAIT
113
+ },
114
+ checklistItems: checklistItems
115
+ };
116
+ openPopup(html `
117
+ <div style="overflow-y: auto;">
118
+ <checklist-view
119
+ .mode=${"VIEWER" /* ChecklistMode.VIEWER */}
120
+ .checklist=${checklist}
121
+ style="pointer-events: none;"
122
+ ></checklist-view>
123
+ </div>
124
+ `, {
125
+ backdrop: true,
126
+ size: 'large',
127
+ title: '체크 리스트 미리보기'
128
+ });
129
+ }
130
+ }
131
+ },
79
132
  {
80
133
  type: 'string',
81
134
  name: 'name',
@@ -224,10 +277,38 @@ let ChecklistTemplateListPage = class ChecklistTemplateListPage extends ScopedEl
224
277
  }
225
278
  }
226
279
  }
280
+ async _getChecklistTemplateItems(checklistTemplateId) {
281
+ const response = await client.query({
282
+ query: gql `
283
+ query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
284
+ checklistTemplateItems(filters: $filters, pagination: $pagination, sortings: $sortings) {
285
+ items {
286
+ id
287
+ sequence
288
+ name
289
+ inspctionCriteria
290
+ mainType
291
+ detailType: detailTypeName
292
+ }
293
+ }
294
+ }
295
+ `,
296
+ variables: {
297
+ filters: {
298
+ name: 'checklistTemplateId',
299
+ value: checklistTemplateId,
300
+ operator: 'eq'
301
+ },
302
+ sortings: [{ name: 'mainType' }, { name: 'sequence' }]
303
+ }
304
+ });
305
+ return response.data.checklistTemplateItems.items || [];
306
+ }
227
307
  };
228
308
  ChecklistTemplateListPage.styles = [
229
309
  ScrollbarStyles,
230
310
  CommonGristStyles,
311
+ CommonHeaderStyles,
231
312
  css `
232
313
  :host {
233
314
  display: flex;
@@ -238,6 +319,15 @@ ChecklistTemplateListPage.styles = [
238
319
  --grid-record-emphasized-background-color: red;
239
320
  --grid-record-emphasized-color: yellow;
240
321
  }
322
+
323
+ ox-grist {
324
+ overflow-y: auto;
325
+ flex: 1;
326
+ }
327
+
328
+ .header {
329
+ grid-template-areas: 'filters actions';
330
+ }
241
331
  `
242
332
  ];
243
333
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-template-list.js","sourceRoot":"","sources":["../../../client/pages/checklist-template/checklist-template-list.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,qBAAqB,CAAA;AAC5B,OAAO,2BAA2B,CAAA;AAElC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,GAAG,MAAM,aAAa,CAAA;AAGtB,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,mBAAmB,CAAC,QAAQ,CAAC;IAqB1E,IAAI,OAAO;QACT,OAAO;YACL,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE;gBACN,OAAO,EAAE,CAAC,MAAc,EAAE,EAAE;oBAC1B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAA;gBAChC,CAAC;gBACD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;aAC7B;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAA;gBAC7B,CAAC;aACF;YACD,OAAO,EAAE;gCAEL,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAC7C,kBAAkB,CAAC,MAAM;gCAG5B,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAC5C,kBAAkB,CAAC,MAAM;aAE/B;SACF,CAAA;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;wBACS,MAAM,YAAY,IAAI,CAAC,WAAW,kBAAkB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;KAOnG,CAAA;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAY,EAAE,SAAS;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,iBAAiB,EAAE,CAAA;SACzB;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAc;QAClC,IAAI,CAAC,WAAW,GAAG;YACjB,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE;gBAC1C,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC9D;oBACE,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,QAAQ;oBACpB,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE;wBACR,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;4BACjD,IAAI,CAAC,MAAM,CAAC,EAAE;gCAAE,OAAM;4BACtB,SAAS,CACP,IAAI,CAAA;;yCAEqB,MAAM;4CACH,IAAI,CAAC,oBAAoB;uCAC9B,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;;iBAE9C,EACD;gCACE,QAAQ,EAAE,IAAI;gCACd,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,gBAAgB;6BACxB,CACF,CAAA;wBACH,CAAC;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE;wBACN,QAAQ,EAAE,IAAI;qBACf;oBACD,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,GAAG;iBACX;gBACD;oBACE,IAAI,EAAE,iBAAiB;oBACvB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE;wBACN,QAAQ,EAAE,KAAK;qBAChB;oBACD,KAAK,EAAE,GAAG;iBACX;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE;wBACN,QAAQ,EAAE,KAAK;qBAChB;oBACD,KAAK,EAAE,GAAG;iBACX;aACF;YACD,IAAI,EAAE;gBACJ,UAAU,EAAE;oBACV,QAAQ,EAAE,IAAI;iBACf;aACF;YACD,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;iBACb;aACF;SACF,CAAA;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB;;QACrB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;OAUT;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,oBAAoB,GAAG,MAAA,MAAA,QAAQ,CAAC,IAAI,CAAC,cAAc,0CAAE,KAAK,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,CAAC,UAAU;gBACrB,KAAK,EAAE,CAAC,CAAC,EAAE;gBACX,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,QAAQ,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAe;QACpF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;OAeT;YACD,SAAS,EAAE;gBACT,OAAO;gBACP,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;gBAC3B,QAAQ;aACT;SACF,CAAC,CAAA;QAEF,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;YACzC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;SAC7C,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACnC,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACxD,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;oBACnC,QAAQ,EAAE,GAAG,CAAA;;;;WAIZ;oBACD,SAAS,EAAE;wBACT,GAAG;qBACJ;iBACF,CAAC,CAAA;gBAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;oBACpB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;oBAClB,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;iBAChC;aACF;SACF;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAA;QACrC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;YAC7B,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC5B,IAAI,UAAU,GAAQ,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;gBACtD,MAAM,WAAW,GAAG,KAAK,CAAC,eAAe,CAAA;gBACzC,KAAK,IAAI,GAAG,IAAI,WAAW,EAAE;oBAC3B,UAAU,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAA;iBACzC;gBACD,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;gBAEnC,OAAO,UAAU,CAAA;YACnB,CAAC,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;gBACnC,QAAQ,EAAE,GAAG,CAAA;;;;;;SAMZ;gBACD,SAAS,EAAE;oBACT,OAAO;iBACR;aACF,CAAC,CAAA;YAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACpB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;gBAClB,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;aAChC;iBAAM;gBACL,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;aACpD;SACF;IACH,CAAC;;AA5PM,gCAAM,GAAG;IACd,eAAe;IACf,iBAAiB;IACjB,GAAG,CAAA;;;;;;;;;;KAUF;CACF,CAAA;AAED;IAAC,KAAK,EAAE;;8DAAyB;AACjC;IAAC,KAAK,EAAE;;uEAA6B;AACrC;IAAC,KAAK,CAAC,UAAU,CAAC;8BAAiB,SAAS;wDAAA;AAnBjC,yBAAyB;IADrC,aAAa,CAAC,yBAAyB,CAAC;GAC5B,yBAAyB,CA8PrC;SA9PY,yBAAyB","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/data-grist'\nimport './checklist-template-item'\n\nimport { CommonGristStyles, CommonButtonStyles, ScrollbarStyles } from '@operato/styles'\nimport { PageView } from '@operato/shell'\nimport { css, html } from 'lit'\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, openPopup } from '@operato/layout'\n\nimport gql from 'graphql-tag'\n\n@customElement('checklist-template-list')\nexport class ChecklistTemplateListPage extends ScopedElementsMixin(PageView) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n width: 100%;\n\n --grid-record-emphasized-background-color: red;\n --grid-record-emphasized-color: yellow;\n }\n `\n ]\n\n @state() private gristConfig: any\n @state() private checklistDetailTypes\n @query('ox-grist') private grist!: DataGrist\n\n get context() {\n return {\n title: '체크리스트 템플릿 리스트',\n search: {\n handler: (search: string) => {\n this.grist.searchText = search\n },\n value: this.grist.searchText\n },\n filter: {\n handler: () => {\n this.grist.toggleHeadroom()\n }\n },\n actions: [\n {\n title: '저장',\n action: this._updateChecklistTemplate.bind(this),\n ...CommonButtonStyles.submit\n },\n {\n title: '삭제',\n action: this.deleteChecklistTemplate.bind(this),\n ...CommonButtonStyles.delete\n }\n ]\n }\n }\n\n render() {\n return html`\n <ox-grist .mode=${'GRID'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>\n <div slot=\"headroom\">\n <div id=\"filters\">\n <ox-filters-form autofocus></ox-filters-form>\n </div>\n </div>\n </ox-grist>\n `\n }\n\n async pageUpdated(changes: any, lifecycle) {\n if (this.active) {\n this.getchecklistTypes()\n }\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: 'gutter',\n gutterName: 'button',\n fixed: true,\n icon: 'reorder',\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n if (!record.id) return\n openPopup(\n html`\n <checklist-template-item\n .checklistTemplate=${record}\n .checklistDetailTypes=${this.checklistDetailTypes}\n @requestRefresh=\"${() => this.grist.fetch()}\"\n ></checklist-template-item>\n `,\n {\n backdrop: true,\n size: 'large',\n title: '체크 리스트 아이템 템플릿'\n }\n )\n }\n }\n },\n {\n type: 'string',\n name: 'name',\n header: '이름',\n record: {\n editable: true\n },\n filter: 'search',\n sortable: true,\n width: 200\n },\n {\n type: 'resource-object',\n name: 'updater',\n header: '수정자',\n record: {\n editable: false\n },\n width: 120\n },\n {\n type: 'datetime',\n name: 'updatedAt',\n header: '수정일시',\n record: {\n editable: false\n },\n width: 180\n }\n ],\n rows: {\n selectable: {\n multiple: true\n }\n },\n sorters: [\n {\n name: 'name'\n }\n ]\n }\n }\n\n async getchecklistTypes() {\n const response = await client.query({\n query: gql`\n query ChecklistTypes {\n checklistTypes {\n items {\n id\n mainType\n detailType\n }\n }\n }\n `\n })\n\n this.checklistDetailTypes = response.data.checklistTypes?.items?.map(v => {\n return {\n display: v.detailType,\n value: v.id,\n mainType: v.mainType\n }\n })\n }\n\n async fetchHandler({ page = 1, limit = 100, sortings = [], filters = [] }: FetchOption) {\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n responses: checklistTemplates(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n updater {\n id\n name\n }\n updatedAt\n }\n total\n }\n }\n `,\n variables: {\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n total: response.data.responses.total || 0,\n records: response.data.responses.items || []\n }\n }\n\n private async deleteChecklistTemplate() {\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 deleteChecklistTemplates(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 async _updateChecklistTemplate() {\n let patches = this.grist.dirtyRecords\n if (patches && patches.length) {\n patches = patches.map(patch => {\n let patchField: any = patch.id ? { id: patch.id } : {}\n const dirtyFields = patch.__dirtyfields__\n for (let key in dirtyFields) {\n patchField[key] = dirtyFields[key].after\n }\n patchField.cuFlag = patch.__dirty__\n\n return patchField\n })\n\n const response = await client.mutate({\n mutation: gql`\n mutation ($patches: [ChecklistTemplatePatch!]!) {\n updateMultipleChecklistTemplate(patches: $patches) {\n name\n }\n }\n `,\n variables: {\n patches\n }\n })\n\n if (!response.errors) {\n this.grist.fetch()\n notify({ message: '저장되었습니다.' })\n } else {\n notify({ message: '저장에 실패하였습니다.', level: 'error' })\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"checklist-template-list.js","sourceRoot":"","sources":["../../../client/pages/checklist-template/checklist-template-list.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/context/ox-context-page-toolbar.js'\nimport '@operato/data-grist'\nimport './checklist-template-item'\nimport '../checklist/checklist-view'\n\nimport { CommonGristStyles, CommonButtonStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'\nimport { PageView } from '@operato/shell'\nimport { css, html } from 'lit'\nimport { customElement, query, state } from 'lit/decorators.js'\nimport { DataGrist, FetchOption } from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { notify, openPopup } from '@operato/layout'\nimport { i18next, localize } from '@operato/i18n'\nimport { p13n } from '@operato/p13n'\n\nimport gql from 'graphql-tag'\nimport { ChecklistMode } from '../checklist/checklist-view'\nimport { BuildingInspectionStatus } from '../building-inspection/building-inspection-list'\n\n@customElement('checklist-template-list')\nexport class ChecklistTemplateListPage extends p13n(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n CommonHeaderStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n width: 100%;\n\n --grid-record-emphasized-background-color: red;\n --grid-record-emphasized-color: yellow;\n }\n\n ox-grist {\n overflow-y: auto;\n flex: 1;\n }\n\n .header {\n grid-template-areas: 'filters actions';\n }\n `\n ]\n\n @state() private gristConfig: any\n @state() private checklistDetailTypes\n @query('ox-grist') private grist!: DataGrist\n\n get context() {\n return {\n title: '체크리스트 템플릿 리스트',\n search: {\n handler: (search: string) => {\n this.grist.searchText = search\n },\n value: this.grist?.searchText\n },\n filter: {\n handler: () => {\n this.grist.toggleHeadroom()\n }\n },\n actions: [\n {\n title: '저장',\n action: this._updateChecklistTemplate.bind(this),\n ...CommonButtonStyles.submit\n },\n {\n title: '삭제',\n action: this.deleteChecklistTemplate.bind(this),\n ...CommonButtonStyles.delete\n }\n ],\n toolbar: false\n }\n }\n\n render() {\n return html`\n <ox-grist\n .mode=${'GRID'}\n .config=${this.gristConfig}\n .fetchHandler=${this.fetchHandler.bind(this)}\n .personalConfigProvider=${this.getPagePreferenceProvider('ox-grist')!}\n >\n <div slot=\"headroom\" class=\"header\">\n <div class=\"filters\">\n <ox-filters-form autofocus without-search></ox-filters-form>\n </div>\n\n <ox-context-page-toolbar class=\"actions\" .context=${this.context}> </ox-context-page-toolbar>\n </div>\n\n <ox-grist-personalizer slot=\"setting\"></ox-grist-personalizer>\n </ox-grist>\n `\n }\n\n async pageUpdated(changes: any, lifecycle) {\n if (this.active) {\n this.getchecklistTypes()\n }\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: 'gutter',\n gutterName: 'button',\n fixed: true,\n icon: 'reorder',\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n if (!record.id) return\n openPopup(\n html`\n <checklist-template-item\n .checklistTemplate=${record}\n .checklistDetailTypes=${this.checklistDetailTypes}\n @requestRefresh=\"${() => this.grist.fetch()}\"\n ></checklist-template-item>\n `,\n {\n backdrop: true,\n size: 'large',\n title: '체크 리스트 아이템 템플릿'\n }\n )\n }\n }\n },\n {\n type: 'gutter',\n gutterName: 'button',\n fixed: true,\n icon: 'preview',\n handlers: {\n click: async (columns, data, column, record, rowIndex) => {\n if (!record.id) return\n\n const checklistItems = await this._getChecklistTemplateItems(record.id)\n\n const checklist = {\n name: record.name,\n constructionType: '공종',\n constructionDetailType: '세부 공종',\n location: `xxx동 xxx층`,\n documentNo: '0000-000-000000',\n inspectionParts: ['창, 바닥, 천장'],\n buildingInspection: {\n status: BuildingInspectionStatus.WAIT\n },\n checklistItems: checklistItems\n }\n\n openPopup(\n html`\n <div style=\"overflow-y: auto;\">\n <checklist-view\n .mode=${ChecklistMode.VIEWER}\n .checklist=${checklist}\n style=\"pointer-events: none;\"\n ></checklist-view>\n </div>\n `,\n {\n backdrop: true,\n size: 'large',\n title: '체크 리스트 미리보기'\n }\n )\n }\n }\n },\n {\n type: 'string',\n name: 'name',\n header: '이름',\n record: {\n editable: true\n },\n filter: 'search',\n sortable: true,\n width: 200\n },\n {\n type: 'resource-object',\n name: 'updater',\n header: '수정자',\n record: {\n editable: false\n },\n width: 120\n },\n {\n type: 'datetime',\n name: 'updatedAt',\n header: '수정일시',\n record: {\n editable: false\n },\n width: 180\n }\n ],\n rows: {\n selectable: {\n multiple: true\n }\n },\n sorters: [\n {\n name: 'name'\n }\n ]\n }\n }\n\n async getchecklistTypes() {\n const response = await client.query({\n query: gql`\n query ChecklistTypes {\n checklistTypes {\n items {\n id\n mainType\n detailType\n }\n }\n }\n `\n })\n\n this.checklistDetailTypes = response.data.checklistTypes?.items?.map(v => {\n return {\n display: v.detailType,\n value: v.id,\n mainType: v.mainType\n }\n })\n }\n\n async fetchHandler({ page = 1, limit = 100, sortings = [], filters = [] }: FetchOption) {\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n responses: checklistTemplates(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n updater {\n id\n name\n }\n updatedAt\n }\n total\n }\n }\n `,\n variables: {\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n total: response.data.responses.total || 0,\n records: response.data.responses.items || []\n }\n }\n\n private async deleteChecklistTemplate() {\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 deleteChecklistTemplates(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 async _updateChecklistTemplate() {\n let patches = this.grist.dirtyRecords\n if (patches && patches.length) {\n patches = patches.map(patch => {\n let patchField: any = patch.id ? { id: patch.id } : {}\n const dirtyFields = patch.__dirtyfields__\n for (let key in dirtyFields) {\n patchField[key] = dirtyFields[key].after\n }\n patchField.cuFlag = patch.__dirty__\n\n return patchField\n })\n\n const response = await client.mutate({\n mutation: gql`\n mutation ($patches: [ChecklistTemplatePatch!]!) {\n updateMultipleChecklistTemplate(patches: $patches) {\n name\n }\n }\n `,\n variables: {\n patches\n }\n })\n\n if (!response.errors) {\n this.grist.fetch()\n notify({ message: '저장되었습니다.' })\n } else {\n notify({ message: '저장에 실패하였습니다.', level: 'error' })\n }\n }\n }\n\n private async _getChecklistTemplateItems(checklistTemplateId) {\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n checklistTemplateItems(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n sequence\n name\n inspctionCriteria\n mainType\n detailType: detailTypeName\n }\n }\n }\n `,\n variables: {\n filters: {\n name: 'checklistTemplateId',\n value: checklistTemplateId,\n operator: 'eq'\n },\n sortings: [{ name: 'mainType' }, { name: 'sequence' }]\n }\n })\n\n return response.data.checklistTemplateItems.items || []\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import '@material/web/icon/icon.js';
2
+ import '@operato/context/ox-context-page-toolbar.js';
2
3
  import '@operato/data-grist';
3
4
  import { PageView } from '@operato/shell';
4
5
  import { FetchOption } from '@operato/data-grist';
@@ -10,7 +11,12 @@ export declare const CHECKLIST_MAIN_TYPE_LIST: {
10
11
  10: string;
11
12
  20: string;
12
13
  };
13
- declare const ChecklistTypeManagement_base: typeof PageView & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/types/src/types").ScopedElementsHost>;
14
+ declare const ChecklistTypeManagement_base: (new (...args: any[]) => {
15
+ __preferenceProviders: {
16
+ [element: string]: import("@operato/p13n").PagePreferenceProvider;
17
+ };
18
+ getPagePreferenceProvider(element: string): import("@operato/p13n").PagePreferenceProvider | undefined;
19
+ }) & (new (...args: any[]) => import("lit").LitElement) & typeof PageView;
14
20
  export declare class ChecklistTypeManagement extends ChecklistTypeManagement_base {
15
21
  static styles: import("lit").CSSResult[];
16
22
  private gristConfig;
@@ -35,6 +41,7 @@ export declare class ChecklistTypeManagement extends ChecklistTypeManagement_bas
35
41
  title: string;
36
42
  action: () => Promise<void>;
37
43
  }[];
44
+ toolbar: boolean;
38
45
  };
39
46
  render(): import("lit-html").TemplateResult<1>;
40
47
  pageInitialized(lifecycle: any): Promise<void>;
@@ -1,15 +1,17 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import '@material/web/icon/icon.js';
3
+ import '@operato/context/ox-context-page-toolbar.js';
3
4
  import '@operato/data-grist';
4
- import { CommonGristStyles, CommonButtonStyles, ScrollbarStyles } from '@operato/styles';
5
- import { PageView } from '@operato/shell';
5
+ import gql from 'graphql-tag';
6
6
  import { css, html } from 'lit';
7
+ import { CommonGristStyles, CommonButtonStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles';
8
+ import { PageView } from '@operato/shell';
7
9
  import { customElement, query, state } from 'lit/decorators.js';
8
- import { ScopedElementsMixin } from '@open-wc/scoped-elements';
9
10
  import { DataGrist } from '@operato/data-grist';
10
11
  import { client } from '@operato/graphql';
11
12
  import { notify } from '@operato/layout';
12
- import gql from 'graphql-tag';
13
+ import { i18next, localize } from '@operato/i18n';
14
+ import { p13n } from '@operato/p13n';
13
15
  export var ChecklistTypeMainType;
14
16
  (function (ChecklistTypeMainType) {
15
17
  ChecklistTypeMainType["BASIC"] = "10";
@@ -19,15 +21,16 @@ export const CHECKLIST_MAIN_TYPE_LIST = {
19
21
  [ChecklistTypeMainType.BASIC]: '기본 업무',
20
22
  [ChecklistTypeMainType.NON_BASIC]: '기본 외 업무'
21
23
  };
22
- let ChecklistTypeManagement = class ChecklistTypeManagement extends ScopedElementsMixin(PageView) {
24
+ let ChecklistTypeManagement = class ChecklistTypeManagement extends p13n(localize(i18next)(PageView)) {
23
25
  get context() {
26
+ var _a;
24
27
  return {
25
28
  title: '체크리스트 구분 관리',
26
29
  search: {
27
30
  handler: (search) => {
28
31
  this.grist.searchText = search;
29
32
  },
30
- value: this.grist.searchText
33
+ value: (_a = this.grist) === null || _a === void 0 ? void 0 : _a.searchText
31
34
  },
32
35
  filter: {
33
36
  handler: () => {
@@ -37,17 +40,27 @@ let ChecklistTypeManagement = class ChecklistTypeManagement extends ScopedElemen
37
40
  actions: [
38
41
  Object.assign({ title: '저장', action: this._updateChecklistType.bind(this) }, CommonButtonStyles.submit),
39
42
  Object.assign({ title: '삭제', action: this._deleteChecklistType.bind(this) }, CommonButtonStyles.delete)
40
- ]
43
+ ],
44
+ toolbar: false
41
45
  };
42
46
  }
43
47
  render() {
44
48
  return html `
45
- <ox-grist .mode=${'GRID'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>
46
- <div slot="headroom">
47
- <div id="filters">
48
- <ox-filters-form autofocus></ox-filters-form>
49
+ <ox-grist
50
+ .mode=${'GRID'}
51
+ .config=${this.gristConfig}
52
+ .fetchHandler=${this.fetchHandler.bind(this)}
53
+ .personalConfigProvider=${this.getPagePreferenceProvider('ox-grist')}
54
+ >
55
+ <div slot="headroom" class="header">
56
+ <div class="filters">
57
+ <ox-filters-form autofocus without-search></ox-filters-form>
49
58
  </div>
59
+
60
+ <ox-context-page-toolbar class="actions" .context=${this.context}> </ox-context-page-toolbar>
50
61
  </div>
62
+
63
+ <ox-grist-personalizer slot="setting"></ox-grist-personalizer>
51
64
  </ox-grist>
52
65
  `;
53
66
  }
@@ -64,7 +77,7 @@ let ChecklistTypeManagement = class ChecklistTypeManagement extends ScopedElemen
64
77
  editable: true,
65
78
  options: [{ display: '', value: '' }].concat(Object.keys(CHECKLIST_MAIN_TYPE_LIST).map(key => ({ display: CHECKLIST_MAIN_TYPE_LIST[key], value: key })))
66
79
  },
67
- filter: 'search',
80
+ filter: true,
68
81
  sortable: true,
69
82
  width: 150
70
83
  },
@@ -202,16 +215,24 @@ let ChecklistTypeManagement = class ChecklistTypeManagement extends ScopedElemen
202
215
  ChecklistTypeManagement.styles = [
203
216
  ScrollbarStyles,
204
217
  CommonGristStyles,
218
+ CommonHeaderStyles,
205
219
  css `
206
220
  :host {
207
221
  display: flex;
208
222
  flex-direction: column;
209
223
 
210
- width: 100%;
211
-
212
224
  --grid-record-emphasized-background-color: red;
213
225
  --grid-record-emphasized-color: yellow;
214
226
  }
227
+
228
+ ox-grist {
229
+ overflow-y: auto;
230
+ flex: 1;
231
+ }
232
+
233
+ .header {
234
+ grid-template-areas: 'filters actions';
235
+ }
215
236
  `
216
237
  ];
217
238
  __decorate([