@oanda/labs-crowd-view-widget 1.0.35 → 1.0.37

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 (33) hide show
  1. package/CHANGELOG.md +300 -0
  2. package/dist/main/CrowdViewWidget/components/Chart/Chart.js +38 -74
  3. package/dist/main/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  4. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js +3 -18
  5. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  6. package/dist/main/CrowdViewWidget/components/Chart/getOption.js +29 -53
  7. package/dist/main/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
  8. package/dist/main/CrowdViewWidget/components/Chart/getOrderPositionDataMock.js +47 -0
  9. package/dist/main/CrowdViewWidget/components/Chart/getOrderPositionDataMock.js.map +1 -0
  10. package/dist/main/CrowdViewWidget/components/Chart/types.js.map +1 -1
  11. package/dist/main/CrowdViewWidget/components/Chart/utils.js +24 -22
  12. package/dist/main/CrowdViewWidget/components/Chart/utils.js.map +1 -1
  13. package/dist/module/CrowdViewWidget/components/Chart/Chart.js +39 -76
  14. package/dist/module/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  15. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js +3 -18
  16. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  17. package/dist/module/CrowdViewWidget/components/Chart/getOption.js +29 -52
  18. package/dist/module/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
  19. package/dist/module/CrowdViewWidget/components/Chart/getOrderPositionDataMock.js +40 -0
  20. package/dist/module/CrowdViewWidget/components/Chart/getOrderPositionDataMock.js.map +1 -0
  21. package/dist/module/CrowdViewWidget/components/Chart/types.js.map +1 -1
  22. package/dist/module/CrowdViewWidget/components/Chart/utils.js +24 -22
  23. package/dist/module/CrowdViewWidget/components/Chart/utils.js.map +1 -1
  24. package/dist/types/CrowdViewWidget/components/Chart/getOption.d.ts +1 -114
  25. package/dist/types/CrowdViewWidget/components/Chart/getOrderPositionDataMock.d.ts +14 -0
  26. package/dist/types/CrowdViewWidget/components/Chart/types.d.ts +1 -6
  27. package/package.json +3 -3
  28. package/src/CrowdViewWidget/components/Chart/Chart.tsx +32 -90
  29. package/src/CrowdViewWidget/components/Chart/ChartWithData.tsx +5 -22
  30. package/src/CrowdViewWidget/components/Chart/getOption.ts +45 -70
  31. package/src/CrowdViewWidget/components/Chart/getOrderPositionDataMock.ts +66 -0
  32. package/src/CrowdViewWidget/components/Chart/types.ts +4 -6
  33. package/src/CrowdViewWidget/components/Chart/utils.ts +23 -20
package/CHANGELOG.md CHANGED
@@ -3,6 +3,306 @@
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
+ ## 1.0.37 (2025-09-02)
7
+
8
+
9
+
10
+ ## 1.0.218 (2025-09-01)
11
+
12
+
13
+
14
+ ## 1.0.217 (2025-08-25)
15
+
16
+
17
+
18
+ ## 1.0.216 (2025-08-18)
19
+
20
+
21
+
22
+ ## 1.0.215 (2025-08-18)
23
+
24
+
25
+
26
+ ## 1.0.214 (2025-08-14)
27
+
28
+
29
+
30
+ ## 1.0.213 (2025-08-12)
31
+
32
+
33
+
34
+ ## 1.0.212 (2025-08-05)
35
+
36
+
37
+
38
+ ## 1.0.211 (2025-08-05)
39
+
40
+
41
+
42
+ ## 1.0.210 (2025-07-31)
43
+
44
+
45
+
46
+ ## 1.0.209 (2025-07-31)
47
+
48
+
49
+
50
+ ## 1.0.208 (2025-07-24)
51
+
52
+
53
+
54
+ ## 1.0.207 (2025-07-18)
55
+
56
+
57
+
58
+ ## 1.0.206 (2025-07-18)
59
+
60
+
61
+
62
+ ## 1.0.205 (2025-07-17)
63
+
64
+
65
+
66
+ ## 1.0.204 (2025-07-09)
67
+
68
+
69
+
70
+ ## 1.0.203 (2025-06-16)
71
+
72
+
73
+
74
+ ## 1.0.202 (2025-06-04)
75
+
76
+
77
+
78
+ ## 1.0.201 (2025-06-02)
79
+
80
+
81
+
82
+ ## 1.0.200 (2025-05-30)
83
+
84
+
85
+
86
+ ## 1.0.199 (2025-05-29)
87
+
88
+
89
+
90
+ ## 1.0.198 (2025-05-26)
91
+
92
+
93
+
94
+ ## 1.0.197 (2025-05-23)
95
+
96
+
97
+
98
+ ## 1.0.196 (2025-05-22)
99
+
100
+
101
+
102
+ ## 1.0.195 (2025-05-21)
103
+
104
+
105
+
106
+ ## 1.0.194 (2025-05-21)
107
+
108
+
109
+
110
+ ## 1.0.193 (2025-05-15)
111
+
112
+
113
+
114
+ ## 1.0.192 (2025-05-14)
115
+
116
+
117
+
118
+ ## 1.0.191 (2025-04-30)
119
+
120
+
121
+
122
+ ## 1.0.190 (2025-04-28)
123
+
124
+
125
+
126
+ ## 1.0.189 (2025-04-23)
127
+
128
+
129
+
130
+ ## 1.0.188 (2025-04-22)
131
+
132
+
133
+
134
+ ## 1.0.187 (2025-04-18)
135
+
136
+
137
+
138
+ ## 1.0.186 (2025-04-10)
139
+
140
+
141
+
142
+ ## 1.0.185 (2025-04-09)
143
+
144
+
145
+
146
+ ## 1.0.184 (2025-04-08)
147
+
148
+
149
+
150
+ ## 1.0.183 (2025-04-04)
151
+
152
+ **Note:** Version bump only for package @oanda/labs-crowd-view-widget
153
+
154
+
155
+
156
+
157
+
158
+ ## 1.0.36 (2025-09-01)
159
+
160
+
161
+
162
+ ## 1.0.217 (2025-08-25)
163
+
164
+
165
+
166
+ ## 1.0.216 (2025-08-18)
167
+
168
+
169
+
170
+ ## 1.0.215 (2025-08-18)
171
+
172
+
173
+
174
+ ## 1.0.214 (2025-08-14)
175
+
176
+
177
+
178
+ ## 1.0.213 (2025-08-12)
179
+
180
+
181
+
182
+ ## 1.0.212 (2025-08-05)
183
+
184
+
185
+
186
+ ## 1.0.211 (2025-08-05)
187
+
188
+
189
+
190
+ ## 1.0.210 (2025-07-31)
191
+
192
+
193
+
194
+ ## 1.0.209 (2025-07-31)
195
+
196
+
197
+
198
+ ## 1.0.208 (2025-07-24)
199
+
200
+
201
+
202
+ ## 1.0.207 (2025-07-18)
203
+
204
+
205
+
206
+ ## 1.0.206 (2025-07-18)
207
+
208
+
209
+
210
+ ## 1.0.205 (2025-07-17)
211
+
212
+
213
+
214
+ ## 1.0.204 (2025-07-09)
215
+
216
+
217
+
218
+ ## 1.0.203 (2025-06-16)
219
+
220
+
221
+
222
+ ## 1.0.202 (2025-06-04)
223
+
224
+
225
+
226
+ ## 1.0.201 (2025-06-02)
227
+
228
+
229
+
230
+ ## 1.0.200 (2025-05-30)
231
+
232
+
233
+
234
+ ## 1.0.199 (2025-05-29)
235
+
236
+
237
+
238
+ ## 1.0.198 (2025-05-26)
239
+
240
+
241
+
242
+ ## 1.0.197 (2025-05-23)
243
+
244
+
245
+
246
+ ## 1.0.196 (2025-05-22)
247
+
248
+
249
+
250
+ ## 1.0.195 (2025-05-21)
251
+
252
+
253
+
254
+ ## 1.0.194 (2025-05-21)
255
+
256
+
257
+
258
+ ## 1.0.193 (2025-05-15)
259
+
260
+
261
+
262
+ ## 1.0.192 (2025-05-14)
263
+
264
+
265
+
266
+ ## 1.0.191 (2025-04-30)
267
+
268
+
269
+
270
+ ## 1.0.190 (2025-04-28)
271
+
272
+
273
+
274
+ ## 1.0.189 (2025-04-23)
275
+
276
+
277
+
278
+ ## 1.0.188 (2025-04-22)
279
+
280
+
281
+
282
+ ## 1.0.187 (2025-04-18)
283
+
284
+
285
+
286
+ ## 1.0.186 (2025-04-10)
287
+
288
+
289
+
290
+ ## 1.0.185 (2025-04-09)
291
+
292
+
293
+
294
+ ## 1.0.184 (2025-04-08)
295
+
296
+
297
+
298
+ ## 1.0.183 (2025-04-04)
299
+
300
+ **Note:** Version bump only for package @oanda/labs-crowd-view-widget
301
+
302
+
303
+
304
+
305
+
6
306
  ## 1.0.35 (2025-08-25)
7
307
 
8
308
 
@@ -9,10 +9,11 @@ var _charts = require("echarts/charts");
9
9
  var _components = require("echarts/components");
10
10
  var echarts = _interopRequireWildcard(require("echarts/core"));
11
11
  var _renderers = require("echarts/renderers");
12
- var _react = _interopRequireWildcard(require("react"));
12
+ var _react = _interopRequireDefault(require("react"));
13
13
  var _constants = require("./constants");
14
14
  var _getOption = require("./getOption");
15
15
  var _utils = require("./utils");
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
18
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
19
  echarts.use([_components.GridSimpleComponent, _components.GraphicComponent, _charts.BarChart, _renderers.CanvasRenderer, _components.DataZoomInsideComponent, _charts.CustomChart, _components.TooltipComponent, _charts.CandlestickChart, _components.MarkPointComponent]);
@@ -25,86 +26,49 @@ const Chart = _ref => {
25
26
  const {
26
27
  isDark
27
28
  } = (0, _labsWidgetCommon.useLayoutProvider)();
28
- const echartRef = (0, _react.useRef)(null);
29
- (0, _react.useEffect)(() => {
30
- if (echartRef.current) {
31
- const echartInstance = echartRef.current.getEchartsInstance();
32
- echartInstance.setOption((0, _getOption.getDesktopOption)({
33
- isDark
34
- }));
35
- echartInstance.off('datazoom');
36
- echartInstance.on('datazoom', () => {
29
+ return _react.default.createElement(_labsWidgetCommon.BaseChart, {
30
+ chartHeight: _constants.CHART_HEIGHT,
31
+ echarts: echarts,
32
+ isDark: isDark,
33
+ lazyUpdate: true,
34
+ option: (0, _getOption.getOption)(data, isDark),
35
+ onEvents: {
36
+ datazoom: (_params, instance) => {
37
37
  const {
38
- dataZoom,
39
- title: {
40
- text
41
- }
42
- } = echartInstance.getOption();
38
+ dataZoom
39
+ } = instance.getOption();
43
40
  const {
44
- start,
45
- end
41
+ startValue,
42
+ endValue
46
43
  } = dataZoom[0];
47
- const prevInterval = Number(text.split(',')[0]);
48
- const prevIsGreaterThanTwoWeeks = Boolean(Number(text.split(',')[1]));
49
- const visibleItemsCount = Math.round(data.xAxisData.length * (end - start) / 100);
50
- const interval = visibleItemsCount > _constants.MAX_LABELS_COUNT ? Math.floor(visibleItemsCount / _constants.MAX_LABELS_COUNT) : 0;
51
- if (interval !== prevInterval) {
52
- echartInstance.setOption({
53
- xAxis: {
54
- axisLabel: {
55
- interval
44
+ const isGreaterThanTwoWeeks = (0, _utils.isDifferenceGreaterThanTwoWeeks)(data.xAxisData[startValue], data.xAxisData[endValue]);
45
+ const labelsData = (0, _utils.getLabelData)({
46
+ xAxisData: data.xAxisData,
47
+ isGreaterThanTwoWeeks
48
+ });
49
+ instance.setOption({
50
+ xAxis: {
51
+ axisLabel: {
52
+ formatter: value => {
53
+ const date = new Date(value);
54
+ return isGreaterThanTwoWeeks ? `${date.toLocaleTimeString(undefined, {
55
+ hour: '2-digit',
56
+ minute: '2-digit'
57
+ })}` : `${date.toLocaleDateString(undefined, {
58
+ day: 'numeric'
59
+ })}`;
56
60
  }
57
61
  }
58
- });
59
- }
60
- const visibleXAxisData = data.xAxisData.slice(data.xAxisData.length * start / 100, data.xAxisData.length * end / 100);
61
- const isGreaterThanTwoWeeks = (0, _utils.isDifferenceGreaterThanTwoWeeks)(visibleXAxisData[0], visibleXAxisData[visibleXAxisData.length - 1]);
62
- if (isGreaterThanTwoWeeks !== prevIsGreaterThanTwoWeeks) {
63
- const labelsData = (0, _utils.getLabelData)({
64
- xAxisData: data.xAxisData,
65
- isGreaterThanTwoWeeks
66
- });
67
- echartInstance.setOption({
68
- series: [{
69
- id: 'candlestick',
70
- markPoint: {
71
- data: labelsData
72
- }
73
- }]
74
- });
75
- echartInstance.setOption({
76
- xAxis: {
77
- axisLabel: {
78
- formatter: value => {
79
- const date = new Date(value);
80
- return isGreaterThanTwoWeeks ? `${date.toLocaleTimeString(undefined, {
81
- hour: '2-digit',
82
- minute: '2-digit'
83
- })}` : `${date.toLocaleDateString(undefined, {
84
- day: 'numeric'
85
- })}`;
86
- }
87
- }
62
+ },
63
+ series: [{
64
+ id: 'candlestick',
65
+ markPoint: {
66
+ data: labelsData
88
67
  }
89
- });
90
- }
91
- if (interval !== prevInterval || isGreaterThanTwoWeeks !== prevIsGreaterThanTwoWeeks) {
92
- echartInstance.setOption({
93
- title: {
94
- text: `${interval},${isGreaterThanTwoWeeks ? 1 : 0}`
95
- }
96
- });
97
- }
98
- });
68
+ }]
69
+ });
70
+ }
99
71
  }
100
- }, [echartRef, isDark, data]);
101
- return _react.default.createElement(_labsWidgetCommon.BaseChart, {
102
- ref: echartRef,
103
- chartHeight: _constants.CHART_HEIGHT,
104
- echarts: echarts,
105
- isDark: isDark,
106
- lazyUpdate: true,
107
- option: (0, _getOption.getOption)(data)
108
72
  });
109
73
  };
110
74
  exports.Chart = Chart;
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.js","names":["_labsWidgetCommon","require","_charts","_components","echarts","_interopRequireWildcard","_renderers","_react","_constants","_getOption","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","use","GridSimpleComponent","GraphicComponent","BarChart","CanvasRenderer","DataZoomInsideComponent","CustomChart","TooltipComponent","CandlestickChart","MarkPointComponent","registerTheme","getChartTheme","Theme","Dark","Light","Chart","_ref","data","isDark","useLayoutProvider","echartRef","useRef","useEffect","current","echartInstance","getEchartsInstance","setOption","getDesktopOption","off","on","dataZoom","title","text","getOption","start","end","prevInterval","Number","split","prevIsGreaterThanTwoWeeks","Boolean","visibleItemsCount","Math","round","xAxisData","length","interval","MAX_LABELS_COUNT","floor","xAxis","axisLabel","visibleXAxisData","slice","isGreaterThanTwoWeeks","isDifferenceGreaterThanTwoWeeks","labelsData","getLabelData","series","id","markPoint","formatter","value","date","Date","toLocaleTimeString","undefined","hour","minute","toLocaleDateString","day","createElement","BaseChart","ref","chartHeight","CHART_HEIGHT","lazyUpdate","option","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/Chart.tsx"],"sourcesContent":["import type { BaseChartRef } from '@oanda/labs-widget-common';\nimport {\n BaseChart,\n getChartTheme,\n Theme,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { BarChart, CandlestickChart, CustomChart } from 'echarts/charts';\nimport {\n DataZoomInsideComponent,\n GraphicComponent,\n GridSimpleComponent,\n MarkPointComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport React, { useEffect, useRef } from 'react';\n\nimport { CHART_HEIGHT, MAX_LABELS_COUNT } from './constants';\nimport { getDesktopOption, getOption } from './getOption';\nimport type { ChartProps } from './types';\nimport { getLabelData, isDifferenceGreaterThanTwoWeeks } from './utils';\n\necharts.use([\n GridSimpleComponent,\n GraphicComponent,\n BarChart,\n CanvasRenderer,\n DataZoomInsideComponent,\n CustomChart,\n TooltipComponent,\n CandlestickChart,\n MarkPointComponent,\n]);\n\necharts.registerTheme('dark_theme', getChartTheme(Theme.Dark));\necharts.registerTheme('light_theme', getChartTheme(Theme.Light));\n\nconst Chart = ({ data }: ChartProps) => {\n const { isDark } = useLayoutProvider();\n const echartRef = useRef<BaseChartRef | null>(null);\n\n useEffect(() => {\n if (echartRef.current) {\n const echartInstance = echartRef.current.getEchartsInstance();\n\n echartInstance.setOption(getDesktopOption({ isDark }));\n\n echartInstance.off('datazoom');\n echartInstance.on('datazoom', () => {\n const {\n dataZoom,\n // @ts-ignore\n title: { text },\n } = echartInstance.getOption();\n\n const { start, end } = (\n dataZoom as { start: number; end: number }[]\n )[0];\n const prevInterval = Number((text as string).split(',')[0]);\n const prevIsGreaterThanTwoWeeks = Boolean(\n Number((text as string).split(',')[1])\n );\n\n const visibleItemsCount = Math.round(\n (data.xAxisData.length * (end - start)) / 100\n );\n\n const interval =\n visibleItemsCount > MAX_LABELS_COUNT\n ? Math.floor(visibleItemsCount / MAX_LABELS_COUNT)\n : 0;\n\n if (interval !== prevInterval) {\n echartInstance.setOption({\n xAxis: {\n axisLabel: {\n interval,\n },\n },\n });\n }\n\n const visibleXAxisData = data.xAxisData.slice(\n (data.xAxisData.length * start) / 100,\n (data.xAxisData.length * end) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n if (isGreaterThanTwoWeeks !== prevIsGreaterThanTwoWeeks) {\n const labelsData = getLabelData({\n xAxisData: data.xAxisData,\n isGreaterThanTwoWeeks,\n });\n\n echartInstance.setOption({\n series: [\n {\n id: 'candlestick',\n markPoint: {\n data: labelsData,\n },\n },\n ],\n });\n\n echartInstance.setOption({\n xAxis: {\n axisLabel: {\n formatter: (value: string) => {\n const date = new Date(value);\n return isGreaterThanTwoWeeks\n ? `${date.toLocaleTimeString(undefined, {\n hour: '2-digit',\n minute: '2-digit',\n })}`\n : `${date.toLocaleDateString(undefined, {\n day: 'numeric',\n })}`;\n },\n },\n },\n });\n }\n\n if (\n interval !== prevInterval ||\n isGreaterThanTwoWeeks !== prevIsGreaterThanTwoWeeks\n ) {\n echartInstance.setOption({\n title: {\n text: `${interval},${isGreaterThanTwoWeeks ? 1 : 0}`,\n },\n });\n }\n });\n }\n }, [echartRef, isDark, data]);\n\n return (\n <BaseChart\n ref={echartRef}\n chartHeight={CHART_HEIGHT}\n echarts={echarts}\n isDark={isDark}\n lazyUpdate={true}\n option={getOption(data)}\n />\n );\n};\n\nexport { Chart };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Chart.js","names":["_labsWidgetCommon","require","_charts","_components","echarts","_interopRequireWildcard","_renderers","_react","_interopRequireDefault","_constants","_getOption","_utils","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","use","GridSimpleComponent","GraphicComponent","BarChart","CanvasRenderer","DataZoomInsideComponent","CustomChart","TooltipComponent","CandlestickChart","MarkPointComponent","registerTheme","getChartTheme","Theme","Dark","Light","Chart","_ref","data","isDark","useLayoutProvider","createElement","BaseChart","chartHeight","CHART_HEIGHT","lazyUpdate","option","getOption","onEvents","datazoom","_params","instance","dataZoom","startValue","endValue","isGreaterThanTwoWeeks","isDifferenceGreaterThanTwoWeeks","xAxisData","labelsData","getLabelData","setOption","xAxis","axisLabel","formatter","value","date","Date","toLocaleTimeString","undefined","hour","minute","toLocaleDateString","day","series","id","markPoint","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/Chart.tsx"],"sourcesContent":["import {\n BaseChart,\n getChartTheme,\n Theme,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport type { EChartsType } from 'echarts';\nimport { BarChart, CandlestickChart, CustomChart } from 'echarts/charts';\nimport {\n DataZoomInsideComponent,\n GraphicComponent,\n GridSimpleComponent,\n MarkPointComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport React from 'react';\n\nimport { CHART_HEIGHT } from './constants';\nimport { getOption } from './getOption';\nimport type { ChartProps } from './types';\nimport { getLabelData, isDifferenceGreaterThanTwoWeeks } from './utils';\n\necharts.use([\n GridSimpleComponent,\n GraphicComponent,\n BarChart,\n CanvasRenderer,\n DataZoomInsideComponent,\n CustomChart,\n TooltipComponent,\n CandlestickChart,\n MarkPointComponent,\n]);\n\necharts.registerTheme('dark_theme', getChartTheme(Theme.Dark));\necharts.registerTheme('light_theme', getChartTheme(Theme.Light));\n\nconst Chart = ({ data }: ChartProps) => {\n const { isDark } = useLayoutProvider();\n\n return (\n <BaseChart\n chartHeight={CHART_HEIGHT}\n echarts={echarts}\n isDark={isDark}\n lazyUpdate={true}\n option={getOption(data, isDark)}\n onEvents={{\n datazoom: (_params: unknown, instance: EChartsType) => {\n const { dataZoom } = instance.getOption();\n\n const { startValue, endValue } = (\n dataZoom as { startValue: number; endValue: number }[]\n )[0];\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n data.xAxisData[startValue],\n data.xAxisData[endValue]\n );\n\n const labelsData = getLabelData({\n xAxisData: data.xAxisData,\n isGreaterThanTwoWeeks,\n });\n\n instance.setOption({\n xAxis: {\n axisLabel: {\n formatter: (value: string) => {\n const date = new Date(value);\n return isGreaterThanTwoWeeks\n ? `${date.toLocaleTimeString(undefined, {\n hour: '2-digit',\n minute: '2-digit',\n })}`\n : `${date.toLocaleDateString(undefined, {\n day: 'numeric',\n })}`;\n },\n },\n },\n series: [\n {\n id: 'candlestick',\n markPoint: {\n data: labelsData,\n },\n },\n ],\n });\n },\n }}\n />\n );\n};\n\nexport { Chart };\n"],"mappings":"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","ignoreList":[]}
@@ -4,11 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ChartWithData = void 0;
7
- var _client = require("@apollo/client");
8
7
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
9
8
  var _classnames = _interopRequireDefault(require("classnames"));
10
9
  var _react = _interopRequireWildcard(require("react"));
11
- var _getOrderPositionBooks = require("../../../gql/getOrderPositionBooks");
12
10
  var _Chart = require("./Chart");
13
11
  var _utils = require("./utils");
14
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
@@ -24,26 +22,13 @@ const ChartWithData = _ref => {
24
22
  size
25
23
  } = (0, _labsWidgetCommon.useLayoutProvider)();
26
24
  const isDesktop = size === _labsWidgetCommon.Size.DESKTOP;
27
- const {
28
- loading,
29
- data,
30
- error
31
- } = (0, _client.useQuery)(_getOrderPositionBooks.getOrderPositionBooks, {
32
- variables: {
33
- instrument,
34
- bookType,
35
- recentHours: 1
36
- },
37
- fetchPolicy: 'network-only'
38
- });
39
- const isError = !!error;
25
+ const isError = false;
26
+ const loading = false;
40
27
  const transformedData = (0, _react.useMemo)(() => {
41
- if (!data) return undefined;
42
28
  return (0, _utils.transformDataForChart)({
43
- data,
44
29
  granularity
45
30
  });
46
- }, [data, granularity]);
31
+ }, [instrument, granularity, bookType]);
47
32
  return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement("div", {
48
33
  className: (0, _classnames.default)('lw-relative lw-w-full', {
49
34
  'lw-h-[450px]': isDesktop,
@@ -1 +1 @@
1
- {"version":3,"file":"ChartWithData.js","names":["_client","require","_labsWidgetCommon","_classnames","_interopRequireDefault","_react","_interopRequireWildcard","_getOrderPositionBooks","_Chart","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ChartWithData","_ref","instrument","bookType","granularity","size","useLayoutProvider","isDesktop","Size","DESKTOP","loading","data","error","useQuery","getOrderPositionBooks","variables","recentHours","fetchPolicy","isError","transformedData","useMemo","undefined","transformDataForChart","createElement","Fragment","className","classnames","ChartError","Spinner","SpinnerSize","lg","Chart","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/ChartWithData.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport type {\n GetOrderPositionBooksQuery,\n GetOrderPositionBooksQueryVariables,\n} from '@oanda/labs-order-book-widget/src/gql/types/graphql';\nimport {\n ChartError,\n Size,\n Spinner,\n SpinnerSize,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport classnames from 'classnames';\nimport React, { useMemo } from 'react';\n\nimport { getOrderPositionBooks } from '../../../gql/getOrderPositionBooks';\nimport { Chart } from './Chart';\nimport type { ChartWithDataProps } from './types';\nimport { transformDataForChart } from './utils';\n\nconst ChartWithData = ({\n instrument,\n bookType,\n granularity,\n}: ChartWithDataProps) => {\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n\n const { loading, data, error } = useQuery<\n GetOrderPositionBooksQuery,\n GetOrderPositionBooksQueryVariables\n >(getOrderPositionBooks, {\n variables: {\n instrument,\n bookType,\n recentHours: 1,\n },\n fetchPolicy: 'network-only',\n });\n\n const isError = !!error;\n\n const transformedData = useMemo(() => {\n if (!data) return undefined;\n return transformDataForChart({ data, granularity });\n }, [data, granularity]);\n\n return (\n <>\n <div\n className={classnames('lw-relative lw-w-full', {\n 'lw-h-[450px]': isDesktop,\n 'lw-h-[390px]': !isDesktop,\n })}\n >\n {isError && (\n <div\n className={classnames(\n 'lw-absolute lw-left-0 lw-top-0 lw-flex lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary',\n {\n 'lw-h-full': isDesktop,\n 'lw-h-[calc(100%-40px)]': !isDesktop,\n }\n )}\n >\n <ChartError />\n </div>\n )}\n {loading && (\n <div\n className={classnames(\n 'lw-absolute lw-left-0 lw-top-0 lw-flex lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary',\n {\n 'lw-h-full': isDesktop,\n 'lw-h-[calc(100%-40px)]': !isDesktop,\n }\n )}\n >\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {!isError && transformedData && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full\">\n <Chart data={transformedData} />\n </div>\n )}\n </div>\n </>\n );\n};\n\nexport { ChartWithData };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ChartWithData.js","names":["_labsWidgetCommon","require","_classnames","_interopRequireDefault","_react","_interopRequireWildcard","_Chart","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ChartWithData","_ref","instrument","bookType","granularity","size","useLayoutProvider","isDesktop","Size","DESKTOP","isError","loading","transformedData","useMemo","transformDataForChart","createElement","Fragment","className","classnames","ChartError","Spinner","SpinnerSize","lg","Chart","data","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/ChartWithData.tsx"],"sourcesContent":["import {\n ChartError,\n Size,\n Spinner,\n SpinnerSize,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport classnames from 'classnames';\nimport React, { useMemo } from 'react';\n\nimport { Chart } from './Chart';\nimport type { ChartWithDataProps } from './types';\nimport { transformDataForChart } from './utils';\n\nconst ChartWithData = ({\n instrument,\n bookType,\n granularity,\n}: ChartWithDataProps) => {\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n\n const isError = false;\n const loading = false;\n\n const transformedData = useMemo(() => {\n return transformDataForChart({ granularity });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [instrument, granularity, bookType]);\n\n return (\n <>\n <div\n className={classnames('lw-relative lw-w-full', {\n 'lw-h-[450px]': isDesktop,\n 'lw-h-[390px]': !isDesktop,\n })}\n >\n {isError && (\n <div\n className={classnames(\n 'lw-absolute lw-left-0 lw-top-0 lw-flex lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary',\n {\n 'lw-h-full': isDesktop,\n 'lw-h-[calc(100%-40px)]': !isDesktop,\n }\n )}\n >\n <ChartError />\n </div>\n )}\n {loading && (\n <div\n className={classnames(\n 'lw-absolute lw-left-0 lw-top-0 lw-flex lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary',\n {\n 'lw-h-full': isDesktop,\n 'lw-h-[calc(100%-40px)]': !isDesktop,\n }\n )}\n >\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {!isError && transformedData && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full\">\n <Chart data={transformedData} />\n </div>\n )}\n </div>\n </>\n );\n};\n\nexport { ChartWithData };\n"],"mappings":"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","ignoreList":[]}
@@ -3,76 +3,35 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getOption = exports.getDesktopOption = void 0;
6
+ exports.getOption = void 0;
7
7
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
8
  var echarts = _interopRequireWildcard(require("echarts/core"));
9
9
  var _constants = require("./constants");
10
10
  var _utils = require("./utils");
11
11
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
12
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
- const getDesktopOption = _ref => {
14
- let {
15
- isDark
16
- } = _ref;
17
- const desktopGridLines = (0, _labsWidgetCommon.getGridLines)({
18
- isDark,
19
- chartWidth: _constants.CHART_WIDTH,
20
- chartHeight: _constants.CHART_HEIGHT,
21
- xLabelsSize: _constants.X_LABEL_SIZE,
22
- yLabelSize: _constants.Y_LABEL_SIZE_DESKTOP,
23
- bottomLeftBox: false
24
- });
25
- return {
26
- yAxis: {
27
- nameTextStyle: {
28
- align: 'left',
29
- padding: [0, 0, 0, 8]
30
- },
31
- axisLabel: {
32
- margin: 8
33
- }
34
- },
35
- grid: [{
36
- name: 'main-grid',
37
- top: '0px',
38
- left: '0px',
39
- right: `${_constants.Y_LABEL_SIZE_DESKTOP}px`,
40
- bottom: `${_constants.X_LABEL_SIZE}px`
41
- }],
42
- graphic: [...desktopGridLines, {
43
- ...(0, _labsWidgetCommon.getLineCommons)(isDark),
44
- top: 0,
45
- right: 0,
46
- shape: {
47
- x1: 0,
48
- y1: 0,
49
- x2: 0,
50
- y2: 0
51
- }
52
- }]
53
- };
54
- };
55
- exports.getDesktopOption = getDesktopOption;
56
- const getOption = _ref2 => {
13
+ const getOption = (_ref, isDark) => {
57
14
  let {
58
15
  xAxisData,
59
16
  ordersPositionsChartData,
60
17
  ordersPositionsBucketWidth,
61
18
  candlesSeriesData
62
- } = _ref2;
19
+ } = _ref;
63
20
  const visibleXAxisData = xAxisData.slice(xAxisData.length * _constants.INITIAL_START_ZOOM / 100, xAxisData.length * _constants.INITIAL_END_ZOOM / 100);
64
21
  const isGreaterThanTwoWeeks = (0, _utils.isDifferenceGreaterThanTwoWeeks)(visibleXAxisData[0], visibleXAxisData[visibleXAxisData.length - 1]);
65
22
  const labelsData = (0, _utils.getLabelData)({
66
23
  xAxisData,
67
24
  isGreaterThanTwoWeeks
68
25
  });
69
- const visibleItemsCount = Math.round(xAxisData.length * (_constants.INITIAL_END_ZOOM - _constants.INITIAL_START_ZOOM) / 100);
70
- const initialInterval = visibleItemsCount > _constants.MAX_LABELS_COUNT ? Math.floor(visibleItemsCount / _constants.MAX_LABELS_COUNT) : 0;
26
+ const gridLines = (0, _labsWidgetCommon.getGridLines)({
27
+ isDark,
28
+ chartWidth: _constants.CHART_WIDTH,
29
+ chartHeight: _constants.CHART_HEIGHT,
30
+ xLabelsSize: _constants.X_LABEL_SIZE,
31
+ yLabelSize: _constants.Y_LABEL_SIZE_DESKTOP,
32
+ bottomLeftBox: false
33
+ });
71
34
  return {
72
- title: {
73
- show: false,
74
- text: `${initialInterval},${isGreaterThanTwoWeeks}`
75
- },
76
35
  animation: false,
77
36
  dataZoom: [{
78
37
  type: 'inside',
@@ -104,7 +63,6 @@ const getOption = _ref2 => {
104
63
  axisLabel: {
105
64
  padding: [8, 16, 8, 16],
106
65
  margin: 0,
107
- interval: initialInterval,
108
66
  formatter: value => {
109
67
  const date = new Date(value);
110
68
  return isGreaterThanTwoWeeks ? `${date.toLocaleTimeString(undefined, {
@@ -175,6 +133,24 @@ const getOption = _ref2 => {
175
133
  };
176
134
  },
177
135
  data: ordersPositionsChartData
136
+ }],
137
+ grid: [{
138
+ name: 'main-grid',
139
+ top: '0px',
140
+ left: '0px',
141
+ right: `${_constants.Y_LABEL_SIZE_DESKTOP}px`,
142
+ bottom: `${_constants.X_LABEL_SIZE}px`
143
+ }],
144
+ graphic: [...gridLines, {
145
+ ...(0, _labsWidgetCommon.getLineCommons)(isDark),
146
+ top: 0,
147
+ right: 0,
148
+ shape: {
149
+ x1: 0,
150
+ y1: 0,
151
+ x2: 0,
152
+ y2: 0
153
+ }
178
154
  }]
179
155
  };
180
156
  };