@dssp/project 0.0.2

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 (195) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/assets/images/hatiolab-logo.png +0 -0
  3. package/assets/images/o-mark.png +0 -0
  4. package/assets/images/x-mark.png +0 -0
  5. package/client/bootstrap.ts +0 -0
  6. package/client/index.ts +0 -0
  7. package/client/pages/checklist/checklist-importer.ts +96 -0
  8. package/client/pages/checklist/checklist-list-page.ts +355 -0
  9. package/client/pages/lib/waether.ts +159 -0
  10. package/client/pages/project/ox-progress-circle.ts +133 -0
  11. package/client/pages/project/project-create-popup.ts +148 -0
  12. package/client/pages/project/project-detail.ts +618 -0
  13. package/client/pages/project/project-list.ts +354 -0
  14. package/client/pages/project/project-plan-management.ts +437 -0
  15. package/client/pages/project/project-schedule-list.ts +280 -0
  16. package/client/pages/project/project-schedule.ts +248 -0
  17. package/client/pages/project/project-setting-list.ts +298 -0
  18. package/client/pages/project/project-update.ts +797 -0
  19. package/client/pages/resource/resource-importer.ts +96 -0
  20. package/client/pages/resource/resource-list-page.ts +355 -0
  21. package/client/pages/task/task-importer.ts +96 -0
  22. package/client/pages/task/task-list-page.ts +355 -0
  23. package/client/route.ts +39 -0
  24. package/client/tsconfig.json +11 -0
  25. package/dist-client/bootstrap.d.ts +0 -0
  26. package/dist-client/bootstrap.js +2 -0
  27. package/dist-client/bootstrap.js.map +1 -0
  28. package/dist-client/index.d.ts +0 -0
  29. package/dist-client/index.js +2 -0
  30. package/dist-client/index.js.map +1 -0
  31. package/dist-client/pages/checklist/checklist-importer.d.ts +9 -0
  32. package/dist-client/pages/checklist/checklist-importer.js +100 -0
  33. package/dist-client/pages/checklist/checklist-importer.js.map +1 -0
  34. package/dist-client/pages/checklist/checklist-list-page.d.ts +62 -0
  35. package/dist-client/pages/checklist/checklist-list-page.js +331 -0
  36. package/dist-client/pages/checklist/checklist-list-page.js.map +1 -0
  37. package/dist-client/pages/lib/waether.d.ts +6 -0
  38. package/dist-client/pages/lib/waether.js +152 -0
  39. package/dist-client/pages/lib/waether.js.map +1 -0
  40. package/dist-client/pages/project/ox-progress-circle.d.ts +41 -0
  41. package/dist-client/pages/project/ox-progress-circle.js +182 -0
  42. package/dist-client/pages/project/ox-progress-circle.js.map +1 -0
  43. package/dist-client/pages/project/project-create-popup.d.ts +14 -0
  44. package/dist-client/pages/project/project-create-popup.js +153 -0
  45. package/dist-client/pages/project/project-create-popup.js.map +1 -0
  46. package/dist-client/pages/project/project-detail.d.ts +35 -0
  47. package/dist-client/pages/project/project-detail.js +617 -0
  48. package/dist-client/pages/project/project-detail.js.map +1 -0
  49. package/dist-client/pages/project/project-list.d.ts +88 -0
  50. package/dist-client/pages/project/project-list.js +303 -0
  51. package/dist-client/pages/project/project-list.js.map +1 -0
  52. package/dist-client/pages/project/project-plan-management.d.ts +27 -0
  53. package/dist-client/pages/project/project-plan-management.js +438 -0
  54. package/dist-client/pages/project/project-plan-management.js.map +1 -0
  55. package/dist-client/pages/project/project-schedule-list.d.ts +18 -0
  56. package/dist-client/pages/project/project-schedule-list.js +292 -0
  57. package/dist-client/pages/project/project-schedule-list.js.map +1 -0
  58. package/dist-client/pages/project/project-schedule.d.ts +23 -0
  59. package/dist-client/pages/project/project-schedule.js +256 -0
  60. package/dist-client/pages/project/project-schedule.js.map +1 -0
  61. package/dist-client/pages/project/project-setting-list.d.ts +23 -0
  62. package/dist-client/pages/project/project-setting-list.js +307 -0
  63. package/dist-client/pages/project/project-setting-list.js.map +1 -0
  64. package/dist-client/pages/project/project-update.d.ts +24 -0
  65. package/dist-client/pages/project/project-update.js +797 -0
  66. package/dist-client/pages/project/project-update.js.map +1 -0
  67. package/dist-client/pages/resource/resource-importer.d.ts +9 -0
  68. package/dist-client/pages/resource/resource-importer.js +100 -0
  69. package/dist-client/pages/resource/resource-importer.js.map +1 -0
  70. package/dist-client/pages/resource/resource-list-page.d.ts +62 -0
  71. package/dist-client/pages/resource/resource-list-page.js +331 -0
  72. package/dist-client/pages/resource/resource-list-page.js.map +1 -0
  73. package/dist-client/pages/task/task-importer.d.ts +9 -0
  74. package/dist-client/pages/task/task-importer.js +100 -0
  75. package/dist-client/pages/task/task-importer.js.map +1 -0
  76. package/dist-client/pages/task/task-list-page.d.ts +62 -0
  77. package/dist-client/pages/task/task-list-page.js +331 -0
  78. package/dist-client/pages/task/task-list-page.js.map +1 -0
  79. package/dist-client/route.d.ts +1 -0
  80. package/dist-client/route.js +32 -0
  81. package/dist-client/route.js.map +1 -0
  82. package/dist-client/tsconfig.tsbuildinfo +1 -0
  83. package/dist-server/controllers/index.js +1 -0
  84. package/dist-server/controllers/index.js.map +1 -0
  85. package/dist-server/controllers/project-to-excel.js +30 -0
  86. package/dist-server/controllers/project-to-excel.js.map +1 -0
  87. package/dist-server/index.js +6 -0
  88. package/dist-server/index.js.map +1 -0
  89. package/dist-server/middlewares/index.js +8 -0
  90. package/dist-server/middlewares/index.js.map +1 -0
  91. package/dist-server/routes.js +105 -0
  92. package/dist-server/routes.js.map +1 -0
  93. package/dist-server/service/check-item/check-item-mutation.js +129 -0
  94. package/dist-server/service/check-item/check-item-mutation.js.map +1 -0
  95. package/dist-server/service/check-item/check-item-query.js +86 -0
  96. package/dist-server/service/check-item/check-item-query.js.map +1 -0
  97. package/dist-server/service/check-item/check-item-type.js +69 -0
  98. package/dist-server/service/check-item/check-item-type.js.map +1 -0
  99. package/dist-server/service/check-item/check-item.js +84 -0
  100. package/dist-server/service/check-item/check-item.js.map +1 -0
  101. package/dist-server/service/check-item/index.js +9 -0
  102. package/dist-server/service/check-item/index.js.map +1 -0
  103. package/dist-server/service/checklist/checklist-mutation.js +129 -0
  104. package/dist-server/service/checklist/checklist-mutation.js.map +1 -0
  105. package/dist-server/service/checklist/checklist-query.js +86 -0
  106. package/dist-server/service/checklist/checklist-query.js.map +1 -0
  107. package/dist-server/service/checklist/checklist-type.js +69 -0
  108. package/dist-server/service/checklist/checklist-type.js.map +1 -0
  109. package/dist-server/service/checklist/checklist.js +120 -0
  110. package/dist-server/service/checklist/checklist.js.map +1 -0
  111. package/dist-server/service/checklist/index.js +9 -0
  112. package/dist-server/service/checklist/index.js.map +1 -0
  113. package/dist-server/service/index.js +36 -0
  114. package/dist-server/service/index.js.map +1 -0
  115. package/dist-server/service/project/index.js +11 -0
  116. package/dist-server/service/project/index.js.map +1 -0
  117. package/dist-server/service/project/project-mutation.js +190 -0
  118. package/dist-server/service/project/project-mutation.js.map +1 -0
  119. package/dist-server/service/project/project-query.js +143 -0
  120. package/dist-server/service/project/project-query.js.map +1 -0
  121. package/dist-server/service/project/project-type.js +106 -0
  122. package/dist-server/service/project/project-type.js.map +1 -0
  123. package/dist-server/service/project/project.js +146 -0
  124. package/dist-server/service/project/project.js.map +1 -0
  125. package/dist-server/service/resource/index.js +9 -0
  126. package/dist-server/service/resource/index.js.map +1 -0
  127. package/dist-server/service/resource/resource-mutation.js +129 -0
  128. package/dist-server/service/resource/resource-mutation.js.map +1 -0
  129. package/dist-server/service/resource/resource-query.js +86 -0
  130. package/dist-server/service/resource/resource-query.js.map +1 -0
  131. package/dist-server/service/resource/resource-type.js +69 -0
  132. package/dist-server/service/resource/resource-type.js.map +1 -0
  133. package/dist-server/service/resource/resource.js +62 -0
  134. package/dist-server/service/resource/resource.js.map +1 -0
  135. package/dist-server/service/task/index.js +9 -0
  136. package/dist-server/service/task/index.js.map +1 -0
  137. package/dist-server/service/task/task-mutation.js +129 -0
  138. package/dist-server/service/task/task-mutation.js.map +1 -0
  139. package/dist-server/service/task/task-query.js +86 -0
  140. package/dist-server/service/task/task-query.js.map +1 -0
  141. package/dist-server/service/task/task-type.js +69 -0
  142. package/dist-server/service/task/task-type.js.map +1 -0
  143. package/dist-server/service/task/task.js +106 -0
  144. package/dist-server/service/task/task.js.map +1 -0
  145. package/dist-server/tsconfig.tsbuildinfo +1 -0
  146. package/helps/management/alarm.md +160 -0
  147. package/helps/management/alter-video.md +160 -0
  148. package/helps/management/cctv.md +160 -0
  149. package/helps/management/device.md +160 -0
  150. package/helps/management/parking.md +160 -0
  151. package/helps/management/site.md +160 -0
  152. package/helps/management/sun-pnl.md +160 -0
  153. package/helps/project/checklist.md +160 -0
  154. package/helps/project/project.md +160 -0
  155. package/helps/project/resource.md +160 -0
  156. package/helps/project/task.md +160 -0
  157. package/package.json +38 -0
  158. package/server/controllers/index.ts +0 -0
  159. package/server/controllers/project-to-excel.ts +40 -0
  160. package/server/index.ts +3 -0
  161. package/server/middlewares/index.ts +3 -0
  162. package/server/routes.ts +108 -0
  163. package/server/service/check-item/check-item-mutation.ts +142 -0
  164. package/server/service/check-item/check-item-query.ts +56 -0
  165. package/server/service/check-item/check-item-type.ts +49 -0
  166. package/server/service/check-item/check-item.ts +74 -0
  167. package/server/service/check-item/index.ts +6 -0
  168. package/server/service/checklist/checklist-mutation.ts +142 -0
  169. package/server/service/checklist/checklist-query.ts +56 -0
  170. package/server/service/checklist/checklist-type.ts +49 -0
  171. package/server/service/checklist/checklist.ts +105 -0
  172. package/server/service/checklist/index.ts +6 -0
  173. package/server/service/index.ts +35 -0
  174. package/server/service/project/index.ts +8 -0
  175. package/server/service/project/project-mutation.ts +201 -0
  176. package/server/service/project/project-query.ts +103 -0
  177. package/server/service/project/project-type.ts +71 -0
  178. package/server/service/project/project.ts +131 -0
  179. package/server/service/resource/index.ts +6 -0
  180. package/server/service/resource/resource-mutation.ts +139 -0
  181. package/server/service/resource/resource-query.ts +56 -0
  182. package/server/service/resource/resource-type.ts +49 -0
  183. package/server/service/resource/resource.ts +56 -0
  184. package/server/service/task/index.ts +6 -0
  185. package/server/service/task/task-mutation.ts +136 -0
  186. package/server/service/task/task-query.ts +56 -0
  187. package/server/service/task/task-type.ts +49 -0
  188. package/server/service/task/task.ts +97 -0
  189. package/server/tsconfig.json +10 -0
  190. package/things-factory.config.js +20 -0
  191. package/translations/en.json +1 -0
  192. package/translations/ja.json +1 -0
  193. package/translations/ko.json +9 -0
  194. package/translations/ms.json +1 -0
  195. package/translations/zh.json +1 -0
@@ -0,0 +1,182 @@
1
+ /**
2
+ * @license Copyright © HatioLab Inc. All rights reserved.
3
+ */
4
+ import { __decorate, __metadata } from "tslib";
5
+ import { LitElement, css, html } from 'lit';
6
+ import { customElement, property, query } from 'lit/decorators.js';
7
+ import { ScrollbarStyles } from '@operato/styles';
8
+ /**
9
+ WEB Component for code-mirror code editor.
10
+
11
+ Example:
12
+ <ox-progress-circle
13
+ .value=${70}
14
+ titleText="전체"
15
+ suffix="%"
16
+ fontSize="29px"
17
+ fontColor="#4E5055"
18
+ borderStyle="none"
19
+ innerCircleSize="28%"
20
+ circleColor="#0595E5"
21
+ shadow="#00000026 4px 4px 4px"
22
+ background="#eaf5fd"
23
+ ></ox-progress-circle>
24
+ */
25
+ let OxProgressCircle = class OxProgressCircle extends LitElement {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.value = 0;
29
+ this.suffix = '';
30
+ this.titleText = '';
31
+ this.fontSize = '10px';
32
+ this.fontColor = '';
33
+ this.borderStyle = '';
34
+ this.innerCircleSize = '10%';
35
+ this.shadow = '';
36
+ this.circleColor = 'yellowgreen';
37
+ this.background = '';
38
+ }
39
+ firstUpdated() {
40
+ if (this.fontSize) {
41
+ this.circle.style.fontSize = this.fontSize;
42
+ }
43
+ if (this.fontColor) {
44
+ this.innerCircle.style.color = this.fontColor;
45
+ }
46
+ if (this.borderStyle) {
47
+ this.circle.style.border = this.borderStyle;
48
+ }
49
+ if (this.innerCircleSize) {
50
+ this.innerCircle.style.width = `calc(100% - ${this.innerCircleSize})`;
51
+ }
52
+ if (this.shadow) {
53
+ this.circle.style.boxShadow = this.shadow;
54
+ }
55
+ if (this.background) {
56
+ this.innerCircle.style.background = this.background;
57
+ }
58
+ if (this.progressTitle && this.circleColor) {
59
+ this.progressTitle.style.color = this.circleColor;
60
+ }
61
+ }
62
+ updated(changes) {
63
+ if (changes.has('value')) {
64
+ this.updateCircleBackground();
65
+ }
66
+ }
67
+ updateCircleBackground() {
68
+ const position = this.value * 3.6; // 360 = 100%
69
+ this.circle.style.background = `conic-gradient(${this.circleColor} ${position}deg, ${this.background} 0deg)`;
70
+ }
71
+ render() {
72
+ return html `
73
+ <div circle>
74
+ <div inner-circle>
75
+ ${this.titleText ? html `<span progress-title>${this.titleText}</span>` : ''}
76
+ <span>${this.value}${this.suffix}</span>
77
+ </div>
78
+ </div>
79
+ `;
80
+ }
81
+ };
82
+ OxProgressCircle.styles = [
83
+ ScrollbarStyles,
84
+ css `
85
+ :host {
86
+ display: flex;
87
+ }
88
+
89
+ div[circle] {
90
+ font-size: 29px;
91
+ font-weight: bold;
92
+ width: 100%;
93
+ aspect-ratio: 1;
94
+ display: flex;
95
+ border-radius: 50%;
96
+ border: 1px solid #353b48;
97
+ position: relative;
98
+ background: conic-gradient(yellowgreen 0deg, white 0deg);
99
+ box-shadow: #00000026 5px 5px 5px;
100
+ }
101
+ div[inner-circle] {
102
+ width: 90%;
103
+ aspect-ratio: 1;
104
+ border-radius: inherit;
105
+ background-color: #353b48;
106
+ margin: auto;
107
+ display: flex;
108
+ flex-direction: column;
109
+ align-items: center;
110
+ color: white;
111
+ justify-content: center;
112
+ box-shadow: inset #00000026 -2px 2px 8px;
113
+ }
114
+
115
+ div[inner-circle] span {
116
+ display: flex;
117
+ align-items: center;
118
+ }
119
+
120
+ span[progress-title] {
121
+ font-size: 0.65em;
122
+ margin-bottom: -5%;
123
+ }
124
+ `
125
+ ];
126
+ __decorate([
127
+ property({ type: Number }),
128
+ __metadata("design:type", Number)
129
+ ], OxProgressCircle.prototype, "value", void 0);
130
+ __decorate([
131
+ property({ type: String }),
132
+ __metadata("design:type", String)
133
+ ], OxProgressCircle.prototype, "suffix", void 0);
134
+ __decorate([
135
+ property({ type: String }),
136
+ __metadata("design:type", String)
137
+ ], OxProgressCircle.prototype, "titleText", void 0);
138
+ __decorate([
139
+ property({ type: String }),
140
+ __metadata("design:type", String)
141
+ ], OxProgressCircle.prototype, "fontSize", void 0);
142
+ __decorate([
143
+ property({ type: String }),
144
+ __metadata("design:type", String)
145
+ ], OxProgressCircle.prototype, "fontColor", void 0);
146
+ __decorate([
147
+ property({ type: String }),
148
+ __metadata("design:type", String)
149
+ ], OxProgressCircle.prototype, "borderStyle", void 0);
150
+ __decorate([
151
+ property({ type: String }),
152
+ __metadata("design:type", String)
153
+ ], OxProgressCircle.prototype, "innerCircleSize", void 0);
154
+ __decorate([
155
+ property({ type: String }),
156
+ __metadata("design:type", String)
157
+ ], OxProgressCircle.prototype, "shadow", void 0);
158
+ __decorate([
159
+ property({ type: String }),
160
+ __metadata("design:type", String)
161
+ ], OxProgressCircle.prototype, "circleColor", void 0);
162
+ __decorate([
163
+ property({ type: String }),
164
+ __metadata("design:type", String)
165
+ ], OxProgressCircle.prototype, "background", void 0);
166
+ __decorate([
167
+ query('div[circle]'),
168
+ __metadata("design:type", HTMLDivElement)
169
+ ], OxProgressCircle.prototype, "circle", void 0);
170
+ __decorate([
171
+ query('div[inner-circle]'),
172
+ __metadata("design:type", HTMLDivElement)
173
+ ], OxProgressCircle.prototype, "innerCircle", void 0);
174
+ __decorate([
175
+ query('span[progress-title]'),
176
+ __metadata("design:type", HTMLSpanElement)
177
+ ], OxProgressCircle.prototype, "progressTitle", void 0);
178
+ OxProgressCircle = __decorate([
179
+ customElement('ox-progress-circle')
180
+ ], OxProgressCircle);
181
+ export { OxProgressCircle };
182
+ //# sourceMappingURL=ox-progress-circle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-progress-circle.js","sourceRoot":"","sources":["../../../client/pages/project/ox-progress-circle.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { PropertyValues, LitElement, css, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ScrollbarStyles } from '@operato/styles'\n\n/**\nWEB Component for code-mirror code editor.\n\nExample:\n <ox-progress-circle\n .value=${70}\n titleText=\"전체\"\n suffix=\"%\"\n fontSize=\"29px\"\n fontColor=\"#4E5055\"\n borderStyle=\"none\"\n innerCircleSize=\"28%\"\n circleColor=\"#0595E5\"\n shadow=\"#00000026 4px 4px 4px\"\n background=\"#eaf5fd\"\n ></ox-progress-circle>\n*/\n@customElement('ox-progress-circle')\nexport class OxProgressCircle extends LitElement {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n }\n\n div[circle] {\n font-size: 29px;\n font-weight: bold;\n width: 100%;\n aspect-ratio: 1;\n display: flex;\n border-radius: 50%;\n border: 1px solid #353b48;\n position: relative;\n background: conic-gradient(yellowgreen 0deg, white 0deg);\n box-shadow: #00000026 5px 5px 5px;\n }\n div[inner-circle] {\n width: 90%;\n aspect-ratio: 1;\n border-radius: inherit;\n background-color: #353b48;\n margin: auto;\n display: flex;\n flex-direction: column;\n align-items: center;\n color: white;\n justify-content: center;\n box-shadow: inset #00000026 -2px 2px 8px;\n }\n\n div[inner-circle] span {\n display: flex;\n align-items: center;\n }\n\n span[progress-title] {\n font-size: 0.65em;\n margin-bottom: -5%;\n }\n `\n ]\n\n @property({ type: Number }) value: number = 0\n @property({ type: String }) suffix: string = ''\n @property({ type: String }) titleText: string = ''\n @property({ type: String }) fontSize: string = '10px'\n @property({ type: String }) fontColor: string = ''\n @property({ type: String }) borderStyle: string = ''\n @property({ type: String }) innerCircleSize: string = '10%'\n @property({ type: String }) shadow: string = ''\n @property({ type: String }) circleColor: string = 'yellowgreen'\n @property({ type: String }) background: string = ''\n\n @query('div[circle]') circle!: HTMLDivElement\n @query('div[inner-circle]') innerCircle!: HTMLDivElement\n @query('span[progress-title]') progressTitle?: HTMLSpanElement\n\n firstUpdated() {\n if (this.fontSize) {\n this.circle.style.fontSize = this.fontSize\n }\n if (this.fontColor) {\n this.innerCircle.style.color = this.fontColor\n }\n if (this.borderStyle) {\n this.circle.style.border = this.borderStyle\n }\n if (this.innerCircleSize) {\n this.innerCircle.style.width = `calc(100% - ${this.innerCircleSize})`\n }\n if (this.shadow) {\n this.circle.style.boxShadow = this.shadow\n }\n if (this.background) {\n this.innerCircle.style.background = this.background\n }\n if (this.progressTitle && this.circleColor) {\n this.progressTitle.style.color = this.circleColor\n }\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('value')) {\n this.updateCircleBackground()\n }\n }\n\n updateCircleBackground() {\n const position = this.value * 3.6 // 360 = 100%\n this.circle.style.background = `conic-gradient(${this.circleColor} ${position}deg, ${this.background} 0deg)`\n }\n\n render() {\n return html`\n <div circle>\n <div inner-circle>\n ${this.titleText ? html`<span progress-title>${this.titleText}</span>` : ''}\n <span>${this.value}${this.suffix}</span>\n </div>\n </div>\n `\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { LitElement } from 'lit';
2
+ import '@material/web/textfield/outlined-text-field.js';
3
+ import '@material/web/button/elevated-button.js';
4
+ declare const ProjectCreatePopup_base: (new (...args: any[]) => LitElement) & typeof LitElement;
5
+ export declare class ProjectCreatePopup extends ProjectCreatePopup_base {
6
+ static styles: import("lit").CSSResult[];
7
+ private projectName;
8
+ private refreshFn;
9
+ render(): import("lit-html").TemplateResult<1>;
10
+ private _createProject;
11
+ private _close;
12
+ private _onInputChange;
13
+ }
14
+ export {};
@@ -0,0 +1,153 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { css, html, LitElement } from 'lit';
3
+ import { customElement, property, state } from 'lit/decorators.js';
4
+ import { client } from '@operato/graphql';
5
+ import { i18next, localize } from '@operato/i18n';
6
+ import { notify } from '@operato/layout';
7
+ import gql from 'graphql-tag';
8
+ import '@material/web/textfield/outlined-text-field.js';
9
+ import '@material/web/button/elevated-button.js';
10
+ let ProjectCreatePopup = class ProjectCreatePopup extends localize(i18next)(LitElement) {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.projectName = '';
14
+ }
15
+ render() {
16
+ return html `
17
+ <div body>
18
+ <div input-container>
19
+ <label>프로젝트 이름</label>
20
+ <md-outlined-text-field
21
+ name="projectName"
22
+ type="text"
23
+ placeholder="신규 프로젝트명"
24
+ .value=${this.projectName}
25
+ @input=${this._onInputChange}
26
+ >
27
+ </md-outlined-text-field>
28
+ </div>
29
+
30
+ <div button-container>
31
+ <md-elevated-button @click=${this._createProject}>
32
+ <md-icon slot="icon">add</md-icon>프로젝트 생성
33
+ </md-elevated-button>
34
+ <md-elevated-button @click=${this._close}> <md-icon slot="icon">close</md-icon>취소 </md-elevated-button>
35
+ </div>
36
+ </div>
37
+ `;
38
+ }
39
+ // 프로젝트 생성
40
+ async _createProject() {
41
+ if (!this.projectName) {
42
+ notify({ level: 'warn', message: '프로젝트 이름은 필수 값 입니다.' });
43
+ return;
44
+ }
45
+ const response = await client.mutate({
46
+ mutation: gql `
47
+ mutation CreateProject($project: NewProject!) {
48
+ response: createProject(project: $project) {
49
+ id
50
+ }
51
+ }
52
+ `,
53
+ variables: {
54
+ project: {
55
+ name: this.projectName
56
+ }
57
+ }
58
+ });
59
+ if (!response.errors) {
60
+ notify({ message: '저장되었습니다.' });
61
+ }
62
+ // 설정 정보 리스트 다시 조회
63
+ this.refreshFn();
64
+ // 팝업 템플릿을 닫기 위한 동작
65
+ history.back();
66
+ }
67
+ _close() {
68
+ history.back();
69
+ }
70
+ // Input 요소의 값이 변경될 때 호출되는 콜백 함수
71
+ _onInputChange(event) {
72
+ const target = event.target;
73
+ this.projectName = target.value;
74
+ }
75
+ };
76
+ ProjectCreatePopup.styles = [
77
+ css `
78
+ :host {
79
+ display: flex;
80
+ flex-direction: column;
81
+ background-color: #fff;
82
+ width: 100%;
83
+ }
84
+
85
+ div[body] {
86
+ flex: 1;
87
+
88
+ label {
89
+ color: #4e5055;
90
+ font-size: 16px;
91
+ }
92
+
93
+ div[input-container] {
94
+ display: flex;
95
+ align-items: center;
96
+ justify-content: center;
97
+ margin-top: 22px;
98
+
99
+ md-outlined-text-field {
100
+ width: 60%;
101
+ margin-left: 15px;
102
+
103
+ --md-outlined-text-field-container-shape: 9px;
104
+ --md-sys-color-primary: #586878;
105
+ --md-sys-color-surface-container-highest: transparent;
106
+ --md-outlined-text-field-label-text-color: #999999;
107
+ --md-outlined-text-field-input-text-line-height: 20px;
108
+ --md-outlined-text-field-input-text-size: 16px;
109
+ --md-outlined-field-bottom-space: 10px;
110
+ --md-outlined-field-top-space: 10px;
111
+ }
112
+ }
113
+
114
+ div[button-container] {
115
+ margin-top: 50px;
116
+ margin-bottom: 20px;
117
+ text-align: center;
118
+
119
+ md-elevated-button {
120
+ margin: 0px 5px;
121
+
122
+ --md-elevated-button-container-height: 40px;
123
+ --md-elevated-button-container-color: #fff;
124
+ --md-elevated-button-label-text-size: 16px;
125
+ }
126
+ md-elevated-button:first-child {
127
+ --md-elevated-button-container-color: #0595e5;
128
+ --md-elevated-button-label-text-color: #fff;
129
+ --md-elevated-button-hover-label-text-color: #fff;
130
+ --md-elevated-button-pressed-label-text-color: #fff;
131
+ --md-elevated-button-focus-label-text-color: #fff;
132
+ --md-elevated-button-icon-color: #fff;
133
+ --md-elevated-button-hover-icon-color: #fff;
134
+ --md-elevated-button-pressed-icon-color: #fff;
135
+ --md-elevated-button-focus-icon-color: #fff;
136
+ }
137
+ }
138
+ }
139
+ `
140
+ ];
141
+ __decorate([
142
+ state(),
143
+ __metadata("design:type", String)
144
+ ], ProjectCreatePopup.prototype, "projectName", void 0);
145
+ __decorate([
146
+ property({ type: Function }),
147
+ __metadata("design:type", Function)
148
+ ], ProjectCreatePopup.prototype, "refreshFn", void 0);
149
+ ProjectCreatePopup = __decorate([
150
+ customElement('project-create-popup')
151
+ ], ProjectCreatePopup);
152
+ export { ProjectCreatePopup };
153
+ //# sourceMappingURL=project-create-popup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-create-popup.js","sourceRoot":"","sources":["../../../client/pages/project/project-create-popup.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,gDAAgD,CAAA;AACvD,OAAO,yCAAyC,CAAA;AAGzC,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;IAA9D;;QAmEY,gBAAW,GAAW,EAAE,CAAA;IAsE3C,CAAC;IAnEC,MAAM;QACJ,OAAO,IAAI,CAAA;;;;;;;;qBAQM,IAAI,CAAC,WAAW;qBAChB,IAAI,CAAC,cAAc;;;;;;uCAMD,IAAI,CAAC,cAAc;;;uCAGnB,IAAI,CAAC,MAAM;;;KAG7C,CAAA;IACH,CAAC;IAED,UAAU;IACF,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAA;YACxD,OAAM;SACP;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,GAAG,CAAA;;;;;;OAMZ;YACD,SAAS,EAAE;gBACT,OAAO,EAAE;oBACP,IAAI,EAAE,IAAI,CAAC,WAAW;iBACvB;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACpB,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;SAChC;QAED,kBAAkB;QAClB,IAAI,CAAC,SAAS,EAAE,CAAA;QAEhB,mBAAmB;QACnB,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC;IAEO,MAAM;QACZ,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC;IAED,gCAAgC;IACxB,cAAc,CAAC,KAAiB;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B,CAAA;QAC/C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAA;IACjC,CAAC;;AAvIM,yBAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8DF;CACF,CAAA;AAED;IAAC,KAAK,EAAE;;uDAAiC;AACzC;IAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;8BAAqB,QAAQ;qDAAA;AApE/C,kBAAkB;IAD9B,aAAa,CAAC,sBAAsB,CAAC;GACzB,kBAAkB,CAyI9B;SAzIY,kBAAkB","sourcesContent":["import { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify } from '@operato/layout'\nimport gql from 'graphql-tag'\nimport '@material/web/textfield/outlined-text-field.js'\nimport '@material/web/button/elevated-button.js'\n\n@customElement('project-create-popup')\nexport class ProjectCreatePopup extends localize(i18next)(LitElement) {\n static styles = [\n css`\n :host {\n display: flex;\n flex-direction: column;\n background-color: #fff;\n width: 100%;\n }\n\n div[body] {\n flex: 1;\n\n label {\n color: #4e5055;\n font-size: 16px;\n }\n\n div[input-container] {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: 22px;\n\n md-outlined-text-field {\n width: 60%;\n margin-left: 15px;\n\n --md-outlined-text-field-container-shape: 9px;\n --md-sys-color-primary: #586878;\n --md-sys-color-surface-container-highest: transparent;\n --md-outlined-text-field-label-text-color: #999999;\n --md-outlined-text-field-input-text-line-height: 20px;\n --md-outlined-text-field-input-text-size: 16px;\n --md-outlined-field-bottom-space: 10px;\n --md-outlined-field-top-space: 10px;\n }\n }\n\n div[button-container] {\n margin-top: 50px;\n margin-bottom: 20px;\n text-align: center;\n\n md-elevated-button {\n margin: 0px 5px;\n\n --md-elevated-button-container-height: 40px;\n --md-elevated-button-container-color: #fff;\n --md-elevated-button-label-text-size: 16px;\n }\n md-elevated-button:first-child {\n --md-elevated-button-container-color: #0595e5;\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 @state() private projectName: string = ''\n @property({ type: Function }) private refreshFn!: Function\n\n render() {\n return html`\n <div body>\n <div input-container>\n <label>프로젝트 이름</label>\n <md-outlined-text-field\n name=\"projectName\"\n type=\"text\"\n placeholder=\"신규 프로젝트명\"\n .value=${this.projectName}\n @input=${this._onInputChange}\n >\n </md-outlined-text-field>\n </div>\n\n <div button-container>\n <md-elevated-button @click=${this._createProject}>\n <md-icon slot=\"icon\">add</md-icon>프로젝트 생성\n </md-elevated-button>\n <md-elevated-button @click=${this._close}> <md-icon slot=\"icon\">close</md-icon>취소 </md-elevated-button>\n </div>\n </div>\n `\n }\n\n // 프로젝트 생성\n private async _createProject() {\n if (!this.projectName) {\n notify({ level: 'warn', message: '프로젝트 이름은 필수 값 입니다.' })\n return\n }\n\n const response = await client.mutate({\n mutation: gql`\n mutation CreateProject($project: NewProject!) {\n response: createProject(project: $project) {\n id\n }\n }\n `,\n variables: {\n project: {\n name: this.projectName\n }\n }\n })\n\n if (!response.errors) {\n notify({ message: '저장되었습니다.' })\n }\n\n // 설정 정보 리스트 다시 조회\n this.refreshFn()\n\n // 팝업 템플릿을 닫기 위한 동작\n history.back()\n }\n\n private _close() {\n history.back()\n }\n\n // Input 요소의 값이 변경될 때 호출되는 콜백 함수\n private _onInputChange(event: InputEvent) {\n const target = event.target as HTMLInputElement\n this.projectName = target.value\n }\n}\n"]}
@@ -0,0 +1,35 @@
1
+ import { PageView } from '@operato/shell';
2
+ import { PageLifecycle } from '@operato/shell/dist/src/app/pages/page-view';
3
+ import { Project } from './project-list';
4
+ import '@material/web/button/elevated-button.js';
5
+ import '@material/web/textfield/outlined-text-field.js';
6
+ import '@material/web/button/outlined-button.js';
7
+ import './ox-progress-circle';
8
+ export interface InspectionSummary {
9
+ request: number;
10
+ pass: number;
11
+ fail: number;
12
+ }
13
+ interface Weather {
14
+ rain: number;
15
+ temperature: number;
16
+ humidity: number;
17
+ wind: string;
18
+ }
19
+ declare const ProjectDetail_base: typeof PageView & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/types/src/types").ScopedElementsHost>;
20
+ export declare class ProjectDetail extends ProjectDetail_base {
21
+ static styles: import("lit").CSSResult[];
22
+ get context(): {
23
+ title: string;
24
+ };
25
+ private defaultProject;
26
+ projectId: string;
27
+ project: Project;
28
+ inspectionSummary: InspectionSummary;
29
+ weather: Weather;
30
+ render(): import("lit-html").TemplateResult<1>;
31
+ pageInitialized(lifecycle: PageLifecycle): Promise<void>;
32
+ pageUpdated(changes: any, lifecycle: PageLifecycle): Promise<void>;
33
+ initProject(projectId?: string): Promise<void>;
34
+ }
35
+ export {};