@things-factory/dataset 8.0.0-beta.9 → 8.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. package/client/activities/activity-data-collect-edit.ts +105 -0
  2. package/client/activities/activity-data-collect-view.ts +91 -0
  3. package/client/activities/activity-data-review-edit.ts +133 -0
  4. package/client/activities/activity-data-review-view.ts +145 -0
  5. package/client/activities/activity-ooc-resolve-edit.ts +195 -0
  6. package/client/activities/activity-ooc-resolve-view.ts +143 -0
  7. package/client/activities/activity-ooc-review-edit.ts +173 -0
  8. package/client/activities/activity-ooc-review-view.ts +129 -0
  9. package/client/bootstrap.ts +35 -0
  10. package/client/components/data-entry-form.ts +109 -0
  11. package/client/index.ts +1 -0
  12. package/client/pages/data-archive/data-archive-list-page.ts +277 -0
  13. package/client/pages/data-archive/data-archive-request-popup.ts +177 -0
  14. package/client/pages/data-entry/data-entry-list-page.ts +464 -0
  15. package/client/pages/data-key-set/data-key-item-list.ts +183 -0
  16. package/client/pages/data-key-set/data-key-set-importer.ts +89 -0
  17. package/client/pages/data-key-set/data-key-set-list-page.ts +413 -0
  18. package/client/pages/data-ooc/data-ooc-list-page.ts +549 -0
  19. package/client/pages/data-ooc/data-ooc-page.ts +164 -0
  20. package/client/pages/data-ooc/data-ooc-view.ts +236 -0
  21. package/client/pages/data-ooc/data-oocs-page.ts +200 -0
  22. package/client/pages/data-report/data-report-embed-page.ts +108 -0
  23. package/client/pages/data-report/data-report-list-page.ts +454 -0
  24. package/client/pages/data-report/data-report-samples-page.ts +174 -0
  25. package/client/pages/data-report/jasper-report-oocs-page.ts +110 -0
  26. package/client/pages/data-report/jasper-report-samples-crosstab-page.ts +110 -0
  27. package/client/pages/data-report/jasper-report-samples-page.ts +110 -0
  28. package/client/pages/data-sample/data-sample-list-page.ts +442 -0
  29. package/client/pages/data-sample/data-sample-page.ts +55 -0
  30. package/client/pages/data-sample/data-sample-search-page.ts +424 -0
  31. package/client/pages/data-sample/data-sample-view.ts +292 -0
  32. package/client/pages/data-sample/data-samples-page.ts +249 -0
  33. package/client/pages/data-sensor/data-sensor-list-page.ts +456 -0
  34. package/client/pages/data-set/data-item-list.ts +304 -0
  35. package/client/pages/data-set/data-set-importer.ts +89 -0
  36. package/client/pages/data-set/data-set-list-page.ts +1078 -0
  37. package/client/pages/data-summary/data-summary-list-page.ts +363 -0
  38. package/client/pages/data-summary/data-summary-period-page.ts +439 -0
  39. package/client/pages/data-summary/data-summary-search-page.ts +426 -0
  40. package/client/pages/data-summary/data-summary-view.ts +133 -0
  41. package/client/route.ts +91 -0
  42. package/client/tsconfig.json +13 -0
  43. package/dist-client/activities/activity-data-review-edit.d.ts +1 -5
  44. package/dist-client/activities/activity-data-review-edit.js +5 -143
  45. package/dist-client/activities/activity-data-review-edit.js.map +1 -1
  46. package/dist-client/pages/data-entry/data-entry-list-page.js +2 -2
  47. package/dist-client/pages/data-entry/data-entry-list-page.js.map +1 -1
  48. package/dist-client/tsconfig.tsbuildinfo +1 -1
  49. package/dist-server/activities/activity-data-review.js +5 -18
  50. package/dist-server/activities/activity-data-review.js.map +1 -1
  51. package/dist-server/activities/activity-ooc-review.js +52 -13
  52. package/dist-server/activities/activity-ooc-review.js.map +1 -1
  53. package/dist-server/controllers/create-data-sample.js +94 -4
  54. package/dist-server/controllers/create-data-sample.js.map +1 -1
  55. package/dist-server/controllers/index.d.ts +0 -3
  56. package/dist-server/controllers/index.js +0 -3
  57. package/dist-server/controllers/index.js.map +1 -1
  58. package/dist-server/service/data-sample/data-sample-query.d.ts +1 -1
  59. package/dist-server/service/data-sample/data-sample-query.js +3 -3
  60. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  61. package/dist-server/service/index.d.ts +1 -1
  62. package/dist-server/tsconfig.tsbuildinfo +1 -1
  63. package/package.json +26 -26
  64. package/server/activities/activity-data-collect.ts +100 -0
  65. package/server/activities/activity-data-review.ts +82 -0
  66. package/server/activities/activity-ooc-resolve.ts +123 -0
  67. package/server/activities/activity-ooc-review.ts +144 -0
  68. package/server/activities/index.ts +11 -0
  69. package/server/controllers/create-data-sample.ts +426 -0
  70. package/server/controllers/data-use-case.ts +98 -0
  71. package/server/controllers/finalize-data-collection.ts +388 -0
  72. package/server/controllers/index.ts +3 -0
  73. package/server/controllers/issue-data-collection-task.ts +70 -0
  74. package/server/controllers/jasper-report.ts +186 -0
  75. package/server/controllers/query-data-summary-by-period.ts +178 -0
  76. package/server/controllers/shiny-report.ts +54 -0
  77. package/server/engine/index.ts +1 -0
  78. package/server/engine/task/create-data-sample.ts +100 -0
  79. package/server/engine/task/index.ts +2 -0
  80. package/server/engine/task/issue-collect-data.ts +45 -0
  81. package/server/index.ts +8 -0
  82. package/server/routes.ts +188 -0
  83. package/server/service/data-archive/data-archive-mutation.ts +273 -0
  84. package/server/service/data-archive/data-archive-query.ts +58 -0
  85. package/server/service/data-archive/data-archive-type.ts +48 -0
  86. package/server/service/data-archive/data-archive.ts +69 -0
  87. package/server/service/data-archive/index.ts +6 -0
  88. package/server/service/data-key-set/data-key-item-type.ts +31 -0
  89. package/server/service/data-key-set/data-key-set-mutation.ts +201 -0
  90. package/server/service/data-key-set/data-key-set-query.ts +68 -0
  91. package/server/service/data-key-set/data-key-set-type.ts +70 -0
  92. package/server/service/data-key-set/data-key-set.ts +86 -0
  93. package/server/service/data-key-set/index.ts +6 -0
  94. package/server/service/data-ooc/data-ooc-mutation.ts +154 -0
  95. package/server/service/data-ooc/data-ooc-query.ts +106 -0
  96. package/server/service/data-ooc/data-ooc-subscription.ts +48 -0
  97. package/server/service/data-ooc/data-ooc-type.ts +71 -0
  98. package/server/service/data-ooc/data-ooc.ts +259 -0
  99. package/server/service/data-ooc/index.ts +7 -0
  100. package/server/service/data-sample/data-sample-mutation.ts +18 -0
  101. package/server/service/data-sample/data-sample-query.ts +215 -0
  102. package/server/service/data-sample/data-sample-type.ts +47 -0
  103. package/server/service/data-sample/data-sample.ts +193 -0
  104. package/server/service/data-sample/index.ts +6 -0
  105. package/server/service/data-sensor/data-sensor-mutation.ts +116 -0
  106. package/server/service/data-sensor/data-sensor-query.ts +76 -0
  107. package/server/service/data-sensor/data-sensor-type.ts +104 -0
  108. package/server/service/data-sensor/data-sensor.ts +126 -0
  109. package/server/service/data-sensor/index.ts +6 -0
  110. package/server/service/data-set/data-item-type.ts +155 -0
  111. package/server/service/data-set/data-set-mutation.ts +552 -0
  112. package/server/service/data-set/data-set-query.ts +461 -0
  113. package/server/service/data-set/data-set-type.ts +204 -0
  114. package/server/service/data-set/data-set.ts +326 -0
  115. package/server/service/data-set/index.ts +6 -0
  116. package/server/service/data-set-history/data-set-history-query.ts +126 -0
  117. package/server/service/data-set-history/data-set-history-type.ts +12 -0
  118. package/server/service/data-set-history/data-set-history.ts +217 -0
  119. package/server/service/data-set-history/event-subscriber.ts +17 -0
  120. package/server/service/data-set-history/index.ts +7 -0
  121. package/server/service/data-spec/data-spec-manager.ts +21 -0
  122. package/server/service/data-spec/data-spec-query.ts +21 -0
  123. package/server/service/data-spec/data-spec.ts +45 -0
  124. package/server/service/data-spec/index.ts +5 -0
  125. package/server/service/data-summary/data-summary-mutation.ts +45 -0
  126. package/server/service/data-summary/data-summary-query.ts +179 -0
  127. package/server/service/data-summary/data-summary-type.ts +86 -0
  128. package/server/service/data-summary/data-summary.ts +170 -0
  129. package/server/service/data-summary/index.ts +7 -0
  130. package/server/service/index.ts +57 -0
  131. package/server/tsconfig.json +10 -0
  132. package/server/utils/config-resolver.ts +29 -0
  133. package/server/utils/index.ts +1 -0
  134. package/translations/en.json +0 -3
  135. package/translations/ja.json +0 -3
  136. package/translations/ko.json +0 -3
  137. package/translations/ms.json +0 -3
  138. package/translations/zh.json +0 -3
  139. package/dist-server/controllers/create-data-ooc.d.ts +0 -4
  140. package/dist-server/controllers/create-data-ooc.js +0 -65
  141. package/dist-server/controllers/create-data-ooc.js.map +0 -1
  142. package/dist-server/controllers/issue-ooc-resolve.d.ts +0 -3
  143. package/dist-server/controllers/issue-ooc-resolve.js +0 -49
  144. package/dist-server/controllers/issue-ooc-resolve.js.map +0 -1
  145. package/dist-server/controllers/issue-ooc-review.d.ts +0 -3
  146. package/dist-server/controllers/issue-ooc-review.js +0 -47
  147. package/dist-server/controllers/issue-ooc-review.js.map +0 -1
@@ -0,0 +1,426 @@
1
+ import '@material/web/icon/icon.js'
2
+ import '@operato/data-grist'
3
+ import '@operato/context/ox-context-page-toolbar.js'
4
+ import './data-summary-view.js'
5
+ import moment from '@operato/moment-timezone-es'
6
+
7
+ import gql from 'graphql-tag'
8
+ import { css, html } from 'lit'
9
+ import { customElement, property, query, state } from 'lit/decorators.js'
10
+ import { connect } from 'pwa-helpers/connect-mixin'
11
+
12
+ import {
13
+ getEditor,
14
+ getRenderer,
15
+ ColumnConfig,
16
+ DataGrist,
17
+ FetchOption,
18
+ SortersControl,
19
+ GristRecord
20
+ } from '@operato/data-grist'
21
+ import { client } from '@operato/graphql'
22
+ import { i18next, localize } from '@operato/i18n'
23
+ import { openPopup } from '@operato/layout'
24
+ import { PageView, store } from '@operato/shell'
25
+ import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
26
+ import { isMobileDevice } from '@operato/utils'
27
+ import { OxPopup } from '@operato/popup'
28
+ import { DataItem } from '@operato/dataset'
29
+
30
+ enum DataSetSummaryPeriodType {
31
+ Hour = 'hour',
32
+ WorkShift = 'work-shift',
33
+ WorkDate = 'work-date',
34
+ Day = 'day'
35
+ }
36
+
37
+ @customElement('data-summary-search-page')
38
+ export class DataSummarySearchPage extends connect(store)(localize(i18next)(PageView)) {
39
+ static styles = [
40
+ ScrollbarStyles,
41
+ CommonHeaderStyles,
42
+ css`
43
+ :host {
44
+ display: flex;
45
+ flex-direction: column;
46
+
47
+ overflow: hidden;
48
+ }
49
+
50
+ ox-grist {
51
+ overflow-y: auto;
52
+ flex: 1;
53
+ }
54
+
55
+ .header {
56
+ grid-template-areas: 'filters actions';
57
+ }
58
+ `
59
+ ]
60
+
61
+ @state() dataSetId?: string
62
+
63
+ @state() dataSet: any
64
+ @state() dataKeySet: any
65
+ @state() dataItems?: DataItem[]
66
+
67
+ @state() gristConfig: any
68
+ @state() mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
69
+
70
+ @query('ox-grist') private grist!: DataGrist
71
+
72
+ get context() {
73
+ return {
74
+ title: i18next.t('title.data-summary search'),
75
+ search: {
76
+ handler: (search: string) => {
77
+ this.grist.searchText = search
78
+ },
79
+ value: this.grist?.searchText || ''
80
+ },
81
+ filter: {
82
+ handler: () => {
83
+ this.grist.toggleHeadroom()
84
+ }
85
+ },
86
+ help: 'dataset/data-summary-search',
87
+ actions: [],
88
+ exportable: {
89
+ name: i18next.t('title.data-summary search'),
90
+ data: this._exportableData.bind(this)
91
+ },
92
+ toolbar: false
93
+ }
94
+ }
95
+
96
+ render() {
97
+ const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')
98
+
99
+ return html`
100
+ <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>
101
+ <div slot="headroom" class="header">
102
+ <div class="filters">
103
+ <ox-filters-form autofocus without-search></ox-filters-form>
104
+ </div>
105
+
106
+ <ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
107
+ </div>
108
+ </ox-grist>
109
+ `
110
+ }
111
+
112
+ pageUpdated(changes, lifecycle) {
113
+ if (this.active) {
114
+ this.dataSetId = lifecycle.resourceId
115
+ return
116
+ }
117
+ }
118
+
119
+ async updated(changes) {
120
+ if (changes.has('dataSetId')) {
121
+ const response = await client.query({
122
+ query: gql`
123
+ query ($id: String!) {
124
+ dataSet(id: $id) {
125
+ id
126
+ summaryPeriod
127
+ dataItems {
128
+ name
129
+ description
130
+ active
131
+ hidden
132
+ tag
133
+ group
134
+ type
135
+ unit
136
+ options
137
+ quota
138
+ spec
139
+ stat
140
+ }
141
+ dataKeySet {
142
+ id
143
+ name
144
+ description
145
+ dataKeyItems {
146
+ name
147
+ description
148
+ dataKey
149
+ tKey
150
+ }
151
+ }
152
+ }
153
+ }
154
+ `,
155
+ variables: {
156
+ id: this.dataSetId
157
+ }
158
+ })
159
+
160
+ this.dataSet = response.data.dataSet
161
+ this.dataKeySet = this.dataSet?.dataKeySet || {}
162
+ this.dataItems = this.dataSet?.dataItems || []
163
+
164
+ this.refreshGristConfig()
165
+
166
+ this.grist.fetch()
167
+ }
168
+ }
169
+
170
+ getKeyColumns() {
171
+ return (
172
+ this.dataKeySet?.dataKeyItems.map((item, index) => {
173
+ return {
174
+ type: 'string',
175
+ name: `key0${index + 1}`,
176
+ header: i18next.t(item.tKey),
177
+ record: {
178
+ editable: false
179
+ },
180
+ sortable: true,
181
+ filter: 'i_like',
182
+ width: 120,
183
+ imex: true
184
+ }
185
+ }) || []
186
+ )
187
+ }
188
+
189
+ getDataColumns() {
190
+ return (
191
+ this.dataItems
192
+ ?.filter(dataItem => dataItem.active && dataItem.stat)
193
+ .map((item, index) => {
194
+ return {
195
+ type: 'number',
196
+ name: `data0${index + 1}`,
197
+ header: i18next.t(item.name),
198
+ record: {
199
+ editable: false
200
+ },
201
+ width: 120,
202
+ imex: true
203
+ }
204
+ }) || []
205
+ )
206
+ }
207
+
208
+ refreshGristConfig() {
209
+ const yesterday = moment().subtract(1, 'day').format('YYYY-MM-DD')
210
+ const today = moment().format('YYYY-MM-DD')
211
+
212
+ this.gristConfig = {
213
+ list: { fields: ['dataSet', 'data', 'updater', 'updatedAt'] },
214
+ columns: [
215
+ { type: 'gutter', gutterName: 'sequence' },
216
+ { type: 'gutter', gutterName: 'row-selector', multiple: true },
217
+ {
218
+ type: 'gutter',
219
+ gutterName: 'button',
220
+ icon: 'assignment',
221
+ title: i18next.t('title.open data summary view'),
222
+ handlers: {
223
+ click: (columns, data, column, record, rowIndex) => {
224
+ openPopup(
225
+ html`
226
+ <data-summary-view data-summary-id=${record.id} style="background-color: white;"></data-summary-view>
227
+ `,
228
+ {
229
+ backdrop: true,
230
+ size: 'large',
231
+ title: i18next.t('title.data-summary view')
232
+ }
233
+ )
234
+ }
235
+ }
236
+ },
237
+ {
238
+ type: 'string',
239
+ name: 'date',
240
+ header: i18next.t('field.date'),
241
+ sortable: true,
242
+ filter: {
243
+ type: 'date',
244
+ operator: 'between',
245
+ value: [yesterday, today]
246
+ },
247
+ width: 80,
248
+ imex: true
249
+ },
250
+ (this.dataSet.summaryPeriod == DataSetSummaryPeriodType.Hour ||
251
+ this.dataSet.summaryPeriod == DataSetSummaryPeriodType.WorkShift) && {
252
+ type: 'string',
253
+ name: 'period',
254
+ header: i18next.t('field.time-period'),
255
+ sortable: true,
256
+ width: 60,
257
+ imex: true
258
+ },
259
+ ...this.getKeyColumns(),
260
+ ...this.getDataColumns(),
261
+ {
262
+ type: 'json5',
263
+ name: 'data',
264
+ header: i18next.t('field.data'),
265
+ record: {
266
+ editable: false
267
+ },
268
+ hidden: true,
269
+ imex: true
270
+ },
271
+ {
272
+ type: 'number',
273
+ name: 'count',
274
+ header: i18next.t('field.count'),
275
+ record: {
276
+ editable: false
277
+ },
278
+ width: 30
279
+ },
280
+ {
281
+ type: 'number',
282
+ name: 'countOoc',
283
+ header: i18next.t('field.count-ooc'),
284
+ record: {
285
+ editable: false
286
+ },
287
+ width: 30
288
+ },
289
+ {
290
+ type: 'number',
291
+ name: 'countOos',
292
+ header: i18next.t('field.count-oos'),
293
+ record: {
294
+ editable: false
295
+ },
296
+ width: 30
297
+ },
298
+ {
299
+ type: 'resource-object',
300
+ name: 'updater',
301
+ header: i18next.t('field.updater'),
302
+ sortable: true,
303
+ width: 120,
304
+ imex: true
305
+ },
306
+ {
307
+ type: 'datetime',
308
+ name: 'updatedAt',
309
+ header: i18next.t('field.updated_at'),
310
+ sortable: true,
311
+ width: 180,
312
+ imex: true
313
+ }
314
+ ].filter(Boolean),
315
+ rows: {
316
+ appendable: false,
317
+ selectable: {
318
+ multiple: true
319
+ }
320
+ },
321
+ sorters: [
322
+ {
323
+ name: 'date',
324
+ desc: true
325
+ }
326
+ ]
327
+ }
328
+ }
329
+
330
+ async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {
331
+ if (!this.dataSetId) {
332
+ return { records: [], total: 0 }
333
+ }
334
+
335
+ const response = await client.query({
336
+ query: gql`
337
+ query ($dataSetId: String!, $filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
338
+ dataSummariesByDataSet(
339
+ dataSetId: $dataSetId
340
+ filters: $filters
341
+ pagination: $pagination
342
+ sortings: $sortings
343
+ ) {
344
+ items {
345
+ id
346
+ name
347
+ description
348
+ date
349
+ period
350
+ key01
351
+ key02
352
+ key03
353
+ key04
354
+ key05
355
+ data01
356
+ data02
357
+ data03
358
+ data04
359
+ data05
360
+ summary
361
+ count
362
+ countOoc
363
+ countOos
364
+ updater {
365
+ id
366
+ name
367
+ }
368
+ updatedAt
369
+ }
370
+ total
371
+ }
372
+ }
373
+ `,
374
+ variables: {
375
+ dataSetId: this.dataSetId,
376
+ filters,
377
+ pagination: { page, limit },
378
+ sortings
379
+ }
380
+ })
381
+
382
+ return {
383
+ total: response.data.dataSummariesByDataSet.total || 0,
384
+ records: response.data.dataSummariesByDataSet.items || []
385
+ }
386
+ }
387
+
388
+ _exportableData() {
389
+ let records = [] as GristRecord[]
390
+ if (this.grist.selected && this.grist.selected.length > 0) {
391
+ records = this.grist.selected
392
+ } else {
393
+ records = this.grist.data.records
394
+ }
395
+
396
+ var headerSetting = this.grist.compiledConfig.columns
397
+ .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
398
+ .map(column => {
399
+ return column.imex === true
400
+ ? {
401
+ header: column.header.renderer(column),
402
+ key: column.name,
403
+ width: column.width,
404
+ type: column.type
405
+ }
406
+ : column.imex
407
+ })
408
+
409
+ var data = records.map(item => {
410
+ return {
411
+ id: item.id,
412
+ ...this.gristConfig.columns
413
+ .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
414
+ .reduce((record, column) => {
415
+ const key = column.imex === true ? column.name : column.imex.key
416
+ record[key] = key
417
+ .split('.')
418
+ .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
419
+ return record
420
+ }, {})
421
+ }
422
+ })
423
+
424
+ return { header: headerSetting, data: data }
425
+ }
426
+ }
@@ -0,0 +1,133 @@
1
+ import '@operato/dataset/ox-data-summary-view.js'
2
+
3
+ import gql from 'graphql-tag'
4
+ import { css, html, LitElement } from 'lit'
5
+ import { customElement, property, query, state } from 'lit/decorators.js'
6
+
7
+ import { client } from '@operato/graphql'
8
+ import { i18next, localize } from '@operato/i18n'
9
+ import { ScrollbarStyles } from '@operato/styles'
10
+ import { DataItem } from '@operato/dataset'
11
+
12
+ type DataSummary = {
13
+ name: string
14
+ description: string
15
+ dataItems?: DataItem[]
16
+ date?: string
17
+ period?: string
18
+ key01?: string
19
+ key02?: string
20
+ key03?: string
21
+ key04?: string
22
+ key05?: string
23
+ count?: number
24
+ countOoc?: number
25
+ countOos?: number
26
+ summary?: { [key: string]: any }
27
+ }
28
+
29
+ @customElement('data-summary-view')
30
+ class DataSummaryView extends localize(i18next)(LitElement) {
31
+ static styles = [
32
+ ScrollbarStyles,
33
+ css`
34
+ :host {
35
+ display: flex;
36
+ flex-direction: column;
37
+
38
+ background-color: var(--md-sys-color-surface);
39
+ }
40
+
41
+ div[content] {
42
+ flex: 1;
43
+
44
+ display: flex;
45
+ overflow: auto;
46
+ }
47
+
48
+ ox-data-summary-view {
49
+ flex: 1;
50
+ padding: var(--spacing-large);
51
+ overflow: auto;
52
+ }
53
+ `
54
+ ]
55
+
56
+ @property({
57
+ type: String,
58
+ attribute: 'data-summary-id'
59
+ })
60
+ dataSummaryId?: string
61
+
62
+ @state() dataSummary?: DataSummary
63
+
64
+ render() {
65
+ return html`
66
+ <div content>
67
+ ${this.dataSummary
68
+ ? html`<ox-data-summary-view .dataSummary=${this.dataSummary}></ox-data-summary-view>`
69
+ : html``}
70
+ </div>
71
+ `
72
+ }
73
+
74
+ updated(changes) {
75
+ if (changes.has('dataSummaryId')) {
76
+ this.fetchDataSummary()
77
+ }
78
+ }
79
+
80
+ async fetchDataSummary() {
81
+ const id = this.dataSummaryId
82
+
83
+ const response = await client.query({
84
+ query: gql`
85
+ query ($id: String!) {
86
+ dataSummary(id: $id) {
87
+ id
88
+ name
89
+ description
90
+ dataSet {
91
+ id
92
+ }
93
+ dataItems {
94
+ name
95
+ description
96
+ active
97
+ hidden
98
+ tag
99
+ group
100
+ type
101
+ unit
102
+ options
103
+ quota
104
+ spec
105
+ stat
106
+ }
107
+ date
108
+ period
109
+ key01
110
+ key02
111
+ key03
112
+ key04
113
+ key05
114
+ summary
115
+ count
116
+ countOoc
117
+ countOos
118
+ updater {
119
+ id
120
+ name
121
+ }
122
+ updatedAt
123
+ }
124
+ }
125
+ `,
126
+ variables: {
127
+ id
128
+ }
129
+ })
130
+
131
+ this.dataSummary = response.data.dataSummary
132
+ }
133
+ }
@@ -0,0 +1,91 @@
1
+ export default function route(page) {
2
+ switch (page) {
3
+ case 'data-set-list':
4
+ import('./pages/data-set/data-set-list-page.js')
5
+ return page
6
+
7
+ case 'data-sensor-list':
8
+ import('./pages/data-sensor/data-sensor-list-page.js')
9
+ return page
10
+
11
+ case 'data-sample':
12
+ import('./pages/data-sample/data-sample-page.js')
13
+ return page
14
+
15
+ case 'data-samples':
16
+ import('./pages/data-sample/data-samples-page.js')
17
+ return page
18
+
19
+ case 'data-sample-list':
20
+ import('./pages/data-sample/data-sample-list-page.js')
21
+ return page
22
+
23
+ case 'data-sample-search':
24
+ import('./pages/data-sample/data-sample-search-page.js')
25
+ return page
26
+
27
+ case 'data-summary-list':
28
+ import('./pages/data-summary/data-summary-list-page.js')
29
+ return page
30
+
31
+ case 'data-summary-search':
32
+ import('./pages/data-summary/data-summary-search-page.js')
33
+ return page
34
+
35
+ case 'data-summary-period':
36
+ import('./pages/data-summary/data-summary-period-page.js')
37
+ return page
38
+
39
+ case 'data-report-samples':
40
+ import('./pages/data-report/data-report-samples-page.js')
41
+ return page
42
+
43
+ case 'data-ooc':
44
+ import('./pages/data-ooc/data-ooc-page.js')
45
+ return page
46
+
47
+ case 'data-oocs':
48
+ import('./pages/data-ooc/data-oocs-page.js')
49
+ return page
50
+
51
+ case 'data-ooc-list':
52
+ import('./pages/data-ooc/data-ooc-list-page.js')
53
+ return page
54
+
55
+ case 'data-entry-list':
56
+ import('./pages/data-entry/data-entry-list-page.js')
57
+ return page
58
+
59
+ case 'data-report-list':
60
+ import('./pages/data-report/data-report-list-page.js')
61
+ return page
62
+
63
+ case 'data-archive-list':
64
+ import('./pages/data-archive/data-archive-list-page.js')
65
+ return page
66
+
67
+ // case 'jasper-report-samples':
68
+ // import('./pages/data-report/jasper-report-samples-page.js')
69
+ // return page
70
+
71
+ // case 'jasper-report-samples-crosstab':
72
+ // import('./pages/data-report/jasper-report-samples-crosstab-page.js')
73
+ // return page
74
+
75
+ // case 'jasper-report-oocs':
76
+ // import('./pages/data-report/jasper-report-oocs-page.js')
77
+ // return page
78
+
79
+ // case 'data-report-embed':
80
+ // import('./pages/data-report/data-report-embed-page')
81
+ // return page
82
+
83
+ case 'data-key-set-list':
84
+ import('./pages/data-key-set/data-key-set-list-page.js')
85
+ return page
86
+
87
+ case 'data-summary-list':
88
+ import('./pages/data-summary/data-summary-list-page')
89
+ return page
90
+ }
91
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "../../tsconfig-base.json",
3
+ "compilerOptions": {
4
+ "experimentalDecorators": true,
5
+ "skipLibCheck": true,
6
+ "strict": true,
7
+ "declaration": true,
8
+ "module": "esnext",
9
+ "outDir": "../dist-client",
10
+ "baseUrl": "./"
11
+ },
12
+ "include": ["./**/*"]
13
+ }
@@ -1,5 +1,3 @@
1
- import '@material/web/icon/icon.js';
2
- import '@material/web/radio/radio.js';
3
1
  import '@operato/dataset/ox-data-entry-form.js';
4
2
  import { LitElement } from 'lit';
5
3
  declare const DataReviewActivityEdit_base: (new (...args: any[]) => LitElement) & typeof LitElement;
@@ -7,12 +5,10 @@ export declare class DataReviewActivityEdit extends DataReviewActivityEdit_base
7
5
  static styles: import("lit").CSSResult[];
8
6
  input?: any;
9
7
  output?: any;
10
- activityThread?: any;
11
8
  dataSample?: any;
12
- form: HTMLFormElement;
13
9
  render(): import("lit-html").TemplateResult<1>;
14
10
  onChangeInstruction(e: Event): void;
15
11
  updated(changes: any): void;
16
- fetchDataSample(): Promise<void>;
12
+ fetchDataAssign(): Promise<void>;
17
13
  }
18
14
  export {};