@operato/scene-scichart 7.0.2 → 7.0.4

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 (71) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/db.sqlite +0 -0
  3. package/dist/charts/ox-scichart.d.ts +2 -1
  4. package/dist/charts/ox-scichart.js +20 -9
  5. package/dist/charts/ox-scichart.js.map +1 -1
  6. package/dist/charts/scichart-builder.js +7 -2
  7. package/dist/charts/scichart-builder.js.map +1 -1
  8. package/dist/index.d.ts +0 -2
  9. package/dist/index.js +0 -2
  10. package/dist/index.js.map +1 -1
  11. package/dist/templates/index.d.ts +51 -0
  12. package/dist/templates/index.js +1 -3
  13. package/dist/templates/index.js.map +1 -1
  14. package/icons/scichart-timeseries.png +0 -0
  15. package/logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json +6 -16
  16. package/logs/.5e5d741d8b7784a2fbad65eedc0fd46946aaf6f2-audit.json +6 -16
  17. package/logs/{application-2024-07-04-13.log → application-2024-07-08-22.log} +8 -8
  18. package/logs/{application-2024-07-04-00.log → application-2024-07-08-23.log} +36 -22
  19. package/logs/connections-2024-07-08-22.log +50 -0
  20. package/logs/connections-2024-07-08-23.log +100 -0
  21. package/package.json +2 -2
  22. package/src/charts/ox-scichart.ts +18 -8
  23. package/src/charts/scichart-builder.ts +10 -3
  24. package/src/index.ts +0 -2
  25. package/src/templates/index.ts +1 -3
  26. package/tsconfig.tsbuildinfo +1 -1
  27. package/cache/translations/system/en.json +0 -1
  28. package/cache/translations/system/ko.json +0 -1
  29. package/dist/charts/sci-candle-stick-chart.d.ts +0 -19
  30. package/dist/charts/sci-candle-stick-chart.js +0 -249
  31. package/dist/charts/sci-candle-stick-chart.js.map +0 -1
  32. package/dist/charts/volume-pallette-provider.d.ts +0 -12
  33. package/dist/charts/volume-pallette-provider.js +0 -21
  34. package/dist/charts/volume-pallette-provider.js.map +0 -1
  35. package/dist/data/binance-rest-client.d.ts +0 -14
  36. package/dist/data/binance-rest-client.js +0 -53
  37. package/dist/data/binance-rest-client.js.map +0 -1
  38. package/dist/scichart-candle-stick.d.ts +0 -10
  39. package/dist/scichart-candle-stick.js +0 -50
  40. package/dist/scichart-candle-stick.js.map +0 -1
  41. package/dist/scichart.d.ts +0 -21
  42. package/dist/scichart.js +0 -72
  43. package/dist/scichart.js.map +0 -1
  44. package/dist/templates/scichart-candle-stick.d.ts +0 -14
  45. package/dist/templates/scichart-candle-stick.js +0 -16
  46. package/dist/templates/scichart-candle-stick.js.map +0 -1
  47. package/dist/templates/scichart.d.ts +0 -14
  48. package/dist/templates/scichart.js +0 -16
  49. package/dist/templates/scichart.js.map +0 -1
  50. package/dist/themes/app-theme.d.ts +0 -56
  51. package/dist/themes/app-theme.js +0 -35
  52. package/dist/themes/app-theme.js.map +0 -1
  53. package/icons/scichart-candle-stick.png +0 -0
  54. package/icons/scichart.png +0 -0
  55. package/logs/application-2024-07-04-12.log +0 -107
  56. package/logs/application-2024-07-04-14.log +0 -210
  57. package/logs/connections-2024-07-04-00.log +0 -100
  58. package/logs/connections-2024-07-04-12.log +0 -50
  59. package/logs/connections-2024-07-04-13.log +0 -50
  60. package/logs/connections-2024-07-04-14.log +0 -100
  61. package/logs/system/.ff447eb42e255d0436b200b50a92dc6546166b36-audit.json +0 -20
  62. package/logs/system/scenario-/353/251/224/354/235/270 /354/247/221/354/247/204/352/270/260 /354/204/274/354/213/261 /353/215/260/354/235/264/355/204/260 /354/241/260/355/232/214 - /354/213/244/354/213/234/352/260/204-2024-07-04-00.log" +0 -7
  63. package/logs/system/scenario-/353/251/224/354/235/270 /354/247/221/354/247/204/352/270/260 /354/204/274/354/213/261 /353/215/260/354/235/264/355/204/260 /354/241/260/355/232/214 - /354/213/244/354/213/234/352/260/204-2024-07-04-12.log" +0 -14
  64. package/src/charts/sci-candle-stick-chart.ts +0 -306
  65. package/src/charts/volume-pallette-provider.ts +0 -41
  66. package/src/data/binance-rest-client.ts +0 -74
  67. package/src/scichart-candle-stick.ts +0 -60
  68. package/src/scichart.ts +0 -90
  69. package/src/templates/scichart-candle-stick.ts +0 -16
  70. package/src/templates/scichart.ts +0 -16
  71. package/src/themes/app-theme.ts +0 -72
package/CHANGELOG.md CHANGED
@@ -3,6 +3,26 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [7.0.4](https://github.com/things-scene/operato-scene/compare/v7.0.3...v7.0.4) (2024-07-08)
7
+
8
+
9
+ ### :bug: Bug Fix
10
+
11
+ * support no point in scichart ([02b49dc](https://github.com/things-scene/operato-scene/commit/02b49dc774eed2696a86fa9e5ef4d29cfdac0da6))
12
+ * zoom x-axis mouse-wheel-zoom-modifier for scichart ([252050f](https://github.com/things-scene/operato-scene/commit/252050f925013fad8ef0815a30d42a908b947931))
13
+
14
+
15
+
16
+ ## [7.0.3](https://github.com/things-scene/operato-scene/compare/v7.0.2...v7.0.3) (2024-07-05)
17
+
18
+
19
+ ### :bug: Bug Fix
20
+
21
+ * missing component icons ([371d826](https://github.com/things-scene/operato-scene/commit/371d826cd905485d787d45a9a77b1a4cd28a52d7))
22
+ * scichart ([420e094](https://github.com/things-scene/operato-scene/commit/420e0943764963dd5fdf76d3a55bcb7931df41a7))
23
+
24
+
25
+
6
26
  ## [7.0.2](https://github.com/things-scene/operato-scene/compare/v7.0.1...v7.0.2) (2024-07-04)
7
27
 
8
28
 
package/db.sqlite CHANGED
Binary file
@@ -6,9 +6,10 @@ export declare class OxSciChart extends LitElement {
6
6
  }[];
7
7
  private chart;
8
8
  private dataSeries;
9
+ private containerId;
9
10
  container: HTMLDivElement;
11
+ static idx: number;
10
12
  static styles: import("lit").CSSResult;
11
- firstUpdated(): void;
12
13
  initializeSciChart(): Promise<void>;
13
14
  updated(changedProperties: Map<string | number | symbol, unknown>): Promise<void>;
14
15
  updateDataSeries(): void;
@@ -1,20 +1,30 @@
1
+ var OxSciChart_1;
1
2
  import { __decorate } from "tslib";
2
3
  import { LitElement, html, css } from 'lit';
3
4
  import { property, query, customElement } from 'lit/decorators.js';
4
5
  import { buildSciChart } from './scichart-builder';
5
- let OxSciChart = class OxSciChart extends LitElement {
6
+ let OxSciChart = OxSciChart_1 = class OxSciChart extends LitElement {
6
7
  constructor() {
7
8
  super(...arguments);
8
9
  this.config = null;
9
10
  this.data = [];
10
11
  this.chart = null;
11
12
  this.dataSeries = [];
12
- }
13
- firstUpdated() {
14
- this.initializeSciChart();
15
- this.updateDataSeries();
13
+ /*
14
+ [주의]
15
+ ox-scichart container의 id를 글로벌 유니크하게 해야한다.
16
+ SciChart가 특별히 container의 id를 기반으로 하위 컴포넌트를 구성하고 있기 때문이다.
17
+ shadowDom 안에 있는 container 이더라도, 글로벌 유니크한 id를 제공해야 한다.
18
+ 그렇지 않으면, 단 하나의 차트만 제대로 렌더링된다.
19
+ */
20
+ this.containerId = 'ox-sci-chart' + ++OxSciChart_1.idx;
16
21
  }
17
22
  async initializeSciChart() {
23
+ var _a;
24
+ if (this.chart) {
25
+ (_a = this.chart.sciChartSurface) === null || _a === void 0 ? void 0 : _a.delete();
26
+ this.chart = null;
27
+ }
18
28
  const { chart, dataSeries } = (await buildSciChart(this.config, this.container, {})) || {};
19
29
  this.chart = chart;
20
30
  this.dataSeries = dataSeries;
@@ -29,7 +39,7 @@ let OxSciChart = class OxSciChart extends LitElement {
29
39
  needDataUpdate = true;
30
40
  }
31
41
  if (needDataUpdate) {
32
- this.updateDataSeries();
42
+ await this.updateDataSeries();
33
43
  }
34
44
  }
35
45
  updateDataSeries() {
@@ -70,9 +80,10 @@ let OxSciChart = class OxSciChart extends LitElement {
70
80
  });
71
81
  }
72
82
  render() {
73
- return html ` <div id="container" class="chart-container"></div> `;
83
+ return html ` <div id=${this.containerId} class="chart-container"></div> `;
74
84
  }
75
85
  };
86
+ OxSciChart.idx = 0;
76
87
  OxSciChart.styles = css `
77
88
  :host {
78
89
  display: block;
@@ -98,9 +109,9 @@ __decorate([
98
109
  property({ type: Array })
99
110
  ], OxSciChart.prototype, "data", void 0);
100
111
  __decorate([
101
- query('div#container')
112
+ query('.chart-container')
102
113
  ], OxSciChart.prototype, "container", void 0);
103
- OxSciChart = __decorate([
114
+ OxSciChart = OxSciChart_1 = __decorate([
104
115
  customElement('ox-scichart')
105
116
  ], OxSciChart);
106
117
  export { OxSciChart };
@@ -1 +1 @@
1
- {"version":3,"file":"ox-scichart.js","sourceRoot":"","sources":["../../src/charts/ox-scichart.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAG3C,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAAnC;;QACuB,WAAM,GAAoC,IAAI,CAAA;QAC/C,SAAI,GAA8B,EAAE,CAAA;QAEvD,UAAK,GAAQ,IAAI,CAAA;QACjB,eAAU,GAAU,EAAE,CAAA;IAsGhC,CAAC;IA/EC,YAAY;QACV,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QAE1F,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,UAAU,GAAG,UAAW,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,iBAAyD;QACrE,IAAI,cAAc,GAAG,KAAK,CAAA;QAE1B,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;YAC/B,cAAc,GAAG,IAAI,CAAA;QACvB,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,cAAc,GAAG,IAAI,CAAA;QACvB,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACzB,CAAC;IACH,CAAC;IAED,gBAAgB;;QACd,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,CAAA;YAAE,OAAM;QAEpC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE5B,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC9B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,WAAW,CAChC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CACxB,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,MAAA,IAAI,CAAC,KAAK,0CAAE,eAAe,CAAC,WAAW,EAAE,CAAA;QACzC,MAAA,IAAI,CAAC,KAAK,0CAAE,eAAe,CAAC,iBAAiB,EAAE,CAAA;IACjD,CAAC;IAED,IAAI,OAAO;QACT,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAC7B,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,EAAE,CAAA;QAEjE,IAAI,CAAC,CAAC,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACvC,OAAO,EAAE,CAAA;QACX,CAAC;QAED,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAO,IAAI;iBACR,GAAG,CAAC,IAAI,CAAC,EAAE;gBACV,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtC,OAAM;gBACR,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;gBACpC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;oBAC3C,OAAM;gBACR,CAAC;gBAED,OAAO;oBACL,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI;oBAC/B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,OAAQ,CAAC;iBAC/B,CAAA;YACH,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAyC,CAAA;QAC5D,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA,sDAAsD,CAAA;IACnE,CAAC;;AAjGM,iBAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;GAiBlB,AAjBY,CAiBZ;AAzB2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAA+C;AAC/C;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wCAAqC;AAKvC;IAAvB,KAAK,CAAC,eAAe,CAAC;6CAA2B;AAPvC,UAAU;IADtB,aAAa,CAAC,aAAa,CAAC;GAChB,UAAU,CA2GtB","sourcesContent":["import { LitElement, html, css } from 'lit'\nimport { property, query, customElement } from 'lit/decorators.js'\nimport { buildSciChart } from './scichart-builder'\n\n@customElement('ox-scichart')\nexport class OxSciChart extends LitElement {\n @property({ type: Object }) config: OperatoChart.ChartConfig | null = null\n @property({ type: Array }) data: { [attr: string]: any }[] = []\n\n private chart: any = null\n private dataSeries: any[] = []\n\n @query('div#container') container!: HTMLDivElement\n\n static styles = css`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .chart-container {\n display: flex;\n width: 100%;\n height: 100%;\n }\n\n .chart-content {\n flex: 1;\n position: relative;\n }\n `\n\n firstUpdated() {\n this.initializeSciChart()\n this.updateDataSeries()\n }\n\n async initializeSciChart() {\n const { chart, dataSeries } = (await buildSciChart(this.config, this.container, {})) || {}\n\n this.chart = chart\n this.dataSeries = dataSeries!\n }\n\n async updated(changedProperties: Map<string | number | symbol, unknown>) {\n var needDataUpdate = false\n\n if (changedProperties.has('config') && this.config) {\n await this.initializeSciChart()\n needDataUpdate = true\n }\n\n if (changedProperties.has('data')) {\n needDataUpdate = true\n }\n\n if (needDataUpdate) {\n this.updateDataSeries()\n }\n }\n\n updateDataSeries() {\n if (!this.dataSeries?.length) return\n\n this.dataSeries.forEach(ds => ds.clear())\n const newData = this.dataSet\n\n newData.forEach((data, index) => {\n this.dataSeries[index].appendRange(\n data.map(d => d.xValue),\n data.map(d => d.yValue)\n )\n })\n\n this.chart?.sciChartSurface.zoomExtents()\n this.chart?.sciChartSurface.invalidateElement()\n }\n\n get dataSet(): { xValue: number; yValue: number }[][] {\n const { config, data } = this\n const { datasets = [], labelDataKey: attrX } = config?.data || {}\n\n if (!(data instanceof Array) || !attrX) {\n return []\n }\n\n return datasets.map(dataset => {\n return data\n .map(item => {\n if (!item || typeof item !== 'object') {\n return\n }\n\n const xValue = new Date(item[attrX])\n if (isNaN(xValue.getTime())) {\n console.error('Invalid date:', item[attrX])\n return\n }\n\n return {\n xValue: xValue.getTime() / 1000,\n yValue: item[dataset.dataKey!]\n }\n })\n .filter(Boolean) as { xValue: number; yValue: number }[]\n })\n }\n\n render() {\n return html` <div id=\"container\" class=\"chart-container\"></div> `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ox-scichart': OxSciChart\n }\n}\n"]}
1
+ {"version":3,"file":"ox-scichart.js","sourceRoot":"","sources":["../../src/charts/ox-scichart.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css } from 'lit'\nimport { property, query, customElement } from 'lit/decorators.js'\nimport { buildSciChart } from './scichart-builder'\n\n@customElement('ox-scichart')\nexport class OxSciChart extends LitElement {\n @property({ type: Object }) config: OperatoChart.ChartConfig | null = null\n @property({ type: Array }) data: { [attr: string]: any }[] = []\n\n private chart: any = null\n private dataSeries: any[] = []\n /*\n [주의]\n ox-scichart container의 id를 글로벌 유니크하게 해야한다. \n SciChart가 특별히 container의 id를 기반으로 하위 컴포넌트를 구성하고 있기 때문이다.\n shadowDom 안에 있는 container 이더라도, 글로벌 유니크한 id를 제공해야 한다.\n 그렇지 않으면, 단 하나의 차트만 제대로 렌더링된다.\n */\n private containerId: string = 'ox-sci-chart' + ++OxSciChart.idx\n\n @query('.chart-container') container!: HTMLDivElement\n\n static idx: number = 0\n\n static styles = css`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .chart-container {\n display: flex;\n width: 100%;\n height: 100%;\n }\n\n .chart-content {\n flex: 1;\n position: relative;\n }\n `\n\n async initializeSciChart() {\n if (this.chart) {\n this.chart.sciChartSurface?.delete()\n this.chart = null\n }\n\n const { chart, dataSeries } = (await buildSciChart(this.config, this.container, {})) || {}\n\n this.chart = chart\n this.dataSeries = dataSeries!\n }\n\n async updated(changedProperties: Map<string | number | symbol, unknown>) {\n var needDataUpdate = false\n\n if (changedProperties.has('config') && this.config) {\n await this.initializeSciChart()\n needDataUpdate = true\n }\n\n if (changedProperties.has('data')) {\n needDataUpdate = true\n }\n\n if (needDataUpdate) {\n await this.updateDataSeries()\n }\n }\n\n updateDataSeries() {\n if (!this.dataSeries?.length) return\n\n this.dataSeries.forEach(ds => ds.clear())\n const newData = this.dataSet\n\n newData.forEach((data, index) => {\n this.dataSeries[index].appendRange(\n data.map(d => d.xValue),\n data.map(d => d.yValue)\n )\n })\n\n this.chart?.sciChartSurface.zoomExtents()\n this.chart?.sciChartSurface.invalidateElement()\n }\n\n get dataSet(): { xValue: number; yValue: number }[][] {\n const { config, data } = this\n const { datasets = [], labelDataKey: attrX } = config?.data || {}\n\n if (!(data instanceof Array) || !attrX) {\n return []\n }\n\n return datasets.map(dataset => {\n return data\n .map(item => {\n if (!item || typeof item !== 'object') {\n return\n }\n\n const xValue = new Date(item[attrX])\n if (isNaN(xValue.getTime())) {\n console.error('Invalid date:', item[attrX])\n return\n }\n\n return {\n xValue: xValue.getTime() / 1000,\n yValue: item[dataset.dataKey!]\n }\n })\n .filter(Boolean) as { xValue: number; yValue: number }[]\n })\n }\n\n render() {\n return html` <div id=${this.containerId} class=\"chart-container\"></div> `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ox-scichart': OxSciChart\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { TinyColor } from '@ctrl/tinycolor';
2
- import { SciChartSurface, SciChartJSLightTheme, SciChartJSDarkv2Theme, XyDataSeries, FastLineRenderableSeries, SplineLineRenderableSeries, FastColumnRenderableSeries, StackedColumnRenderableSeries, StackedMountainRenderableSeries, StackedColumnCollection, StackedMountainCollection, NumericAxis, DateTimeNumericAxis, EAutoRange, EAxisAlignment, NumberRange, MouseWheelZoomModifier, RubberBandXyZoomModifier, ZoomExtentsModifier, RolloverModifier, SmartDateLabelProvider, EllipsePointMarker, SquarePointMarker, TrianglePointMarker, CrossPointMarker, XPointMarker, WaveAnimation, LegendModifier, ELegendPlacement } from 'scichart';
2
+ import { SciChartSurface, SciChartJSLightTheme, SciChartJSDarkv2Theme, XyDataSeries, FastLineRenderableSeries, SplineLineRenderableSeries, FastColumnRenderableSeries, StackedColumnRenderableSeries, StackedMountainRenderableSeries, StackedColumnCollection, StackedMountainCollection, NumericAxis, DateTimeNumericAxis, EAutoRange, EAxisAlignment, NumberRange, MouseWheelZoomModifier, RubberBandXyZoomModifier, ZoomExtentsModifier, RolloverModifier, SmartDateLabelProvider, EllipsePointMarker, SquarePointMarker, TrianglePointMarker, CrossPointMarker, XPointMarker, WaveAnimation, LegendModifier, ELegendPlacement, EXyDirection } from 'scichart';
3
3
  SciChartSurface.UseCommunityLicense();
4
4
  SciChartSurface.configure({
5
5
  dataUrl: `/node_modules/scichart/_wasm/scichart2d.data`,
@@ -17,6 +17,9 @@ function getThemeFromBrowser() {
17
17
  return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
18
18
  }
19
19
  function createPointMarker(wasmContext, pointStyle, color = DEFAULT_COLOR) {
20
+ if (!pointStyle) {
21
+ return;
22
+ }
20
23
  const pointMarkerOptions = {
21
24
  width: POINT_MARKER_SIZE,
22
25
  height: POINT_MARKER_SIZE,
@@ -177,7 +180,9 @@ export async function buildSciChart(config, container, { fontSize, fontFamily, f
177
180
  }
178
181
  }
179
182
  // 줌인/줌아웃 모디파이어 추가
180
- sciChartSurface.chartModifiers.add(new RubberBandXyZoomModifier(), new MouseWheelZoomModifier(), new ZoomExtentsModifier());
183
+ sciChartSurface.chartModifiers.add(new RubberBandXyZoomModifier(),
184
+ // new ZoomPanModifier({ xyDirection: EXyDirection.XDirection }),
185
+ new MouseWheelZoomModifier({ xyDirection: EXyDirection.XDirection }), new ZoomExtentsModifier());
181
186
  if (legend === null || legend === void 0 ? void 0 : legend.display) {
182
187
  const legendModifier = new LegendModifier({
183
188
  showCheckboxes: true,
@@ -1 +1 @@
1
- {"version":3,"file":"scichart-builder.js","sourceRoot":"","sources":["../../src/charts/scichart-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { TinyColor } from '@ctrl/tinycolor'\nimport { format as formatText } from '@operato/utils/format.js'\nimport {\n SciChartSurface,\n SciChartJSLightTheme,\n SciChartJSDarkv2Theme,\n XyDataSeries,\n FastLineRenderableSeries,\n SplineLineRenderableSeries,\n FastColumnRenderableSeries,\n StackedColumnRenderableSeries,\n StackedMountainRenderableSeries,\n StackedColumnCollection,\n StackedMountainCollection,\n NumericAxis,\n DateTimeNumericAxis,\n EAutoRange,\n EAxisAlignment,\n NumberRange,\n MouseWheelZoomModifier,\n RubberBandXyZoomModifier,\n ZoomExtentsModifier,\n RolloverModifier,\n SmartDateLabelProvider,\n EllipsePointMarker,\n SquarePointMarker,\n TrianglePointMarker,\n CrossPointMarker,\n XPointMarker,\n WaveAnimation,\n LegendModifier,\n ELegendPlacement\n} from 'scichart'\n\nSciChartSurface.UseCommunityLicense()\n\nSciChartSurface.configure({\n dataUrl: `/node_modules/scichart/_wasm/scichart2d.data`,\n wasmUrl: `/node_modules/scichart/_wasm/scichart2d.wasm`\n})\n\nconst DEFAULT_COLOR = '#FF6600'\nconst DEFAULT_STROKE = '#000000'\nconst POINT_MARKER_SIZE = 10\nconst STROKE_THICKNESS = 2\nconst ANIMATION_DURATION = 1000\n\nfunction getBaseColorFromTheme(theme?: 'light' | 'dark' | 'auto') {\n return new TinyColor(theme == 'dark' ? '#fff' : '#000')\n}\n\nfunction getThemeFromBrowser() {\n return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n}\n\nfunction createPointMarker(wasmContext: any, pointStyle?: string, color: string = DEFAULT_COLOR) {\n const pointMarkerOptions = {\n width: POINT_MARKER_SIZE,\n height: POINT_MARKER_SIZE,\n strokeThickness: STROKE_THICKNESS,\n fill: color,\n stroke: DEFAULT_STROKE\n }\n\n switch (pointStyle) {\n case 'triangle':\n return new TrianglePointMarker(wasmContext, pointMarkerOptions)\n case 'rect':\n return new SquarePointMarker(wasmContext, pointMarkerOptions)\n case 'cross':\n return new CrossPointMarker(wasmContext, pointMarkerOptions)\n case 'crossRot':\n return new XPointMarker(wasmContext, pointMarkerOptions)\n default:\n return new EllipsePointMarker(wasmContext, pointMarkerOptions)\n }\n}\n\nfunction createAxis(\n wasmContext: any,\n axis: any,\n index: number,\n isXAxis: boolean,\n fontColor: string,\n fontFamily?: string,\n fontSize?: number\n) {\n const { axisTitle, ticks } = axis\n const {\n autoMax,\n autoMin,\n min,\n max,\n stepSize,\n beginAtZero,\n color = fontColor,\n textStrokeColor = fontColor\n } = ticks || {}\n\n const axisOptions = {\n axisTitle,\n autoRange: autoMin || autoMax ? EAutoRange.Always : undefined,\n axisAlignment: isXAxis ? EAxisAlignment.Bottom : index === 0 ? EAxisAlignment.Left : EAxisAlignment.Right,\n visibleRange: min !== undefined && max !== undefined ? new NumberRange(min, max) : undefined,\n majorDelta: stepSize,\n growBy: beginAtZero ? new NumberRange(0.1, 0.1) : undefined,\n labelStyle: {\n fontFamily,\n fontSize,\n color\n },\n axisTitleStyle: {\n fontFamily,\n fontSize,\n color: textStrokeColor\n }\n }\n\n return isXAxis\n ? new DateTimeNumericAxis(wasmContext, { ...axisOptions, labelProvider: new SmartDateLabelProvider() })\n : new NumericAxis(wasmContext, { ...axisOptions, id: `yAxis${index}` })\n}\n\nfunction createSeries(\n wasmContext: any,\n dataset: any,\n index: number,\n stacked: boolean,\n animation: boolean,\n yAxisId: string\n) {\n const dataSeries = new XyDataSeries(wasmContext, {\n dataSeriesName: dataset.label,\n containsNaN: false\n })\n\n const stackGroupId = dataset.stack || `__stack${index}__`\n const color = (dataset.backgroundColor as string) || DEFAULT_COLOR\n const strokeColor = (dataset.color as string) || DEFAULT_COLOR\n const borderWidth = dataset.borderWidth || STROKE_THICKNESS\n const pointMarker = createPointMarker(wasmContext, dataset.pointStyle, strokeColor)\n\n let series: any\n if (dataset.type === 'bar') {\n series = stacked\n ? new StackedColumnRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n fill: color,\n stackedGroupId: stackGroupId\n })\n : new FastColumnRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n fill: color,\n animation: animation ? new WaveAnimation({ duration: ANIMATION_DURATION, fadeEffect: true }) : undefined,\n yAxisId\n })\n } else {\n series = stacked\n ? new StackedMountainRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n stroke: strokeColor,\n fill: color\n })\n : dataset.lineTension && dataset.lineTension > 0\n ? new SplineLineRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n stroke: strokeColor,\n pointMarker,\n animation: animation ? new WaveAnimation({ duration: ANIMATION_DURATION, fadeEffect: true }) : undefined,\n yAxisId\n })\n : new FastLineRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n stroke: strokeColor,\n pointMarker,\n animation: animation ? new WaveAnimation({ duration: ANIMATION_DURATION, fadeEffect: true }) : undefined,\n yAxisId\n })\n }\n\n return { series, dataSeries }\n}\n\nexport async function buildSciChart(\n config: OperatoChart.ChartConfig | undefined | null,\n container: any,\n { fontSize, fontFamily, fontColor }: { fontSize?: number; fontFamily?: string; fontColor?: string }\n): Promise<{ chart: any; dataSeries: any[] } | undefined> {\n if (!config) return\n\n const { type: chartType, options, data: fromData } = config\n const { datasets = [] } = fromData || {}\n var {\n theme,\n tooltip,\n animation,\n legend,\n scales: fromScales,\n xGridLine,\n yGridLine,\n y2ndGridLine,\n stacked\n } = options || {}\n\n var baseColor = getBaseColorFromTheme(theme)\n\n if (theme === 'auto') {\n theme = getThemeFromBrowser()\n }\n\n fontColor = fontColor || baseColor.clone().toString()\n\n const { xAxes = [], yAxes = [] } = fromScales || {}\n\n const chart = await SciChartSurface.create(container, {\n theme: theme == 'dark' ? new SciChartJSDarkv2Theme() : new SciChartJSLightTheme()\n })\n const { sciChartSurface, wasmContext } = chart\n\n // X 축 설정\n xAxes.forEach((axis, index) => {\n const xAxis = createAxis(wasmContext, axis, index, true, fontColor, fontFamily, fontSize)\n sciChartSurface.xAxes.add(xAxis)\n })\n\n // Y 축 설정\n yAxes.forEach((axis, index) => {\n const yAxis = createAxis(wasmContext, axis, index, false, fontColor, fontFamily, fontSize)\n sciChartSurface.yAxes.add(yAxis)\n })\n\n // 시리즈 설정\n const dataSeriesArray = datasets.map((dataset, index) => {\n const yAxisId = dataset.yAxisID || 'yAxis0'\n const { series, dataSeries } = createSeries(wasmContext, dataset, index, !!stacked, !!animation, yAxisId)\n\n sciChartSurface.renderableSeries.add(series)\n\n if (tooltip) {\n const rolloverModifier = new RolloverModifier({\n showTooltip: true,\n showAxisLabel: true\n })\n\n sciChartSurface.chartModifiers.add(rolloverModifier)\n }\n\n return dataSeries\n })\n\n // Stacked collections 추가\n if (stacked) {\n const stackedColumnCollection = new StackedColumnCollection(wasmContext)\n const stackedMountainCollection = new StackedMountainCollection(wasmContext)\n\n sciChartSurface.renderableSeries.asArray().forEach((series: any) => {\n if (series instanceof StackedColumnRenderableSeries) {\n stackedColumnCollection.add(series)\n } else if (series instanceof StackedMountainRenderableSeries) {\n stackedMountainCollection.add(series)\n }\n })\n\n if (stackedColumnCollection.size() > 0) {\n sciChartSurface.renderableSeries.add(stackedColumnCollection)\n }\n\n if (stackedMountainCollection.size() > 0) {\n sciChartSurface.renderableSeries.add(stackedMountainCollection)\n }\n }\n\n // 줌인/줌아웃 모디파이어 추가\n sciChartSurface.chartModifiers.add(\n new RubberBandXyZoomModifier(),\n new MouseWheelZoomModifier(),\n new ZoomExtentsModifier()\n )\n\n if (legend?.display) {\n const legendModifier = new LegendModifier({\n showCheckboxes: true,\n showSeriesMarkers: true,\n showLegend: true,\n placement:\n legend.position == 'top'\n ? ELegendPlacement.TopLeft\n : legend.position == 'left'\n ? ELegendPlacement.BottomLeft\n : legend.position == 'bottom'\n ? ELegendPlacement.BottomRight\n : ELegendPlacement.TopRight\n })\n\n sciChartSurface.chartModifiers.add(legendModifier)\n }\n\n return { chart, dataSeries: dataSeriesArray }\n}\n"]}
1
+ {"version":3,"file":"scichart-builder.js","sourceRoot":"","sources":["../../src/charts/scichart-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { TinyColor } from '@ctrl/tinycolor'\nimport { format as formatText } from '@operato/utils/format.js'\nimport {\n SciChartSurface,\n SciChartJSLightTheme,\n SciChartJSDarkv2Theme,\n XyDataSeries,\n FastLineRenderableSeries,\n SplineLineRenderableSeries,\n FastColumnRenderableSeries,\n StackedColumnRenderableSeries,\n StackedMountainRenderableSeries,\n StackedColumnCollection,\n StackedMountainCollection,\n NumericAxis,\n DateTimeNumericAxis,\n EAutoRange,\n EAxisAlignment,\n NumberRange,\n MouseWheelZoomModifier,\n RubberBandXyZoomModifier,\n ZoomPanModifier,\n ZoomExtentsModifier,\n RolloverModifier,\n SmartDateLabelProvider,\n EllipsePointMarker,\n SquarePointMarker,\n TrianglePointMarker,\n CrossPointMarker,\n XPointMarker,\n WaveAnimation,\n LegendModifier,\n ELegendPlacement,\n EXyDirection\n} from 'scichart'\n\nSciChartSurface.UseCommunityLicense()\n\nSciChartSurface.configure({\n dataUrl: `/node_modules/scichart/_wasm/scichart2d.data`,\n wasmUrl: `/node_modules/scichart/_wasm/scichart2d.wasm`\n})\n\nconst DEFAULT_COLOR = '#FF6600'\nconst DEFAULT_STROKE = '#000000'\nconst POINT_MARKER_SIZE = 10\nconst STROKE_THICKNESS = 2\nconst ANIMATION_DURATION = 1000\n\nfunction getBaseColorFromTheme(theme?: 'light' | 'dark' | 'auto') {\n return new TinyColor(theme == 'dark' ? '#fff' : '#000')\n}\n\nfunction getThemeFromBrowser() {\n return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n}\n\nfunction createPointMarker(wasmContext: any, pointStyle?: string, color: string = DEFAULT_COLOR) {\n if (!pointStyle) {\n return\n }\n\n const pointMarkerOptions = {\n width: POINT_MARKER_SIZE,\n height: POINT_MARKER_SIZE,\n strokeThickness: STROKE_THICKNESS,\n fill: color,\n stroke: DEFAULT_STROKE\n }\n\n switch (pointStyle) {\n case 'triangle':\n return new TrianglePointMarker(wasmContext, pointMarkerOptions)\n case 'rect':\n return new SquarePointMarker(wasmContext, pointMarkerOptions)\n case 'cross':\n return new CrossPointMarker(wasmContext, pointMarkerOptions)\n case 'crossRot':\n return new XPointMarker(wasmContext, pointMarkerOptions)\n default:\n return new EllipsePointMarker(wasmContext, pointMarkerOptions)\n }\n}\n\nfunction createAxis(\n wasmContext: any,\n axis: any,\n index: number,\n isXAxis: boolean,\n fontColor: string,\n fontFamily?: string,\n fontSize?: number\n) {\n const { axisTitle, ticks } = axis\n const {\n autoMax,\n autoMin,\n min,\n max,\n stepSize,\n beginAtZero,\n color = fontColor,\n textStrokeColor = fontColor\n } = ticks || {}\n\n const axisOptions = {\n axisTitle,\n autoRange: autoMin || autoMax ? EAutoRange.Always : undefined,\n axisAlignment: isXAxis ? EAxisAlignment.Bottom : index === 0 ? EAxisAlignment.Left : EAxisAlignment.Right,\n visibleRange: min !== undefined && max !== undefined ? new NumberRange(min, max) : undefined,\n majorDelta: stepSize,\n growBy: beginAtZero ? new NumberRange(0.1, 0.1) : undefined,\n labelStyle: {\n fontFamily,\n fontSize,\n color\n },\n axisTitleStyle: {\n fontFamily,\n fontSize,\n color: textStrokeColor\n }\n }\n\n return isXAxis\n ? new DateTimeNumericAxis(wasmContext, { ...axisOptions, labelProvider: new SmartDateLabelProvider() })\n : new NumericAxis(wasmContext, { ...axisOptions, id: `yAxis${index}` })\n}\n\nfunction createSeries(\n wasmContext: any,\n dataset: any,\n index: number,\n stacked: boolean,\n animation: boolean,\n yAxisId: string\n) {\n const dataSeries = new XyDataSeries(wasmContext, {\n dataSeriesName: dataset.label,\n containsNaN: false\n })\n\n const stackGroupId = dataset.stack || `__stack${index}__`\n const color = (dataset.backgroundColor as string) || DEFAULT_COLOR\n const strokeColor = (dataset.color as string) || DEFAULT_COLOR\n const borderWidth = dataset.borderWidth || STROKE_THICKNESS\n const pointMarker = createPointMarker(wasmContext, dataset.pointStyle, strokeColor)\n\n let series\n if (dataset.type === 'bar') {\n series = stacked\n ? new StackedColumnRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n fill: color,\n stackedGroupId: stackGroupId\n })\n : new FastColumnRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n fill: color,\n animation: animation ? new WaveAnimation({ duration: ANIMATION_DURATION, fadeEffect: true }) : undefined,\n yAxisId\n })\n } else {\n series = stacked\n ? new StackedMountainRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n stroke: strokeColor,\n fill: color\n })\n : dataset.lineTension && dataset.lineTension > 0\n ? new SplineLineRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n stroke: strokeColor,\n pointMarker,\n animation: animation ? new WaveAnimation({ duration: ANIMATION_DURATION, fadeEffect: true }) : undefined,\n yAxisId\n })\n : new FastLineRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n stroke: strokeColor,\n pointMarker,\n animation: animation ? new WaveAnimation({ duration: ANIMATION_DURATION, fadeEffect: true }) : undefined,\n yAxisId\n })\n }\n\n return { series, dataSeries }\n}\n\nexport async function buildSciChart(\n config: OperatoChart.ChartConfig | undefined | null,\n container: any,\n { fontSize, fontFamily, fontColor }: { fontSize?: number; fontFamily?: string; fontColor?: string }\n): Promise<{ chart: any; dataSeries: any[] } | undefined> {\n if (!config) return\n\n const { type: chartType, options, data: fromData } = config\n const { datasets = [] } = fromData || {}\n var {\n theme,\n tooltip,\n animation,\n legend,\n scales: fromScales,\n xGridLine,\n yGridLine,\n y2ndGridLine,\n stacked\n } = options || {}\n\n var baseColor = getBaseColorFromTheme(theme)\n\n if (theme === 'auto') {\n theme = getThemeFromBrowser()\n }\n\n fontColor = fontColor || baseColor.clone().toString()\n\n const { xAxes = [], yAxes = [] } = fromScales || {}\n\n const chart = await SciChartSurface.create(container, {\n theme: theme == 'dark' ? new SciChartJSDarkv2Theme() : new SciChartJSLightTheme()\n })\n const { sciChartSurface, wasmContext } = chart\n\n // X 축 설정\n xAxes.forEach((axis, index) => {\n const xAxis = createAxis(wasmContext, axis, index, true, fontColor, fontFamily, fontSize)\n sciChartSurface.xAxes.add(xAxis)\n })\n\n // Y 축 설정\n yAxes.forEach((axis, index) => {\n const yAxis = createAxis(wasmContext, axis, index, false, fontColor, fontFamily, fontSize)\n sciChartSurface.yAxes.add(yAxis)\n })\n\n // 시리즈 설정\n const dataSeriesArray = datasets.map((dataset, index) => {\n const yAxisId = dataset.yAxisID || 'yAxis0'\n const { series, dataSeries } = createSeries(wasmContext, dataset, index, !!stacked, !!animation, yAxisId)\n\n sciChartSurface.renderableSeries.add(series)\n\n if (tooltip) {\n const rolloverModifier = new RolloverModifier({\n showTooltip: true,\n showAxisLabel: true\n })\n\n sciChartSurface.chartModifiers.add(rolloverModifier)\n }\n\n return dataSeries\n })\n\n // Stacked collections 추가\n if (stacked) {\n const stackedColumnCollection = new StackedColumnCollection(wasmContext)\n const stackedMountainCollection = new StackedMountainCollection(wasmContext)\n\n sciChartSurface.renderableSeries.asArray().forEach((series: any) => {\n if (series instanceof StackedColumnRenderableSeries) {\n stackedColumnCollection.add(series)\n } else if (series instanceof StackedMountainRenderableSeries) {\n stackedMountainCollection.add(series)\n }\n })\n\n if (stackedColumnCollection.size() > 0) {\n sciChartSurface.renderableSeries.add(stackedColumnCollection)\n }\n\n if (stackedMountainCollection.size() > 0) {\n sciChartSurface.renderableSeries.add(stackedMountainCollection)\n }\n }\n\n // 줌인/줌아웃 모디파이어 추가\n sciChartSurface.chartModifiers.add(\n new RubberBandXyZoomModifier(),\n // new ZoomPanModifier({ xyDirection: EXyDirection.XDirection }),\n new MouseWheelZoomModifier({ xyDirection: EXyDirection.XDirection }),\n new ZoomExtentsModifier()\n )\n\n if (legend?.display) {\n const legendModifier = new LegendModifier({\n showCheckboxes: true,\n showSeriesMarkers: true,\n showLegend: true,\n placement:\n legend.position == 'top'\n ? ELegendPlacement.TopLeft\n : legend.position == 'left'\n ? ELegendPlacement.BottomLeft\n : legend.position == 'bottom'\n ? ELegendPlacement.BottomRight\n : ELegendPlacement.TopRight\n })\n\n sciChartSurface.chartModifiers.add(legendModifier)\n }\n\n return { chart, dataSeries: dataSeriesArray }\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1,3 +1 @@
1
- export { default as Scichart } from './scichart';
2
- export { default as ScichartCandleStick } from './scichart-candle-stick';
3
1
  export { default as scichartTimeseries } from './scichart-timeseries';
package/dist/index.js CHANGED
@@ -1,4 +1,2 @@
1
- export { default as Scichart } from './scichart';
2
- export { default as ScichartCandleStick } from './scichart-candle-stick';
3
1
  export { default as scichartTimeseries } from './scichart-timeseries';
4
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA","sourcesContent":["export { default as Scichart } from './scichart'\nexport { default as ScichartCandleStick } from './scichart-candle-stick'\nexport { default as scichartTimeseries } from './scichart-timeseries'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA","sourcesContent":["export { default as scichartTimeseries } from './scichart-timeseries'\n"]}
@@ -9,6 +9,57 @@ declare const _default: {
9
9
  top: number;
10
10
  width: number;
11
11
  height: number;
12
+ data: {
13
+ timestamp: number;
14
+ count: number;
15
+ average: number;
16
+ }[];
17
+ chart: {
18
+ type: string;
19
+ data: {
20
+ datasets: ({
21
+ dataKey: string;
22
+ label: string;
23
+ type: string;
24
+ color: string;
25
+ borderWidth: number;
26
+ fill?: undefined;
27
+ lineTension?: undefined;
28
+ pointStyle?: undefined;
29
+ pointRadius?: undefined;
30
+ } | {
31
+ dataKey: string;
32
+ label: string;
33
+ type: string;
34
+ color: string;
35
+ fill: boolean;
36
+ lineTension: number;
37
+ pointStyle: string;
38
+ pointRadius: number;
39
+ borderWidth?: undefined;
40
+ })[];
41
+ labelDataKey: string;
42
+ };
43
+ options: {
44
+ scales: {
45
+ xAxes: {
46
+ axisTitle: string;
47
+ ticks: {
48
+ beginAtZero: boolean;
49
+ };
50
+ }[];
51
+ yAxes: {
52
+ axisTitle: string;
53
+ ticks: {
54
+ beginAtZero: boolean;
55
+ };
56
+ }[];
57
+ };
58
+ legend: {
59
+ display: boolean;
60
+ };
61
+ };
62
+ };
12
63
  };
13
64
  }[];
14
65
  export default _default;
@@ -1,5 +1,3 @@
1
- import scichart from './scichart';
2
1
  import scichartTimeseries from './scichart-timeseries';
3
- import scichartCandleStick from './scichart-candle-stick';
4
- export default [scichart, scichartCandleStick, scichartTimeseries];
2
+ export default [scichartTimeseries];
5
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,kBAAkB,MAAM,uBAAuB,CAAA;AACtD,OAAO,mBAAmB,MAAM,yBAAyB,CAAA;AAEzD,eAAe,CAAC,QAAQ,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAAA","sourcesContent":["import scichart from './scichart'\nimport scichartTimeseries from './scichart-timeseries'\nimport scichartCandleStick from './scichart-candle-stick'\n\nexport default [scichart, scichartCandleStick, scichartTimeseries]\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,uBAAuB,CAAA;AAEtD,eAAe,CAAC,kBAAkB,CAAC,CAAA","sourcesContent":["import scichartTimeseries from './scichart-timeseries'\n\nexport default [scichartTimeseries]\n"]}
Binary file
@@ -6,24 +6,14 @@
6
6
  "auditLog": "logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json",
7
7
  "files": [
8
8
  {
9
- "date": 1720019046863,
10
- "name": "logs/application-2024-07-04-00.log",
11
- "hash": "abf38c1ec5dbc77e46869d8a542b2b7b340cba39462f869e12b424f3fb200647"
9
+ "date": 1720446545556,
10
+ "name": "logs/application-2024-07-08-22.log",
11
+ "hash": "7fcc686ecc569ede502789c107abe94478fe09d4ecb48190c17a4f853cc2b16e"
12
12
  },
13
13
  {
14
- "date": 1720064265574,
15
- "name": "logs/application-2024-07-04-12.log",
16
- "hash": "615105dbfe7f4edd5896e1976325da158a6a3a8eafde73a53eecbe510d558bb4"
17
- },
18
- {
19
- "date": 1720068899268,
20
- "name": "logs/application-2024-07-04-13.log",
21
- "hash": "56c53b66da6826b2802e6d130e13ff8c5aba4dcbc606bc2579bf476d3bf85cef"
22
- },
23
- {
24
- "date": 1720069494553,
25
- "name": "logs/application-2024-07-04-14.log",
26
- "hash": "231a379961eded465112601d9d66cdf5ca21ff543f78bf46021cf435af751603"
14
+ "date": 1720447467137,
15
+ "name": "logs/application-2024-07-08-23.log",
16
+ "hash": "985c4351af94b888a6eab9b1da33b24ff2fb9ddddbb8d199b9ac3e5d3c7e9424"
27
17
  }
28
18
  ],
29
19
  "hashType": "sha256"
@@ -6,24 +6,14 @@
6
6
  "auditLog": "logs/.5e5d741d8b7784a2fbad65eedc0fd46946aaf6f2-audit.json",
7
7
  "files": [
8
8
  {
9
- "date": 1720019049115,
10
- "name": "logs/connections-2024-07-04-00.log",
11
- "hash": "c46780f340159c28f64f7a4d480c2a362db35724f0075f5013211c1648eabad6"
9
+ "date": 1720446547486,
10
+ "name": "logs/connections-2024-07-08-22.log",
11
+ "hash": "8439fe85300e54e43d01f6b2619ee5a17a82873270943b5525e630655001f9f7"
12
12
  },
13
13
  {
14
- "date": 1720064267695,
15
- "name": "logs/connections-2024-07-04-12.log",
16
- "hash": "2e53c9202df6c5cbc3416123a7a6538671074be9e82c145259199f70f7659b06"
17
- },
18
- {
19
- "date": 1720068901359,
20
- "name": "logs/connections-2024-07-04-13.log",
21
- "hash": "49e55f96a02d9d4496cc25d139f8c0d70658df82d3b45e97c9dd227fc9db9bbc"
22
- },
23
- {
24
- "date": 1720069496492,
25
- "name": "logs/connections-2024-07-04-14.log",
26
- "hash": "430158e5053a2c5869cb92b8d1788fe1e3f2f4f4670cbb22c2536976734acf4e"
14
+ "date": 1720447469016,
15
+ "name": "logs/connections-2024-07-08-23.log",
16
+ "hash": "e4fe93e478639b437c486609da51f524b2ee8459e461302bcc9ba12c6f44efa9"
27
17
  }
28
18
  ],
29
19
  "hashType": "sha256"
@@ -1,5 +1,5 @@
1
- 2024-07-04T13:55:00+09:00 info: File Storage is Ready.
2
- 2024-07-04T13:55:01+09:00 error: Error: Cannot find module 'oracledb'
1
+ 2024-07-08T22:49:06+09:00 info: File Storage is Ready.
2
+ 2024-07-08T22:49:07+09:00 error: Error: Cannot find module 'oracledb'
3
3
  Require stack:
4
4
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/connector/oracle-connector.js
5
5
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/connector/index.js
@@ -25,7 +25,7 @@ Require stack:
25
25
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
26
26
  at Module.load (node:internal/modules/cjs/loader:1208:32)
27
27
  at Module._load (node:internal/modules/cjs/loader:1024:12)
28
- 2024-07-04T13:55:01+09:00 error: Error: Cannot find module 'oracledb'
28
+ 2024-07-08T22:49:07+09:00 error: Error: Cannot find module 'oracledb'
29
29
  Require stack:
30
30
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/task/oracle-procedure.js
31
31
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/task/index.js
@@ -51,7 +51,7 @@ Require stack:
51
51
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
52
52
  at Module.load (node:internal/modules/cjs/loader:1208:32)
53
53
  at Module._load (node:internal/modules/cjs/loader:1024:12)
54
- 2024-07-04T13:55:01+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
54
+ 2024-07-08T22:49:08+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
55
55
  Require stack:
56
56
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/print.js
57
57
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/index.js
@@ -76,7 +76,7 @@ Require stack:
76
76
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
77
77
  at Module.load (node:internal/modules/cjs/loader:1208:32)
78
78
  at Module._load (node:internal/modules/cjs/loader:1024:12)
79
- 2024-07-04T13:55:02+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
79
+ 2024-07-08T22:49:08+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
80
80
  Require stack:
81
81
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/middlewares/index.js
82
82
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/index.js
@@ -100,6 +100,6 @@ Require stack:
100
100
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
101
101
  at Module.load (node:internal/modules/cjs/loader:1208:32)
102
102
  at Module._load (node:internal/modules/cjs/loader:1024:12)
103
- 2024-07-04T13:55:03+09:00 info: Default DataSource established
104
- 2024-07-04T13:55:04+09:00 info: 🚀 Server ready at http://0.0.0.0:3000/graphql
105
- 2024-07-04T13:55:04+09:00 info: 🚀 Subscriptions ready at ws://0.0.0.0:3000/graphql
103
+ 2024-07-08T22:49:08+09:00 info: Default DataSource established
104
+ 2024-07-08T22:49:10+09:00 info: 🚀 Server ready at http://0.0.0.0:3000/graphql
105
+ 2024-07-08T22:49:10+09:00 info: 🚀 Subscriptions ready at ws://0.0.0.0:3000/graphql
@@ -1,5 +1,5 @@
1
- 2024-07-04T00:04:08+09:00 info: File Storage is Ready.
2
- 2024-07-04T00:04:09+09:00 error: Error: Cannot find module 'oracledb'
1
+ 2024-07-08T23:04:28+09:00 info: File Storage is Ready.
2
+ 2024-07-08T23:04:29+09:00 error: Error: Cannot find module 'oracledb'
3
3
  Require stack:
4
4
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/connector/oracle-connector.js
5
5
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/connector/index.js
@@ -25,7 +25,7 @@ Require stack:
25
25
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
26
26
  at Module.load (node:internal/modules/cjs/loader:1208:32)
27
27
  at Module._load (node:internal/modules/cjs/loader:1024:12)
28
- 2024-07-04T00:04:09+09:00 error: Error: Cannot find module 'oracledb'
28
+ 2024-07-08T23:04:29+09:00 error: Error: Cannot find module 'oracledb'
29
29
  Require stack:
30
30
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/task/oracle-procedure.js
31
31
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/task/index.js
@@ -51,7 +51,7 @@ Require stack:
51
51
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
52
52
  at Module.load (node:internal/modules/cjs/loader:1208:32)
53
53
  at Module._load (node:internal/modules/cjs/loader:1024:12)
54
- 2024-07-04T00:04:09+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
54
+ 2024-07-08T23:04:29+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
55
55
  Require stack:
56
56
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/print.js
57
57
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/index.js
@@ -76,7 +76,7 @@ Require stack:
76
76
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
77
77
  at Module.load (node:internal/modules/cjs/loader:1208:32)
78
78
  at Module._load (node:internal/modules/cjs/loader:1024:12)
79
- 2024-07-04T00:04:09+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
79
+ 2024-07-08T23:04:29+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
80
80
  Require stack:
81
81
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/middlewares/index.js
82
82
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/index.js
@@ -100,11 +100,11 @@ Require stack:
100
100
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
101
101
  at Module.load (node:internal/modules/cjs/loader:1208:32)
102
102
  at Module._load (node:internal/modules/cjs/loader:1024:12)
103
- 2024-07-04T00:04:10+09:00 info: Default DataSource established
104
- 2024-07-04T00:04:11+09:00 info: 🚀 Server ready at http://0.0.0.0:3000/graphql
105
- 2024-07-04T00:04:11+09:00 info: 🚀 Subscriptions ready at ws://0.0.0.0:3000/graphql
106
- 2024-07-04T00:05:08+09:00 info: File Storage is Ready.
107
- 2024-07-04T00:05:08+09:00 error: Error: Cannot find module 'oracledb'
103
+ 2024-07-08T23:04:30+09:00 info: Default DataSource established
104
+ 2024-07-08T23:04:31+09:00 info: 🚀 Server ready at http://0.0.0.0:3000/graphql
105
+ 2024-07-08T23:04:31+09:00 info: 🚀 Subscriptions ready at ws://0.0.0.0:3000/graphql
106
+ 2024-07-08T23:05:23+09:00 info: File Storage is Ready.
107
+ 2024-07-08T23:05:23+09:00 error: Error: Cannot find module 'oracledb'
108
108
  Require stack:
109
109
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/connector/oracle-connector.js
110
110
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/connector/index.js
@@ -129,7 +129,7 @@ Require stack:
129
129
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
130
130
  at Module.load (node:internal/modules/cjs/loader:1208:32)
131
131
  at Module._load (node:internal/modules/cjs/loader:1024:12)
132
- 2024-07-04T00:05:09+09:00 error: Error: Cannot find module 'oracledb'
132
+ 2024-07-08T23:05:24+09:00 error: Error: Cannot find module 'oracledb'
133
133
  Require stack:
134
134
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/task/oracle-procedure.js
135
135
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/task/index.js
@@ -154,7 +154,7 @@ Require stack:
154
154
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
155
155
  at Module.load (node:internal/modules/cjs/loader:1208:32)
156
156
  at Module._load (node:internal/modules/cjs/loader:1024:12)
157
- 2024-07-04T00:05:09+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
157
+ 2024-07-08T23:05:24+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
158
158
  Require stack:
159
159
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/print.js
160
160
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/index.js
@@ -178,7 +178,7 @@ Require stack:
178
178
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
179
179
  at Module.load (node:internal/modules/cjs/loader:1208:32)
180
180
  at Module._load (node:internal/modules/cjs/loader:1024:12)
181
- 2024-07-04T00:05:09+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
181
+ 2024-07-08T23:05:24+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
182
182
  Require stack:
183
183
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/middlewares/index.js
184
184
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/index.js
@@ -201,8 +201,8 @@ Require stack:
201
201
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
202
202
  at Module.load (node:internal/modules/cjs/loader:1208:32)
203
203
  at Module._load (node:internal/modules/cjs/loader:1024:12)
204
- 2024-07-04T00:05:14+09:00 info: File Storage is Ready.
205
- 2024-07-04T00:05:15+09:00 error: Error: Cannot find module 'oracledb'
204
+ 2024-07-08T23:05:30+09:00 info: File Storage is Ready.
205
+ 2024-07-08T23:05:31+09:00 error: Error: Cannot find module 'oracledb'
206
206
  Require stack:
207
207
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/connector/oracle-connector.js
208
208
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/connector/index.js
@@ -228,7 +228,7 @@ Require stack:
228
228
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
229
229
  at Module.load (node:internal/modules/cjs/loader:1208:32)
230
230
  at Module._load (node:internal/modules/cjs/loader:1024:12)
231
- 2024-07-04T00:05:15+09:00 error: Error: Cannot find module 'oracledb'
231
+ 2024-07-08T23:05:31+09:00 error: Error: Cannot find module 'oracledb'
232
232
  Require stack:
233
233
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/task/oracle-procedure.js
234
234
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/task/index.js
@@ -254,7 +254,7 @@ Require stack:
254
254
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
255
255
  at Module.load (node:internal/modules/cjs/loader:1208:32)
256
256
  at Module._load (node:internal/modules/cjs/loader:1024:12)
257
- 2024-07-04T00:05:15+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
257
+ 2024-07-08T23:05:31+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
258
258
  Require stack:
259
259
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/print.js
260
260
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/index.js
@@ -279,7 +279,7 @@ Require stack:
279
279
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
280
280
  at Module.load (node:internal/modules/cjs/loader:1208:32)
281
281
  at Module._load (node:internal/modules/cjs/loader:1024:12)
282
- 2024-07-04T00:05:15+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
282
+ 2024-07-08T23:05:31+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
283
283
  Require stack:
284
284
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/middlewares/index.js
285
285
  - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/index.js
@@ -303,7 +303,21 @@ Require stack:
303
303
  at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
304
304
  at Module.load (node:internal/modules/cjs/loader:1208:32)
305
305
  at Module._load (node:internal/modules/cjs/loader:1024:12)
306
- 2024-07-04T00:05:16+09:00 info: Default DataSource established
307
- 2024-07-04T00:05:16+09:00 info: 🚀 Server ready at http://0.0.0.0:3000/graphql
308
- 2024-07-04T00:05:16+09:00 info: 🚀 Subscriptions ready at ws://0.0.0.0:3000/graphql
309
- 2024-07-04T00:06:02+09:00 error: 시나리오 '메인 집진기 센싱 데이터 조회 - 실시간' 요청을 처리하는 중 오류가 발생했습니다. 관리자에게 문의하십시오.
306
+ 2024-07-08T23:05:32+09:00 info: Default DataSource established
307
+ 2024-07-08T23:05:33+09:00 info: 🚀 Server ready at http://0.0.0.0:3000/graphql
308
+ 2024-07-08T23:05:33+09:00 info: 🚀 Subscriptions ready at ws://0.0.0.0:3000/graphql
309
+ 2024-07-08T23:08:44+09:00 error: role name is duplicated
310
+ 2024-07-08T23:28:07+09:00 error: NotFoundError: thumbnail not found
311
+ at Object.throw (/Users/super/Documents/GitHub/operato-scene/node_modules/koa/lib/context.js:97:11)
312
+ at /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/routers/standalone-board-service-router.js:165:22
313
+ at async /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/auth-base/dist-server/routes.js:54:9
314
+ at async /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/auth-base/dist-server/router/path-base-domain-router.js:9:5
315
+ at async domainAuthenticateMiddleware (/Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/auth-base/dist-server/middlewares/domain-authenticate-middleware.js:54:16)
316
+ at async /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/auth-base/dist-server/middlewares/jwt-authenticate-middleware.js:71:17
317
+ 2024-07-08T23:28:07+09:00 error: NotFoundError: thumbnail not found
318
+ at Object.throw (/Users/super/Documents/GitHub/operato-scene/node_modules/koa/lib/context.js:97:11)
319
+ at /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/routers/standalone-board-service-router.js:165:22
320
+ at async /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/auth-base/dist-server/routes.js:54:9
321
+ at async /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/auth-base/dist-server/router/path-base-domain-router.js:9:5
322
+ at async domainAuthenticateMiddleware (/Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/auth-base/dist-server/middlewares/domain-authenticate-middleware.js:54:16)
323
+ at async /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/auth-base/dist-server/middlewares/jwt-authenticate-middleware.js:71:17