@things-factory/dataset 9.0.0-beta.79 → 9.0.0-beta.80
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.
- package/dist-client/activities/activity-data-collect-edit.js +22 -24
- package/dist-client/activities/activity-data-collect-edit.js.map +1 -1
- package/dist-client/activities/activity-data-collect-view.js +24 -24
- package/dist-client/activities/activity-data-collect-view.js.map +1 -1
- package/dist-client/activities/activity-data-review-edit.js +92 -91
- package/dist-client/activities/activity-data-review-edit.js.map +1 -1
- package/dist-client/activities/activity-data-review-view.js +91 -90
- package/dist-client/activities/activity-data-review-view.js.map +1 -1
- package/dist-client/activities/activity-ooc-resolve-edit.js +66 -66
- package/dist-client/activities/activity-ooc-resolve-edit.js.map +1 -1
- package/dist-client/activities/activity-ooc-resolve-view.js +42 -41
- package/dist-client/activities/activity-ooc-resolve-view.js.map +1 -1
- package/dist-client/activities/activity-ooc-review-edit.js +70 -73
- package/dist-client/activities/activity-ooc-review-edit.js.map +1 -1
- package/dist-client/activities/activity-ooc-review-view.js +38 -39
- package/dist-client/activities/activity-ooc-review-view.js.map +1 -1
- package/dist-client/components/checklist-entry-form.js +27 -28
- package/dist-client/components/checklist-entry-form.js.map +1 -1
- package/dist-client/components/data-entry-form.js +27 -28
- package/dist-client/components/data-entry-form.js.map +1 -1
- package/dist-client/pages/data-archive/data-archive-list-page.js +35 -34
- package/dist-client/pages/data-archive/data-archive-list-page.js.map +1 -1
- package/dist-client/pages/data-archive/data-archive-request-popup.js +17 -17
- package/dist-client/pages/data-archive/data-archive-request-popup.js.map +1 -1
- package/dist-client/pages/data-entry/data-entry-list-page.js +30 -32
- package/dist-client/pages/data-entry/data-entry-list-page.js.map +1 -1
- package/dist-client/pages/data-key-set/data-key-item-list.js +15 -15
- package/dist-client/pages/data-key-set/data-key-item-list.js.map +1 -1
- package/dist-client/pages/data-key-set/data-key-set-importer.js +16 -17
- package/dist-client/pages/data-key-set/data-key-set-importer.js.map +1 -1
- package/dist-client/pages/data-key-set/data-key-set-list-page.js +24 -25
- package/dist-client/pages/data-key-set/data-key-set-list-page.js.map +1 -1
- package/dist-client/pages/data-ooc/data-ooc-list-page.js +38 -37
- package/dist-client/pages/data-ooc/data-ooc-list-page.js.map +1 -1
- package/dist-client/pages/data-ooc/data-ooc-page.js +18 -18
- package/dist-client/pages/data-ooc/data-ooc-page.js.map +1 -1
- package/dist-client/pages/data-ooc/data-ooc-view.js +36 -37
- package/dist-client/pages/data-ooc/data-ooc-view.js.map +1 -1
- package/dist-client/pages/data-ooc/data-oocs-page.js +20 -22
- package/dist-client/pages/data-ooc/data-oocs-page.js.map +1 -1
- package/dist-client/pages/data-report/data-report-embed-page.js +24 -21
- package/dist-client/pages/data-report/data-report-embed-page.js.map +1 -1
- package/dist-client/pages/data-report/data-report-list-page.js +25 -27
- package/dist-client/pages/data-report/data-report-list-page.js.map +1 -1
- package/dist-client/pages/data-report/data-report-samples-page.js +20 -22
- package/dist-client/pages/data-report/data-report-samples-page.js.map +1 -1
- package/dist-client/pages/data-report/jasper-report-oocs-page.js +24 -21
- package/dist-client/pages/data-report/jasper-report-oocs-page.js.map +1 -1
- package/dist-client/pages/data-report/jasper-report-samples-crosstab-page.js +24 -21
- package/dist-client/pages/data-report/jasper-report-samples-crosstab-page.js.map +1 -1
- package/dist-client/pages/data-report/jasper-report-samples-page.js +24 -21
- package/dist-client/pages/data-report/jasper-report-samples-page.js.map +1 -1
- package/dist-client/pages/data-sample/data-sample-list-page.js +37 -35
- package/dist-client/pages/data-sample/data-sample-list-page.js.map +1 -1
- package/dist-client/pages/data-sample/data-sample-page.js +18 -18
- package/dist-client/pages/data-sample/data-sample-page.js.map +1 -1
- package/dist-client/pages/data-sample/data-sample-search-page.js +36 -35
- package/dist-client/pages/data-sample/data-sample-search-page.js.map +1 -1
- package/dist-client/pages/data-sample/data-sample-view.js +42 -44
- package/dist-client/pages/data-sample/data-sample-view.js.map +1 -1
- package/dist-client/pages/data-sample/data-samples-page.js +19 -21
- package/dist-client/pages/data-sample/data-samples-page.js.map +1 -1
- package/dist-client/pages/data-sensor/data-sensor-list-page.js +23 -24
- package/dist-client/pages/data-sensor/data-sensor-list-page.js.map +1 -1
- package/dist-client/pages/data-set/data-item-list.js +15 -15
- package/dist-client/pages/data-set/data-item-list.js.map +1 -1
- package/dist-client/pages/data-set/data-set-importer.js +16 -17
- package/dist-client/pages/data-set/data-set-importer.js.map +1 -1
- package/dist-client/pages/data-set/data-set-list-page.js +54 -54
- package/dist-client/pages/data-set/data-set-list-page.js.map +1 -1
- package/dist-client/pages/data-summary/data-summary-list-page.js +34 -32
- package/dist-client/pages/data-summary/data-summary-list-page.js.map +1 -1
- package/dist-client/pages/data-summary/data-summary-period-page.js +49 -49
- package/dist-client/pages/data-summary/data-summary-period-page.js.map +1 -1
- package/dist-client/pages/data-summary/data-summary-search-page.js +42 -41
- package/dist-client/pages/data-summary/data-summary-search-page.js.map +1 -1
- package/dist-client/pages/data-summary/data-summary-view.js +24 -24
- package/dist-client/pages/data-summary/data-summary-view.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/activities/activity-data-review.js +13 -2
- package/dist-server/activities/activity-data-review.js.map +1 -1
- package/dist-server/activities/activity-ooc-resolve.js +10 -4
- package/dist-server/activities/activity-ooc-resolve.js.map +1 -1
- package/dist-server/activities/activity-ooc-review.js +8 -2
- package/dist-server/activities/activity-ooc-review.js.map +1 -1
- package/dist-server/controllers/create-data-ooc.js +10 -5
- package/dist-server/controllers/create-data-ooc.js.map +1 -1
- package/dist-server/controllers/create-data-sample.js +26 -6
- package/dist-server/controllers/create-data-sample.js.map +1 -1
- package/dist-server/controllers/data-use-case.js +6 -7
- package/dist-server/controllers/data-use-case.js.map +1 -1
- package/dist-server/controllers/finalize-data-collection.js +30 -8
- package/dist-server/controllers/finalize-data-collection.js.map +1 -1
- package/dist-server/controllers/issue-data-collection-task.js +5 -2
- package/dist-server/controllers/issue-data-collection-task.js.map +1 -1
- package/dist-server/controllers/jasper-report.js +10 -7
- package/dist-server/controllers/jasper-report.js.map +1 -1
- package/dist-server/controllers/query-data-summary-by-period.js +7 -4
- package/dist-server/controllers/query-data-summary-by-period.js.map +1 -1
- package/dist-server/controllers/shiny-report.js +7 -2
- package/dist-server/controllers/shiny-report.js.map +1 -1
- package/dist-server/routes.js +18 -7
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/data-archive/data-archive-mutation.js +48 -9
- package/dist-server/service/data-archive/data-archive-mutation.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set-mutation.js +25 -7
- package/dist-server/service/data-key-set/data-key-set-mutation.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set-query.js +1 -1
- package/dist-server/service/data-key-set/data-key-set-query.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-mutation.js +15 -4
- package/dist-server/service/data-ooc/data-ooc-mutation.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-query.js +1 -1
- package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-subscription.js +3 -4
- package/dist-server/service/data-ooc/data-ooc-subscription.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-query.js +8 -7
- package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-mutation.js +24 -6
- package/dist-server/service/data-sensor/data-sensor-mutation.js.map +1 -1
- package/dist-server/service/data-set/data-set-mutation.js +75 -16
- package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
- package/dist-server/service/data-set/data-set-query.js +4 -4
- package/dist-server/service/data-set/data-set-query.js.map +1 -1
- package/dist-server/service/data-set-history/data-set-history-query.js +1 -1
- package/dist-server/service/data-set-history/data-set-history-query.js.map +1 -1
- package/dist-server/service/data-spec/data-spec-manager.js +1 -1
- package/dist-server/service/data-spec/data-spec-manager.js.map +1 -1
- package/dist-server/service/data-summary/data-summary-query.js +4 -6
- package/dist-server/service/data-summary/data-summary-query.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
@@ -30,6 +30,27 @@ let DataSummaryGroupPage = class DataSummaryGroupPage extends connect(store)(loc
|
|
30
30
|
this.withKeys = false;
|
31
31
|
this.mode = isMobileDevice() ? 'CARD' : 'GRID';
|
32
32
|
}
|
33
|
+
static { this.styles = [
|
34
|
+
ScrollbarStyles,
|
35
|
+
CommonHeaderStyles,
|
36
|
+
css `
|
37
|
+
:host {
|
38
|
+
display: flex;
|
39
|
+
flex-direction: column;
|
40
|
+
|
41
|
+
overflow: hidden;
|
42
|
+
}
|
43
|
+
|
44
|
+
ox-grist {
|
45
|
+
overflow-y: auto;
|
46
|
+
flex: 1;
|
47
|
+
}
|
48
|
+
|
49
|
+
.header {
|
50
|
+
grid-template-areas: 'filters actions';
|
51
|
+
}
|
52
|
+
`
|
53
|
+
]; }
|
33
54
|
get context() {
|
34
55
|
return {
|
35
56
|
title: i18next.t('title.data-summary period'),
|
@@ -59,11 +80,11 @@ let DataSummaryGroupPage = class DataSummaryGroupPage extends connect(store)(loc
|
|
59
80
|
class="filters"
|
60
81
|
@change=${(e) => {
|
61
82
|
const element = e.target;
|
62
|
-
if (element
|
63
|
-
this.period = element
|
83
|
+
if (element?.hasAttribute('period')) {
|
84
|
+
this.period = element?.value;
|
64
85
|
}
|
65
|
-
else if (element
|
66
|
-
this.withKeys = element
|
86
|
+
else if (element?.hasAttribute('with-keys')) {
|
87
|
+
this.withKeys = element?.checked;
|
67
88
|
}
|
68
89
|
this.refreshGristConfig();
|
69
90
|
}}
|
@@ -102,7 +123,6 @@ let DataSummaryGroupPage = class DataSummaryGroupPage extends connect(store)(loc
|
|
102
123
|
}
|
103
124
|
}
|
104
125
|
async updated(changes) {
|
105
|
-
var _a, _b, _c;
|
106
126
|
if (changes.has('dataSetId')) {
|
107
127
|
const response = await client.query({
|
108
128
|
query: gql `
|
@@ -143,19 +163,18 @@ let DataSummaryGroupPage = class DataSummaryGroupPage extends connect(store)(loc
|
|
143
163
|
id: this.dataSetId
|
144
164
|
}
|
145
165
|
});
|
146
|
-
this.dataSet =
|
147
|
-
this.dataKeySet =
|
148
|
-
this.dataItems =
|
166
|
+
this.dataSet = response.data?.dataSet;
|
167
|
+
this.dataKeySet = this.dataSet?.dataKeySet || {};
|
168
|
+
this.dataItems = this.dataSet?.dataItems || [];
|
149
169
|
this.refreshGristConfig();
|
150
170
|
this.grist.fetch();
|
151
171
|
}
|
152
172
|
}
|
153
173
|
getKeyColumns() {
|
154
|
-
var _a;
|
155
174
|
if (!this.withKeys) {
|
156
175
|
return [];
|
157
176
|
}
|
158
|
-
return (
|
177
|
+
return (this.dataKeySet?.dataKeyItems.map((item, index) => {
|
159
178
|
return {
|
160
179
|
type: 'string',
|
161
180
|
name: `key0${index + 1}`,
|
@@ -168,11 +187,12 @@ let DataSummaryGroupPage = class DataSummaryGroupPage extends connect(store)(loc
|
|
168
187
|
width: 120,
|
169
188
|
imex: true
|
170
189
|
};
|
171
|
-
})
|
190
|
+
}) || []);
|
172
191
|
}
|
173
192
|
getDataColumns() {
|
174
|
-
|
175
|
-
|
193
|
+
return (this.dataItems
|
194
|
+
?.filter(dataItem => dataItem.active && dataItem.stat)
|
195
|
+
.map((item, index) => {
|
176
196
|
return {
|
177
197
|
type: 'number',
|
178
198
|
name: `data0${index + 1}`,
|
@@ -184,10 +204,9 @@ let DataSummaryGroupPage = class DataSummaryGroupPage extends connect(store)(loc
|
|
184
204
|
width: 120,
|
185
205
|
imex: true
|
186
206
|
};
|
187
|
-
})
|
207
|
+
}) || []);
|
188
208
|
}
|
189
209
|
refreshGristConfig() {
|
190
|
-
var _a, _b, _c, _d;
|
191
210
|
const keyColumns = this.getKeyColumns();
|
192
211
|
const dataColumns = this.getDataColumns();
|
193
212
|
const listFields = [];
|
@@ -217,7 +236,7 @@ let DataSummaryGroupPage = class DataSummaryGroupPage extends connect(store)(loc
|
|
217
236
|
filter: this.period == DataSetSummaryGroupType.Month && {
|
218
237
|
type: 'month',
|
219
238
|
operator: 'eq',
|
220
|
-
value:
|
239
|
+
value: this.grist.filters?.find(({ name }) => name == 'month')?.value ||
|
221
240
|
new Date().toLocaleDateString('sv-SE').slice(0, 7)
|
222
241
|
},
|
223
242
|
hidden: this.period == DataSetSummaryGroupType.Month,
|
@@ -234,7 +253,7 @@ let DataSummaryGroupPage = class DataSummaryGroupPage extends connect(store)(loc
|
|
234
253
|
filter: this.period == DataSetSummaryGroupType.DateRange && {
|
235
254
|
type: 'date',
|
236
255
|
operator: 'between',
|
237
|
-
value:
|
256
|
+
value: this.grist.filters?.find(({ name }) => name == 'date')?.value || [
|
238
257
|
new Date(new Date().getFullYear(), new Date().getMonth(), 1).toLocaleDateString('sv-SE'),
|
239
258
|
new Date().toLocaleDateString('sv-SE')
|
240
259
|
]
|
@@ -296,7 +315,6 @@ let DataSummaryGroupPage = class DataSummaryGroupPage extends connect(store)(loc
|
|
296
315
|
};
|
297
316
|
}
|
298
317
|
async fetchHandler({ page, limit, sortings = [], filters = [] }) {
|
299
|
-
var _a;
|
300
318
|
if (!this.dataSetId) {
|
301
319
|
return { records: [], total: 0 };
|
302
320
|
}
|
@@ -358,7 +376,7 @@ let DataSummaryGroupPage = class DataSummaryGroupPage extends connect(store)(loc
|
|
358
376
|
}
|
359
377
|
});
|
360
378
|
return {
|
361
|
-
records:
|
379
|
+
records: response.data?.dataSummaryByPeriod || []
|
362
380
|
};
|
363
381
|
}
|
364
382
|
_exportableData() {
|
@@ -382,40 +400,22 @@ let DataSummaryGroupPage = class DataSummaryGroupPage extends connect(store)(loc
|
|
382
400
|
: column.imex;
|
383
401
|
});
|
384
402
|
var data = records.map(item => {
|
385
|
-
return
|
386
|
-
|
387
|
-
.
|
388
|
-
|
389
|
-
|
390
|
-
.
|
391
|
-
|
392
|
-
|
393
|
-
|
403
|
+
return {
|
404
|
+
id: item.id,
|
405
|
+
...this.gristConfig.columns
|
406
|
+
.filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
|
407
|
+
.reduce((record, column) => {
|
408
|
+
const key = column.imex === true ? column.name : column.imex.key;
|
409
|
+
record[key] = key
|
410
|
+
.split('.')
|
411
|
+
.reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item);
|
412
|
+
return record;
|
413
|
+
}, {})
|
414
|
+
};
|
394
415
|
});
|
395
416
|
return { header: headerSetting, data: data };
|
396
417
|
}
|
397
418
|
};
|
398
|
-
DataSummaryGroupPage.styles = [
|
399
|
-
ScrollbarStyles,
|
400
|
-
CommonHeaderStyles,
|
401
|
-
css `
|
402
|
-
:host {
|
403
|
-
display: flex;
|
404
|
-
flex-direction: column;
|
405
|
-
|
406
|
-
overflow: hidden;
|
407
|
-
}
|
408
|
-
|
409
|
-
ox-grist {
|
410
|
-
overflow-y: auto;
|
411
|
-
flex: 1;
|
412
|
-
}
|
413
|
-
|
414
|
-
.header {
|
415
|
-
grid-template-areas: 'filters actions';
|
416
|
-
}
|
417
|
-
`
|
418
|
-
];
|
419
419
|
__decorate([
|
420
420
|
state(),
|
421
421
|
__metadata("design:type", String)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-summary-period-page.js","sourceRoot":"","sources":["../../../client/pages/data-summary/data-summary-period-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/input/ox-input-select-buttons.js'\nimport '@operato/data-grist'\nimport '@operato/context/ox-context-page-toolbar.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, nothing } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin'\n\nimport { DataGrist, FetchHandler, FetchOption, GristRecord } from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { PageView, store } from '@operato/shell'\nimport { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'\nimport { isMobileDevice } from '@operato/utils'\nimport { DataItem } from '@operato/dataset'\n\nenum DataSetSummaryGroupType {\n Today = 'today',\n ThisMonth = 'this month',\n ThirtyDays = '30 days',\n ThisYear = 'this year',\n TwelveMonths = '12 months',\n DateRange = 'date range',\n Month = 'month'\n}\n\n@customElement('data-summary-period-page')\nexport class DataSummaryGroupPage extends connect(store)(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonHeaderStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n overflow: hidden;\n }\n\n ox-grist {\n overflow-y: auto;\n flex: 1;\n }\n\n .header {\n grid-template-areas: 'filters actions';\n }\n `\n ]\n\n @state() dataSetId?: string\n @state() period?: string = DataSetSummaryGroupType.ThisMonth\n @state() withKeys: boolean = false\n\n @state() dataSet: any\n @state() dataKeySet: any\n @state() dataItems?: DataItem[]\n\n @state() gristConfig: any\n @state() mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'\n\n @query('ox-grist') private grist!: DataGrist\n\n get context() {\n return {\n title: i18next.t('title.data-summary period'),\n help: 'dataset/data-summary-period',\n actions: [\n {\n type: 'icon',\n icon: 'search',\n action: () => {\n this.grist.fetch()\n }\n }\n ],\n exportable: {\n name: i18next.t('title.data-summary period'),\n data: this._exportableData.bind(this)\n },\n toolbar: false\n }\n }\n\n render() {\n const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')\n\n return html`\n <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this) as FetchHandler}>\n <div slot=\"headroom\" class=\"header\">\n <div\n class=\"filters\"\n @change=${(e: CustomEvent) => {\n const element = e.target as Element\n if (element?.hasAttribute('period')) {\n this.period = (element as any)?.value\n } else if (element?.hasAttribute('with-keys')) {\n this.withKeys = (element as any)?.checked\n }\n\n this.refreshGristConfig()\n }}\n >\n <ox-input-select-buttons\n class=\"filter\"\n .value=${this.period}\n .options=${[\n { display: i18next.t('label.period-this-month'), value: 'this month' },\n { display: i18next.t('label.period-30-days'), value: '30 days' },\n { display: i18next.t('label.period-this-year'), value: 'this year' },\n { display: i18next.t('label.period-12-months'), value: '12 months' },\n { display: i18next.t('label.period-today'), value: 'today' },\n { display: i18next.t('label.period-month'), value: 'month' },\n { display: i18next.t('label.period-date-range'), value: 'date range' }\n ]}\n period\n ></ox-input-select-buttons>\n\n ${this.period == 'date range' || this.period == 'month'\n ? html`<ox-filters-form without-search></ox-filters-form>`\n : nothing}\n\n <ox-checkbox class=\"filter\" with-keys>${i18next.t('label.group-by data-keys')}</ox-checkbox>\n </div>\n\n <ox-context-page-toolbar class=\"actions\" .context=${this.context}></ox-context-page-toolbar>\n </div>\n </ox-grist>\n `\n }\n\n pageUpdated(changes, lifecycle) {\n if (this.active) {\n this.dataSetId = lifecycle.resourceId\n return\n }\n }\n\n async updated(changes) {\n if (changes.has('dataSetId')) {\n const response = await client.query({\n query: gql`\n query ($id: String!) {\n dataSet(id: $id) {\n id\n name\n summaryPeriod\n dataItems {\n name\n description\n active\n hidden\n tag\n group\n type\n unit\n options\n quota\n spec\n stat\n }\n dataKeySet {\n id\n name\n description\n dataKeyItems {\n name\n description\n dataKey\n tKey\n }\n }\n }\n }\n `,\n variables: {\n id: this.dataSetId\n }\n })\n\n this.dataSet = response.data?.dataSet\n this.dataKeySet = this.dataSet?.dataKeySet || {}\n this.dataItems = this.dataSet?.dataItems || []\n\n this.refreshGristConfig()\n this.grist.fetch()\n }\n }\n\n getKeyColumns() {\n if (!this.withKeys) {\n return []\n }\n\n return (\n this.dataKeySet?.dataKeyItems.map((item, index) => {\n return {\n type: 'string',\n name: `key0${index + 1}`,\n header: i18next.t(item.tKey),\n label: true,\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n }\n }) || []\n )\n }\n\n getDataColumns() {\n return (\n this.dataItems\n ?.filter(dataItem => dataItem.active && dataItem.stat)\n .map((item, index) => {\n return {\n type: 'number',\n name: `data0${index + 1}`,\n header: i18next.t(item.name),\n label: true,\n record: {\n editable: false\n },\n width: 120,\n imex: true\n }\n }) || []\n )\n }\n\n refreshGristConfig() {\n const keyColumns = this.getKeyColumns()\n const dataColumns = this.getDataColumns()\n\n const listFields = [] as string[]\n const monthFieldRequired =\n this.period == DataSetSummaryGroupType.ThisYear ||\n this.period == DataSetSummaryGroupType.TwelveMonths ||\n this.period == DataSetSummaryGroupType.Month\n const dateFieldRequired =\n this.period != DataSetSummaryGroupType.ThisYear && this.period != DataSetSummaryGroupType.TwelveMonths\n const periodRequired = this.period == DataSetSummaryGroupType.Today\n\n monthFieldRequired && listFields.push('month')\n dateFieldRequired && listFields.push('date')\n periodRequired && listFields.push('period')\n\n keyColumns.map(col => listFields.push(col.name))\n dataColumns.map(col => listFields.push(col.name))\n\n listFields.push('count', 'countOoc', 'countOos')\n\n this.gristConfig = {\n list: { fields: listFields },\n columns: [\n { type: 'gutter', gutterName: 'sequence', fixed: true },\n monthFieldRequired && {\n type: 'string',\n name: 'month',\n fixed: true,\n header: i18next.t('field.month'),\n label: true,\n width: 80,\n sortable: true,\n filter: this.period == DataSetSummaryGroupType.Month && {\n type: 'month',\n operator: 'eq',\n value:\n this.grist.filters?.find(({ name }) => name == 'month')?.value ||\n new Date().toLocaleDateString('sv-SE').slice(0, 7)\n },\n hidden: this.period == DataSetSummaryGroupType.Month,\n imex: true\n },\n dateFieldRequired && {\n type: 'string',\n name: 'date',\n fixed: true,\n header: i18next.t('field.date'),\n label: true,\n sortable: true,\n width: 100,\n filter: this.period == DataSetSummaryGroupType.DateRange && {\n type: 'date',\n operator: 'between',\n value: this.grist.filters?.find(({ name }) => name == 'date')?.value || [\n new Date(new Date().getFullYear(), new Date().getMonth(), 1).toLocaleDateString('sv-SE'),\n new Date().toLocaleDateString('sv-SE')\n ]\n },\n imex: true\n },\n periodRequired && {\n type: 'string',\n name: 'period',\n fixed: true,\n header: i18next.t('field.time-period'),\n label: true,\n sortable: true,\n width: 80,\n imex: true\n },\n ...keyColumns,\n ...dataColumns,\n {\n type: 'number',\n name: 'count',\n header: i18next.t('field.count'),\n label: true,\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'number',\n name: 'countOoc',\n label: true,\n header: i18next.t('field.count-ooc'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'number',\n name: 'countOos',\n header: i18next.t('field.count-oos'),\n label: true,\n record: {\n editable: false\n },\n width: 30\n }\n ].filter(Boolean),\n pagination: {\n infinite: true\n },\n rows: {\n appendable: false,\n selectable: {\n multiple: true\n }\n }\n }\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {\n if (!this.dataSetId) {\n return { records: [], total: 0 }\n }\n\n if (this.period == 'date range' || this.period == 'month') {\n const { fromDate, toDate, month } = filters.reduce(\n (acc, filter) => {\n if (filter.name === 'fromDate') acc.fromDate = filter.value\n if (filter.name === 'toDate') acc.toDate = filter.value\n if (filter.name === 'month') acc.month = filter.value\n return acc\n },\n { fromDate: null, toDate: null, month: null }\n )\n }\n\n const response = await client.query({\n query: gql`\n query (\n $dataSetName: String!\n $period: String!\n $dataKeys: [String!]\n $filters: [Filter!]\n $pagination: Pagination\n $sortings: [Sorting!]\n ) {\n dataSummaryByPeriod(\n dataSetName: $dataSetName\n period: $period\n dataKeys: $dataKeys\n filters: $filters\n pagination: $pagination\n sortings: $sortings\n ) {\n month\n date\n period\n key01\n key02\n key03\n key04\n key05\n data01\n data02\n data03\n data04\n data05\n count\n countOoc\n countOos\n }\n }\n `,\n variables: {\n dataSetName: this.dataSet.name,\n period: this.period,\n dataKeys: this.withKeys ? null : [],\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n records: response.data?.dataSummaryByPeriod || []\n }\n }\n\n _exportableData() {\n let records = [] as GristRecord[]\n if (this.grist.selected && this.grist.selected.length > 0) {\n records = this.grist.selected\n } else {\n records = this.grist.data.records\n }\n\n var headerSetting = this.grist.compiledConfig.columns\n .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)\n .map(column => {\n return column.imex === true\n ? {\n header: column.header.renderer(column),\n key: column.name,\n width: column.width,\n type: column.type\n }\n : column.imex\n })\n\n var data = records.map(item => {\n return {\n id: item.id,\n ...this.gristConfig.columns\n .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)\n .reduce((record, column) => {\n const key = column.imex === true ? column.name : column.imex.key\n record[key] = key\n .split('.')\n .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)\n return record\n }, {})\n }\n })\n\n return { header: headerSetting, data: data }\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"data-summary-period-page.js","sourceRoot":"","sources":["../../../client/pages/data-summary/data-summary-period-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/input/ox-input-select-buttons.js'\nimport '@operato/data-grist'\nimport '@operato/context/ox-context-page-toolbar.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, nothing } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin'\n\nimport { DataGrist, FetchHandler, FetchOption, GristRecord } from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { PageView, store } from '@operato/shell'\nimport { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'\nimport { isMobileDevice } from '@operato/utils'\nimport { DataItem } from '@operato/dataset'\n\nenum DataSetSummaryGroupType {\n Today = 'today',\n ThisMonth = 'this month',\n ThirtyDays = '30 days',\n ThisYear = 'this year',\n TwelveMonths = '12 months',\n DateRange = 'date range',\n Month = 'month'\n}\n\n@customElement('data-summary-period-page')\nexport class DataSummaryGroupPage extends connect(store)(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonHeaderStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n overflow: hidden;\n }\n\n ox-grist {\n overflow-y: auto;\n flex: 1;\n }\n\n .header {\n grid-template-areas: 'filters actions';\n }\n `\n ]\n\n @state() dataSetId?: string\n @state() period?: string = DataSetSummaryGroupType.ThisMonth\n @state() withKeys: boolean = false\n\n @state() dataSet: any\n @state() dataKeySet: any\n @state() dataItems?: DataItem[]\n\n @state() gristConfig: any\n @state() mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'\n\n @query('ox-grist') private grist!: DataGrist\n\n get context() {\n return {\n title: i18next.t('title.data-summary period'),\n help: 'dataset/data-summary-period',\n actions: [\n {\n type: 'icon',\n icon: 'search',\n action: () => {\n this.grist.fetch()\n }\n }\n ],\n exportable: {\n name: i18next.t('title.data-summary period'),\n data: this._exportableData.bind(this)\n },\n toolbar: false\n }\n }\n\n render() {\n const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')\n\n return html`\n <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this) as FetchHandler}>\n <div slot=\"headroom\" class=\"header\">\n <div\n class=\"filters\"\n @change=${(e: CustomEvent) => {\n const element = e.target as Element\n if (element?.hasAttribute('period')) {\n this.period = (element as any)?.value\n } else if (element?.hasAttribute('with-keys')) {\n this.withKeys = (element as any)?.checked\n }\n\n this.refreshGristConfig()\n }}\n >\n <ox-input-select-buttons\n class=\"filter\"\n .value=${this.period}\n .options=${[\n { display: i18next.t('label.period-this-month'), value: 'this month' },\n { display: i18next.t('label.period-30-days'), value: '30 days' },\n { display: i18next.t('label.period-this-year'), value: 'this year' },\n { display: i18next.t('label.period-12-months'), value: '12 months' },\n { display: i18next.t('label.period-today'), value: 'today' },\n { display: i18next.t('label.period-month'), value: 'month' },\n { display: i18next.t('label.period-date-range'), value: 'date range' }\n ]}\n period\n ></ox-input-select-buttons>\n\n ${this.period == 'date range' || this.period == 'month'\n ? html`<ox-filters-form without-search></ox-filters-form>`\n : nothing}\n\n <ox-checkbox class=\"filter\" with-keys>${i18next.t('label.group-by data-keys')}</ox-checkbox>\n </div>\n\n <ox-context-page-toolbar class=\"actions\" .context=${this.context}></ox-context-page-toolbar>\n </div>\n </ox-grist>\n `\n }\n\n pageUpdated(changes, lifecycle) {\n if (this.active) {\n this.dataSetId = lifecycle.resourceId\n return\n }\n }\n\n async updated(changes) {\n if (changes.has('dataSetId')) {\n const response = await client.query({\n query: gql`\n query ($id: String!) {\n dataSet(id: $id) {\n id\n name\n summaryPeriod\n dataItems {\n name\n description\n active\n hidden\n tag\n group\n type\n unit\n options\n quota\n spec\n stat\n }\n dataKeySet {\n id\n name\n description\n dataKeyItems {\n name\n description\n dataKey\n tKey\n }\n }\n }\n }\n `,\n variables: {\n id: this.dataSetId\n }\n })\n\n this.dataSet = response.data?.dataSet\n this.dataKeySet = this.dataSet?.dataKeySet || {}\n this.dataItems = this.dataSet?.dataItems || []\n\n this.refreshGristConfig()\n this.grist.fetch()\n }\n }\n\n getKeyColumns() {\n if (!this.withKeys) {\n return []\n }\n\n return (\n this.dataKeySet?.dataKeyItems.map((item, index) => {\n return {\n type: 'string',\n name: `key0${index + 1}`,\n header: i18next.t(item.tKey),\n label: true,\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n }\n }) || []\n )\n }\n\n getDataColumns() {\n return (\n this.dataItems\n ?.filter(dataItem => dataItem.active && dataItem.stat)\n .map((item, index) => {\n return {\n type: 'number',\n name: `data0${index + 1}`,\n header: i18next.t(item.name),\n label: true,\n record: {\n editable: false\n },\n width: 120,\n imex: true\n }\n }) || []\n )\n }\n\n refreshGristConfig() {\n const keyColumns = this.getKeyColumns()\n const dataColumns = this.getDataColumns()\n\n const listFields = [] as string[]\n const monthFieldRequired =\n this.period == DataSetSummaryGroupType.ThisYear ||\n this.period == DataSetSummaryGroupType.TwelveMonths ||\n this.period == DataSetSummaryGroupType.Month\n const dateFieldRequired =\n this.period != DataSetSummaryGroupType.ThisYear && this.period != DataSetSummaryGroupType.TwelveMonths\n const periodRequired = this.period == DataSetSummaryGroupType.Today\n\n monthFieldRequired && listFields.push('month')\n dateFieldRequired && listFields.push('date')\n periodRequired && listFields.push('period')\n\n keyColumns.map(col => listFields.push(col.name))\n dataColumns.map(col => listFields.push(col.name))\n\n listFields.push('count', 'countOoc', 'countOos')\n\n this.gristConfig = {\n list: { fields: listFields },\n columns: [\n { type: 'gutter', gutterName: 'sequence', fixed: true },\n monthFieldRequired && {\n type: 'string',\n name: 'month',\n fixed: true,\n header: i18next.t('field.month'),\n label: true,\n width: 80,\n sortable: true,\n filter: this.period == DataSetSummaryGroupType.Month && {\n type: 'month',\n operator: 'eq',\n value:\n this.grist.filters?.find(({ name }) => name == 'month')?.value ||\n new Date().toLocaleDateString('sv-SE').slice(0, 7)\n },\n hidden: this.period == DataSetSummaryGroupType.Month,\n imex: true\n },\n dateFieldRequired && {\n type: 'string',\n name: 'date',\n fixed: true,\n header: i18next.t('field.date'),\n label: true,\n sortable: true,\n width: 100,\n filter: this.period == DataSetSummaryGroupType.DateRange && {\n type: 'date',\n operator: 'between',\n value: this.grist.filters?.find(({ name }) => name == 'date')?.value || [\n new Date(new Date().getFullYear(), new Date().getMonth(), 1).toLocaleDateString('sv-SE'),\n new Date().toLocaleDateString('sv-SE')\n ]\n },\n imex: true\n },\n periodRequired && {\n type: 'string',\n name: 'period',\n fixed: true,\n header: i18next.t('field.time-period'),\n label: true,\n sortable: true,\n width: 80,\n imex: true\n },\n ...keyColumns,\n ...dataColumns,\n {\n type: 'number',\n name: 'count',\n header: i18next.t('field.count'),\n label: true,\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'number',\n name: 'countOoc',\n label: true,\n header: i18next.t('field.count-ooc'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'number',\n name: 'countOos',\n header: i18next.t('field.count-oos'),\n label: true,\n record: {\n editable: false\n },\n width: 30\n }\n ].filter(Boolean),\n pagination: {\n infinite: true\n },\n rows: {\n appendable: false,\n selectable: {\n multiple: true\n }\n }\n }\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {\n if (!this.dataSetId) {\n return { records: [], total: 0 }\n }\n\n if (this.period == 'date range' || this.period == 'month') {\n const { fromDate, toDate, month } = filters.reduce(\n (acc, filter) => {\n if (filter.name === 'fromDate') acc.fromDate = filter.value\n if (filter.name === 'toDate') acc.toDate = filter.value\n if (filter.name === 'month') acc.month = filter.value\n return acc\n },\n { fromDate: null, toDate: null, month: null }\n )\n }\n\n const response = await client.query({\n query: gql`\n query (\n $dataSetName: String!\n $period: String!\n $dataKeys: [String!]\n $filters: [Filter!]\n $pagination: Pagination\n $sortings: [Sorting!]\n ) {\n dataSummaryByPeriod(\n dataSetName: $dataSetName\n period: $period\n dataKeys: $dataKeys\n filters: $filters\n pagination: $pagination\n sortings: $sortings\n ) {\n month\n date\n period\n key01\n key02\n key03\n key04\n key05\n data01\n data02\n data03\n data04\n data05\n count\n countOoc\n countOos\n }\n }\n `,\n variables: {\n dataSetName: this.dataSet.name,\n period: this.period,\n dataKeys: this.withKeys ? null : [],\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n records: response.data?.dataSummaryByPeriod || []\n }\n }\n\n _exportableData() {\n let records = [] as GristRecord[]\n if (this.grist.selected && this.grist.selected.length > 0) {\n records = this.grist.selected\n } else {\n records = this.grist.data.records\n }\n\n var headerSetting = this.grist.compiledConfig.columns\n .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)\n .map(column => {\n return column.imex === true\n ? {\n header: column.header.renderer(column),\n key: column.name,\n width: column.width,\n type: column.type\n }\n : column.imex\n })\n\n var data = records.map(item => {\n return {\n id: item.id,\n ...this.gristConfig.columns\n .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)\n .reduce((record, column) => {\n const key = column.imex === true ? column.name : column.imex.key\n record[key] = key\n .split('.')\n .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)\n return record\n }, {})\n }\n })\n\n return { header: headerSetting, data: data }\n }\n}\n"]}
|
@@ -27,15 +27,35 @@ let DataSummarySearchPage = class DataSummarySearchPage extends connect(store)(l
|
|
27
27
|
super(...arguments);
|
28
28
|
this.mode = isMobileDevice() ? 'CARD' : 'GRID';
|
29
29
|
}
|
30
|
+
static { this.styles = [
|
31
|
+
ScrollbarStyles,
|
32
|
+
CommonHeaderStyles,
|
33
|
+
css `
|
34
|
+
:host {
|
35
|
+
display: flex;
|
36
|
+
flex-direction: column;
|
37
|
+
|
38
|
+
overflow: hidden;
|
39
|
+
}
|
40
|
+
|
41
|
+
ox-grist {
|
42
|
+
overflow-y: auto;
|
43
|
+
flex: 1;
|
44
|
+
}
|
45
|
+
|
46
|
+
.header {
|
47
|
+
grid-template-areas: 'filters actions';
|
48
|
+
}
|
49
|
+
`
|
50
|
+
]; }
|
30
51
|
get context() {
|
31
|
-
var _a;
|
32
52
|
return {
|
33
53
|
title: i18next.t('title.data-summary search'),
|
34
54
|
search: {
|
35
55
|
handler: (search) => {
|
36
56
|
this.grist.searchText = search;
|
37
57
|
},
|
38
|
-
value:
|
58
|
+
value: this.grist?.searchText || ''
|
39
59
|
},
|
40
60
|
filter: {
|
41
61
|
handler: () => {
|
@@ -72,7 +92,6 @@ let DataSummarySearchPage = class DataSummarySearchPage extends connect(store)(l
|
|
72
92
|
}
|
73
93
|
}
|
74
94
|
async updated(changes) {
|
75
|
-
var _a, _b;
|
76
95
|
if (changes.has('dataSetId')) {
|
77
96
|
const response = await client.query({
|
78
97
|
query: gql `
|
@@ -113,15 +132,14 @@ let DataSummarySearchPage = class DataSummarySearchPage extends connect(store)(l
|
|
113
132
|
}
|
114
133
|
});
|
115
134
|
this.dataSet = response.data.dataSet;
|
116
|
-
this.dataKeySet =
|
117
|
-
this.dataItems =
|
135
|
+
this.dataKeySet = this.dataSet?.dataKeySet || {};
|
136
|
+
this.dataItems = this.dataSet?.dataItems || [];
|
118
137
|
this.refreshGristConfig();
|
119
138
|
this.grist.fetch();
|
120
139
|
}
|
121
140
|
}
|
122
141
|
getKeyColumns() {
|
123
|
-
|
124
|
-
return (((_a = this.dataKeySet) === null || _a === void 0 ? void 0 : _a.dataKeyItems.map((item, index) => {
|
142
|
+
return (this.dataKeySet?.dataKeyItems.map((item, index) => {
|
125
143
|
return {
|
126
144
|
type: 'string',
|
127
145
|
name: `key0${index + 1}`,
|
@@ -134,11 +152,12 @@ let DataSummarySearchPage = class DataSummarySearchPage extends connect(store)(l
|
|
134
152
|
width: 120,
|
135
153
|
imex: true
|
136
154
|
};
|
137
|
-
})
|
155
|
+
}) || []);
|
138
156
|
}
|
139
157
|
getDataColumns() {
|
140
|
-
|
141
|
-
|
158
|
+
return (this.dataItems
|
159
|
+
?.filter(dataItem => dataItem.active && dataItem.stat)
|
160
|
+
.map((item, index) => {
|
142
161
|
return {
|
143
162
|
type: 'number',
|
144
163
|
name: `data0${index + 1}`,
|
@@ -149,7 +168,7 @@ let DataSummarySearchPage = class DataSummarySearchPage extends connect(store)(l
|
|
149
168
|
width: 120,
|
150
169
|
imex: true
|
151
170
|
};
|
152
|
-
})
|
171
|
+
}) || []);
|
153
172
|
}
|
154
173
|
refreshGristConfig() {
|
155
174
|
const yesterday = moment().subtract(1, 'day').format('YYYY-MM-DD');
|
@@ -344,40 +363,22 @@ let DataSummarySearchPage = class DataSummarySearchPage extends connect(store)(l
|
|
344
363
|
: column.imex;
|
345
364
|
});
|
346
365
|
var data = records.map(item => {
|
347
|
-
return
|
348
|
-
|
349
|
-
.
|
350
|
-
|
351
|
-
|
352
|
-
.
|
353
|
-
|
354
|
-
|
355
|
-
|
366
|
+
return {
|
367
|
+
id: item.id,
|
368
|
+
...this.gristConfig.columns
|
369
|
+
.filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
|
370
|
+
.reduce((record, column) => {
|
371
|
+
const key = column.imex === true ? column.name : column.imex.key;
|
372
|
+
record[key] = key
|
373
|
+
.split('.')
|
374
|
+
.reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item);
|
375
|
+
return record;
|
376
|
+
}, {})
|
377
|
+
};
|
356
378
|
});
|
357
379
|
return { header: headerSetting, data: data };
|
358
380
|
}
|
359
381
|
};
|
360
|
-
DataSummarySearchPage.styles = [
|
361
|
-
ScrollbarStyles,
|
362
|
-
CommonHeaderStyles,
|
363
|
-
css `
|
364
|
-
:host {
|
365
|
-
display: flex;
|
366
|
-
flex-direction: column;
|
367
|
-
|
368
|
-
overflow: hidden;
|
369
|
-
}
|
370
|
-
|
371
|
-
ox-grist {
|
372
|
-
overflow-y: auto;
|
373
|
-
flex: 1;
|
374
|
-
}
|
375
|
-
|
376
|
-
.header {
|
377
|
-
grid-template-areas: 'filters actions';
|
378
|
-
}
|
379
|
-
`
|
380
|
-
];
|
381
382
|
__decorate([
|
382
383
|
state(),
|
383
384
|
__metadata("design:type", String)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-summary-search-page.js","sourceRoot":"","sources":["../../../client/pages/data-summary/data-summary-search-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/data-grist'\nimport '@operato/context/ox-context-page-toolbar.js'\nimport './data-summary-view.js'\nimport moment from '@operato/moment-timezone-es'\n\nimport gql from 'graphql-tag'\nimport { css, html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin'\n\nimport {\n getEditor,\n getRenderer,\n ColumnConfig,\n DataGrist,\n FetchOption,\n SortersControl,\n GristRecord\n} from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { openPopup } from '@operato/layout'\nimport { PageView, store } from '@operato/shell'\nimport { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'\nimport { isMobileDevice } from '@operato/utils'\nimport { OxPopup } from '@operato/popup'\nimport { DataItem } from '@operato/dataset'\n\nenum DataSetSummaryPeriodType {\n Hour = 'hour',\n WorkShift = 'work-shift',\n WorkDate = 'work-date',\n Day = 'day'\n}\n\n@customElement('data-summary-search-page')\nexport class DataSummarySearchPage extends connect(store)(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonHeaderStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n overflow: hidden;\n }\n\n ox-grist {\n overflow-y: auto;\n flex: 1;\n }\n\n .header {\n grid-template-areas: 'filters actions';\n }\n `\n ]\n\n @state() dataSetId?: string\n\n @state() dataSet: any\n @state() dataKeySet: any\n @state() dataItems?: DataItem[]\n\n @state() gristConfig: any\n @state() mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'\n\n @query('ox-grist') private grist!: DataGrist\n\n get context() {\n return {\n title: i18next.t('title.data-summary search'),\n search: {\n handler: (search: string) => {\n this.grist.searchText = search\n },\n value: this.grist?.searchText || ''\n },\n filter: {\n handler: () => {\n this.grist.toggleHeadroom()\n }\n },\n help: 'dataset/data-summary-search',\n actions: [],\n exportable: {\n name: i18next.t('title.data-summary search'),\n data: this._exportableData.bind(this)\n },\n toolbar: false\n }\n }\n\n render() {\n const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')\n\n return html`\n <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>\n <div slot=\"headroom\" class=\"header\">\n <div class=\"filters\">\n <ox-filters-form autofocus without-search></ox-filters-form>\n </div>\n\n <ox-context-page-toolbar class=\"actions\" .context=${this.context}></ox-context-page-toolbar>\n </div>\n </ox-grist>\n `\n }\n\n pageUpdated(changes, lifecycle) {\n if (this.active) {\n this.dataSetId = lifecycle.resourceId\n return\n }\n }\n\n async updated(changes) {\n if (changes.has('dataSetId')) {\n const response = await client.query({\n query: gql`\n query ($id: String!) {\n dataSet(id: $id) {\n id\n summaryPeriod\n dataItems {\n name\n description\n active\n hidden\n tag\n group\n type\n unit\n options\n quota\n spec\n stat\n }\n dataKeySet {\n id\n name\n description\n dataKeyItems {\n name\n description\n dataKey\n tKey\n }\n }\n }\n }\n `,\n variables: {\n id: this.dataSetId\n }\n })\n\n this.dataSet = response.data.dataSet\n this.dataKeySet = this.dataSet?.dataKeySet || {}\n this.dataItems = this.dataSet?.dataItems || []\n\n this.refreshGristConfig()\n\n this.grist.fetch()\n }\n }\n\n getKeyColumns() {\n return (\n this.dataKeySet?.dataKeyItems.map((item, index) => {\n return {\n type: 'string',\n name: `key0${index + 1}`,\n header: i18next.t(item.tKey),\n record: {\n editable: false\n },\n sortable: true,\n filter: 'i_like',\n width: 120,\n imex: true\n }\n }) || []\n )\n }\n\n getDataColumns() {\n return (\n this.dataItems\n ?.filter(dataItem => dataItem.active && dataItem.stat)\n .map((item, index) => {\n return {\n type: 'number',\n name: `data0${index + 1}`,\n header: i18next.t(item.name),\n record: {\n editable: false\n },\n width: 120,\n imex: true\n }\n }) || []\n )\n }\n\n refreshGristConfig() {\n const yesterday = moment().subtract(1, 'day').format('YYYY-MM-DD')\n const today = moment().format('YYYY-MM-DD')\n\n this.gristConfig = {\n list: { fields: ['dataSet', 'data', 'updater', 'updatedAt'] },\n columns: [\n { type: 'gutter', gutterName: 'sequence' },\n { type: 'gutter', gutterName: 'row-selector', multiple: true },\n {\n type: 'gutter',\n gutterName: 'button',\n icon: 'assignment',\n title: i18next.t('title.open data summary view'),\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n openPopup(\n html`\n <data-summary-view data-summary-id=${record.id} style=\"background-color: white;\"></data-summary-view>\n `,\n {\n backdrop: true,\n size: 'large',\n title: i18next.t('title.data-summary view')\n }\n )\n }\n }\n },\n {\n type: 'string',\n name: 'date',\n header: i18next.t('field.date'),\n sortable: true,\n filter: {\n type: 'date',\n operator: 'between',\n value: [yesterday, today]\n },\n width: 80,\n imex: true\n },\n (this.dataSet.summaryPeriod == DataSetSummaryPeriodType.Hour ||\n this.dataSet.summaryPeriod == DataSetSummaryPeriodType.WorkShift) && {\n type: 'string',\n name: 'period',\n header: i18next.t('field.time-period'),\n sortable: true,\n width: 60,\n imex: true\n },\n ...this.getKeyColumns(),\n ...this.getDataColumns(),\n {\n type: 'json5',\n name: 'data',\n header: i18next.t('field.data'),\n record: {\n editable: false\n },\n hidden: true,\n imex: true\n },\n {\n type: 'number',\n name: 'count',\n header: i18next.t('field.count'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'number',\n name: 'countOoc',\n header: i18next.t('field.count-ooc'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'number',\n name: 'countOos',\n header: i18next.t('field.count-oos'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'resource-object',\n name: 'updater',\n header: i18next.t('field.updater'),\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'datetime',\n name: 'updatedAt',\n header: i18next.t('field.updated_at'),\n sortable: true,\n width: 180,\n imex: true\n }\n ].filter(Boolean),\n rows: {\n appendable: false,\n selectable: {\n multiple: true\n }\n },\n sorters: [\n {\n name: 'date',\n desc: true\n }\n ]\n }\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {\n if (!this.dataSetId) {\n return { records: [], total: 0 }\n }\n\n const response = await client.query({\n query: gql`\n query ($dataSetId: String!, $filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n dataSummariesByDataSet(\n dataSetId: $dataSetId\n filters: $filters\n pagination: $pagination\n sortings: $sortings\n ) {\n items {\n id\n name\n description\n date\n period\n key01\n key02\n key03\n key04\n key05\n data01\n data02\n data03\n data04\n data05\n summary\n count\n countOoc\n countOos\n updater {\n id\n name\n }\n updatedAt\n }\n total\n }\n }\n `,\n variables: {\n dataSetId: this.dataSetId,\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n total: response.data.dataSummariesByDataSet.total || 0,\n records: response.data.dataSummariesByDataSet.items || []\n }\n }\n\n _exportableData() {\n let records = [] as GristRecord[]\n if (this.grist.selected && this.grist.selected.length > 0) {\n records = this.grist.selected\n } else {\n records = this.grist.data.records\n }\n\n var headerSetting = this.grist.compiledConfig.columns\n .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)\n .map(column => {\n return column.imex === true\n ? {\n header: column.header.renderer(column),\n key: column.name,\n width: column.width,\n type: column.type\n }\n : column.imex\n })\n\n var data = records.map(item => {\n return {\n id: item.id,\n ...this.gristConfig.columns\n .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)\n .reduce((record, column) => {\n const key = column.imex === true ? column.name : column.imex.key\n record[key] = key\n .split('.')\n .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)\n return record\n }, {})\n }\n })\n\n return { header: headerSetting, data: data }\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"data-summary-search-page.js","sourceRoot":"","sources":["../../../client/pages/data-summary/data-summary-search-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/data-grist'\nimport '@operato/context/ox-context-page-toolbar.js'\nimport './data-summary-view.js'\nimport moment from '@operato/moment-timezone-es'\n\nimport gql from 'graphql-tag'\nimport { css, html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin'\n\nimport {\n getEditor,\n getRenderer,\n ColumnConfig,\n DataGrist,\n FetchOption,\n SortersControl,\n GristRecord\n} from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { openPopup } from '@operato/layout'\nimport { PageView, store } from '@operato/shell'\nimport { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'\nimport { isMobileDevice } from '@operato/utils'\nimport { OxPopup } from '@operato/popup'\nimport { DataItem } from '@operato/dataset'\n\nenum DataSetSummaryPeriodType {\n Hour = 'hour',\n WorkShift = 'work-shift',\n WorkDate = 'work-date',\n Day = 'day'\n}\n\n@customElement('data-summary-search-page')\nexport class DataSummarySearchPage extends connect(store)(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonHeaderStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n overflow: hidden;\n }\n\n ox-grist {\n overflow-y: auto;\n flex: 1;\n }\n\n .header {\n grid-template-areas: 'filters actions';\n }\n `\n ]\n\n @state() dataSetId?: string\n\n @state() dataSet: any\n @state() dataKeySet: any\n @state() dataItems?: DataItem[]\n\n @state() gristConfig: any\n @state() mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'\n\n @query('ox-grist') private grist!: DataGrist\n\n get context() {\n return {\n title: i18next.t('title.data-summary search'),\n search: {\n handler: (search: string) => {\n this.grist.searchText = search\n },\n value: this.grist?.searchText || ''\n },\n filter: {\n handler: () => {\n this.grist.toggleHeadroom()\n }\n },\n help: 'dataset/data-summary-search',\n actions: [],\n exportable: {\n name: i18next.t('title.data-summary search'),\n data: this._exportableData.bind(this)\n },\n toolbar: false\n }\n }\n\n render() {\n const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')\n\n return html`\n <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>\n <div slot=\"headroom\" class=\"header\">\n <div class=\"filters\">\n <ox-filters-form autofocus without-search></ox-filters-form>\n </div>\n\n <ox-context-page-toolbar class=\"actions\" .context=${this.context}></ox-context-page-toolbar>\n </div>\n </ox-grist>\n `\n }\n\n pageUpdated(changes, lifecycle) {\n if (this.active) {\n this.dataSetId = lifecycle.resourceId\n return\n }\n }\n\n async updated(changes) {\n if (changes.has('dataSetId')) {\n const response = await client.query({\n query: gql`\n query ($id: String!) {\n dataSet(id: $id) {\n id\n summaryPeriod\n dataItems {\n name\n description\n active\n hidden\n tag\n group\n type\n unit\n options\n quota\n spec\n stat\n }\n dataKeySet {\n id\n name\n description\n dataKeyItems {\n name\n description\n dataKey\n tKey\n }\n }\n }\n }\n `,\n variables: {\n id: this.dataSetId\n }\n })\n\n this.dataSet = response.data.dataSet\n this.dataKeySet = this.dataSet?.dataKeySet || {}\n this.dataItems = this.dataSet?.dataItems || []\n\n this.refreshGristConfig()\n\n this.grist.fetch()\n }\n }\n\n getKeyColumns() {\n return (\n this.dataKeySet?.dataKeyItems.map((item, index) => {\n return {\n type: 'string',\n name: `key0${index + 1}`,\n header: i18next.t(item.tKey),\n record: {\n editable: false\n },\n sortable: true,\n filter: 'i_like',\n width: 120,\n imex: true\n }\n }) || []\n )\n }\n\n getDataColumns() {\n return (\n this.dataItems\n ?.filter(dataItem => dataItem.active && dataItem.stat)\n .map((item, index) => {\n return {\n type: 'number',\n name: `data0${index + 1}`,\n header: i18next.t(item.name),\n record: {\n editable: false\n },\n width: 120,\n imex: true\n }\n }) || []\n )\n }\n\n refreshGristConfig() {\n const yesterday = moment().subtract(1, 'day').format('YYYY-MM-DD')\n const today = moment().format('YYYY-MM-DD')\n\n this.gristConfig = {\n list: { fields: ['dataSet', 'data', 'updater', 'updatedAt'] },\n columns: [\n { type: 'gutter', gutterName: 'sequence' },\n { type: 'gutter', gutterName: 'row-selector', multiple: true },\n {\n type: 'gutter',\n gutterName: 'button',\n icon: 'assignment',\n title: i18next.t('title.open data summary view'),\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n openPopup(\n html`\n <data-summary-view data-summary-id=${record.id} style=\"background-color: white;\"></data-summary-view>\n `,\n {\n backdrop: true,\n size: 'large',\n title: i18next.t('title.data-summary view')\n }\n )\n }\n }\n },\n {\n type: 'string',\n name: 'date',\n header: i18next.t('field.date'),\n sortable: true,\n filter: {\n type: 'date',\n operator: 'between',\n value: [yesterday, today]\n },\n width: 80,\n imex: true\n },\n (this.dataSet.summaryPeriod == DataSetSummaryPeriodType.Hour ||\n this.dataSet.summaryPeriod == DataSetSummaryPeriodType.WorkShift) && {\n type: 'string',\n name: 'period',\n header: i18next.t('field.time-period'),\n sortable: true,\n width: 60,\n imex: true\n },\n ...this.getKeyColumns(),\n ...this.getDataColumns(),\n {\n type: 'json5',\n name: 'data',\n header: i18next.t('field.data'),\n record: {\n editable: false\n },\n hidden: true,\n imex: true\n },\n {\n type: 'number',\n name: 'count',\n header: i18next.t('field.count'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'number',\n name: 'countOoc',\n header: i18next.t('field.count-ooc'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'number',\n name: 'countOos',\n header: i18next.t('field.count-oos'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'resource-object',\n name: 'updater',\n header: i18next.t('field.updater'),\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'datetime',\n name: 'updatedAt',\n header: i18next.t('field.updated_at'),\n sortable: true,\n width: 180,\n imex: true\n }\n ].filter(Boolean),\n rows: {\n appendable: false,\n selectable: {\n multiple: true\n }\n },\n sorters: [\n {\n name: 'date',\n desc: true\n }\n ]\n }\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {\n if (!this.dataSetId) {\n return { records: [], total: 0 }\n }\n\n const response = await client.query({\n query: gql`\n query ($dataSetId: String!, $filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n dataSummariesByDataSet(\n dataSetId: $dataSetId\n filters: $filters\n pagination: $pagination\n sortings: $sortings\n ) {\n items {\n id\n name\n description\n date\n period\n key01\n key02\n key03\n key04\n key05\n data01\n data02\n data03\n data04\n data05\n summary\n count\n countOoc\n countOos\n updater {\n id\n name\n }\n updatedAt\n }\n total\n }\n }\n `,\n variables: {\n dataSetId: this.dataSetId,\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n total: response.data.dataSummariesByDataSet.total || 0,\n records: response.data.dataSummariesByDataSet.items || []\n }\n }\n\n _exportableData() {\n let records = [] as GristRecord[]\n if (this.grist.selected && this.grist.selected.length > 0) {\n records = this.grist.selected\n } else {\n records = this.grist.data.records\n }\n\n var headerSetting = this.grist.compiledConfig.columns\n .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)\n .map(column => {\n return column.imex === true\n ? {\n header: column.header.renderer(column),\n key: column.name,\n width: column.width,\n type: column.type\n }\n : column.imex\n })\n\n var data = records.map(item => {\n return {\n id: item.id,\n ...this.gristConfig.columns\n .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)\n .reduce((record, column) => {\n const key = column.imex === true ? column.name : column.imex.key\n record[key] = key\n .split('.')\n .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)\n return record\n }, {})\n }\n })\n\n return { header: headerSetting, data: data }\n }\n}\n"]}
|
@@ -7,6 +7,30 @@ import { client } from '@operato/graphql';
|
|
7
7
|
import { i18next, localize } from '@operato/i18n';
|
8
8
|
import { ScrollbarStyles } from '@operato/styles';
|
9
9
|
let DataSummaryView = class DataSummaryView extends localize(i18next)(LitElement) {
|
10
|
+
static { this.styles = [
|
11
|
+
ScrollbarStyles,
|
12
|
+
css `
|
13
|
+
:host {
|
14
|
+
display: flex;
|
15
|
+
flex-direction: column;
|
16
|
+
|
17
|
+
background-color: var(--md-sys-color-surface);
|
18
|
+
}
|
19
|
+
|
20
|
+
div[content] {
|
21
|
+
flex: 1;
|
22
|
+
|
23
|
+
display: flex;
|
24
|
+
overflow: auto;
|
25
|
+
}
|
26
|
+
|
27
|
+
ox-data-summary-view {
|
28
|
+
flex: 1;
|
29
|
+
padding: var(--spacing-large);
|
30
|
+
overflow: auto;
|
31
|
+
}
|
32
|
+
`
|
33
|
+
]; }
|
10
34
|
render() {
|
11
35
|
return html `
|
12
36
|
<div content>
|
@@ -73,30 +97,6 @@ let DataSummaryView = class DataSummaryView extends localize(i18next)(LitElement
|
|
73
97
|
this.dataSummary = response.data.dataSummary;
|
74
98
|
}
|
75
99
|
};
|
76
|
-
DataSummaryView.styles = [
|
77
|
-
ScrollbarStyles,
|
78
|
-
css `
|
79
|
-
:host {
|
80
|
-
display: flex;
|
81
|
-
flex-direction: column;
|
82
|
-
|
83
|
-
background-color: var(--md-sys-color-surface);
|
84
|
-
}
|
85
|
-
|
86
|
-
div[content] {
|
87
|
-
flex: 1;
|
88
|
-
|
89
|
-
display: flex;
|
90
|
-
overflow: auto;
|
91
|
-
}
|
92
|
-
|
93
|
-
ox-data-summary-view {
|
94
|
-
flex: 1;
|
95
|
-
padding: var(--spacing-large);
|
96
|
-
overflow: auto;
|
97
|
-
}
|
98
|
-
`
|
99
|
-
];
|
100
100
|
__decorate([
|
101
101
|
property({
|
102
102
|
type: String,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-summary-view.js","sourceRoot":"","sources":["../../../client/pages/data-summary/data-summary-view.ts"],"names":[],"mappings":";AAAA,OAAO,0CAA0C,CAAA;AAEjD,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAS,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAqBjD,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;
|
1
|
+
{"version":3,"file":"data-summary-view.js","sourceRoot":"","sources":["../../../client/pages/data-summary/data-summary-view.ts"],"names":[],"mappings":";AAAA,OAAO,0CAA0C,CAAA;AAEjD,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAS,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAqBjD,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;aAClD,WAAM,GAAG;QACd,eAAe;QACf,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;KAoBF;KACF,AAvBY,CAuBZ;IAUD,MAAM;QACJ,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,WAAW;YAChB,CAAC,CAAC,IAAI,CAAA,sCAAsC,IAAI,CAAC,WAAW,0BAA0B;YACtF,CAAC,CAAC,IAAI,CAAA,EAAE;;KAEb,CAAA;IACH,CAAC;IAED,OAAO,CAAC,OAAO;QACb,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;QAE7B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCT;YACD,SAAS,EAAE;gBACT,EAAE;aACH;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAA;IAC9C,CAAC;;AAxED;IAJC,QAAQ,CAAC;QACR,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,iBAAiB;KAC7B,CAAC;;sDACoB;AAEb;IAAR,KAAK,EAAE;;oDAA0B;AAhC9B,eAAe;IADpB,aAAa,CAAC,mBAAmB,CAAC;GAC7B,eAAe,CAuGpB","sourcesContent":["import '@operato/dataset/ox-data-summary-view.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\n\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { ScrollbarStyles } from '@operato/styles'\nimport { DataItem } from '@operato/dataset'\n\ntype DataSummary = {\n name: string\n description: string\n dataItems?: DataItem[]\n date?: string\n period?: string\n key01?: string\n key02?: string\n key03?: string\n key04?: string\n key05?: string\n count?: number\n countOoc?: number\n countOos?: number\n summary?: { [key: string]: any }\n}\n\n@customElement('data-summary-view')\nclass DataSummaryView extends localize(i18next)(LitElement) {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: var(--md-sys-color-surface);\n }\n\n div[content] {\n flex: 1;\n\n display: flex;\n overflow: auto;\n }\n\n ox-data-summary-view {\n flex: 1;\n padding: var(--spacing-large);\n overflow: auto;\n }\n `\n ]\n\n @property({\n type: String,\n attribute: 'data-summary-id'\n })\n dataSummaryId?: string\n\n @state() dataSummary?: DataSummary\n\n render() {\n return html`\n <div content>\n ${this.dataSummary\n ? html`<ox-data-summary-view .dataSummary=${this.dataSummary}></ox-data-summary-view>`\n : html``}\n </div>\n `\n }\n\n updated(changes) {\n if (changes.has('dataSummaryId')) {\n this.fetchDataSummary()\n }\n }\n\n async fetchDataSummary() {\n const id = this.dataSummaryId\n\n const response = await client.query({\n query: gql`\n query ($id: String!) {\n dataSummary(id: $id) {\n id\n name\n description\n dataSet {\n id\n }\n dataItems {\n name\n description\n active\n hidden\n tag\n group\n type\n unit\n options\n quota\n spec\n stat\n }\n date\n period\n key01\n key02\n key03\n key04\n key05\n summary\n count\n countOoc\n countOos\n updater {\n id\n name\n }\n updatedAt\n }\n }\n `,\n variables: {\n id\n }\n })\n\n this.dataSummary = response.data.dataSummary\n }\n}\n"]}
|