@things-factory/dataset 6.0.88 → 6.0.91

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.
@@ -1,100 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import '@operato/data-grist';
3
- import gql from 'graphql-tag';
4
- import { css, html, LitElement } from 'lit';
5
- import { property } from 'lit/decorators.js';
6
- import { client } from '@operato/graphql';
7
- import { i18next } from '@operato/i18n';
8
- import { isMobileDevice } from '@operato/utils';
9
- export class DataSummaryImporter extends LitElement {
10
- constructor() {
11
- super(...arguments);
12
- this.dataSummaries = [];
13
- this.columns = {
14
- list: { fields: ['name', 'description'] },
15
- pagination: { infinite: true },
16
- columns: [
17
- {
18
- type: 'string',
19
- name: 'name',
20
- header: i18next.t('field.name'),
21
- width: 150
22
- },
23
- {
24
- type: 'string',
25
- name: 'description',
26
- header: i18next.t('field.description'),
27
- width: 200
28
- },
29
- {
30
- type: 'checkbox',
31
- name: 'active',
32
- header: i18next.t('field.active'),
33
- width: 60
34
- }
35
- ]
36
- };
37
- }
38
- render() {
39
- return html `
40
- <ox-grist
41
- .mode=${isMobileDevice() ? 'LIST' : 'GRID'}
42
- .config=${this.columns}
43
- .data=${{
44
- records: this.dataSummaries
45
- }}
46
- ></ox-grist>
47
-
48
- <div class="button-container">
49
- <mwc-button raised @click="${this.save.bind(this)}">${i18next.t('button.save')}</mwc-button>
50
- </div>
51
- `;
52
- }
53
- async save() {
54
- var _a;
55
- const response = await client.mutate({
56
- mutation: gql `
57
- mutation importDataSummaries($dataSummaries: [DataSummaryPatch!]!) {
58
- importDataSummaries(dataSummaries: $dataSummaries)
59
- }
60
- `,
61
- variables: { dataSummaries: this.dataSummaries }
62
- });
63
- if ((_a = response.errors) === null || _a === void 0 ? void 0 : _a.length)
64
- return;
65
- this.dispatchEvent(new CustomEvent('imported'));
66
- }
67
- }
68
- DataSummaryImporter.styles = [
69
- css `
70
- :host {
71
- display: flex;
72
- flex-direction: column;
73
-
74
- background-color: #fff;
75
- }
76
-
77
- ox-grist {
78
- flex: 1;
79
- }
80
-
81
- .button-container {
82
- display: flex;
83
- margin-left: auto;
84
- padding: var(--padding-default);
85
- }
86
-
87
- mwc-button {
88
- margin-left: var(--margin-default);
89
- }
90
- `
91
- ];
92
- __decorate([
93
- property({ type: Array }),
94
- __metadata("design:type", Array)
95
- ], DataSummaryImporter.prototype, "dataSummaries", void 0);
96
- __decorate([
97
- property({ type: Object }),
98
- __metadata("design:type", Object)
99
- ], DataSummaryImporter.prototype, "columns", void 0);
100
- //# sourceMappingURL=data-summary-importer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-summary-importer.js","sourceRoot":"","sources":["../../../client/pages/data-summary/data-summary-importer.ts"],"names":[],"mappings":";AAAA,OAAO,qBAAqB,CAAA;AAE5B,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAAnD;;QA0B6B,kBAAa,GAAU,EAAE,CAAA;QACxB,YAAO,GAAG;YACpC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE;YACzC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC9B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC/B,KAAK,EAAE,GAAG;iBACX;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC;oBACtC,KAAK,EAAE,GAAG;iBACX;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;oBACjC,KAAK,EAAE,EAAE;iBACV;aACF;SACF,CAAA;IAmCH,CAAC;IAhCC,MAAM;QACJ,OAAO,IAAI,CAAA;;gBAEC,cAAc,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;kBAChC,IAAI,CAAC,OAAO;gBAEpB;YACE,OAAO,EAAE,IAAI,CAAC,aAAa;SAE/B;;;;qCAI6B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;;KAEjF,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI;;QACR,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,GAAG,CAAA;;;;OAIZ;YACD,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;SACjD,CAAC,CAAA;QAEF,IAAI,MAAA,QAAQ,CAAC,MAAM,0CAAE,MAAM;YAAE,OAAM;QAEnC,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,CAAC;;AAnFM,0BAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;KAqBF;CACF,CAAA;AAED;IAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;0DAA0B;AACpD;IAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;oDAuB1B","sourcesContent":["import '@operato/data-grist'\n\nimport gql from 'graphql-tag'\nimport { css, html, LitElement } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport { client } from '@operato/graphql'\nimport { i18next } from '@operato/i18n'\nimport { isMobileDevice } from '@operato/utils'\n\nexport class DataSummaryImporter extends LitElement {\n static styles = [\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: #fff;\n }\n\n ox-grist {\n flex: 1;\n }\n\n .button-container {\n display: flex;\n margin-left: auto;\n padding: var(--padding-default);\n }\n\n mwc-button {\n margin-left: var(--margin-default);\n }\n `\n ]\n\n @property({ type: Array }) dataSummaries: any[] = []\n @property({ type: Object }) columns = {\n list: { fields: ['name', 'description'] },\n pagination: { infinite: true },\n columns: [\n {\n type: 'string',\n name: 'name',\n header: i18next.t('field.name'),\n width: 150\n },\n {\n type: 'string',\n name: 'description',\n header: i18next.t('field.description'),\n width: 200\n },\n {\n type: 'checkbox',\n name: 'active',\n header: i18next.t('field.active'),\n width: 60\n }\n ]\n }\n\n\n render() {\n return html`\n <ox-grist\n .mode=${isMobileDevice() ? 'LIST' : 'GRID'}\n .config=${this.columns}\n .data=${\n { \n records: this.dataSummaries \n }\n }\n ></ox-grist>\n\n <div class=\"button-container\">\n <mwc-button raised @click=\"${this.save.bind(this)}\">${i18next.t('button.save')}</mwc-button>\n </div>\n `\n }\n\n async save() {\n const response = await client.mutate({\n mutation: gql`\n mutation importDataSummaries($dataSummaries: [DataSummaryPatch!]!) {\n importDataSummaries(dataSummaries: $dataSummaries)\n }\n `,\n variables: { dataSummaries: this.dataSummaries }\n })\n\n if (response.errors?.length) return\n\n this.dispatchEvent(new CustomEvent('imported'))\n }\n}\n\n"]}
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateSummaryData = void 0;
4
- const shell_1 = require("@things-factory/shell");
5
- const env_1 = require("@things-factory/env");
6
- const data_sample_1 = require("../service/data-sample/data-sample");
7
- const data_set_1 = require("../service/data-set/data-set");
8
- const data_summary_1 = require("../service/data-summary/data-summary");
9
- const compareKeys = (dataKeyItems, summary, sample) => {
10
- return dataKeyItems.every((item, index) => {
11
- const prop = `key0${index + 1}`;
12
- return sample[prop] === summary[prop];
13
- });
14
- };
15
- const buildKeysFromSample = (dataKeyItems, sample) => {
16
- return dataKeyItems.reduce((sum, item, index) => {
17
- const prop = `key0${index + 1}`;
18
- sum[prop] === sample[prop];
19
- return sum;
20
- }, {});
21
- };
22
- const buildKeySortingList = (dataKeyItems) => {
23
- return dataKeyItems.reduce((sum, item, index) => {
24
- const name = `key0${index + 1}`;
25
- sum.push({ name, desc: true });
26
- return sum;
27
- }, []);
28
- };
29
- const buildKeyList = (dataKeyItems) => {
30
- return dataKeyItems.reduce((sum, item, index) => {
31
- sum.push(`key0${index + 1}`);
32
- return sum;
33
- }, []);
34
- };
35
- async function generateSummaryData(dataSetId, workDate, workShift, context) {
36
- var _a;
37
- const { domain, user, tx } = context.state;
38
- try {
39
- const dataSet = await tx.getRepository(data_set_1.DataSet).findOne({
40
- where: { domain: { id: domain.id }, id: dataSetId },
41
- relations: ['dataKeySet']
42
- });
43
- const dataKeyItems = ((_a = dataSet.dataKeySet) === null || _a === void 0 ? void 0 : _a.dataKeyItems) || [];
44
- const limit = 100;
45
- var page = 1;
46
- var summaries = [];
47
- var summary;
48
- do {
49
- const samples = await (0, shell_1.getQueryBuilderFromListParams)({
50
- repository: tx.getRepository(data_sample_1.DataSample),
51
- params: {
52
- filters: [
53
- { name: 'dataSet', operator: 'eq', value: dataSetId },
54
- { name: 'workDate', operator: 'eq', value: workDate },
55
- { name: 'workShift', operator: 'eq', value: workShift }
56
- ],
57
- pagination: { page, limit },
58
- sortings: [...buildKeySortingList(dataKeyItems), { name: 'collectedAt', desc: true }]
59
- },
60
- domain
61
- }).getMany();
62
- for (const sample of samples) {
63
- if (!summary || !compareKeys(dataKeyItems, summary, sample)) {
64
- if (summary) {
65
- summaries.push(summary);
66
- }
67
- summary = Object.assign(Object.assign({ domain, name: dataSet.name, description: dataSet.description, workDate,
68
- workShift,
69
- dataSet }, buildKeysFromSample(dataKeyItems, sample)), { count: 0, countOoc: 0, countOos: 0, updater: user, creator: user });
70
- }
71
- summary.count++;
72
- sample.ooc && summary.countOoc++;
73
- sample.oos && summary.countOos++;
74
- }
75
- if (samples.length < limit) {
76
- summary && summaries.push(summary);
77
- break;
78
- }
79
- page++;
80
- } while (true);
81
- tx.getRepository(data_summary_1.DataSummary).upsert(summaries, ['workDate', 'workShift', ...buildKeyList(dataKeyItems)]);
82
- }
83
- catch (e) {
84
- env_1.logger.error(e);
85
- }
86
- }
87
- exports.generateSummaryData = generateSummaryData;
88
- //# sourceMappingURL=generate-summary-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-summary-data.js","sourceRoot":"","sources":["../../server/controllers/generate-summary-data.ts"],"names":[],"mappings":"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","sourcesContent":["import { Sorting, getQueryBuilderFromListParams } from '@things-factory/shell'\nimport { logger } from '@things-factory/env'\n\nimport { DataSample } from '../service/data-sample/data-sample'\nimport { DataSet } from '../service/data-set/data-set'\n\nimport { DataSummary } from '../service/data-summary/data-summary'\nimport { DataKeyItem } from '../service/data-key-set/data-key-item-type'\n\nconst compareKeys = (dataKeyItems: DataKeyItem[], summary: Partial<DataSummary>, sample: DataSample): boolean => {\n return dataKeyItems.every((item, index) => {\n const prop = `key0${index + 1}`\n return sample[prop] === summary[prop]\n })\n}\n\nconst buildKeysFromSample = (dataKeyItems: DataKeyItem[], sample: DataSample): Partial<DataSummary> => {\n return dataKeyItems.reduce((sum, item, index) => {\n const prop = `key0${index + 1}`\n sum[prop] === sample[prop]\n\n return sum\n }, {} as Partial<DataSummary>)\n}\n\nconst buildKeySortingList = (dataKeyItems: DataKeyItem[]): Sorting[] => {\n return dataKeyItems.reduce((sum, item, index) => {\n const name = `key0${index + 1}`\n sum.push({ name, desc: true })\n return sum\n }, [])\n}\n\nconst buildKeyList = (dataKeyItems: DataKeyItem[]): string[] => {\n return dataKeyItems.reduce((sum, item, index) => {\n sum.push(`key0${index + 1}`)\n return sum\n }, [])\n}\n\nexport async function generateSummaryData(\n dataSetId: string,\n workDate: string,\n workShift: string,\n context: ResolverContext\n): Promise<void> {\n const { domain, user, tx } = context.state\n\n try {\n const dataSet = await tx.getRepository(DataSet).findOne({\n where: { domain: { id: domain.id }, id: dataSetId },\n relations: ['dataKeySet']\n })\n\n const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []\n\n const limit = 100\n var page = 1\n\n var summaries: Partial<DataSummary>[] = []\n var summary: Partial<DataSummary>\n\n do {\n const samples = await getQueryBuilderFromListParams({\n repository: tx.getRepository(DataSample),\n params: {\n filters: [\n { name: 'dataSet', operator: 'eq', value: dataSetId },\n { name: 'workDate', operator: 'eq', value: workDate },\n { name: 'workShift', operator: 'eq', value: workShift }\n ],\n pagination: { page, limit },\n sortings: [...buildKeySortingList(dataKeyItems), { name: 'collectedAt', desc: true }]\n },\n domain\n }).getMany()\n\n for (const sample of samples) {\n if (!summary || !compareKeys(dataKeyItems, summary, sample)) {\n if (summary) {\n summaries.push(summary)\n }\n\n summary = {\n domain,\n name: dataSet.name,\n description: dataSet.description,\n workDate,\n workShift,\n dataSet,\n ...buildKeysFromSample(dataKeyItems, sample),\n count: 0,\n countOoc: 0,\n countOos: 0,\n updater: user,\n creator: user\n }\n }\n\n summary.count++\n sample.ooc && summary.countOoc++\n sample.oos && summary.countOos++\n }\n\n if (samples.length < limit) {\n summary && summaries.push(summary)\n break\n }\n\n page++\n } while (true)\n\n tx.getRepository(DataSummary).upsert(summaries, ['workDate', 'workShift', ...buildKeyList(dataKeyItems)])\n } catch (e) {\n logger.error(e)\n }\n}\n"]}