@things-factory/dataset 8.0.0-beta.9 → 8.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 (134) 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 +278 -0
  4. package/client/activities/activity-data-review-view.ts +226 -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.js +19 -10
  44. package/dist-client/activities/activity-data-review-edit.js.map +1 -1
  45. package/dist-client/activities/activity-data-review-view.js +80 -0
  46. package/dist-client/activities/activity-data-review-view.js.map +1 -1
  47. package/dist-client/pages/data-entry/data-entry-list-page.js +2 -2
  48. package/dist-client/pages/data-entry/data-entry-list-page.js.map +1 -1
  49. package/dist-client/tsconfig.tsbuildinfo +1 -1
  50. package/dist-server/controllers/create-data-ooc.js +2 -0
  51. package/dist-server/controllers/create-data-ooc.js.map +1 -1
  52. package/dist-server/service/data-archive/index.d.ts +1 -1
  53. package/dist-server/service/data-ooc/index.d.ts +1 -1
  54. package/dist-server/service/data-sample/data-sample-query.d.ts +1 -1
  55. package/dist-server/service/data-sample/data-sample-query.js +3 -3
  56. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  57. package/dist-server/service/data-sample/index.d.ts +1 -1
  58. package/dist-server/service/data-set/index.d.ts +1 -1
  59. package/dist-server/service/index.d.ts +2 -2
  60. package/dist-server/tsconfig.tsbuildinfo +1 -1
  61. package/package.json +26 -26
  62. package/server/activities/activity-data-collect.ts +100 -0
  63. package/server/activities/activity-data-review.ts +109 -0
  64. package/server/activities/activity-ooc-resolve.ts +123 -0
  65. package/server/activities/activity-ooc-review.ts +95 -0
  66. package/server/activities/index.ts +11 -0
  67. package/server/controllers/create-data-ooc.ts +80 -0
  68. package/server/controllers/create-data-sample.ts +323 -0
  69. package/server/controllers/data-use-case.ts +98 -0
  70. package/server/controllers/finalize-data-collection.ts +388 -0
  71. package/server/controllers/index.ts +6 -0
  72. package/server/controllers/issue-data-collection-task.ts +70 -0
  73. package/server/controllers/issue-ooc-resolve.ts +58 -0
  74. package/server/controllers/issue-ooc-review.ts +52 -0
  75. package/server/controllers/jasper-report.ts +186 -0
  76. package/server/controllers/query-data-summary-by-period.ts +178 -0
  77. package/server/controllers/shiny-report.ts +54 -0
  78. package/server/engine/index.ts +1 -0
  79. package/server/engine/task/create-data-sample.ts +100 -0
  80. package/server/engine/task/index.ts +2 -0
  81. package/server/engine/task/issue-collect-data.ts +45 -0
  82. package/server/index.ts +8 -0
  83. package/server/routes.ts +188 -0
  84. package/server/service/data-archive/data-archive-mutation.ts +273 -0
  85. package/server/service/data-archive/data-archive-query.ts +58 -0
  86. package/server/service/data-archive/data-archive-type.ts +48 -0
  87. package/server/service/data-archive/data-archive.ts +69 -0
  88. package/server/service/data-archive/index.ts +6 -0
  89. package/server/service/data-key-set/data-key-item-type.ts +31 -0
  90. package/server/service/data-key-set/data-key-set-mutation.ts +201 -0
  91. package/server/service/data-key-set/data-key-set-query.ts +68 -0
  92. package/server/service/data-key-set/data-key-set-type.ts +70 -0
  93. package/server/service/data-key-set/data-key-set.ts +86 -0
  94. package/server/service/data-key-set/index.ts +6 -0
  95. package/server/service/data-ooc/data-ooc-mutation.ts +154 -0
  96. package/server/service/data-ooc/data-ooc-query.ts +106 -0
  97. package/server/service/data-ooc/data-ooc-subscription.ts +48 -0
  98. package/server/service/data-ooc/data-ooc-type.ts +71 -0
  99. package/server/service/data-ooc/data-ooc.ts +259 -0
  100. package/server/service/data-ooc/index.ts +7 -0
  101. package/server/service/data-sample/data-sample-mutation.ts +18 -0
  102. package/server/service/data-sample/data-sample-query.ts +215 -0
  103. package/server/service/data-sample/data-sample-type.ts +47 -0
  104. package/server/service/data-sample/data-sample.ts +193 -0
  105. package/server/service/data-sample/index.ts +6 -0
  106. package/server/service/data-sensor/data-sensor-mutation.ts +116 -0
  107. package/server/service/data-sensor/data-sensor-query.ts +76 -0
  108. package/server/service/data-sensor/data-sensor-type.ts +104 -0
  109. package/server/service/data-sensor/data-sensor.ts +126 -0
  110. package/server/service/data-sensor/index.ts +6 -0
  111. package/server/service/data-set/data-item-type.ts +155 -0
  112. package/server/service/data-set/data-set-mutation.ts +552 -0
  113. package/server/service/data-set/data-set-query.ts +461 -0
  114. package/server/service/data-set/data-set-type.ts +204 -0
  115. package/server/service/data-set/data-set.ts +326 -0
  116. package/server/service/data-set/index.ts +6 -0
  117. package/server/service/data-set-history/data-set-history-query.ts +126 -0
  118. package/server/service/data-set-history/data-set-history-type.ts +12 -0
  119. package/server/service/data-set-history/data-set-history.ts +217 -0
  120. package/server/service/data-set-history/event-subscriber.ts +17 -0
  121. package/server/service/data-set-history/index.ts +7 -0
  122. package/server/service/data-spec/data-spec-manager.ts +21 -0
  123. package/server/service/data-spec/data-spec-query.ts +21 -0
  124. package/server/service/data-spec/data-spec.ts +45 -0
  125. package/server/service/data-spec/index.ts +5 -0
  126. package/server/service/data-summary/data-summary-mutation.ts +45 -0
  127. package/server/service/data-summary/data-summary-query.ts +179 -0
  128. package/server/service/data-summary/data-summary-type.ts +86 -0
  129. package/server/service/data-summary/data-summary.ts +170 -0
  130. package/server/service/data-summary/index.ts +7 -0
  131. package/server/service/index.ts +57 -0
  132. package/server/tsconfig.json +10 -0
  133. package/server/utils/config-resolver.ts +29 -0
  134. package/server/utils/index.ts +1 -0
@@ -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
+ }