@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.
Files changed (40) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/dist/main/ValueAtRiskWidget/{Main.js → Tool.js} +4 -4
  3. package/dist/main/ValueAtRiskWidget/{Main.js.map → Tool.js.map} +1 -1
  4. package/dist/main/ValueAtRiskWidget/{MainWithData.js → ToolWithData.js} +6 -6
  5. package/dist/main/ValueAtRiskWidget/{MainWithData.js.map → ToolWithData.js.map} +1 -1
  6. package/dist/main/ValueAtRiskWidget/ValueAtRiskWidget.js +14 -4
  7. package/dist/main/ValueAtRiskWidget/ValueAtRiskWidget.js.map +1 -1
  8. package/dist/main/ValueAtRiskWidget/Widget.js +49 -0
  9. package/dist/main/ValueAtRiskWidget/Widget.js.map +1 -0
  10. package/dist/main/ValueAtRiskWidget/render.js +8 -2
  11. package/dist/main/ValueAtRiskWidget/render.js.map +1 -1
  12. package/dist/main/ValueAtRiskWidget/types.js.map +1 -1
  13. package/dist/module/ValueAtRiskWidget/{Main.js → Tool.js} +3 -3
  14. package/dist/module/ValueAtRiskWidget/{Main.js.map → Tool.js.map} +1 -1
  15. package/dist/module/ValueAtRiskWidget/{MainWithData.js → ToolWithData.js} +5 -5
  16. package/dist/module/ValueAtRiskWidget/{MainWithData.js.map → ToolWithData.js.map} +1 -1
  17. package/dist/module/ValueAtRiskWidget/ValueAtRiskWidget.js +14 -4
  18. package/dist/module/ValueAtRiskWidget/ValueAtRiskWidget.js.map +1 -1
  19. package/dist/module/ValueAtRiskWidget/Widget.js +40 -0
  20. package/dist/module/ValueAtRiskWidget/Widget.js.map +1 -0
  21. package/dist/module/ValueAtRiskWidget/render.js +8 -2
  22. package/dist/module/ValueAtRiskWidget/render.js.map +1 -1
  23. package/dist/module/ValueAtRiskWidget/types.js.map +1 -1
  24. package/dist/types/ValueAtRiskWidget/Tool.d.ts +4 -0
  25. package/dist/types/ValueAtRiskWidget/ToolWithData.d.ts +4 -0
  26. package/dist/types/ValueAtRiskWidget/ValueAtRiskWidget.d.ts +1 -1
  27. package/dist/types/ValueAtRiskWidget/Widget.d.ts +4 -0
  28. package/dist/types/ValueAtRiskWidget/types.d.ts +11 -2
  29. package/package.json +3 -3
  30. package/src/ValueAtRiskWidget/{Main.tsx → Tool.tsx} +3 -3
  31. package/src/ValueAtRiskWidget/{MainWithData.tsx → ToolWithData.tsx} +5 -5
  32. package/src/ValueAtRiskWidget/ValueAtRiskWidget.tsx +22 -4
  33. package/src/ValueAtRiskWidget/Widget.tsx +46 -0
  34. package/src/ValueAtRiskWidget/render.tsx +10 -1
  35. package/src/ValueAtRiskWidget/types.ts +12 -2
  36. package/test/{Main.test.tsx → Tool.test.tsx} +4 -4
  37. package/test/{MainWithData.test.tsx → ToolWithData.test.tsx} +2 -2
  38. package/test/Widget.test.tsx +29 -0
  39. package/dist/types/ValueAtRiskWidget/Main.d.ts +0 -4
  40. 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.Main = void 0;
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 Main = _ref => {
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.Main = Main;
94
- //# sourceMappingURL=Main.js.map
93
+ exports.Tool = Tool;
94
+ //# sourceMappingURL=Tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Main.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","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":[]}
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.MainWithData = void 0;
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 _Main = require("./Main");
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 MainWithData = _ref => {
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(_Main.Main, {
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.MainWithData = MainWithData;
51
- //# sourceMappingURL=MainWithData.js.map
50
+ exports.ToolWithData = ToolWithData;
51
+ //# sourceMappingURL=ToolWithData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MainWithData.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_labsWidgetCommon","_client","_getValueAtRiskAssetClasses","_Main","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MainWithData","_ref","division","size","useContext","ThemeContext","isDesktop","Size","DESKTOP","loading","data","error","useQuery","getValueAtRiskAssetClasses","variables","fetchPolicy","createElement","className","classnames","Spinner","SpinnerSize","lg","Main","ChartError","exports"],"sources":["../../../src/ValueAtRiskWidget/MainWithData.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 { Main } from './Main';\nimport { MainWithDataProps } from './types';\nimport { GetValueAtRiskAssetClassesQuery, GetValueAtRiskAssetClassesQueryVariables } from '../gql/types/graphql';\n\nconst MainWithData = ({ division }: MainWithDataProps) => {\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 <Main\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 { MainWithData };\n"],"mappings":"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","ignoreList":[]}
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 _MainWithData = require("./MainWithData");
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 ? _react.default.createElement("div", {
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)) : _react.default.createElement(_MainWithData.MainWithData, {
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","_MainWithData","e","__esModule","default","ValueAtRiskWidget","_ref","graphqlUrl","locale","division","theme","isParamError","client","ApolloClient","uri","cache","InMemoryCache","createElement","ThemeProvider","LocaleProvider","getLocale","translations","ApolloProvider","className","ChartError","MainWithData","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 { MainWithData } from './MainWithData';\n\nconst ValueAtRiskWidget = ({\n graphqlUrl, locale, division, theme, isParamError,\n}: ValueAtRiskConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\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 ) : <MainWithData division={division} />}\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;AAA8C,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9C,MAAMG,iBAAiB,GAAGC,IAAA,IAED;EAAA,IAFE;IACzBC,UAAU;IAAEC,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC;EACpB,CAAC,GAAAL,IAAA;EAClB,MAAMM,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAEP,UAAU;IACfQ,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEtB,MAAA,CAAAU,OAAA,CAAAa,aAAA,CAAClB,iBAAA,CAAAmB,aAAa;IAACR,KAAK,EAAEA;EAAM,GAC1BhB,MAAA,CAAAU,OAAA,CAAAa,aAAA,CAACpB,SAAA,CAAAsB,cAAc;IAACX,MAAM,EAAE,IAAAY,2BAAS,EAACZ,MAAM,CAAE;IAACa,YAAY,EAAEA;EAAa,GACpE3B,MAAA,CAAAU,OAAA,CAAAa,aAAA,CAACnB,OAAA,CAAAwB,cAAc;IAACV,MAAM,EAAEA;EAAO,GAC5BD,YAAY,GACXjB,MAAA,CAAAU,OAAA,CAAAa,aAAA;IAAKM,SAAS,EAAC;EAAmG,GAChH7B,MAAA,CAAAU,OAAA,CAAAa,aAAA,CAAClB,iBAAA,CAAAyB,UAAU,MAAE,CACV,CAAC,GACJ9B,MAAA,CAAAU,OAAA,CAAAa,aAAA,CAAChB,aAAA,CAAAwB,YAAY;IAAChB,QAAQ,EAAEA;EAAS,CAAE,CACzB,CACF,CACH,CAAC;AAEpB,CAAC;AAACiB,OAAA,CAAArB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
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":"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","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 { division, locale } = 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 />,\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;IAAEE,QAAQ;IAAEC;EAAO,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACN,MAAgB,CAAC;EAEzD,MAAMO,YAAY,GAAG,IAAAC,oCAAkB,EAAC;IAAEJ,MAAM;IAAED,QAAQ;IAAEb;EAAW,CAAC,EAAE,CACxE;IACEmB,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;EAELX,IAAI,CAACmB,MAAM,CACTrC,MAAA,CAAAS,OAAA,CAAA6B,aAAA,CAACjC,kBAAA,CAAAkC,iBAAiB;IAChB7B,UAAU,EAAEA,UAAW;IACvBc,MAAM,EAAEA,MAAO;IACfD,QAAQ,EAAEA,QAAS;IACnBiB,KAAK,EAAElB,IAAc;IACrBK,YAAY,EAAEA;EAAa,CAC5B,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
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 MainProps {\n data: GetValueAtRiskAssetClassesQuery;\n division: Division;\n}\n\nexport interface MainWithDataProps {\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
+ {"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 Main = _ref => {
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 { Main };
85
- //# sourceMappingURL=Main.js.map
84
+ export { Tool };
85
+ //# sourceMappingURL=Tool.js.map
@@ -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","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":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,UAAU,QAAQ,OAAO;AACnD,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,MAAM,EAAgBC,IAAI,EAAEC,YAAY,QACnC,2BAA2B;AAClC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,mBAAmB,EAAEC,4BAA4B,QAAQ,SAAS;AAE3E,SAASC,mBAAmB,EAAEC,eAAe,QAAQ,sBAAsB;AAC3E,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,MAAMC,IAAI,GAAGC,IAAA,IAAmC;EAAA,IAAlC;IAAEC,IAAI;IAAEC;EAAoB,CAAC,GAAAF,IAAA;EACzC,MAAM;IAAEG;EAAK,CAAC,GAAGV,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAEW;EAAK,CAAC,GAAGhB,UAAU,CAACI,YAAY,CAAC;EACzC,MAAMa,SAAS,GAAGD,IAAI,KAAKb,IAAI,CAACe,OAAO;EAEvC,MAAMC,mBAAmB,GAAGb,mBAAmB,CAACO,IAAI,CAAEO,uBAAwB,CAAC;EAC/E,MAAMC,sBAAsB,GAAGd,4BAA4B,CACzDM,IAAI,CAAEO,uBAAuB,EAC7BD,mBAAmB,CAAC,CAAC,CAAC,CAACG,EACzB,CAAC;EAED,MAAMC,eAAe,GAAGC,MAAM,CAACC,MAAM,CAACjB,mBAAmB,CAAC,CAACkB,GAAG,CAAEC,QAAQ,KAAM;IAAEL,EAAE,EAAEK,QAAkB;IAAEC,KAAK,EAAEb,IAAI,CAAC,KAAK,EAAE;MAAEc,KAAK,EAAE,CAACF,QAAQ,CAACG,SAAS,CAAC,CAAC;IAAE,CAAC;EAAE,CAAC,CAAC,CAAC;EACjK,MAAMC,wBAAwB,GAAGP,MAAM,CAACC,MAAM,CAAChB,eAAe,CAAC,CAACiB,GAAG,CAAEM,IAAI,KAAM;IAAEV,EAAE,EAAEU,IAAc;IAAEJ,KAAK,EAAEb,IAAI,CAAC,KAAK,EAAE;MAAEc,KAAK,EAAE,CAACG,IAAI,CAACF,SAAS,CAAC,CAAC;IAAE,CAAC;EAAE,CAAC,CAAC,CAAC;EAE1J,MAAM,CAACG,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGnC,QAAQ,CAC1DoB,mBAAmB,CAAC,CAAC,CACvB,CAAC;EACD,MAAM,CAACgB,eAAe,EAAEC,kBAAkB,CAAC,GAAGrC,QAAQ,CAACsB,sBAAsB,CAAC;EAC9E,MAAM,CAACgB,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGvC,QAAQ,CAACsB,sBAAsB,CAAC,CAAC,CAAC,CAAC;EACvF,MAAM,CAACkB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGzC,QAAQ,CAACwB,eAAe,CAAC,CAAC,CAAC,CAAC;EAC5E,MAAM,CAACkB,yBAAyB,EAAEC,4BAA4B,CAAC,GAAG3C,QAAQ,CACxEgC,wBAAwB,CAAC,CAAC,CAC5B,CAAC;EAED,MAAMY,sBAAsB,GAAIC,cAA4B,IAAK;IAC/D,MAAMC,IAAI,GAAGtC,4BAA4B,CACvCM,IAAI,CAAEO,uBAAuB,EAC7BwB,cAAc,CAACtB,EACjB,CAAC;IAEDY,qBAAqB,CAACU,cAAc,CAAC;IACrCR,kBAAkB,CAACS,IAAI,CAAC;IACxBP,qBAAqB,CAACO,IAAI,CAAC,CAAC,CAAC,CAAC;EAChC,CAAC;EAED,MAAMC,sBAAsB,GAAG3B,mBAAmB,CAAC4B,MAAM,GAAG,CAAC;EAE7D,OACEjD,KAAA,CAAAkD,aAAA;IACE,eAAY,4BAA4B;IACxCC,SAAS,EAAC;EAA2C,GAErDnD,KAAA,CAAAkD,aAAA;IAAKC,SAAS,EAAEhD,UAAU,CACxB,iBAAiB,EACjB;MACE,yBAAyB,EAAEgB,SAAS,IAAI6B,sBAAsB;MAC9D,2BAA2B,EAAE7B,SAAS,IAAI,CAAC6B,sBAAsB;MACjE,yBAAyB,EAAE,CAAC7B;IAC9B,CACF;EAAE,GAEC6B,sBAAsB,GACrBhD,KAAA,CAAAkD,aAAA,CAAC9C,MAAM;IACLgD,WAAW,EAAEnC,IAAI,CAAC,iBAAiB,CAAE;IACrCoC,OAAO,EAAEhC,mBAAoB;IAC7ByB,cAAc,EAAEX,kBAAmB;IACnCmB,iBAAiB,EAAET;EAAuB,CAC3C,CAAC,GACA,IAAI,EACR7C,KAAA,CAAAkD,aAAA,CAAC9C,MAAM;IACLmD,UAAU;IACVC,iBAAiB,EAAEvC,IAAI,CAAC,QAAQ,CAAE;IAClCmC,WAAW,EAAEnC,IAAI,CAAC,YAAY,CAAE;IAChCoC,OAAO,EAAEhB,eAAgB;IACzBS,cAAc,EAAEP,kBAAmB;IACnCe,iBAAiB,EAAEd;EAAsB,CAC1C,CAAC,EACFxC,KAAA,CAAAkD,aAAA,CAAC9C,MAAM;IACLgD,WAAW,EAAEnC,IAAI,CAAC,WAAW,CAAE;IAC/BoC,OAAO,EAAE5B,eAAgB;IACzBqB,cAAc,EAAEL,gBAAiB;IACjCa,iBAAiB,EAAEZ;EAAoB,CACxC,CAAC,EACF1C,KAAA,CAAAkD,aAAA,CAAC9C,MAAM;IACLgD,WAAW,EAAEnC,IAAI,CAAC,oBAAoB,CAAE;IACxCoC,OAAO,EAAEpB,wBAAyB;IAClCa,cAAc,EAAEH,yBAA0B;IAC1CW,iBAAiB,EAAEV;EAA6B,CACjD,CACE,CAAC,EACN5C,KAAA,CAAAkD,aAAA,CAACtC,aAAa;IACZsB,IAAI,EAAES,yBAAyB,CAACnB,EAAsB;IACtDK,QAAQ,EAAEY,gBAAgB,CAACjB,EAA0B;IACrDiC,UAAU,EAAElB,kBAAkB,CAACf,EAAG;IAClCR,QAAQ,EAAEA;EAAS,CACpB,CACE,CAAC;AAEV,CAAC;AAED,SAASH,IAAI","ignoreList":[]}
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 { Main } from './Main';
7
- const MainWithData = _ref => {
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(Main, {
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 { MainWithData };
42
- //# sourceMappingURL=MainWithData.js.map
41
+ export { ToolWithData };
42
+ //# sourceMappingURL=ToolWithData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MainWithData.js","names":["React","useContext","classnames","ChartError","Size","Spinner","SpinnerSize","ThemeContext","useQuery","getValueAtRiskAssetClasses","Main","MainWithData","_ref","division","size","isDesktop","DESKTOP","loading","data","error","variables","fetchPolicy","createElement","className","lg"],"sources":["../../../src/ValueAtRiskWidget/MainWithData.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 { Main } from './Main';\nimport { MainWithDataProps } from './types';\nimport { GetValueAtRiskAssetClassesQuery, GetValueAtRiskAssetClassesQueryVariables } from '../gql/types/graphql';\n\nconst MainWithData = ({ division }: MainWithDataProps) => {\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 <Main\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 { MainWithData };\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":[]}
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 { MainWithData } from './MainWithData';
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 ? React.createElement("div", {
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)) : React.createElement(MainWithData, {
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","MainWithData","ValueAtRiskWidget","_ref","graphqlUrl","locale","division","theme","isParamError","client","uri","cache","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 { MainWithData } from './MainWithData';\n\nconst ValueAtRiskWidget = ({\n graphqlUrl, locale, division, theme, isParamError,\n}: ValueAtRiskConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\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 ) : <MainWithData division={division} />}\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;AAE7C,MAAMC,iBAAiB,GAAGC,IAAA,IAED;EAAA,IAFE;IACzBC,UAAU;IAAEC,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC;EACpB,CAAC,GAAAL,IAAA;EAClB,MAAMM,MAAM,GAAG,IAAIf,YAAY,CAAC;IAC9BgB,GAAG,EAAEN,UAAU;IACfO,KAAK,EAAE,IAAIhB,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEH,KAAA,CAAAoB,aAAA,CAACd,aAAa;IAACS,KAAK,EAAEA;EAAM,GAC1Bf,KAAA,CAAAoB,aAAA,CAACnB,cAAc;IAACY,MAAM,EAAEN,SAAS,CAACM,MAAM,CAAE;IAACL,YAAY,EAAEA;EAAa,GACpER,KAAA,CAAAoB,aAAA,CAAChB,cAAc;IAACa,MAAM,EAAEA;EAAO,GAC5BD,YAAY,GACXhB,KAAA,CAAAoB,aAAA;IAAKC,SAAS,EAAC;EAAmG,GAChHrB,KAAA,CAAAoB,aAAA,CAACf,UAAU,MAAE,CACV,CAAC,GACJL,KAAA,CAAAoB,aAAA,CAACX,YAAY;IAACK,QAAQ,EAAEA;EAAS,CAAE,CACzB,CACF,CACH,CAAC;AAEpB,CAAC;AAED,SAASJ,iBAAiB","ignoreList":[]}
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 { division, locale } = 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 />,\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;IAAEE,QAAQ;IAAEC;EAAO,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACN,MAAgB,CAAC;EAEzD,MAAMO,YAAY,GAAGnB,kBAAkB,CAAC;IAAEgB,MAAM;IAAED,QAAQ;IAAEZ;EAAW,CAAC,EAAE,CACxE;IACEiB,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAGC,KAAK,IAAKvB,cAAc,CAACuB,KAAK;EAC7C,CAAC,EACD;IACEF,IAAI,EAAE,UAAU;IAChBC,UAAU,EAAGC,KAAK,IAAKC,MAAM,CAACC,MAAM,CAACtB,QAAQ,CAAC,CAACuB,QAAQ,CAACH,KAAK;EAC/D,CAAC,EACD;IACEF,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EAELT,IAAI,CAACe,MAAM,CACT7B,KAAA,CAAA8B,aAAA,CAAC1B,iBAAiB;IAChBE,UAAU,EAAEA,UAAW;IACvBa,MAAM,EAAEA,MAAO;IACfD,QAAQ,EAAEA,QAAS;IACnBa,KAAK,EAAEd,IAAc;IACrBK,YAAY,EAAEA;EAAa,CAC5B,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
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 MainProps {\n data: GetValueAtRiskAssetClassesQuery;\n division: Division;\n}\n\nexport interface MainWithDataProps {\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
+ {"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":[]}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ToolProps } from './types';
3
+ declare const Tool: ({ data, division }: ToolProps) => React.JSX.Element;
4
+ export { Tool };
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ToolWithDataProps } from './types';
3
+ declare const ToolWithData: ({ division }: ToolWithDataProps) => React.JSX.Element;
4
+ export { ToolWithData };
@@ -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 };
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { WidgetProps } from './types';
3
+ declare const Widget: ({ division, instrument, duration, bars, }: WidgetProps) => React.JSX.Element;
4
+ export { Widget };
@@ -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 MainProps {
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 MainWithDataProps {
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.27",
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.135",
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": "4d99162bb8893cb1da6fd9362334b0c8a69f9cb6"
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 { MainProps } from './types';
8
+ import { ToolProps } from './types';
9
9
  import { ValueAtRiskDuration, ValueAtRiskBars } from '../gql/types/graphql';
10
10
  import { ChartWithData } from './ChartWithData';
11
11
 
12
- const Main = ({ data, division }: MainProps) => {
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 { Main };
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 { Main } from './Main';
9
- import { MainWithDataProps } from './types';
8
+ import { Tool } from './Tool';
9
+ import { ToolWithDataProps } from './types';
10
10
  import { GetValueAtRiskAssetClassesQuery, GetValueAtRiskAssetClassesQueryVariables } from '../gql/types/graphql';
11
11
 
12
- const MainWithData = ({ division }: MainWithDataProps) => {
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
- <Main
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 { MainWithData };
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 { MainWithData } from './MainWithData';
7
+ import { ToolWithData } from './ToolWithData';
8
+ import { Widget } from './Widget';
8
9
 
9
10
  const ValueAtRiskWidget = ({
10
- graphqlUrl, locale, division, theme, isParamError,
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
- ) : <MainWithData division={division} />}
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 { division, locale } = JSON.parse(params as string);
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 MainProps {
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 MainWithDataProps {
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 { Main } from '../src/ValueAtRiskWidget/Main';
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('Main component', () => {
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
- <Main
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
- <Main
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 { MainWithData } from '../src/ValueAtRiskWidget/MainWithData';
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
- <MainWithData division={Division.Oc} />
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
+ });
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { MainProps } from './types';
3
- declare const Main: ({ data, division }: MainProps) => React.JSX.Element;
4
- export { Main };
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { MainWithDataProps } from './types';
3
- declare const MainWithData: ({ division }: MainWithDataProps) => React.JSX.Element;
4
- export { MainWithData };