@oanda/labs-value-at-risk-widget 1.0.23 → 1.0.24
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 +100 -0
- package/dist/main/ValueAtRiskWidget/Main.js +5 -3
- package/dist/main/ValueAtRiskWidget/Main.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/Main.js +5 -3
- package/dist/module/ValueAtRiskWidget/Main.js.map +1 -1
- package/package.json +3 -3
- package/src/ValueAtRiskWidget/Main.tsx +12 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,106 @@
|
|
|
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.24 (2024-06-27)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 1.0.131 (2024-06-27)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## 1.0.130 (2024-06-26)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## 1.0.129 (2024-06-17)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## 1.0.128 (2024-06-17)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## 1.0.127 (2024-06-10)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## 1.0.126 (2024-05-29)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## 1.0.125 (2024-05-29)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## 1.0.124 (2024-05-29)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
## 1.0.123 (2024-05-28)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## 1.0.122 (2024-05-27)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## 1.0.121 (2024-05-27)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## 1.0.120 (2024-05-24)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## 1.0.119 (2024-05-17)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## 1.0.118 (2024-05-09)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## 1.0.117 (2024-05-07)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
## 1.0.116 (2024-04-23)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
## 1.0.115 (2024-04-22)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
## 1.0.114 (2024-04-19)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## 1.0.113 (2024-04-19)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
## 1.0.112 (2024-04-15)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
## 1.0.111 (2024-04-11)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
## 1.0.110 (2024-04-05)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
## 1.0.109 (2024-04-05)
|
|
99
|
+
|
|
100
|
+
**Note:** Version bump only for package @oanda/labs-value-at-risk-widget
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
6
106
|
## 1.0.23 (2024-06-27)
|
|
7
107
|
|
|
8
108
|
|
|
@@ -51,20 +51,22 @@ const Main = _ref => {
|
|
|
51
51
|
setInstrumentsList(list);
|
|
52
52
|
setSelectedInstrument(list[0]);
|
|
53
53
|
};
|
|
54
|
+
const showAssetClassesSelect = assetClassesOptions.length > 1;
|
|
54
55
|
return _react.default.createElement("div", {
|
|
55
56
|
"data-testid": "value-at-risk-tool-wrapper",
|
|
56
57
|
className: "lw-relative lw-text-sm lw-tracking-normal"
|
|
57
58
|
}, _react.default.createElement("div", {
|
|
58
59
|
className: (0, _classnames.default)('lw-mb-8 lw-grid', {
|
|
59
|
-
'lw-grid-cols-4 lw-gap-2': isDesktop,
|
|
60
|
+
'lw-grid-cols-4 lw-gap-2': isDesktop && showAssetClassesSelect,
|
|
61
|
+
'lw-grid-cols-3 lw-gap-2.5': isDesktop && !showAssetClassesSelect,
|
|
60
62
|
'lw-grid-cols-1 lw-gap-4': !isDesktop
|
|
61
63
|
})
|
|
62
|
-
}, _react.default.createElement(_labsWidgetCommon.Select, {
|
|
64
|
+
}, showAssetClassesSelect ? _react.default.createElement(_labsWidgetCommon.Select, {
|
|
63
65
|
selectLabel: lang('instrument_type'),
|
|
64
66
|
options: assetClassesOptions,
|
|
65
67
|
selectedOption: selectedAssetClass,
|
|
66
68
|
setSelectedOption: handleAssetClassSelect
|
|
67
|
-
}), _react.default.createElement(_labsWidgetCommon.Select, {
|
|
69
|
+
}) : null, _react.default.createElement(_labsWidgetCommon.Select, {
|
|
68
70
|
withSearch: true,
|
|
69
71
|
searchPlaceholder: lang('search'),
|
|
70
72
|
selectLabel: lang('instrument'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Main.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_labsWidgetCommon","_monoI18n","_utils","_graphql","_ChartWithData","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Main","_ref","data","division","lang","useLocale","size","useContext","ThemeContext","isDesktop","Size","DESKTOP","assetClassesOptions","getAssetClassesList","valueAtRiskAssetClasses","initInstrumentsOptions","getInstrumentsByAssetClassId","id","holdTimeOptions","values","ValueAtRiskDuration","map","duration","label","count","substring","calculationPeriodOptions","ValueAtRiskBars","bars","selectedAssetClass","setSelectedAssetClass","useState","instrumentsList","setInstrumentsList","selectedInstrument","setSelectedInstrument","selectedHoldTime","setSelectedHoldTime","selectedCalculationPeriod","setSelectedCalculationPeriod","handleAssetClassSelect","selectedOption","list","createElement","className","classnames","Select","selectLabel","options","setSelectedOption","withSearch","searchPlaceholder","ChartWithData","instrument","exports"],"sources":["../../../src/ValueAtRiskWidget/Main.tsx"],"sourcesContent":["import React, { useState, useContext } from 'react';\nimport classnames from 'classnames';\nimport {\n Select, SelectOption, Size, ThemeContext,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { getAssetClassesList, getInstrumentsByAssetClassId } from './utils';\nimport { MainProps } from './types';\nimport { ValueAtRiskDuration, ValueAtRiskBars } from '../gql/types/graphql';\nimport { ChartWithData } from './ChartWithData';\n\nconst Main = ({ data, division }: MainProps) => {\n const { lang } = useLocale();\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n\n const assetClassesOptions = getAssetClassesList(data!.valueAtRiskAssetClasses!);\n const initInstrumentsOptions = getInstrumentsByAssetClassId(\n data!.valueAtRiskAssetClasses!,\n assetClassesOptions[0].id,\n );\n\n const holdTimeOptions = Object.values(ValueAtRiskDuration).map((duration) => ({ id: duration as string, label: lang('day', { count: +duration.substring(1) }) }));\n const calculationPeriodOptions = Object.values(ValueAtRiskBars).map((bars) => ({ id: bars as string, label: lang('day', { count: +bars.substring(1) }) }));\n\n const [selectedAssetClass, setSelectedAssetClass] = useState(\n assetClassesOptions[0],\n );\n const [instrumentsList, setInstrumentsList] = useState(initInstrumentsOptions);\n const [selectedInstrument, setSelectedInstrument] = useState(initInstrumentsOptions[0]);\n const [selectedHoldTime, setSelectedHoldTime] = useState(holdTimeOptions[0]);\n const [selectedCalculationPeriod, setSelectedCalculationPeriod] = useState(\n calculationPeriodOptions[0],\n );\n\n const handleAssetClassSelect = (selectedOption: SelectOption) => {\n const list = getInstrumentsByAssetClassId(\n data!.valueAtRiskAssetClasses!,\n selectedOption.id,\n );\n\n setSelectedAssetClass(selectedOption);\n setInstrumentsList(list);\n setSelectedInstrument(list[0]);\n };\n\n return (\n <div\n data-testid=\"value-at-risk-tool-wrapper\"\n className=\"lw-relative lw-text-sm lw-tracking-normal\"\n >\n <div className={classnames(\n 'lw-mb-8 lw-grid',\n {\n 'lw-grid-cols-4 lw-gap-2': isDesktop,\n 'lw-grid-cols-1 lw-gap-4': !isDesktop,\n },\n )}\n >\n <Select\n
|
|
1
|
+
{"version":3,"file":"Main.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_labsWidgetCommon","_monoI18n","_utils","_graphql","_ChartWithData","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Main","_ref","data","division","lang","useLocale","size","useContext","ThemeContext","isDesktop","Size","DESKTOP","assetClassesOptions","getAssetClassesList","valueAtRiskAssetClasses","initInstrumentsOptions","getInstrumentsByAssetClassId","id","holdTimeOptions","values","ValueAtRiskDuration","map","duration","label","count","substring","calculationPeriodOptions","ValueAtRiskBars","bars","selectedAssetClass","setSelectedAssetClass","useState","instrumentsList","setInstrumentsList","selectedInstrument","setSelectedInstrument","selectedHoldTime","setSelectedHoldTime","selectedCalculationPeriod","setSelectedCalculationPeriod","handleAssetClassSelect","selectedOption","list","showAssetClassesSelect","length","createElement","className","classnames","Select","selectLabel","options","setSelectedOption","withSearch","searchPlaceholder","ChartWithData","instrument","exports"],"sources":["../../../src/ValueAtRiskWidget/Main.tsx"],"sourcesContent":["import React, { useState, useContext } from 'react';\nimport classnames from 'classnames';\nimport {\n Select, SelectOption, Size, ThemeContext,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { getAssetClassesList, getInstrumentsByAssetClassId } from './utils';\nimport { MainProps } from './types';\nimport { ValueAtRiskDuration, ValueAtRiskBars } from '../gql/types/graphql';\nimport { ChartWithData } from './ChartWithData';\n\nconst Main = ({ data, division }: MainProps) => {\n const { lang } = useLocale();\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n\n const assetClassesOptions = getAssetClassesList(data!.valueAtRiskAssetClasses!);\n const initInstrumentsOptions = getInstrumentsByAssetClassId(\n data!.valueAtRiskAssetClasses!,\n assetClassesOptions[0].id,\n );\n\n const holdTimeOptions = Object.values(ValueAtRiskDuration).map((duration) => ({ id: duration as string, label: lang('day', { count: +duration.substring(1) }) }));\n const calculationPeriodOptions = Object.values(ValueAtRiskBars).map((bars) => ({ id: bars as string, label: lang('day', { count: +bars.substring(1) }) }));\n\n const [selectedAssetClass, setSelectedAssetClass] = useState(\n assetClassesOptions[0],\n );\n const [instrumentsList, setInstrumentsList] = useState(initInstrumentsOptions);\n const [selectedInstrument, setSelectedInstrument] = useState(initInstrumentsOptions[0]);\n const [selectedHoldTime, setSelectedHoldTime] = useState(holdTimeOptions[0]);\n const [selectedCalculationPeriod, setSelectedCalculationPeriod] = useState(\n calculationPeriodOptions[0],\n );\n\n const handleAssetClassSelect = (selectedOption: SelectOption) => {\n const list = getInstrumentsByAssetClassId(\n data!.valueAtRiskAssetClasses!,\n selectedOption.id,\n );\n\n setSelectedAssetClass(selectedOption);\n setInstrumentsList(list);\n setSelectedInstrument(list[0]);\n };\n\n const showAssetClassesSelect = assetClassesOptions.length > 1;\n\n return (\n <div\n data-testid=\"value-at-risk-tool-wrapper\"\n className=\"lw-relative lw-text-sm lw-tracking-normal\"\n >\n <div className={classnames(\n 'lw-mb-8 lw-grid',\n {\n 'lw-grid-cols-4 lw-gap-2': isDesktop && showAssetClassesSelect,\n 'lw-grid-cols-3 lw-gap-2.5': isDesktop && !showAssetClassesSelect,\n 'lw-grid-cols-1 lw-gap-4': !isDesktop,\n },\n )}\n >\n {showAssetClassesSelect ? (\n <Select\n selectLabel={lang('instrument_type')}\n options={assetClassesOptions}\n selectedOption={selectedAssetClass}\n setSelectedOption={handleAssetClassSelect}\n />\n ) : null}\n <Select\n withSearch\n searchPlaceholder={lang('search')}\n selectLabel={lang('instrument')}\n options={instrumentsList}\n selectedOption={selectedInstrument}\n setSelectedOption={setSelectedInstrument}\n />\n <Select\n selectLabel={lang('hold_time')}\n options={holdTimeOptions}\n selectedOption={selectedHoldTime}\n setSelectedOption={setSelectedHoldTime}\n />\n <Select\n selectLabel={lang('calculation_period')}\n options={calculationPeriodOptions}\n selectedOption={selectedCalculationPeriod}\n setSelectedOption={setSelectedCalculationPeriod}\n />\n </div>\n <ChartWithData\n bars={selectedCalculationPeriod.id as ValueAtRiskBars}\n duration={selectedHoldTime.id as ValueAtRiskDuration}\n instrument={selectedInstrument.id}\n division={division}\n />\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -42,20 +42,22 @@ const Main = _ref => {
|
|
|
42
42
|
setInstrumentsList(list);
|
|
43
43
|
setSelectedInstrument(list[0]);
|
|
44
44
|
};
|
|
45
|
+
const showAssetClassesSelect = assetClassesOptions.length > 1;
|
|
45
46
|
return React.createElement("div", {
|
|
46
47
|
"data-testid": "value-at-risk-tool-wrapper",
|
|
47
48
|
className: "lw-relative lw-text-sm lw-tracking-normal"
|
|
48
49
|
}, React.createElement("div", {
|
|
49
50
|
className: classnames('lw-mb-8 lw-grid', {
|
|
50
|
-
'lw-grid-cols-4 lw-gap-2': isDesktop,
|
|
51
|
+
'lw-grid-cols-4 lw-gap-2': isDesktop && showAssetClassesSelect,
|
|
52
|
+
'lw-grid-cols-3 lw-gap-2.5': isDesktop && !showAssetClassesSelect,
|
|
51
53
|
'lw-grid-cols-1 lw-gap-4': !isDesktop
|
|
52
54
|
})
|
|
53
|
-
}, React.createElement(Select, {
|
|
55
|
+
}, showAssetClassesSelect ? React.createElement(Select, {
|
|
54
56
|
selectLabel: lang('instrument_type'),
|
|
55
57
|
options: assetClassesOptions,
|
|
56
58
|
selectedOption: selectedAssetClass,
|
|
57
59
|
setSelectedOption: handleAssetClassSelect
|
|
58
|
-
}), React.createElement(Select, {
|
|
60
|
+
}) : null, React.createElement(Select, {
|
|
59
61
|
withSearch: true,
|
|
60
62
|
searchPlaceholder: lang('search'),
|
|
61
63
|
selectLabel: lang('instrument'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Main.js","names":["React","useState","useContext","classnames","Select","Size","ThemeContext","useLocale","getAssetClassesList","getInstrumentsByAssetClassId","ValueAtRiskDuration","ValueAtRiskBars","ChartWithData","Main","_ref","data","division","lang","size","isDesktop","DESKTOP","assetClassesOptions","valueAtRiskAssetClasses","initInstrumentsOptions","id","holdTimeOptions","Object","values","map","duration","label","count","substring","calculationPeriodOptions","bars","selectedAssetClass","setSelectedAssetClass","instrumentsList","setInstrumentsList","selectedInstrument","setSelectedInstrument","selectedHoldTime","setSelectedHoldTime","selectedCalculationPeriod","setSelectedCalculationPeriod","handleAssetClassSelect","selectedOption","list","createElement","className","selectLabel","options","setSelectedOption","withSearch","searchPlaceholder","instrument"],"sources":["../../../src/ValueAtRiskWidget/Main.tsx"],"sourcesContent":["import React, { useState, useContext } from 'react';\nimport classnames from 'classnames';\nimport {\n Select, SelectOption, Size, ThemeContext,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { getAssetClassesList, getInstrumentsByAssetClassId } from './utils';\nimport { MainProps } from './types';\nimport { ValueAtRiskDuration, ValueAtRiskBars } from '../gql/types/graphql';\nimport { ChartWithData } from './ChartWithData';\n\nconst Main = ({ data, division }: MainProps) => {\n const { lang } = useLocale();\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n\n const assetClassesOptions = getAssetClassesList(data!.valueAtRiskAssetClasses!);\n const initInstrumentsOptions = getInstrumentsByAssetClassId(\n data!.valueAtRiskAssetClasses!,\n assetClassesOptions[0].id,\n );\n\n const holdTimeOptions = Object.values(ValueAtRiskDuration).map((duration) => ({ id: duration as string, label: lang('day', { count: +duration.substring(1) }) }));\n const calculationPeriodOptions = Object.values(ValueAtRiskBars).map((bars) => ({ id: bars as string, label: lang('day', { count: +bars.substring(1) }) }));\n\n const [selectedAssetClass, setSelectedAssetClass] = useState(\n assetClassesOptions[0],\n );\n const [instrumentsList, setInstrumentsList] = useState(initInstrumentsOptions);\n const [selectedInstrument, setSelectedInstrument] = useState(initInstrumentsOptions[0]);\n const [selectedHoldTime, setSelectedHoldTime] = useState(holdTimeOptions[0]);\n const [selectedCalculationPeriod, setSelectedCalculationPeriod] = useState(\n calculationPeriodOptions[0],\n );\n\n const handleAssetClassSelect = (selectedOption: SelectOption) => {\n const list = getInstrumentsByAssetClassId(\n data!.valueAtRiskAssetClasses!,\n selectedOption.id,\n );\n\n setSelectedAssetClass(selectedOption);\n setInstrumentsList(list);\n setSelectedInstrument(list[0]);\n };\n\n return (\n <div\n data-testid=\"value-at-risk-tool-wrapper\"\n className=\"lw-relative lw-text-sm lw-tracking-normal\"\n >\n <div className={classnames(\n 'lw-mb-8 lw-grid',\n {\n 'lw-grid-cols-4 lw-gap-2': isDesktop,\n 'lw-grid-cols-1 lw-gap-4': !isDesktop,\n },\n )}\n >\n <Select\n
|
|
1
|
+
{"version":3,"file":"Main.js","names":["React","useState","useContext","classnames","Select","Size","ThemeContext","useLocale","getAssetClassesList","getInstrumentsByAssetClassId","ValueAtRiskDuration","ValueAtRiskBars","ChartWithData","Main","_ref","data","division","lang","size","isDesktop","DESKTOP","assetClassesOptions","valueAtRiskAssetClasses","initInstrumentsOptions","id","holdTimeOptions","Object","values","map","duration","label","count","substring","calculationPeriodOptions","bars","selectedAssetClass","setSelectedAssetClass","instrumentsList","setInstrumentsList","selectedInstrument","setSelectedInstrument","selectedHoldTime","setSelectedHoldTime","selectedCalculationPeriod","setSelectedCalculationPeriod","handleAssetClassSelect","selectedOption","list","showAssetClassesSelect","length","createElement","className","selectLabel","options","setSelectedOption","withSearch","searchPlaceholder","instrument"],"sources":["../../../src/ValueAtRiskWidget/Main.tsx"],"sourcesContent":["import React, { useState, useContext } from 'react';\nimport classnames from 'classnames';\nimport {\n Select, SelectOption, Size, ThemeContext,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { getAssetClassesList, getInstrumentsByAssetClassId } from './utils';\nimport { MainProps } from './types';\nimport { ValueAtRiskDuration, ValueAtRiskBars } from '../gql/types/graphql';\nimport { ChartWithData } from './ChartWithData';\n\nconst Main = ({ data, division }: MainProps) => {\n const { lang } = useLocale();\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n\n const assetClassesOptions = getAssetClassesList(data!.valueAtRiskAssetClasses!);\n const initInstrumentsOptions = getInstrumentsByAssetClassId(\n data!.valueAtRiskAssetClasses!,\n assetClassesOptions[0].id,\n );\n\n const holdTimeOptions = Object.values(ValueAtRiskDuration).map((duration) => ({ id: duration as string, label: lang('day', { count: +duration.substring(1) }) }));\n const calculationPeriodOptions = Object.values(ValueAtRiskBars).map((bars) => ({ id: bars as string, label: lang('day', { count: +bars.substring(1) }) }));\n\n const [selectedAssetClass, setSelectedAssetClass] = useState(\n assetClassesOptions[0],\n );\n const [instrumentsList, setInstrumentsList] = useState(initInstrumentsOptions);\n const [selectedInstrument, setSelectedInstrument] = useState(initInstrumentsOptions[0]);\n const [selectedHoldTime, setSelectedHoldTime] = useState(holdTimeOptions[0]);\n const [selectedCalculationPeriod, setSelectedCalculationPeriod] = useState(\n calculationPeriodOptions[0],\n );\n\n const handleAssetClassSelect = (selectedOption: SelectOption) => {\n const list = getInstrumentsByAssetClassId(\n data!.valueAtRiskAssetClasses!,\n selectedOption.id,\n );\n\n setSelectedAssetClass(selectedOption);\n setInstrumentsList(list);\n setSelectedInstrument(list[0]);\n };\n\n const showAssetClassesSelect = assetClassesOptions.length > 1;\n\n return (\n <div\n data-testid=\"value-at-risk-tool-wrapper\"\n className=\"lw-relative lw-text-sm lw-tracking-normal\"\n >\n <div className={classnames(\n 'lw-mb-8 lw-grid',\n {\n 'lw-grid-cols-4 lw-gap-2': isDesktop && showAssetClassesSelect,\n 'lw-grid-cols-3 lw-gap-2.5': isDesktop && !showAssetClassesSelect,\n 'lw-grid-cols-1 lw-gap-4': !isDesktop,\n },\n )}\n >\n {showAssetClassesSelect ? (\n <Select\n selectLabel={lang('instrument_type')}\n options={assetClassesOptions}\n selectedOption={selectedAssetClass}\n setSelectedOption={handleAssetClassSelect}\n />\n ) : null}\n <Select\n withSearch\n searchPlaceholder={lang('search')}\n selectLabel={lang('instrument')}\n options={instrumentsList}\n selectedOption={selectedInstrument}\n setSelectedOption={setSelectedInstrument}\n />\n <Select\n selectLabel={lang('hold_time')}\n options={holdTimeOptions}\n selectedOption={selectedHoldTime}\n setSelectedOption={setSelectedHoldTime}\n />\n <Select\n selectLabel={lang('calculation_period')}\n options={calculationPeriodOptions}\n selectedOption={selectedCalculationPeriod}\n setSelectedOption={setSelectedCalculationPeriod}\n />\n </div>\n <ChartWithData\n bars={selectedCalculationPeriod.id as ValueAtRiskBars}\n duration={selectedHoldTime.id as ValueAtRiskDuration}\n instrument={selectedInstrument.id}\n division={division}\n />\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oanda/labs-value-at-risk-widget",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.24",
|
|
4
4
|
"description": "Labs Value At Risk Widget",
|
|
5
5
|
"main": "dist/main/index.js",
|
|
6
6
|
"module": "dist/module/index.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"license": "UNLICENSED",
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@apollo/client": "3.7.17",
|
|
16
|
-
"@oanda/labs-widget-common": "^1.0.
|
|
16
|
+
"@oanda/labs-widget-common": "^1.0.132",
|
|
17
17
|
"@oanda/mono-i18n": "10.0.1",
|
|
18
18
|
"echarts": "5.5.0",
|
|
19
19
|
"echarts-for-react": "3.0.2",
|
|
@@ -24,5 +24,5 @@
|
|
|
24
24
|
"@graphql-codegen/client-preset": "4.1.0",
|
|
25
25
|
"@graphql-codegen/typescript": "4.0.1"
|
|
26
26
|
},
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "5639744f4e8658df42c7177a759c8434c870022a"
|
|
28
28
|
}
|
|
@@ -44,6 +44,8 @@ const Main = ({ data, division }: MainProps) => {
|
|
|
44
44
|
setSelectedInstrument(list[0]);
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
+
const showAssetClassesSelect = assetClassesOptions.length > 1;
|
|
48
|
+
|
|
47
49
|
return (
|
|
48
50
|
<div
|
|
49
51
|
data-testid="value-at-risk-tool-wrapper"
|
|
@@ -52,17 +54,20 @@ const Main = ({ data, division }: MainProps) => {
|
|
|
52
54
|
<div className={classnames(
|
|
53
55
|
'lw-mb-8 lw-grid',
|
|
54
56
|
{
|
|
55
|
-
'lw-grid-cols-4 lw-gap-2': isDesktop,
|
|
57
|
+
'lw-grid-cols-4 lw-gap-2': isDesktop && showAssetClassesSelect,
|
|
58
|
+
'lw-grid-cols-3 lw-gap-2.5': isDesktop && !showAssetClassesSelect,
|
|
56
59
|
'lw-grid-cols-1 lw-gap-4': !isDesktop,
|
|
57
60
|
},
|
|
58
61
|
)}
|
|
59
62
|
>
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
{showAssetClassesSelect ? (
|
|
64
|
+
<Select
|
|
65
|
+
selectLabel={lang('instrument_type')}
|
|
66
|
+
options={assetClassesOptions}
|
|
67
|
+
selectedOption={selectedAssetClass}
|
|
68
|
+
setSelectedOption={handleAssetClassSelect}
|
|
69
|
+
/>
|
|
70
|
+
) : null}
|
|
66
71
|
<Select
|
|
67
72
|
withSearch
|
|
68
73
|
searchPlaceholder={lang('search')}
|