@oanda/labs-currency-power-balance-widget 1.0.156 → 1.0.158
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 +1268 -0
- package/dist/main/CurrencyPowerBalanceWidget/components/Chart/Chart.js +3 -10
- package/dist/main/CurrencyPowerBalanceWidget/components/Chart/Chart.js.map +1 -1
- package/dist/main/CurrencyPowerBalanceWidget/components/Chart/options/getOption.js +21 -3
- package/dist/main/CurrencyPowerBalanceWidget/components/Chart/options/getOption.js.map +1 -1
- package/dist/main/CurrencyPowerBalanceWidget/components/Chart/options/index.js +0 -11
- package/dist/main/CurrencyPowerBalanceWidget/components/Chart/options/index.js.map +1 -1
- package/dist/module/CurrencyPowerBalanceWidget/components/Chart/Chart.js +3 -11
- package/dist/module/CurrencyPowerBalanceWidget/components/Chart/Chart.js.map +1 -1
- package/dist/module/CurrencyPowerBalanceWidget/components/Chart/options/getOption.js +23 -5
- package/dist/module/CurrencyPowerBalanceWidget/components/Chart/options/getOption.js.map +1 -1
- package/dist/module/CurrencyPowerBalanceWidget/components/Chart/options/index.js +0 -1
- package/dist/module/CurrencyPowerBalanceWidget/components/Chart/options/index.js.map +1 -1
- package/dist/types/CurrencyPowerBalanceWidget/components/Chart/options/getOption.d.ts +104 -1
- package/dist/types/CurrencyPowerBalanceWidget/components/Chart/options/index.d.ts +0 -1
- package/package.json +5 -5
- package/src/CurrencyPowerBalanceWidget/components/Chart/Chart.tsx +3 -17
- package/src/CurrencyPowerBalanceWidget/components/Chart/options/getOption.ts +36 -2
- package/src/CurrencyPowerBalanceWidget/components/Chart/options/index.ts +0 -1
- package/dist/main/CurrencyPowerBalanceWidget/components/Chart/options/getResponsiveOption.js +0 -36
- package/dist/main/CurrencyPowerBalanceWidget/components/Chart/options/getResponsiveOption.js.map +0 -1
- package/dist/module/CurrencyPowerBalanceWidget/components/Chart/options/getResponsiveOption.js +0 -30
- package/dist/module/CurrencyPowerBalanceWidget/components/Chart/options/getResponsiveOption.js.map +0 -1
- package/dist/types/CurrencyPowerBalanceWidget/components/Chart/options/getResponsiveOption.d.ts +0 -110
- package/src/CurrencyPowerBalanceWidget/components/Chart/options/getResponsiveOption.ts +0 -48
|
@@ -10,9 +10,10 @@ var _charts = require("echarts/charts");
|
|
|
10
10
|
var _components = require("echarts/components");
|
|
11
11
|
var echarts = _interopRequireWildcard(require("echarts/core"));
|
|
12
12
|
var _renderers = require("echarts/renderers");
|
|
13
|
-
var _react =
|
|
13
|
+
var _react = _interopRequireDefault(require("react"));
|
|
14
14
|
var _options = require("./options");
|
|
15
15
|
var _constants = require("./options/constants");
|
|
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, _components.TooltipComponent, _components.LegendPlainComponent, _charts.LineChart, _renderers.CanvasRenderer, _components.MarkLineComponent]);
|
|
@@ -33,25 +34,17 @@ const Chart = _ref => {
|
|
|
33
34
|
} = (0, _labsWidgetCommon.useLayoutProvider)();
|
|
34
35
|
const isDesktop = size === _labsWidgetCommon.Size.DESKTOP;
|
|
35
36
|
const isMobile = size === _labsWidgetCommon.Size.MOBILE;
|
|
36
|
-
const echartRef = (0, _react.useRef)(null);
|
|
37
37
|
const chartData = currencies ? values.filter(_ref2 => {
|
|
38
38
|
let {
|
|
39
39
|
currency
|
|
40
40
|
} = _ref2;
|
|
41
41
|
return currencies.includes(currency);
|
|
42
42
|
}) : values;
|
|
43
|
-
(0, _react.useEffect)(() => {
|
|
44
|
-
if (echartRef.current) {
|
|
45
|
-
const echartInstance = echartRef.current.getEchartsInstance();
|
|
46
|
-
echartInstance.setOption((0, _options.getResponsiveOption)(isDesktop, isMobile, isDark));
|
|
47
|
-
}
|
|
48
|
-
}, [echartRef, isDesktop, isMobile, isDark]);
|
|
49
43
|
return _react.default.createElement(_labsWidgetCommon.BaseChart, {
|
|
50
|
-
ref: echartRef,
|
|
51
44
|
chartHeight: _constants.CHART_HEIGHT,
|
|
52
45
|
echarts: echarts,
|
|
53
46
|
isDark: isDark,
|
|
54
|
-
option: (0, _options.getOption)(chartData, timeUnit, isDark, lang)
|
|
47
|
+
option: (0, _options.getOption)(chartData, timeUnit, isDark, isDesktop, isMobile, lang)
|
|
55
48
|
});
|
|
56
49
|
};
|
|
57
50
|
exports.Chart = Chart;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.js","names":["_labsWidgetCommon","require","_monoI18n","_charts","_components","echarts","_interopRequireWildcard","_renderers","_react","_options","_constants","
|
|
1
|
+
{"version":3,"file":"Chart.js","names":["_labsWidgetCommon","require","_monoI18n","_charts","_components","echarts","_interopRequireWildcard","_renderers","_react","_interopRequireDefault","_options","_constants","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","use","GridSimpleComponent","GraphicComponent","TooltipComponent","LegendPlainComponent","LineChart","CanvasRenderer","MarkLineComponent","registerTheme","getChartTheme","Theme","Dark","Light","Chart","_ref","values","timeUnit","currencies","lang","useLocale","isDark","size","useLayoutProvider","isDesktop","Size","DESKTOP","isMobile","MOBILE","chartData","filter","_ref2","currency","includes","createElement","BaseChart","chartHeight","CHART_HEIGHT","option","getOption","exports"],"sources":["../../../../../src/CurrencyPowerBalanceWidget/components/Chart/Chart.tsx"],"sourcesContent":["import {\n BaseChart,\n getChartTheme,\n Size,\n Theme,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { LineChart } from 'echarts/charts';\nimport {\n GraphicComponent,\n GridSimpleComponent,\n LegendPlainComponent,\n MarkLineComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport React from 'react';\n\nimport { getOption } from './options';\nimport { CHART_HEIGHT } from './options/constants';\nimport type { ChartProps } from './types';\n\necharts.use([\n GridSimpleComponent,\n GraphicComponent,\n TooltipComponent,\n LegendPlainComponent,\n LineChart,\n CanvasRenderer,\n MarkLineComponent,\n]);\n\necharts.registerTheme('dark_theme', getChartTheme(Theme.Dark));\necharts.registerTheme('light_theme', getChartTheme(Theme.Light));\n\nconst Chart = ({ values, timeUnit, currencies }: ChartProps) => {\n const { lang } = useLocale();\n const { isDark, size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const isMobile = size === Size.MOBILE;\n\n const chartData = currencies\n ? values.filter(({ currency }) => currencies.includes(currency))\n : values;\n\n return (\n <BaseChart\n chartHeight={CHART_HEIGHT}\n echarts={echarts}\n isDark={isDark}\n option={getOption(chartData, timeUnit, isDark, isDesktop, isMobile, lang)}\n />\n );\n};\n\nexport { Chart };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ var _graphql = require("../../../../gql/types/graphql");
|
|
|
9
9
|
var _constants = require("./constants");
|
|
10
10
|
var _formatters = require("./formatters");
|
|
11
11
|
var _utils = require("./utils");
|
|
12
|
-
const getOption = (chartData, timeUnit, isDark, lang) => {
|
|
12
|
+
const getOption = (chartData, timeUnit, isDark, isDesktop, isMobile, lang) => {
|
|
13
13
|
const currentTheme = isDark ? _labsWidgetCommon.Theme.Dark : _labsWidgetCommon.Theme.Light;
|
|
14
14
|
const dataTimestamps = chartData[0].power.map(x => new Date(x.point).getTime());
|
|
15
15
|
const weekendsIndexes = (0, _utils.findLastIndexesBeforeWeekend)(dataTimestamps);
|
|
@@ -77,6 +77,15 @@ const getOption = (chartData, timeUnit, isDark, lang) => {
|
|
|
77
77
|
};
|
|
78
78
|
});
|
|
79
79
|
const legendData = (0, _formatters.formatLegendData)(chartData);
|
|
80
|
+
const baseGridLines = (0, _labsWidgetCommon.getGridLines)({
|
|
81
|
+
isDark,
|
|
82
|
+
chartWidth: _constants.CHART_WIDTH,
|
|
83
|
+
chartHeight: _constants.CHART_HEIGHT,
|
|
84
|
+
xLabelsSize: isMobile ? _constants.X_LABEL_SIZE_MOBILE : _constants.X_LABEL_SIZE,
|
|
85
|
+
yLabelSize: isMobile ? _constants.Y_LABEL_SIZE_MOBILE : _constants.Y_LABEL_SIZE,
|
|
86
|
+
bottomLeftBox: false,
|
|
87
|
+
marginBottom: isMobile ? _constants.LEGEND_HEIGHT_MOBILE : _constants.LEGEND_HEIGHT
|
|
88
|
+
});
|
|
80
89
|
return {
|
|
81
90
|
animation: false,
|
|
82
91
|
legend: {
|
|
@@ -129,10 +138,19 @@ const getOption = (chartData, timeUnit, isDark, lang) => {
|
|
|
129
138
|
boundaryGap: ['10%', '10%'],
|
|
130
139
|
axisLabel: {
|
|
131
140
|
showMaxLabel: false,
|
|
132
|
-
showMinLabel: false
|
|
141
|
+
showMinLabel: false,
|
|
142
|
+
margin: isDesktop ? 8 : 6
|
|
133
143
|
}
|
|
134
144
|
},
|
|
135
|
-
series: seriesData
|
|
145
|
+
series: seriesData,
|
|
146
|
+
grid: [{
|
|
147
|
+
name: 'main-grid',
|
|
148
|
+
top: '0px',
|
|
149
|
+
left: '0px',
|
|
150
|
+
right: `${isMobile ? _constants.Y_LABEL_SIZE_MOBILE : _constants.Y_LABEL_SIZE}px`,
|
|
151
|
+
bottom: `${isMobile ? _constants.X_LABEL_SIZE_MOBILE : _constants.X_LABEL_SIZE}px`
|
|
152
|
+
}],
|
|
153
|
+
graphic: [...baseGridLines]
|
|
136
154
|
};
|
|
137
155
|
};
|
|
138
156
|
exports.getOption = getOption;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOption.js","names":["_labsWidgetCommon","require","_graphql","_constants","_formatters","_utils","getOption","chartData","timeUnit","isDark","lang","currentTheme","Theme","Dark","Light","dataTimestamps","power","map","x","Date","point","getTime","weekendsIndexes","findLastIndexesBeforeWeekend","disableWeekendsIndicator","CurrencyPowerBalanceTimeUnit","CurrentDay","PreviousDay","M3","includes","length","weekendsMarks","item","xAxis","label","formatter","seriesData","_ref","index","currency","name","type","symbol","showSymbol","itemStyle","color","COLOR_CONFIG","data","_ref2","price","markLine","show","position","align","distance","padding","fontSize","shadowBlur","shadowOffsetX","shadowOffsetY","borderWidth","themeColors","textPrimary","shadowColor","borderRadius","backgroundColor","borderPrimary","bgSecondary","emphasis","lineStyle","width","opacity","undefined","legendData","formatLegendData","animation","legend","bottom","icon","tooltip","trigger","axisPointer","axis","z","TOOLTIP_LINE_COLOR_CONFIG","DARK","LIGHT","tooltipFormatter","extraCssText","axisTick","axisLine","splitLine","axisLabel","margin","rotate","interval","intervalFormatter","xAxisLabelFormatter","yAxis","splitNumber","boundaryGap","showMaxLabel","showMinLabel","series","exports"],"sources":["../../../../../../src/CurrencyPowerBalanceWidget/components/Chart/options/getOption.ts"],"sourcesContent":["import { Theme, themeColors } from '@oanda/labs-widget-common';\n\nimport type { CurrencyPowerBalance } from '../../../../gql/types/graphql';\nimport { CurrencyPowerBalanceTimeUnit } from '../../../../gql/types/graphql';\nimport { COLOR_CONFIG, TOOLTIP_LINE_COLOR_CONFIG } from './constants';\nimport {\n formatLegendData,\n intervalFormatter,\n tooltipFormatter,\n xAxisLabelFormatter,\n} from './formatters';\nimport { findLastIndexesBeforeWeekend } from './utils';\n\nconst getOption = (\n chartData: CurrencyPowerBalance[],\n timeUnit: CurrencyPowerBalanceTimeUnit,\n isDark: boolean,\n lang: (key: string) => string\n) => {\n const currentTheme = isDark ? Theme.Dark : Theme.Light;\n const dataTimestamps = chartData[0].power.map((x) =>\n new Date(x.point).getTime()\n );\n const weekendsIndexes = findLastIndexesBeforeWeekend(dataTimestamps);\n const disableWeekendsIndicator =\n [\n CurrencyPowerBalanceTimeUnit.CurrentDay,\n CurrencyPowerBalanceTimeUnit.PreviousDay,\n CurrencyPowerBalanceTimeUnit.M3,\n ].includes(timeUnit) || weekendsIndexes.length === 0;\n\n const weekendsMarks = weekendsIndexes.map((item) => ({\n xAxis: item,\n label: {\n formatter: () => lang('market_closed'),\n },\n }));\n\n const seriesData = chartData.map(({ currency, power }, index) => ({\n name: currency,\n type: 'line',\n symbol: 'circle',\n showSymbol: false,\n itemStyle: {\n color: COLOR_CONFIG[currency],\n },\n data: power.map(({ point, price }) => [point, price]),\n markLine:\n index === chartData.length - 1 && !disableWeekendsIndicator\n ? {\n label: {\n show: false,\n position: 'end',\n align: 'center',\n distance: -32,\n padding: [8, 8],\n fontSize: 12,\n shadowBlur: 24,\n shadowOffsetX: 0,\n shadowOffsetY: 6,\n borderWidth: 0,\n color: themeColors.textPrimary,\n shadowColor: 'rgba(0,0,0,0.1)',\n borderRadius: 4,\n backgroundColor: isDark\n ? themeColors.borderPrimary[currentTheme]\n : themeColors.bgSecondary[currentTheme],\n },\n show: false,\n emphasis: {\n label: {\n show: true,\n },\n lineStyle: {\n width: 1,\n opacity: 0,\n color: themeColors.borderPrimary[currentTheme],\n },\n },\n symbol: ['none', 'none'],\n itemStyle: {\n color: themeColors.borderPrimary[currentTheme],\n },\n data: weekendsMarks,\n }\n : undefined,\n }));\n\n const legendData = formatLegendData(chartData);\n\n return {\n animation: false,\n legend: {\n data: legendData,\n bottom: 10,\n icon: 'circle',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n axis: 'x',\n z: 0,\n lineStyle: {\n color: isDark\n ? TOOLTIP_LINE_COLOR_CONFIG.DARK\n : TOOLTIP_LINE_COLOR_CONFIG.LIGHT,\n },\n },\n formatter: tooltipFormatter,\n extraCssText: 'z-index: 1',\n },\n xAxis: {\n type: 'category',\n axisTick: {\n show: false,\n },\n axisLine: { show: false },\n splitLine: {\n show: true,\n },\n axisLabel: {\n padding: [0, 0, 0, 4],\n align: 'left',\n margin: 10,\n rotate: -45,\n interval: intervalFormatter(seriesData[0].data.length),\n formatter: (label: string) => xAxisLabelFormatter(label, timeUnit),\n },\n },\n yAxis: {\n type: 'value',\n position: 'right',\n splitNumber: 5,\n axisLine: { show: false },\n axisTick: { show: false },\n boundaryGap: ['10%', '10%'],\n axisLabel: {\n showMaxLabel: false,\n showMinLabel: false,\n },\n },\n series: seriesData,\n };\n};\n\nexport { getOption };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"getOption.js","names":["_labsWidgetCommon","require","_graphql","_constants","_formatters","_utils","getOption","chartData","timeUnit","isDark","isDesktop","isMobile","lang","currentTheme","Theme","Dark","Light","dataTimestamps","power","map","x","Date","point","getTime","weekendsIndexes","findLastIndexesBeforeWeekend","disableWeekendsIndicator","CurrencyPowerBalanceTimeUnit","CurrentDay","PreviousDay","M3","includes","length","weekendsMarks","item","xAxis","label","formatter","seriesData","_ref","index","currency","name","type","symbol","showSymbol","itemStyle","color","COLOR_CONFIG","data","_ref2","price","markLine","show","position","align","distance","padding","fontSize","shadowBlur","shadowOffsetX","shadowOffsetY","borderWidth","themeColors","textPrimary","shadowColor","borderRadius","backgroundColor","borderPrimary","bgSecondary","emphasis","lineStyle","width","opacity","undefined","legendData","formatLegendData","baseGridLines","getGridLines","chartWidth","CHART_WIDTH","chartHeight","CHART_HEIGHT","xLabelsSize","X_LABEL_SIZE_MOBILE","X_LABEL_SIZE","yLabelSize","Y_LABEL_SIZE_MOBILE","Y_LABEL_SIZE","bottomLeftBox","marginBottom","LEGEND_HEIGHT_MOBILE","LEGEND_HEIGHT","animation","legend","bottom","icon","tooltip","trigger","axisPointer","axis","z","TOOLTIP_LINE_COLOR_CONFIG","DARK","LIGHT","tooltipFormatter","extraCssText","axisTick","axisLine","splitLine","axisLabel","margin","rotate","interval","intervalFormatter","xAxisLabelFormatter","yAxis","splitNumber","boundaryGap","showMaxLabel","showMinLabel","series","grid","top","left","right","graphic","exports"],"sources":["../../../../../../src/CurrencyPowerBalanceWidget/components/Chart/options/getOption.ts"],"sourcesContent":["import { getGridLines, Theme, themeColors } from '@oanda/labs-widget-common';\n\nimport type { CurrencyPowerBalance } from '../../../../gql/types/graphql';\nimport { CurrencyPowerBalanceTimeUnit } from '../../../../gql/types/graphql';\nimport {\n CHART_HEIGHT,\n CHART_WIDTH,\n COLOR_CONFIG,\n LEGEND_HEIGHT,\n LEGEND_HEIGHT_MOBILE,\n TOOLTIP_LINE_COLOR_CONFIG,\n X_LABEL_SIZE,\n X_LABEL_SIZE_MOBILE,\n Y_LABEL_SIZE,\n Y_LABEL_SIZE_MOBILE,\n} from './constants';\nimport {\n formatLegendData,\n intervalFormatter,\n tooltipFormatter,\n xAxisLabelFormatter,\n} from './formatters';\nimport { findLastIndexesBeforeWeekend } from './utils';\n\nconst getOption = (\n chartData: CurrencyPowerBalance[],\n timeUnit: CurrencyPowerBalanceTimeUnit,\n isDark: boolean,\n isDesktop: boolean,\n isMobile: boolean,\n lang: (key: string) => string\n) => {\n const currentTheme = isDark ? Theme.Dark : Theme.Light;\n const dataTimestamps = chartData[0].power.map((x) =>\n new Date(x.point).getTime()\n );\n const weekendsIndexes = findLastIndexesBeforeWeekend(dataTimestamps);\n const disableWeekendsIndicator =\n [\n CurrencyPowerBalanceTimeUnit.CurrentDay,\n CurrencyPowerBalanceTimeUnit.PreviousDay,\n CurrencyPowerBalanceTimeUnit.M3,\n ].includes(timeUnit) || weekendsIndexes.length === 0;\n\n const weekendsMarks = weekendsIndexes.map((item) => ({\n xAxis: item,\n label: {\n formatter: () => lang('market_closed'),\n },\n }));\n\n const seriesData = chartData.map(({ currency, power }, index) => ({\n name: currency,\n type: 'line',\n symbol: 'circle',\n showSymbol: false,\n itemStyle: {\n color: COLOR_CONFIG[currency],\n },\n data: power.map(({ point, price }) => [point, price]),\n markLine:\n index === chartData.length - 1 && !disableWeekendsIndicator\n ? {\n label: {\n show: false,\n position: 'end',\n align: 'center',\n distance: -32,\n padding: [8, 8],\n fontSize: 12,\n shadowBlur: 24,\n shadowOffsetX: 0,\n shadowOffsetY: 6,\n borderWidth: 0,\n color: themeColors.textPrimary,\n shadowColor: 'rgba(0,0,0,0.1)',\n borderRadius: 4,\n backgroundColor: isDark\n ? themeColors.borderPrimary[currentTheme]\n : themeColors.bgSecondary[currentTheme],\n },\n show: false,\n emphasis: {\n label: {\n show: true,\n },\n lineStyle: {\n width: 1,\n opacity: 0,\n color: themeColors.borderPrimary[currentTheme],\n },\n },\n symbol: ['none', 'none'],\n itemStyle: {\n color: themeColors.borderPrimary[currentTheme],\n },\n data: weekendsMarks,\n }\n : undefined,\n }));\n\n const legendData = formatLegendData(chartData);\n\n const baseGridLines = getGridLines({\n isDark,\n chartWidth: CHART_WIDTH,\n chartHeight: CHART_HEIGHT,\n xLabelsSize: isMobile ? X_LABEL_SIZE_MOBILE : X_LABEL_SIZE,\n yLabelSize: isMobile ? Y_LABEL_SIZE_MOBILE : Y_LABEL_SIZE,\n bottomLeftBox: false,\n marginBottom: isMobile ? LEGEND_HEIGHT_MOBILE : LEGEND_HEIGHT,\n });\n\n return {\n animation: false,\n legend: {\n data: legendData,\n bottom: 10,\n icon: 'circle',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n axis: 'x',\n z: 0,\n lineStyle: {\n color: isDark\n ? TOOLTIP_LINE_COLOR_CONFIG.DARK\n : TOOLTIP_LINE_COLOR_CONFIG.LIGHT,\n },\n },\n formatter: tooltipFormatter,\n extraCssText: 'z-index: 1',\n },\n xAxis: {\n type: 'category',\n axisTick: {\n show: false,\n },\n axisLine: { show: false },\n splitLine: {\n show: true,\n },\n axisLabel: {\n padding: [0, 0, 0, 4],\n align: 'left',\n margin: 10,\n rotate: -45,\n interval: intervalFormatter(seriesData[0].data.length),\n formatter: (label: string) => xAxisLabelFormatter(label, timeUnit),\n },\n },\n yAxis: {\n type: 'value',\n position: 'right',\n splitNumber: 5,\n axisLine: { show: false },\n axisTick: { show: false },\n boundaryGap: ['10%', '10%'],\n axisLabel: {\n showMaxLabel: false,\n showMinLabel: false,\n margin: isDesktop ? 8 : 6,\n },\n },\n series: seriesData,\n grid: [\n {\n name: 'main-grid',\n top: '0px',\n left: '0px',\n right: `${isMobile ? Y_LABEL_SIZE_MOBILE : Y_LABEL_SIZE}px`,\n bottom: `${isMobile ? X_LABEL_SIZE_MOBILE : X_LABEL_SIZE}px`,\n },\n ],\n graphic: [...baseGridLines],\n };\n};\n\nexport { getOption };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,15 +14,4 @@ Object.keys(_getOption).forEach(function (key) {
|
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
|
-
var _getResponsiveOption = require("./getResponsiveOption");
|
|
18
|
-
Object.keys(_getResponsiveOption).forEach(function (key) {
|
|
19
|
-
if (key === "default" || key === "__esModule") return;
|
|
20
|
-
if (key in exports && exports[key] === _getResponsiveOption[key]) return;
|
|
21
|
-
Object.defineProperty(exports, key, {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function () {
|
|
24
|
-
return _getResponsiveOption[key];
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_getOption","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_getOption","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../../../src/CurrencyPowerBalanceWidget/components/Chart/options/index.ts"],"sourcesContent":["export * from './getOption';\n"],"mappings":";;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,UAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,UAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,UAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -4,8 +4,8 @@ import { LineChart } from 'echarts/charts';
|
|
|
4
4
|
import { GraphicComponent, GridSimpleComponent, LegendPlainComponent, MarkLineComponent, TooltipComponent } from 'echarts/components';
|
|
5
5
|
import * as echarts from 'echarts/core';
|
|
6
6
|
import { CanvasRenderer } from 'echarts/renderers';
|
|
7
|
-
import React
|
|
8
|
-
import { getOption
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { getOption } from './options';
|
|
9
9
|
import { CHART_HEIGHT } from './options/constants';
|
|
10
10
|
echarts.use([GridSimpleComponent, GraphicComponent, TooltipComponent, LegendPlainComponent, LineChart, CanvasRenderer, MarkLineComponent]);
|
|
11
11
|
echarts.registerTheme('dark_theme', getChartTheme(Theme.Dark));
|
|
@@ -25,25 +25,17 @@ const Chart = _ref => {
|
|
|
25
25
|
} = useLayoutProvider();
|
|
26
26
|
const isDesktop = size === Size.DESKTOP;
|
|
27
27
|
const isMobile = size === Size.MOBILE;
|
|
28
|
-
const echartRef = useRef(null);
|
|
29
28
|
const chartData = currencies ? values.filter(_ref2 => {
|
|
30
29
|
let {
|
|
31
30
|
currency
|
|
32
31
|
} = _ref2;
|
|
33
32
|
return currencies.includes(currency);
|
|
34
33
|
}) : values;
|
|
35
|
-
useEffect(() => {
|
|
36
|
-
if (echartRef.current) {
|
|
37
|
-
const echartInstance = echartRef.current.getEchartsInstance();
|
|
38
|
-
echartInstance.setOption(getResponsiveOption(isDesktop, isMobile, isDark));
|
|
39
|
-
}
|
|
40
|
-
}, [echartRef, isDesktop, isMobile, isDark]);
|
|
41
34
|
return React.createElement(BaseChart, {
|
|
42
|
-
ref: echartRef,
|
|
43
35
|
chartHeight: CHART_HEIGHT,
|
|
44
36
|
echarts: echarts,
|
|
45
37
|
isDark: isDark,
|
|
46
|
-
option: getOption(chartData, timeUnit, isDark, lang)
|
|
38
|
+
option: getOption(chartData, timeUnit, isDark, isDesktop, isMobile, lang)
|
|
47
39
|
});
|
|
48
40
|
};
|
|
49
41
|
export { Chart };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.js","names":["BaseChart","getChartTheme","Size","Theme","useLayoutProvider","useLocale","LineChart","GraphicComponent","GridSimpleComponent","LegendPlainComponent","MarkLineComponent","TooltipComponent","echarts","CanvasRenderer","React","
|
|
1
|
+
{"version":3,"file":"Chart.js","names":["BaseChart","getChartTheme","Size","Theme","useLayoutProvider","useLocale","LineChart","GraphicComponent","GridSimpleComponent","LegendPlainComponent","MarkLineComponent","TooltipComponent","echarts","CanvasRenderer","React","getOption","CHART_HEIGHT","use","registerTheme","Dark","Light","Chart","_ref","values","timeUnit","currencies","lang","isDark","size","isDesktop","DESKTOP","isMobile","MOBILE","chartData","filter","_ref2","currency","includes","createElement","chartHeight","option"],"sources":["../../../../../src/CurrencyPowerBalanceWidget/components/Chart/Chart.tsx"],"sourcesContent":["import {\n BaseChart,\n getChartTheme,\n Size,\n Theme,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { LineChart } from 'echarts/charts';\nimport {\n GraphicComponent,\n GridSimpleComponent,\n LegendPlainComponent,\n MarkLineComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport React from 'react';\n\nimport { getOption } from './options';\nimport { CHART_HEIGHT } from './options/constants';\nimport type { ChartProps } from './types';\n\necharts.use([\n GridSimpleComponent,\n GraphicComponent,\n TooltipComponent,\n LegendPlainComponent,\n LineChart,\n CanvasRenderer,\n MarkLineComponent,\n]);\n\necharts.registerTheme('dark_theme', getChartTheme(Theme.Dark));\necharts.registerTheme('light_theme', getChartTheme(Theme.Light));\n\nconst Chart = ({ values, timeUnit, currencies }: ChartProps) => {\n const { lang } = useLocale();\n const { isDark, size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const isMobile = size === Size.MOBILE;\n\n const chartData = currencies\n ? values.filter(({ currency }) => currencies.includes(currency))\n : values;\n\n return (\n <BaseChart\n chartHeight={CHART_HEIGHT}\n echarts={echarts}\n isDark={isDark}\n option={getOption(chartData, timeUnit, isDark, isDesktop, isMobile, lang)}\n />\n );\n};\n\nexport { Chart };\n"],"mappings":"AAAA,SACEA,SAAS,EACTC,aAAa,EACbC,IAAI,EACJC,KAAK,EACLC,iBAAiB,QACZ,2BAA2B;AAClC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,SAAS,QAAQ,gBAAgB;AAC1C,SACEC,gBAAgB,EAChBC,mBAAmB,EACnBC,oBAAoB,EACpBC,iBAAiB,EACjBC,gBAAgB,QACX,oBAAoB;AAC3B,OAAO,KAAKC,OAAO,MAAM,cAAc;AACvC,SAASC,cAAc,QAAQ,mBAAmB;AAClD,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,QAAQ,WAAW;AACrC,SAASC,YAAY,QAAQ,qBAAqB;AAGlDJ,OAAO,CAACK,GAAG,CAAC,CACVT,mBAAmB,EACnBD,gBAAgB,EAChBI,gBAAgB,EAChBF,oBAAoB,EACpBH,SAAS,EACTO,cAAc,EACdH,iBAAiB,CAClB,CAAC;AAEFE,OAAO,CAACM,aAAa,CAAC,YAAY,EAAEjB,aAAa,CAACE,KAAK,CAACgB,IAAI,CAAC,CAAC;AAC9DP,OAAO,CAACM,aAAa,CAAC,aAAa,EAAEjB,aAAa,CAACE,KAAK,CAACiB,KAAK,CAAC,CAAC;AAEhE,MAAMC,KAAK,GAAGC,IAAA,IAAkD;EAAA,IAAjD;IAAEC,MAAM;IAAEC,QAAQ;IAAEC;EAAuB,CAAC,GAAAH,IAAA;EACzD,MAAM;IAAEI;EAAK,CAAC,GAAGrB,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAEsB,MAAM;IAAEC;EAAK,CAAC,GAAGxB,iBAAiB,CAAC,CAAC;EAC5C,MAAMyB,SAAS,GAAGD,IAAI,KAAK1B,IAAI,CAAC4B,OAAO;EACvC,MAAMC,QAAQ,GAAGH,IAAI,KAAK1B,IAAI,CAAC8B,MAAM;EAErC,MAAMC,SAAS,GAAGR,UAAU,GACxBF,MAAM,CAACW,MAAM,CAACC,KAAA;IAAA,IAAC;MAAEC;IAAS,CAAC,GAAAD,KAAA;IAAA,OAAKV,UAAU,CAACY,QAAQ,CAACD,QAAQ,CAAC;EAAA,EAAC,GAC9Db,MAAM;EAEV,OACET,KAAA,CAAAwB,aAAA,CAACtC,SAAS;IACRuC,WAAW,EAAEvB,YAAa;IAC1BJ,OAAO,EAAEA,OAAQ;IACjBe,MAAM,EAAEA,MAAO;IACfa,MAAM,EAAEzB,SAAS,CAACkB,SAAS,EAAET,QAAQ,EAAEG,MAAM,EAAEE,SAAS,EAAEE,QAAQ,EAAEL,IAAI;EAAE,CAC3E,CAAC;AAEN,CAAC;AAED,SAASL,KAAK","ignoreList":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Theme, themeColors } from '@oanda/labs-widget-common';
|
|
1
|
+
import { getGridLines, Theme, themeColors } from '@oanda/labs-widget-common';
|
|
2
2
|
import { CurrencyPowerBalanceTimeUnit } from '../../../../gql/types/graphql';
|
|
3
|
-
import { COLOR_CONFIG, TOOLTIP_LINE_COLOR_CONFIG } from './constants';
|
|
3
|
+
import { CHART_HEIGHT, CHART_WIDTH, COLOR_CONFIG, LEGEND_HEIGHT, LEGEND_HEIGHT_MOBILE, TOOLTIP_LINE_COLOR_CONFIG, X_LABEL_SIZE, X_LABEL_SIZE_MOBILE, Y_LABEL_SIZE, Y_LABEL_SIZE_MOBILE } from './constants';
|
|
4
4
|
import { formatLegendData, intervalFormatter, tooltipFormatter, xAxisLabelFormatter } from './formatters';
|
|
5
5
|
import { findLastIndexesBeforeWeekend } from './utils';
|
|
6
|
-
const getOption = (chartData, timeUnit, isDark, lang) => {
|
|
6
|
+
const getOption = (chartData, timeUnit, isDark, isDesktop, isMobile, lang) => {
|
|
7
7
|
const currentTheme = isDark ? Theme.Dark : Theme.Light;
|
|
8
8
|
const dataTimestamps = chartData[0].power.map(x => new Date(x.point).getTime());
|
|
9
9
|
const weekendsIndexes = findLastIndexesBeforeWeekend(dataTimestamps);
|
|
@@ -71,6 +71,15 @@ const getOption = (chartData, timeUnit, isDark, lang) => {
|
|
|
71
71
|
};
|
|
72
72
|
});
|
|
73
73
|
const legendData = formatLegendData(chartData);
|
|
74
|
+
const baseGridLines = getGridLines({
|
|
75
|
+
isDark,
|
|
76
|
+
chartWidth: CHART_WIDTH,
|
|
77
|
+
chartHeight: CHART_HEIGHT,
|
|
78
|
+
xLabelsSize: isMobile ? X_LABEL_SIZE_MOBILE : X_LABEL_SIZE,
|
|
79
|
+
yLabelSize: isMobile ? Y_LABEL_SIZE_MOBILE : Y_LABEL_SIZE,
|
|
80
|
+
bottomLeftBox: false,
|
|
81
|
+
marginBottom: isMobile ? LEGEND_HEIGHT_MOBILE : LEGEND_HEIGHT
|
|
82
|
+
});
|
|
74
83
|
return {
|
|
75
84
|
animation: false,
|
|
76
85
|
legend: {
|
|
@@ -123,10 +132,19 @@ const getOption = (chartData, timeUnit, isDark, lang) => {
|
|
|
123
132
|
boundaryGap: ['10%', '10%'],
|
|
124
133
|
axisLabel: {
|
|
125
134
|
showMaxLabel: false,
|
|
126
|
-
showMinLabel: false
|
|
135
|
+
showMinLabel: false,
|
|
136
|
+
margin: isDesktop ? 8 : 6
|
|
127
137
|
}
|
|
128
138
|
},
|
|
129
|
-
series: seriesData
|
|
139
|
+
series: seriesData,
|
|
140
|
+
grid: [{
|
|
141
|
+
name: 'main-grid',
|
|
142
|
+
top: '0px',
|
|
143
|
+
left: '0px',
|
|
144
|
+
right: `${isMobile ? Y_LABEL_SIZE_MOBILE : Y_LABEL_SIZE}px`,
|
|
145
|
+
bottom: `${isMobile ? X_LABEL_SIZE_MOBILE : X_LABEL_SIZE}px`
|
|
146
|
+
}],
|
|
147
|
+
graphic: [...baseGridLines]
|
|
130
148
|
};
|
|
131
149
|
};
|
|
132
150
|
export { getOption };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOption.js","names":["Theme","themeColors","CurrencyPowerBalanceTimeUnit","COLOR_CONFIG","TOOLTIP_LINE_COLOR_CONFIG","formatLegendData","intervalFormatter","tooltipFormatter","xAxisLabelFormatter","findLastIndexesBeforeWeekend","getOption","chartData","timeUnit","isDark","lang","currentTheme","Dark","Light","dataTimestamps","power","map","x","Date","point","getTime","weekendsIndexes","disableWeekendsIndicator","CurrentDay","PreviousDay","M3","includes","length","weekendsMarks","item","xAxis","label","formatter","seriesData","_ref","index","currency","name","type","symbol","showSymbol","itemStyle","color","data","_ref2","price","markLine","show","position","align","distance","padding","fontSize","shadowBlur","shadowOffsetX","shadowOffsetY","borderWidth","textPrimary","shadowColor","borderRadius","backgroundColor","borderPrimary","bgSecondary","emphasis","lineStyle","width","opacity","undefined","legendData","animation","legend","bottom","icon","tooltip","trigger","axisPointer","axis","z","DARK","LIGHT","extraCssText","axisTick","axisLine","splitLine","axisLabel","margin","rotate","interval","yAxis","splitNumber","boundaryGap","showMaxLabel","showMinLabel","series"],"sources":["../../../../../../src/CurrencyPowerBalanceWidget/components/Chart/options/getOption.ts"],"sourcesContent":["import { Theme, themeColors } from '@oanda/labs-widget-common';\n\nimport type { CurrencyPowerBalance } from '../../../../gql/types/graphql';\nimport { CurrencyPowerBalanceTimeUnit } from '../../../../gql/types/graphql';\nimport { COLOR_CONFIG, TOOLTIP_LINE_COLOR_CONFIG } from './constants';\nimport {\n formatLegendData,\n intervalFormatter,\n tooltipFormatter,\n xAxisLabelFormatter,\n} from './formatters';\nimport { findLastIndexesBeforeWeekend } from './utils';\n\nconst getOption = (\n chartData: CurrencyPowerBalance[],\n timeUnit: CurrencyPowerBalanceTimeUnit,\n isDark: boolean,\n lang: (key: string) => string\n) => {\n const currentTheme = isDark ? Theme.Dark : Theme.Light;\n const dataTimestamps = chartData[0].power.map((x) =>\n new Date(x.point).getTime()\n );\n const weekendsIndexes = findLastIndexesBeforeWeekend(dataTimestamps);\n const disableWeekendsIndicator =\n [\n CurrencyPowerBalanceTimeUnit.CurrentDay,\n CurrencyPowerBalanceTimeUnit.PreviousDay,\n CurrencyPowerBalanceTimeUnit.M3,\n ].includes(timeUnit) || weekendsIndexes.length === 0;\n\n const weekendsMarks = weekendsIndexes.map((item) => ({\n xAxis: item,\n label: {\n formatter: () => lang('market_closed'),\n },\n }));\n\n const seriesData = chartData.map(({ currency, power }, index) => ({\n name: currency,\n type: 'line',\n symbol: 'circle',\n showSymbol: false,\n itemStyle: {\n color: COLOR_CONFIG[currency],\n },\n data: power.map(({ point, price }) => [point, price]),\n markLine:\n index === chartData.length - 1 && !disableWeekendsIndicator\n ? {\n label: {\n show: false,\n position: 'end',\n align: 'center',\n distance: -32,\n padding: [8, 8],\n fontSize: 12,\n shadowBlur: 24,\n shadowOffsetX: 0,\n shadowOffsetY: 6,\n borderWidth: 0,\n color: themeColors.textPrimary,\n shadowColor: 'rgba(0,0,0,0.1)',\n borderRadius: 4,\n backgroundColor: isDark\n ? themeColors.borderPrimary[currentTheme]\n : themeColors.bgSecondary[currentTheme],\n },\n show: false,\n emphasis: {\n label: {\n show: true,\n },\n lineStyle: {\n width: 1,\n opacity: 0,\n color: themeColors.borderPrimary[currentTheme],\n },\n },\n symbol: ['none', 'none'],\n itemStyle: {\n color: themeColors.borderPrimary[currentTheme],\n },\n data: weekendsMarks,\n }\n : undefined,\n }));\n\n const legendData = formatLegendData(chartData);\n\n return {\n animation: false,\n legend: {\n data: legendData,\n bottom: 10,\n icon: 'circle',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n axis: 'x',\n z: 0,\n lineStyle: {\n color: isDark\n ? TOOLTIP_LINE_COLOR_CONFIG.DARK\n : TOOLTIP_LINE_COLOR_CONFIG.LIGHT,\n },\n },\n formatter: tooltipFormatter,\n extraCssText: 'z-index: 1',\n },\n xAxis: {\n type: 'category',\n axisTick: {\n show: false,\n },\n axisLine: { show: false },\n splitLine: {\n show: true,\n },\n axisLabel: {\n padding: [0, 0, 0, 4],\n align: 'left',\n margin: 10,\n rotate: -45,\n interval: intervalFormatter(seriesData[0].data.length),\n formatter: (label: string) => xAxisLabelFormatter(label, timeUnit),\n },\n },\n yAxis: {\n type: 'value',\n position: 'right',\n splitNumber: 5,\n axisLine: { show: false },\n axisTick: { show: false },\n boundaryGap: ['10%', '10%'],\n axisLabel: {\n showMaxLabel: false,\n showMinLabel: false,\n },\n },\n series: seriesData,\n };\n};\n\nexport { getOption };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"getOption.js","names":["getGridLines","Theme","themeColors","CurrencyPowerBalanceTimeUnit","CHART_HEIGHT","CHART_WIDTH","COLOR_CONFIG","LEGEND_HEIGHT","LEGEND_HEIGHT_MOBILE","TOOLTIP_LINE_COLOR_CONFIG","X_LABEL_SIZE","X_LABEL_SIZE_MOBILE","Y_LABEL_SIZE","Y_LABEL_SIZE_MOBILE","formatLegendData","intervalFormatter","tooltipFormatter","xAxisLabelFormatter","findLastIndexesBeforeWeekend","getOption","chartData","timeUnit","isDark","isDesktop","isMobile","lang","currentTheme","Dark","Light","dataTimestamps","power","map","x","Date","point","getTime","weekendsIndexes","disableWeekendsIndicator","CurrentDay","PreviousDay","M3","includes","length","weekendsMarks","item","xAxis","label","formatter","seriesData","_ref","index","currency","name","type","symbol","showSymbol","itemStyle","color","data","_ref2","price","markLine","show","position","align","distance","padding","fontSize","shadowBlur","shadowOffsetX","shadowOffsetY","borderWidth","textPrimary","shadowColor","borderRadius","backgroundColor","borderPrimary","bgSecondary","emphasis","lineStyle","width","opacity","undefined","legendData","baseGridLines","chartWidth","chartHeight","xLabelsSize","yLabelSize","bottomLeftBox","marginBottom","animation","legend","bottom","icon","tooltip","trigger","axisPointer","axis","z","DARK","LIGHT","extraCssText","axisTick","axisLine","splitLine","axisLabel","margin","rotate","interval","yAxis","splitNumber","boundaryGap","showMaxLabel","showMinLabel","series","grid","top","left","right","graphic"],"sources":["../../../../../../src/CurrencyPowerBalanceWidget/components/Chart/options/getOption.ts"],"sourcesContent":["import { getGridLines, Theme, themeColors } from '@oanda/labs-widget-common';\n\nimport type { CurrencyPowerBalance } from '../../../../gql/types/graphql';\nimport { CurrencyPowerBalanceTimeUnit } from '../../../../gql/types/graphql';\nimport {\n CHART_HEIGHT,\n CHART_WIDTH,\n COLOR_CONFIG,\n LEGEND_HEIGHT,\n LEGEND_HEIGHT_MOBILE,\n TOOLTIP_LINE_COLOR_CONFIG,\n X_LABEL_SIZE,\n X_LABEL_SIZE_MOBILE,\n Y_LABEL_SIZE,\n Y_LABEL_SIZE_MOBILE,\n} from './constants';\nimport {\n formatLegendData,\n intervalFormatter,\n tooltipFormatter,\n xAxisLabelFormatter,\n} from './formatters';\nimport { findLastIndexesBeforeWeekend } from './utils';\n\nconst getOption = (\n chartData: CurrencyPowerBalance[],\n timeUnit: CurrencyPowerBalanceTimeUnit,\n isDark: boolean,\n isDesktop: boolean,\n isMobile: boolean,\n lang: (key: string) => string\n) => {\n const currentTheme = isDark ? Theme.Dark : Theme.Light;\n const dataTimestamps = chartData[0].power.map((x) =>\n new Date(x.point).getTime()\n );\n const weekendsIndexes = findLastIndexesBeforeWeekend(dataTimestamps);\n const disableWeekendsIndicator =\n [\n CurrencyPowerBalanceTimeUnit.CurrentDay,\n CurrencyPowerBalanceTimeUnit.PreviousDay,\n CurrencyPowerBalanceTimeUnit.M3,\n ].includes(timeUnit) || weekendsIndexes.length === 0;\n\n const weekendsMarks = weekendsIndexes.map((item) => ({\n xAxis: item,\n label: {\n formatter: () => lang('market_closed'),\n },\n }));\n\n const seriesData = chartData.map(({ currency, power }, index) => ({\n name: currency,\n type: 'line',\n symbol: 'circle',\n showSymbol: false,\n itemStyle: {\n color: COLOR_CONFIG[currency],\n },\n data: power.map(({ point, price }) => [point, price]),\n markLine:\n index === chartData.length - 1 && !disableWeekendsIndicator\n ? {\n label: {\n show: false,\n position: 'end',\n align: 'center',\n distance: -32,\n padding: [8, 8],\n fontSize: 12,\n shadowBlur: 24,\n shadowOffsetX: 0,\n shadowOffsetY: 6,\n borderWidth: 0,\n color: themeColors.textPrimary,\n shadowColor: 'rgba(0,0,0,0.1)',\n borderRadius: 4,\n backgroundColor: isDark\n ? themeColors.borderPrimary[currentTheme]\n : themeColors.bgSecondary[currentTheme],\n },\n show: false,\n emphasis: {\n label: {\n show: true,\n },\n lineStyle: {\n width: 1,\n opacity: 0,\n color: themeColors.borderPrimary[currentTheme],\n },\n },\n symbol: ['none', 'none'],\n itemStyle: {\n color: themeColors.borderPrimary[currentTheme],\n },\n data: weekendsMarks,\n }\n : undefined,\n }));\n\n const legendData = formatLegendData(chartData);\n\n const baseGridLines = getGridLines({\n isDark,\n chartWidth: CHART_WIDTH,\n chartHeight: CHART_HEIGHT,\n xLabelsSize: isMobile ? X_LABEL_SIZE_MOBILE : X_LABEL_SIZE,\n yLabelSize: isMobile ? Y_LABEL_SIZE_MOBILE : Y_LABEL_SIZE,\n bottomLeftBox: false,\n marginBottom: isMobile ? LEGEND_HEIGHT_MOBILE : LEGEND_HEIGHT,\n });\n\n return {\n animation: false,\n legend: {\n data: legendData,\n bottom: 10,\n icon: 'circle',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n axis: 'x',\n z: 0,\n lineStyle: {\n color: isDark\n ? TOOLTIP_LINE_COLOR_CONFIG.DARK\n : TOOLTIP_LINE_COLOR_CONFIG.LIGHT,\n },\n },\n formatter: tooltipFormatter,\n extraCssText: 'z-index: 1',\n },\n xAxis: {\n type: 'category',\n axisTick: {\n show: false,\n },\n axisLine: { show: false },\n splitLine: {\n show: true,\n },\n axisLabel: {\n padding: [0, 0, 0, 4],\n align: 'left',\n margin: 10,\n rotate: -45,\n interval: intervalFormatter(seriesData[0].data.length),\n formatter: (label: string) => xAxisLabelFormatter(label, timeUnit),\n },\n },\n yAxis: {\n type: 'value',\n position: 'right',\n splitNumber: 5,\n axisLine: { show: false },\n axisTick: { show: false },\n boundaryGap: ['10%', '10%'],\n axisLabel: {\n showMaxLabel: false,\n showMinLabel: false,\n margin: isDesktop ? 8 : 6,\n },\n },\n series: seriesData,\n grid: [\n {\n name: 'main-grid',\n top: '0px',\n left: '0px',\n right: `${isMobile ? Y_LABEL_SIZE_MOBILE : Y_LABEL_SIZE}px`,\n bottom: `${isMobile ? X_LABEL_SIZE_MOBILE : X_LABEL_SIZE}px`,\n },\n ],\n graphic: [...baseGridLines],\n };\n};\n\nexport { getOption };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/CurrencyPowerBalanceWidget/components/Chart/options/index.ts"],"sourcesContent":["export * from './getOption';\
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/CurrencyPowerBalanceWidget/components/Chart/options/index.ts"],"sourcesContent":["export * from './getOption';\n"],"mappings":"AAAA,cAAc,aAAa","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CurrencyPowerBalance } from '../../../../gql/types/graphql';
|
|
2
2
|
import { CurrencyPowerBalanceTimeUnit } from '../../../../gql/types/graphql';
|
|
3
|
-
declare const getOption: (chartData: CurrencyPowerBalance[], timeUnit: CurrencyPowerBalanceTimeUnit, isDark: boolean, lang: (key: string) => string) => {
|
|
3
|
+
declare const getOption: (chartData: CurrencyPowerBalance[], timeUnit: CurrencyPowerBalanceTimeUnit, isDark: boolean, isDesktop: boolean, isMobile: boolean, lang: (key: string) => string) => {
|
|
4
4
|
animation: boolean;
|
|
5
5
|
legend: {
|
|
6
6
|
data: {
|
|
@@ -58,6 +58,7 @@ declare const getOption: (chartData: CurrencyPowerBalance[], timeUnit: CurrencyP
|
|
|
58
58
|
axisLabel: {
|
|
59
59
|
showMaxLabel: boolean;
|
|
60
60
|
showMinLabel: boolean;
|
|
61
|
+
margin: number;
|
|
61
62
|
};
|
|
62
63
|
};
|
|
63
64
|
series: {
|
|
@@ -109,5 +110,107 @@ declare const getOption: (chartData: CurrencyPowerBalance[], timeUnit: CurrencyP
|
|
|
109
110
|
}[];
|
|
110
111
|
} | undefined;
|
|
111
112
|
}[];
|
|
113
|
+
grid: {
|
|
114
|
+
name: string;
|
|
115
|
+
top: string;
|
|
116
|
+
left: string;
|
|
117
|
+
right: string;
|
|
118
|
+
bottom: string;
|
|
119
|
+
}[];
|
|
120
|
+
graphic: ({
|
|
121
|
+
top: number | undefined;
|
|
122
|
+
bottom: number | undefined;
|
|
123
|
+
left: number | undefined;
|
|
124
|
+
right: number | undefined;
|
|
125
|
+
shape: {
|
|
126
|
+
x1: number;
|
|
127
|
+
y1: number;
|
|
128
|
+
x2: number;
|
|
129
|
+
y2: number;
|
|
130
|
+
};
|
|
131
|
+
type: string;
|
|
132
|
+
silent: boolean;
|
|
133
|
+
z: number;
|
|
134
|
+
style: {
|
|
135
|
+
stroke: string;
|
|
136
|
+
lineWidth: number;
|
|
137
|
+
};
|
|
138
|
+
} | {
|
|
139
|
+
top: number;
|
|
140
|
+
shape: {
|
|
141
|
+
x1: number;
|
|
142
|
+
y1: number;
|
|
143
|
+
x2: number;
|
|
144
|
+
y2: number;
|
|
145
|
+
};
|
|
146
|
+
type: string;
|
|
147
|
+
silent: boolean;
|
|
148
|
+
z: number;
|
|
149
|
+
style: {
|
|
150
|
+
stroke: string;
|
|
151
|
+
lineWidth: number;
|
|
152
|
+
};
|
|
153
|
+
} | {
|
|
154
|
+
right: number;
|
|
155
|
+
shape: {
|
|
156
|
+
x1: number;
|
|
157
|
+
y1: number;
|
|
158
|
+
x2: number;
|
|
159
|
+
y2: number;
|
|
160
|
+
};
|
|
161
|
+
type: string;
|
|
162
|
+
silent: boolean;
|
|
163
|
+
z: number;
|
|
164
|
+
style: {
|
|
165
|
+
stroke: string;
|
|
166
|
+
lineWidth: number;
|
|
167
|
+
};
|
|
168
|
+
} | {
|
|
169
|
+
bottom: number;
|
|
170
|
+
shape: {
|
|
171
|
+
x1: number;
|
|
172
|
+
y1: number;
|
|
173
|
+
x2: number;
|
|
174
|
+
y2: number;
|
|
175
|
+
};
|
|
176
|
+
type: string;
|
|
177
|
+
silent: boolean;
|
|
178
|
+
z: number;
|
|
179
|
+
style: {
|
|
180
|
+
stroke: string;
|
|
181
|
+
lineWidth: number;
|
|
182
|
+
};
|
|
183
|
+
} | {
|
|
184
|
+
left: number;
|
|
185
|
+
shape: {
|
|
186
|
+
x1: number;
|
|
187
|
+
y1: number;
|
|
188
|
+
x2: number;
|
|
189
|
+
y2: number;
|
|
190
|
+
};
|
|
191
|
+
type: string;
|
|
192
|
+
silent: boolean;
|
|
193
|
+
z: number;
|
|
194
|
+
style: {
|
|
195
|
+
stroke: string;
|
|
196
|
+
lineWidth: number;
|
|
197
|
+
};
|
|
198
|
+
} | {
|
|
199
|
+
right: number;
|
|
200
|
+
bottom: number;
|
|
201
|
+
shape: {
|
|
202
|
+
x1: number;
|
|
203
|
+
y1: number;
|
|
204
|
+
x2: number;
|
|
205
|
+
y2: number;
|
|
206
|
+
};
|
|
207
|
+
type: string;
|
|
208
|
+
silent: boolean;
|
|
209
|
+
z: number;
|
|
210
|
+
style: {
|
|
211
|
+
stroke: string;
|
|
212
|
+
lineWidth: number;
|
|
213
|
+
};
|
|
214
|
+
})[];
|
|
112
215
|
};
|
|
113
216
|
export { getOption };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oanda/labs-currency-power-balance-widget",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.158",
|
|
4
4
|
"description": "Labs Currency Power Balance Widget",
|
|
5
5
|
"main": "dist/main/index.js",
|
|
6
6
|
"module": "dist/module/index.js",
|
|
@@ -12,15 +12,15 @@
|
|
|
12
12
|
"author": "OANDA",
|
|
13
13
|
"license": "UNLICENSED",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@oanda/labs-widget-common": "^1.0.
|
|
15
|
+
"@oanda/labs-widget-common": "^1.0.219",
|
|
16
16
|
"@oanda/mono-i18n": "10.0.1",
|
|
17
|
-
"echarts": "
|
|
18
|
-
"echarts-for-react": "3.0.
|
|
17
|
+
"echarts": "6.0.0",
|
|
18
|
+
"echarts-for-react": "3.0.4",
|
|
19
19
|
"graphql": "16.8.1"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@graphql-codegen/cli": "5.0.0",
|
|
23
23
|
"@graphql-codegen/client-preset": "4.1.0"
|
|
24
24
|
},
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "39a4ba7320ad2596a931ebc3b19cda09da14f9de"
|
|
26
26
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { BaseChartRef } from '@oanda/labs-widget-common';
|
|
2
1
|
import {
|
|
3
2
|
BaseChart,
|
|
4
3
|
getChartTheme,
|
|
@@ -17,9 +16,9 @@ import {
|
|
|
17
16
|
} from 'echarts/components';
|
|
18
17
|
import * as echarts from 'echarts/core';
|
|
19
18
|
import { CanvasRenderer } from 'echarts/renderers';
|
|
20
|
-
import React
|
|
19
|
+
import React from 'react';
|
|
21
20
|
|
|
22
|
-
import { getOption
|
|
21
|
+
import { getOption } from './options';
|
|
23
22
|
import { CHART_HEIGHT } from './options/constants';
|
|
24
23
|
import type { ChartProps } from './types';
|
|
25
24
|
|
|
@@ -42,29 +41,16 @@ const Chart = ({ values, timeUnit, currencies }: ChartProps) => {
|
|
|
42
41
|
const isDesktop = size === Size.DESKTOP;
|
|
43
42
|
const isMobile = size === Size.MOBILE;
|
|
44
43
|
|
|
45
|
-
const echartRef = useRef<BaseChartRef | null>(null);
|
|
46
|
-
|
|
47
44
|
const chartData = currencies
|
|
48
45
|
? values.filter(({ currency }) => currencies.includes(currency))
|
|
49
46
|
: values;
|
|
50
47
|
|
|
51
|
-
useEffect(() => {
|
|
52
|
-
if (echartRef.current) {
|
|
53
|
-
const echartInstance = echartRef.current.getEchartsInstance();
|
|
54
|
-
|
|
55
|
-
echartInstance.setOption(
|
|
56
|
-
getResponsiveOption(isDesktop, isMobile, isDark)
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
}, [echartRef, isDesktop, isMobile, isDark]);
|
|
60
|
-
|
|
61
48
|
return (
|
|
62
49
|
<BaseChart
|
|
63
|
-
ref={echartRef}
|
|
64
50
|
chartHeight={CHART_HEIGHT}
|
|
65
51
|
echarts={echarts}
|
|
66
52
|
isDark={isDark}
|
|
67
|
-
option={getOption(chartData, timeUnit, isDark, lang)}
|
|
53
|
+
option={getOption(chartData, timeUnit, isDark, isDesktop, isMobile, lang)}
|
|
68
54
|
/>
|
|
69
55
|
);
|
|
70
56
|
};
|