@things-factory/dataset 7.0.0-alpha.5 → 7.0.0-alpha.7

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 (131) hide show
  1. package/client/activities/activity-data-collect-view.ts +7 -0
  2. package/client/activities/activity-data-review-edit.ts +66 -4
  3. package/client/activities/activity-data-review-view.ts +78 -4
  4. package/client/activities/activity-ooc-resolve-view.ts +12 -0
  5. package/client/activities/activity-ooc-review-view.ts +12 -0
  6. package/client/pages/data-entry/data-entry-list-page.ts +8 -23
  7. package/client/pages/data-ooc/data-ooc-list-page.ts +63 -19
  8. package/client/pages/data-ooc/{data-ooc-view-page.ts → data-ooc-page.ts} +43 -1
  9. package/client/pages/data-ooc/data-ooc-view.ts +198 -41
  10. package/client/pages/data-ooc/data-oocs-page.ts +198 -0
  11. package/client/pages/data-sample/data-sample-list-page.ts +48 -26
  12. package/client/pages/data-sample/{data-sample-view-page.ts → data-sample-page.ts} +8 -1
  13. package/client/pages/data-sample/data-sample-search-page.ts +25 -20
  14. package/client/pages/data-sample/data-sample-view.ts +191 -21
  15. package/client/pages/data-sample/data-samples-page.ts +247 -0
  16. package/client/pages/data-sensor/data-sensor-list-page.ts +28 -6
  17. package/client/pages/data-set/data-item-list.ts +2 -2
  18. package/client/route.ts +10 -2
  19. package/dist-client/activities/activity-data-collect-view.js +7 -0
  20. package/dist-client/activities/activity-data-collect-view.js.map +1 -1
  21. package/dist-client/activities/activity-data-review-edit.d.ts +1 -1
  22. package/dist-client/activities/activity-data-review-edit.js +63 -5
  23. package/dist-client/activities/activity-data-review-edit.js.map +1 -1
  24. package/dist-client/activities/activity-data-review-view.d.ts +1 -1
  25. package/dist-client/activities/activity-data-review-view.js +75 -5
  26. package/dist-client/activities/activity-data-review-view.js.map +1 -1
  27. package/dist-client/activities/activity-ooc-resolve-view.js +12 -0
  28. package/dist-client/activities/activity-ooc-resolve-view.js.map +1 -1
  29. package/dist-client/activities/activity-ooc-review-view.js +12 -0
  30. package/dist-client/activities/activity-ooc-review-view.js.map +1 -1
  31. package/dist-client/pages/data-entry/data-entry-list-page.js +3 -15
  32. package/dist-client/pages/data-entry/data-entry-list-page.js.map +1 -1
  33. package/dist-client/pages/data-ooc/data-ooc-list-page.d.ts +6 -0
  34. package/dist-client/pages/data-ooc/data-ooc-list-page.js +55 -12
  35. package/dist-client/pages/data-ooc/data-ooc-list-page.js.map +1 -1
  36. package/dist-client/pages/data-ooc/{data-ooc-view-page.js → data-ooc-page.js} +44 -2
  37. package/dist-client/pages/data-ooc/data-ooc-page.js.map +1 -0
  38. package/dist-client/pages/data-ooc/data-ooc-view.d.ts +11 -4
  39. package/dist-client/pages/data-ooc/data-ooc-view.js +193 -48
  40. package/dist-client/pages/data-ooc/data-ooc-view.js.map +1 -1
  41. package/dist-client/pages/data-ooc/data-oocs-page.d.ts +18 -0
  42. package/dist-client/pages/data-ooc/data-oocs-page.js +198 -0
  43. package/dist-client/pages/data-ooc/data-oocs-page.js.map +1 -0
  44. package/dist-client/pages/data-sample/data-sample-list-page.d.ts +6 -1
  45. package/dist-client/pages/data-sample/data-sample-list-page.js +42 -19
  46. package/dist-client/pages/data-sample/data-sample-list-page.js.map +1 -1
  47. package/dist-client/pages/data-sample/{data-sample-view-page.js → data-sample-page.js} +9 -2
  48. package/dist-client/pages/data-sample/data-sample-page.js.map +1 -0
  49. package/dist-client/pages/data-sample/data-sample-search-page.d.ts +6 -1
  50. package/dist-client/pages/data-sample/data-sample-search-page.js +19 -13
  51. package/dist-client/pages/data-sample/data-sample-search-page.js.map +1 -1
  52. package/dist-client/pages/data-sample/data-sample-view.d.ts +18 -0
  53. package/dist-client/pages/data-sample/data-sample-view.js +185 -19
  54. package/dist-client/pages/data-sample/data-sample-view.js.map +1 -1
  55. package/dist-client/pages/data-sample/data-samples-page.d.ts +21 -0
  56. package/dist-client/pages/data-sample/data-samples-page.js +247 -0
  57. package/dist-client/pages/data-sample/data-samples-page.js.map +1 -0
  58. package/dist-client/pages/data-sensor/data-sensor-list-page.js +28 -6
  59. package/dist-client/pages/data-sensor/data-sensor-list-page.js.map +1 -1
  60. package/dist-client/pages/data-set/data-item-list.js +2 -2
  61. package/dist-client/pages/data-set/data-item-list.js.map +1 -1
  62. package/dist-client/route.js +8 -2
  63. package/dist-client/route.js.map +1 -1
  64. package/dist-client/tsconfig.tsbuildinfo +1 -1
  65. package/dist-server/activities/activity-data-review.js.map +1 -1
  66. package/dist-server/activities/activity-ooc-review.js +2 -1
  67. package/dist-server/activities/activity-ooc-review.js.map +1 -1
  68. package/dist-server/controllers/create-data-sample.js +27 -29
  69. package/dist-server/controllers/create-data-sample.js.map +1 -1
  70. package/dist-server/engine/index.js +4 -0
  71. package/dist-server/engine/index.js.map +1 -0
  72. package/dist-server/engine/task/create-data-sample.js +80 -0
  73. package/dist-server/engine/task/create-data-sample.js.map +1 -0
  74. package/dist-server/engine/task/index.js +4 -0
  75. package/dist-server/engine/task/index.js.map +1 -0
  76. package/dist-server/index.js +1 -0
  77. package/dist-server/index.js.map +1 -1
  78. package/dist-server/routes.js +35 -27
  79. package/dist-server/routes.js.map +1 -1
  80. package/dist-server/service/data-ooc/data-ooc-query.js +32 -0
  81. package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
  82. package/dist-server/service/data-ooc/data-ooc.js +44 -37
  83. package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
  84. package/dist-server/service/data-sample/data-sample-query.js +24 -0
  85. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  86. package/dist-server/service/data-sample/data-sample.js +30 -31
  87. package/dist-server/service/data-sample/data-sample.js.map +1 -1
  88. package/dist-server/service/data-sensor/data-sensor-query.js +16 -1
  89. package/dist-server/service/data-sensor/data-sensor-query.js.map +1 -1
  90. package/dist-server/service/data-sensor/data-sensor-type.js +8 -0
  91. package/dist-server/service/data-sensor/data-sensor-type.js.map +1 -1
  92. package/dist-server/service/data-sensor/data-sensor.js +15 -1
  93. package/dist-server/service/data-sensor/data-sensor.js.map +1 -1
  94. package/dist-server/service/data-set/data-item-type.js +1 -0
  95. package/dist-server/service/data-set/data-item-type.js.map +1 -1
  96. package/dist-server/service/data-set/data-set-query.js +2 -2
  97. package/dist-server/service/data-set/data-set-query.js.map +1 -1
  98. package/dist-server/tsconfig.tsbuildinfo +1 -1
  99. package/helps/dataset/task/create-data-sample.ja.md +28 -0
  100. package/helps/dataset/task/create-data-sample.ko.md +28 -0
  101. package/helps/dataset/task/create-data-sample.md +28 -0
  102. package/helps/dataset/task/create-data-sample.ms.md +30 -0
  103. package/helps/dataset/task/create-data-sample.zh.md +28 -0
  104. package/package.json +14 -11
  105. package/server/activities/activity-data-review.ts +1 -5
  106. package/server/activities/activity-ooc-review.ts +5 -15
  107. package/server/controllers/create-data-sample.ts +31 -38
  108. package/server/engine/index.ts +1 -0
  109. package/server/engine/task/create-data-sample.ts +92 -0
  110. package/server/engine/task/index.ts +1 -0
  111. package/server/index.ts +1 -0
  112. package/server/routes.ts +47 -31
  113. package/server/service/data-ooc/data-ooc-query.ts +17 -0
  114. package/server/service/data-ooc/data-ooc.ts +39 -51
  115. package/server/service/data-sample/data-sample-query.ts +17 -17
  116. package/server/service/data-sample/data-sample.ts +29 -52
  117. package/server/service/data-sensor/data-sensor-query.ts +13 -1
  118. package/server/service/data-sensor/data-sensor-type.ts +6 -0
  119. package/server/service/data-sensor/data-sensor.ts +13 -11
  120. package/server/service/data-set/data-item-type.ts +1 -0
  121. package/server/service/data-set/data-set-query.ts +7 -7
  122. package/things-factory.config.js +10 -2
  123. package/translations/en.json +15 -2
  124. package/translations/ja.json +12 -1
  125. package/translations/ko.json +14 -1
  126. package/translations/ms.json +11 -0
  127. package/translations/zh.json +12 -1
  128. package/dist-client/pages/data-ooc/data-ooc-view-page.js.map +0 -1
  129. package/dist-client/pages/data-sample/data-sample-view-page.js.map +0 -1
  130. /package/dist-client/pages/data-ooc/{data-ooc-view-page.d.ts → data-ooc-page.d.ts} +0 -0
  131. /package/dist-client/pages/data-sample/{data-sample-view-page.d.ts → data-sample-page.d.ts} +0 -0
@@ -14,6 +14,7 @@ import { openPopup } from '@operato/layout';
14
14
  import { PageView, store } from '@operato/shell';
15
15
  import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles';
16
16
  import { isMobileDevice } from '@operato/utils';
17
+ import { GhostPrint } from '@operato/ghost-print';
17
18
  let DataSampleSearchPage = class DataSampleSearchPage extends connect(store)(localize(i18next)(PageView)) {
18
19
  constructor() {
19
20
  super(...arguments);
@@ -35,7 +36,13 @@ let DataSampleSearchPage = class DataSampleSearchPage extends connect(store)(loc
35
36
  }
36
37
  },
37
38
  help: 'dataset/data-sample-search',
38
- actions: [],
39
+ actions: [
40
+ {
41
+ title: i18next.t('button.print'),
42
+ action: this.printSamples.bind(this),
43
+ icon: 'print'
44
+ }
45
+ ],
39
46
  exportable: {
40
47
  name: i18next.t('title.data-sample search'),
41
48
  data: this._exportableData.bind(this)
@@ -134,9 +141,7 @@ let DataSampleSearchPage = class DataSampleSearchPage extends connect(store)(loc
134
141
  title: i18next.t('title.open data sample view'),
135
142
  handlers: {
136
143
  click: (columns, data, column, record, rowIndex) => {
137
- openPopup(html `
138
- <data-sample-view data-sample-id=${record.id} style="background-color: white;"></data-sample-view>
139
- `, {
144
+ openPopup(html ` <data-sample-view data-sample-id=${record.id} style="background-color: white;"></data-sample-view> `, {
140
145
  backdrop: true,
141
146
  size: 'large',
142
147
  title: i18next.t('title.data-sample view')
@@ -278,12 +283,7 @@ let DataSampleSearchPage = class DataSampleSearchPage extends connect(store)(loc
278
283
  const response = await client.query({
279
284
  query: gql `
280
285
  query ($dataSetId: String!, $filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
281
- responses: dataSamplesByDataSet(
282
- dataSetId: $dataSetId
283
- filters: $filters
284
- pagination: $pagination
285
- sortings: $sortings
286
- ) {
286
+ responses: dataSamplesByDataSet(dataSetId: $dataSetId, filters: $filters, pagination: $pagination, sortings: $sortings) {
287
287
  items {
288
288
  id
289
289
  name
@@ -348,14 +348,20 @@ let DataSampleSearchPage = class DataSampleSearchPage extends connect(store)(loc
348
348
  .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
349
349
  .reduce((record, column) => {
350
350
  const key = column.imex === true ? column.name : column.imex.key;
351
- record[key] = key
352
- .split('.')
353
- .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item);
351
+ record[key] = key.split('.').reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item);
354
352
  return record;
355
353
  }, {}));
356
354
  });
357
355
  return { header: headerSetting, data: data };
358
356
  }
357
+ printSamples() {
358
+ const selected = this.grist.selected;
359
+ const ids = selected.map(record => record.id).join('|');
360
+ GhostPrint.print({
361
+ src: `./data-samples?ids=${ids}`
362
+ // pending: 200 * selected.length
363
+ });
364
+ }
359
365
  };
360
366
  DataSampleSearchPage.styles = [
361
367
  ScrollbarStyles,
@@ -1 +1 @@
1
- {"version":3,"file":"data-sample-search-page.js","sourceRoot":"","sources":["../../../client/pages/data-sample/data-sample-search-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/data-grist'\nimport '@operato/context/ox-context-page-toolbar.js'\nimport './data-sample-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'\nimport moment from 'moment-timezone'\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 } from '@operato/utils'\n\n@customElement('data-sample-search-page')\nexport class DataSampleSearchPage 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 ]\n\n @state() dataSetId?: string\n @state() dataSet: any\n @state() dataKeySet: any\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-sample 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-sample-search',\n actions: [],\n exportable: {\n name: i18next.t('title.data-sample 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=\"title\">\n <mwc-icon>summarize</mwc-icon>\n ${i18next.t('title.data-sample search')}\n </div>\n\n <div class=\"filters\">\n <ox-filters-form class=\"filter\" 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 name\n description\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\n this.refreshGristConfig()\n\n this.grist.fetch()\n }\n }\n\n getDataKeyColumns() {\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 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', fixed: true },\n { type: 'gutter', gutterName: 'row-selector', fixed: true, multiple: true },\n {\n type: 'gutter',\n gutterName: 'button',\n fixed: true,\n icon: 'assignment',\n title: i18next.t('title.open data sample view'),\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n openPopup(\n html`\n <data-sample-view data-sample-id=${record.id} style=\"background-color: white;\"></data-sample-view>\n `,\n {\n backdrop: true,\n size: 'large',\n title: i18next.t('title.data-sample view')\n }\n )\n }\n }\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 ...this.getDataKeyColumns(),\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: '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: 'string',\n name: 'workDate',\n header: i18next.t('field.work-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 {\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 classifier: function (record, rowIndex) {\n var emphasized\n if (record['oos']) {\n emphasized = ['#8B0000']\n } else if (record['ooc']) {\n emphasized = ['#FF6B6B']\n }\n\n return {\n emphasized\n }\n }\n },\n sorters: [\n {\n name: 'collectedAt',\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 responses: dataSamplesByDataSet(\n dataSetId: $dataSetId\n filters: $filters\n pagination: $pagination\n sortings: $sortings\n ) {\n items {\n id\n name\n description\n useCase\n key01\n key02\n key03\n key04\n key05\n data\n ooc\n oos\n judgment\n workDate\n workShift\n updater {\n id\n name\n }\n updatedAt\n collectedAt\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.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"]}
1
+ {"version":3,"file":"data-sample-search-page.js","sourceRoot":"","sources":["../../../client/pages/data-sample/data-sample-search-page.ts"],"names":[],"mappings":";AAAA,OAAO,qBAAqB,CAAA;AAC5B,OAAO,6CAA6C,CAAA;AACpD,OAAO,uBAAuB,CAAA;AAE9B,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAY,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACnD,OAAO,MAAM,MAAM,iBAAiB,CAAA;AAEpC,OAAO,EAAE,SAAS,EAA4B,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAG1C,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IAA9E;;QAwBI,SAAI,GAA6B,cAAc,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;IA+W9E,CAAC;IA3WC,IAAI,OAAO;;QACT,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;YAC5C,MAAM,EAAE;gBACN,OAAO,EAAE,CAAC,MAAc,EAAE,EAAE;oBAC1B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAA;gBAChC,CAAC;gBACD,KAAK,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,KAAI,EAAE;aACpC;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAA;gBAC7B,CAAC;aACF;YACD,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;oBAChC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpC,IAAI,EAAE,OAAO;iBACd;aACF;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;gBAC3C,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;aACtC;YACD,OAAO,EAAE,KAAK;SACf,CAAA;IACH,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAE9D,OAAO,IAAI,CAAA;wBACS,IAAI,YAAY,IAAI,CAAC,WAAW,kBAAkB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;;;cAIxF,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;;;;;;;8DAOW,IAAI,CAAC,OAAO;;;KAGrE,CAAA;IACH,CAAC;IAED,WAAW,CAAC,OAAO,EAAE,SAAS;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,UAAU,CAAA;YACrC,OAAM;SACP;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAO;QACnB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC5B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;gBAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;SAmBT;gBACD,SAAS,EAAE;oBACT,EAAE,EAAE,IAAI,CAAC,SAAS;iBACnB;aACF,CAAC,CAAA;YAEF,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAA;YACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAA;YAEzC,IAAI,CAAC,kBAAkB,EAAE,CAAA;YAEzB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;SACnB;IACH,CAAC;IAED,iBAAiB;;QACf,OAAO,CACL,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAChD,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO,KAAK,GAAG,CAAC,EAAE;gBACxB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5B,MAAM,EAAE;oBACN,QAAQ,EAAE,KAAK;iBAChB;gBACD,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,IAAI;aACX,CAAA;QACH,CAAC,CAAC,KAAI,EAAE,CACT,CAAA;IACH,CAAC;IAED,kBAAkB;QAChB,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAClE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAE3C,IAAI,CAAC,WAAW,GAAG;YACjB,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE;YAC7D,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE;gBACvD,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC3E;oBACE,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,QAAQ;oBACpB,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC;oBAC/C,QAAQ,EAAE;wBACR,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;4BACjD,SAAS,CAAC,IAAI,CAAA,qCAAqC,MAAM,CAAC,EAAE,wDAAwD,EAAE;gCACpH,QAAQ,EAAE,IAAI;gCACd,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;6BAC3C,CAAC,CAAA;wBACJ,CAAC;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC/B,MAAM,EAAE;wBACN,QAAQ,EAAE,KAAK;qBAChB;oBACD,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,IAAI;iBACX;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC;oBACtC,MAAM,EAAE;wBACN,QAAQ,EAAE,KAAK;qBAChB;oBACD,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,IAAI;iBACX;gBACD,GAAG,IAAI,CAAC,iBAAiB,EAAE;gBAC3B;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,KAAK;oBACX,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;oBAC9B,MAAM,EAAE;wBACN,QAAQ,EAAE,KAAK;qBAChB;oBACD,KAAK,EAAE,EAAE;iBACV;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,KAAK;oBACX,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;oBAC9B,MAAM,EAAE;wBACN,QAAQ,EAAE,KAAK;qBAChB;oBACD,KAAK,EAAE,EAAE;iBACV;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC/B,MAAM,EAAE;wBACN,QAAQ,EAAE,KAAK;qBAChB;oBACD,MAAM,EAAE,IAAI;oBACZ,IAAI,EAAE,IAAI;iBACX;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;oBACpC,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE;wBACN,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,SAAS;wBACnB,KAAK,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;qBAC1B;oBACD,KAAK,EAAE,EAAE;oBACT,IAAI,EAAE,IAAI;iBACX;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC;oBACrC,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,EAAE;oBACT,IAAI,EAAE,IAAI;iBACX;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC;oBACvC,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,IAAI;iBACX;gBACD;oBACE,IAAI,EAAE,iBAAiB;oBACvB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;oBAClC,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,IAAI;iBACX;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC;oBACrC,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,IAAI;iBACX;aACF;YACD,IAAI,EAAE;gBACJ,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE;oBACV,QAAQ,EAAE,IAAI;iBACf;gBACD,UAAU,EAAE,UAAU,MAAM,EAAE,QAAQ;oBACpC,IAAI,UAAU,CAAA;oBACd,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;wBACjB,UAAU,GAAG,CAAC,SAAS,CAAC,CAAA;qBACzB;yBAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;wBACxB,UAAU,GAAG,CAAC,SAAS,CAAC,CAAA;qBACzB;oBAED,OAAO;wBACL,UAAU;qBACX,CAAA;gBACH,CAAC;aACF;YACD,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,IAAI;iBACX;aACF;SACF,CAAA;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAe;QAC1E,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;SACjC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BT;YACD,SAAS,EAAE;gBACT,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO;gBACP,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;gBAC3B,QAAQ;aACT;SACF,CAAC,CAAA;QAEF,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;YACzC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;SAC7C,CAAA;IACH,CAAC;IAED,eAAe;QACb,IAAI,OAAO,GAAG,EAAmB,CAAA;QACjC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACzD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;SAC9B;aAAM;YACL,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAA;SAClC;QAED,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO;aAClD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;aACtG,GAAG,CAAC,MAAM,CAAC,EAAE;YACZ,OAAO,MAAM,CAAC,IAAI,KAAK,IAAI;gBACzB,CAAC,CAAC;oBACE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACtC,GAAG,EAAE,MAAM,CAAC,IAAI;oBAChB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB;gBACH,CAAC,CAAC,MAAM,CAAC,IAAI,CAAA;QACjB,CAAC,CAAC,CAAA;QAEJ,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC5B,uBACE,EAAE,EAAE,IAAI,CAAC,EAAE,IACR,IAAI,CAAC,WAAW,CAAC,OAAO;iBACxB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;iBACtG,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;gBACzB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA;gBAChE,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAA;gBACjH,OAAO,MAAM,CAAA;YACf,CAAC,EAAE,EAAE,CAAC,EACT;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAC9C,CAAC;IAED,YAAY;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;QACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEvD,UAAU,CAAC,KAAK,CAAC;YACf,GAAG,EAAE,sBAAsB,GAAG,EAAE;YAChC,iCAAiC;SAClC,CAAC,CAAA;IACJ,CAAC;;AArYM,2BAAM,GAAG;IACd,eAAe;IACf,kBAAkB;IAClB,GAAG,CAAA;;;;;;;;;;;;KAYF;CACF,CAAA;AAED;IAAC,KAAK,EAAE;;uDAAmB;AAC3B;IAAC,KAAK,EAAE;;qDAAa;AACrB;IAAC,KAAK,EAAE;;wDAAgB;AAExB;IAAC,KAAK,EAAE;;yDAAiB;AACzB;IAAC,KAAK,EAAE;;kDAAoE;AAE5E;IAAC,KAAK,CAAC,UAAU,CAAC;8BAAiB,SAAS;mDAAA;AA1BjC,oBAAoB;IADhC,aAAa,CAAC,yBAAyB,CAAC;GAC5B,oBAAoB,CAuYhC;SAvYY,oBAAoB","sourcesContent":["import '@operato/data-grist'\nimport '@operato/context/ox-context-page-toolbar.js'\nimport './data-sample-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'\nimport moment from 'moment-timezone'\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 } from '@operato/utils'\nimport { GhostPrint } from '@operato/ghost-print'\n\n@customElement('data-sample-search-page')\nexport class DataSampleSearchPage 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 ]\n\n @state() dataSetId?: string\n @state() dataSet: any\n @state() dataKeySet: any\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-sample 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-sample-search',\n actions: [\n {\n title: i18next.t('button.print'),\n action: this.printSamples.bind(this),\n icon: 'print'\n }\n ],\n exportable: {\n name: i18next.t('title.data-sample 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=\"title\">\n <mwc-icon>summarize</mwc-icon>\n ${i18next.t('title.data-sample search')}\n </div>\n\n <div class=\"filters\">\n <ox-filters-form class=\"filter\" 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 name\n description\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\n this.refreshGristConfig()\n\n this.grist.fetch()\n }\n }\n\n getDataKeyColumns() {\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 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', fixed: true },\n { type: 'gutter', gutterName: 'row-selector', fixed: true, multiple: true },\n {\n type: 'gutter',\n gutterName: 'button',\n fixed: true,\n icon: 'assignment',\n title: i18next.t('title.open data sample view'),\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n openPopup(html` <data-sample-view data-sample-id=${record.id} style=\"background-color: white;\"></data-sample-view> `, {\n backdrop: true,\n size: 'large',\n title: i18next.t('title.data-sample view')\n })\n }\n }\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 ...this.getDataKeyColumns(),\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: '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: 'string',\n name: 'workDate',\n header: i18next.t('field.work-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 {\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 classifier: function (record, rowIndex) {\n var emphasized\n if (record['oos']) {\n emphasized = ['#8B0000']\n } else if (record['ooc']) {\n emphasized = ['#FF6B6B']\n }\n\n return {\n emphasized\n }\n }\n },\n sorters: [\n {\n name: 'collectedAt',\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 responses: dataSamplesByDataSet(dataSetId: $dataSetId, filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n description\n useCase\n key01\n key02\n key03\n key04\n key05\n data\n ooc\n oos\n judgment\n workDate\n workShift\n updater {\n id\n name\n }\n updatedAt\n collectedAt\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.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 printSamples() {\n const selected = this.grist.selected\n const ids = selected.map(record => record.id).join('|')\n\n GhostPrint.print({\n src: `./data-samples?ids=${ids}`\n // pending: 200 * selected.length\n })\n }\n}\n"]}
@@ -1 +1,19 @@
1
1
  import '@operato/dataset/ox-data-sample-view.js';
2
+ import '@operato/dataset/ox-data-ooc-brief-view.js';
3
+ import '@things-factory/worklist/dist-client/components/activity-thread-timeline.js';
4
+ import { LitElement, nothing } from 'lit';
5
+ import { DataSample } from '@operato/dataset';
6
+ declare const DataSampleView_base: (new (...args: any[]) => LitElement) & typeof LitElement;
7
+ export declare class DataSampleView extends DataSampleView_base {
8
+ static styles: import("lit").CSSResult[];
9
+ dataSampleId?: string;
10
+ dataSample?: DataSample;
11
+ private printHandler;
12
+ render(): import("lit-html").TemplateResult<1> | typeof nothing;
13
+ updated(changes: any): void;
14
+ fetchDataSample(): Promise<void>;
15
+ handlePrint(event: any): void;
16
+ connectedCallback(): void;
17
+ disconnectedCallback(): void;
18
+ }
19
+ export {};
@@ -1,17 +1,63 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import '@operato/dataset/ox-data-sample-view.js';
3
+ import '@operato/dataset/ox-data-ooc-brief-view.js';
4
+ import '@things-factory/worklist/dist-client/components/activity-thread-timeline.js';
3
5
  import gql from 'graphql-tag';
4
- import { css, html, LitElement } from 'lit';
6
+ import { css, html, LitElement, nothing } from 'lit';
5
7
  import { customElement, property, state } from 'lit/decorators.js';
6
8
  import { client } from '@operato/graphql';
7
9
  import { i18next, localize } from '@operato/i18n';
8
10
  import { ScrollbarStyles } from '@operato/styles';
11
+ import { GhostPrint } from '@operato/ghost-print';
9
12
  let DataSampleView = class DataSampleView extends localize(i18next)(LitElement) {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.printHandler = this.handlePrint.bind(this);
16
+ }
10
17
  render() {
18
+ var _a, _b, _c, _d, _e, _f;
19
+ const dataSample = this.dataSample;
20
+ if (!dataSample) {
21
+ return nothing;
22
+ }
23
+ if (dataSample.dataOoc) {
24
+ var reviewActivityThread = (_b = (_a = dataSample.dataOoc.reviewActivityInstance) === null || _a === void 0 ? void 0 : _a.activityThreads) === null || _b === void 0 ? void 0 : _b[0];
25
+ var resolveActivityThread = (_d = (_c = dataSample.dataOoc.resolveActivityInstance) === null || _c === void 0 ? void 0 : _c.activityThreads) === null || _d === void 0 ? void 0 : _d[0];
26
+ }
27
+ else {
28
+ var reviewActivityThread = (_f = (_e = dataSample === null || dataSample === void 0 ? void 0 : dataSample.reviewActivityInstance) === null || _e === void 0 ? void 0 : _e.activityThreads) === null || _f === void 0 ? void 0 : _f[0];
29
+ }
11
30
  return html `
12
- <div content>
13
- ${this.dataSample ? html `<ox-data-sample-view .dataSample=${this.dataSample}></ox-data-sample-view>` : html ``}
14
- </div>
31
+ ${!(dataSample === null || dataSample === void 0 ? void 0 : dataSample.dataOoc)
32
+ ? html ` <ox-data-sample-view .dataSample=${dataSample}></ox-data-sample-view> `
33
+ : html ` <ox-data-ooc-brief-view .dataOoc=${dataSample.dataOoc}></ox-data-ooc-brief-view>`}
34
+ ${reviewActivityThread
35
+ ? html `
36
+ <activity-thread-timeline
37
+ subtitle=${String(i18next.t((dataSample === null || dataSample === void 0 ? void 0 : dataSample.dataOoc) ? 'label.ooc review timeline' : 'label.datasample review timeline'))}
38
+ .activityThread=${reviewActivityThread}
39
+ short-form
40
+ ></activity-thread-timeline>
41
+ `
42
+ : nothing}
43
+ ${resolveActivityThread
44
+ ? html `
45
+ <activity-thread-timeline
46
+ subtitle=${String(i18next.t('label.ooc resolve timeline'))}
47
+ .activityThread=${resolveActivityThread}
48
+ short-form
49
+ ></activity-thread-timeline>
50
+ `
51
+ : nothing}
52
+
53
+ <mwc-fab
54
+ icon="print"
55
+ title="print"
56
+ @click=${() => GhostPrint.print({
57
+ src: `./data-sample/${this.dataSampleId}`
58
+ })}
59
+ >print</mwc-fab
60
+ >
15
61
  `;
16
62
  }
17
63
  updated(changes) {
@@ -37,6 +83,12 @@ let DataSampleView = class DataSampleView extends localize(i18next)(LitElement)
37
83
  data
38
84
  ooc
39
85
  oos
86
+ updatedAt
87
+ collectedAt
88
+ updater {
89
+ id
90
+ name
91
+ }
40
92
  dataSet {
41
93
  id
42
94
  name
@@ -59,12 +111,99 @@ let DataSampleView = class DataSampleView extends localize(i18next)(LitElement)
59
111
  judgment
60
112
  workDate
61
113
  workShift
62
- updater {
63
- id
114
+ reviewActivityInstance {
115
+ ...ActivityInstanceFragment
116
+ }
117
+ dataOoc {
64
118
  name
119
+ description
120
+ useCase
121
+ dataSet {
122
+ id
123
+ name
124
+ }
125
+ key01
126
+ key02
127
+ key03
128
+ key04
129
+ key05
130
+ partitionKeys
131
+ dataItems {
132
+ name
133
+ description
134
+ active
135
+ tag
136
+ group
137
+ type
138
+ unit
139
+ options
140
+ quota
141
+ spec
142
+ }
143
+ data
144
+ rawData
145
+ judgment
146
+ ooc
147
+ oos
148
+ state
149
+ history
150
+ workDate
151
+ workShift
152
+ correctiveInstruction
153
+ correctiveAction
154
+ reviewedAt
155
+ reviewer {
156
+ id
157
+ name
158
+ }
159
+ correctedAt
160
+ corrector {
161
+ id
162
+ name
163
+ }
164
+ updater {
165
+ id
166
+ name
167
+ }
168
+ updatedAt
169
+ collectedAt
170
+
171
+ reviewActivityInstance {
172
+ ...ActivityInstanceFragment
173
+ }
174
+ resolveActivityInstance {
175
+ ...ActivityInstanceFragment
176
+ }
177
+ }
178
+ }
179
+ }
180
+
181
+ fragment ActivityInstanceFragment on ActivityInstance {
182
+ activityThreads {
183
+ assignee {
184
+ name
185
+ }
186
+ output
187
+ activityApprovals {
188
+ judgment
189
+ approver {
190
+ name
191
+ }
192
+ comment
193
+ createdAt
194
+ updatedAt
195
+ terminatedAt
196
+ }
197
+ activityThreadHistories {
198
+ transaction
199
+ reason
200
+ updater {
201
+ name
202
+ }
203
+ updatedAt
204
+ state
205
+ output
65
206
  }
66
- updatedAt
67
- collectedAt
68
207
  }
69
208
  }
70
209
  `,
@@ -74,28 +213,54 @@ let DataSampleView = class DataSampleView extends localize(i18next)(LitElement)
74
213
  });
75
214
  this.dataSample = response.data.dataSample;
76
215
  }
216
+ handlePrint(event) {
217
+ if ((event.ctrlKey || event.metaKey) && event.key === 'p') {
218
+ event.preventDefault();
219
+ GhostPrint.print({
220
+ src: `./data-sample/${this.dataSampleId}`
221
+ });
222
+ }
223
+ }
224
+ connectedCallback() {
225
+ super.connectedCallback();
226
+ window.addEventListener('keydown', this.printHandler);
227
+ }
228
+ disconnectedCallback() {
229
+ super.disconnectedCallback();
230
+ window.removeEventListener('keydown', this.printHandler);
231
+ }
77
232
  };
78
233
  DataSampleView.styles = [
79
234
  ScrollbarStyles,
80
235
  css `
81
236
  :host {
82
- display: flex;
83
- flex-direction: column;
84
-
237
+ position: relative;
238
+ display: block;
239
+ overflow: auto;
85
240
  background-color: #fff;
86
241
  }
87
242
 
88
- div[content] {
89
- flex: 1;
243
+ ox-data-sample-view,
244
+ ox-data-ooc-brief-view {
245
+ padding: var(--padding-wide);
246
+ }
90
247
 
91
- display: flex;
92
- overflow: auto;
248
+ activity-thread-timeline {
249
+ margin: var(--margin-default);
93
250
  }
94
251
 
95
- ox-data-sample-view {
96
- flex: 1;
97
- padding: var(--padding-wide);
98
- overflow: auto;
252
+ mwc-fab {
253
+ position: fixed;
254
+ bottom: 15px;
255
+ right: 16px;
256
+ text-decoration: auto;
257
+ opacity: 0.5;
258
+ }
259
+
260
+ @media print {
261
+ mwc-fab {
262
+ display: none;
263
+ }
99
264
  }
100
265
  `
101
266
  ];
@@ -113,4 +278,5 @@ __decorate([
113
278
  DataSampleView = __decorate([
114
279
  customElement('data-sample-view')
115
280
  ], DataSampleView);
281
+ export { DataSampleView };
116
282
  //# sourceMappingURL=data-sample-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-sample-view.js","sourceRoot":"","sources":["../../../client/pages/data-sample/data-sample-view.ts"],"names":[],"mappings":";AAAA,OAAO,yCAAyC,CAAA;AAEhD,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;AAIjD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;IAiCxD,MAAM;QACJ,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA,oCAAoC,IAAI,CAAC,UAAU,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAA,EAAE;;KAEhH,CAAA;IACH,CAAC;IAED,OAAO,CAAC,OAAO;QACb,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;YAC/B,IAAI,CAAC,eAAe,EAAE,CAAA;SACvB;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAA;QAE5B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CT;YACD,SAAS,EAAE;gBACT,EAAE;aACH;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAA;IAC5C,CAAC;;AAtGM,qBAAM,GAAG;IACd,eAAe;IACf,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;KAoBF;CACF,CAAA;AAED;IAAC,QAAQ,CAAC;QACR,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,gBAAgB;KAC5B,CAAC;;oDACmB;AACrB;IAAC,KAAK,EAAE;;kDAAwB;AA/B5B,cAAc;IADnB,aAAa,CAAC,kBAAkB,CAAC;GAC5B,cAAc,CAwGnB","sourcesContent":["import '@operato/dataset/ox-data-sample-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 { DataSample } from '@operato/dataset'\n\n@customElement('data-sample-view')\nclass DataSampleView extends localize(i18next)(LitElement) {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: #fff;\n }\n\n div[content] {\n flex: 1;\n\n display: flex;\n overflow: auto;\n }\n\n ox-data-sample-view {\n flex: 1;\n padding: var(--padding-wide);\n overflow: auto;\n }\n `\n ]\n\n @property({\n type: String,\n attribute: 'data-sample-id'\n })\n dataSampleId?: string\n @state() dataSample?: DataSample\n\n render() {\n return html`\n <div content>\n ${this.dataSample ? html`<ox-data-sample-view .dataSample=${this.dataSample}></ox-data-sample-view>` : html``}\n </div>\n `\n }\n\n updated(changes) {\n if (changes.has('dataSampleId')) {\n this.fetchDataSample()\n }\n }\n\n async fetchDataSample() {\n const id = this.dataSampleId\n\n const response = await client.query({\n query: gql`\n query ($id: String!) {\n dataSample(id: $id) {\n id\n name\n description\n useCase\n key01\n key02\n key03\n key04\n key05\n data\n ooc\n oos\n dataSet {\n id\n name\n description\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 judgment\n workDate\n workShift\n updater {\n id\n name\n }\n updatedAt\n collectedAt\n }\n }\n `,\n variables: {\n id\n }\n })\n\n this.dataSample = response.data.dataSample\n }\n}\n"]}
1
+ {"version":3,"file":"data-sample-view.js","sourceRoot":"","sources":["../../../client/pages/data-sample/data-sample-view.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/dataset/ox-data-sample-view.js'\nimport '@operato/dataset/ox-data-ooc-brief-view.js'\nimport '@things-factory/worklist/dist-client/components/activity-thread-timeline.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, LitElement, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { ScrollbarStyles } from '@operato/styles'\nimport { DataSample } from '@operato/dataset'\nimport { GhostPrint } from '@operato/ghost-print'\n\n@customElement('data-sample-view')\nexport class DataSampleView extends localize(i18next)(LitElement) {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n position: relative;\n display: block;\n overflow: auto;\n background-color: #fff;\n }\n\n ox-data-sample-view,\n ox-data-ooc-brief-view {\n padding: var(--padding-wide);\n }\n\n activity-thread-timeline {\n margin: var(--margin-default);\n }\n\n mwc-fab {\n position: fixed;\n bottom: 15px;\n right: 16px;\n text-decoration: auto;\n opacity: 0.5;\n }\n\n @media print {\n mwc-fab {\n display: none;\n }\n }\n `\n ]\n\n @property({\n type: String,\n attribute: 'data-sample-id'\n })\n dataSampleId?: string\n\n @state() dataSample?: DataSample\n\n private printHandler = this.handlePrint.bind(this)\n\n render() {\n const dataSample = this.dataSample\n\n if (!dataSample) {\n return nothing\n }\n\n if (dataSample.dataOoc) {\n var reviewActivityThread = dataSample.dataOoc.reviewActivityInstance?.activityThreads?.[0]\n var resolveActivityThread = dataSample.dataOoc.resolveActivityInstance?.activityThreads?.[0]\n } else {\n var reviewActivityThread = dataSample?.reviewActivityInstance?.activityThreads?.[0]\n }\n\n return html`\n ${!dataSample?.dataOoc\n ? html` <ox-data-sample-view .dataSample=${dataSample}></ox-data-sample-view> `\n : html` <ox-data-ooc-brief-view .dataOoc=${dataSample!.dataOoc}></ox-data-ooc-brief-view>`}\n ${reviewActivityThread\n ? html`\n <activity-thread-timeline\n subtitle=${String(i18next.t(dataSample?.dataOoc ? 'label.ooc review timeline' : 'label.datasample review timeline'))}\n .activityThread=${reviewActivityThread}\n short-form\n ></activity-thread-timeline>\n `\n : nothing}\n ${resolveActivityThread\n ? html`\n <activity-thread-timeline\n subtitle=${String(i18next.t('label.ooc resolve timeline'))}\n .activityThread=${resolveActivityThread}\n short-form\n ></activity-thread-timeline>\n `\n : nothing}\n\n <mwc-fab\n icon=\"print\"\n title=\"print\"\n @click=${() =>\n GhostPrint.print({\n src: `./data-sample/${this.dataSampleId}`\n })}\n >print</mwc-fab\n >\n `\n }\n\n updated(changes) {\n if (changes.has('dataSampleId')) {\n this.fetchDataSample()\n }\n }\n\n async fetchDataSample() {\n const id = this.dataSampleId\n\n const response = await client.query({\n query: gql`\n query ($id: String!) {\n dataSample(id: $id) {\n id\n name\n description\n useCase\n key01\n key02\n key03\n key04\n key05\n data\n ooc\n oos\n updatedAt\n collectedAt\n updater {\n id\n name\n }\n dataSet {\n id\n name\n description\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 judgment\n workDate\n workShift\n reviewActivityInstance {\n ...ActivityInstanceFragment\n }\n dataOoc {\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 tag\n group\n type\n unit\n options\n quota\n spec\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 reviewActivityInstance {\n ...ActivityInstanceFragment\n }\n resolveActivityInstance {\n ...ActivityInstanceFragment\n }\n }\n }\n }\n\n fragment ActivityInstanceFragment on ActivityInstance {\n activityThreads {\n assignee {\n name\n }\n output\n activityApprovals {\n judgment\n approver {\n name\n }\n comment\n createdAt\n updatedAt\n terminatedAt\n }\n activityThreadHistories {\n transaction\n reason\n updater {\n name\n }\n updatedAt\n state\n output\n }\n }\n }\n `,\n variables: {\n id\n }\n })\n\n this.dataSample = response.data.dataSample\n }\n\n handlePrint(event) {\n if ((event.ctrlKey || event.metaKey) && event.key === 'p') {\n event.preventDefault()\n\n GhostPrint.print({\n src: `./data-sample/${this.dataSampleId}`\n })\n }\n }\n\n connectedCallback(): void {\n super.connectedCallback()\n window.addEventListener('keydown', this.printHandler)\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback()\n window.removeEventListener('keydown', this.printHandler)\n }\n}\n"]}
@@ -0,0 +1,21 @@
1
+ import '@operato/dataset/ox-data-sample-view.js';
2
+ import '@operato/dataset/ox-data-ooc-brief-view.js';
3
+ import '@things-factory/worklist/dist-client/components/activity-thread-timeline.js';
4
+ import { PropertyValues } from 'lit';
5
+ import { PageView } from '@operato/shell';
6
+ declare const DataSamplesPage_base: (new (...args: any[]) => import("lit").LitElement) & typeof PageView;
7
+ /**
8
+ * 이 페이지는 여러개의 Data Sample을 한번에 프린트하기 위한 용도로 사용되는 페이지이다.
9
+ */
10
+ export declare class DataSamplesPage extends DataSamplesPage_base {
11
+ static styles: import("lit").CSSResult[];
12
+ dataSamples?: any[];
13
+ get context(): {
14
+ title: string;
15
+ };
16
+ render(): import("lit-html").TemplateResult<1>[] | undefined;
17
+ updated(changes: PropertyValues<this>): void;
18
+ pageUpdated(changes: any, lifecycle: any, before: any): void;
19
+ fetchSamples(ids: string[]): Promise<void>;
20
+ }
21
+ export {};