@oanda/labs-crowd-view-widget 1.0.36 → 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.
- package/CHANGELOG.md +152 -0
- package/dist/main/CrowdViewWidget/components/Chart/Chart.js +38 -74
- package/dist/main/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js +3 -18
- package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/getOption.js +29 -53
- package/dist/main/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/getOrderPositionDataMock.js +47 -0
- package/dist/main/CrowdViewWidget/components/Chart/getOrderPositionDataMock.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/types.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/utils.js +24 -22
- package/dist/main/CrowdViewWidget/components/Chart/utils.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/Chart.js +39 -76
- package/dist/module/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js +3 -18
- package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/getOption.js +29 -52
- package/dist/module/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/getOrderPositionDataMock.js +40 -0
- package/dist/module/CrowdViewWidget/components/Chart/getOrderPositionDataMock.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/types.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/utils.js +24 -22
- package/dist/module/CrowdViewWidget/components/Chart/utils.js.map +1 -1
- package/dist/types/CrowdViewWidget/components/Chart/getOption.d.ts +1 -114
- package/dist/types/CrowdViewWidget/components/Chart/getOrderPositionDataMock.d.ts +14 -0
- package/dist/types/CrowdViewWidget/components/Chart/types.d.ts +1 -6
- package/package.json +3 -3
- package/src/CrowdViewWidget/components/Chart/Chart.tsx +32 -90
- package/src/CrowdViewWidget/components/Chart/ChartWithData.tsx +5 -22
- package/src/CrowdViewWidget/components/Chart/getOption.ts +45 -70
- package/src/CrowdViewWidget/components/Chart/getOrderPositionDataMock.ts +66 -0
- package/src/CrowdViewWidget/components/Chart/types.ts +4 -6
- package/src/CrowdViewWidget/components/Chart/utils.ts +23 -20
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,158 @@
|
|
|
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
|
+
|
|
6
158
|
## 1.0.36 (2025-09-01)
|
|
7
159
|
|
|
8
160
|
|
|
@@ -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 =
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
40
|
-
text
|
|
41
|
-
}
|
|
42
|
-
} = echartInstance.getOption();
|
|
38
|
+
dataZoom
|
|
39
|
+
} = instance.getOption();
|
|
43
40
|
const {
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
startValue,
|
|
42
|
+
endValue
|
|
46
43
|
} = dataZoom[0];
|
|
47
|
-
const
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
}, [
|
|
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":["
|
|
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 =
|
|
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
|
|
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
|
-
} =
|
|
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
|
|
70
|
-
|
|
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
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOption.js","names":["_labsWidgetCommon","require","echarts","_interopRequireWildcard","_constants","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","getDesktopOption","_ref","isDark","desktopGridLines","getGridLines","chartWidth","CHART_WIDTH","chartHeight","CHART_HEIGHT","xLabelsSize","X_LABEL_SIZE","yLabelSize","Y_LABEL_SIZE_DESKTOP","bottomLeftBox","yAxis","nameTextStyle","align","padding","axisLabel","margin","grid","name","top","left","right","bottom","graphic","getLineCommons","shape","x1","y1","x2","y2","exports","getOption","_ref2","xAxisData","ordersPositionsChartData","ordersPositionsBucketWidth","candlesSeriesData","visibleXAxisData","slice","length","INITIAL_START_ZOOM","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","isDifferenceGreaterThanTwoWeeks","labelsData","getLabelData","visibleItemsCount","Math","round","initialInterval","MAX_LABELS_COUNT","floor","title","show","text","animation","dataZoom","type","xAxisIndex","start","end","tooltip","trigger","formatter","val","timestamp","axisValue","Date","toLocaleTimeString","undefined","hour","minute","toLocaleDateString","day","month","xAxis","data","axisTick","interval","value","date","position","scale","axisLine","showMaxLabel","showMinLabel","series","id","itemStyle","color","colorPalette","raspberryLight","color0","bottleGreenLight","markPoint","symbol","symbolSize","silent","renderItem","params","api","coordSys","xVal","yVal","sentiment","coord","rectWidth","rectHeight","size","boundaries","clipRectByRect","x","y","width","height","style","fill","getRectColor","emphasisDisabled"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/getOption.ts"],"sourcesContent":["import {\n colorPalette,\n getGridLines,\n getLineCommons,\n} from '@oanda/labs-widget-common';\nimport * as echarts from 'echarts/core';\n\nimport {\n CHART_HEIGHT,\n CHART_WIDTH,\n INITIAL_END_ZOOM,\n INITIAL_START_ZOOM,\n MAX_LABELS_COUNT,\n X_LABEL_SIZE,\n Y_LABEL_SIZE_DESKTOP,\n} from './constants';\nimport type { GetOptionType, GetResponsiveOptionsProps } from './types';\nimport {\n getLabelData,\n getRectColor,\n isDifferenceGreaterThanTwoWeeks,\n} from './utils';\n\nexport const getDesktopOption = ({ isDark }: GetResponsiveOptionsProps) => {\n const desktopGridLines = getGridLines({\n isDark,\n chartWidth: CHART_WIDTH,\n chartHeight: CHART_HEIGHT,\n xLabelsSize: X_LABEL_SIZE,\n yLabelSize: Y_LABEL_SIZE_DESKTOP,\n bottomLeftBox: false,\n });\n\n return {\n yAxis: {\n nameTextStyle: {\n align: 'left',\n padding: [0, 0, 0, 8],\n },\n axisLabel: {\n margin: 8,\n },\n },\n grid: [\n {\n name: 'main-grid',\n top: '0px',\n left: '0px',\n right: `${Y_LABEL_SIZE_DESKTOP}px`,\n bottom: `${X_LABEL_SIZE}px`,\n },\n ],\n graphic: [\n ...desktopGridLines,\n {\n ...getLineCommons(isDark),\n top: 0,\n right: 0,\n shape: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n },\n },\n ],\n };\n};\n\n// @ts-ignore\nexport const getOption: GetOptionType = ({\n xAxisData,\n ordersPositionsChartData,\n ordersPositionsBucketWidth,\n candlesSeriesData,\n}) => {\n const visibleXAxisData = xAxisData.slice(\n (xAxisData.length * INITIAL_START_ZOOM) / 100,\n (xAxisData.length * INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n const labelsData = getLabelData({\n xAxisData,\n isGreaterThanTwoWeeks,\n });\n\n const visibleItemsCount = Math.round(\n (xAxisData.length * (INITIAL_END_ZOOM - INITIAL_START_ZOOM)) / 100\n );\n\n const initialInterval =\n visibleItemsCount > MAX_LABELS_COUNT\n ? Math.floor(visibleItemsCount / MAX_LABELS_COUNT)\n : 0;\n\n return {\n title: {\n show: false,\n text: `${initialInterval},${isGreaterThanTwoWeeks}`,\n },\n animation: false,\n dataZoom: [\n {\n type: 'inside',\n xAxisIndex: 0,\n start: INITIAL_START_ZOOM,\n end: INITIAL_END_ZOOM,\n },\n ],\n tooltip: {\n trigger: 'axis',\n formatter: (val) => {\n // @ts-ignore\n const timestamp = val[0].axisValue as string;\n\n return `${new Date(timestamp).toLocaleTimeString(undefined, {\n hour: '2-digit',\n minute: '2-digit',\n })}\n ${new Date(timestamp).toLocaleDateString(undefined, {\n day: 'numeric',\n month: 'short',\n })}\n`;\n },\n },\n xAxis: {\n type: 'category',\n data: xAxisData,\n axisTick: {\n show: false,\n },\n axisLabel: {\n padding: [8, 16, 8, 16],\n margin: 0,\n interval: initialInterval,\n formatter: (value) => {\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 yAxis: {\n type: 'value',\n position: 'right',\n scale: true,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n showMaxLabel: false,\n showMinLabel: false,\n },\n },\n series: [\n {\n type: 'candlestick',\n id: 'candlestick',\n data: candlesSeriesData,\n itemStyle: {\n color: colorPalette.raspberryLight,\n color0: colorPalette.bottleGreenLight,\n },\n markPoint: {\n symbol: 'circle',\n symbolSize: 0,\n data: labelsData,\n },\n },\n {\n type: 'custom',\n name: 'heatmap',\n id: 'heatmap',\n silent: true,\n renderItem: (params, api) => {\n const { coordSys } = params;\n const xVal = api.value(0);\n const yVal = api.value(1);\n const sentiment = api.value(2) as number;\n const start = api.coord([xVal, yVal]);\n const [rectWidth, rectHeight] = api.size!([\n 0,\n ordersPositionsBucketWidth,\n ]) as number[];\n const boundaries = coordSys as unknown as {\n x: number;\n y: number;\n width: number;\n height: number;\n };\n const shape = echarts.graphic.clipRectByRect(\n {\n x: start[0] - rectWidth / 2,\n y: start[1],\n width: rectWidth,\n height: rectHeight,\n },\n boundaries\n );\n return (\n shape && {\n type: 'rect',\n shape,\n style: {\n fill: getRectColor(sentiment),\n },\n emphasisDisabled: true,\n }\n );\n },\n data: ordersPositionsChartData,\n },\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"getOption.js","names":["_labsWidgetCommon","require","echarts","_interopRequireWildcard","_constants","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","getOption","_ref","isDark","xAxisData","ordersPositionsChartData","ordersPositionsBucketWidth","candlesSeriesData","visibleXAxisData","slice","length","INITIAL_START_ZOOM","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","isDifferenceGreaterThanTwoWeeks","labelsData","getLabelData","gridLines","getGridLines","chartWidth","CHART_WIDTH","chartHeight","CHART_HEIGHT","xLabelsSize","X_LABEL_SIZE","yLabelSize","Y_LABEL_SIZE_DESKTOP","bottomLeftBox","animation","dataZoom","type","xAxisIndex","start","end","tooltip","trigger","formatter","val","timestamp","axisValue","Date","toLocaleTimeString","undefined","hour","minute","toLocaleDateString","day","month","xAxis","data","axisTick","show","axisLabel","padding","margin","value","date","yAxis","position","scale","axisLine","showMaxLabel","showMinLabel","series","id","itemStyle","color","colorPalette","raspberryLight","color0","bottleGreenLight","markPoint","symbol","symbolSize","name","silent","renderItem","params","api","coordSys","xVal","yVal","sentiment","coord","rectWidth","rectHeight","size","boundaries","shape","graphic","clipRectByRect","x","y","width","height","style","fill","getRectColor","emphasisDisabled","grid","top","left","right","bottom","getLineCommons","x1","y1","x2","y2","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/getOption.ts"],"sourcesContent":["import {\n colorPalette,\n getGridLines,\n getLineCommons,\n} from '@oanda/labs-widget-common';\nimport * as echarts from 'echarts/core';\n\nimport {\n CHART_HEIGHT,\n CHART_WIDTH,\n INITIAL_END_ZOOM,\n INITIAL_START_ZOOM,\n X_LABEL_SIZE,\n Y_LABEL_SIZE_DESKTOP,\n} from './constants';\nimport type { GetOptionType } from './types';\nimport {\n getLabelData,\n getRectColor,\n isDifferenceGreaterThanTwoWeeks,\n} from './utils';\n\n// @ts-expect-error\nexport const getOption: GetOptionType = (\n {\n xAxisData,\n ordersPositionsChartData,\n ordersPositionsBucketWidth,\n candlesSeriesData,\n },\n isDark\n) => {\n const visibleXAxisData = xAxisData.slice(\n (xAxisData.length * INITIAL_START_ZOOM) / 100,\n (xAxisData.length * INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const labelsData = getLabelData({\n xAxisData,\n isGreaterThanTwoWeeks,\n });\n\n const gridLines = getGridLines({\n isDark,\n chartWidth: CHART_WIDTH,\n chartHeight: CHART_HEIGHT,\n xLabelsSize: X_LABEL_SIZE,\n yLabelSize: Y_LABEL_SIZE_DESKTOP,\n bottomLeftBox: false,\n });\n\n return {\n animation: false,\n dataZoom: [\n {\n type: 'inside',\n xAxisIndex: 0,\n start: INITIAL_START_ZOOM,\n end: INITIAL_END_ZOOM,\n },\n ],\n tooltip: {\n trigger: 'axis',\n formatter: (val) => {\n // @ts-expect-error\n const timestamp = val[0].axisValue as string;\n\n return `${new Date(timestamp).toLocaleTimeString(undefined, {\n hour: '2-digit',\n minute: '2-digit',\n })}\n ${new Date(timestamp).toLocaleDateString(undefined, {\n day: 'numeric',\n month: 'short',\n })}\n`;\n },\n },\n xAxis: {\n type: 'category',\n data: xAxisData,\n axisTick: {\n show: false,\n },\n axisLabel: {\n padding: [8, 16, 8, 16],\n margin: 0,\n formatter: (value) => {\n const date = new Date(value as string);\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 yAxis: {\n type: 'value',\n position: 'right',\n scale: true,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n showMaxLabel: false,\n showMinLabel: false,\n },\n },\n series: [\n {\n type: 'candlestick',\n id: 'candlestick',\n data: candlesSeriesData,\n itemStyle: {\n color: colorPalette.raspberryLight,\n color0: colorPalette.bottleGreenLight,\n },\n markPoint: {\n symbol: 'circle',\n symbolSize: 0,\n data: labelsData,\n },\n },\n {\n type: 'custom',\n name: 'heatmap',\n id: 'heatmap',\n silent: true,\n renderItem: (params, api) => {\n const { coordSys } = params;\n const xVal = api.value(0);\n const yVal = api.value(1);\n const sentiment = api.value(2) as number;\n const start = api.coord([xVal, yVal]);\n const [rectWidth, rectHeight] = api.size!([\n 0,\n ordersPositionsBucketWidth,\n ]) as number[];\n const boundaries = coordSys as unknown as {\n x: number;\n y: number;\n width: number;\n height: number;\n };\n const shape = echarts.graphic.clipRectByRect(\n {\n x: start[0] - rectWidth / 2,\n y: start[1],\n width: rectWidth,\n height: rectHeight,\n },\n boundaries\n );\n return (\n shape && {\n type: 'rect',\n shape,\n style: {\n fill: getRectColor(sentiment),\n },\n emphasisDisabled: true,\n }\n );\n },\n data: ordersPositionsChartData,\n },\n ],\n grid: [\n {\n name: 'main-grid',\n top: '0px',\n left: '0px',\n right: `${Y_LABEL_SIZE_DESKTOP}px`,\n bottom: `${X_LABEL_SIZE}px`,\n },\n ],\n graphic: [\n ...gridLines,\n {\n ...getLineCommons(isDark as boolean),\n top: 0,\n right: 0,\n shape: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n },\n },\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getOrderPositionDataMock = void 0;
|
|
7
|
+
const getOrderPositionDataMock = _ref => {
|
|
8
|
+
let {
|
|
9
|
+
min = 1.3,
|
|
10
|
+
max = 2.1,
|
|
11
|
+
bucketWidth = 0.005,
|
|
12
|
+
baseValue,
|
|
13
|
+
crossoverValue = baseValue
|
|
14
|
+
} = _ref;
|
|
15
|
+
const results = [];
|
|
16
|
+
const maxDistance = Math.max(baseValue - min, max - baseValue);
|
|
17
|
+
for (let currentPrice = min; currentPrice < max; currentPrice += bucketWidth) {
|
|
18
|
+
const distance = Math.abs(currentPrice - baseValue);
|
|
19
|
+
const proximityFactor = 1 - distance / maxDistance;
|
|
20
|
+
const strongProximityFactor = Math.pow(proximityFactor, 2);
|
|
21
|
+
let shortCountPercent;
|
|
22
|
+
let longCountPercent;
|
|
23
|
+
if (currentPrice === baseValue) {
|
|
24
|
+
shortCountPercent = Math.random() * 0.5;
|
|
25
|
+
longCountPercent = Math.random() * 0.5;
|
|
26
|
+
} else {
|
|
27
|
+
const maxDifference = 0.5;
|
|
28
|
+
const targetDifference = Math.random() * maxDifference * strongProximityFactor;
|
|
29
|
+
const baseRandom = Math.random() * (0.5 - targetDifference);
|
|
30
|
+
if (currentPrice < crossoverValue) {
|
|
31
|
+
shortCountPercent = baseRandom;
|
|
32
|
+
longCountPercent = baseRandom + targetDifference;
|
|
33
|
+
} else {
|
|
34
|
+
longCountPercent = baseRandom;
|
|
35
|
+
shortCountPercent = baseRandom + targetDifference;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
results.push({
|
|
39
|
+
shortCountPercent: Math.round(shortCountPercent * 10000) / 10000,
|
|
40
|
+
longCountPercent: Math.round(longCountPercent * 10000) / 10000,
|
|
41
|
+
price: currentPrice
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return results;
|
|
45
|
+
};
|
|
46
|
+
exports.getOrderPositionDataMock = getOrderPositionDataMock;
|
|
47
|
+
//# sourceMappingURL=getOrderPositionDataMock.js.map
|