@oanda/labs-value-at-risk-widget 1.0.23 → 1.0.25

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 CHANGED
@@ -3,6 +3,210 @@
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.25 (2024-06-28)
7
+
8
+
9
+
10
+ ## 1.0.132 (2024-06-27)
11
+
12
+
13
+
14
+ ## 1.0.131 (2024-06-27)
15
+
16
+
17
+
18
+ ## 1.0.130 (2024-06-26)
19
+
20
+
21
+
22
+ ## 1.0.129 (2024-06-17)
23
+
24
+
25
+
26
+ ## 1.0.128 (2024-06-17)
27
+
28
+
29
+
30
+ ## 1.0.127 (2024-06-10)
31
+
32
+
33
+
34
+ ## 1.0.126 (2024-05-29)
35
+
36
+
37
+
38
+ ## 1.0.125 (2024-05-29)
39
+
40
+
41
+
42
+ ## 1.0.124 (2024-05-29)
43
+
44
+
45
+
46
+ ## 1.0.123 (2024-05-28)
47
+
48
+
49
+
50
+ ## 1.0.122 (2024-05-27)
51
+
52
+
53
+
54
+ ## 1.0.121 (2024-05-27)
55
+
56
+
57
+
58
+ ## 1.0.120 (2024-05-24)
59
+
60
+
61
+
62
+ ## 1.0.119 (2024-05-17)
63
+
64
+
65
+
66
+ ## 1.0.118 (2024-05-09)
67
+
68
+
69
+
70
+ ## 1.0.117 (2024-05-07)
71
+
72
+
73
+
74
+ ## 1.0.116 (2024-04-23)
75
+
76
+
77
+
78
+ ## 1.0.115 (2024-04-22)
79
+
80
+
81
+
82
+ ## 1.0.114 (2024-04-19)
83
+
84
+
85
+
86
+ ## 1.0.113 (2024-04-19)
87
+
88
+
89
+
90
+ ## 1.0.112 (2024-04-15)
91
+
92
+
93
+
94
+ ## 1.0.111 (2024-04-11)
95
+
96
+
97
+
98
+ ## 1.0.110 (2024-04-05)
99
+
100
+
101
+
102
+ ## 1.0.109 (2024-04-05)
103
+
104
+ **Note:** Version bump only for package @oanda/labs-value-at-risk-widget
105
+
106
+
107
+
108
+
109
+
110
+ ## 1.0.24 (2024-06-27)
111
+
112
+
113
+
114
+ ## 1.0.131 (2024-06-27)
115
+
116
+
117
+
118
+ ## 1.0.130 (2024-06-26)
119
+
120
+
121
+
122
+ ## 1.0.129 (2024-06-17)
123
+
124
+
125
+
126
+ ## 1.0.128 (2024-06-17)
127
+
128
+
129
+
130
+ ## 1.0.127 (2024-06-10)
131
+
132
+
133
+
134
+ ## 1.0.126 (2024-05-29)
135
+
136
+
137
+
138
+ ## 1.0.125 (2024-05-29)
139
+
140
+
141
+
142
+ ## 1.0.124 (2024-05-29)
143
+
144
+
145
+
146
+ ## 1.0.123 (2024-05-28)
147
+
148
+
149
+
150
+ ## 1.0.122 (2024-05-27)
151
+
152
+
153
+
154
+ ## 1.0.121 (2024-05-27)
155
+
156
+
157
+
158
+ ## 1.0.120 (2024-05-24)
159
+
160
+
161
+
162
+ ## 1.0.119 (2024-05-17)
163
+
164
+
165
+
166
+ ## 1.0.118 (2024-05-09)
167
+
168
+
169
+
170
+ ## 1.0.117 (2024-05-07)
171
+
172
+
173
+
174
+ ## 1.0.116 (2024-04-23)
175
+
176
+
177
+
178
+ ## 1.0.115 (2024-04-22)
179
+
180
+
181
+
182
+ ## 1.0.114 (2024-04-19)
183
+
184
+
185
+
186
+ ## 1.0.113 (2024-04-19)
187
+
188
+
189
+
190
+ ## 1.0.112 (2024-04-15)
191
+
192
+
193
+
194
+ ## 1.0.111 (2024-04-11)
195
+
196
+
197
+
198
+ ## 1.0.110 (2024-04-05)
199
+
200
+
201
+
202
+ ## 1.0.109 (2024-04-05)
203
+
204
+ **Note:** Version bump only for package @oanda/labs-value-at-risk-widget
205
+
206
+
207
+
208
+
209
+
6
210
  ## 1.0.23 (2024-06-27)
7
211
 
8
212
 
@@ -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 selectLabel={lang('instrument_type')}\n options={assetClassesOptions}\n selectedOption={selectedAssetClass}\n setSelectedOption={handleAssetClassSelect}\n />\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":[]}
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 selectLabel={lang('instrument_type')}\n options={assetClassesOptions}\n selectedOption={selectedAssetClass}\n setSelectedOption={handleAssetClassSelect}\n />\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":[]}
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.23",
3
+ "version": "1.0.25",
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.131",
16
+ "@oanda/labs-widget-common": "^1.0.133",
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": "ad73f209dfdac4370df3189c8e4f9c1d560a8359"
27
+ "gitHead": "30d51ce5a4f0aefa7a5ee0efbb9f09160e54ed94"
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
- <Select
61
- selectLabel={lang('instrument_type')}
62
- options={assetClassesOptions}
63
- selectedOption={selectedAssetClass}
64
- setSelectedOption={handleAssetClassSelect}
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')}