@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,133 @@
1
+ /**
2
+ * @license Copyright © HatioLab Inc. All rights reserved.
3
+ */
4
+
5
+ import { PropertyValues, LitElement, css, html } from 'lit'
6
+ import { customElement, property, query } from 'lit/decorators.js'
7
+ import { ScrollbarStyles } from '@operato/styles'
8
+
9
+ /**
10
+ WEB Component for code-mirror code editor.
11
+
12
+ Example:
13
+ <ox-progress-circle
14
+ .value=${70}
15
+ titleText="전체"
16
+ suffix="%"
17
+ fontSize="29px"
18
+ fontColor="#4E5055"
19
+ borderStyle="none"
20
+ innerCircleSize="28%"
21
+ circleColor="#0595E5"
22
+ shadow="#00000026 4px 4px 4px"
23
+ background="#eaf5fd"
24
+ ></ox-progress-circle>
25
+ */
26
+ @customElement('ox-progress-circle')
27
+ export class OxProgressCircle extends LitElement {
28
+ static styles = [
29
+ ScrollbarStyles,
30
+ css`
31
+ :host {
32
+ display: flex;
33
+ }
34
+
35
+ div[circle] {
36
+ font-size: 29px;
37
+ font-weight: bold;
38
+ width: 100%;
39
+ aspect-ratio: 1;
40
+ display: flex;
41
+ border-radius: 50%;
42
+ border: 1px solid #353b48;
43
+ position: relative;
44
+ background: conic-gradient(yellowgreen 0deg, white 0deg);
45
+ box-shadow: #00000026 5px 5px 5px;
46
+ }
47
+ div[inner-circle] {
48
+ width: 90%;
49
+ aspect-ratio: 1;
50
+ border-radius: inherit;
51
+ background-color: #353b48;
52
+ margin: auto;
53
+ display: flex;
54
+ flex-direction: column;
55
+ align-items: center;
56
+ color: white;
57
+ justify-content: center;
58
+ box-shadow: inset #00000026 -2px 2px 8px;
59
+ }
60
+
61
+ div[inner-circle] span {
62
+ display: flex;
63
+ align-items: center;
64
+ }
65
+
66
+ span[progress-title] {
67
+ font-size: 0.65em;
68
+ margin-bottom: -5%;
69
+ }
70
+ `
71
+ ]
72
+
73
+ @property({ type: Number }) value: number = 0
74
+ @property({ type: String }) suffix: string = ''
75
+ @property({ type: String }) titleText: string = ''
76
+ @property({ type: String }) fontSize: string = '10px'
77
+ @property({ type: String }) fontColor: string = ''
78
+ @property({ type: String }) borderStyle: string = ''
79
+ @property({ type: String }) innerCircleSize: string = '10%'
80
+ @property({ type: String }) shadow: string = ''
81
+ @property({ type: String }) circleColor: string = 'yellowgreen'
82
+ @property({ type: String }) background: string = ''
83
+
84
+ @query('div[circle]') circle!: HTMLDivElement
85
+ @query('div[inner-circle]') innerCircle!: HTMLDivElement
86
+ @query('span[progress-title]') progressTitle?: HTMLSpanElement
87
+
88
+ firstUpdated() {
89
+ if (this.fontSize) {
90
+ this.circle.style.fontSize = this.fontSize
91
+ }
92
+ if (this.fontColor) {
93
+ this.innerCircle.style.color = this.fontColor
94
+ }
95
+ if (this.borderStyle) {
96
+ this.circle.style.border = this.borderStyle
97
+ }
98
+ if (this.innerCircleSize) {
99
+ this.innerCircle.style.width = `calc(100% - ${this.innerCircleSize})`
100
+ }
101
+ if (this.shadow) {
102
+ this.circle.style.boxShadow = this.shadow
103
+ }
104
+ if (this.background) {
105
+ this.innerCircle.style.background = this.background
106
+ }
107
+ if (this.progressTitle && this.circleColor) {
108
+ this.progressTitle.style.color = this.circleColor
109
+ }
110
+ }
111
+
112
+ updated(changes: PropertyValues<this>) {
113
+ if (changes.has('value')) {
114
+ this.updateCircleBackground()
115
+ }
116
+ }
117
+
118
+ updateCircleBackground() {
119
+ const position = this.value * 3.6 // 360 = 100%
120
+ this.circle.style.background = `conic-gradient(${this.circleColor} ${position}deg, ${this.background} 0deg)`
121
+ }
122
+
123
+ render() {
124
+ return html`
125
+ <div circle>
126
+ <div inner-circle>
127
+ ${this.titleText ? html`<span progress-title>${this.titleText}</span>` : ''}
128
+ <span>${this.value}${this.suffix}</span>
129
+ </div>
130
+ </div>
131
+ `
132
+ }
133
+ }
@@ -0,0 +1,148 @@
1
+ import { css, html, LitElement } from 'lit'
2
+ import { customElement, property, state } from 'lit/decorators.js'
3
+ import { client } from '@operato/graphql'
4
+ import { i18next, localize } from '@operato/i18n'
5
+ import { notify } from '@operato/layout'
6
+ import gql from 'graphql-tag'
7
+ import '@material/web/textfield/outlined-text-field.js'
8
+ import '@material/web/button/elevated-button.js'
9
+
10
+ @customElement('project-create-popup')
11
+ export class ProjectCreatePopup extends localize(i18next)(LitElement) {
12
+ static styles = [
13
+ css`
14
+ :host {
15
+ display: flex;
16
+ flex-direction: column;
17
+ background-color: #fff;
18
+ width: 100%;
19
+ }
20
+
21
+ div[body] {
22
+ flex: 1;
23
+
24
+ label {
25
+ color: #4e5055;
26
+ font-size: 16px;
27
+ }
28
+
29
+ div[input-container] {
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: center;
33
+ margin-top: 22px;
34
+
35
+ md-outlined-text-field {
36
+ width: 60%;
37
+ margin-left: 15px;
38
+
39
+ --md-outlined-text-field-container-shape: 9px;
40
+ --md-sys-color-primary: #586878;
41
+ --md-sys-color-surface-container-highest: transparent;
42
+ --md-outlined-text-field-label-text-color: #999999;
43
+ --md-outlined-text-field-input-text-line-height: 20px;
44
+ --md-outlined-text-field-input-text-size: 16px;
45
+ --md-outlined-field-bottom-space: 10px;
46
+ --md-outlined-field-top-space: 10px;
47
+ }
48
+ }
49
+
50
+ div[button-container] {
51
+ margin-top: 50px;
52
+ margin-bottom: 20px;
53
+ text-align: center;
54
+
55
+ md-elevated-button {
56
+ margin: 0px 5px;
57
+
58
+ --md-elevated-button-container-height: 40px;
59
+ --md-elevated-button-container-color: #fff;
60
+ --md-elevated-button-label-text-size: 16px;
61
+ }
62
+ md-elevated-button:first-child {
63
+ --md-elevated-button-container-color: #0595e5;
64
+ --md-elevated-button-label-text-color: #fff;
65
+ --md-elevated-button-hover-label-text-color: #fff;
66
+ --md-elevated-button-pressed-label-text-color: #fff;
67
+ --md-elevated-button-focus-label-text-color: #fff;
68
+ --md-elevated-button-icon-color: #fff;
69
+ --md-elevated-button-hover-icon-color: #fff;
70
+ --md-elevated-button-pressed-icon-color: #fff;
71
+ --md-elevated-button-focus-icon-color: #fff;
72
+ }
73
+ }
74
+ }
75
+ `
76
+ ]
77
+
78
+ @state() private projectName: string = ''
79
+ @property({ type: Function }) private refreshFn!: Function
80
+
81
+ render() {
82
+ return html`
83
+ <div body>
84
+ <div input-container>
85
+ <label>프로젝트 이름</label>
86
+ <md-outlined-text-field
87
+ name="projectName"
88
+ type="text"
89
+ placeholder="신규 프로젝트명"
90
+ .value=${this.projectName}
91
+ @input=${this._onInputChange}
92
+ >
93
+ </md-outlined-text-field>
94
+ </div>
95
+
96
+ <div button-container>
97
+ <md-elevated-button @click=${this._createProject}>
98
+ <md-icon slot="icon">add</md-icon>프로젝트 생성
99
+ </md-elevated-button>
100
+ <md-elevated-button @click=${this._close}> <md-icon slot="icon">close</md-icon>취소 </md-elevated-button>
101
+ </div>
102
+ </div>
103
+ `
104
+ }
105
+
106
+ // 프로젝트 생성
107
+ private async _createProject() {
108
+ if (!this.projectName) {
109
+ notify({ level: 'warn', message: '프로젝트 이름은 필수 값 입니다.' })
110
+ return
111
+ }
112
+
113
+ const response = await client.mutate({
114
+ mutation: gql`
115
+ mutation CreateProject($project: NewProject!) {
116
+ response: createProject(project: $project) {
117
+ id
118
+ }
119
+ }
120
+ `,
121
+ variables: {
122
+ project: {
123
+ name: this.projectName
124
+ }
125
+ }
126
+ })
127
+
128
+ if (!response.errors) {
129
+ notify({ message: '저장되었습니다.' })
130
+ }
131
+
132
+ // 설정 정보 리스트 다시 조회
133
+ this.refreshFn()
134
+
135
+ // 팝업 템플릿을 닫기 위한 동작
136
+ history.back()
137
+ }
138
+
139
+ private _close() {
140
+ history.back()
141
+ }
142
+
143
+ // Input 요소의 값이 변경될 때 호출되는 콜백 함수
144
+ private _onInputChange(event: InputEvent) {
145
+ const target = event.target as HTMLInputElement
146
+ this.projectName = target.value
147
+ }
148
+ }