@things-factory/dataset 7.0.1-alpha.60 → 7.0.1-alpha.64

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.
@@ -34,13 +34,17 @@ import { client } from '@operato/graphql'
34
34
  import { i18next, localize } from '@operato/i18n'
35
35
  import { openPopup } from '@operato/layout'
36
36
  import { PageView, store } from '@operato/shell'
37
- import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
37
+ import { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
38
38
  import { isMobileDevice, adjustFilters } from '@operato/utils'
39
39
 
40
+ import { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js'
41
+ import { PagePreferenceProvider } from '@things-factory/personalization/dist-client/types.js'
42
+
40
43
  @customElement('data-ooc-list-page')
41
44
  export class DataOocListPage extends connect(store)(localize(i18next)(PageView)) {
42
45
  static styles = [
43
46
  ScrollbarStyles,
47
+ CommonGristStyles,
44
48
  CommonHeaderStyles,
45
49
  css`
46
50
  :host {
@@ -62,6 +66,7 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
62
66
  @state() private gristConfig: any
63
67
  @state() private mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
64
68
  @state() private state?: string[]
69
+ @state() private personalConfigProvider?: PagePreferenceProvider
65
70
 
66
71
  @query('ox-grist') private grist!: DataGrist
67
72
 
@@ -99,7 +104,12 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
99
104
  const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')
100
105
 
101
106
  return html`
102
- <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>
107
+ <ox-grist
108
+ .mode=${mode}
109
+ .config=${this.gristConfig}
110
+ .fetchHandler=${this.fetchHandler.bind(this)}
111
+ .personalConfigProvider=${this.personalConfigProvider}
112
+ >
103
113
  <div slot="headroom" class="header">
104
114
  <div class="title">${i18next.t('title.data-ooc list')}</div>
105
115
 
@@ -116,11 +126,15 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
116
126
 
117
127
  <ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
118
128
  </div>
129
+
130
+ <ox-grist-personalizer slot="setting"></ox-grist-personalizer>
119
131
  </ox-grist>
120
132
  `
121
133
  }
122
134
 
123
135
  async pageInitialized(lifecycle) {
136
+ this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist')
137
+
124
138
  this.gristConfig = {
125
139
  list: {
126
140
  fields: ['dataSet', 'data', 'correctiveAction', 'corrector', 'correctedAt', 'collectedAt', 'creator']
@@ -378,11 +392,14 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
378
392
  },
379
393
  handlers: {
380
394
  click: (columns, data, column, record, rowIndex) => {
381
- const popup = openPopup(html` <data-ooc-view data-ooc-id=${record.id} style="background-color: white;"></data-ooc-view> `, {
382
- backdrop: true,
383
- size: 'large',
384
- title: i18next.t('title.data-ooc view')
385
- })
395
+ const popup = openPopup(
396
+ html` <data-ooc-view data-ooc-id=${record.id} style="background-color: white;"></data-ooc-view> `,
397
+ {
398
+ backdrop: true,
399
+ size: 'large',
400
+ title: i18next.t('title.data-ooc view')
401
+ }
402
+ )
386
403
  popup.onclosed = () => {
387
404
  this.grist.fetch()
388
405
  }
@@ -513,7 +530,9 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
513
530
  .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
514
531
  .reduce((record, column) => {
515
532
  const key = column.imex === true ? column.name : column.imex.key
516
- record[key] = key.split('.').reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
533
+ record[key] = key
534
+ .split('.')
535
+ .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
517
536
  return record
518
537
  }, {})
519
538
  }
@@ -14,14 +14,18 @@ import { client } from '@operato/graphql'
14
14
  import { i18next, localize } from '@operato/i18n'
15
15
  import { openPopup } from '@operato/layout'
16
16
  import { PageView, store } from '@operato/shell'
17
- import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
17
+ import { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
18
18
  import { isMobileDevice } from '@operato/utils'
19
19
  import { GhostPrint } from '@operato/ghost-print'
20
20
 
21
+ import { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js'
22
+ import { PagePreferenceProvider } from '@things-factory/personalization/dist-client/types.js'
23
+
21
24
  @customElement('data-sample-list-page')
22
25
  export class DataSampleListPage extends connect(store)(localize(i18next)(PageView)) {
23
26
  static styles = [
24
27
  ScrollbarStyles,
28
+ CommonGristStyles,
25
29
  CommonHeaderStyles,
26
30
  css`
27
31
  :host {
@@ -42,6 +46,7 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
42
46
 
43
47
  @state() gristConfig: any
44
48
  @state() mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
49
+ @state() personalConfigProvider?: PagePreferenceProvider
45
50
 
46
51
  @query('ox-grist') private grist!: DataGrist
47
52
 
@@ -79,7 +84,13 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
79
84
  const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')
80
85
 
81
86
  return html`
82
- <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)} ?url-params-sensitive=${false /* this.active */}>
87
+ <ox-grist
88
+ .mode=${mode}
89
+ .config=${this.gristConfig}
90
+ .fetchHandler=${this.fetchHandler.bind(this)}
91
+ .personalConfigProvider=${this.personalConfigProvider}
92
+ ?url-params-sensitive=${false /* this.active */}
93
+ >
83
94
  <div slot="headroom" class="header">
84
95
  <div class="title">${i18next.t('title.data-sample list')}</div>
85
96
 
@@ -89,11 +100,15 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
89
100
 
90
101
  <ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
91
102
  </div>
103
+
104
+ <ox-grist-personalizer slot="setting"></ox-grist-personalizer>
92
105
  </ox-grist>
93
106
  `
94
107
  }
95
108
 
96
109
  async pageInitialized(lifecycle) {
110
+ this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist')
111
+
97
112
  const yesterday = moment().subtract(1, 'day').format('YYYY-MM-DD')
98
113
  const today = moment().format('YYYY-MM-DD')
99
114
 
@@ -308,11 +323,16 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
308
323
  },
309
324
  handlers: {
310
325
  click: (columns, data, column, record, rowIndex) => {
311
- openPopup(html` <data-sample-view data-sample-id=${record.id} style="background-color: white;"></data-sample-view> `, {
312
- backdrop: true,
313
- size: 'large',
314
- title: i18next.t('title.data-sample view')
315
- })
326
+ openPopup(
327
+ html`
328
+ <data-sample-view data-sample-id=${record.id} style="background-color: white;"></data-sample-view>
329
+ `,
330
+ {
331
+ backdrop: true,
332
+ size: 'large',
333
+ title: i18next.t('title.data-sample view')
334
+ }
335
+ )
316
336
  }
317
337
  }
318
338
  },
@@ -399,7 +419,9 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
399
419
  .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
400
420
  .reduce((record, column) => {
401
421
  const key = column.imex === true ? column.name : column.imex.key
402
- record[key] = key.split('.').reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
422
+ record[key] = key
423
+ .split('.')
424
+ .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
403
425
  return record
404
426
  }, {})
405
427
  }
@@ -12,15 +12,19 @@ import { client } from '@operato/graphql'
12
12
  import { i18next, localize } from '@operato/i18n'
13
13
  import { notify } from '@operato/layout'
14
14
  import { PageView, store } from '@operato/shell'
15
- import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
15
+ import { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
16
16
  import { isMobileDevice } from '@operato/utils'
17
17
  import { DataGrist, FetchOption } from '@operato/data-grist'
18
18
  import { OxPrompt } from '@operato/popup/ox-prompt.js'
19
19
 
20
+ import { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js'
21
+ import { PagePreferenceProvider } from '@things-factory/personalization/dist-client/types.js'
22
+
20
23
  @customElement('data-sensor-list-page')
21
24
  export class DataSensorListPage extends connect(store)(localize(i18next)(PageView)) {
22
25
  static styles = [
23
26
  ScrollbarStyles,
27
+ CommonGristStyles,
24
28
  CommonHeaderStyles,
25
29
  css`
26
30
  :host {
@@ -39,6 +43,7 @@ export class DataSensorListPage extends connect(store)(localize(i18next)(PageVie
39
43
 
40
44
  @state() private gristConfig: any
41
45
  @state() private mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
46
+ @state() personalConfigProvider?: PagePreferenceProvider
42
47
 
43
48
  @query('ox-grist') private grist!: DataGrist
44
49
 
@@ -85,7 +90,13 @@ export class DataSensorListPage extends connect(store)(localize(i18next)(PageVie
85
90
  const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')
86
91
 
87
92
  return html`
88
- <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)} ?url-params-sensitive=${this.active}>
93
+ <ox-grist
94
+ .mode=${mode}
95
+ .config=${this.gristConfig}
96
+ .fetchHandler=${this.fetchHandler.bind(this)}
97
+ .personalConfigProvider=${this.personalConfigProvider}
98
+ ?url-params-sensitive=${this.active}
99
+ >
89
100
  <div slot="headroom" class="header">
90
101
  <div class="title">${i18next.t('title.data-sensor list')}</div>
91
102
 
@@ -95,11 +106,15 @@ export class DataSensorListPage extends connect(store)(localize(i18next)(PageVie
95
106
 
96
107
  <ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
97
108
  </div>
109
+
110
+ <ox-grist-personalizer slot="setting"></ox-grist-personalizer>
98
111
  </ox-grist>
99
112
  `
100
113
  }
101
114
 
102
115
  async pageInitialized(lifecycle) {
116
+ this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist')
117
+
103
118
  this.gristConfig = {
104
119
  list: { fields: ['name', 'description', 'active'] },
105
120
  columns: [
@@ -18,9 +18,12 @@ import { client } from '@operato/graphql'
18
18
  import { i18next, localize } from '@operato/i18n'
19
19
  import { notify, openPopup } from '@operato/layout'
20
20
  import { PageView, store } from '@operato/shell'
21
- import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
21
+ import { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
22
22
  import { isMobileDevice, sleep } from '@operato/utils'
23
23
 
24
+ import { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js'
25
+ import { PagePreferenceProvider } from '@things-factory/personalization/dist-client/types.js'
26
+
24
27
  const MIN = 60
25
28
  const HOUR = 60 * MIN
26
29
  const DAY = 24 * HOUR
@@ -78,6 +81,7 @@ const USECASE_OPTIONS = () => {
78
81
  export class DataSetListPage extends connect(store)(localize(i18next)(PageView)) {
79
82
  static styles = [
80
83
  ScrollbarStyles,
84
+ CommonGristStyles,
81
85
  CommonHeaderStyles,
82
86
  css`
83
87
  :host {
@@ -99,6 +103,7 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
99
103
  ]
100
104
 
101
105
  @state() gristConfig: any
106
+ @state() personalConfigProvider?: PagePreferenceProvider
102
107
  @state() mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
103
108
 
104
109
  @query('ox-grist') private grist!: DataGrist
@@ -153,7 +158,13 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
153
158
  const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
154
159
 
155
160
  return html`
156
- <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)} ?url-params-sensitive=${this.active}>
161
+ <ox-grist
162
+ .mode=${mode}
163
+ .config=${this.gristConfig}
164
+ .personalConfigProvider=${this.personalConfigProvider}
165
+ .fetchHandler=${this.fetchHandler.bind(this)}
166
+ ?url-params-sensitive=${this.active}
167
+ >
157
168
  <div slot="headroom" class="header">
158
169
  <div class="title">${i18next.t('title.data-set list')}</div>
159
170
 
@@ -163,11 +174,15 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
163
174
 
164
175
  <ox-context-page-toolbar class="actions" .context=${this.context}> </ox-context-page-toolbar>
165
176
  </div>
177
+
178
+ <ox-grist-personalizer slot="setting"></ox-grist-personalizer>
166
179
  </ox-grist>
167
180
  `
168
181
  }
169
182
 
170
183
  async pageInitialized(lifecycle) {
184
+ this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist')
185
+
171
186
  this.gristConfig = {
172
187
  list: {
173
188
  fields: ['name', 'description'],
@@ -225,11 +240,14 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
225
240
  title: i18next.t('title.data collecting editor'),
226
241
  handlers: {
227
242
  click: (columns, data, column, record, rowIndex) => {
228
- openPopup(html` <data-entry-form .dataSet=${record} style="background-color: white;"></data-entry-form> `, {
229
- backdrop: true,
230
- size: 'large',
231
- title: i18next.t('title.data-entry-form')
232
- })
243
+ openPopup(
244
+ html` <data-entry-form .dataSet=${record} style="background-color: white;"></data-entry-form> `,
245
+ {
246
+ backdrop: true,
247
+ size: 'large',
248
+ title: i18next.t('title.data-entry-form')
249
+ }
250
+ )
233
251
  }
234
252
  }
235
253
  },
@@ -983,7 +1001,9 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
983
1001
  .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
984
1002
  .reduce((record, column) => {
985
1003
  var imexKey = (column.imex as ImexConfig)!.key
986
- record[imexKey] = imexKey.split('.').reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
1004
+ record[imexKey] = imexKey
1005
+ .split('.')
1006
+ .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
987
1007
  return record
988
1008
  }, {})
989
1009
  }
@@ -17,6 +17,7 @@ export declare class DataOocListPage extends DataOocListPage_base {
17
17
  private gristConfig;
18
18
  private mode;
19
19
  private state?;
20
+ private personalConfigProvider?;
20
21
  private grist;
21
22
  get context(): {
22
23
  title: string;
@@ -30,8 +30,9 @@ import { client } from '@operato/graphql';
30
30
  import { i18next, localize } from '@operato/i18n';
31
31
  import { openPopup } from '@operato/layout';
32
32
  import { PageView, store } from '@operato/shell';
33
- import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles';
33
+ import { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles';
34
34
  import { isMobileDevice, adjustFilters } from '@operato/utils';
35
+ import { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js';
35
36
  let DataOocListPage = class DataOocListPage extends connect(store)(localize(i18next)(PageView)) {
36
37
  constructor() {
37
38
  super(...arguments);
@@ -70,7 +71,12 @@ let DataOocListPage = class DataOocListPage extends connect(store)(localize(i18n
70
71
  render() {
71
72
  const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID');
72
73
  return html `
73
- <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>
74
+ <ox-grist
75
+ .mode=${mode}
76
+ .config=${this.gristConfig}
77
+ .fetchHandler=${this.fetchHandler.bind(this)}
78
+ .personalConfigProvider=${this.personalConfigProvider}
79
+ >
74
80
  <div slot="headroom" class="header">
75
81
  <div class="title">${i18next.t('title.data-ooc list')}</div>
76
82
 
@@ -88,10 +94,13 @@ let DataOocListPage = class DataOocListPage extends connect(store)(localize(i18n
88
94
 
89
95
  <ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
90
96
  </div>
97
+
98
+ <ox-grist-personalizer slot="setting"></ox-grist-personalizer>
91
99
  </ox-grist>
92
100
  `;
93
101
  }
94
102
  async pageInitialized(lifecycle) {
103
+ this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist');
95
104
  this.gristConfig = {
96
105
  list: {
97
106
  fields: ['dataSet', 'data', 'correctiveAction', 'corrector', 'correctedAt', 'collectedAt', 'creator']
@@ -475,7 +484,9 @@ let DataOocListPage = class DataOocListPage extends connect(store)(localize(i18n
475
484
  .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
476
485
  .reduce((record, column) => {
477
486
  const key = column.imex === true ? column.name : column.imex.key;
478
- record[key] = key.split('.').reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item);
487
+ record[key] = key
488
+ .split('.')
489
+ .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item);
479
490
  return record;
480
491
  }, {}));
481
492
  });
@@ -492,6 +503,7 @@ let DataOocListPage = class DataOocListPage extends connect(store)(localize(i18n
492
503
  };
493
504
  DataOocListPage.styles = [
494
505
  ScrollbarStyles,
506
+ CommonGristStyles,
495
507
  CommonHeaderStyles,
496
508
  css `
497
509
  :host {
@@ -521,6 +533,10 @@ __decorate([
521
533
  state(),
522
534
  __metadata("design:type", Array)
523
535
  ], DataOocListPage.prototype, "state", void 0);
536
+ __decorate([
537
+ state(),
538
+ __metadata("design:type", Object)
539
+ ], DataOocListPage.prototype, "personalConfigProvider", void 0);
524
540
  __decorate([
525
541
  query('ox-grist'),
526
542
  __metadata("design:type", DataGrist)
@@ -1 +1 @@
1
- {"version":3,"file":"data-ooc-list-page.js","sourceRoot":"","sources":["../../../client/pages/data-ooc/data-ooc-list-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 '@operato/input/ox-input-select-buttons.js'\n\nimport './data-ooc-view.js'\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 { GhostPrint } from '@operato/ghost-print'\n\nfunction getOocStatus() {\n return [\n {\n display: i18next.t('label.state-issued'),\n value: 'ISSUED'\n },\n {\n display: i18next.t('label.state-reviewed'),\n value: 'REVIEWED'\n },\n {\n display: i18next.t('label.state-corrected'),\n value: 'CORRECTED'\n }\n ]\n}\n\nimport { DataGrist, FetchOption, GristRecord } 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, adjustFilters } from '@operato/utils'\n\n@customElement('data-ooc-list-page')\nexport class DataOocListPage 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 --grid-header-padding: 2px 0 2px 9px;\n }\n\n ox-grist {\n overflow-y: auto;\n flex: 1;\n }\n `\n ]\n\n @state() private gristConfig: any\n @state() private mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'\n @state() private state?: string[]\n\n @query('ox-grist') private grist!: DataGrist\n\n get context() {\n return {\n title: i18next.t('title.data-ooc list'),\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-ooc',\n actions: [\n {\n title: i18next.t('button.print'),\n action: this.printOocs.bind(this),\n icon: 'print'\n }\n ],\n exportable: {\n name: i18next.t('title.data-ooc list'),\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=\"title\">${i18next.t('title.data-ooc list')}</div>\n\n <div class=\"filters\">\n <ox-input-select-buttons\n .value=${this.state}\n .options=${getOocStatus()}\n @change=${(e: CustomEvent) => {\n this.state = (e.currentTarget as any)?.value\n this.grist.fetch()\n }}\n ></ox-input-select-buttons>\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 async pageInitialized(lifecycle) {\n this.gristConfig = {\n list: {\n fields: ['dataSet', 'data', 'correctiveAction', 'corrector', 'correctedAt', 'collectedAt', 'creator']\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence', fixed: true },\n { type: 'gutter', gutterName: 'row-selector', multiple: true, fixed: true },\n {\n type: 'gutter',\n gutterName: 'button',\n fixed: true,\n icon: 'assignment_turned_in',\n title: i18next.t('title.view detail ooc data')\n },\n {\n type: 'string',\n name: 'name',\n fixed: true,\n label: true,\n header: i18next.t('field.name'),\n record: {\n editable: false\n },\n filter: 'search',\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'description',\n label: true,\n header: i18next.t('field.description'),\n record: {\n editable: false\n },\n filter: 'search',\n width: 150,\n imex: true\n },\n {\n type: 'string',\n name: 'history',\n hidden: true,\n imex: true\n },\n {\n type: 'checkbox',\n name: 'ooc',\n header: i18next.t('field.ooc'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'checkbox',\n name: 'oos',\n header: i18next.t('field.oos'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'select',\n name: 'state',\n label: true,\n header: i18next.t('field.status'),\n record: {\n editable: false,\n options: [{ display: '', value: '' }, ...getOocStatus()]\n },\n width: 100,\n filter: true,\n imex: true\n },\n {\n type: 'textarea',\n name: 'correctiveInstruction',\n label: true,\n header: i18next.t('field.corrective-instruction'),\n record: {\n editable: false,\n language: 'text'\n },\n width: 150,\n imex: true\n },\n {\n type: 'textarea',\n name: 'correctiveAction',\n label: true,\n header: i18next.t('field.corrective-action'),\n record: {\n editable: false,\n language: 'text'\n },\n width: 150,\n imex: true\n },\n {\n type: 'resource-object',\n name: 'dataSet',\n header: i18next.t('field.data-set'),\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key01',\n header: {\n renderer: i18next.t('field.key-01'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key02',\n header: {\n renderer: i18next.t('field.key-02'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key03',\n header: {\n renderer: i18next.t('field.key-03'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key04',\n header: {\n renderer: i18next.t('field.key-04'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key05',\n header: {\n renderer: i18next.t('field.key-05'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'json5',\n name: 'partitionKeys',\n header: i18next.t('field.partition-keys'),\n record: {\n editable: false\n },\n width: 200,\n imex: true\n },\n {\n type: 'json5',\n name: 'data',\n header: i18next.t('field.data'),\n record: {\n editable: false\n },\n width: 200,\n imex: true\n },\n {\n type: 'text',\n name: 'rawData',\n header: i18next.t('field.raw-data'),\n record: {\n editable: false\n },\n width: 200,\n imex: true\n },\n {\n type: 'string',\n name: 'workDate',\n header: i18next.t('field.work-date'),\n sortable: true,\n width: 80,\n imex: true\n },\n {\n type: 'string',\n name: 'workShift',\n header: i18next.t('field.work-shift'),\n sortable: true,\n width: 40,\n imex: true\n },\n {\n type: 'datetime',\n name: 'collectedAt',\n header: i18next.t('field.collected-at'),\n sortable: true,\n width: 180,\n imex: true\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 ],\n rows: {\n appendable: false,\n selectable: {\n multiple: true\n },\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n const popup = openPopup(html` <data-ooc-view data-ooc-id=${record.id} style=\"background-color: white;\"></data-ooc-view> `, {\n backdrop: true,\n size: 'large',\n title: i18next.t('title.data-ooc view')\n })\n popup.onclosed = () => {\n this.grist.fetch()\n }\n }\n }\n },\n sorters: [\n {\n name: 'collectedAt',\n desc: true\n }\n ]\n }\n\n await this.updateComplete\n\n this.grist.fetch()\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {\n if (this.state) {\n filters = adjustFilters(filters, [{ name: 'state', operator: 'eq', value: this.state }])\n }\n\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n responses: dataOocs(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n description\n useCase\n dataSet {\n id\n name\n }\n key01\n key02\n key03\n key04\n key05\n partitionKeys\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 data\n rawData\n judgment\n ooc\n oos\n state\n history\n workDate\n workShift\n correctiveInstruction\n correctiveAction\n reviewedAt\n reviewer {\n id\n name\n }\n correctedAt\n corrector {\n id\n name\n }\n updater {\n id\n name\n }\n updatedAt\n collectedAt\n }\n total\n }\n }\n `,\n variables: {\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n total: response.data.responses.total || 0,\n records: response.data.responses.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.split('.').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 printOocs() {\n const selected = this.grist.selected\n const ids = selected.map(record => record.id).join('|')\n\n GhostPrint.print({\n src: `./data-oocs?ids=${ids}`\n // pending: 200 * selected.length\n })\n }\n}\n"]}
1
+ {"version":3,"file":"data-ooc-list-page.js","sourceRoot":"","sources":["../../../client/pages/data-ooc/data-ooc-list-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 '@operato/input/ox-input-select-buttons.js'\n\nimport './data-ooc-view.js'\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 { GhostPrint } from '@operato/ghost-print'\n\nfunction getOocStatus() {\n return [\n {\n display: i18next.t('label.state-issued'),\n value: 'ISSUED'\n },\n {\n display: i18next.t('label.state-reviewed'),\n value: 'REVIEWED'\n },\n {\n display: i18next.t('label.state-corrected'),\n value: 'CORRECTED'\n }\n ]\n}\n\nimport { DataGrist, FetchOption, GristRecord } 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 { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'\nimport { isMobileDevice, adjustFilters } from '@operato/utils'\n\nimport { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js'\nimport { PagePreferenceProvider } from '@things-factory/personalization/dist-client/types.js'\n\n@customElement('data-ooc-list-page')\nexport class DataOocListPage extends connect(store)(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n CommonHeaderStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n overflow: hidden;\n\n --grid-header-padding: 2px 0 2px 9px;\n }\n\n ox-grist {\n overflow-y: auto;\n flex: 1;\n }\n `\n ]\n\n @state() private gristConfig: any\n @state() private mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'\n @state() private state?: string[]\n @state() private personalConfigProvider?: PagePreferenceProvider\n\n @query('ox-grist') private grist!: DataGrist\n\n get context() {\n return {\n title: i18next.t('title.data-ooc list'),\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-ooc',\n actions: [\n {\n title: i18next.t('button.print'),\n action: this.printOocs.bind(this),\n icon: 'print'\n }\n ],\n exportable: {\n name: i18next.t('title.data-ooc list'),\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\n .mode=${mode}\n .config=${this.gristConfig}\n .fetchHandler=${this.fetchHandler.bind(this)}\n .personalConfigProvider=${this.personalConfigProvider}\n >\n <div slot=\"headroom\" class=\"header\">\n <div class=\"title\">${i18next.t('title.data-ooc list')}</div>\n\n <div class=\"filters\">\n <ox-input-select-buttons\n .value=${this.state}\n .options=${getOocStatus()}\n @change=${(e: CustomEvent) => {\n this.state = (e.currentTarget as any)?.value\n this.grist.fetch()\n }}\n ></ox-input-select-buttons>\n </div>\n\n <ox-context-page-toolbar class=\"actions\" .context=${this.context}></ox-context-page-toolbar>\n </div>\n\n <ox-grist-personalizer slot=\"setting\"></ox-grist-personalizer>\n </ox-grist>\n `\n }\n\n async pageInitialized(lifecycle) {\n this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist')\n\n this.gristConfig = {\n list: {\n fields: ['dataSet', 'data', 'correctiveAction', 'corrector', 'correctedAt', 'collectedAt', 'creator']\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence', fixed: true },\n { type: 'gutter', gutterName: 'row-selector', multiple: true, fixed: true },\n {\n type: 'gutter',\n gutterName: 'button',\n fixed: true,\n icon: 'assignment_turned_in',\n title: i18next.t('title.view detail ooc data')\n },\n {\n type: 'string',\n name: 'name',\n fixed: true,\n label: true,\n header: i18next.t('field.name'),\n record: {\n editable: false\n },\n filter: 'search',\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'description',\n label: true,\n header: i18next.t('field.description'),\n record: {\n editable: false\n },\n filter: 'search',\n width: 150,\n imex: true\n },\n {\n type: 'string',\n name: 'history',\n hidden: true,\n imex: true\n },\n {\n type: 'checkbox',\n name: 'ooc',\n header: i18next.t('field.ooc'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'checkbox',\n name: 'oos',\n header: i18next.t('field.oos'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'select',\n name: 'state',\n label: true,\n header: i18next.t('field.status'),\n record: {\n editable: false,\n options: [{ display: '', value: '' }, ...getOocStatus()]\n },\n width: 100,\n filter: true,\n imex: true\n },\n {\n type: 'textarea',\n name: 'correctiveInstruction',\n label: true,\n header: i18next.t('field.corrective-instruction'),\n record: {\n editable: false,\n language: 'text'\n },\n width: 150,\n imex: true\n },\n {\n type: 'textarea',\n name: 'correctiveAction',\n label: true,\n header: i18next.t('field.corrective-action'),\n record: {\n editable: false,\n language: 'text'\n },\n width: 150,\n imex: true\n },\n {\n type: 'resource-object',\n name: 'dataSet',\n header: i18next.t('field.data-set'),\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key01',\n header: {\n renderer: i18next.t('field.key-01'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key02',\n header: {\n renderer: i18next.t('field.key-02'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key03',\n header: {\n renderer: i18next.t('field.key-03'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key04',\n header: {\n renderer: i18next.t('field.key-04'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key05',\n header: {\n renderer: i18next.t('field.key-05'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'json5',\n name: 'partitionKeys',\n header: i18next.t('field.partition-keys'),\n record: {\n editable: false\n },\n width: 200,\n imex: true\n },\n {\n type: 'json5',\n name: 'data',\n header: i18next.t('field.data'),\n record: {\n editable: false\n },\n width: 200,\n imex: true\n },\n {\n type: 'text',\n name: 'rawData',\n header: i18next.t('field.raw-data'),\n record: {\n editable: false\n },\n width: 200,\n imex: true\n },\n {\n type: 'string',\n name: 'workDate',\n header: i18next.t('field.work-date'),\n sortable: true,\n width: 80,\n imex: true\n },\n {\n type: 'string',\n name: 'workShift',\n header: i18next.t('field.work-shift'),\n sortable: true,\n width: 40,\n imex: true\n },\n {\n type: 'datetime',\n name: 'collectedAt',\n header: i18next.t('field.collected-at'),\n sortable: true,\n width: 180,\n imex: true\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 ],\n rows: {\n appendable: false,\n selectable: {\n multiple: true\n },\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n const popup = openPopup(\n html` <data-ooc-view data-ooc-id=${record.id} style=\"background-color: white;\"></data-ooc-view> `,\n {\n backdrop: true,\n size: 'large',\n title: i18next.t('title.data-ooc view')\n }\n )\n popup.onclosed = () => {\n this.grist.fetch()\n }\n }\n }\n },\n sorters: [\n {\n name: 'collectedAt',\n desc: true\n }\n ]\n }\n\n await this.updateComplete\n\n this.grist.fetch()\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {\n if (this.state) {\n filters = adjustFilters(filters, [{ name: 'state', operator: 'eq', value: this.state }])\n }\n\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n responses: dataOocs(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n description\n useCase\n dataSet {\n id\n name\n }\n key01\n key02\n key03\n key04\n key05\n partitionKeys\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 data\n rawData\n judgment\n ooc\n oos\n state\n history\n workDate\n workShift\n correctiveInstruction\n correctiveAction\n reviewedAt\n reviewer {\n id\n name\n }\n correctedAt\n corrector {\n id\n name\n }\n updater {\n id\n name\n }\n updatedAt\n collectedAt\n }\n total\n }\n }\n `,\n variables: {\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n total: response.data.responses.total || 0,\n records: response.data.responses.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 printOocs() {\n const selected = this.grist.selected\n const ids = selected.map(record => record.id).join('|')\n\n GhostPrint.print({\n src: `./data-oocs?ids=${ids}`\n // pending: 200 * selected.length\n })\n }\n}\n"]}
@@ -4,6 +4,7 @@ import '@operato/context/ox-context-page-toolbar.js';
4
4
  import './data-sample-view.js';
5
5
  import { FetchOption } from '@operato/data-grist';
6
6
  import { PageView } from '@operato/shell';
7
+ import { PagePreferenceProvider } from '@things-factory/personalization/dist-client/types.js';
7
8
  declare const DataSampleListPage_base: (new (...args: any[]) => {
8
9
  _storeUnsubscribe: import("redux").Unsubscribe;
9
10
  connectedCallback(): void;
@@ -15,6 +16,7 @@ export declare class DataSampleListPage extends DataSampleListPage_base {
15
16
  static styles: import("lit").CSSResult[];
16
17
  gristConfig: any;
17
18
  mode: 'CARD' | 'GRID' | 'LIST';
19
+ personalConfigProvider?: PagePreferenceProvider;
18
20
  private grist;
19
21
  get context(): {
20
22
  title: string;
@@ -13,9 +13,10 @@ import { client } from '@operato/graphql';
13
13
  import { i18next, localize } from '@operato/i18n';
14
14
  import { openPopup } from '@operato/layout';
15
15
  import { PageView, store } from '@operato/shell';
16
- import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles';
16
+ import { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles';
17
17
  import { isMobileDevice } from '@operato/utils';
18
18
  import { GhostPrint } from '@operato/ghost-print';
19
+ import { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js';
19
20
  let DataSampleListPage = class DataSampleListPage extends connect(store)(localize(i18next)(PageView)) {
20
21
  constructor() {
21
22
  super(...arguments);
@@ -54,7 +55,13 @@ let DataSampleListPage = class DataSampleListPage extends connect(store)(localiz
54
55
  render() {
55
56
  const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID');
56
57
  return html `
57
- <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)} ?url-params-sensitive=${false /* this.active */}>
58
+ <ox-grist
59
+ .mode=${mode}
60
+ .config=${this.gristConfig}
61
+ .fetchHandler=${this.fetchHandler.bind(this)}
62
+ .personalConfigProvider=${this.personalConfigProvider}
63
+ ?url-params-sensitive=${false /* this.active */}
64
+ >
58
65
  <div slot="headroom" class="header">
59
66
  <div class="title">${i18next.t('title.data-sample list')}</div>
60
67
 
@@ -64,10 +71,13 @@ let DataSampleListPage = class DataSampleListPage extends connect(store)(localiz
64
71
 
65
72
  <ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
66
73
  </div>
74
+
75
+ <ox-grist-personalizer slot="setting"></ox-grist-personalizer>
67
76
  </ox-grist>
68
77
  `;
69
78
  }
70
79
  async pageInitialized(lifecycle) {
80
+ this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist');
71
81
  const yesterday = moment().subtract(1, 'day').format('YYYY-MM-DD');
72
82
  const today = moment().format('YYYY-MM-DD');
73
83
  this.gristConfig = {
@@ -281,7 +291,9 @@ let DataSampleListPage = class DataSampleListPage extends connect(store)(localiz
281
291
  },
282
292
  handlers: {
283
293
  click: (columns, data, column, record, rowIndex) => {
284
- openPopup(html ` <data-sample-view data-sample-id=${record.id} style="background-color: white;"></data-sample-view> `, {
294
+ openPopup(html `
295
+ <data-sample-view data-sample-id=${record.id} style="background-color: white;"></data-sample-view>
296
+ `, {
285
297
  backdrop: true,
286
298
  size: 'large',
287
299
  title: i18next.t('title.data-sample view')
@@ -366,7 +378,9 @@ let DataSampleListPage = class DataSampleListPage extends connect(store)(localiz
366
378
  .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
367
379
  .reduce((record, column) => {
368
380
  const key = column.imex === true ? column.name : column.imex.key;
369
- record[key] = key.split('.').reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item);
381
+ record[key] = key
382
+ .split('.')
383
+ .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item);
370
384
  return record;
371
385
  }, {}));
372
386
  });
@@ -383,6 +397,7 @@ let DataSampleListPage = class DataSampleListPage extends connect(store)(localiz
383
397
  };
384
398
  DataSampleListPage.styles = [
385
399
  ScrollbarStyles,
400
+ CommonGristStyles,
386
401
  CommonHeaderStyles,
387
402
  css `
388
403
  :host {
@@ -408,6 +423,10 @@ __decorate([
408
423
  state(),
409
424
  __metadata("design:type", String)
410
425
  ], DataSampleListPage.prototype, "mode", void 0);
426
+ __decorate([
427
+ state(),
428
+ __metadata("design:type", Object)
429
+ ], DataSampleListPage.prototype, "personalConfigProvider", void 0);
411
430
  __decorate([
412
431
  query('ox-grist'),
413
432
  __metadata("design:type", DataGrist)