@oanda/labs-crowd-view-widget 1.0.59 → 1.0.61
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 +492 -0
- package/dist/main/CrowdViewWidget/Main.js +7 -13
- package/dist/main/CrowdViewWidget/Main.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js +16 -7
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.js +20 -1
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfig.js +19 -0
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfig.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/index.js +4 -4
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/index.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/getOption.js +2 -1
- package/dist/main/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
- package/dist/main/CrowdViewWidget/selectConfig.js +58 -4
- package/dist/main/CrowdViewWidget/selectConfig.js.map +1 -1
- package/dist/main/translations/index.js +3 -11
- package/dist/main/translations/index.js.map +1 -1
- package/dist/main/translations/sources/en.json +7 -7
- package/dist/main/translations/sources/ja.json +30 -0
- package/dist/module/CrowdViewWidget/Main.js +10 -16
- package/dist/module/CrowdViewWidget/Main.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js +16 -7
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.js +20 -1
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfig.js +12 -0
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfig.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/index.js +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/index.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/getOption.js +2 -1
- package/dist/module/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
- package/dist/module/CrowdViewWidget/selectConfig.js +57 -4
- package/dist/module/CrowdViewWidget/selectConfig.js.map +1 -1
- package/dist/module/translations/index.js +3 -11
- package/dist/module/translations/index.js.map +1 -1
- package/dist/module/translations/sources/en.json +7 -7
- package/dist/module/translations/sources/ja.json +30 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.d.ts +2 -1
- package/dist/types/CrowdViewWidget/components/Chart/dataUtils/{getInstrumentConfigForDivision.d.ts → getInstrumentConfig.d.ts} +1 -1
- package/dist/types/CrowdViewWidget/components/Chart/dataUtils/index.d.ts +1 -1
- package/dist/types/CrowdViewWidget/selectConfig.d.ts +8 -2
- package/lokalise.config.json +2 -2
- package/package.json +3 -3
- package/src/CrowdViewWidget/Main.tsx +11 -17
- package/src/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.ts +19 -6
- package/src/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.ts +26 -1
- package/src/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfig.ts +20 -0
- package/src/CrowdViewWidget/components/Chart/dataUtils/index.ts +1 -1
- package/src/CrowdViewWidget/components/Chart/getOption.ts +1 -0
- package/src/CrowdViewWidget/selectConfig.ts +75 -4
- package/src/translations/index.ts +2 -6
- package/src/translations/sources/en.json +7 -7
- package/src/translations/sources/ja.json +30 -0
- package/test/components/Chart/dataUtils/getBucketWidthMultiplayer.test.ts +129 -1
- package/test/utils/instrumentUtils.test.ts +38 -9
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfigForDivision.js +0 -13
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfigForDivision.js.map +0 -1
- package/dist/main/translations/sources/es.json +0 -2
- package/dist/main/translations/sources/th.json +0 -2
- package/dist/main/translations/sources/zh_TW.json +0 -2
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfigForDivision.js +0 -6
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfigForDivision.js.map +0 -1
- package/dist/module/translations/sources/es.json +0 -2
- package/dist/module/translations/sources/th.json +0 -2
- package/dist/module/translations/sources/zh_TW.json +0 -2
- package/src/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfigForDivision.ts +0 -11
- package/src/translations/sources/es.json +0 -2
- package/src/translations/sources/th.json +0 -2
- package/src/translations/sources/zh_TW.json +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOption.js","names":["CHART_CONFIG","getDataZoomConfig","getGridConfig","getGridLines","getLabelsConfig","getSeriesCandlestickConfig","getSeriesHeatmapConfig","getSeriesSentimentConfig","getTooltipConfig","getVisualMapConfig","getXAxisConfig","getYAxisConfig","isDifferenceGreaterThanTwoWeeks","getChartStyles","getOption","_ref","mainData","dates","candlesOpen","candlesClose","candlesLow","candlesHigh","bookPrices","bookIndexes","sentimentShorts","sentimentLongs","additionalData","bucketWidth","buckets","displayPrecision","bookType","sentimentThresholdMin","sentimentThresholdMax","isLoading","isDark","isDesktop","labelCallback","locale","styles","selectedPriceRef","current","initialStartZoom","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","visibleXAxisData","slice","length","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","heatmapChart","sentimentChart","animation","tooltip","tooltipLinesColor","grid","xAxis","yAxis","dataZoom","visualMap","sentimentLongColor","sentimentShortColor","graphic","dataset","source","series"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/getOption.ts"],"sourcesContent":["import { CHART_CONFIG } from '../../constants';\nimport {\n getDataZoomConfig,\n getGridConfig,\n getGridLines,\n getLabelsConfig,\n getSeriesCandlestickConfig,\n getSeriesHeatmapConfig,\n getSeriesSentimentConfig,\n getTooltipConfig,\n getVisualMapConfig,\n getXAxisConfig,\n getYAxisConfig,\n} from './chartOptions';\nimport { isDifferenceGreaterThanTwoWeeks } from './chartUtils';\nimport { getChartStyles } from './chartUtils/getChartStyles';\nimport type { GetOptionType } from './types';\n\nexport const getOption: GetOptionType = ({\n mainData: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n },\n additionalData: {\n bucketWidth,\n buckets,\n displayPrecision,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n },\n isLoading,\n isDark,\n isDesktop,\n labelCallback,\n locale,\n}) => {\n const styles = getChartStyles(isDark);\n const selectedPriceRef = { current: 0 };\n\n const initialStartZoom = isDesktop\n ? CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP\n : CHART_CONFIG.INITIAL_START_ZOOM_MOBILE;\n\n const visibleXAxisData = dates.slice(\n (dates.length * initialStartZoom) / 100,\n (dates.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const heatmapChart =\n bookPrices && bookPrices.length > 0\n ? [\n getSeriesHeatmapConfig({\n bucketWidth,\n buckets,\n isDark,\n sentimentThresholdMax,\n sentimentThresholdMin,\n isLoading,\n }),\n ]\n : [];\n\n const sentimentChart =\n sentimentLongs && sentimentLongs.length > 0\n ? [\n getSeriesSentimentConfig({\n styles,\n isLoading,\n }),\n ]\n : [];\n\n return {\n animation: false,\n tooltip: getTooltipConfig({\n bookType,\n bucketWidth,\n buckets,\n labelCallback,\n selectedPriceRef,\n tooltipLinesColor: styles.tooltipLinesColor,\n sentimentLongs,\n sentimentShorts,\n isDesktop,\n isDark,\n locale,\n }),\n grid: getGridConfig({ isDesktop }),\n xAxis: getXAxisConfig({\n dates,\n isGreaterThanTwoWeeks,\n locale,\n isDesktop,\n }),\n yAxis: getYAxisConfig({\n bucketWidth,\n displayPrecision,\n selectedPriceRef,\n }),\n dataZoom: getDataZoomConfig({ isDesktop }),\n visualMap: getVisualMapConfig({\n sentimentLongColor: styles.sentimentLongColor,\n sentimentShortColor: styles.sentimentShortColor,\n }),\n graphic: [\n ...getGridLines({ isDark, isDesktop }),\n ...getLabelsConfig({ isDark, isDesktop, labelCallback }),\n ],\n dataset: {\n source: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices: bookPrices ?? [],\n bookIndexes: bookIndexes ?? [],\n sentimentShorts,\n sentimentLongs,\n },\n },\n series: [\n getSeriesCandlestickConfig({\n styles,\n isLoading,\n }),\n ...heatmapChart,\n ...sentimentChart,\n ],\n };\n};\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getOption.js","names":["CHART_CONFIG","getDataZoomConfig","getGridConfig","getGridLines","getLabelsConfig","getSeriesCandlestickConfig","getSeriesHeatmapConfig","getSeriesSentimentConfig","getTooltipConfig","getVisualMapConfig","getXAxisConfig","getYAxisConfig","isDifferenceGreaterThanTwoWeeks","getChartStyles","getOption","_ref","mainData","dates","candlesOpen","candlesClose","candlesLow","candlesHigh","bookPrices","bookIndexes","sentimentShorts","sentimentLongs","additionalData","bucketWidth","buckets","displayPrecision","bookType","sentimentThresholdMin","sentimentThresholdMax","isLoading","isDark","isDesktop","labelCallback","locale","styles","selectedPriceRef","current","initialStartZoom","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","visibleXAxisData","slice","length","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","heatmapChart","sentimentChart","animation","tooltip","tooltipLinesColor","grid","xAxis","yAxis","dataZoom","visualMap","sentimentLongColor","sentimentShortColor","graphic","dataset","source","series"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/getOption.ts"],"sourcesContent":["import { CHART_CONFIG } from '../../constants';\nimport {\n getDataZoomConfig,\n getGridConfig,\n getGridLines,\n getLabelsConfig,\n getSeriesCandlestickConfig,\n getSeriesHeatmapConfig,\n getSeriesSentimentConfig,\n getTooltipConfig,\n getVisualMapConfig,\n getXAxisConfig,\n getYAxisConfig,\n} from './chartOptions';\nimport { isDifferenceGreaterThanTwoWeeks } from './chartUtils';\nimport { getChartStyles } from './chartUtils/getChartStyles';\nimport type { GetOptionType } from './types';\n\nexport const getOption: GetOptionType = ({\n mainData: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n },\n additionalData: {\n bucketWidth,\n buckets,\n displayPrecision,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n },\n isLoading,\n isDark,\n isDesktop,\n labelCallback,\n locale,\n}) => {\n const styles = getChartStyles(isDark);\n const selectedPriceRef = { current: 0 };\n\n const initialStartZoom = isDesktop\n ? CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP\n : CHART_CONFIG.INITIAL_START_ZOOM_MOBILE;\n\n const visibleXAxisData = dates.slice(\n (dates.length * initialStartZoom) / 100,\n (dates.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const heatmapChart =\n bookPrices && bookPrices.length > 0\n ? [\n getSeriesHeatmapConfig({\n bucketWidth,\n buckets,\n isDark,\n sentimentThresholdMax,\n sentimentThresholdMin,\n isLoading,\n }),\n ]\n : [];\n\n const sentimentChart =\n sentimentLongs && sentimentLongs.length > 0\n ? [\n getSeriesSentimentConfig({\n styles,\n isLoading,\n }),\n ]\n : [];\n\n return {\n animation: false,\n tooltip: getTooltipConfig({\n bookType,\n bucketWidth,\n buckets,\n labelCallback,\n selectedPriceRef,\n tooltipLinesColor: styles.tooltipLinesColor,\n sentimentLongs,\n sentimentShorts,\n isDesktop,\n isDark,\n locale,\n }),\n grid: getGridConfig({ isDesktop }),\n xAxis: getXAxisConfig({\n dates,\n isGreaterThanTwoWeeks,\n locale,\n isDesktop,\n }),\n yAxis: getYAxisConfig({\n bucketWidth,\n displayPrecision,\n selectedPriceRef,\n }),\n dataZoom: getDataZoomConfig({ isDesktop }),\n visualMap: getVisualMapConfig({\n sentimentLongColor: styles.sentimentLongColor,\n sentimentShortColor: styles.sentimentShortColor,\n }),\n graphic: [\n ...getGridLines({ isDark, isDesktop }),\n ...getLabelsConfig({ isDark, isDesktop, labelCallback }),\n ],\n dataset: {\n source: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices: bookPrices ?? [],\n bookIndexes: bookIndexes ?? [],\n sentimentShorts,\n sentimentLongs,\n },\n },\n series: [\n getSeriesCandlestickConfig({\n styles,\n isLoading,\n locale,\n }),\n ...heatmapChart,\n ...sentimentChart,\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -57,12 +57,65 @@ const instrumentSelectConfig = [...instrumentSelectConfigOC, {
|
|
|
57
57
|
id: InstrumentId.XAG_USD,
|
|
58
58
|
label: 'XAG/USD'
|
|
59
59
|
}];
|
|
60
|
-
const
|
|
60
|
+
const instrumentSelectConfigJa = [{
|
|
61
|
+
id: InstrumentId.USD_JPY,
|
|
62
|
+
label: 'USD/JPY'
|
|
63
|
+
}, {
|
|
64
|
+
id: InstrumentId.EUR_JPY,
|
|
65
|
+
label: 'EUR/JPY'
|
|
66
|
+
}, {
|
|
67
|
+
id: InstrumentId.GBP_JPY,
|
|
68
|
+
label: 'GBP/JPY'
|
|
69
|
+
}, {
|
|
70
|
+
id: InstrumentId.AUD_JPY,
|
|
71
|
+
label: 'AUD/JPY'
|
|
72
|
+
}, {
|
|
73
|
+
id: InstrumentId.EUR_USD,
|
|
74
|
+
label: 'EUR/USD'
|
|
75
|
+
}, {
|
|
76
|
+
id: InstrumentId.EUR_AUD,
|
|
77
|
+
label: 'EUR/AUD'
|
|
78
|
+
}, {
|
|
79
|
+
id: InstrumentId.EUR_GBP,
|
|
80
|
+
label: 'EUR/GBP'
|
|
81
|
+
}, {
|
|
82
|
+
id: InstrumentId.EUR_CHF,
|
|
83
|
+
label: 'EUR/CHF'
|
|
84
|
+
}, {
|
|
85
|
+
id: InstrumentId.USD_CHF,
|
|
86
|
+
label: 'USD/CHF'
|
|
87
|
+
}, {
|
|
88
|
+
id: InstrumentId.USD_CAD,
|
|
89
|
+
label: 'USD/CAD'
|
|
90
|
+
}, {
|
|
91
|
+
id: InstrumentId.GBP_USD,
|
|
92
|
+
label: 'GBP/USD'
|
|
93
|
+
}, {
|
|
94
|
+
id: InstrumentId.GBP_CHF,
|
|
95
|
+
label: 'GBP/CHF'
|
|
96
|
+
}, {
|
|
97
|
+
id: InstrumentId.AUD_USD,
|
|
98
|
+
label: 'AUD/USD'
|
|
99
|
+
}, {
|
|
100
|
+
id: InstrumentId.NZD_USD,
|
|
101
|
+
label: 'NZD/USD'
|
|
102
|
+
}, {
|
|
103
|
+
id: InstrumentId.XAU_USD,
|
|
104
|
+
label: 'XAU/USD'
|
|
105
|
+
}, {
|
|
106
|
+
id: InstrumentId.XAG_USD,
|
|
107
|
+
label: 'XAG/USD'
|
|
108
|
+
}];
|
|
109
|
+
const getGranularitySelectConfig = (lang, isJapanese) => [{
|
|
61
110
|
id: Granularity.H1,
|
|
62
|
-
label: '
|
|
111
|
+
label: lang(isJapanese ? 'hour_plural' : 'hour', {
|
|
112
|
+
count: 1
|
|
113
|
+
})
|
|
63
114
|
}, {
|
|
64
115
|
id: Granularity.H4,
|
|
65
|
-
label: '
|
|
116
|
+
label: lang('hour_plural', {
|
|
117
|
+
count: 4
|
|
118
|
+
})
|
|
66
119
|
}];
|
|
67
|
-
export {
|
|
120
|
+
export { getGranularitySelectConfig, instrumentSelectConfig, instrumentSelectConfigJa, instrumentSelectConfigOC, navigationConfig };
|
|
68
121
|
//# sourceMappingURL=selectConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectConfig.js","names":["BookType","Granularity","InstrumentId","navigationConfig","id","Order","label","Position","instrumentSelectConfigOC","EUR_USD","EUR_AUD","EUR_GBP","EUR_JPY","EUR_CHF","USD_CHF","USD_JPY","USD_CAD","GBP_USD","GBP_JPY","GBP_CHF","AUD_JPY","AUD_USD","NZD_USD","instrumentSelectConfig","XAU_USD","XAG_USD","
|
|
1
|
+
{"version":3,"file":"selectConfig.js","names":["BookType","Granularity","InstrumentId","navigationConfig","id","Order","label","Position","instrumentSelectConfigOC","EUR_USD","EUR_AUD","EUR_GBP","EUR_JPY","EUR_CHF","USD_CHF","USD_JPY","USD_CAD","GBP_USD","GBP_JPY","GBP_CHF","AUD_JPY","AUD_USD","NZD_USD","instrumentSelectConfig","XAU_USD","XAG_USD","instrumentSelectConfigJa","getGranularitySelectConfig","lang","isJapanese","H1","count","H4"],"sources":["../../../src/CrowdViewWidget/selectConfig.ts"],"sourcesContent":["import { BookType, Granularity } from '../gql/types/graphql';\nimport { InstrumentId } from './types';\n\nconst navigationConfig = [\n {\n id: BookType.Order,\n label: 'order_book',\n },\n {\n id: BookType.Position,\n label: 'position_book',\n },\n];\n\nconst instrumentSelectConfigOC = [\n {\n id: InstrumentId.EUR_USD,\n label: 'EUR/USD',\n },\n {\n id: InstrumentId.EUR_AUD,\n label: 'EUR/AUD',\n },\n {\n id: InstrumentId.EUR_GBP,\n label: 'EUR/GBP',\n },\n {\n id: InstrumentId.EUR_JPY,\n label: 'EUR/JPY',\n },\n {\n id: InstrumentId.EUR_CHF,\n label: 'EUR/CHF',\n },\n {\n id: InstrumentId.USD_CHF,\n label: 'USD/CHF',\n },\n {\n id: InstrumentId.USD_JPY,\n label: 'USD/JPY',\n },\n {\n id: InstrumentId.USD_CAD,\n label: 'USD/CAD',\n },\n {\n id: InstrumentId.GBP_USD,\n label: 'GBP/USD',\n },\n {\n id: InstrumentId.GBP_JPY,\n label: 'GBP/JPY',\n },\n {\n id: InstrumentId.GBP_CHF,\n label: 'GBP/CHF',\n },\n {\n id: InstrumentId.AUD_JPY,\n label: 'AUD/JPY',\n },\n {\n id: InstrumentId.AUD_USD,\n label: 'AUD/USD',\n },\n {\n id: InstrumentId.NZD_USD,\n label: 'NZD/USD',\n },\n];\n\nconst instrumentSelectConfig = [\n ...instrumentSelectConfigOC,\n {\n id: InstrumentId.XAU_USD,\n label: 'XAU/USD',\n },\n {\n id: InstrumentId.XAG_USD,\n label: 'XAG/USD',\n },\n];\n\nconst instrumentSelectConfigJa = [\n {\n id: InstrumentId.USD_JPY,\n label: 'USD/JPY',\n },\n {\n id: InstrumentId.EUR_JPY,\n label: 'EUR/JPY',\n },\n {\n id: InstrumentId.GBP_JPY,\n label: 'GBP/JPY',\n },\n {\n id: InstrumentId.AUD_JPY,\n label: 'AUD/JPY',\n },\n {\n id: InstrumentId.EUR_USD,\n label: 'EUR/USD',\n },\n {\n id: InstrumentId.EUR_AUD,\n label: 'EUR/AUD',\n },\n {\n id: InstrumentId.EUR_GBP,\n label: 'EUR/GBP',\n },\n {\n id: InstrumentId.EUR_CHF,\n label: 'EUR/CHF',\n },\n {\n id: InstrumentId.USD_CHF,\n label: 'USD/CHF',\n },\n {\n id: InstrumentId.USD_CAD,\n label: 'USD/CAD',\n },\n {\n id: InstrumentId.GBP_USD,\n label: 'GBP/USD',\n },\n {\n id: InstrumentId.GBP_CHF,\n label: 'GBP/CHF',\n },\n {\n id: InstrumentId.AUD_USD,\n label: 'AUD/USD',\n },\n {\n id: InstrumentId.NZD_USD,\n label: 'NZD/USD',\n },\n {\n id: InstrumentId.XAU_USD,\n label: 'XAU/USD',\n },\n {\n id: InstrumentId.XAG_USD,\n label: 'XAG/USD',\n },\n];\n\nconst getGranularitySelectConfig = (\n lang: (key: string, options?: { count?: number }) => string,\n isJapanese: boolean\n) => [\n {\n id: Granularity.H1,\n label: lang(isJapanese ? 'hour_plural' : 'hour', { count: 1 }),\n },\n {\n id: Granularity.H4,\n label: lang('hour_plural', { count: 4 }),\n },\n];\n\nexport {\n getGranularitySelectConfig,\n instrumentSelectConfig,\n instrumentSelectConfigJa,\n instrumentSelectConfigOC,\n navigationConfig,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
import { Locale } from '@oanda/mono-i18n';
|
|
2
2
|
import en from './sources/en.json';
|
|
3
|
-
import
|
|
4
|
-
import th from './sources/th.json';
|
|
5
|
-
import zhTW from './sources/zh_TW.json';
|
|
3
|
+
import ja from './sources/ja.json';
|
|
6
4
|
export const translations = {
|
|
7
5
|
[Locale.en]: {
|
|
8
6
|
translation: en
|
|
9
7
|
},
|
|
10
|
-
[Locale.
|
|
11
|
-
translation:
|
|
12
|
-
},
|
|
13
|
-
[Locale.es]: {
|
|
14
|
-
translation: es
|
|
15
|
-
},
|
|
16
|
-
[Locale.th]: {
|
|
17
|
-
translation: th
|
|
8
|
+
[Locale.ja]: {
|
|
9
|
+
translation: ja
|
|
18
10
|
}
|
|
19
11
|
};
|
|
20
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Locale","en","
|
|
1
|
+
{"version":3,"file":"index.js","names":["Locale","en","ja","translations","translation"],"sources":["../../../src/translations/index.ts"],"sourcesContent":["import type { Translations } from '@oanda/mono-i18n';\nimport { Locale } from '@oanda/mono-i18n';\n\nimport en from './sources/en.json';\nimport ja from './sources/ja.json';\nimport type { defaultTranslations } from './translations';\n\nexport type TranslationKey = keyof typeof defaultTranslations;\n\nexport const translations: Translations = {\n [Locale.en]: { translation: en },\n [Locale.ja]: { translation: ja },\n};\n"],"mappings":"AACA,SAASA,MAAM,QAAQ,kBAAkB;AAEzC,OAAOC,EAAE,MAAM,mBAAmB;AAClC,OAAOC,EAAE,MAAM,mBAAmB;AAKlC,OAAO,MAAMC,YAA0B,GAAG;EACxC,CAACH,MAAM,CAACC,EAAE,GAAG;IAAEG,WAAW,EAAEH;EAAG,CAAC;EAChC,CAACD,MAAM,CAACE,EAAE,GAAG;IAAEE,WAAW,EAAEF;EAAG;AACjC,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"1_hour": "1 hour",
|
|
3
|
-
"15_minutes": "15 minutes",
|
|
4
|
-
"4_hours": "4 hours",
|
|
5
|
-
"5_minutes": "5 minutes",
|
|
6
2
|
"buy": "Buy",
|
|
7
3
|
"buy_overbalance": "Buy overbalance",
|
|
8
4
|
"candle": "Candle",
|
|
@@ -11,16 +7,21 @@
|
|
|
11
7
|
"even_market_demand": "Even market demand",
|
|
12
8
|
"granularity": "Granularity",
|
|
13
9
|
"high": "High",
|
|
10
|
+
"hour": "{{count}} Hour",
|
|
11
|
+
"hour_plural": "{{count}} Hours",
|
|
12
|
+
"hover_chart_to_see_more_details": "Hover over the chart to see more details",
|
|
14
13
|
"instrument": "Instrument",
|
|
15
14
|
"long": "Long",
|
|
16
15
|
"long_overbalance": "Long overbalance",
|
|
17
16
|
"low": "Low",
|
|
17
|
+
"minute": "{{count}} Minute",
|
|
18
|
+
"minute_plural": "{{count}} Minutes",
|
|
18
19
|
"no_matching_results": "No matching results",
|
|
19
20
|
"open": "Open",
|
|
20
|
-
"order_book": "Order
|
|
21
|
+
"order_book": "Order Book",
|
|
21
22
|
"orders": "Orders",
|
|
22
23
|
"pagination_entries_range": "{{firstItemOnPage}}-{{lastItemOnPage}} of {{itemCount}} entries",
|
|
23
|
-
"position_book": "Position
|
|
24
|
+
"position_book": "Position Book",
|
|
24
25
|
"price": "Price",
|
|
25
26
|
"price_range": "Price range",
|
|
26
27
|
"search": "Search",
|
|
@@ -30,6 +31,5 @@
|
|
|
30
31
|
"short": "Short",
|
|
31
32
|
"short_overbalance": "Short overbalance",
|
|
32
33
|
"tap_chart_to_see_more_details": "Tap the chart to see more details",
|
|
33
|
-
"hover_chart_to_see_more_details": "Hover over the chart to see more details",
|
|
34
34
|
"trades": "Trades"
|
|
35
35
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"buy": "購入",
|
|
3
|
+
"buy_overbalance": "買い超過",
|
|
4
|
+
"candle": "ローソク足",
|
|
5
|
+
"close": "閉じる",
|
|
6
|
+
"data_unavailable": "データが利用できません",
|
|
7
|
+
"even_market_demand": "均衡需要",
|
|
8
|
+
"granularity": "粒度",
|
|
9
|
+
"high": "高値",
|
|
10
|
+
"hour_plural": "{{count}} 時間",
|
|
11
|
+
"hover_chart_to_see_more_details": "チャートの上にカーソルを合わせると詳細を確認できます",
|
|
12
|
+
"instrument": "金融商品",
|
|
13
|
+
"long": "ロング",
|
|
14
|
+
"long_overbalance": "ロング超過",
|
|
15
|
+
"low": "安値",
|
|
16
|
+
"open": "オープン",
|
|
17
|
+
"order_book": "オーダーブック",
|
|
18
|
+
"orders": "注文",
|
|
19
|
+
"position_book": "ポジションブック",
|
|
20
|
+
"price": "価格",
|
|
21
|
+
"price_range": "価格範囲",
|
|
22
|
+
"search": "検索",
|
|
23
|
+
"sell": "売り",
|
|
24
|
+
"sell_overbalance": "売り超過",
|
|
25
|
+
"sentiment": "センチメント",
|
|
26
|
+
"short": "ショート",
|
|
27
|
+
"short_overbalance": "ショート超過",
|
|
28
|
+
"tap_chart_to_see_more_details": "チャートをタップすると詳細を確認できます",
|
|
29
|
+
"trades": "取引"
|
|
30
|
+
}
|
package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { ChartStyles } from '../chartUtils/getChartStyles';
|
|
|
3
3
|
interface GetSeriesCandlestickConfigParams {
|
|
4
4
|
styles: ChartStyles;
|
|
5
5
|
isLoading: boolean;
|
|
6
|
+
locale: string;
|
|
6
7
|
}
|
|
7
|
-
export declare const getSeriesCandlestickConfig: ({ styles, isLoading, }: GetSeriesCandlestickConfigParams) => CandlestickSeriesOption;
|
|
8
|
+
export declare const getSeriesCandlestickConfig: ({ styles, isLoading, locale, }: GetSeriesCandlestickConfigParams) => CandlestickSeriesOption;
|
|
8
9
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Division } from '../../../../gql/types/graphql';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const getInstrumentConfig: (division: Division, isJapanese: boolean) => {
|
|
3
3
|
id: import("../../..").InstrumentId;
|
|
4
4
|
label: string;
|
|
5
5
|
}[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './getBucketWidthMultiplayer';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './getInstrumentConfig';
|
|
3
3
|
export * from './getTimeSpanForGranularity';
|
|
4
4
|
export * from './processOrderPositionBooks';
|
|
5
5
|
export * from './processPriceCandles';
|
|
@@ -12,8 +12,14 @@ declare const instrumentSelectConfig: {
|
|
|
12
12
|
id: InstrumentId;
|
|
13
13
|
label: string;
|
|
14
14
|
}[];
|
|
15
|
-
declare const
|
|
15
|
+
declare const instrumentSelectConfigJa: {
|
|
16
|
+
id: InstrumentId;
|
|
17
|
+
label: string;
|
|
18
|
+
}[];
|
|
19
|
+
declare const getGranularitySelectConfig: (lang: (key: string, options?: {
|
|
20
|
+
count?: number;
|
|
21
|
+
}) => string, isJapanese: boolean) => {
|
|
16
22
|
id: Granularity;
|
|
17
23
|
label: string;
|
|
18
24
|
}[];
|
|
19
|
-
export {
|
|
25
|
+
export { getGranularitySelectConfig, instrumentSelectConfig, instrumentSelectConfigJa, instrumentSelectConfigOC, navigationConfig, };
|
package/lokalise.config.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oanda/labs-crowd-view-widget",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.61",
|
|
4
4
|
"description": "Labs Crowd View Widget",
|
|
5
5
|
"main": "dist/main/index.js",
|
|
6
6
|
"module": "dist/module/index.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"author": "OANDA",
|
|
14
14
|
"license": "UNLICENSED",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@oanda/labs-widget-common": "^1.0.
|
|
16
|
+
"@oanda/labs-widget-common": "^1.0.243",
|
|
17
17
|
"@oanda/mono-i18n": "10.0.1",
|
|
18
18
|
"chroma-js": "^3.1.2",
|
|
19
19
|
"decimal.js": "^10.6.0",
|
|
@@ -24,5 +24,5 @@
|
|
|
24
24
|
"@graphql-codegen/client-preset": "4.1.0",
|
|
25
25
|
"@types/chroma-js": "^3.1.2"
|
|
26
26
|
},
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "f3d41f07e0f42d2885b8e6aac34c886d24f321c6"
|
|
28
28
|
}
|
|
@@ -5,37 +5,31 @@ import {
|
|
|
5
5
|
Tabs,
|
|
6
6
|
useLayoutProvider,
|
|
7
7
|
} from '@oanda/labs-widget-common';
|
|
8
|
-
import { useLocale } from '@oanda/mono-i18n';
|
|
8
|
+
import { Locale, useLocale } from '@oanda/mono-i18n';
|
|
9
9
|
import React, { useEffect, useMemo, useState } from 'react';
|
|
10
10
|
|
|
11
11
|
import type { Granularity } from '../gql/types/graphql';
|
|
12
12
|
import { BookType } from '../gql/types/graphql';
|
|
13
|
-
import { ChartWithData, Legend } from './components';
|
|
14
|
-
import {
|
|
15
|
-
import { granularitySelectConfig, navigationConfig } from './selectConfig';
|
|
13
|
+
import { ChartWithData, getInstrumentConfig, Legend } from './components';
|
|
14
|
+
import { getGranularitySelectConfig, navigationConfig } from './selectConfig';
|
|
16
15
|
import type { InstrumentId, MainProps } from './types';
|
|
17
16
|
|
|
18
17
|
const Main = ({ division }: MainProps) => {
|
|
19
|
-
const { lang } = useLocale();
|
|
18
|
+
const { lang, locale } = useLocale();
|
|
20
19
|
const { size } = useLayoutProvider();
|
|
21
20
|
const isDesktop = size === Size.DESKTOP;
|
|
21
|
+
const isJapanese = locale === Locale.ja;
|
|
22
22
|
|
|
23
23
|
const [bookType, setBookType] = useState(BookType.Order);
|
|
24
24
|
|
|
25
25
|
const granularitySelectConfigWithLang = useMemo(
|
|
26
|
-
() =>
|
|
27
|
-
|
|
28
|
-
...opt,
|
|
29
|
-
label: lang(opt.label),
|
|
30
|
-
})),
|
|
31
|
-
[lang]
|
|
26
|
+
() => getGranularitySelectConfig(lang, isJapanese),
|
|
27
|
+
[lang, isJapanese]
|
|
32
28
|
);
|
|
33
29
|
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
const [instrument, setInstrument] = useState(
|
|
37
|
-
instrumentSelectConfigWithDivision[0]
|
|
38
|
-
);
|
|
30
|
+
const instrumentSelectConfig = getInstrumentConfig(division, isJapanese);
|
|
31
|
+
|
|
32
|
+
const [instrument, setInstrument] = useState(instrumentSelectConfig[0]);
|
|
39
33
|
|
|
40
34
|
const [granularity, setGranularity] = useState(
|
|
41
35
|
granularitySelectConfigWithLang[0]
|
|
@@ -74,7 +68,7 @@ const Main = ({ division }: MainProps) => {
|
|
|
74
68
|
})}
|
|
75
69
|
>
|
|
76
70
|
<Select
|
|
77
|
-
options={
|
|
71
|
+
options={instrumentSelectConfig}
|
|
78
72
|
searchPlaceholder={lang('search')}
|
|
79
73
|
selectLabel={lang('instrument')}
|
|
80
74
|
selectedOption={instrument}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Locale } from '@oanda/mono-i18n';
|
|
1
2
|
import chroma from 'chroma-js';
|
|
2
3
|
import type { CandlestickSeriesOption } from 'echarts';
|
|
3
4
|
|
|
@@ -6,13 +7,30 @@ import type { ChartStyles } from '../chartUtils/getChartStyles';
|
|
|
6
7
|
interface GetSeriesCandlestickConfigParams {
|
|
7
8
|
styles: ChartStyles;
|
|
8
9
|
isLoading: boolean;
|
|
10
|
+
locale: string;
|
|
9
11
|
}
|
|
10
12
|
|
|
11
13
|
export const getSeriesCandlestickConfig = ({
|
|
12
14
|
styles,
|
|
13
15
|
isLoading,
|
|
16
|
+
locale,
|
|
14
17
|
}: GetSeriesCandlestickConfigParams): CandlestickSeriesOption => {
|
|
15
18
|
const { candleLongColor, candleShortColor } = styles;
|
|
19
|
+
const isJapanese = locale === Locale.ja;
|
|
20
|
+
|
|
21
|
+
const itemStyle = isJapanese
|
|
22
|
+
? {
|
|
23
|
+
color: chroma(candleShortColor).desaturate().css(),
|
|
24
|
+
color0: chroma(candleLongColor).desaturate().css(),
|
|
25
|
+
borderColor: candleShortColor,
|
|
26
|
+
borderColor0: candleLongColor,
|
|
27
|
+
}
|
|
28
|
+
: {
|
|
29
|
+
color: chroma(candleLongColor).desaturate().css(),
|
|
30
|
+
color0: chroma(candleShortColor).desaturate().css(),
|
|
31
|
+
borderColor: candleLongColor,
|
|
32
|
+
borderColor0: candleShortColor,
|
|
33
|
+
};
|
|
16
34
|
|
|
17
35
|
return {
|
|
18
36
|
animation: isLoading,
|
|
@@ -27,12 +45,7 @@ export const getSeriesCandlestickConfig = ({
|
|
|
27
45
|
x: 'dates',
|
|
28
46
|
y: ['open', 'close', 'low', 'high'],
|
|
29
47
|
},
|
|
30
|
-
itemStyle
|
|
31
|
-
color: chroma(candleLongColor).desaturate().css(),
|
|
32
|
-
color0: chroma(candleShortColor).desaturate().css(),
|
|
33
|
-
borderColor: candleLongColor,
|
|
34
|
-
borderColor0: candleShortColor,
|
|
35
|
-
},
|
|
48
|
+
itemStyle,
|
|
36
49
|
emphasis: {
|
|
37
50
|
itemStyle: {
|
|
38
51
|
color: candleLongColor,
|
|
@@ -10,6 +10,23 @@ interface GetBucketWidthMultiplayerParams {
|
|
|
10
10
|
instrument: InstrumentId;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
const roundToClosest = (value: number, options: number[]): number => {
|
|
14
|
+
return options.reduce((closest, option) => {
|
|
15
|
+
const distanceToOption = Math.abs(value - option);
|
|
16
|
+
const distanceToClosest = Math.abs(value - closest);
|
|
17
|
+
|
|
18
|
+
if (distanceToOption === distanceToClosest) {
|
|
19
|
+
return option > closest ? option : closest;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return distanceToOption < distanceToClosest ? option : closest;
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const getRoundingValues = (base: number): number[] => {
|
|
27
|
+
return [base, 2 * base, 4 * base, 5 * base, 10 * base];
|
|
28
|
+
};
|
|
29
|
+
|
|
13
30
|
export const getBucketWidthMultiplayer = ({
|
|
14
31
|
minPrice,
|
|
15
32
|
maxPrice,
|
|
@@ -21,5 +38,13 @@ export const getBucketWidthMultiplayer = ({
|
|
|
21
38
|
const calculatedMultiplier =
|
|
22
39
|
priceRange / (defaultBucketWidth * DISPLAYED_BUCKETS_COUNT);
|
|
23
40
|
|
|
24
|
-
|
|
41
|
+
if (calculatedMultiplier <= 1) {
|
|
42
|
+
return 1;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const powerOf10 = Math.floor(Math.log10(calculatedMultiplier));
|
|
46
|
+
const base = Math.pow(10, powerOf10);
|
|
47
|
+
const roundingValues = getRoundingValues(base);
|
|
48
|
+
|
|
49
|
+
return roundToClosest(calculatedMultiplier, roundingValues);
|
|
25
50
|
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Division } from '../../../../gql/types/graphql';
|
|
2
|
+
import {
|
|
3
|
+
instrumentSelectConfig,
|
|
4
|
+
instrumentSelectConfigJa,
|
|
5
|
+
instrumentSelectConfigOC,
|
|
6
|
+
} from '../../../selectConfig';
|
|
7
|
+
|
|
8
|
+
export const getInstrumentConfig = (
|
|
9
|
+
division: Division,
|
|
10
|
+
isJapanese: boolean
|
|
11
|
+
) => {
|
|
12
|
+
if (isJapanese) {
|
|
13
|
+
return instrumentSelectConfigJa;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (division === Division.Oc) {
|
|
17
|
+
return instrumentSelectConfigOC;
|
|
18
|
+
}
|
|
19
|
+
return instrumentSelectConfig;
|
|
20
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './getBucketWidthMultiplayer';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './getInstrumentConfig';
|
|
3
3
|
export * from './getTimeSpanForGranularity';
|
|
4
4
|
export * from './processOrderPositionBooks';
|
|
5
5
|
export * from './processPriceCandles';
|
|
@@ -83,20 +83,91 @@ const instrumentSelectConfig = [
|
|
|
83
83
|
},
|
|
84
84
|
];
|
|
85
85
|
|
|
86
|
-
const
|
|
86
|
+
const instrumentSelectConfigJa = [
|
|
87
|
+
{
|
|
88
|
+
id: InstrumentId.USD_JPY,
|
|
89
|
+
label: 'USD/JPY',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
id: InstrumentId.EUR_JPY,
|
|
93
|
+
label: 'EUR/JPY',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
id: InstrumentId.GBP_JPY,
|
|
97
|
+
label: 'GBP/JPY',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: InstrumentId.AUD_JPY,
|
|
101
|
+
label: 'AUD/JPY',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: InstrumentId.EUR_USD,
|
|
105
|
+
label: 'EUR/USD',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
id: InstrumentId.EUR_AUD,
|
|
109
|
+
label: 'EUR/AUD',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
id: InstrumentId.EUR_GBP,
|
|
113
|
+
label: 'EUR/GBP',
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
id: InstrumentId.EUR_CHF,
|
|
117
|
+
label: 'EUR/CHF',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: InstrumentId.USD_CHF,
|
|
121
|
+
label: 'USD/CHF',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
id: InstrumentId.USD_CAD,
|
|
125
|
+
label: 'USD/CAD',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
id: InstrumentId.GBP_USD,
|
|
129
|
+
label: 'GBP/USD',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
id: InstrumentId.GBP_CHF,
|
|
133
|
+
label: 'GBP/CHF',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
id: InstrumentId.AUD_USD,
|
|
137
|
+
label: 'AUD/USD',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
id: InstrumentId.NZD_USD,
|
|
141
|
+
label: 'NZD/USD',
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
id: InstrumentId.XAU_USD,
|
|
145
|
+
label: 'XAU/USD',
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
id: InstrumentId.XAG_USD,
|
|
149
|
+
label: 'XAG/USD',
|
|
150
|
+
},
|
|
151
|
+
];
|
|
152
|
+
|
|
153
|
+
const getGranularitySelectConfig = (
|
|
154
|
+
lang: (key: string, options?: { count?: number }) => string,
|
|
155
|
+
isJapanese: boolean
|
|
156
|
+
) => [
|
|
87
157
|
{
|
|
88
158
|
id: Granularity.H1,
|
|
89
|
-
label: '
|
|
159
|
+
label: lang(isJapanese ? 'hour_plural' : 'hour', { count: 1 }),
|
|
90
160
|
},
|
|
91
161
|
{
|
|
92
162
|
id: Granularity.H4,
|
|
93
|
-
label: '
|
|
163
|
+
label: lang('hour_plural', { count: 4 }),
|
|
94
164
|
},
|
|
95
165
|
];
|
|
96
166
|
|
|
97
167
|
export {
|
|
98
|
-
|
|
168
|
+
getGranularitySelectConfig,
|
|
99
169
|
instrumentSelectConfig,
|
|
170
|
+
instrumentSelectConfigJa,
|
|
100
171
|
instrumentSelectConfigOC,
|
|
101
172
|
navigationConfig,
|
|
102
173
|
};
|
|
@@ -2,16 +2,12 @@ import type { Translations } from '@oanda/mono-i18n';
|
|
|
2
2
|
import { Locale } from '@oanda/mono-i18n';
|
|
3
3
|
|
|
4
4
|
import en from './sources/en.json';
|
|
5
|
-
import
|
|
6
|
-
import th from './sources/th.json';
|
|
7
|
-
import zhTW from './sources/zh_TW.json';
|
|
5
|
+
import ja from './sources/ja.json';
|
|
8
6
|
import type { defaultTranslations } from './translations';
|
|
9
7
|
|
|
10
8
|
export type TranslationKey = keyof typeof defaultTranslations;
|
|
11
9
|
|
|
12
10
|
export const translations: Translations = {
|
|
13
11
|
[Locale.en]: { translation: en },
|
|
14
|
-
[Locale.
|
|
15
|
-
[Locale.es]: { translation: es },
|
|
16
|
-
[Locale.th]: { translation: th },
|
|
12
|
+
[Locale.ja]: { translation: ja },
|
|
17
13
|
};
|