@things-factory/spc 9.0.0-beta.24 → 9.0.0-beta.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/package.json +4 -4
  2. package/dist-client/bootstrap.d.ts +0 -1
  3. package/dist-client/bootstrap.js +0 -2
  4. package/dist-client/bootstrap.js.map +0 -1
  5. package/dist-client/index.d.ts +0 -0
  6. package/dist-client/index.js +0 -2
  7. package/dist-client/index.js.map +0 -1
  8. package/dist-client/pages/spc-chart-page.d.ts +0 -45
  9. package/dist-client/pages/spc-chart-page.js +0 -322
  10. package/dist-client/pages/spc-chart-page.js.map +0 -1
  11. package/dist-client/route.d.ts +0 -1
  12. package/dist-client/route.js +0 -8
  13. package/dist-client/route.js.map +0 -1
  14. package/dist-client/tsconfig.tsbuildinfo +0 -1
  15. package/dist-server/controllers/data-use-case-spc.d.ts +0 -5
  16. package/dist-server/controllers/data-use-case-spc.js +0 -40
  17. package/dist-server/controllers/data-use-case-spc.js.map +0 -1
  18. package/dist-server/controllers/index.d.ts +0 -1
  19. package/dist-server/controllers/index.js +0 -5
  20. package/dist-server/controllers/index.js.map +0 -1
  21. package/dist-server/controllers/rules/cp-cpk.d.ts +0 -1
  22. package/dist-server/controllers/rules/cp-cpk.js +0 -21
  23. package/dist-server/controllers/rules/cp-cpk.js.map +0 -1
  24. package/dist-server/controllers/spc-chart/c.d.ts +0 -2
  25. package/dist-server/controllers/spc-chart/c.js +0 -25
  26. package/dist-server/controllers/spc-chart/c.js.map +0 -1
  27. package/dist-server/controllers/spc-chart/histogram.d.ts +0 -13
  28. package/dist-server/controllers/spc-chart/histogram.js +0 -25
  29. package/dist-server/controllers/spc-chart/histogram.js.map +0 -1
  30. package/dist-server/controllers/spc-chart/i.d.ts +0 -2
  31. package/dist-server/controllers/spc-chart/i.js +0 -25
  32. package/dist-server/controllers/spc-chart/i.js.map +0 -1
  33. package/dist-server/controllers/spc-chart/index.d.ts +0 -140
  34. package/dist-server/controllers/spc-chart/index.js +0 -172
  35. package/dist-server/controllers/spc-chart/index.js.map +0 -1
  36. package/dist-server/controllers/spc-chart/mr.d.ts +0 -2
  37. package/dist-server/controllers/spc-chart/mr.js +0 -24
  38. package/dist-server/controllers/spc-chart/mr.js.map +0 -1
  39. package/dist-server/controllers/spc-chart/np.d.ts +0 -2
  40. package/dist-server/controllers/spc-chart/np.js +0 -25
  41. package/dist-server/controllers/spc-chart/np.js.map +0 -1
  42. package/dist-server/controllers/spc-chart/p.d.ts +0 -2
  43. package/dist-server/controllers/spc-chart/p.js +0 -24
  44. package/dist-server/controllers/spc-chart/p.js.map +0 -1
  45. package/dist-server/controllers/spc-chart/pareto.d.ts +0 -12
  46. package/dist-server/controllers/spc-chart/pareto.js +0 -23
  47. package/dist-server/controllers/spc-chart/pareto.js.map +0 -1
  48. package/dist-server/controllers/spc-chart/r.d.ts +0 -2
  49. package/dist-server/controllers/spc-chart/r.js +0 -30
  50. package/dist-server/controllers/spc-chart/r.js.map +0 -1
  51. package/dist-server/controllers/spc-chart/u.d.ts +0 -2
  52. package/dist-server/controllers/spc-chart/u.js +0 -26
  53. package/dist-server/controllers/spc-chart/u.js.map +0 -1
  54. package/dist-server/controllers/spc-chart/x-bar-r.d.ts +0 -2
  55. package/dist-server/controllers/spc-chart/x-bar-r.js +0 -44
  56. package/dist-server/controllers/spc-chart/x-bar-r.js.map +0 -1
  57. package/dist-server/controllers/spc-chart/x-bar.d.ts +0 -2
  58. package/dist-server/controllers/spc-chart/x-bar.js +0 -44
  59. package/dist-server/controllers/spc-chart/x-bar.js.map +0 -1
  60. package/dist-server/index.d.ts +0 -1
  61. package/dist-server/index.js +0 -11
  62. package/dist-server/index.js.map +0 -1
  63. package/dist-server/service/index.d.ts +0 -5
  64. package/dist-server/service/index.js +0 -21
  65. package/dist-server/service/index.js.map +0 -1
  66. package/dist-server/service/spc-chart/index.d.ts +0 -4
  67. package/dist-server/service/spc-chart/index.js +0 -8
  68. package/dist-server/service/spc-chart/index.js.map +0 -1
  69. package/dist-server/service/spc-chart/spc-chart-query.d.ts +0 -4
  70. package/dist-server/service/spc-chart/spc-chart-query.js +0 -99
  71. package/dist-server/service/spc-chart/spc-chart-query.js.map +0 -1
  72. package/dist-server/service/spc-chart/spc-chart-type.d.ts +0 -33
  73. package/dist-server/service/spc-chart/spc-chart-type.js +0 -133
  74. package/dist-server/service/spc-chart/spc-chart-type.js.map +0 -1
  75. package/dist-server/tsconfig.tsbuildinfo +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/spc",
3
- "version": "9.0.0-beta.24",
3
+ "version": "9.0.0-beta.27",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -30,8 +30,8 @@
30
30
  "@operato/dataset": "^9.0.0-beta",
31
31
  "@operato/form": "^9.0.0-beta",
32
32
  "@operato/spc": "^9.0.0-beta",
33
- "@things-factory/dataset": "^9.0.0-beta.24",
34
- "@things-factory/shell": "^9.0.0-beta.21"
33
+ "@things-factory/dataset": "^9.0.0-beta.27",
34
+ "@things-factory/shell": "^9.0.0-beta.25"
35
35
  },
36
- "gitHead": "b86b4a0b6a8355b33d8729fb7908ed33d6751ec2"
36
+ "gitHead": "3038f56087036b06717f8e4910383c6b1320218d"
37
37
  }
@@ -1 +0,0 @@
1
- export default function bootstrap(): void;
@@ -1,2 +0,0 @@
1
- export default function bootstrap() { }
2
- //# sourceMappingURL=bootstrap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,SAAS,KAAI,CAAC","sourcesContent":["export default function bootstrap() {}\n"]}
File without changes
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"","sourcesContent":[""]}
@@ -1,45 +0,0 @@
1
- import '@material/web/icon/icon.js';
2
- import '@operato/app/filters-form.js';
3
- import '@operato/spc/ox-chart-xbar-r.js';
4
- import '@operato/spc/ox-chart-i-mr.js';
5
- import '@operato/spc/ox-chart-u.js';
6
- import '@operato/spc/ox-chart-c.js';
7
- import '@operato/spc/ox-chart-p.js';
8
- import '@operato/spc/ox-chart-np.js';
9
- import { PageView } from '@operato/shell';
10
- import { PropertyValues } from 'lit';
11
- import { FilterValue, OxFiltersFormBase } from '@operato/form';
12
- declare const SpcChartPage_base: (new (...args: any[]) => {
13
- _storeUnsubscribe: import("redux").Unsubscribe;
14
- connectedCallback(): void;
15
- disconnectedCallback(): void;
16
- stateChanged(_state: unknown): void;
17
- readonly isConnected: boolean;
18
- }) & (new (...args: any[]) => import("lit").LitElement) & typeof PageView;
19
- export declare class SpcChartPage extends SpcChartPage_base {
20
- static styles: import("lit").CSSResult[];
21
- dataSetId?: string;
22
- variable?: string;
23
- chartType?: string;
24
- spcChart: any;
25
- filtersValue?: FilterValue[];
26
- variables: {
27
- display: string;
28
- value: string;
29
- }[];
30
- formBase: OxFiltersFormBase;
31
- private get filtersConfig();
32
- get context(): {
33
- title: string;
34
- help: string;
35
- };
36
- render(): import("lit-html").TemplateResult<1>;
37
- updated(changes: PropertyValues<this>): void;
38
- pageUpdated(changes: any, lifecycle: any): Promise<void>;
39
- fetchSpcChart(): Promise<void>;
40
- fetchVariables(id: string): Promise<{
41
- display: string;
42
- value: string;
43
- }[]>;
44
- }
45
- export {};
@@ -1,322 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import '@material/web/icon/icon.js';
3
- import '@operato/app/filters-form.js';
4
- import '@operato/spc/ox-chart-xbar-r.js';
5
- import '@operato/spc/ox-chart-i-mr.js';
6
- import '@operato/spc/ox-chart-u.js';
7
- import '@operato/spc/ox-chart-c.js';
8
- import '@operato/spc/ox-chart-p.js';
9
- import '@operato/spc/ox-chart-np.js';
10
- import { ScrollbarStyles, CommonHeaderStyles } from '@operato/styles';
11
- import { PageView, store } from '@operato/shell';
12
- import { css, html, nothing } from 'lit';
13
- import { customElement, query, state } from 'lit/decorators.js';
14
- import { client } from '@operato/graphql';
15
- import { i18next, localize } from '@operato/i18n';
16
- import { OxFiltersFormBase } from '@operato/form';
17
- import { connect } from 'pwa-helpers/connect-mixin';
18
- import gql from 'graphql-tag';
19
- function formatDate(timestamp) {
20
- const date = new Date(timestamp);
21
- const year = date.getFullYear();
22
- const month = String(date.getMonth() + 1).padStart(2, '0'); // 월은 0부터 시작하므로 1을 더함
23
- const day = String(date.getDate()).padStart(2, '0');
24
- const hours = String(date.getHours()).padStart(2, '0');
25
- const minutes = String(date.getMinutes()).padStart(2, '0');
26
- const seconds = String(date.getSeconds()).padStart(2, '0');
27
- return `${month}-${day} ${hours}:${minutes}`;
28
- }
29
- let SpcChartPage = class SpcChartPage extends connect(store)(localize(i18next)(PageView)) {
30
- constructor() {
31
- super(...arguments);
32
- this.dataSetId = '';
33
- this.variable = '';
34
- this.chartType = '';
35
- this.variables = [];
36
- }
37
- get filtersConfig() {
38
- return [
39
- {
40
- name: 'dataSetId',
41
- type: 'resource-id',
42
- label: 'dataset',
43
- operator: 'eq',
44
- options: {
45
- queryName: 'dataSets'
46
- },
47
- onchange: (value, formBase) => {
48
- requestAnimationFrame(async () => {
49
- const variableFilter = formBase.getFieldByName('variable');
50
- variableFilter.value = '';
51
- this.variables = [
52
- {
53
- display: '',
54
- value: ''
55
- },
56
- ...(await this.fetchVariables(value))
57
- ];
58
- });
59
- this.dataSetId = value;
60
- return false; /* whether filters-change event triggered or not */
61
- }
62
- },
63
- {
64
- name: 'variable',
65
- type: 'select',
66
- label: 'variable',
67
- operator: 'eq',
68
- options: () => this.variables,
69
- onchange: value => (this.variable = value)
70
- },
71
- {
72
- name: 'chartType',
73
- type: 'select',
74
- label: 'chart',
75
- operator: 'eq',
76
- options: ['Xbar-R', 'I-MR', 'C', 'U', 'P', 'NP'],
77
- onchange: value => (this.chartType = value)
78
- },
79
- {
80
- name: 'dateRange',
81
- type: 'date',
82
- label: 'date',
83
- operator: 'between',
84
- value: [
85
- {
86
- name: 'today',
87
- params: {
88
- relativeDays: -30
89
- }
90
- },
91
- {
92
- name: 'today',
93
- params: {
94
- relativeDays: -1
95
- }
96
- }
97
- ]
98
- }
99
- ];
100
- }
101
- get context() {
102
- return {
103
- title: i18next.t('title.spc-chart'),
104
- help: 'spc/spc-chart'
105
- };
106
- }
107
- render() {
108
- var _a, _b, _c, _d, _e, _f;
109
- const { dataSet = {}, variable, charts = [] } = this.spcChart || {};
110
- var plotters = [];
111
- switch (this.chartType) {
112
- case 'Xbar-R':
113
- const xbar = charts.find(r => r.chartType == 'Xbar');
114
- const r = charts.find(r => r.chartType == 'R');
115
- plotters.push({ chart: 'xbar-r', data: (_a = xbar === null || xbar === void 0 ? void 0 : xbar.plots) !== null && _a !== void 0 ? _a : [] });
116
- break;
117
- case 'I-MR':
118
- const i = charts.find(r => r.chartType == 'I');
119
- const mr = charts.find(r => r.chartType == 'MR');
120
- plotters.push({ chart: 'i-mr', data: (_b = i === null || i === void 0 ? void 0 : i.plots) !== null && _b !== void 0 ? _b : [] });
121
- break;
122
- case 'P':
123
- const p = charts.find(r => r.chartType == 'P');
124
- plotters.push({ chart: 'p', data: (_c = p === null || p === void 0 ? void 0 : p.plots) !== null && _c !== void 0 ? _c : [] });
125
- break;
126
- case 'NP':
127
- const np = charts.find(r => r.chartType == 'NP');
128
- plotters.push({ chart: 'np', data: (_d = np === null || np === void 0 ? void 0 : np.plots) !== null && _d !== void 0 ? _d : [] });
129
- break;
130
- case 'C':
131
- const c = charts.find(r => r.chartType == 'C');
132
- plotters.push({ chart: 'c', data: (_e = c === null || c === void 0 ? void 0 : c.plots) !== null && _e !== void 0 ? _e : [] });
133
- break;
134
- case 'U':
135
- const u = charts.find(r => r.chartType == 'U');
136
- plotters.push({ chart: 'u', data: (_f = u === null || u === void 0 ? void 0 : u.plots) !== null && _f !== void 0 ? _f : [] });
137
- default:
138
- }
139
- plotters = plotters.map(plotter => {
140
- return Object.assign(Object.assign({}, plotter), { data: plotter.data.map(plot => {
141
- return Object.assign(Object.assign({}, plot), { x: formatDate(Number(plot.x)) });
142
- }) });
143
- });
144
- return html `
145
- <div class="header">
146
- <div class="title"><md-icon>apps</md-icon>${i18next.t('title.spc-chart')}</div>
147
- <ox-filters-form-base
148
- class="filters"
149
- .value=${this.filtersValue}
150
- .filters=${this.filtersConfig}
151
- ?url-params-sensitive=${false}
152
- @filters-change=${(e) => {
153
- this.fetchSpcChart();
154
- }}
155
- >
156
- </ox-filters-form-base>
157
- </div>
158
-
159
- ${plotters.map(({ chart, data }) => chart == 'xbar-r'
160
- ? html ` <ox-chart-xbar-r class="chart" .plots=${data}></ox-chart-xbar-r> `
161
- : chart == 'i-mr'
162
- ? html ` <ox-chart-i-mr class="chart" .plots=${data}></ox-chart-i-mr> `
163
- : chart == 'u'
164
- ? html ` <ox-chart-u class="chart" .plots=${data}></ox-chart-u> `
165
- : chart == 'c'
166
- ? html ` <ox-chart-c class="chart" .plots=${data}></ox-chart-c> `
167
- : chart == 'p'
168
- ? html ` <ox-chart-p class="chart" .plots=${data}></ox-chart-p> `
169
- : chart == 'np'
170
- ? html ` <ox-chart-np class="chart" .plots=${data}></ox-chart-np> `
171
- : nothing)}
172
- `;
173
- }
174
- updated(changes) {
175
- if (!changes.has('spcChart')) {
176
- this.fetchSpcChart();
177
- }
178
- }
179
- async pageUpdated(changes, lifecycle) {
180
- if (this.active) {
181
- this.dataSetId = lifecycle.resourceId;
182
- }
183
- }
184
- async fetchSpcChart() {
185
- const { dataSetId, dateRange: [fromDate, toDate], variable, chartType } = (await this.formBase.getQueryFilters()).reduce((sum, field) => {
186
- sum[field.name] = field.value;
187
- return sum;
188
- }, {});
189
- if (!(dataSetId && fromDate && toDate && variable && chartType)) {
190
- return;
191
- }
192
- const response = await client.query({
193
- query: gql `
194
- query spcChart(
195
- $dataSetId: String!
196
- $variable: String!
197
- $chartType: String!
198
- $fromDate: String!
199
- $toDate: String!
200
- ) {
201
- spcChart(
202
- dataSetId: $dataSetId
203
- variable: $variable
204
- chartType: $chartType
205
- fromDate: $fromDate
206
- toDate: $toDate
207
- ) {
208
- dataSet {
209
- id
210
- name
211
- }
212
- variable
213
- charts {
214
- chartType
215
- controlLimits {
216
- ucl
217
- lcl
218
- cl
219
- }
220
- specLimits {
221
- usl
222
- lsl
223
- target
224
- }
225
- plots {
226
- x
227
- values
228
- xbar
229
- r
230
- i
231
- mr
232
- n
233
- defects
234
- }
235
- }
236
- }
237
- }
238
- `,
239
- variables: {
240
- dataSetId,
241
- variable,
242
- chartType,
243
- fromDate,
244
- toDate
245
- }
246
- });
247
- this.spcChart = response.data.spcChart;
248
- }
249
- async fetchVariables(id) {
250
- const response = await client.query({
251
- query: gql `
252
- query dataSet($id: String!) {
253
- dataSet(id: $id) {
254
- dataItems {
255
- name
256
- tag
257
- }
258
- }
259
- }
260
- `,
261
- variables: {
262
- id
263
- }
264
- });
265
- return response.data.dataSet.dataItems.map(dataItem => {
266
- return {
267
- display: dataItem.name,
268
- value: dataItem.name
269
- };
270
- });
271
- }
272
- };
273
- SpcChartPage.styles = [
274
- ScrollbarStyles,
275
- CommonHeaderStyles,
276
- css `
277
- :host {
278
- display: flex;
279
- flex-direction: column;
280
-
281
- width: 100%;
282
- }
283
-
284
- .chart {
285
- flex: 1;
286
- padding: var(--spacing-medium);
287
- }
288
- `
289
- ];
290
- __decorate([
291
- state(),
292
- __metadata("design:type", String)
293
- ], SpcChartPage.prototype, "dataSetId", void 0);
294
- __decorate([
295
- state(),
296
- __metadata("design:type", String)
297
- ], SpcChartPage.prototype, "variable", void 0);
298
- __decorate([
299
- state(),
300
- __metadata("design:type", String)
301
- ], SpcChartPage.prototype, "chartType", void 0);
302
- __decorate([
303
- state(),
304
- __metadata("design:type", Object)
305
- ], SpcChartPage.prototype, "spcChart", void 0);
306
- __decorate([
307
- state(),
308
- __metadata("design:type", Array)
309
- ], SpcChartPage.prototype, "filtersValue", void 0);
310
- __decorate([
311
- state(),
312
- __metadata("design:type", Array)
313
- ], SpcChartPage.prototype, "variables", void 0);
314
- __decorate([
315
- query('ox-filters-form-base'),
316
- __metadata("design:type", OxFiltersFormBase)
317
- ], SpcChartPage.prototype, "formBase", void 0);
318
- SpcChartPage = __decorate([
319
- customElement('spc-chart-page')
320
- ], SpcChartPage);
321
- export { SpcChartPage };
322
- //# sourceMappingURL=spc-chart-page.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spc-chart-page.js","sourceRoot":"","sources":["../../client/pages/spc-chart-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\n\nimport '@operato/app/filters-form.js'\nimport '@operato/spc/ox-chart-xbar-r.js'\nimport '@operato/spc/ox-chart-i-mr.js'\nimport '@operato/spc/ox-chart-u.js'\nimport '@operato/spc/ox-chart-c.js'\nimport '@operato/spc/ox-chart-p.js'\nimport '@operato/spc/ox-chart-np.js'\n\nimport { ScrollbarStyles, CommonHeaderStyles } from '@operato/styles'\nimport { PageView, store } from '@operato/shell'\nimport { css, html, PropertyValues, nothing } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { isMobileDevice } from '@operato/utils'\nimport { FilterConfig, FilterValue, OxFiltersFormBase } from '@operato/form'\n\nimport { connect } from 'pwa-helpers/connect-mixin'\nimport gql from 'graphql-tag'\n\nfunction formatDate(timestamp: number) {\n const date = new Date(timestamp)\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0') // 월은 0부터 시작하므로 1을 더함\n const day = String(date.getDate()).padStart(2, '0')\n const hours = String(date.getHours()).padStart(2, '0')\n const minutes = String(date.getMinutes()).padStart(2, '0')\n const seconds = String(date.getSeconds()).padStart(2, '0')\n\n return `${month}-${day} ${hours}:${minutes}`\n}\n\n@customElement('spc-chart-page')\nexport class SpcChartPage 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 width: 100%;\n }\n\n .chart {\n flex: 1;\n padding: var(--spacing-medium);\n }\n `\n ]\n\n @state() dataSetId?: string = ''\n @state() variable?: string = ''\n @state() chartType?: string = ''\n @state() spcChart: any\n @state() filtersValue?: FilterValue[]\n @state() variables: { display: string; value: string }[] = []\n\n @query('ox-filters-form-base') formBase!: OxFiltersFormBase\n\n private get filtersConfig(): FilterConfig[] {\n return [\n {\n name: 'dataSetId',\n type: 'resource-id',\n label: 'dataset',\n operator: 'eq',\n options: {\n queryName: 'dataSets'\n },\n onchange: (value, formBase) => {\n requestAnimationFrame(async () => {\n const variableFilter = formBase.getFieldByName('variable') as HTMLInputElement\n variableFilter.value = ''\n\n this.variables = [\n {\n display: '',\n value: ''\n },\n ...(await this.fetchVariables(value as string))\n ]\n })\n\n this.dataSetId = value\n\n return false /* whether filters-change event triggered or not */\n }\n },\n {\n name: 'variable',\n type: 'select',\n label: 'variable',\n operator: 'eq',\n options: () => this.variables,\n onchange: value => (this.variable = value)\n },\n {\n name: 'chartType',\n type: 'select',\n label: 'chart',\n operator: 'eq',\n options: ['Xbar-R', 'I-MR', 'C', 'U', 'P', 'NP'],\n onchange: value => (this.chartType = value)\n },\n {\n name: 'dateRange',\n type: 'date',\n label: 'date',\n operator: 'between',\n value: [\n {\n name: 'today',\n params: {\n relativeDays: -30\n }\n },\n {\n name: 'today',\n params: {\n relativeDays: -1\n }\n }\n ]\n }\n ]\n }\n\n get context() {\n return {\n title: i18next.t('title.spc-chart'),\n help: 'spc/spc-chart'\n }\n }\n\n render() {\n const { dataSet = {}, variable, charts = [] } = this.spcChart || {}\n\n var plotters: { chart: string; data: any[] }[] = []\n\n switch (this.chartType) {\n case 'Xbar-R':\n const xbar = charts.find(r => r.chartType == 'Xbar')\n const r = charts.find(r => r.chartType == 'R')\n\n plotters.push({ chart: 'xbar-r', data: xbar?.plots ?? [] })\n break\n\n case 'I-MR':\n const i = charts.find(r => r.chartType == 'I')\n const mr = charts.find(r => r.chartType == 'MR')\n\n plotters.push({ chart: 'i-mr', data: i?.plots ?? [] })\n break\n\n case 'P':\n const p = charts.find(r => r.chartType == 'P')\n plotters.push({ chart: 'p', data: p?.plots ?? [] })\n break\n\n case 'NP':\n const np = charts.find(r => r.chartType == 'NP')\n plotters.push({ chart: 'np', data: np?.plots ?? [] })\n break\n\n case 'C':\n const c = charts.find(r => r.chartType == 'C')\n plotters.push({ chart: 'c', data: c?.plots ?? [] })\n break\n\n case 'U':\n const u = charts.find(r => r.chartType == 'U')\n plotters.push({ chart: 'u', data: u?.plots ?? [] })\n\n default:\n }\n\n plotters = plotters.map(plotter => {\n return {\n ...plotter,\n data: plotter.data.map(plot => {\n return {\n ...plot,\n x: formatDate(Number(plot.x))\n }\n })\n }\n })\n\n return html`\n <div class=\"header\">\n <div class=\"title\"><md-icon>apps</md-icon>${i18next.t('title.spc-chart')}</div>\n <ox-filters-form-base\n class=\"filters\"\n .value=${this.filtersValue}\n .filters=${this.filtersConfig}\n ?url-params-sensitive=${false}\n @filters-change=${(e: CustomEvent) => {\n this.fetchSpcChart()\n }}\n >\n </ox-filters-form-base>\n </div>\n\n ${plotters.map(({ chart, data }) =>\n chart == 'xbar-r'\n ? html` <ox-chart-xbar-r class=\"chart\" .plots=${data}></ox-chart-xbar-r> `\n : chart == 'i-mr'\n ? html` <ox-chart-i-mr class=\"chart\" .plots=${data}></ox-chart-i-mr> `\n : chart == 'u'\n ? html` <ox-chart-u class=\"chart\" .plots=${data}></ox-chart-u> `\n : chart == 'c'\n ? html` <ox-chart-c class=\"chart\" .plots=${data}></ox-chart-c> `\n : chart == 'p'\n ? html` <ox-chart-p class=\"chart\" .plots=${data}></ox-chart-p> `\n : chart == 'np'\n ? html` <ox-chart-np class=\"chart\" .plots=${data}></ox-chart-np> `\n : nothing\n )}\n `\n }\n\n updated(changes: PropertyValues<this>) {\n if (!changes.has('spcChart')) {\n this.fetchSpcChart()\n }\n }\n\n async pageUpdated(changes: any, lifecycle: any) {\n if (this.active) {\n this.dataSetId = lifecycle.resourceId\n }\n }\n\n async fetchSpcChart() {\n const {\n dataSetId,\n dateRange: [fromDate, toDate],\n variable,\n chartType\n } = (await this.formBase.getQueryFilters()).reduce((sum, field) => {\n sum[field.name] = field.value\n return sum\n }, {} as any)\n\n if (!(dataSetId && fromDate && toDate && variable && chartType)) {\n return\n }\n\n const response = await client.query({\n query: gql`\n query spcChart(\n $dataSetId: String!\n $variable: String!\n $chartType: String!\n $fromDate: String!\n $toDate: String!\n ) {\n spcChart(\n dataSetId: $dataSetId\n variable: $variable\n chartType: $chartType\n fromDate: $fromDate\n toDate: $toDate\n ) {\n dataSet {\n id\n name\n }\n variable\n charts {\n chartType\n controlLimits {\n ucl\n lcl\n cl\n }\n specLimits {\n usl\n lsl\n target\n }\n plots {\n x\n values\n xbar\n r\n i\n mr\n n\n defects\n }\n }\n }\n }\n `,\n variables: {\n dataSetId,\n variable,\n chartType,\n fromDate,\n toDate\n }\n })\n\n this.spcChart = response.data.spcChart\n }\n\n async fetchVariables(id: string): Promise<{ display: string; value: string }[]> {\n const response = await client.query({\n query: gql`\n query dataSet($id: String!) {\n dataSet(id: $id) {\n dataItems {\n name\n tag\n }\n }\n }\n `,\n variables: {\n id\n }\n })\n\n return response.data.dataSet.dataItems.map(dataItem => {\n return {\n display: dataItem.name,\n value: dataItem.name\n }\n })\n }\n}\n"]}
@@ -1 +0,0 @@
1
- export default function route(page: any): any;
@@ -1,8 +0,0 @@
1
- export default function route(page) {
2
- switch (page) {
3
- case 'spc-chart':
4
- import('./pages/spc-chart-page');
5
- return page;
6
- }
7
- }
8
- //# sourceMappingURL=route.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../client/route.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAI;IAChC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,WAAW;YACd,MAAM,CAAC,wBAAwB,CAAC,CAAA;YAChC,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC","sourcesContent":["export default function route(page) {\n switch (page) {\n case 'spc-chart':\n import('./pages/spc-chart-page')\n return page\n }\n}\n"]}