@things-factory/dataset 8.0.0-beta.1 → 8.0.0-beta.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. package/package.json +13 -13
  2. package/client/activities/activity-data-collect-edit.ts +0 -105
  3. package/client/activities/activity-data-collect-view.ts +0 -91
  4. package/client/activities/activity-data-review-edit.ts +0 -133
  5. package/client/activities/activity-data-review-view.ts +0 -145
  6. package/client/activities/activity-ooc-resolve-edit.ts +0 -195
  7. package/client/activities/activity-ooc-resolve-view.ts +0 -143
  8. package/client/activities/activity-ooc-review-edit.ts +0 -173
  9. package/client/activities/activity-ooc-review-view.ts +0 -129
  10. package/client/bootstrap.ts +0 -35
  11. package/client/components/data-entry-form.ts +0 -109
  12. package/client/index.ts +0 -1
  13. package/client/pages/data-archive/data-archive-list-page.ts +0 -277
  14. package/client/pages/data-archive/data-archive-request-popup.ts +0 -177
  15. package/client/pages/data-entry/data-entry-list-page.ts +0 -464
  16. package/client/pages/data-key-set/data-key-item-list.ts +0 -183
  17. package/client/pages/data-key-set/data-key-set-importer.ts +0 -89
  18. package/client/pages/data-key-set/data-key-set-list-page.ts +0 -413
  19. package/client/pages/data-ooc/data-ooc-list-page.ts +0 -549
  20. package/client/pages/data-ooc/data-ooc-page.ts +0 -164
  21. package/client/pages/data-ooc/data-ooc-view.ts +0 -236
  22. package/client/pages/data-ooc/data-oocs-page.ts +0 -200
  23. package/client/pages/data-report/data-report-embed-page.ts +0 -108
  24. package/client/pages/data-report/data-report-list-page.ts +0 -454
  25. package/client/pages/data-report/data-report-samples-page.ts +0 -174
  26. package/client/pages/data-report/jasper-report-oocs-page.ts +0 -110
  27. package/client/pages/data-report/jasper-report-samples-crosstab-page.ts +0 -110
  28. package/client/pages/data-report/jasper-report-samples-page.ts +0 -110
  29. package/client/pages/data-sample/data-sample-list-page.ts +0 -442
  30. package/client/pages/data-sample/data-sample-page.ts +0 -55
  31. package/client/pages/data-sample/data-sample-search-page.ts +0 -424
  32. package/client/pages/data-sample/data-sample-view.ts +0 -292
  33. package/client/pages/data-sample/data-samples-page.ts +0 -249
  34. package/client/pages/data-sensor/data-sensor-list-page.ts +0 -456
  35. package/client/pages/data-set/data-item-list.ts +0 -304
  36. package/client/pages/data-set/data-set-importer.ts +0 -89
  37. package/client/pages/data-set/data-set-list-page.ts +0 -1078
  38. package/client/pages/data-summary/data-summary-list-page.ts +0 -363
  39. package/client/pages/data-summary/data-summary-period-page.ts +0 -439
  40. package/client/pages/data-summary/data-summary-search-page.ts +0 -426
  41. package/client/pages/data-summary/data-summary-view.ts +0 -133
  42. package/client/route.ts +0 -91
  43. package/client/tsconfig.json +0 -13
  44. package/server/activities/activity-data-collect.ts +0 -100
  45. package/server/activities/activity-data-review.ts +0 -82
  46. package/server/activities/activity-ooc-resolve.ts +0 -123
  47. package/server/activities/activity-ooc-review.ts +0 -144
  48. package/server/activities/index.ts +0 -11
  49. package/server/controllers/create-data-sample.ts +0 -426
  50. package/server/controllers/data-use-case.ts +0 -98
  51. package/server/controllers/finalize-data-collection.ts +0 -388
  52. package/server/controllers/index.ts +0 -3
  53. package/server/controllers/issue-data-collection-task.ts +0 -70
  54. package/server/controllers/jasper-report.ts +0 -186
  55. package/server/controllers/query-data-summary-by-period.ts +0 -178
  56. package/server/controllers/shiny-report.ts +0 -54
  57. package/server/engine/index.ts +0 -1
  58. package/server/engine/task/create-data-sample.ts +0 -100
  59. package/server/engine/task/index.ts +0 -2
  60. package/server/engine/task/issue-collect-data.ts +0 -45
  61. package/server/index.ts +0 -8
  62. package/server/routes.ts +0 -188
  63. package/server/service/data-archive/data-archive-mutation.ts +0 -273
  64. package/server/service/data-archive/data-archive-query.ts +0 -58
  65. package/server/service/data-archive/data-archive-type.ts +0 -48
  66. package/server/service/data-archive/data-archive.ts +0 -69
  67. package/server/service/data-archive/index.ts +0 -6
  68. package/server/service/data-key-set/data-key-item-type.ts +0 -31
  69. package/server/service/data-key-set/data-key-set-mutation.ts +0 -201
  70. package/server/service/data-key-set/data-key-set-query.ts +0 -68
  71. package/server/service/data-key-set/data-key-set-type.ts +0 -70
  72. package/server/service/data-key-set/data-key-set.ts +0 -86
  73. package/server/service/data-key-set/index.ts +0 -6
  74. package/server/service/data-ooc/data-ooc-mutation.ts +0 -154
  75. package/server/service/data-ooc/data-ooc-query.ts +0 -106
  76. package/server/service/data-ooc/data-ooc-subscription.ts +0 -48
  77. package/server/service/data-ooc/data-ooc-type.ts +0 -71
  78. package/server/service/data-ooc/data-ooc.ts +0 -259
  79. package/server/service/data-ooc/index.ts +0 -7
  80. package/server/service/data-sample/data-sample-mutation.ts +0 -18
  81. package/server/service/data-sample/data-sample-query.ts +0 -215
  82. package/server/service/data-sample/data-sample-type.ts +0 -47
  83. package/server/service/data-sample/data-sample.ts +0 -193
  84. package/server/service/data-sample/index.ts +0 -6
  85. package/server/service/data-sensor/data-sensor-mutation.ts +0 -116
  86. package/server/service/data-sensor/data-sensor-query.ts +0 -76
  87. package/server/service/data-sensor/data-sensor-type.ts +0 -104
  88. package/server/service/data-sensor/data-sensor.ts +0 -126
  89. package/server/service/data-sensor/index.ts +0 -6
  90. package/server/service/data-set/data-item-type.ts +0 -155
  91. package/server/service/data-set/data-set-mutation.ts +0 -552
  92. package/server/service/data-set/data-set-query.ts +0 -461
  93. package/server/service/data-set/data-set-type.ts +0 -204
  94. package/server/service/data-set/data-set.ts +0 -326
  95. package/server/service/data-set/index.ts +0 -6
  96. package/server/service/data-set-history/data-set-history-query.ts +0 -126
  97. package/server/service/data-set-history/data-set-history-type.ts +0 -12
  98. package/server/service/data-set-history/data-set-history.ts +0 -217
  99. package/server/service/data-set-history/event-subscriber.ts +0 -17
  100. package/server/service/data-set-history/index.ts +0 -7
  101. package/server/service/data-spec/data-spec-manager.ts +0 -21
  102. package/server/service/data-spec/data-spec-query.ts +0 -21
  103. package/server/service/data-spec/data-spec.ts +0 -45
  104. package/server/service/data-spec/index.ts +0 -5
  105. package/server/service/data-summary/data-summary-mutation.ts +0 -45
  106. package/server/service/data-summary/data-summary-query.ts +0 -179
  107. package/server/service/data-summary/data-summary-type.ts +0 -86
  108. package/server/service/data-summary/data-summary.ts +0 -170
  109. package/server/service/data-summary/index.ts +0 -7
  110. package/server/service/index.ts +0 -57
  111. package/server/tsconfig.json +0 -10
  112. package/server/utils/config-resolver.ts +0 -29
  113. package/server/utils/index.ts +0 -1
@@ -1,304 +0,0 @@
1
- import '@material/web/icon/icon.js'
2
-
3
- import gql from 'graphql-tag'
4
-
5
- import { css, html, LitElement } from 'lit'
6
- import { customElement, property, query, state } from 'lit/decorators.js'
7
-
8
- import { client } from '@operato/graphql'
9
- import { i18next, localize } from '@operato/i18n'
10
- import { isMobileDevice } from '@operato/utils'
11
- import { DataGrist, FetchOption } from '@operato/data-grist'
12
- import { CommonHeaderStyles } from '@operato/styles'
13
-
14
- const DataItemStats = ['sum', 'mean', 'stddev', 'variance', 'min', 'max', 'range', 'median', 'mode']
15
-
16
- @customElement('data-item-list')
17
- class DataItemList extends localize(i18next)(LitElement) {
18
- @property({ type: Object }) dataSet: any
19
-
20
- @state() gristConfig: any
21
-
22
- static styles = [
23
- CommonHeaderStyles,
24
- css`
25
- :host {
26
- display: flex;
27
- flex-direction: column;
28
-
29
- background-color: var(--md-sys-color-surface);
30
- }
31
-
32
- ox-grist {
33
- flex: 1;
34
- }
35
- `
36
- ]
37
-
38
- @query('ox-grist') private grist!: DataGrist
39
-
40
- render() {
41
- return html`
42
- <ox-grist
43
- .mode=${isMobileDevice() ? 'LIST' : 'GRID'}
44
- .config=${this.gristConfig}
45
- .fetchHandler=${this.fetchHandler.bind(this)}
46
- ></ox-grist>
47
-
48
- <div class="footer">
49
- <div filler></div>
50
- <button danger @click=${this._deleteDataItems.bind(this)}>
51
- <md-icon>delete_forever</md-icon>${i18next.t('button.delete')}
52
- </button>
53
- <button @click=${this._updateDataItems.bind(this)} done>
54
- <md-icon>save</md-icon>${i18next.t('button.save')}
55
- </button>
56
- </div>
57
- `
58
- }
59
-
60
- async firstUpdated() {
61
- this.gristConfig = {
62
- list: { fields: ['name', 'description', 'active'] },
63
- columns: [
64
- { type: 'gutter', gutterName: 'row-selector', fixed: true, multiple: true },
65
- {
66
- type: 'gutter',
67
- gutterName: 'button',
68
- fixed: true,
69
- icon: 'add',
70
- handlers: {
71
- click: 'record-copy'
72
- }
73
- },
74
- { type: 'gutter', gutterName: 'sequence', fixed: true },
75
- {
76
- type: 'gutter',
77
- gutterName: 'button',
78
- fixed: true,
79
- icon: 'arrow_upward',
80
- handlers: {
81
- click: 'move-up'
82
- }
83
- },
84
- {
85
- type: 'gutter',
86
- gutterName: 'button',
87
- fixed: true,
88
- icon: 'arrow_downward',
89
- handlers: {
90
- click: 'move-down'
91
- }
92
- },
93
- {
94
- type: 'string',
95
- name: 'name',
96
- fixed: true,
97
- header: i18next.t('field.name'),
98
- record: {
99
- editable: true
100
- },
101
- width: 140
102
- },
103
- {
104
- type: 'string',
105
- name: 'description',
106
- header: i18next.t('field.description'),
107
- record: {
108
- editable: true
109
- },
110
- width: 180
111
- },
112
- {
113
- type: 'checkbox',
114
- name: 'active',
115
- label: true,
116
- header: i18next.t('field.active'),
117
- record: {
118
- editable: true
119
- },
120
- sortable: true,
121
- width: 60
122
- },
123
- {
124
- type: 'checkbox',
125
- name: 'hidden',
126
- label: true,
127
- header: i18next.t('field.hidden'),
128
- record: {
129
- editable: true
130
- },
131
- sortable: true,
132
- width: 60
133
- },
134
- {
135
- type: 'varname',
136
- name: 'tag',
137
- header: i18next.t('field.tag'),
138
- record: {
139
- editable: true
140
- },
141
- width: 180
142
- },
143
- {
144
- type: 'string',
145
- name: 'group',
146
- header: i18next.t('field.subgroup'),
147
- record: {
148
- editable: true
149
- },
150
- width: 180
151
- },
152
- {
153
- type: 'select',
154
- name: 'type',
155
- header: i18next.t('field.type'),
156
- record: {
157
- options: ['', 'number', 'text', 'select', 'radio', 'boolean', 'date', 'datetime', 'file', 'signature'],
158
- editable: true
159
- },
160
- width: 120
161
- },
162
- {
163
- type: 'parameters',
164
- name: 'options',
165
- header: i18next.t('field.options'),
166
- record: {
167
- editable: true,
168
- renderer: 'json5',
169
- options: async (value, column, record, row, field) => {
170
- return {
171
- name: record.type,
172
- help: '',
173
- spec:
174
- record.type === 'select' || record.type === 'radio'
175
- ? [
176
- {
177
- type: 'options' /* property-editor type */,
178
- name: 'options',
179
- label: 'options'
180
- }
181
- ]
182
- : [],
183
- context: this.grist,
184
- objectified: true
185
- }
186
- }
187
- },
188
- width: 120
189
- },
190
- {
191
- type: 'select',
192
- name: 'stat',
193
- header: i18next.t('field.finalizing-function'),
194
- record: {
195
- options: ['', ...DataItemStats],
196
- editable: true
197
- },
198
- width: 120
199
- },
200
- {
201
- type: 'select',
202
- name: 'agg',
203
- header: i18next.t('field.agg-function'),
204
- record: {
205
- options: ['', ...DataItemStats],
206
- editable: true
207
- },
208
- width: 120
209
- },
210
- {
211
- type: 'string',
212
- name: 'unit',
213
- header: i18next.t('field.unit'),
214
- record: {
215
- editable: true
216
- },
217
- width: 120
218
- },
219
- {
220
- type: 'number',
221
- name: 'quota',
222
- header: i18next.t('field.quota'),
223
- record: {
224
- editable: true
225
- },
226
- width: 60
227
- },
228
- {
229
- type: 'data-item-spec',
230
- name: 'spec',
231
- header: i18next.t('field.spec'),
232
- record: {
233
- editable: true,
234
- options: {
235
- name: '',
236
- help: '',
237
- objectified: true /* prevent from stringifying */
238
- }
239
- },
240
- width: 200
241
- }
242
- ],
243
- rows: {
244
- selectable: {
245
- multiple: true
246
- }
247
- },
248
- pagination: {
249
- infinite: true
250
- },
251
- sorters: []
252
- }
253
- }
254
-
255
- async fetchHandler({ filters, page, limit, sortings = [] }: FetchOption) {
256
- const dataItems = this.dataSet.dataItems || []
257
-
258
- return {
259
- total: dataItems.length,
260
- records: dataItems
261
- }
262
- }
263
-
264
- async _updateDataItems() {
265
- this.grist.commit()
266
-
267
- const response = await client.mutate({
268
- mutation: gql`
269
- mutation ($id: String!, $patch: DataSetPatch!) {
270
- updateDataSet(id: $id, patch: $patch) {
271
- name
272
- }
273
- }
274
- `,
275
- variables: {
276
- id: this.dataSet.id,
277
- patch: {
278
- dataItems: this.grist.data.records,
279
- cuFlag: 'M'
280
- }
281
- }
282
- })
283
-
284
- if (!response.errors) {
285
- await document.dispatchEvent(
286
- new CustomEvent('notify', {
287
- detail: {
288
- message: i18next.t('text.info_x_successfully', {
289
- x: i18next.t('button.save')
290
- })
291
- }
292
- })
293
- )
294
- }
295
- }
296
-
297
- async _deleteDataItems() {
298
- if (!confirm(i18next.t('text.sure_to_x', { x: i18next.t('text.delete') }))) {
299
- return
300
- }
301
-
302
- this.grist.deleteSelectedRecords(false)
303
- }
304
- }
@@ -1,89 +0,0 @@
1
- import '@material/web/icon/icon.js'
2
- import '@operato/data-grist'
3
-
4
- import gql from 'graphql-tag'
5
- import { css, html, LitElement } from 'lit'
6
- import { customElement, property, state } from 'lit/decorators.js'
7
-
8
- import { client } from '@operato/graphql'
9
- import { i18next } from '@operato/i18n'
10
- import { isMobileDevice } from '@operato/utils'
11
- import { DataSet } from '@operato/dataset'
12
- import { CommonHeaderStyles } from '@operato/styles'
13
- @customElement('data-set-importer')
14
- export class DataSetImporter extends LitElement {
15
- static styles = [
16
- CommonHeaderStyles,
17
- css`
18
- :host {
19
- display: flex;
20
- flex-direction: column;
21
-
22
- background-color: var(--md-sys-color-surface);
23
- }
24
-
25
- ox-grist {
26
- flex: 1;
27
- }
28
- `
29
- ]
30
-
31
- @property({ type: Array }) dataSets: DataSet[] = []
32
-
33
- @state() columns: any = {
34
- list: { fields: ['name', 'description'] },
35
- pagination: { infinite: true },
36
- columns: [
37
- {
38
- type: 'string',
39
- name: 'name',
40
- header: i18next.t('field.name'),
41
- width: 150
42
- },
43
- {
44
- type: 'string',
45
- name: 'description',
46
- header: i18next.t('field.description'),
47
- width: 200
48
- },
49
- {
50
- type: 'checkbox',
51
- name: 'active',
52
- header: i18next.t('field.active'),
53
- width: 60
54
- }
55
- ]
56
- }
57
-
58
- render() {
59
- return html`
60
- <ox-grist
61
- .mode=${isMobileDevice() ? 'LIST' : 'GRID'}
62
- .config=${this.columns}
63
- .data=${{ records: this.dataSets }}
64
- ></ox-grist>
65
-
66
- <div class="footer">
67
- <div filler></div>
68
- <button @click=${this.save.bind(this)} done><md-icon>save</md-icon>${i18next.t('button.save')}</button>
69
- </div>
70
- `
71
- }
72
-
73
- async save() {
74
- const response = await client.mutate({
75
- mutation: gql`
76
- mutation importDataSets($dataSets: [DataSetPatch!]!) {
77
- importDataSets(dataSets: $dataSets)
78
- }
79
- `,
80
- variables: { dataSets: this.dataSets }
81
- })
82
-
83
- if (response.errors?.length) {
84
- return
85
- }
86
-
87
- this.dispatchEvent(new CustomEvent('imported'))
88
- }
89
- }