@oanda/labs-value-at-risk-widget 1.0.27 → 1.0.28
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 +116 -0
- package/dist/main/ValueAtRiskWidget/{Main.js → Tool.js} +4 -4
- package/dist/main/ValueAtRiskWidget/{Main.js.map → Tool.js.map} +1 -1
- package/dist/main/ValueAtRiskWidget/{MainWithData.js → ToolWithData.js} +6 -6
- package/dist/main/ValueAtRiskWidget/{MainWithData.js.map → ToolWithData.js.map} +1 -1
- package/dist/main/ValueAtRiskWidget/ValueAtRiskWidget.js +14 -4
- package/dist/main/ValueAtRiskWidget/ValueAtRiskWidget.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/Widget.js +49 -0
- package/dist/main/ValueAtRiskWidget/Widget.js.map +1 -0
- package/dist/main/ValueAtRiskWidget/render.js +8 -2
- package/dist/main/ValueAtRiskWidget/render.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/types.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/{Main.js → Tool.js} +3 -3
- package/dist/module/ValueAtRiskWidget/{Main.js.map → Tool.js.map} +1 -1
- package/dist/module/ValueAtRiskWidget/{MainWithData.js → ToolWithData.js} +5 -5
- package/dist/module/ValueAtRiskWidget/{MainWithData.js.map → ToolWithData.js.map} +1 -1
- package/dist/module/ValueAtRiskWidget/ValueAtRiskWidget.js +14 -4
- package/dist/module/ValueAtRiskWidget/ValueAtRiskWidget.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/Widget.js +40 -0
- package/dist/module/ValueAtRiskWidget/Widget.js.map +1 -0
- package/dist/module/ValueAtRiskWidget/render.js +8 -2
- package/dist/module/ValueAtRiskWidget/render.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/types.js.map +1 -1
- package/dist/types/ValueAtRiskWidget/Tool.d.ts +4 -0
- package/dist/types/ValueAtRiskWidget/ToolWithData.d.ts +4 -0
- package/dist/types/ValueAtRiskWidget/ValueAtRiskWidget.d.ts +1 -1
- package/dist/types/ValueAtRiskWidget/Widget.d.ts +4 -0
- package/dist/types/ValueAtRiskWidget/types.d.ts +11 -2
- package/package.json +3 -3
- package/src/ValueAtRiskWidget/{Main.tsx → Tool.tsx} +3 -3
- package/src/ValueAtRiskWidget/{MainWithData.tsx → ToolWithData.tsx} +5 -5
- package/src/ValueAtRiskWidget/ValueAtRiskWidget.tsx +22 -4
- package/src/ValueAtRiskWidget/Widget.tsx +46 -0
- package/src/ValueAtRiskWidget/render.tsx +10 -1
- package/src/ValueAtRiskWidget/types.ts +12 -2
- package/test/{Main.test.tsx → Tool.test.tsx} +4 -4
- package/test/{MainWithData.test.tsx → ToolWithData.test.tsx} +2 -2
- package/test/Widget.test.tsx +29 -0
- package/dist/types/ValueAtRiskWidget/Main.d.ts +0 -4
- package/dist/types/ValueAtRiskWidget/MainWithData.d.ts +0 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,122 @@
|
|
|
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.28 (2024-07-03)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 1.0.135 (2024-07-03)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## 1.0.134 (2024-07-03)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## 1.0.133 (2024-06-28)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## 1.0.132 (2024-06-27)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## 1.0.131 (2024-06-27)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## 1.0.130 (2024-06-26)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## 1.0.129 (2024-06-17)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## 1.0.128 (2024-06-17)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
## 1.0.127 (2024-06-10)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## 1.0.126 (2024-05-29)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## 1.0.125 (2024-05-29)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## 1.0.124 (2024-05-29)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## 1.0.123 (2024-05-28)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## 1.0.122 (2024-05-27)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## 1.0.121 (2024-05-27)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
## 1.0.120 (2024-05-24)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
## 1.0.119 (2024-05-17)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
## 1.0.118 (2024-05-09)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## 1.0.117 (2024-05-07)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
## 1.0.116 (2024-04-23)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
## 1.0.115 (2024-04-22)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
## 1.0.114 (2024-04-19)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
## 1.0.113 (2024-04-19)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
## 1.0.112 (2024-04-15)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## 1.0.111 (2024-04-11)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
## 1.0.110 (2024-04-05)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
## 1.0.109 (2024-04-05)
|
|
115
|
+
|
|
116
|
+
**Note:** Version bump only for package @oanda/labs-value-at-risk-widget
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
6
122
|
## 1.0.27 (2024-07-03)
|
|
7
123
|
|
|
8
124
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.Tool = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
9
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
@@ -14,7 +14,7 @@ var _ChartWithData = require("./ChartWithData");
|
|
|
14
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
15
|
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); }
|
|
16
16
|
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; }
|
|
17
|
-
const
|
|
17
|
+
const Tool = _ref => {
|
|
18
18
|
let {
|
|
19
19
|
data,
|
|
20
20
|
division
|
|
@@ -90,5 +90,5 @@ const Main = _ref => {
|
|
|
90
90
|
division: division
|
|
91
91
|
}));
|
|
92
92
|
};
|
|
93
|
-
exports.
|
|
94
|
-
//# sourceMappingURL=
|
|
93
|
+
exports.Tool = Tool;
|
|
94
|
+
//# sourceMappingURL=Tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"Tool.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_labsWidgetCommon","_monoI18n","_utils","_graphql","_ChartWithData","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Tool","_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/Tool.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 { ToolProps } from './types';\nimport { ValueAtRiskDuration, ValueAtRiskBars } from '../gql/types/graphql';\nimport { ChartWithData } from './ChartWithData';\n\nconst Tool = ({ data, division }: ToolProps) => {\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 { Tool };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.ToolWithData = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
9
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
10
10
|
var _client = require("@apollo/client");
|
|
11
11
|
var _getValueAtRiskAssetClasses = require("../gql/getValueAtRiskAssetClasses");
|
|
12
|
-
var
|
|
12
|
+
var _Tool = require("./Tool");
|
|
13
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
14
|
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); }
|
|
15
15
|
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; }
|
|
16
|
-
const
|
|
16
|
+
const ToolWithData = _ref => {
|
|
17
17
|
let {
|
|
18
18
|
division
|
|
19
19
|
} = _ref;
|
|
@@ -40,12 +40,12 @@ const MainWithData = _ref => {
|
|
|
40
40
|
})
|
|
41
41
|
}, _react.default.createElement(_labsWidgetCommon.Spinner, {
|
|
42
42
|
size: _labsWidgetCommon.SpinnerSize.lg
|
|
43
|
-
})), !loading && data && _react.default.createElement(
|
|
43
|
+
})), !loading && data && _react.default.createElement(_Tool.Tool, {
|
|
44
44
|
data: data,
|
|
45
45
|
division: division
|
|
46
46
|
}), !loading && error && _react.default.createElement("div", {
|
|
47
47
|
className: "lw-flex lw-h-[500px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
|
|
48
48
|
}, _react.default.createElement(_labsWidgetCommon.ChartError, null)));
|
|
49
49
|
};
|
|
50
|
-
exports.
|
|
51
|
-
//# sourceMappingURL=
|
|
50
|
+
exports.ToolWithData = ToolWithData;
|
|
51
|
+
//# sourceMappingURL=ToolWithData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"ToolWithData.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_labsWidgetCommon","_client","_getValueAtRiskAssetClasses","_Tool","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ToolWithData","_ref","division","size","useContext","ThemeContext","isDesktop","Size","DESKTOP","loading","data","error","useQuery","getValueAtRiskAssetClasses","variables","fetchPolicy","createElement","className","classnames","Spinner","SpinnerSize","lg","Tool","ChartError","exports"],"sources":["../../../src/ValueAtRiskWidget/ToolWithData.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport classnames from 'classnames';\nimport {\n ChartError, Size, Spinner, SpinnerSize, ThemeContext,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getValueAtRiskAssetClasses } from '../gql/getValueAtRiskAssetClasses';\nimport { Tool } from './Tool';\nimport { ToolWithDataProps } from './types';\nimport { GetValueAtRiskAssetClassesQuery, GetValueAtRiskAssetClassesQueryVariables } from '../gql/types/graphql';\n\nconst ToolWithData = ({ division }: ToolWithDataProps) => {\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n const { loading, data, error } = useQuery<\n GetValueAtRiskAssetClassesQuery,\n GetValueAtRiskAssetClassesQueryVariables\n >(getValueAtRiskAssetClasses, {\n variables: {\n division,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n return (\n <div data-testid=\"value-at-risk-wrapper\">\n {(loading || !size)\n && (\n <div className={classnames('lw-flex lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary', {\n 'lw-h-[566px]': isDesktop,\n 'lw-h-[840px]': !isDesktop,\n })}\n >\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {!loading && data && (\n <Tool\n data={data}\n division={division}\n />\n )}\n {!loading && error && (\n <div className=\"lw-flex lw-h-[500px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )}\n </div>\n );\n};\n\nexport { ToolWithData };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,8 @@ var _monoI18n = require("@oanda/mono-i18n");
|
|
|
9
9
|
var _client = require("@apollo/client");
|
|
10
10
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
11
11
|
var _translations = require("../translations");
|
|
12
|
-
var
|
|
12
|
+
var _ToolWithData = require("./ToolWithData");
|
|
13
|
+
var _Widget = require("./Widget");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
const ValueAtRiskWidget = _ref => {
|
|
15
16
|
let {
|
|
@@ -17,12 +18,16 @@ const ValueAtRiskWidget = _ref => {
|
|
|
17
18
|
locale,
|
|
18
19
|
division,
|
|
19
20
|
theme,
|
|
20
|
-
isParamError
|
|
21
|
+
isParamError,
|
|
22
|
+
instrument,
|
|
23
|
+
duration,
|
|
24
|
+
bars
|
|
21
25
|
} = _ref;
|
|
22
26
|
const client = new _client.ApolloClient({
|
|
23
27
|
uri: graphqlUrl,
|
|
24
28
|
cache: new _client.InMemoryCache()
|
|
25
29
|
});
|
|
30
|
+
const isWidget = !!instrument && !!duration && !!bars;
|
|
26
31
|
return _react.default.createElement(_labsWidgetCommon.ThemeProvider, {
|
|
27
32
|
theme: theme
|
|
28
33
|
}, _react.default.createElement(_monoI18n.LocaleProvider, {
|
|
@@ -30,10 +35,15 @@ const ValueAtRiskWidget = _ref => {
|
|
|
30
35
|
translations: _translations.translations
|
|
31
36
|
}, _react.default.createElement(_client.ApolloProvider, {
|
|
32
37
|
client: client
|
|
33
|
-
}, isParamError
|
|
38
|
+
}, isParamError && _react.default.createElement("div", {
|
|
34
39
|
className: "lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
|
|
35
|
-
}, _react.default.createElement(_labsWidgetCommon.ChartError, null))
|
|
40
|
+
}, _react.default.createElement(_labsWidgetCommon.ChartError, null)), !isParamError && !isWidget && _react.default.createElement(_ToolWithData.ToolWithData, {
|
|
36
41
|
division: division
|
|
42
|
+
}), !isParamError && isWidget && _react.default.createElement(_Widget.Widget, {
|
|
43
|
+
division: division,
|
|
44
|
+
instrument: instrument,
|
|
45
|
+
duration: duration,
|
|
46
|
+
bars: bars
|
|
37
47
|
}))));
|
|
38
48
|
};
|
|
39
49
|
exports.ValueAtRiskWidget = ValueAtRiskWidget;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValueAtRiskWidget.js","names":["_react","_interopRequireDefault","require","_monoI18n","_client","_labsWidgetCommon","_translations","
|
|
1
|
+
{"version":3,"file":"ValueAtRiskWidget.js","names":["_react","_interopRequireDefault","require","_monoI18n","_client","_labsWidgetCommon","_translations","_ToolWithData","_Widget","e","__esModule","default","ValueAtRiskWidget","_ref","graphqlUrl","locale","division","theme","isParamError","instrument","duration","bars","client","ApolloClient","uri","cache","InMemoryCache","isWidget","createElement","ThemeProvider","LocaleProvider","getLocale","translations","ApolloProvider","className","ChartError","ToolWithData","Widget","exports"],"sources":["../../../src/ValueAtRiskWidget/ValueAtRiskWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { ChartError, ThemeProvider, getLocale } from '@oanda/labs-widget-common';\nimport { ValueAtRiskConfig } from './types';\nimport { translations } from '../translations';\nimport { ToolWithData } from './ToolWithData';\nimport { Widget } from './Widget';\n\nconst ValueAtRiskWidget = ({\n graphqlUrl,\n locale,\n division,\n theme,\n isParamError,\n instrument,\n duration,\n bars,\n}: ValueAtRiskConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n const isWidget = !!instrument && !!duration && !!bars;\n\n return (\n <ThemeProvider theme={theme}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <ApolloProvider client={client}>\n {isParamError && (\n <div className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )}\n {!isParamError && !isWidget && <ToolWithData division={division} />}\n {!isParamError && isWidget && (\n <Widget\n division={division}\n instrument={instrument}\n duration={duration}\n bars={bars}\n />\n )}\n </ApolloProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { ValueAtRiskWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAEA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AAAkC,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAElC,MAAMG,iBAAiB,GAAGC,IAAA,IASD;EAAA,IATE;IACzBC,UAAU;IACVC,MAAM;IACNC,QAAQ;IACRC,KAAK;IACLC,YAAY;IACZC,UAAU;IACVC,QAAQ;IACRC;EACiB,CAAC,GAAAR,IAAA;EAClB,MAAMS,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAEV,UAAU;IACfW,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EACF,MAAMC,QAAQ,GAAG,CAAC,CAACR,UAAU,IAAI,CAAC,CAACC,QAAQ,IAAI,CAAC,CAACC,IAAI;EAErD,OACErB,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACvB,iBAAA,CAAAwB,aAAa;IAACZ,KAAK,EAAEA;EAAM,GAC1BjB,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACzB,SAAA,CAAA2B,cAAc;IAACf,MAAM,EAAE,IAAAgB,2BAAS,EAAChB,MAAM,CAAE;IAACiB,YAAY,EAAEA;EAAa,GACpEhC,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACxB,OAAA,CAAA6B,cAAc;IAACX,MAAM,EAAEA;EAAO,GAC5BJ,YAAY,IACXlB,MAAA,CAAAW,OAAA,CAAAiB,aAAA;IAAKM,SAAS,EAAC;EAAmG,GAChHlC,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACvB,iBAAA,CAAA8B,UAAU,MAAE,CACV,CACN,EACA,CAACjB,YAAY,IAAI,CAACS,QAAQ,IAAI3B,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACrB,aAAA,CAAA6B,YAAY;IAACpB,QAAQ,EAAEA;EAAS,CAAE,CAAC,EAClE,CAACE,YAAY,IAAIS,QAAQ,IACxB3B,MAAA,CAAAW,OAAA,CAAAiB,aAAA,CAACpB,OAAA,CAAA6B,MAAM;IACLrB,QAAQ,EAAEA,QAAS;IACnBG,UAAU,EAAEA,UAAW;IACvBC,QAAQ,EAAEA,QAAS;IACnBC,IAAI,EAAEA;EAAK,CACZ,CAEW,CACF,CACH,CAAC;AAEpB,CAAC;AAACiB,OAAA,CAAA1B,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Widget = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
10
|
+
var _monoI18n = require("@oanda/mono-i18n");
|
|
11
|
+
var _ChartWithData = require("./ChartWithData");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
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); }
|
|
14
|
+
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; }
|
|
15
|
+
const Widget = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
division,
|
|
18
|
+
instrument,
|
|
19
|
+
duration,
|
|
20
|
+
bars
|
|
21
|
+
} = _ref;
|
|
22
|
+
const {
|
|
23
|
+
lang
|
|
24
|
+
} = (0, _monoI18n.useLocale)();
|
|
25
|
+
const {
|
|
26
|
+
size
|
|
27
|
+
} = (0, _react.useContext)(_labsWidgetCommon.ThemeContext);
|
|
28
|
+
const isDesktop = size === _labsWidgetCommon.Size.DESKTOP;
|
|
29
|
+
return _react.default.createElement("div", {
|
|
30
|
+
"data-testid": "value-at-risk-widget-wrapper",
|
|
31
|
+
className: "lw-relative lw-text-sm lw-tracking-normal"
|
|
32
|
+
}, size && _react.default.createElement(_react.default.Fragment, null, _react.default.createElement("div", {
|
|
33
|
+
className: (0, _classnames.default)('lw-font-bold', {
|
|
34
|
+
'lw-mb-11 lw-text-center lw-text-xl': isDesktop,
|
|
35
|
+
'lw-mb-6 lw-text-lg': !isDesktop
|
|
36
|
+
})
|
|
37
|
+
}, _react.default.createElement("div", null, `${lang('hold_time')}: ${lang('day', {
|
|
38
|
+
count: +duration.substring(1)
|
|
39
|
+
})}`), _react.default.createElement("div", null, `${lang('calculation_period')}: ${lang('day', {
|
|
40
|
+
count: +bars.substring(1)
|
|
41
|
+
})}`)), _react.default.createElement(_ChartWithData.ChartWithData, {
|
|
42
|
+
bars: bars,
|
|
43
|
+
duration: duration,
|
|
44
|
+
instrument: instrument,
|
|
45
|
+
division: division
|
|
46
|
+
})));
|
|
47
|
+
};
|
|
48
|
+
exports.Widget = Widget;
|
|
49
|
+
//# sourceMappingURL=Widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Widget.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_labsWidgetCommon","_monoI18n","_ChartWithData","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Widget","_ref","division","instrument","duration","bars","lang","useLocale","size","useContext","ThemeContext","isDesktop","Size","DESKTOP","createElement","className","Fragment","classnames","count","substring","ChartWithData","exports"],"sources":["../../../src/ValueAtRiskWidget/Widget.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport classnames from 'classnames';\nimport { Size, ThemeContext } from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { WidgetProps } from './types';\nimport { ChartWithData } from './ChartWithData';\n\nconst Widget = ({\n division,\n instrument,\n duration,\n bars,\n}: WidgetProps) => {\n const { lang } = useLocale();\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n\n return (\n <div\n data-testid=\"value-at-risk-widget-wrapper\"\n className=\"lw-relative lw-text-sm lw-tracking-normal\"\n >\n {size && (\n <>\n <div\n className={classnames('lw-font-bold', {\n 'lw-mb-11 lw-text-center lw-text-xl': isDesktop,\n 'lw-mb-6 lw-text-lg': !isDesktop,\n })}\n >\n <div>{`${lang('hold_time')}: ${lang('day', { count: +duration.substring(1) })}`}</div>\n <div>{`${lang('calculation_period')}: ${lang('day', { count: +bars.substring(1) })}`}</div>\n </div>\n <ChartWithData\n bars={bars}\n duration={duration}\n instrument={instrument}\n division={division}\n />\n </>\n )}\n </div>\n );\n};\n\nexport { Widget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAEA,IAAAK,cAAA,GAAAL,OAAA;AAAgD,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAEhD,MAAMW,MAAM,GAAGC,IAAA,IAKI;EAAA,IALH;IACdC,QAAQ;IACRC,UAAU;IACVC,QAAQ;IACRC;EACW,CAAC,GAAAJ,IAAA;EACZ,MAAM;IAAEK;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAC5B,MAAM;IAAEC;EAAK,CAAC,GAAG,IAAAC,iBAAU,EAACC,8BAAY,CAAC;EACzC,MAAMC,SAAS,GAAGH,IAAI,KAAKI,sBAAI,CAACC,OAAO;EAEvC,OACEzC,MAAA,CAAAU,OAAA,CAAAgC,aAAA;IACE,eAAY,8BAA8B;IAC1CC,SAAS,EAAC;EAA2C,GAEpDP,IAAI,IACHpC,MAAA,CAAAU,OAAA,CAAAgC,aAAA,CAAA1C,MAAA,CAAAU,OAAA,CAAAkC,QAAA,QACE5C,MAAA,CAAAU,OAAA,CAAAgC,aAAA;IACEC,SAAS,EAAE,IAAAE,mBAAU,EAAC,cAAc,EAAE;MACpC,oCAAoC,EAAEN,SAAS;MAC/C,oBAAoB,EAAE,CAACA;IACzB,CAAC;EAAE,GAEHvC,MAAA,CAAAU,OAAA,CAAAgC,aAAA,cAAM,GAAGR,IAAI,CAAC,WAAW,CAAC,KAAKA,IAAI,CAAC,KAAK,EAAE;IAAEY,KAAK,EAAE,CAACd,QAAQ,CAACe,SAAS,CAAC,CAAC;EAAE,CAAC,CAAC,EAAQ,CAAC,EACtF/C,MAAA,CAAAU,OAAA,CAAAgC,aAAA,cAAM,GAAGR,IAAI,CAAC,oBAAoB,CAAC,KAAKA,IAAI,CAAC,KAAK,EAAE;IAAEY,KAAK,EAAE,CAACb,IAAI,CAACc,SAAS,CAAC,CAAC;EAAE,CAAC,CAAC,EAAQ,CACvF,CAAC,EACN/C,MAAA,CAAAU,OAAA,CAAAgC,aAAA,CAACnC,cAAA,CAAAyC,aAAa;IACZf,IAAI,EAAEA,IAAK;IACXD,QAAQ,EAAEA,QAAS;IACnBD,UAAU,EAAEA,UAAW;IACvBD,QAAQ,EAAEA;EAAS,CACpB,CACD,CAED,CAAC;AAEV,CAAC;AAACmB,OAAA,CAAArB,MAAA,GAAAA,MAAA","ignoreList":[]}
|
|
@@ -16,7 +16,10 @@ volatilityChartParamsElements.forEach(element => {
|
|
|
16
16
|
const mode = element.getAttribute('data-mode');
|
|
17
17
|
const {
|
|
18
18
|
division,
|
|
19
|
-
locale
|
|
19
|
+
locale,
|
|
20
|
+
instrument,
|
|
21
|
+
duration,
|
|
22
|
+
bars
|
|
20
23
|
} = JSON.parse(params);
|
|
21
24
|
const isParamError = (0, _labsWidgetCommon.validateToolParams)({
|
|
22
25
|
locale,
|
|
@@ -36,7 +39,10 @@ volatilityChartParamsElements.forEach(element => {
|
|
|
36
39
|
locale: locale,
|
|
37
40
|
division: division,
|
|
38
41
|
theme: mode,
|
|
39
|
-
isParamError: isParamError
|
|
42
|
+
isParamError: isParamError,
|
|
43
|
+
instrument: instrument,
|
|
44
|
+
duration: duration,
|
|
45
|
+
bars: bars
|
|
40
46
|
}));
|
|
41
47
|
});
|
|
42
48
|
//# sourceMappingURL=render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_ValueAtRiskWidget","_graphql","e","__esModule","default","graphqlUrl","window","widgetsConfig","volatilityChartParamsElements","document","querySelectorAll","forEach","element","root","createRoot","params","getAttribute","mode","division","locale","JSON","parse","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","render","createElement","ValueAtRiskWidget","theme"],"sources":["../../../src/ValueAtRiskWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { ValueAtRiskWidget } from './ValueAtRiskWidget';\nimport { Division } from '../gql/types/graphql';\n\nconst {\n graphqlUrl,\n} = window.widgetsConfig || {};\n\nconst volatilityChartParamsElements = document.querySelectorAll('div[data-value-at-risk-params]');\n\nvolatilityChartParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-value-at-risk-params');\n const mode = element.getAttribute('data-mode');\n const {
|
|
1
|
+
{"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_ValueAtRiskWidget","_graphql","e","__esModule","default","graphqlUrl","window","widgetsConfig","volatilityChartParamsElements","document","querySelectorAll","forEach","element","root","createRoot","params","getAttribute","mode","division","locale","instrument","duration","bars","JSON","parse","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","render","createElement","ValueAtRiskWidget","theme"],"sources":["../../../src/ValueAtRiskWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { ValueAtRiskWidget } from './ValueAtRiskWidget';\nimport { Division } from '../gql/types/graphql';\n\nconst {\n graphqlUrl,\n} = window.widgetsConfig || {};\n\nconst volatilityChartParamsElements = document.querySelectorAll('div[data-value-at-risk-params]');\n\nvolatilityChartParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-value-at-risk-params');\n const mode = element.getAttribute('data-mode');\n const {\n division,\n locale,\n instrument,\n duration,\n bars,\n } = JSON.parse(params as string);\n\n const isParamError = validateToolParams({ locale, division, graphqlUrl }, [\n {\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n },\n {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n },\n {\n name: 'graphqlUrl',\n }]);\n\n root.render(\n <ValueAtRiskWidget\n graphqlUrl={graphqlUrl}\n locale={locale}\n division={division}\n theme={mode as Theme}\n isParamError={isParamError}\n instrument={instrument}\n duration={duration}\n bars={bars}\n />,\n );\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAAgD,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEhD,MAAM;EACJG;AACF,CAAC,GAAGC,MAAM,CAACC,aAAa,IAAI,CAAC,CAAC;AAE9B,MAAMC,6BAA6B,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,gCAAgC,CAAC;AAEjGF,6BAA6B,CAACG,OAAO,CAAEC,OAAO,IAAK;EACjD,MAAMC,IAAI,GAAG,IAAAC,kBAAU,EAACF,OAAO,CAAC;EAChC,MAAMG,MAAM,GAAGH,OAAO,CAACI,YAAY,CAAC,2BAA2B,CAAC;EAChE,MAAMC,IAAI,GAAGL,OAAO,CAACI,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IACJE,QAAQ;IACRC,MAAM;IACNC,UAAU;IACVC,QAAQ;IACRC;EACF,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACT,MAAgB,CAAC;EAEhC,MAAMU,YAAY,GAAG,IAAAC,oCAAkB,EAAC;IAAEP,MAAM;IAAED,QAAQ;IAAEb;EAAW,CAAC,EAAE,CACxE;IACEsB,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAGC,KAAK,IAAK,IAAAC,gCAAc,EAACD,KAAK;EAC7C,CAAC,EACD;IACEF,IAAI,EAAE,UAAU;IAChBC,UAAU,EAAGC,KAAK,IAAKE,MAAM,CAACC,MAAM,CAACC,iBAAQ,CAAC,CAACC,QAAQ,CAACL,KAAK;EAC/D,CAAC,EACD;IACEF,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EAELd,IAAI,CAACsB,MAAM,CACTxC,MAAA,CAAAS,OAAA,CAAAgC,aAAA,CAACpC,kBAAA,CAAAqC,iBAAiB;IAChBhC,UAAU,EAAEA,UAAW;IACvBc,MAAM,EAAEA,MAAO;IACfD,QAAQ,EAAEA,QAAS;IACnBoB,KAAK,EAAErB,IAAc;IACrBQ,YAAY,EAAEA,YAAa;IAC3BL,UAAU,EAAEA,UAAW;IACvBC,QAAQ,EAAEA,QAAS;IACnBC,IAAI,EAAEA;EAAK,CACZ,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/ValueAtRiskWidget/types.ts"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport { Theme } from '@oanda/labs-widget-common';\nimport {\n Division, GetValueAtRiskAssetClassesQuery, ValueAtRiskBars, ValueAtRiskDuration,\n} from '../gql/types/graphql';\n\nexport interface ValueAtRiskConfig {\n graphqlUrl: string;\n division: Division;\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n}\n\nexport interface ValueAtRiskWrapperConfig extends ValueAtRiskConfig {\n renderElementId: string;\n}\n\nexport interface
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/ValueAtRiskWidget/types.ts"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport { Theme } from '@oanda/labs-widget-common';\nimport {\n Division, GetValueAtRiskAssetClassesQuery, ValueAtRiskBars, ValueAtRiskDuration,\n} from '../gql/types/graphql';\n\nexport interface ValueAtRiskConfig {\n graphqlUrl: string;\n division: Division;\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n instrument?: string;\n duration?: ValueAtRiskDuration;\n bars?: ValueAtRiskBars;\n}\n\nexport interface ValueAtRiskWrapperConfig extends ValueAtRiskConfig {\n renderElementId: string;\n}\n\nexport interface WidgetProps {\n instrument: string;\n duration: ValueAtRiskDuration;\n bars: ValueAtRiskBars;\n division: Division;\n}\n\nexport interface ToolProps {\n data: GetValueAtRiskAssetClassesQuery;\n division: Division;\n}\n\nexport interface ToolWithDataProps {\n division: Division;\n}\n\nexport interface ChartWithDataProps {\n instrument: string;\n duration: ValueAtRiskDuration;\n bars: ValueAtRiskBars;\n division: Division;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { useLocale } from '@oanda/mono-i18n';
|
|
|
5
5
|
import { getAssetClassesList, getInstrumentsByAssetClassId } from './utils';
|
|
6
6
|
import { ValueAtRiskDuration, ValueAtRiskBars } from '../gql/types/graphql';
|
|
7
7
|
import { ChartWithData } from './ChartWithData';
|
|
8
|
-
const
|
|
8
|
+
const Tool = _ref => {
|
|
9
9
|
let {
|
|
10
10
|
data,
|
|
11
11
|
division
|
|
@@ -81,5 +81,5 @@ const Main = _ref => {
|
|
|
81
81
|
division: division
|
|
82
82
|
}));
|
|
83
83
|
};
|
|
84
|
-
export {
|
|
85
|
-
//# sourceMappingURL=
|
|
84
|
+
export { Tool };
|
|
85
|
+
//# sourceMappingURL=Tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"Tool.js","names":["React","useState","useContext","classnames","Select","Size","ThemeContext","useLocale","getAssetClassesList","getInstrumentsByAssetClassId","ValueAtRiskDuration","ValueAtRiskBars","ChartWithData","Tool","_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/Tool.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 { ToolProps } from './types';\nimport { ValueAtRiskDuration, ValueAtRiskBars } from '../gql/types/graphql';\nimport { ChartWithData } from './ChartWithData';\n\nconst Tool = ({ data, division }: ToolProps) => {\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 { Tool };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,8 +3,8 @@ import classnames from 'classnames';
|
|
|
3
3
|
import { ChartError, Size, Spinner, SpinnerSize, ThemeContext } from '@oanda/labs-widget-common';
|
|
4
4
|
import { useQuery } from '@apollo/client';
|
|
5
5
|
import { getValueAtRiskAssetClasses } from '../gql/getValueAtRiskAssetClasses';
|
|
6
|
-
import {
|
|
7
|
-
const
|
|
6
|
+
import { Tool } from './Tool';
|
|
7
|
+
const ToolWithData = _ref => {
|
|
8
8
|
let {
|
|
9
9
|
division
|
|
10
10
|
} = _ref;
|
|
@@ -31,12 +31,12 @@ const MainWithData = _ref => {
|
|
|
31
31
|
})
|
|
32
32
|
}, React.createElement(Spinner, {
|
|
33
33
|
size: SpinnerSize.lg
|
|
34
|
-
})), !loading && data && React.createElement(
|
|
34
|
+
})), !loading && data && React.createElement(Tool, {
|
|
35
35
|
data: data,
|
|
36
36
|
division: division
|
|
37
37
|
}), !loading && error && React.createElement("div", {
|
|
38
38
|
className: "lw-flex lw-h-[500px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
|
|
39
39
|
}, React.createElement(ChartError, null)));
|
|
40
40
|
};
|
|
41
|
-
export {
|
|
42
|
-
//# sourceMappingURL=
|
|
41
|
+
export { ToolWithData };
|
|
42
|
+
//# sourceMappingURL=ToolWithData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"ToolWithData.js","names":["React","useContext","classnames","ChartError","Size","Spinner","SpinnerSize","ThemeContext","useQuery","getValueAtRiskAssetClasses","Tool","ToolWithData","_ref","division","size","isDesktop","DESKTOP","loading","data","error","variables","fetchPolicy","createElement","className","lg"],"sources":["../../../src/ValueAtRiskWidget/ToolWithData.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport classnames from 'classnames';\nimport {\n ChartError, Size, Spinner, SpinnerSize, ThemeContext,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getValueAtRiskAssetClasses } from '../gql/getValueAtRiskAssetClasses';\nimport { Tool } from './Tool';\nimport { ToolWithDataProps } from './types';\nimport { GetValueAtRiskAssetClassesQuery, GetValueAtRiskAssetClassesQueryVariables } from '../gql/types/graphql';\n\nconst ToolWithData = ({ division }: ToolWithDataProps) => {\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n const { loading, data, error } = useQuery<\n GetValueAtRiskAssetClassesQuery,\n GetValueAtRiskAssetClassesQueryVariables\n >(getValueAtRiskAssetClasses, {\n variables: {\n division,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n return (\n <div data-testid=\"value-at-risk-wrapper\">\n {(loading || !size)\n && (\n <div className={classnames('lw-flex lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary', {\n 'lw-h-[566px]': isDesktop,\n 'lw-h-[840px]': !isDesktop,\n })}\n >\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {!loading && data && (\n <Tool\n data={data}\n division={division}\n />\n )}\n {!loading && error && (\n <div className=\"lw-flex lw-h-[500px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )}\n </div>\n );\n};\n\nexport { ToolWithData };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,UAAU,EAAEC,IAAI,EAAEC,OAAO,EAAEC,WAAW,EAAEC,YAAY,QAC/C,2BAA2B;AAClC,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,0BAA0B,QAAQ,mCAAmC;AAC9E,SAASC,IAAI,QAAQ,QAAQ;AAI7B,MAAMC,YAAY,GAAGC,IAAA,IAAqC;EAAA,IAApC;IAAEC;EAA4B,CAAC,GAAAD,IAAA;EACnD,MAAM;IAAEE;EAAK,CAAC,GAAGb,UAAU,CAACM,YAAY,CAAC;EACzC,MAAMQ,SAAS,GAAGD,IAAI,KAAKV,IAAI,CAACY,OAAO;EACvC,MAAM;IAAEC,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAGX,QAAQ,CAGvCC,0BAA0B,EAAE;IAC5BW,SAAS,EAAE;MACTP;IACF,CAAC;IACDQ,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,OACErB,KAAA,CAAAsB,aAAA;IAAK,eAAY;EAAuB,GACrC,CAACL,OAAO,IAAI,CAACH,IAAI,KAElBd,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAErB,UAAU,CAAC,sFAAsF,EAAE;MACjH,cAAc,EAAEa,SAAS;MACzB,cAAc,EAAE,CAACA;IACnB,CAAC;EAAE,GAEDf,KAAA,CAAAsB,aAAA,CAACjB,OAAO;IAACS,IAAI,EAAER,WAAW,CAACkB;EAAG,CAAE,CAC7B,CACJ,EACA,CAACP,OAAO,IAAIC,IAAI,IACflB,KAAA,CAAAsB,aAAA,CAACZ,IAAI;IACHQ,IAAI,EAAEA,IAAK;IACXL,QAAQ,EAAEA;EAAS,CACpB,CACF,EACA,CAACI,OAAO,IAAIE,KAAK,IAChBnB,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAC;EAAmG,GAChHvB,KAAA,CAAAsB,aAAA,CAACnB,UAAU,MAAE,CACV,CAEJ,CAAC;AAEV,CAAC;AAED,SAASQ,YAAY","ignoreList":[]}
|
|
@@ -3,19 +3,24 @@ import { LocaleProvider } from '@oanda/mono-i18n';
|
|
|
3
3
|
import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';
|
|
4
4
|
import { ChartError, ThemeProvider, getLocale } from '@oanda/labs-widget-common';
|
|
5
5
|
import { translations } from '../translations';
|
|
6
|
-
import {
|
|
6
|
+
import { ToolWithData } from './ToolWithData';
|
|
7
|
+
import { Widget } from './Widget';
|
|
7
8
|
const ValueAtRiskWidget = _ref => {
|
|
8
9
|
let {
|
|
9
10
|
graphqlUrl,
|
|
10
11
|
locale,
|
|
11
12
|
division,
|
|
12
13
|
theme,
|
|
13
|
-
isParamError
|
|
14
|
+
isParamError,
|
|
15
|
+
instrument,
|
|
16
|
+
duration,
|
|
17
|
+
bars
|
|
14
18
|
} = _ref;
|
|
15
19
|
const client = new ApolloClient({
|
|
16
20
|
uri: graphqlUrl,
|
|
17
21
|
cache: new InMemoryCache()
|
|
18
22
|
});
|
|
23
|
+
const isWidget = !!instrument && !!duration && !!bars;
|
|
19
24
|
return React.createElement(ThemeProvider, {
|
|
20
25
|
theme: theme
|
|
21
26
|
}, React.createElement(LocaleProvider, {
|
|
@@ -23,10 +28,15 @@ const ValueAtRiskWidget = _ref => {
|
|
|
23
28
|
translations: translations
|
|
24
29
|
}, React.createElement(ApolloProvider, {
|
|
25
30
|
client: client
|
|
26
|
-
}, isParamError
|
|
31
|
+
}, isParamError && React.createElement("div", {
|
|
27
32
|
className: "lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
|
|
28
|
-
}, React.createElement(ChartError, null))
|
|
33
|
+
}, React.createElement(ChartError, null)), !isParamError && !isWidget && React.createElement(ToolWithData, {
|
|
29
34
|
division: division
|
|
35
|
+
}), !isParamError && isWidget && React.createElement(Widget, {
|
|
36
|
+
division: division,
|
|
37
|
+
instrument: instrument,
|
|
38
|
+
duration: duration,
|
|
39
|
+
bars: bars
|
|
30
40
|
}))));
|
|
31
41
|
};
|
|
32
42
|
export { ValueAtRiskWidget };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValueAtRiskWidget.js","names":["React","LocaleProvider","ApolloClient","InMemoryCache","ApolloProvider","ChartError","ThemeProvider","getLocale","translations","
|
|
1
|
+
{"version":3,"file":"ValueAtRiskWidget.js","names":["React","LocaleProvider","ApolloClient","InMemoryCache","ApolloProvider","ChartError","ThemeProvider","getLocale","translations","ToolWithData","Widget","ValueAtRiskWidget","_ref","graphqlUrl","locale","division","theme","isParamError","instrument","duration","bars","client","uri","cache","isWidget","createElement","className"],"sources":["../../../src/ValueAtRiskWidget/ValueAtRiskWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { ChartError, ThemeProvider, getLocale } from '@oanda/labs-widget-common';\nimport { ValueAtRiskConfig } from './types';\nimport { translations } from '../translations';\nimport { ToolWithData } from './ToolWithData';\nimport { Widget } from './Widget';\n\nconst ValueAtRiskWidget = ({\n graphqlUrl,\n locale,\n division,\n theme,\n isParamError,\n instrument,\n duration,\n bars,\n}: ValueAtRiskConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n const isWidget = !!instrument && !!duration && !!bars;\n\n return (\n <ThemeProvider theme={theme}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <ApolloProvider client={client}>\n {isParamError && (\n <div className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )}\n {!isParamError && !isWidget && <ToolWithData division={division} />}\n {!isParamError && isWidget && (\n <Widget\n division={division}\n instrument={instrument}\n duration={duration}\n bars={bars}\n />\n )}\n </ApolloProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { ValueAtRiskWidget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,YAAY,EAAEC,aAAa,EAAEC,cAAc,QAAQ,gBAAgB;AAC5E,SAASC,UAAU,EAAEC,aAAa,EAAEC,SAAS,QAAQ,2BAA2B;AAEhF,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,MAAM,QAAQ,UAAU;AAEjC,MAAMC,iBAAiB,GAAGC,IAAA,IASD;EAAA,IATE;IACzBC,UAAU;IACVC,MAAM;IACNC,QAAQ;IACRC,KAAK;IACLC,YAAY;IACZC,UAAU;IACVC,QAAQ;IACRC;EACiB,CAAC,GAAAR,IAAA;EAClB,MAAMS,MAAM,GAAG,IAAInB,YAAY,CAAC;IAC9BoB,GAAG,EAAET,UAAU;IACfU,KAAK,EAAE,IAAIpB,aAAa,CAAC;EAC3B,CAAC,CAAC;EACF,MAAMqB,QAAQ,GAAG,CAAC,CAACN,UAAU,IAAI,CAAC,CAACC,QAAQ,IAAI,CAAC,CAACC,IAAI;EAErD,OACEpB,KAAA,CAAAyB,aAAA,CAACnB,aAAa;IAACU,KAAK,EAAEA;EAAM,GAC1BhB,KAAA,CAAAyB,aAAA,CAACxB,cAAc;IAACa,MAAM,EAAEP,SAAS,CAACO,MAAM,CAAE;IAACN,YAAY,EAAEA;EAAa,GACpER,KAAA,CAAAyB,aAAA,CAACrB,cAAc;IAACiB,MAAM,EAAEA;EAAO,GAC5BJ,YAAY,IACXjB,KAAA,CAAAyB,aAAA;IAAKC,SAAS,EAAC;EAAmG,GAChH1B,KAAA,CAAAyB,aAAA,CAACpB,UAAU,MAAE,CACV,CACN,EACA,CAACY,YAAY,IAAI,CAACO,QAAQ,IAAIxB,KAAA,CAAAyB,aAAA,CAAChB,YAAY;IAACM,QAAQ,EAAEA;EAAS,CAAE,CAAC,EAClE,CAACE,YAAY,IAAIO,QAAQ,IACxBxB,KAAA,CAAAyB,aAAA,CAACf,MAAM;IACLK,QAAQ,EAAEA,QAAS;IACnBG,UAAU,EAAEA,UAAW;IACvBC,QAAQ,EAAEA,QAAS;IACnBC,IAAI,EAAEA;EAAK,CACZ,CAEW,CACF,CACH,CAAC;AAEpB,CAAC;AAED,SAAST,iBAAiB","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React, { useContext } from 'react';
|
|
2
|
+
import classnames from 'classnames';
|
|
3
|
+
import { Size, ThemeContext } from '@oanda/labs-widget-common';
|
|
4
|
+
import { useLocale } from '@oanda/mono-i18n';
|
|
5
|
+
import { ChartWithData } from './ChartWithData';
|
|
6
|
+
const Widget = _ref => {
|
|
7
|
+
let {
|
|
8
|
+
division,
|
|
9
|
+
instrument,
|
|
10
|
+
duration,
|
|
11
|
+
bars
|
|
12
|
+
} = _ref;
|
|
13
|
+
const {
|
|
14
|
+
lang
|
|
15
|
+
} = useLocale();
|
|
16
|
+
const {
|
|
17
|
+
size
|
|
18
|
+
} = useContext(ThemeContext);
|
|
19
|
+
const isDesktop = size === Size.DESKTOP;
|
|
20
|
+
return React.createElement("div", {
|
|
21
|
+
"data-testid": "value-at-risk-widget-wrapper",
|
|
22
|
+
className: "lw-relative lw-text-sm lw-tracking-normal"
|
|
23
|
+
}, size && React.createElement(React.Fragment, null, React.createElement("div", {
|
|
24
|
+
className: classnames('lw-font-bold', {
|
|
25
|
+
'lw-mb-11 lw-text-center lw-text-xl': isDesktop,
|
|
26
|
+
'lw-mb-6 lw-text-lg': !isDesktop
|
|
27
|
+
})
|
|
28
|
+
}, React.createElement("div", null, `${lang('hold_time')}: ${lang('day', {
|
|
29
|
+
count: +duration.substring(1)
|
|
30
|
+
})}`), React.createElement("div", null, `${lang('calculation_period')}: ${lang('day', {
|
|
31
|
+
count: +bars.substring(1)
|
|
32
|
+
})}`)), React.createElement(ChartWithData, {
|
|
33
|
+
bars: bars,
|
|
34
|
+
duration: duration,
|
|
35
|
+
instrument: instrument,
|
|
36
|
+
division: division
|
|
37
|
+
})));
|
|
38
|
+
};
|
|
39
|
+
export { Widget };
|
|
40
|
+
//# sourceMappingURL=Widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Widget.js","names":["React","useContext","classnames","Size","ThemeContext","useLocale","ChartWithData","Widget","_ref","division","instrument","duration","bars","lang","size","isDesktop","DESKTOP","createElement","className","Fragment","count","substring"],"sources":["../../../src/ValueAtRiskWidget/Widget.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport classnames from 'classnames';\nimport { Size, ThemeContext } from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { WidgetProps } from './types';\nimport { ChartWithData } from './ChartWithData';\n\nconst Widget = ({\n division,\n instrument,\n duration,\n bars,\n}: WidgetProps) => {\n const { lang } = useLocale();\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n\n return (\n <div\n data-testid=\"value-at-risk-widget-wrapper\"\n className=\"lw-relative lw-text-sm lw-tracking-normal\"\n >\n {size && (\n <>\n <div\n className={classnames('lw-font-bold', {\n 'lw-mb-11 lw-text-center lw-text-xl': isDesktop,\n 'lw-mb-6 lw-text-lg': !isDesktop,\n })}\n >\n <div>{`${lang('hold_time')}: ${lang('day', { count: +duration.substring(1) })}`}</div>\n <div>{`${lang('calculation_period')}: ${lang('day', { count: +bars.substring(1) })}`}</div>\n </div>\n <ChartWithData\n bars={bars}\n duration={duration}\n instrument={instrument}\n division={division}\n />\n </>\n )}\n </div>\n );\n};\n\nexport { Widget };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,IAAI,EAAEC,YAAY,QAAQ,2BAA2B;AAC9D,SAASC,SAAS,QAAQ,kBAAkB;AAE5C,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,MAAMC,MAAM,GAAGC,IAAA,IAKI;EAAA,IALH;IACdC,QAAQ;IACRC,UAAU;IACVC,QAAQ;IACRC;EACW,CAAC,GAAAJ,IAAA;EACZ,MAAM;IAAEK;EAAK,CAAC,GAAGR,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAES;EAAK,CAAC,GAAGb,UAAU,CAACG,YAAY,CAAC;EACzC,MAAMW,SAAS,GAAGD,IAAI,KAAKX,IAAI,CAACa,OAAO;EAEvC,OACEhB,KAAA,CAAAiB,aAAA;IACE,eAAY,8BAA8B;IAC1CC,SAAS,EAAC;EAA2C,GAEpDJ,IAAI,IACHd,KAAA,CAAAiB,aAAA,CAAAjB,KAAA,CAAAmB,QAAA,QACEnB,KAAA,CAAAiB,aAAA;IACEC,SAAS,EAAEhB,UAAU,CAAC,cAAc,EAAE;MACpC,oCAAoC,EAAEa,SAAS;MAC/C,oBAAoB,EAAE,CAACA;IACzB,CAAC;EAAE,GAEHf,KAAA,CAAAiB,aAAA,cAAM,GAAGJ,IAAI,CAAC,WAAW,CAAC,KAAKA,IAAI,CAAC,KAAK,EAAE;IAAEO,KAAK,EAAE,CAACT,QAAQ,CAACU,SAAS,CAAC,CAAC;EAAE,CAAC,CAAC,EAAQ,CAAC,EACtFrB,KAAA,CAAAiB,aAAA,cAAM,GAAGJ,IAAI,CAAC,oBAAoB,CAAC,KAAKA,IAAI,CAAC,KAAK,EAAE;IAAEO,KAAK,EAAE,CAACR,IAAI,CAACS,SAAS,CAAC,CAAC;EAAE,CAAC,CAAC,EAAQ,CACvF,CAAC,EACNrB,KAAA,CAAAiB,aAAA,CAACX,aAAa;IACZM,IAAI,EAAEA,IAAK;IACXD,QAAQ,EAAEA,QAAS;IACnBD,UAAU,EAAEA,UAAW;IACvBD,QAAQ,EAAEA;EAAS,CACpB,CACD,CAED,CAAC;AAEV,CAAC;AAED,SAASF,MAAM","ignoreList":[]}
|
|
@@ -13,7 +13,10 @@ volatilityChartParamsElements.forEach(element => {
|
|
|
13
13
|
const mode = element.getAttribute('data-mode');
|
|
14
14
|
const {
|
|
15
15
|
division,
|
|
16
|
-
locale
|
|
16
|
+
locale,
|
|
17
|
+
instrument,
|
|
18
|
+
duration,
|
|
19
|
+
bars
|
|
17
20
|
} = JSON.parse(params);
|
|
18
21
|
const isParamError = validateToolParams({
|
|
19
22
|
locale,
|
|
@@ -33,7 +36,10 @@ volatilityChartParamsElements.forEach(element => {
|
|
|
33
36
|
locale: locale,
|
|
34
37
|
division: division,
|
|
35
38
|
theme: mode,
|
|
36
|
-
isParamError: isParamError
|
|
39
|
+
isParamError: isParamError,
|
|
40
|
+
instrument: instrument,
|
|
41
|
+
duration: duration,
|
|
42
|
+
bars: bars
|
|
37
43
|
}));
|
|
38
44
|
});
|
|
39
45
|
//# sourceMappingURL=render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","names":["React","createRoot","validateLocale","validateToolParams","ValueAtRiskWidget","Division","graphqlUrl","window","widgetsConfig","volatilityChartParamsElements","document","querySelectorAll","forEach","element","root","params","getAttribute","mode","division","locale","JSON","parse","isParamError","name","valueCheck","value","Object","values","includes","render","createElement","theme"],"sources":["../../../src/ValueAtRiskWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { ValueAtRiskWidget } from './ValueAtRiskWidget';\nimport { Division } from '../gql/types/graphql';\n\nconst {\n graphqlUrl,\n} = window.widgetsConfig || {};\n\nconst volatilityChartParamsElements = document.querySelectorAll('div[data-value-at-risk-params]');\n\nvolatilityChartParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-value-at-risk-params');\n const mode = element.getAttribute('data-mode');\n const {
|
|
1
|
+
{"version":3,"file":"render.js","names":["React","createRoot","validateLocale","validateToolParams","ValueAtRiskWidget","Division","graphqlUrl","window","widgetsConfig","volatilityChartParamsElements","document","querySelectorAll","forEach","element","root","params","getAttribute","mode","division","locale","instrument","duration","bars","JSON","parse","isParamError","name","valueCheck","value","Object","values","includes","render","createElement","theme"],"sources":["../../../src/ValueAtRiskWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { ValueAtRiskWidget } from './ValueAtRiskWidget';\nimport { Division } from '../gql/types/graphql';\n\nconst {\n graphqlUrl,\n} = window.widgetsConfig || {};\n\nconst volatilityChartParamsElements = document.querySelectorAll('div[data-value-at-risk-params]');\n\nvolatilityChartParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-value-at-risk-params');\n const mode = element.getAttribute('data-mode');\n const {\n division,\n locale,\n instrument,\n duration,\n bars,\n } = JSON.parse(params as string);\n\n const isParamError = validateToolParams({ locale, division, graphqlUrl }, [\n {\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n },\n {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n },\n {\n name: 'graphqlUrl',\n }]);\n\n root.render(\n <ValueAtRiskWidget\n graphqlUrl={graphqlUrl}\n locale={locale}\n division={division}\n theme={mode as Theme}\n isParamError={isParamError}\n instrument={instrument}\n duration={duration}\n bars={bars}\n />,\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAAgBC,cAAc,EAAEC,kBAAkB,QAAQ,2BAA2B;AACrF,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,QAAQ,QAAQ,sBAAsB;AAE/C,MAAM;EACJC;AACF,CAAC,GAAGC,MAAM,CAACC,aAAa,IAAI,CAAC,CAAC;AAE9B,MAAMC,6BAA6B,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,gCAAgC,CAAC;AAEjGF,6BAA6B,CAACG,OAAO,CAAEC,OAAO,IAAK;EACjD,MAAMC,IAAI,GAAGb,UAAU,CAACY,OAAO,CAAC;EAChC,MAAME,MAAM,GAAGF,OAAO,CAACG,YAAY,CAAC,2BAA2B,CAAC;EAChE,MAAMC,IAAI,GAAGJ,OAAO,CAACG,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IACJE,QAAQ;IACRC,MAAM;IACNC,UAAU;IACVC,QAAQ;IACRC;EACF,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACT,MAAgB,CAAC;EAEhC,MAAMU,YAAY,GAAGtB,kBAAkB,CAAC;IAAEgB,MAAM;IAAED,QAAQ;IAAEZ;EAAW,CAAC,EAAE,CACxE;IACEoB,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAGC,KAAK,IAAK1B,cAAc,CAAC0B,KAAK;EAC7C,CAAC,EACD;IACEF,IAAI,EAAE,UAAU;IAChBC,UAAU,EAAGC,KAAK,IAAKC,MAAM,CAACC,MAAM,CAACzB,QAAQ,CAAC,CAAC0B,QAAQ,CAACH,KAAK;EAC/D,CAAC,EACD;IACEF,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EAELZ,IAAI,CAACkB,MAAM,CACThC,KAAA,CAAAiC,aAAA,CAAC7B,iBAAiB;IAChBE,UAAU,EAAEA,UAAW;IACvBa,MAAM,EAAEA,MAAO;IACfD,QAAQ,EAAEA,QAAS;IACnBgB,KAAK,EAAEjB,IAAc;IACrBQ,YAAY,EAAEA,YAAa;IAC3BL,UAAU,EAAEA,UAAW;IACvBC,QAAQ,EAAEA,QAAS;IACnBC,IAAI,EAAEA;EAAK,CACZ,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/ValueAtRiskWidget/types.ts"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport { Theme } from '@oanda/labs-widget-common';\nimport {\n Division, GetValueAtRiskAssetClassesQuery, ValueAtRiskBars, ValueAtRiskDuration,\n} from '../gql/types/graphql';\n\nexport interface ValueAtRiskConfig {\n graphqlUrl: string;\n division: Division;\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n}\n\nexport interface ValueAtRiskWrapperConfig extends ValueAtRiskConfig {\n renderElementId: string;\n}\n\nexport interface
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/ValueAtRiskWidget/types.ts"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport { Theme } from '@oanda/labs-widget-common';\nimport {\n Division, GetValueAtRiskAssetClassesQuery, ValueAtRiskBars, ValueAtRiskDuration,\n} from '../gql/types/graphql';\n\nexport interface ValueAtRiskConfig {\n graphqlUrl: string;\n division: Division;\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n instrument?: string;\n duration?: ValueAtRiskDuration;\n bars?: ValueAtRiskBars;\n}\n\nexport interface ValueAtRiskWrapperConfig extends ValueAtRiskConfig {\n renderElementId: string;\n}\n\nexport interface WidgetProps {\n instrument: string;\n duration: ValueAtRiskDuration;\n bars: ValueAtRiskBars;\n division: Division;\n}\n\nexport interface ToolProps {\n data: GetValueAtRiskAssetClassesQuery;\n division: Division;\n}\n\nexport interface ToolWithDataProps {\n division: Division;\n}\n\nexport interface ChartWithDataProps {\n instrument: string;\n duration: ValueAtRiskDuration;\n bars: ValueAtRiskBars;\n division: Division;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ValueAtRiskConfig } from './types';
|
|
3
|
-
declare const ValueAtRiskWidget: ({ graphqlUrl, locale, division, theme, isParamError, }: ValueAtRiskConfig) => React.JSX.Element;
|
|
3
|
+
declare const ValueAtRiskWidget: ({ graphqlUrl, locale, division, theme, isParamError, instrument, duration, bars, }: ValueAtRiskConfig) => React.JSX.Element;
|
|
4
4
|
export { ValueAtRiskWidget };
|
|
@@ -7,15 +7,24 @@ export interface ValueAtRiskConfig {
|
|
|
7
7
|
locale: Locale;
|
|
8
8
|
theme?: Theme;
|
|
9
9
|
isParamError?: boolean;
|
|
10
|
+
instrument?: string;
|
|
11
|
+
duration?: ValueAtRiskDuration;
|
|
12
|
+
bars?: ValueAtRiskBars;
|
|
10
13
|
}
|
|
11
14
|
export interface ValueAtRiskWrapperConfig extends ValueAtRiskConfig {
|
|
12
15
|
renderElementId: string;
|
|
13
16
|
}
|
|
14
|
-
export interface
|
|
17
|
+
export interface WidgetProps {
|
|
18
|
+
instrument: string;
|
|
19
|
+
duration: ValueAtRiskDuration;
|
|
20
|
+
bars: ValueAtRiskBars;
|
|
21
|
+
division: Division;
|
|
22
|
+
}
|
|
23
|
+
export interface ToolProps {
|
|
15
24
|
data: GetValueAtRiskAssetClassesQuery;
|
|
16
25
|
division: Division;
|
|
17
26
|
}
|
|
18
|
-
export interface
|
|
27
|
+
export interface ToolWithDataProps {
|
|
19
28
|
division: Division;
|
|
20
29
|
}
|
|
21
30
|
export interface ChartWithDataProps {
|
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.28",
|
|
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.136",
|
|
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": "755c0af24a58c228b0a54f2716b4fec5bee7b58d"
|
|
28
28
|
}
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
} from '@oanda/labs-widget-common';
|
|
6
6
|
import { useLocale } from '@oanda/mono-i18n';
|
|
7
7
|
import { getAssetClassesList, getInstrumentsByAssetClassId } from './utils';
|
|
8
|
-
import {
|
|
8
|
+
import { ToolProps } from './types';
|
|
9
9
|
import { ValueAtRiskDuration, ValueAtRiskBars } from '../gql/types/graphql';
|
|
10
10
|
import { ChartWithData } from './ChartWithData';
|
|
11
11
|
|
|
12
|
-
const
|
|
12
|
+
const Tool = ({ data, division }: ToolProps) => {
|
|
13
13
|
const { lang } = useLocale();
|
|
14
14
|
const { size } = useContext(ThemeContext);
|
|
15
15
|
const isDesktop = size === Size.DESKTOP;
|
|
@@ -99,4 +99,4 @@ const Main = ({ data, division }: MainProps) => {
|
|
|
99
99
|
);
|
|
100
100
|
};
|
|
101
101
|
|
|
102
|
-
export {
|
|
102
|
+
export { Tool };
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
} from '@oanda/labs-widget-common';
|
|
6
6
|
import { useQuery } from '@apollo/client';
|
|
7
7
|
import { getValueAtRiskAssetClasses } from '../gql/getValueAtRiskAssetClasses';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { Tool } from './Tool';
|
|
9
|
+
import { ToolWithDataProps } from './types';
|
|
10
10
|
import { GetValueAtRiskAssetClassesQuery, GetValueAtRiskAssetClassesQueryVariables } from '../gql/types/graphql';
|
|
11
11
|
|
|
12
|
-
const
|
|
12
|
+
const ToolWithData = ({ division }: ToolWithDataProps) => {
|
|
13
13
|
const { size } = useContext(ThemeContext);
|
|
14
14
|
const isDesktop = size === Size.DESKTOP;
|
|
15
15
|
const { loading, data, error } = useQuery<
|
|
@@ -35,7 +35,7 @@ const MainWithData = ({ division }: MainWithDataProps) => {
|
|
|
35
35
|
</div>
|
|
36
36
|
)}
|
|
37
37
|
{!loading && data && (
|
|
38
|
-
<
|
|
38
|
+
<Tool
|
|
39
39
|
data={data}
|
|
40
40
|
division={division}
|
|
41
41
|
/>
|
|
@@ -49,4 +49,4 @@ const MainWithData = ({ division }: MainWithDataProps) => {
|
|
|
49
49
|
);
|
|
50
50
|
};
|
|
51
51
|
|
|
52
|
-
export {
|
|
52
|
+
export { ToolWithData };
|
|
@@ -4,25 +4,43 @@ import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';
|
|
|
4
4
|
import { ChartError, ThemeProvider, getLocale } from '@oanda/labs-widget-common';
|
|
5
5
|
import { ValueAtRiskConfig } from './types';
|
|
6
6
|
import { translations } from '../translations';
|
|
7
|
-
import {
|
|
7
|
+
import { ToolWithData } from './ToolWithData';
|
|
8
|
+
import { Widget } from './Widget';
|
|
8
9
|
|
|
9
10
|
const ValueAtRiskWidget = ({
|
|
10
|
-
graphqlUrl,
|
|
11
|
+
graphqlUrl,
|
|
12
|
+
locale,
|
|
13
|
+
division,
|
|
14
|
+
theme,
|
|
15
|
+
isParamError,
|
|
16
|
+
instrument,
|
|
17
|
+
duration,
|
|
18
|
+
bars,
|
|
11
19
|
}: ValueAtRiskConfig) => {
|
|
12
20
|
const client = new ApolloClient({
|
|
13
21
|
uri: graphqlUrl,
|
|
14
22
|
cache: new InMemoryCache(),
|
|
15
23
|
});
|
|
24
|
+
const isWidget = !!instrument && !!duration && !!bars;
|
|
16
25
|
|
|
17
26
|
return (
|
|
18
27
|
<ThemeProvider theme={theme}>
|
|
19
28
|
<LocaleProvider locale={getLocale(locale)} translations={translations}>
|
|
20
29
|
<ApolloProvider client={client}>
|
|
21
|
-
{isParamError
|
|
30
|
+
{isParamError && (
|
|
22
31
|
<div className="lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary">
|
|
23
32
|
<ChartError />
|
|
24
33
|
</div>
|
|
25
|
-
)
|
|
34
|
+
)}
|
|
35
|
+
{!isParamError && !isWidget && <ToolWithData division={division} />}
|
|
36
|
+
{!isParamError && isWidget && (
|
|
37
|
+
<Widget
|
|
38
|
+
division={division}
|
|
39
|
+
instrument={instrument}
|
|
40
|
+
duration={duration}
|
|
41
|
+
bars={bars}
|
|
42
|
+
/>
|
|
43
|
+
)}
|
|
26
44
|
</ApolloProvider>
|
|
27
45
|
</LocaleProvider>
|
|
28
46
|
</ThemeProvider>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React, { useContext } from 'react';
|
|
2
|
+
import classnames from 'classnames';
|
|
3
|
+
import { Size, ThemeContext } from '@oanda/labs-widget-common';
|
|
4
|
+
import { useLocale } from '@oanda/mono-i18n';
|
|
5
|
+
import { WidgetProps } from './types';
|
|
6
|
+
import { ChartWithData } from './ChartWithData';
|
|
7
|
+
|
|
8
|
+
const Widget = ({
|
|
9
|
+
division,
|
|
10
|
+
instrument,
|
|
11
|
+
duration,
|
|
12
|
+
bars,
|
|
13
|
+
}: WidgetProps) => {
|
|
14
|
+
const { lang } = useLocale();
|
|
15
|
+
const { size } = useContext(ThemeContext);
|
|
16
|
+
const isDesktop = size === Size.DESKTOP;
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<div
|
|
20
|
+
data-testid="value-at-risk-widget-wrapper"
|
|
21
|
+
className="lw-relative lw-text-sm lw-tracking-normal"
|
|
22
|
+
>
|
|
23
|
+
{size && (
|
|
24
|
+
<>
|
|
25
|
+
<div
|
|
26
|
+
className={classnames('lw-font-bold', {
|
|
27
|
+
'lw-mb-11 lw-text-center lw-text-xl': isDesktop,
|
|
28
|
+
'lw-mb-6 lw-text-lg': !isDesktop,
|
|
29
|
+
})}
|
|
30
|
+
>
|
|
31
|
+
<div>{`${lang('hold_time')}: ${lang('day', { count: +duration.substring(1) })}`}</div>
|
|
32
|
+
<div>{`${lang('calculation_period')}: ${lang('day', { count: +bars.substring(1) })}`}</div>
|
|
33
|
+
</div>
|
|
34
|
+
<ChartWithData
|
|
35
|
+
bars={bars}
|
|
36
|
+
duration={duration}
|
|
37
|
+
instrument={instrument}
|
|
38
|
+
division={division}
|
|
39
|
+
/>
|
|
40
|
+
</>
|
|
41
|
+
)}
|
|
42
|
+
</div>
|
|
43
|
+
);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export { Widget };
|
|
@@ -14,7 +14,13 @@ volatilityChartParamsElements.forEach((element) => {
|
|
|
14
14
|
const root = createRoot(element);
|
|
15
15
|
const params = element.getAttribute('data-value-at-risk-params');
|
|
16
16
|
const mode = element.getAttribute('data-mode');
|
|
17
|
-
const {
|
|
17
|
+
const {
|
|
18
|
+
division,
|
|
19
|
+
locale,
|
|
20
|
+
instrument,
|
|
21
|
+
duration,
|
|
22
|
+
bars,
|
|
23
|
+
} = JSON.parse(params as string);
|
|
18
24
|
|
|
19
25
|
const isParamError = validateToolParams({ locale, division, graphqlUrl }, [
|
|
20
26
|
{
|
|
@@ -36,6 +42,9 @@ volatilityChartParamsElements.forEach((element) => {
|
|
|
36
42
|
division={division}
|
|
37
43
|
theme={mode as Theme}
|
|
38
44
|
isParamError={isParamError}
|
|
45
|
+
instrument={instrument}
|
|
46
|
+
duration={duration}
|
|
47
|
+
bars={bars}
|
|
39
48
|
/>,
|
|
40
49
|
);
|
|
41
50
|
});
|
|
@@ -10,18 +10,28 @@ export interface ValueAtRiskConfig {
|
|
|
10
10
|
locale: Locale;
|
|
11
11
|
theme?: Theme;
|
|
12
12
|
isParamError?: boolean;
|
|
13
|
+
instrument?: string;
|
|
14
|
+
duration?: ValueAtRiskDuration;
|
|
15
|
+
bars?: ValueAtRiskBars;
|
|
13
16
|
}
|
|
14
17
|
|
|
15
18
|
export interface ValueAtRiskWrapperConfig extends ValueAtRiskConfig {
|
|
16
19
|
renderElementId: string;
|
|
17
20
|
}
|
|
18
21
|
|
|
19
|
-
export interface
|
|
22
|
+
export interface WidgetProps {
|
|
23
|
+
instrument: string;
|
|
24
|
+
duration: ValueAtRiskDuration;
|
|
25
|
+
bars: ValueAtRiskBars;
|
|
26
|
+
division: Division;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface ToolProps {
|
|
20
30
|
data: GetValueAtRiskAssetClassesQuery;
|
|
21
31
|
division: Division;
|
|
22
32
|
}
|
|
23
33
|
|
|
24
|
-
export interface
|
|
34
|
+
export interface ToolWithDataProps {
|
|
25
35
|
division: Division;
|
|
26
36
|
}
|
|
27
37
|
|
|
@@ -5,7 +5,7 @@ import React from 'react';
|
|
|
5
5
|
import { render, fireEvent } from '@testing-library/react';
|
|
6
6
|
import { ThemeContext, Size } from '@oanda/labs-widget-common';
|
|
7
7
|
import { MockedProvider } from '@apollo/client/testing';
|
|
8
|
-
import {
|
|
8
|
+
import { Tool } from '../src/ValueAtRiskWidget/Tool';
|
|
9
9
|
import { assetClassesMock, getValueAtRiskChartMock } from './mocks';
|
|
10
10
|
import { Division } from '../src/gql/types/graphql';
|
|
11
11
|
|
|
@@ -13,12 +13,12 @@ const data = {
|
|
|
13
13
|
valueAtRiskAssetClasses: assetClassesMock,
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
-
describe('
|
|
16
|
+
describe('Tool component', () => {
|
|
17
17
|
it('should render tool view', () => {
|
|
18
18
|
const { getByTestId } = render(
|
|
19
19
|
<MockedProvider mocks={getValueAtRiskChartMock()}>
|
|
20
20
|
<ThemeContext.Provider value={{ size: Size.DESKTOP, isDark: true }}>
|
|
21
|
-
<
|
|
21
|
+
<Tool
|
|
22
22
|
data={data}
|
|
23
23
|
division={Division.Oc}
|
|
24
24
|
/>
|
|
@@ -32,7 +32,7 @@ describe('Main component', () => {
|
|
|
32
32
|
const { container, getByTestId } = render(
|
|
33
33
|
<MockedProvider mocks={[...getValueAtRiskChartMock('AUD_USD'), ...getValueAtRiskChartMock('AUS200')]}>
|
|
34
34
|
<ThemeContext.Provider value={{ size: Size.DESKTOP, isDark: true }}>
|
|
35
|
-
<
|
|
35
|
+
<Tool
|
|
36
36
|
data={data}
|
|
37
37
|
division={Division.Oc}
|
|
38
38
|
/>
|
|
@@ -5,7 +5,7 @@ import React from 'react';
|
|
|
5
5
|
import { render } from '@testing-library/react';
|
|
6
6
|
import { MockedProvider } from '@apollo/client/testing';
|
|
7
7
|
import { Size, ThemeContext } from '@oanda/labs-widget-common';
|
|
8
|
-
import {
|
|
8
|
+
import { ToolWithData } from '../src/ValueAtRiskWidget/ToolWithData';
|
|
9
9
|
import { Division } from '../src/gql/types/graphql';
|
|
10
10
|
import { getValueAtRiskAssetClassesMock, getValueAtRiskChartMock } from './mocks/responsesMocks';
|
|
11
11
|
|
|
@@ -14,7 +14,7 @@ describe('Main component', () => {
|
|
|
14
14
|
const { findByTestId } = render(
|
|
15
15
|
<MockedProvider mocks={[...getValueAtRiskAssetClassesMock, ...getValueAtRiskChartMock()]}>
|
|
16
16
|
<ThemeContext.Provider value={{ size: Size.DESKTOP, isDark: false }}>
|
|
17
|
-
<
|
|
17
|
+
<ToolWithData division={Division.Oc} />
|
|
18
18
|
</ThemeContext.Provider>
|
|
19
19
|
</MockedProvider>,
|
|
20
20
|
);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jest-environment jsdom
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { render } from '@testing-library/react';
|
|
6
|
+
import { ThemeContext, Size } from '@oanda/labs-widget-common';
|
|
7
|
+
import { MockedProvider } from '@apollo/client/testing';
|
|
8
|
+
import { getValueAtRiskChartMock } from './mocks';
|
|
9
|
+
import { Division, ValueAtRiskBars, ValueAtRiskDuration } from '../src/gql/types/graphql';
|
|
10
|
+
import { Widget } from '../src/ValueAtRiskWidget/Widget';
|
|
11
|
+
|
|
12
|
+
describe('Widget component', () => {
|
|
13
|
+
it('should render widget view', () => {
|
|
14
|
+
const { getByTestId } = render(
|
|
15
|
+
<MockedProvider mocks={getValueAtRiskChartMock()}>
|
|
16
|
+
<ThemeContext.Provider value={{ size: Size.DESKTOP, isDark: true }}>
|
|
17
|
+
<Widget
|
|
18
|
+
division={Division.Oc}
|
|
19
|
+
instrument="AUD_USD"
|
|
20
|
+
bars={ValueAtRiskBars.C100}
|
|
21
|
+
duration={ValueAtRiskDuration.C1}
|
|
22
|
+
/>
|
|
23
|
+
</ThemeContext.Provider>
|
|
24
|
+
</MockedProvider>,
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
expect(getByTestId('value-at-risk-widget-wrapper')).toBeInTheDocument();
|
|
28
|
+
});
|
|
29
|
+
});
|