@things-factory/dataset 9.0.0-beta.8 → 9.0.0-beta.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/dist-client/activities/activity-data-collect-edit.d.ts +8 -1
  2. package/dist-client/activities/activity-data-collect-edit.js +76 -25
  3. package/dist-client/activities/activity-data-collect-edit.js.map +1 -1
  4. package/dist-client/activities/activity-data-collect-view.js +24 -24
  5. package/dist-client/activities/activity-data-collect-view.js.map +1 -1
  6. package/dist-client/activities/activity-data-review-edit.d.ts +2 -0
  7. package/dist-client/activities/activity-data-review-edit.js +111 -90
  8. package/dist-client/activities/activity-data-review-edit.js.map +1 -1
  9. package/dist-client/activities/activity-data-review-view.d.ts +2 -0
  10. package/dist-client/activities/activity-data-review-view.js +111 -88
  11. package/dist-client/activities/activity-data-review-view.js.map +1 -1
  12. package/dist-client/activities/activity-ooc-resolve-edit.js +73 -66
  13. package/dist-client/activities/activity-ooc-resolve-edit.js.map +1 -1
  14. package/dist-client/activities/activity-ooc-resolve-view.js +49 -41
  15. package/dist-client/activities/activity-ooc-resolve-view.js.map +1 -1
  16. package/dist-client/activities/activity-ooc-review-edit.d.ts +1 -0
  17. package/dist-client/activities/activity-ooc-review-edit.js +93 -72
  18. package/dist-client/activities/activity-ooc-review-edit.js.map +1 -1
  19. package/dist-client/activities/activity-ooc-review-view.js +45 -39
  20. package/dist-client/activities/activity-ooc-review-view.js.map +1 -1
  21. package/dist-client/components/checklist-entry-form.d.ts +21 -0
  22. package/dist-client/components/checklist-entry-form.js +107 -0
  23. package/dist-client/components/checklist-entry-form.js.map +1 -0
  24. package/dist-client/components/data-entry-form.d.ts +3 -2
  25. package/dist-client/components/data-entry-form.js +29 -30
  26. package/dist-client/components/data-entry-form.js.map +1 -1
  27. package/dist-client/pages/data-archive/data-archive-list-page.js +35 -34
  28. package/dist-client/pages/data-archive/data-archive-list-page.js.map +1 -1
  29. package/dist-client/pages/data-archive/data-archive-request-popup.js +17 -17
  30. package/dist-client/pages/data-archive/data-archive-request-popup.js.map +1 -1
  31. package/dist-client/pages/data-entry/data-entry-list-page.d.ts +1 -0
  32. package/dist-client/pages/data-entry/data-entry-list-page.js +42 -34
  33. package/dist-client/pages/data-entry/data-entry-list-page.js.map +1 -1
  34. package/dist-client/pages/data-key-set/data-key-item-list.js +15 -15
  35. package/dist-client/pages/data-key-set/data-key-item-list.js.map +1 -1
  36. package/dist-client/pages/data-key-set/data-key-set-importer.js +16 -17
  37. package/dist-client/pages/data-key-set/data-key-set-importer.js.map +1 -1
  38. package/dist-client/pages/data-key-set/data-key-set-list-page.js +24 -25
  39. package/dist-client/pages/data-key-set/data-key-set-list-page.js.map +1 -1
  40. package/dist-client/pages/data-ooc/data-ooc-list-page.js +40 -39
  41. package/dist-client/pages/data-ooc/data-ooc-list-page.js.map +1 -1
  42. package/dist-client/pages/data-ooc/data-ooc-page.js +21 -18
  43. package/dist-client/pages/data-ooc/data-ooc-page.js.map +1 -1
  44. package/dist-client/pages/data-ooc/data-ooc-view.js +39 -37
  45. package/dist-client/pages/data-ooc/data-ooc-view.js.map +1 -1
  46. package/dist-client/pages/data-ooc/data-oocs-page.js +20 -22
  47. package/dist-client/pages/data-ooc/data-oocs-page.js.map +1 -1
  48. package/dist-client/pages/data-report/data-report-embed-page.js +24 -21
  49. package/dist-client/pages/data-report/data-report-embed-page.js.map +1 -1
  50. package/dist-client/pages/data-report/data-report-list-page.js +26 -28
  51. package/dist-client/pages/data-report/data-report-list-page.js.map +1 -1
  52. package/dist-client/pages/data-report/data-report-samples-page.js +20 -22
  53. package/dist-client/pages/data-report/data-report-samples-page.js.map +1 -1
  54. package/dist-client/pages/data-report/jasper-report-oocs-page.js +24 -21
  55. package/dist-client/pages/data-report/jasper-report-oocs-page.js.map +1 -1
  56. package/dist-client/pages/data-report/jasper-report-samples-crosstab-page.js +24 -21
  57. package/dist-client/pages/data-report/jasper-report-samples-crosstab-page.js.map +1 -1
  58. package/dist-client/pages/data-report/jasper-report-samples-page.js +24 -21
  59. package/dist-client/pages/data-report/jasper-report-samples-page.js.map +1 -1
  60. package/dist-client/pages/data-sample/data-sample-list-page.js +37 -35
  61. package/dist-client/pages/data-sample/data-sample-list-page.js.map +1 -1
  62. package/dist-client/pages/data-sample/data-sample-page.js +18 -18
  63. package/dist-client/pages/data-sample/data-sample-page.js.map +1 -1
  64. package/dist-client/pages/data-sample/data-sample-search-page.js +36 -35
  65. package/dist-client/pages/data-sample/data-sample-search-page.js.map +1 -1
  66. package/dist-client/pages/data-sample/data-sample-view.d.ts +2 -0
  67. package/dist-client/pages/data-sample/data-sample-view.js +65 -41
  68. package/dist-client/pages/data-sample/data-sample-view.js.map +1 -1
  69. package/dist-client/pages/data-sample/data-samples-page.js +19 -21
  70. package/dist-client/pages/data-sample/data-samples-page.js.map +1 -1
  71. package/dist-client/pages/data-sensor/data-sensor-list-page.js +47 -24
  72. package/dist-client/pages/data-sensor/data-sensor-list-page.js.map +1 -1
  73. package/dist-client/pages/data-set/data-item-list.js +24 -15
  74. package/dist-client/pages/data-set/data-item-list.js.map +1 -1
  75. package/dist-client/pages/data-set/data-set-importer.js +16 -17
  76. package/dist-client/pages/data-set/data-set-importer.js.map +1 -1
  77. package/dist-client/pages/data-set/data-set-list-page.d.ts +2 -0
  78. package/dist-client/pages/data-set/data-set-list-page.js +109 -63
  79. package/dist-client/pages/data-set/data-set-list-page.js.map +1 -1
  80. package/dist-client/pages/data-summary/data-summary-list-page.js +34 -32
  81. package/dist-client/pages/data-summary/data-summary-list-page.js.map +1 -1
  82. package/dist-client/pages/data-summary/data-summary-period-page.js +99 -83
  83. package/dist-client/pages/data-summary/data-summary-period-page.js.map +1 -1
  84. package/dist-client/pages/data-summary/data-summary-search-page.js +42 -41
  85. package/dist-client/pages/data-summary/data-summary-search-page.js.map +1 -1
  86. package/dist-client/pages/data-summary/data-summary-view.js +24 -24
  87. package/dist-client/pages/data-summary/data-summary-view.js.map +1 -1
  88. package/dist-client/tsconfig.tsbuildinfo +1 -1
  89. package/dist-server/activities/activity-data-review.js +13 -2
  90. package/dist-server/activities/activity-data-review.js.map +1 -1
  91. package/dist-server/activities/activity-ooc-resolve.js +10 -4
  92. package/dist-server/activities/activity-ooc-resolve.js.map +1 -1
  93. package/dist-server/activities/activity-ooc-review.js +8 -2
  94. package/dist-server/activities/activity-ooc-review.js.map +1 -1
  95. package/dist-server/controllers/create-data-ooc.js +10 -5
  96. package/dist-server/controllers/create-data-ooc.js.map +1 -1
  97. package/dist-server/controllers/create-data-sample.js +36 -16
  98. package/dist-server/controllers/create-data-sample.js.map +1 -1
  99. package/dist-server/controllers/data-use-case.js +6 -7
  100. package/dist-server/controllers/data-use-case.js.map +1 -1
  101. package/dist-server/controllers/finalize-data-collection.js +30 -8
  102. package/dist-server/controllers/finalize-data-collection.js.map +1 -1
  103. package/dist-server/controllers/issue-data-collection-task.js +6 -3
  104. package/dist-server/controllers/issue-data-collection-task.js.map +1 -1
  105. package/dist-server/controllers/jasper-report.js +10 -7
  106. package/dist-server/controllers/jasper-report.js.map +1 -1
  107. package/dist-server/controllers/query-data-summary-by-period.d.ts +1 -1
  108. package/dist-server/controllers/query-data-summary-by-period.js +17 -13
  109. package/dist-server/controllers/query-data-summary-by-period.js.map +1 -1
  110. package/dist-server/controllers/shiny-report.js +7 -2
  111. package/dist-server/controllers/shiny-report.js.map +1 -1
  112. package/dist-server/routes.js +18 -7
  113. package/dist-server/routes.js.map +1 -1
  114. package/dist-server/service/data-archive/data-archive-mutation.js +48 -9
  115. package/dist-server/service/data-archive/data-archive-mutation.js.map +1 -1
  116. package/dist-server/service/data-key-set/data-key-set-mutation.js +25 -7
  117. package/dist-server/service/data-key-set/data-key-set-mutation.js.map +1 -1
  118. package/dist-server/service/data-key-set/data-key-set-query.js +1 -1
  119. package/dist-server/service/data-key-set/data-key-set-query.js.map +1 -1
  120. package/dist-server/service/data-ooc/data-ooc-mutation.js +15 -4
  121. package/dist-server/service/data-ooc/data-ooc-mutation.js.map +1 -1
  122. package/dist-server/service/data-ooc/data-ooc-query.js +1 -1
  123. package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
  124. package/dist-server/service/data-ooc/data-ooc-subscription.js +3 -4
  125. package/dist-server/service/data-ooc/data-ooc-subscription.js.map +1 -1
  126. package/dist-server/service/data-sample/data-sample-query.d.ts +1 -1
  127. package/dist-server/service/data-sample/data-sample-query.js +16 -8
  128. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  129. package/dist-server/service/data-sensor/data-sensor-mutation.js +24 -6
  130. package/dist-server/service/data-sensor/data-sensor-mutation.js.map +1 -1
  131. package/dist-server/service/data-sensor/data-sensor-type.d.ts +4 -0
  132. package/dist-server/service/data-sensor/data-sensor-type.js +16 -0
  133. package/dist-server/service/data-sensor/data-sensor-type.js.map +1 -1
  134. package/dist-server/service/data-sensor/data-sensor.d.ts +2 -0
  135. package/dist-server/service/data-sensor/data-sensor.js +10 -0
  136. package/dist-server/service/data-sensor/data-sensor.js.map +1 -1
  137. package/dist-server/service/data-set/data-item-type.d.ts +2 -0
  138. package/dist-server/service/data-set/data-item-type.js +14 -0
  139. package/dist-server/service/data-set/data-item-type.js.map +1 -1
  140. package/dist-server/service/data-set/data-set-mutation.js +77 -18
  141. package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
  142. package/dist-server/service/data-set/data-set-query.js +4 -4
  143. package/dist-server/service/data-set/data-set-query.js.map +1 -1
  144. package/dist-server/service/data-set/data-set.d.ts +1 -0
  145. package/dist-server/service/data-set/data-set.js +5 -0
  146. package/dist-server/service/data-set/data-set.js.map +1 -1
  147. package/dist-server/service/data-set-history/data-set-history-query.js +1 -1
  148. package/dist-server/service/data-set-history/data-set-history-query.js.map +1 -1
  149. package/dist-server/service/data-spec/data-spec-manager.js +1 -1
  150. package/dist-server/service/data-spec/data-spec-manager.js.map +1 -1
  151. package/dist-server/service/data-summary/data-summary-query.d.ts +1 -1
  152. package/dist-server/service/data-summary/data-summary-query.js +4 -6
  153. package/dist-server/service/data-summary/data-summary-query.js.map +1 -1
  154. package/dist-server/tsconfig.tsbuildinfo +1 -1
  155. package/package.json +13 -13
  156. package/things-factory.config.js +4 -0
  157. package/translations/en.json +3 -0
  158. package/translations/ja.json +3 -0
  159. package/translations/ko.json +3 -0
  160. package/translations/ms.json +3 -0
  161. package/translations/zh.json +3 -0
@@ -21,15 +21,35 @@ let DataSampleSearchPage = class DataSampleSearchPage extends connect(store)(loc
21
21
  super(...arguments);
22
22
  this.mode = isMobileDevice() ? 'CARD' : 'GRID';
23
23
  }
24
+ static { this.styles = [
25
+ ScrollbarStyles,
26
+ CommonHeaderStyles,
27
+ css `
28
+ :host {
29
+ display: flex;
30
+ flex-direction: column;
31
+
32
+ overflow: hidden;
33
+ }
34
+
35
+ ox-grist {
36
+ overflow-y: auto;
37
+ flex: 1;
38
+ }
39
+
40
+ .header {
41
+ grid-template-areas: 'filters actions';
42
+ }
43
+ `
44
+ ]; }
24
45
  get context() {
25
- var _a;
26
46
  return {
27
47
  title: i18next.t('title.data-sample search'),
28
48
  search: {
29
49
  handler: (search) => {
30
50
  this.grist.searchText = search;
31
51
  },
32
- value: ((_a = this.grist) === null || _a === void 0 ? void 0 : _a.searchText) || ''
52
+ value: this.grist?.searchText || ''
33
53
  },
34
54
  filter: {
35
55
  handler: () => {
@@ -104,8 +124,7 @@ let DataSampleSearchPage = class DataSampleSearchPage extends connect(store)(loc
104
124
  }
105
125
  }
106
126
  getDataKeyColumns() {
107
- var _a;
108
- return (((_a = this.dataKeySet) === null || _a === void 0 ? void 0 : _a.dataKeyItems.map((item, index) => {
127
+ return (this.dataKeySet?.dataKeyItems.map((item, index) => {
109
128
  return {
110
129
  type: 'string',
111
130
  name: `key0${index + 1}`,
@@ -118,7 +137,7 @@ let DataSampleSearchPage = class DataSampleSearchPage extends connect(store)(loc
118
137
  width: 120,
119
138
  imex: true
120
139
  };
121
- })) || []);
140
+ }) || []);
122
141
  }
123
142
  refreshGristConfig() {
124
143
  const yesterday = moment().subtract(1, 'day').format('YYYY-MM-DD');
@@ -348,15 +367,18 @@ let DataSampleSearchPage = class DataSampleSearchPage extends connect(store)(loc
348
367
  : column.imex;
349
368
  });
350
369
  var data = records.map(item => {
351
- return Object.assign({ id: item.id }, this.gristConfig.columns
352
- .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
353
- .reduce((record, column) => {
354
- const key = column.imex === true ? column.name : column.imex.key;
355
- record[key] = key
356
- .split('.')
357
- .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item);
358
- return record;
359
- }, {}));
370
+ return {
371
+ id: item.id,
372
+ ...this.gristConfig.columns
373
+ .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
374
+ .reduce((record, column) => {
375
+ const key = column.imex === true ? column.name : column.imex.key;
376
+ record[key] = key
377
+ .split('.')
378
+ .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item);
379
+ return record;
380
+ }, {})
381
+ };
360
382
  });
361
383
  return { header: headerSetting, data: data };
362
384
  }
@@ -369,27 +391,6 @@ let DataSampleSearchPage = class DataSampleSearchPage extends connect(store)(loc
369
391
  });
370
392
  }
371
393
  };
372
- DataSampleSearchPage.styles = [
373
- ScrollbarStyles,
374
- CommonHeaderStyles,
375
- css `
376
- :host {
377
- display: flex;
378
- flex-direction: column;
379
-
380
- overflow: hidden;
381
- }
382
-
383
- ox-grist {
384
- overflow-y: auto;
385
- flex: 1;
386
- }
387
-
388
- .header {
389
- grid-template-areas: 'filters actions';
390
- }
391
- `
392
- ];
393
394
  __decorate([
394
395
  state(),
395
396
  __metadata("design:type", String)
@@ -1 +1 @@
1
- {"version":3,"file":"data-sample-search-page.js","sourceRoot":"","sources":["../../../client/pages/data-sample/data-sample-search-page.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AACnC,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,6BAA6B,CAAA;AAEhD,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;;QA4BI,SAAI,GAA6B,cAAc,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;IAsX9E,CAAC;IAlXC,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,gBAAgB;YAChB,iDAAiD;YACjD,0CAA0C;YAC1C,KAAK;YACL,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;;;;;;8DAMxC,IAAI,CAAC,OAAO;;;KAGrE,CAAA;IACH,CAAC;IAED,WAAW,CAAC,OAAO,EAAE,SAAS;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,UAAU,CAAA;YACrC,OAAM;QACR,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAO;QACnB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,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;QAC3B,CAAC;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,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;oBACjC,KAAK,EAAE,EAAE;iBACV;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,CAAC;wBAClB,UAAU,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;oBACnC,CAAC;yBAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzB,UAAU,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;oBACnC,CAAC;oBAED,OAAO;wBACL,UAAU;qBACX,CAAA;gBACH,CAAC;gBACD,QAAQ,EAAE;oBACR,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;wBACjD,SAAS,CACP,IAAI,CAAA;mDACiC,MAAM,CAAC,EAAE;eAC7C,EACD;4BACE,QAAQ,EAAE,IAAI;4BACd,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;yBAC3C,CACF,CAAA;oBACH,CAAC;iBACF;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,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;QAClC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCT;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,CAAC;YAC1D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAA;QACnC,CAAC;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;qBACd,KAAK,CAAC,GAAG,CAAC;qBACV,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;gBACvF,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;;AAhZM,2BAAM,GAAG;IACd,eAAe;IACf,kBAAkB;IAClB,GAAG,CAAA;;;;;;;;;;;;;;;;KAgBF;CACF,AApBY,CAoBZ;AAEQ;IAAR,KAAK,EAAE;;uDAAmB;AAClB;IAAR,KAAK,EAAE;;qDAAa;AACZ;IAAR,KAAK,EAAE;;wDAAgB;AAEf;IAAR,KAAK,EAAE;;yDAAiB;AAChB;IAAR,KAAK,EAAE;;kDAAoE;AAEjD;IAA1B,KAAK,CAAC,UAAU,CAAC;8BAAiB,SAAS;mDAAA;AA9BjC,oBAAoB;IADhC,aAAa,CAAC,yBAAyB,CAAC;GAC5B,oBAAoB,CAkZhC","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@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 '@operato/moment-timezone-es'\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 .header {\n grid-template-areas: 'filters actions';\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=\"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 }\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 iconOnly: false,\n title: i18next.t('button.detail'),\n width: 72\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', 'white']\n } else if (record['ooc']) {\n emphasized = ['#FF6B6B', 'white']\n }\n\n return {\n emphasized\n }\n },\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 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 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
+ {"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 '@material/web/icon/icon.js'\nimport '@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 '@operato/moment-timezone-es'\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 .header {\n grid-template-areas: 'filters actions';\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=\"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 }\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 iconOnly: false,\n title: i18next.t('button.detail'),\n width: 72\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', 'white']\n } else if (record['ooc']) {\n emphasized = ['#FF6B6B', 'white']\n }\n\n return {\n emphasized\n }\n },\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 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 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"]}
@@ -2,6 +2,7 @@ import '@material/web/icon/icon.js';
2
2
  import '@material/web/fab/fab.js';
3
3
  import '@operato/dataset/ox-data-sample-view.js';
4
4
  import '@operato/dataset/ox-data-ooc-brief-view.js';
5
+ import '@operato/dataset/ox-checklist-sample-view.js';
5
6
  import '@things-factory/worklist/dist-client/components/activity-thread-timeline.js';
6
7
  import { LitElement, nothing } from 'lit';
7
8
  import { DataSample } from '@operato/dataset';
@@ -13,6 +14,7 @@ export declare class DataSampleView extends DataSampleView_base {
13
14
  private printHandler;
14
15
  render(): import("lit-html").TemplateResult<1> | typeof nothing;
15
16
  updated(changes: any): void;
17
+ private renderDataSample;
16
18
  fetchDataSample(): Promise<void>;
17
19
  handlePrint(event: any): void;
18
20
  connectedCallback(): void;
@@ -3,6 +3,7 @@ import '@material/web/icon/icon.js';
3
3
  import '@material/web/fab/fab.js';
4
4
  import '@operato/dataset/ox-data-sample-view.js';
5
5
  import '@operato/dataset/ox-data-ooc-brief-view.js';
6
+ import '@operato/dataset/ox-checklist-sample-view.js';
6
7
  import '@things-factory/worklist/dist-client/components/activity-thread-timeline.js';
7
8
  import gql from 'graphql-tag';
8
9
  import { css, html, LitElement, nothing } from 'lit';
@@ -16,27 +17,61 @@ let DataSampleView = class DataSampleView extends localize(i18next)(LitElement)
16
17
  super(...arguments);
17
18
  this.printHandler = this.handlePrint.bind(this);
18
19
  }
20
+ static { this.styles = [
21
+ ScrollbarStyles,
22
+ css `
23
+ :host {
24
+ position: relative;
25
+ display: block;
26
+ overflow: auto;
27
+ background-color: var(--md-sys-color-surface);
28
+ }
29
+
30
+ ox-data-sample-view,
31
+ ox-checklist-sample-view,
32
+ ox-data-ooc-brief-view {
33
+ padding: var(--spacing-large);
34
+ }
35
+
36
+ activity-thread-timeline {
37
+ margin: var(--spacing-medium);
38
+ }
39
+
40
+ md-fab {
41
+ position: fixed;
42
+ bottom: 15px;
43
+ right: 16px;
44
+ text-decoration: auto;
45
+ opacity: 0.5;
46
+ }
47
+
48
+ @media print {
49
+ md-fab {
50
+ display: none;
51
+ }
52
+ }
53
+ `
54
+ ]; }
19
55
  render() {
20
- var _a, _b, _c, _d, _e, _f;
21
56
  const dataSample = this.dataSample;
22
57
  if (!dataSample) {
23
58
  return nothing;
24
59
  }
25
60
  if (dataSample.dataOoc) {
26
- var reviewActivityThread = (_b = (_a = dataSample.dataOoc.reviewActivityInstance) === null || _a === void 0 ? void 0 : _a.activityThreads) === null || _b === void 0 ? void 0 : _b[0];
27
- var resolveActivityThread = (_d = (_c = dataSample.dataOoc.resolveActivityInstance) === null || _c === void 0 ? void 0 : _c.activityThreads) === null || _d === void 0 ? void 0 : _d[0];
61
+ var reviewActivityThread = dataSample.dataOoc.reviewActivityInstance?.activityThreads?.[0];
62
+ var resolveActivityThread = dataSample.dataOoc.resolveActivityInstance?.activityThreads?.[0];
28
63
  }
29
64
  else {
30
- 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];
65
+ var reviewActivityThread = dataSample?.reviewActivityInstance?.activityThreads?.[0];
31
66
  }
32
67
  return html `
33
- ${!(dataSample === null || dataSample === void 0 ? void 0 : dataSample.dataOoc)
34
- ? html ` <ox-data-sample-view .dataSample=${dataSample}></ox-data-sample-view> `
68
+ ${!dataSample?.dataOoc
69
+ ? html `${this.renderDataSample()}`
35
70
  : html ` <ox-data-ooc-brief-view .dataOoc=${dataSample.dataOoc}></ox-data-ooc-brief-view>`}
36
71
  ${reviewActivityThread
37
72
  ? html `
38
73
  <activity-thread-timeline
39
- subtitle=${String(i18next.t((dataSample === null || dataSample === void 0 ? void 0 : dataSample.dataOoc) ? 'label.ooc review timeline' : 'label.datasample review timeline'))}
74
+ subtitle=${String(i18next.t(dataSample?.dataOoc ? 'label.ooc review timeline' : 'label.datasample review timeline'))}
40
75
  .activityThread=${reviewActivityThread}
41
76
  short-form
42
77
  ></activity-thread-timeline>
@@ -67,6 +102,23 @@ let DataSampleView = class DataSampleView extends localize(i18next)(LitElement)
67
102
  this.fetchDataSample();
68
103
  }
69
104
  }
105
+ renderDataSample() {
106
+ const dataSet = this.dataSample?.dataSet;
107
+ const monitorType = dataSet?.monitorType;
108
+ switch (monitorType) {
109
+ case 'generated':
110
+ return html `<ox-data-sample-view .dataSample=${this.dataSample}></ox-data-sample-view>`;
111
+ case 'checklist':
112
+ return html `<ox-checklist-sample-view .dataSample=${this.dataSample}></ox-checklist-sample-view>`;
113
+ case 'board':
114
+ break;
115
+ case 'page':
116
+ break;
117
+ default:
118
+ return html `<ox-data-sample-view .dataSample=${this.dataSample}></ox-data-sample-view>`;
119
+ break;
120
+ }
121
+ }
70
122
  async fetchDataSample() {
71
123
  const id = this.dataSampleId;
72
124
  const response = await client.query({
@@ -95,6 +147,8 @@ let DataSampleView = class DataSampleView extends localize(i18next)(LitElement)
95
147
  id
96
148
  name
97
149
  description
150
+ monitorType
151
+ monitorView
98
152
  }
99
153
  dataItems {
100
154
  name
@@ -103,6 +157,7 @@ let DataSampleView = class DataSampleView extends localize(i18next)(LitElement)
103
157
  hidden
104
158
  tag
105
159
  group
160
+ subgroup
106
161
  type
107
162
  unit
108
163
  options
@@ -123,6 +178,8 @@ let DataSampleView = class DataSampleView extends localize(i18next)(LitElement)
123
178
  dataSet {
124
179
  id
125
180
  name
181
+ monitorType
182
+ monitorView
126
183
  }
127
184
  key01
128
185
  key02
@@ -137,6 +194,7 @@ let DataSampleView = class DataSampleView extends localize(i18next)(LitElement)
137
194
  hidden
138
195
  tag
139
196
  group
197
+ subgroup
140
198
  type
141
199
  unit
142
200
  options
@@ -233,40 +291,6 @@ let DataSampleView = class DataSampleView extends localize(i18next)(LitElement)
233
291
  window.removeEventListener('keydown', this.printHandler);
234
292
  }
235
293
  };
236
- DataSampleView.styles = [
237
- ScrollbarStyles,
238
- css `
239
- :host {
240
- position: relative;
241
- display: block;
242
- overflow: auto;
243
- background-color: var(--md-sys-color-surface);
244
- }
245
-
246
- ox-data-sample-view,
247
- ox-data-ooc-brief-view {
248
- padding: var(--spacing-large);
249
- }
250
-
251
- activity-thread-timeline {
252
- margin: var(--spacing-medium);
253
- }
254
-
255
- md-fab {
256
- position: fixed;
257
- bottom: 15px;
258
- right: 16px;
259
- text-decoration: auto;
260
- opacity: 0.5;
261
- }
262
-
263
- @media print {
264
- md-fab {
265
- display: none;
266
- }
267
- }
268
- `
269
- ];
270
294
  __decorate([
271
295
  property({
272
296
  type: String,
@@ -1 +1 @@
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 '@material/web/icon/icon.js'\nimport '@material/web/fab/fab.js'\nimport '@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: var(--md-sys-color-surface);\n }\n\n ox-data-sample-view,\n ox-data-ooc-brief-view {\n padding: var(--spacing-large);\n }\n\n activity-thread-timeline {\n margin: var(--spacing-medium);\n }\n\n md-fab {\n position: fixed;\n bottom: 15px;\n right: 16px;\n text-decoration: auto;\n opacity: 0.5;\n }\n\n @media print {\n md-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(\n i18next.t(dataSample?.dataOoc ? 'label.ooc review timeline' : 'label.datasample review timeline')\n )}\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 <md-fab\n title=\"print\"\n @click=${() =>\n GhostPrint.print({\n src: `./data-sample/${this.dataSampleId}`\n })}\n >\n <md-icon slot=\"icon\">print</md-icon>\n </md-fab>\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 hidden\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"]}
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 '@material/web/icon/icon.js'\nimport '@material/web/fab/fab.js'\nimport '@operato/dataset/ox-data-sample-view.js'\nimport '@operato/dataset/ox-data-ooc-brief-view.js'\nimport '@operato/dataset/ox-checklist-sample-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: var(--md-sys-color-surface);\n }\n\n ox-data-sample-view,\n ox-checklist-sample-view,\n ox-data-ooc-brief-view {\n padding: var(--spacing-large);\n }\n\n activity-thread-timeline {\n margin: var(--spacing-medium);\n }\n\n md-fab {\n position: fixed;\n bottom: 15px;\n right: 16px;\n text-decoration: auto;\n opacity: 0.5;\n }\n\n @media print {\n md-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`${this.renderDataSample()}`\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(\n i18next.t(dataSample?.dataOoc ? 'label.ooc review timeline' : 'label.datasample review timeline')\n )}\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 <md-fab\n title=\"print\"\n @click=${() =>\n GhostPrint.print({\n src: `./data-sample/${this.dataSampleId}`\n })}\n >\n <md-icon slot=\"icon\">print</md-icon>\n </md-fab>\n `\n }\n\n updated(changes) {\n if (changes.has('dataSampleId')) {\n this.fetchDataSample()\n }\n }\n\n private renderDataSample() {\n const dataSet = this.dataSample?.dataSet\n const monitorType = dataSet?.monitorType\n\n switch (monitorType) {\n case 'generated':\n return html`<ox-data-sample-view .dataSample=${this.dataSample}></ox-data-sample-view>`\n case 'checklist':\n return html`<ox-checklist-sample-view .dataSample=${this.dataSample}></ox-checklist-sample-view>`\n case 'board':\n break\n case 'page':\n break\n default:\n return html`<ox-data-sample-view .dataSample=${this.dataSample}></ox-data-sample-view>`\n break\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 monitorType\n monitorView\n }\n dataItems {\n name\n description\n active\n hidden\n tag\n group\n subgroup\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 monitorType\n monitorView\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 subgroup\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"]}
@@ -12,21 +12,32 @@ import { client } from '@operato/graphql';
12
12
  * 이 페이지는 여러개의 Data Sample을 한번에 프린트하기 위한 용도로 사용되는 페이지이다.
13
13
  */
14
14
  let DataSamplesPage = class DataSamplesPage extends localize(i18next)(PageView) {
15
+ static { this.styles = [
16
+ css `
17
+ :host {
18
+ display: block;
19
+ overflow: auto;
20
+ }
21
+
22
+ .end {
23
+ page-break-after: always;
24
+ break-after: always;
25
+ }
26
+ `
27
+ ]; }
15
28
  get context() {
16
29
  return {
17
30
  title: i18next.t('title.data-sample view')
18
31
  };
19
32
  }
20
33
  render() {
21
- var _a;
22
- return (_a = this.dataSamples) === null || _a === void 0 ? void 0 : _a.map(dataSample => {
23
- var _a, _b, _c, _d, _e, _f;
24
- if (dataSample === null || dataSample === void 0 ? void 0 : dataSample.dataOoc) {
25
- var reviewActivityThread = (_b = (_a = dataSample.dataOoc.reviewActivityInstance) === null || _a === void 0 ? void 0 : _a.activityThreads) === null || _b === void 0 ? void 0 : _b[0];
26
- var resolveActivityThread = (_d = (_c = dataSample.dataOoc.resolveActivityInstance) === null || _c === void 0 ? void 0 : _c.activityThreads) === null || _d === void 0 ? void 0 : _d[0];
34
+ return this.dataSamples?.map(dataSample => {
35
+ if (dataSample?.dataOoc) {
36
+ var reviewActivityThread = dataSample.dataOoc.reviewActivityInstance?.activityThreads?.[0];
37
+ var resolveActivityThread = dataSample.dataOoc.resolveActivityInstance?.activityThreads?.[0];
27
38
  }
28
39
  else {
29
- 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];
40
+ var reviewActivityThread = dataSample?.reviewActivityInstance?.activityThreads?.[0];
30
41
  }
31
42
  return html `
32
43
  ${!dataSample.dataOoc
@@ -35,7 +46,7 @@ let DataSamplesPage = class DataSamplesPage extends localize(i18next)(PageView)
35
46
  ${reviewActivityThread
36
47
  ? html `
37
48
  <activity-thread-timeline
38
- subtitle=${String(i18next.t((dataSample === null || dataSample === void 0 ? void 0 : dataSample.dataOoc) ? 'label.ooc review timeline' : 'label.datasample review timeline'))}
49
+ subtitle=${String(i18next.t(dataSample?.dataOoc ? 'label.ooc review timeline' : 'label.datasample review timeline'))}
39
50
  .activityThread=${reviewActivityThread}
40
51
  short-form
41
52
  ></activity-thread-timeline>
@@ -225,19 +236,6 @@ let DataSamplesPage = class DataSamplesPage extends localize(i18next)(PageView)
225
236
  this.dataSamples = response.data.dataSamples.items;
226
237
  }
227
238
  };
228
- DataSamplesPage.styles = [
229
- css `
230
- :host {
231
- display: block;
232
- overflow: auto;
233
- }
234
-
235
- .end {
236
- page-break-after: always;
237
- break-after: always;
238
- }
239
- `
240
- ];
241
239
  __decorate([
242
240
  state(),
243
241
  __metadata("design:type", Array)
@@ -1 +1 @@
1
- {"version":3,"file":"data-samples-page.js","sourceRoot":"","sources":["../../../client/pages/data-sample/data-samples-page.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 { PropertyValues, html, css, nothing } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\nimport { PageView } from '@operato/shell'\nimport { i18next, localize } from '@operato/i18n'\nimport { client } from '@operato/graphql'\n\n/**\n * 이 페이지는 여러개의 Data Sample을 한번에 프린트하기 위한 용도로 사용되는 페이지이다.\n */\n@customElement('data-samples-page')\nexport class DataSamplesPage extends localize(i18next)(PageView) {\n static styles = [\n css`\n :host {\n display: block;\n overflow: auto;\n }\n\n .end {\n page-break-after: always;\n break-after: always;\n }\n `\n ]\n\n @state() dataSamples?: any[]\n\n get context() {\n return {\n title: i18next.t('title.data-sample view')\n }\n }\n\n render() {\n return this.dataSamples?.map(dataSample => {\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 <div class=\"end\"></div>\n `\n })\n }\n\n updated(changes: PropertyValues<this>) {}\n\n pageUpdated(changes: any, lifecycle: any, before: any) {\n if (this.active) {\n /*\n * this page is activated\n */\n const { ids = '' } = lifecycle.params\n\n this.fetchSamples(ids.split('|').map(id => id.trim()))\n } else {\n /* this page is deactivated */\n }\n }\n\n async fetchSamples(ids: string[]) {\n const filters = [\n {\n name: 'id',\n operator: 'in',\n value: ids\n }\n ]\n\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!]) {\n dataSamples(filters: $filters) {\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 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 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 reviewActivityInstance {\n ...ActivityInstanceFragment\n }\n resolveActivityInstance {\n ...ActivityInstanceFragment\n }\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 filters\n }\n })\n\n this.dataSamples = response.data.dataSamples.items\n }\n}\n"]}
1
+ {"version":3,"file":"data-samples-page.js","sourceRoot":"","sources":["../../../client/pages/data-sample/data-samples-page.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 { PropertyValues, html, css, nothing } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\nimport { PageView } from '@operato/shell'\nimport { i18next, localize } from '@operato/i18n'\nimport { client } from '@operato/graphql'\n\n/**\n * 이 페이지는 여러개의 Data Sample을 한번에 프린트하기 위한 용도로 사용되는 페이지이다.\n */\n@customElement('data-samples-page')\nexport class DataSamplesPage extends localize(i18next)(PageView) {\n static styles = [\n css`\n :host {\n display: block;\n overflow: auto;\n }\n\n .end {\n page-break-after: always;\n break-after: always;\n }\n `\n ]\n\n @state() dataSamples?: any[]\n\n get context() {\n return {\n title: i18next.t('title.data-sample view')\n }\n }\n\n render() {\n return this.dataSamples?.map(dataSample => {\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 <div class=\"end\"></div>\n `\n })\n }\n\n updated(changes: PropertyValues<this>) {}\n\n pageUpdated(changes: any, lifecycle: any, before: any) {\n if (this.active) {\n /*\n * this page is activated\n */\n const { ids = '' } = lifecycle.params\n\n this.fetchSamples(ids.split('|').map(id => id.trim()))\n } else {\n /* this page is deactivated */\n }\n }\n\n async fetchSamples(ids: string[]) {\n const filters = [\n {\n name: 'id',\n operator: 'in',\n value: ids\n }\n ]\n\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!]) {\n dataSamples(filters: $filters) {\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 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 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 reviewActivityInstance {\n ...ActivityInstanceFragment\n }\n resolveActivityInstance {\n ...ActivityInstanceFragment\n }\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 filters\n }\n })\n\n this.dataSamples = response.data.dataSamples.items\n }\n}\n"]}