@oanda/labs-value-at-risk-widget 1.0.26 → 1.0.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +228 -0
- package/dist/main/ValueAtRiskWidget/ChartWithData.js +2 -3
- package/dist/main/ValueAtRiskWidget/ChartWithData.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/{Main.js → Tool.js} +5 -5
- package/dist/main/ValueAtRiskWidget/Tool.js.map +1 -0
- package/dist/main/ValueAtRiskWidget/{MainWithData.js → ToolWithData.js} +7 -7
- package/dist/main/ValueAtRiskWidget/ToolWithData.js.map +1 -0
- package/dist/main/ValueAtRiskWidget/ValueAtRiskWidget.js +15 -5
- package/dist/main/ValueAtRiskWidget/ValueAtRiskWidget.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/Widget.js +49 -0
- package/dist/main/ValueAtRiskWidget/Widget.js.map +1 -0
- package/dist/main/ValueAtRiskWidget/components/Chart/Chart.js +2 -2
- package/dist/main/ValueAtRiskWidget/components/Chart/Chart.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/components/Chart/getOption.js +4 -4
- package/dist/main/ValueAtRiskWidget/components/Chart/getOption.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/components/Legend/DashedLine.js +2 -2
- package/dist/main/ValueAtRiskWidget/components/Legend/DashedLine.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/components/Legend/DesktopLegend.js +3 -3
- package/dist/main/ValueAtRiskWidget/components/Legend/DesktopLegend.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/components/Legend/Legend.js +4 -4
- package/dist/main/ValueAtRiskWidget/components/Legend/Legend.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/components/Legend/MobileLegend.js +4 -4
- package/dist/main/ValueAtRiskWidget/components/Legend/MobileLegend.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/render.js +9 -3
- package/dist/main/ValueAtRiskWidget/render.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/types.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/utils.js +1 -1
- package/dist/main/ValueAtRiskWidget/utils.js.map +1 -1
- package/dist/main/gql/getValueAtRiskAssetClasses.js +11 -3
- package/dist/main/gql/getValueAtRiskAssetClasses.js.map +1 -1
- package/dist/main/gql/getValueAtRiskChart.js +26 -3
- package/dist/main/gql/getValueAtRiskChart.js.map +1 -1
- package/dist/main/gql/types/fragment-masking.js +2 -3
- package/dist/main/gql/types/fragment-masking.js.map +1 -1
- package/dist/main/gql/types/gql.js +1 -2
- package/dist/main/gql/types/gql.js.map +1 -1
- package/dist/main/translations/index.js +1 -1
- package/dist/main/translations/index.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/ChartWithData.js +1 -2
- package/dist/module/ValueAtRiskWidget/ChartWithData.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/{Main.js → Tool.js} +3 -3
- package/dist/module/ValueAtRiskWidget/{Main.js.map → Tool.js.map} +1 -1
- package/dist/module/ValueAtRiskWidget/{MainWithData.js → ToolWithData.js} +5 -5
- package/dist/module/ValueAtRiskWidget/{MainWithData.js.map → ToolWithData.js.map} +1 -1
- package/dist/module/ValueAtRiskWidget/ValueAtRiskWidget.js +14 -4
- package/dist/module/ValueAtRiskWidget/ValueAtRiskWidget.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/Widget.js +40 -0
- package/dist/module/ValueAtRiskWidget/Widget.js.map +1 -0
- package/dist/module/ValueAtRiskWidget/components/Chart/Chart.js +1 -1
- package/dist/module/ValueAtRiskWidget/components/Chart/Chart.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/components/Chart/getOption.js +4 -4
- package/dist/module/ValueAtRiskWidget/components/Chart/getOption.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/components/Legend/DashedLine.js +1 -1
- package/dist/module/ValueAtRiskWidget/components/Legend/DashedLine.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/components/Legend/DesktopLegend.js +2 -2
- package/dist/module/ValueAtRiskWidget/components/Legend/DesktopLegend.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/components/Legend/Legend.js +4 -4
- package/dist/module/ValueAtRiskWidget/components/Legend/Legend.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/components/Legend/MobileLegend.js +3 -3
- package/dist/module/ValueAtRiskWidget/components/Legend/MobileLegend.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/render.js +8 -2
- package/dist/module/ValueAtRiskWidget/render.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/types.js.map +1 -1
- package/dist/module/ValueAtRiskWidget/utils.js +1 -1
- package/dist/module/ValueAtRiskWidget/utils.js.map +1 -1
- package/dist/module/gql/getValueAtRiskAssetClasses.js +11 -3
- package/dist/module/gql/getValueAtRiskAssetClasses.js.map +1 -1
- package/dist/module/gql/getValueAtRiskChart.js +26 -3
- package/dist/module/gql/getValueAtRiskChart.js.map +1 -1
- package/dist/module/gql/types/fragment-masking.js +2 -3
- package/dist/module/gql/types/fragment-masking.js.map +1 -1
- package/dist/module/gql/types/gql.js +1 -2
- package/dist/module/gql/types/gql.js.map +1 -1
- package/dist/types/ValueAtRiskWidget/Tool.d.ts +4 -0
- package/dist/types/ValueAtRiskWidget/ToolWithData.d.ts +4 -0
- package/dist/types/ValueAtRiskWidget/ValueAtRiskWidget.d.ts +1 -1
- package/dist/types/ValueAtRiskWidget/Widget.d.ts +4 -0
- package/dist/types/ValueAtRiskWidget/types.d.ts +11 -2
- package/dist/types/gql/types/gql.d.ts +2 -2
- package/dist/types/gql/types/graphql.d.ts +2 -9
- package/package.json +3 -3
- package/src/ValueAtRiskWidget/{Main.tsx → Tool.tsx} +3 -3
- package/src/ValueAtRiskWidget/{MainWithData.tsx → ToolWithData.tsx} +5 -5
- package/src/ValueAtRiskWidget/ValueAtRiskWidget.tsx +22 -4
- package/src/ValueAtRiskWidget/Widget.tsx +46 -0
- package/src/ValueAtRiskWidget/render.tsx +10 -1
- package/src/ValueAtRiskWidget/types.ts +12 -2
- package/test/{Main.test.tsx → Tool.test.tsx} +4 -4
- package/test/{MainWithData.test.tsx → ToolWithData.test.tsx} +2 -2
- package/test/Widget.test.tsx +29 -0
- package/dist/main/ValueAtRiskWidget/Main.js.map +0 -1
- package/dist/main/ValueAtRiskWidget/MainWithData.js.map +0 -1
- package/dist/types/ValueAtRiskWidget/Main.d.ts +0 -4
- package/dist/types/ValueAtRiskWidget/MainWithData.d.ts +0 -4
|
@@ -6,7 +6,6 @@ import { Chart } from './components/Chart';
|
|
|
6
6
|
import { getValueAtRiskChart } from '../gql/getValueAtRiskChart';
|
|
7
7
|
import { Legend } from './components/Legend';
|
|
8
8
|
const ChartWithData = _ref => {
|
|
9
|
-
var _data$valueAtRiskChar, _data$valueAtRiskChar2;
|
|
10
9
|
let {
|
|
11
10
|
instrument,
|
|
12
11
|
duration,
|
|
@@ -31,7 +30,7 @@ const ChartWithData = _ref => {
|
|
|
31
30
|
fetchPolicy: 'cache-and-network',
|
|
32
31
|
skip: !instrument
|
|
33
32
|
});
|
|
34
|
-
const showChart =
|
|
33
|
+
const showChart = data?.valueAtRiskChart?.down?.points && data.valueAtRiskChart.down.points.length > 0 && data?.valueAtRiskChart?.up?.points && data.valueAtRiskChart.up.points.length > 0;
|
|
35
34
|
return React.createElement(React.Fragment, null, (loading || !instrument) && React.createElement("div", {
|
|
36
35
|
className: classnames('lw-flex lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary', {
|
|
37
36
|
'lw-h-[460px]': isDesktop,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartWithData.js","names":["React","useContext","classnames","useQuery","ChartError","Size","Spinner","SpinnerSize","ThemeContext","Chart","getValueAtRiskChart","Legend","ChartWithData","_ref","
|
|
1
|
+
{"version":3,"file":"ChartWithData.js","names":["React","useContext","classnames","useQuery","ChartError","Size","Spinner","SpinnerSize","ThemeContext","Chart","getValueAtRiskChart","Legend","ChartWithData","_ref","instrument","duration","bars","division","size","isDesktop","DESKTOP","loading","data","error","variables","fetchPolicy","skip","showChart","valueAtRiskChart","down","points","length","up","createElement","Fragment","className","lg","values"],"sources":["../../../src/ValueAtRiskWidget/ChartWithData.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport classnames from 'classnames';\nimport { useQuery } from '@apollo/client';\nimport {\n ChartError, Size, Spinner, SpinnerSize,\n ThemeContext,\n} from '@oanda/labs-widget-common';\nimport { Chart } from './components/Chart';\nimport { getValueAtRiskChart } from '../gql/getValueAtRiskChart';\nimport { ChartWithDataProps } from './types';\nimport { GetValueAtRiskChartQuery, GetValueAtRiskChartQueryVariables } from '../gql/types/graphql';\nimport { Legend } from './components/Legend';\n\nconst ChartWithData = ({\n instrument, duration, bars, division,\n}: ChartWithDataProps) => {\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n\n const { loading, data, error } = useQuery<\n GetValueAtRiskChartQuery, GetValueAtRiskChartQueryVariables>(getValueAtRiskChart, {\n variables: {\n instrument, division, duration, bars,\n },\n fetchPolicy: 'cache-and-network',\n skip: !instrument,\n });\n\n const showChart = data?.valueAtRiskChart?.down?.points\n && data.valueAtRiskChart.down.points.length > 0\n && data?.valueAtRiskChart?.up?.points\n && data.valueAtRiskChart.up.points.length > 0;\n\n return (\n <>\n {(loading || !instrument)\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-[460px]': isDesktop,\n 'lw-h-[566px]': !isDesktop,\n })}\n >\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {!loading && showChart && (\n <div data-testid=\"value-at-risk-chart\" className=\"lw-relative\">\n <Legend data={data} />\n <Chart values={data} />\n </div>\n )}\n {!!error && (\n <div className=\"lw-flex lw-h-[460px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )}\n </>\n );\n};\n\nexport { ChartWithData };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SACEC,UAAU,EAAEC,IAAI,EAAEC,OAAO,EAAEC,WAAW,EACtCC,YAAY,QACP,2BAA2B;AAClC,SAASC,KAAK,QAAQ,oBAAoB;AAC1C,SAASC,mBAAmB,QAAQ,4BAA4B;AAGhE,SAASC,MAAM,QAAQ,qBAAqB;AAE5C,MAAMC,aAAa,GAAGC,IAAA,IAEI;EAAA,IAFH;IACrBC,UAAU;IAAEC,QAAQ;IAAEC,IAAI;IAAEC;EACV,CAAC,GAAAJ,IAAA;EACnB,MAAM;IAAEK;EAAK,CAAC,GAAGjB,UAAU,CAACO,YAAY,CAAC;EACzC,MAAMW,SAAS,GAAGD,IAAI,KAAKb,IAAI,CAACe,OAAO;EAEvC,MAAM;IAAEC,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAGpB,QAAQ,CACoBO,mBAAmB,EAAE;IAChFc,SAAS,EAAE;MACTV,UAAU;MAAEG,QAAQ;MAAEF,QAAQ;MAAEC;IAClC,CAAC;IACDS,WAAW,EAAE,mBAAmB;IAChCC,IAAI,EAAE,CAACZ;EACT,CAAC,CAAC;EAEF,MAAMa,SAAS,GAAGL,IAAI,EAAEM,gBAAgB,EAAEC,IAAI,EAAEC,MAAM,IACjDR,IAAI,CAACM,gBAAgB,CAACC,IAAI,CAACC,MAAM,CAACC,MAAM,GAAG,CAAC,IAC5CT,IAAI,EAAEM,gBAAgB,EAAEI,EAAE,EAAEF,MAAM,IAClCR,IAAI,CAACM,gBAAgB,CAACI,EAAE,CAACF,MAAM,CAACC,MAAM,GAAG,CAAC;EAE/C,OACE/B,KAAA,CAAAiC,aAAA,CAAAjC,KAAA,CAAAkC,QAAA,QACG,CAACb,OAAO,IAAI,CAACP,UAAU,KAExBd,KAAA,CAAAiC,aAAA;IAAKE,SAAS,EAAEjC,UAAU,CAAC,sFAAsF,EAAE;MACjH,cAAc,EAAEiB,SAAS;MACzB,cAAc,EAAE,CAACA;IACnB,CAAC;EAAE,GAEDnB,KAAA,CAAAiC,aAAA,CAAC3B,OAAO;IAACY,IAAI,EAAEX,WAAW,CAAC6B;EAAG,CAAE,CAC7B,CACJ,EACA,CAACf,OAAO,IAAIM,SAAS,IACtB3B,KAAA,CAAAiC,aAAA;IAAK,eAAY,qBAAqB;IAACE,SAAS,EAAC;EAAa,GAC5DnC,KAAA,CAAAiC,aAAA,CAACtB,MAAM;IAACW,IAAI,EAAEA;EAAK,CAAE,CAAC,EACtBtB,KAAA,CAAAiC,aAAA,CAACxB,KAAK;IAAC4B,MAAM,EAAEf;EAAK,CAAE,CACnB,CACJ,EACA,CAAC,CAACC,KAAK,IACNvB,KAAA,CAAAiC,aAAA;IAAKE,SAAS,EAAC;EAAmG,GAChHnC,KAAA,CAAAiC,aAAA,CAAC7B,UAAU,MAAE,CACV,CAEP,CAAC;AAEP,CAAC;AAED,SAASQ,aAAa","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { useLocale } from '@oanda/mono-i18n';
|
|
|
5
5
|
import { getAssetClassesList, getInstrumentsByAssetClassId } from './utils';
|
|
6
6
|
import { ValueAtRiskDuration, ValueAtRiskBars } from '../gql/types/graphql';
|
|
7
7
|
import { ChartWithData } from './ChartWithData';
|
|
8
|
-
const
|
|
8
|
+
const Tool = _ref => {
|
|
9
9
|
let {
|
|
10
10
|
data,
|
|
11
11
|
division
|
|
@@ -81,5 +81,5 @@ const Main = _ref => {
|
|
|
81
81
|
division: division
|
|
82
82
|
}));
|
|
83
83
|
};
|
|
84
|
-
export {
|
|
85
|
-
//# sourceMappingURL=
|
|
84
|
+
export { Tool };
|
|
85
|
+
//# sourceMappingURL=Tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"Tool.js","names":["React","useState","useContext","classnames","Select","Size","ThemeContext","useLocale","getAssetClassesList","getInstrumentsByAssetClassId","ValueAtRiskDuration","ValueAtRiskBars","ChartWithData","Tool","_ref","data","division","lang","size","isDesktop","DESKTOP","assetClassesOptions","valueAtRiskAssetClasses","initInstrumentsOptions","id","holdTimeOptions","Object","values","map","duration","label","count","substring","calculationPeriodOptions","bars","selectedAssetClass","setSelectedAssetClass","instrumentsList","setInstrumentsList","selectedInstrument","setSelectedInstrument","selectedHoldTime","setSelectedHoldTime","selectedCalculationPeriod","setSelectedCalculationPeriod","handleAssetClassSelect","selectedOption","list","showAssetClassesSelect","length","createElement","className","selectLabel","options","setSelectedOption","withSearch","searchPlaceholder","instrument"],"sources":["../../../src/ValueAtRiskWidget/Tool.tsx"],"sourcesContent":["import React, { useState, useContext } from 'react';\nimport classnames from 'classnames';\nimport {\n Select, SelectOption, Size, ThemeContext,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { getAssetClassesList, getInstrumentsByAssetClassId } from './utils';\nimport { ToolProps } from './types';\nimport { ValueAtRiskDuration, ValueAtRiskBars } from '../gql/types/graphql';\nimport { ChartWithData } from './ChartWithData';\n\nconst Tool = ({ data, division }: ToolProps) => {\n const { lang } = useLocale();\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n\n const assetClassesOptions = getAssetClassesList(data!.valueAtRiskAssetClasses!);\n const initInstrumentsOptions = getInstrumentsByAssetClassId(\n data!.valueAtRiskAssetClasses!,\n assetClassesOptions[0].id,\n );\n\n const holdTimeOptions = Object.values(ValueAtRiskDuration).map((duration) => ({ id: duration as string, label: lang('day', { count: +duration.substring(1) }) }));\n const calculationPeriodOptions = Object.values(ValueAtRiskBars).map((bars) => ({ id: bars as string, label: lang('day', { count: +bars.substring(1) }) }));\n\n const [selectedAssetClass, setSelectedAssetClass] = useState(\n assetClassesOptions[0],\n );\n const [instrumentsList, setInstrumentsList] = useState(initInstrumentsOptions);\n const [selectedInstrument, setSelectedInstrument] = useState(initInstrumentsOptions[0]);\n const [selectedHoldTime, setSelectedHoldTime] = useState(holdTimeOptions[0]);\n const [selectedCalculationPeriod, setSelectedCalculationPeriod] = useState(\n calculationPeriodOptions[0],\n );\n\n const handleAssetClassSelect = (selectedOption: SelectOption) => {\n const list = getInstrumentsByAssetClassId(\n data!.valueAtRiskAssetClasses!,\n selectedOption.id,\n );\n\n setSelectedAssetClass(selectedOption);\n setInstrumentsList(list);\n setSelectedInstrument(list[0]);\n };\n\n const showAssetClassesSelect = assetClassesOptions.length > 1;\n\n return (\n <div\n data-testid=\"value-at-risk-tool-wrapper\"\n className=\"lw-relative lw-text-sm lw-tracking-normal\"\n >\n <div className={classnames(\n 'lw-mb-8 lw-grid',\n {\n 'lw-grid-cols-4 lw-gap-2': isDesktop && showAssetClassesSelect,\n 'lw-grid-cols-3 lw-gap-2.5': isDesktop && !showAssetClassesSelect,\n 'lw-grid-cols-1 lw-gap-4': !isDesktop,\n },\n )}\n >\n {showAssetClassesSelect ? (\n <Select\n selectLabel={lang('instrument_type')}\n options={assetClassesOptions}\n selectedOption={selectedAssetClass}\n setSelectedOption={handleAssetClassSelect}\n />\n ) : null}\n <Select\n withSearch\n searchPlaceholder={lang('search')}\n selectLabel={lang('instrument')}\n options={instrumentsList}\n selectedOption={selectedInstrument}\n setSelectedOption={setSelectedInstrument}\n />\n <Select\n selectLabel={lang('hold_time')}\n options={holdTimeOptions}\n selectedOption={selectedHoldTime}\n setSelectedOption={setSelectedHoldTime}\n />\n <Select\n selectLabel={lang('calculation_period')}\n options={calculationPeriodOptions}\n selectedOption={selectedCalculationPeriod}\n setSelectedOption={setSelectedCalculationPeriod}\n />\n </div>\n <ChartWithData\n bars={selectedCalculationPeriod.id as ValueAtRiskBars}\n duration={selectedHoldTime.id as ValueAtRiskDuration}\n instrument={selectedInstrument.id}\n division={division}\n />\n </div>\n );\n};\n\nexport { Tool };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,8 +3,8 @@ import classnames from 'classnames';
|
|
|
3
3
|
import { ChartError, Size, Spinner, SpinnerSize, ThemeContext } from '@oanda/labs-widget-common';
|
|
4
4
|
import { useQuery } from '@apollo/client';
|
|
5
5
|
import { getValueAtRiskAssetClasses } from '../gql/getValueAtRiskAssetClasses';
|
|
6
|
-
import {
|
|
7
|
-
const
|
|
6
|
+
import { Tool } from './Tool';
|
|
7
|
+
const ToolWithData = _ref => {
|
|
8
8
|
let {
|
|
9
9
|
division
|
|
10
10
|
} = _ref;
|
|
@@ -31,12 +31,12 @@ const MainWithData = _ref => {
|
|
|
31
31
|
})
|
|
32
32
|
}, React.createElement(Spinner, {
|
|
33
33
|
size: SpinnerSize.lg
|
|
34
|
-
})), !loading && data && React.createElement(
|
|
34
|
+
})), !loading && data && React.createElement(Tool, {
|
|
35
35
|
data: data,
|
|
36
36
|
division: division
|
|
37
37
|
}), !loading && error && React.createElement("div", {
|
|
38
38
|
className: "lw-flex lw-h-[500px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
|
|
39
39
|
}, React.createElement(ChartError, null)));
|
|
40
40
|
};
|
|
41
|
-
export {
|
|
42
|
-
//# sourceMappingURL=
|
|
41
|
+
export { ToolWithData };
|
|
42
|
+
//# sourceMappingURL=ToolWithData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"ToolWithData.js","names":["React","useContext","classnames","ChartError","Size","Spinner","SpinnerSize","ThemeContext","useQuery","getValueAtRiskAssetClasses","Tool","ToolWithData","_ref","division","size","isDesktop","DESKTOP","loading","data","error","variables","fetchPolicy","createElement","className","lg"],"sources":["../../../src/ValueAtRiskWidget/ToolWithData.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport classnames from 'classnames';\nimport {\n ChartError, Size, Spinner, SpinnerSize, ThemeContext,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getValueAtRiskAssetClasses } from '../gql/getValueAtRiskAssetClasses';\nimport { Tool } from './Tool';\nimport { ToolWithDataProps } from './types';\nimport { GetValueAtRiskAssetClassesQuery, GetValueAtRiskAssetClassesQueryVariables } from '../gql/types/graphql';\n\nconst ToolWithData = ({ division }: ToolWithDataProps) => {\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n const { loading, data, error } = useQuery<\n GetValueAtRiskAssetClassesQuery,\n GetValueAtRiskAssetClassesQueryVariables\n >(getValueAtRiskAssetClasses, {\n variables: {\n division,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n return (\n <div data-testid=\"value-at-risk-wrapper\">\n {(loading || !size)\n && (\n <div className={classnames('lw-flex lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary', {\n 'lw-h-[566px]': isDesktop,\n 'lw-h-[840px]': !isDesktop,\n })}\n >\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {!loading && data && (\n <Tool\n data={data}\n division={division}\n />\n )}\n {!loading && error && (\n <div className=\"lw-flex lw-h-[500px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )}\n </div>\n );\n};\n\nexport { ToolWithData };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,UAAU,EAAEC,IAAI,EAAEC,OAAO,EAAEC,WAAW,EAAEC,YAAY,QAC/C,2BAA2B;AAClC,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,0BAA0B,QAAQ,mCAAmC;AAC9E,SAASC,IAAI,QAAQ,QAAQ;AAI7B,MAAMC,YAAY,GAAGC,IAAA,IAAqC;EAAA,IAApC;IAAEC;EAA4B,CAAC,GAAAD,IAAA;EACnD,MAAM;IAAEE;EAAK,CAAC,GAAGb,UAAU,CAACM,YAAY,CAAC;EACzC,MAAMQ,SAAS,GAAGD,IAAI,KAAKV,IAAI,CAACY,OAAO;EACvC,MAAM;IAAEC,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAGX,QAAQ,CAGvCC,0BAA0B,EAAE;IAC5BW,SAAS,EAAE;MACTP;IACF,CAAC;IACDQ,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,OACErB,KAAA,CAAAsB,aAAA;IAAK,eAAY;EAAuB,GACrC,CAACL,OAAO,IAAI,CAACH,IAAI,KAElBd,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAErB,UAAU,CAAC,sFAAsF,EAAE;MACjH,cAAc,EAAEa,SAAS;MACzB,cAAc,EAAE,CAACA;IACnB,CAAC;EAAE,GAEDf,KAAA,CAAAsB,aAAA,CAACjB,OAAO;IAACS,IAAI,EAAER,WAAW,CAACkB;EAAG,CAAE,CAC7B,CACJ,EACA,CAACP,OAAO,IAAIC,IAAI,IACflB,KAAA,CAAAsB,aAAA,CAACZ,IAAI;IACHQ,IAAI,EAAEA,IAAK;IACXL,QAAQ,EAAEA;EAAS,CACpB,CACF,EACA,CAACI,OAAO,IAAIE,KAAK,IAChBnB,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAC;EAAmG,GAChHvB,KAAA,CAAAsB,aAAA,CAACnB,UAAU,MAAE,CACV,CAEJ,CAAC;AAEV,CAAC;AAED,SAASQ,YAAY","ignoreList":[]}
|
|
@@ -3,19 +3,24 @@ import { LocaleProvider } from '@oanda/mono-i18n';
|
|
|
3
3
|
import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';
|
|
4
4
|
import { ChartError, ThemeProvider, getLocale } from '@oanda/labs-widget-common';
|
|
5
5
|
import { translations } from '../translations';
|
|
6
|
-
import {
|
|
6
|
+
import { ToolWithData } from './ToolWithData';
|
|
7
|
+
import { Widget } from './Widget';
|
|
7
8
|
const ValueAtRiskWidget = _ref => {
|
|
8
9
|
let {
|
|
9
10
|
graphqlUrl,
|
|
10
11
|
locale,
|
|
11
12
|
division,
|
|
12
13
|
theme,
|
|
13
|
-
isParamError
|
|
14
|
+
isParamError,
|
|
15
|
+
instrument,
|
|
16
|
+
duration,
|
|
17
|
+
bars
|
|
14
18
|
} = _ref;
|
|
15
19
|
const client = new ApolloClient({
|
|
16
20
|
uri: graphqlUrl,
|
|
17
21
|
cache: new InMemoryCache()
|
|
18
22
|
});
|
|
23
|
+
const isWidget = !!instrument && !!duration && !!bars;
|
|
19
24
|
return React.createElement(ThemeProvider, {
|
|
20
25
|
theme: theme
|
|
21
26
|
}, React.createElement(LocaleProvider, {
|
|
@@ -23,10 +28,15 @@ const ValueAtRiskWidget = _ref => {
|
|
|
23
28
|
translations: translations
|
|
24
29
|
}, React.createElement(ApolloProvider, {
|
|
25
30
|
client: client
|
|
26
|
-
}, isParamError
|
|
31
|
+
}, isParamError && React.createElement("div", {
|
|
27
32
|
className: "lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
|
|
28
|
-
}, React.createElement(ChartError, null))
|
|
33
|
+
}, React.createElement(ChartError, null)), !isParamError && !isWidget && React.createElement(ToolWithData, {
|
|
29
34
|
division: division
|
|
35
|
+
}), !isParamError && isWidget && React.createElement(Widget, {
|
|
36
|
+
division: division,
|
|
37
|
+
instrument: instrument,
|
|
38
|
+
duration: duration,
|
|
39
|
+
bars: bars
|
|
30
40
|
}))));
|
|
31
41
|
};
|
|
32
42
|
export { ValueAtRiskWidget };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValueAtRiskWidget.js","names":["React","LocaleProvider","ApolloClient","InMemoryCache","ApolloProvider","ChartError","ThemeProvider","getLocale","translations","
|
|
1
|
+
{"version":3,"file":"ValueAtRiskWidget.js","names":["React","LocaleProvider","ApolloClient","InMemoryCache","ApolloProvider","ChartError","ThemeProvider","getLocale","translations","ToolWithData","Widget","ValueAtRiskWidget","_ref","graphqlUrl","locale","division","theme","isParamError","instrument","duration","bars","client","uri","cache","isWidget","createElement","className"],"sources":["../../../src/ValueAtRiskWidget/ValueAtRiskWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { ChartError, ThemeProvider, getLocale } from '@oanda/labs-widget-common';\nimport { ValueAtRiskConfig } from './types';\nimport { translations } from '../translations';\nimport { ToolWithData } from './ToolWithData';\nimport { Widget } from './Widget';\n\nconst ValueAtRiskWidget = ({\n graphqlUrl,\n locale,\n division,\n theme,\n isParamError,\n instrument,\n duration,\n bars,\n}: ValueAtRiskConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n const isWidget = !!instrument && !!duration && !!bars;\n\n return (\n <ThemeProvider theme={theme}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <ApolloProvider client={client}>\n {isParamError && (\n <div className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )}\n {!isParamError && !isWidget && <ToolWithData division={division} />}\n {!isParamError && isWidget && (\n <Widget\n division={division}\n instrument={instrument}\n duration={duration}\n bars={bars}\n />\n )}\n </ApolloProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { ValueAtRiskWidget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,YAAY,EAAEC,aAAa,EAAEC,cAAc,QAAQ,gBAAgB;AAC5E,SAASC,UAAU,EAAEC,aAAa,EAAEC,SAAS,QAAQ,2BAA2B;AAEhF,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,MAAM,QAAQ,UAAU;AAEjC,MAAMC,iBAAiB,GAAGC,IAAA,IASD;EAAA,IATE;IACzBC,UAAU;IACVC,MAAM;IACNC,QAAQ;IACRC,KAAK;IACLC,YAAY;IACZC,UAAU;IACVC,QAAQ;IACRC;EACiB,CAAC,GAAAR,IAAA;EAClB,MAAMS,MAAM,GAAG,IAAInB,YAAY,CAAC;IAC9BoB,GAAG,EAAET,UAAU;IACfU,KAAK,EAAE,IAAIpB,aAAa,CAAC;EAC3B,CAAC,CAAC;EACF,MAAMqB,QAAQ,GAAG,CAAC,CAACN,UAAU,IAAI,CAAC,CAACC,QAAQ,IAAI,CAAC,CAACC,IAAI;EAErD,OACEpB,KAAA,CAAAyB,aAAA,CAACnB,aAAa;IAACU,KAAK,EAAEA;EAAM,GAC1BhB,KAAA,CAAAyB,aAAA,CAACxB,cAAc;IAACa,MAAM,EAAEP,SAAS,CAACO,MAAM,CAAE;IAACN,YAAY,EAAEA;EAAa,GACpER,KAAA,CAAAyB,aAAA,CAACrB,cAAc;IAACiB,MAAM,EAAEA;EAAO,GAC5BJ,YAAY,IACXjB,KAAA,CAAAyB,aAAA;IAAKC,SAAS,EAAC;EAAmG,GAChH1B,KAAA,CAAAyB,aAAA,CAACpB,UAAU,MAAE,CACV,CACN,EACA,CAACY,YAAY,IAAI,CAACO,QAAQ,IAAIxB,KAAA,CAAAyB,aAAA,CAAChB,YAAY;IAACM,QAAQ,EAAEA;EAAS,CAAE,CAAC,EAClE,CAACE,YAAY,IAAIO,QAAQ,IACxBxB,KAAA,CAAAyB,aAAA,CAACf,MAAM;IACLK,QAAQ,EAAEA,QAAS;IACnBG,UAAU,EAAEA,UAAW;IACvBC,QAAQ,EAAEA,QAAS;IACnBC,IAAI,EAAEA;EAAK,CACZ,CAEW,CACF,CACH,CAAC;AAEpB,CAAC;AAED,SAAST,iBAAiB","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React, { useContext } from 'react';
|
|
2
|
+
import classnames from 'classnames';
|
|
3
|
+
import { Size, ThemeContext } from '@oanda/labs-widget-common';
|
|
4
|
+
import { useLocale } from '@oanda/mono-i18n';
|
|
5
|
+
import { ChartWithData } from './ChartWithData';
|
|
6
|
+
const Widget = _ref => {
|
|
7
|
+
let {
|
|
8
|
+
division,
|
|
9
|
+
instrument,
|
|
10
|
+
duration,
|
|
11
|
+
bars
|
|
12
|
+
} = _ref;
|
|
13
|
+
const {
|
|
14
|
+
lang
|
|
15
|
+
} = useLocale();
|
|
16
|
+
const {
|
|
17
|
+
size
|
|
18
|
+
} = useContext(ThemeContext);
|
|
19
|
+
const isDesktop = size === Size.DESKTOP;
|
|
20
|
+
return React.createElement("div", {
|
|
21
|
+
"data-testid": "value-at-risk-widget-wrapper",
|
|
22
|
+
className: "lw-relative lw-text-sm lw-tracking-normal"
|
|
23
|
+
}, size && React.createElement(React.Fragment, null, React.createElement("div", {
|
|
24
|
+
className: classnames('lw-font-bold', {
|
|
25
|
+
'lw-mb-11 lw-text-center lw-text-xl': isDesktop,
|
|
26
|
+
'lw-mb-6 lw-text-lg': !isDesktop
|
|
27
|
+
})
|
|
28
|
+
}, React.createElement("div", null, `${lang('hold_time')}: ${lang('day', {
|
|
29
|
+
count: +duration.substring(1)
|
|
30
|
+
})}`), React.createElement("div", null, `${lang('calculation_period')}: ${lang('day', {
|
|
31
|
+
count: +bars.substring(1)
|
|
32
|
+
})}`)), React.createElement(ChartWithData, {
|
|
33
|
+
bars: bars,
|
|
34
|
+
duration: duration,
|
|
35
|
+
instrument: instrument,
|
|
36
|
+
division: division
|
|
37
|
+
})));
|
|
38
|
+
};
|
|
39
|
+
export { Widget };
|
|
40
|
+
//# sourceMappingURL=Widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Widget.js","names":["React","useContext","classnames","Size","ThemeContext","useLocale","ChartWithData","Widget","_ref","division","instrument","duration","bars","lang","size","isDesktop","DESKTOP","createElement","className","Fragment","count","substring"],"sources":["../../../src/ValueAtRiskWidget/Widget.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport classnames from 'classnames';\nimport { Size, ThemeContext } from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { WidgetProps } from './types';\nimport { ChartWithData } from './ChartWithData';\n\nconst Widget = ({\n division,\n instrument,\n duration,\n bars,\n}: WidgetProps) => {\n const { lang } = useLocale();\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n\n return (\n <div\n data-testid=\"value-at-risk-widget-wrapper\"\n className=\"lw-relative lw-text-sm lw-tracking-normal\"\n >\n {size && (\n <>\n <div\n className={classnames('lw-font-bold', {\n 'lw-mb-11 lw-text-center lw-text-xl': isDesktop,\n 'lw-mb-6 lw-text-lg': !isDesktop,\n })}\n >\n <div>{`${lang('hold_time')}: ${lang('day', { count: +duration.substring(1) })}`}</div>\n <div>{`${lang('calculation_period')}: ${lang('day', { count: +bars.substring(1) })}`}</div>\n </div>\n <ChartWithData\n bars={bars}\n duration={duration}\n instrument={instrument}\n division={division}\n />\n </>\n )}\n </div>\n );\n};\n\nexport { Widget };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,IAAI,EAAEC,YAAY,QAAQ,2BAA2B;AAC9D,SAASC,SAAS,QAAQ,kBAAkB;AAE5C,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,MAAMC,MAAM,GAAGC,IAAA,IAKI;EAAA,IALH;IACdC,QAAQ;IACRC,UAAU;IACVC,QAAQ;IACRC;EACW,CAAC,GAAAJ,IAAA;EACZ,MAAM;IAAEK;EAAK,CAAC,GAAGR,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAES;EAAK,CAAC,GAAGb,UAAU,CAACG,YAAY,CAAC;EACzC,MAAMW,SAAS,GAAGD,IAAI,KAAKX,IAAI,CAACa,OAAO;EAEvC,OACEhB,KAAA,CAAAiB,aAAA;IACE,eAAY,8BAA8B;IAC1CC,SAAS,EAAC;EAA2C,GAEpDJ,IAAI,IACHd,KAAA,CAAAiB,aAAA,CAAAjB,KAAA,CAAAmB,QAAA,QACEnB,KAAA,CAAAiB,aAAA;IACEC,SAAS,EAAEhB,UAAU,CAAC,cAAc,EAAE;MACpC,oCAAoC,EAAEa,SAAS;MAC/C,oBAAoB,EAAE,CAACA;IACzB,CAAC;EAAE,GAEHf,KAAA,CAAAiB,aAAA,cAAM,GAAGJ,IAAI,CAAC,WAAW,CAAC,KAAKA,IAAI,CAAC,KAAK,EAAE;IAAEO,KAAK,EAAE,CAACT,QAAQ,CAACU,SAAS,CAAC,CAAC;EAAE,CAAC,CAAC,EAAQ,CAAC,EACtFrB,KAAA,CAAAiB,aAAA,cAAM,GAAGJ,IAAI,CAAC,oBAAoB,CAAC,KAAKA,IAAI,CAAC,KAAK,EAAE;IAAEO,KAAK,EAAE,CAACR,IAAI,CAACS,SAAS,CAAC,CAAC;EAAE,CAAC,CAAC,EAAQ,CACvF,CAAC,EACNrB,KAAA,CAAAiB,aAAA,CAACX,aAAa;IACZM,IAAI,EAAEA,IAAK;IACXD,QAAQ,EAAEA,QAAS;IACnBD,UAAU,EAAEA,UAAW;IACvBD,QAAQ,EAAEA;EAAS,CACpB,CACD,CAED,CAAC;AAEV,CAAC;AAED,SAASF,MAAM","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.js","names":["React","useContext","ReactEChartsCore","echarts","LineChart","CustomChart","CanvasRenderer","GridSimpleComponent","GraphicComponent","MarkPointComponent","TitleComponent","DatasetComponent","VisualMapComponent","MarkLineComponent","AxisPointerComponent","useLocale","Size","Theme","ThemeContext","getChartTheme","CHART_HEIGHT","getOption","use","registerTheme","Dark","Light","Chart","_ref","values","lang","isDark","size","isDesktop","DESKTOP","createElement","theme","style","height","
|
|
1
|
+
{"version":3,"file":"Chart.js","names":["React","useContext","ReactEChartsCore","echarts","LineChart","CustomChart","CanvasRenderer","GridSimpleComponent","GraphicComponent","MarkPointComponent","TitleComponent","DatasetComponent","VisualMapComponent","MarkLineComponent","AxisPointerComponent","useLocale","Size","Theme","ThemeContext","getChartTheme","CHART_HEIGHT","getOption","use","registerTheme","Dark","Light","Chart","_ref","values","lang","isDark","size","isDesktop","DESKTOP","createElement","theme","style","height","width","option"],"sources":["../../../../../src/ValueAtRiskWidget/components/Chart/Chart.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport ReactEChartsCore from 'echarts-for-react/lib/core';\nimport * as echarts from 'echarts/core';\nimport { LineChart, CustomChart } from 'echarts/charts';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport {\n GridSimpleComponent,\n GraphicComponent,\n MarkPointComponent,\n TitleComponent,\n DatasetComponent,\n VisualMapComponent,\n MarkLineComponent,\n AxisPointerComponent,\n} from 'echarts/components';\nimport { useLocale } from '@oanda/mono-i18n';\nimport {\n Size,\n Theme,\n ThemeContext,\n getChartTheme,\n} from '@oanda/labs-widget-common';\nimport { CHART_HEIGHT } from './constants';\nimport { getOption } from './getOption';\nimport { ChartProps } from './types';\n\necharts.use([\n GridSimpleComponent,\n GraphicComponent,\n TitleComponent,\n LineChart,\n CanvasRenderer,\n DatasetComponent,\n VisualMapComponent,\n CustomChart,\n MarkLineComponent,\n MarkPointComponent,\n AxisPointerComponent,\n]);\n\necharts.registerTheme('dark_theme', getChartTheme(Theme.Dark));\necharts.registerTheme('light_theme', getChartTheme(Theme.Light));\n\nconst Chart = ({ values }: ChartProps) => {\n const { lang } = useLocale();\n const { isDark, size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n\n return (\n <ReactEChartsCore\n echarts={echarts}\n theme={isDark ? 'dark_theme' : 'light_theme'}\n style={{\n height: `${CHART_HEIGHT}px`,\n width: '100%',\n }}\n option={getOption(values, lang, isDark, isDesktop)}\n />\n );\n};\n\nexport { Chart };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,gBAAgB,MAAM,4BAA4B;AACzD,OAAO,KAAKC,OAAO,MAAM,cAAc;AACvC,SAASC,SAAS,EAAEC,WAAW,QAAQ,gBAAgB;AACvD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SACEC,mBAAmB,EACnBC,gBAAgB,EAChBC,kBAAkB,EAClBC,cAAc,EACdC,gBAAgB,EAChBC,kBAAkB,EAClBC,iBAAiB,EACjBC,oBAAoB,QACf,oBAAoB;AAC3B,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SACEC,IAAI,EACJC,KAAK,EACLC,YAAY,EACZC,aAAa,QACR,2BAA2B;AAClC,SAASC,YAAY,QAAQ,aAAa;AAC1C,SAASC,SAAS,QAAQ,aAAa;AAGvClB,OAAO,CAACmB,GAAG,CAAC,CACVf,mBAAmB,EACnBC,gBAAgB,EAChBE,cAAc,EACdN,SAAS,EACTE,cAAc,EACdK,gBAAgB,EAChBC,kBAAkB,EAClBP,WAAW,EACXQ,iBAAiB,EACjBJ,kBAAkB,EAClBK,oBAAoB,CACrB,CAAC;AAEFX,OAAO,CAACoB,aAAa,CAAC,YAAY,EAAEJ,aAAa,CAACF,KAAK,CAACO,IAAI,CAAC,CAAC;AAC9DrB,OAAO,CAACoB,aAAa,CAAC,aAAa,EAAEJ,aAAa,CAACF,KAAK,CAACQ,KAAK,CAAC,CAAC;AAEhE,MAAMC,KAAK,GAAGC,IAAA,IAA4B;EAAA,IAA3B;IAAEC;EAAmB,CAAC,GAAAD,IAAA;EACnC,MAAM;IAAEE;EAAK,CAAC,GAAGd,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAEe,MAAM;IAAEC;EAAK,CAAC,GAAG9B,UAAU,CAACiB,YAAY,CAAC;EACjD,MAAMc,SAAS,GAAGD,IAAI,KAAKf,IAAI,CAACiB,OAAO;EAEvC,OACEjC,KAAA,CAAAkC,aAAA,CAAChC,gBAAgB;IACfC,OAAO,EAAEA,OAAQ;IACjBgC,KAAK,EAAEL,MAAM,GAAG,YAAY,GAAG,aAAc;IAC7CM,KAAK,EAAE;MACLC,MAAM,EAAE,GAAGjB,YAAY,IAAI;MAC3BkB,KAAK,EAAE;IACT,CAAE;IACFC,MAAM,EAAElB,SAAS,CAACO,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAEE,SAAS;EAAE,CACpD,CAAC;AAEN,CAAC;AAED,SAASN,KAAK","ignoreList":[]}
|
|
@@ -82,7 +82,7 @@ export const getOption = (values, lang, isDark, isDesktop) => {
|
|
|
82
82
|
padding: isDesktop ? [0, 0, 0, 0] : [20, 0, 0, 0]
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
|
-
formatter: (value, index) => index ?
|
|
85
|
+
formatter: (value, index) => index ? `${value}%` : `{a|${value}%}`
|
|
86
86
|
},
|
|
87
87
|
axisPointer: {
|
|
88
88
|
label: {
|
|
@@ -268,10 +268,10 @@ export const getOption = (values, lang, isDark, isDesktop) => {
|
|
|
268
268
|
}],
|
|
269
269
|
grid: [{
|
|
270
270
|
name: 'main-grid',
|
|
271
|
-
top:
|
|
271
|
+
top: `${TITLE_HEIGHT}px`,
|
|
272
272
|
left: '0px',
|
|
273
|
-
right:
|
|
274
|
-
bottom:
|
|
273
|
+
right: `${isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE}px`,
|
|
274
|
+
bottom: `${X_LABEL_SIZE}px`
|
|
275
275
|
}],
|
|
276
276
|
graphic: [...gridLines, {
|
|
277
277
|
...getLineCommons(isDark),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOption.js","names":["colorPalette","darkTheme","getGridLines","getLineCommons","lightTheme","CHART_WIDTH","CHART_HEIGHT","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","TITLE_HEIGHT","Y_LABEL_SIZE_MOBILE","getPercentValueByPips","getOption","values","lang","isDark","isDesktop","gridLines","chartWidth","chartHeight","xLabelsSize","yLabelSize","yLabelMarinTop","down","up","valueAtRiskChart","points","sort","a","b","pips","map","point","percent","maxDown","Math","max","minUp","min","animation","title","left","top","text","textStyle","fontWeight","fontSize","xAxis","type","name","toUpperCase","nameLocation","splitNumber","nameGap","axisLine","show","axisTick","axisLabel","padding","margin","showMaxLabel","showMinLabel","hideOverlap","formatter","value","toFixed","axisPointer","label","_ref","yAxis","inverse","nameRotate","position","rich","index","concat","precision","visualMap","dimension","pieces","lt","average","color","orange","raspberryLight","colorAlpha","gte","median","bottleGreenDark","greenLight","series","symbol","areaStyle","origin","opacity","lineStyle","emphasis","disabled","data","markLine","silent","white","width","threshold","borderPrimary","markPoint","itemStyle","borderWidth","borderColor","symbolSize","gold","turquoiseLight","violetLight","grid","right","bottom","graphic","shape","x1","y1","x2","y2"],"sources":["../../../../../src/ValueAtRiskWidget/components/Chart/getOption.ts"],"sourcesContent":["import {\n colorPalette,\n darkTheme,\n getGridLines,\n getLineCommons,\n lightTheme,\n} from '@oanda/labs-widget-common';\nimport {\n CHART_WIDTH,\n CHART_HEIGHT,\n X_LABEL_SIZE,\n Y_LABEL_SIZE_DESKTOP,\n TITLE_HEIGHT,\n Y_LABEL_SIZE_MOBILE,\n} from './constants';\nimport { GetOptionType } from './types';\nimport { getPercentValueByPips } from './getPercentValueByPips';\n\nexport const getOption: GetOptionType = (values, lang, isDark, isDesktop) => {\n const gridLines = getGridLines({\n isDark,\n chartWidth: CHART_WIDTH,\n chartHeight: CHART_HEIGHT,\n xLabelsSize: X_LABEL_SIZE - Y_LABEL_SIZE_DESKTOP,\n yLabelSize: isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE,\n yLabelMarinTop: isDesktop ? 0 : TITLE_HEIGHT,\n });\n\n const { down, up } = values!.valueAtRiskChart!;\n\n const points = [...up.points!, ...down.points!]\n .sort((a, b) => a.pips - b.pips)\n .map((point) => [point.pips, point.percent * 100]);\n\n const maxDown = Math.max(...down.points!.map((point) => point.pips));\n const minUp = Math.min(...up.points!.map((point) => point.pips));\n\n return {\n animation: false,\n title: {\n left: 16,\n top: 10,\n text: lang('daily'),\n textStyle: {\n fontWeight: 500,\n fontSize: 20,\n },\n },\n xAxis: {\n type: 'value',\n name: lang('pips').toUpperCase(),\n nameLocation: 'middle',\n splitNumber: isDesktop ? 8 : 4,\n nameGap: 32,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n padding: 0,\n margin: 12,\n showMaxLabel: false,\n showMinLabel: false,\n hideOverlap: true,\n formatter: (value) => value.toFixed(),\n },\n axisPointer: {\n label: {\n margin: 7,\n formatter: ({ value }) => (value as number).toFixed(),\n },\n },\n },\n yAxis: {\n name: lang('distribution').toUpperCase(),\n type: 'value',\n inverse: true,\n nameLocation: 'middle',\n nameGap: isDesktop ? 40 : 30,\n nameRotate: -90,\n position: 'right',\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n padding: 0,\n margin: isDesktop ? 12 : 4,\n rich: {\n a: {\n padding: isDesktop ? [0, 0, 0, 0] : [20, 0, 0, 0],\n },\n },\n formatter: (value, index) => (index ? `${value}%` : `{a|${value}%}`),\n\n },\n axisPointer: {\n label: {\n precision: 0,\n padding: isDesktop ? [4, 10, 4, 10] : 4,\n formatter: '{value}%',\n },\n },\n },\n axisPointer: {\n show: true,\n type: 'line',\n },\n visualMap: {\n type: 'piecewise',\n show: false,\n dimension: 0,\n pieces: [\n {\n lt: down.average,\n color: isDark ? colorPalette.orange : colorPalette.raspberryLight,\n colorAlpha: 0.5,\n },\n {\n gte: down.average,\n lt: down.median,\n color: isDark ? colorPalette.orange : colorPalette.raspberryLight,\n colorAlpha: 0.6,\n },\n {\n gte: down.median,\n lt: maxDown,\n color: isDark ? colorPalette.orange : colorPalette.raspberryLight,\n colorAlpha: 0.75,\n },\n {\n gte: minUp,\n lt: up.median,\n color: isDark\n ? colorPalette.bottleGreenDark\n : colorPalette.greenLight,\n colorAlpha: 0.75,\n },\n {\n gte: up.median,\n lt: up.average,\n color: isDark\n ? colorPalette.bottleGreenDark\n : colorPalette.greenLight,\n colorAlpha: 0.6,\n },\n {\n gte: up.average,\n color: isDark\n ? colorPalette.bottleGreenDark\n : colorPalette.greenLight,\n colorAlpha: 0.5,\n },\n ],\n },\n series: [\n {\n name: 'main',\n type: 'line',\n symbol: 'none',\n areaStyle: {\n origin: 'end',\n opacity: 1,\n },\n lineStyle: {\n opacity: 1,\n },\n emphasis: {\n disabled: true,\n },\n data: points,\n markLine: {\n silent: true,\n symbol: ['none', 'none'],\n label: {\n show: false,\n },\n lineStyle: {\n color: isDark ? colorPalette.white : colorPalette.bottleGreenDark,\n width: 1,\n },\n data: [\n {\n xAxis: down.median,\n lineStyle: {\n type: [2, 2],\n },\n },\n {\n xAxis: down.average,\n lineStyle: {\n type: [4, 5],\n },\n },\n {\n xAxis: down.threshold,\n lineStyle: {\n type: [6, 2],\n },\n },\n {\n xAxis: down.max,\n lineStyle: {\n type: 'solid',\n color: isDark\n ? darkTheme.borderPrimary\n : lightTheme.borderPrimary,\n },\n },\n {\n xAxis: up.median,\n lineStyle: {\n type: [2, 2],\n },\n },\n {\n xAxis: up.average,\n lineStyle: {\n type: [4, 5],\n },\n },\n {\n xAxis: up.threshold,\n lineStyle: {\n type: [6, 2],\n },\n },\n {\n xAxis: up.max,\n lineStyle: {\n type: 'solid',\n color: isDark\n ? darkTheme.borderPrimary\n : lightTheme.borderPrimary,\n },\n },\n ],\n },\n markPoint: {\n animation: false,\n silent: true,\n itemStyle: {\n borderWidth: 1,\n borderColor: colorPalette.white,\n },\n label: {\n show: false,\n },\n data: [\n {\n name: 'Mark point Down average',\n xAxis: down.average,\n yAxis: getPercentValueByPips(down.average, points),\n symbol: 'circle',\n symbolSize: 9,\n itemStyle: {\n color: colorPalette.gold,\n },\n },\n {\n name: 'Mark point Down median',\n xAxis: down.median,\n yAxis: getPercentValueByPips(down.median, points),\n symbol: 'circle',\n symbolSize: 9,\n itemStyle: {\n color: colorPalette.turquoiseLight,\n },\n },\n {\n name: 'Mark point Down threshold',\n xAxis: down.threshold,\n yAxis: getPercentValueByPips(down.threshold, points),\n symbol: 'circle',\n symbolSize: 9,\n itemStyle: {\n color: colorPalette.violetLight,\n },\n },\n {\n name: 'Mark point up average',\n xAxis: up.average,\n yAxis: getPercentValueByPips(up.average, points),\n symbol: 'rectangle',\n symbolSize: 8,\n itemStyle: {\n color: colorPalette.gold,\n },\n },\n {\n name: 'Mark point up median',\n xAxis: up.median,\n yAxis: getPercentValueByPips(up.median, points),\n symbol: 'rectangle',\n symbolSize: 8,\n itemStyle: {\n color: colorPalette.turquoiseLight,\n },\n },\n {\n name: 'Mark point up threshold',\n xAxis: up.threshold,\n yAxis: getPercentValueByPips(up.threshold, points),\n symbol: 'rectangle',\n symbolSize: 8,\n itemStyle: {\n color: colorPalette.violetLight,\n },\n },\n ],\n },\n },\n ],\n grid: [\n {\n name: 'main-grid',\n top: `${TITLE_HEIGHT}px`,\n left: '0px',\n right: `${isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE}px`,\n bottom: `${X_LABEL_SIZE}px`,\n },\n ],\n graphic: [\n ...gridLines,\n {\n ...getLineCommons(isDark),\n top: TITLE_HEIGHT - 2,\n right: -2,\n shape: {\n x1: 0,\n y1: 0,\n x2: isDesktop ? 0 : Y_LABEL_SIZE_MOBILE,\n y2: 0,\n },\n },\n ],\n };\n};\n"],"mappings":"AAAA,SACEA,YAAY,EACZC,SAAS,EACTC,YAAY,EACZC,cAAc,EACdC,UAAU,QACL,2BAA2B;AAClC,SACEC,WAAW,EACXC,YAAY,EACZC,YAAY,EACZC,oBAAoB,EACpBC,YAAY,EACZC,mBAAmB,QACd,aAAa;AAEpB,SAASC,qBAAqB,QAAQ,yBAAyB;AAE/D,OAAO,MAAMC,SAAwB,GAAGA,CAACC,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAEC,SAAS,KAAK;EAC3E,MAAMC,SAAS,GAAGf,YAAY,CAAC;IAC7Ba,MAAM;IACNG,UAAU,EAAEb,WAAW;IACvBc,WAAW,EAAEb,YAAY;IACzBc,WAAW,EAAEb,YAAY,GAAGC,oBAAoB;IAChDa,UAAU,EAAEL,SAAS,GAAGR,oBAAoB,GAAGE,mBAAmB;IAClEY,cAAc,EAAEN,SAAS,GAAG,CAAC,GAAGP;EAClC,CAAC,CAAC;EAEF,MAAM;IAAEc,IAAI;IAAEC;EAAG,CAAC,GAAGX,MAAM,CAAEY,gBAAiB;EAE9C,MAAMC,MAAM,GAAG,CAAC,GAAGF,EAAE,CAACE,MAAO,EAAE,GAAGH,IAAI,CAACG,MAAO,CAAC,CAC5CC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,IAAI,GAAGD,CAAC,CAACC,IAAI,CAAC,CAC/BC,GAAG,CAAEC,KAAK,IAAK,CAACA,KAAK,CAACF,IAAI,EAAEE,KAAK,CAACC,OAAO,GAAG,GAAG,CAAC,CAAC;EAEpD,MAAMC,OAAO,GAAGC,IAAI,CAACC,GAAG,CAAC,GAAGb,IAAI,CAACG,MAAM,CAAEK,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACF,IAAI,CAAC,CAAC;EACpE,MAAMO,KAAK,GAAGF,IAAI,CAACG,GAAG,CAAC,GAAGd,EAAE,CAACE,MAAM,CAAEK,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACF,IAAI,CAAC,CAAC;EAEhE,OAAO;IACLS,SAAS,EAAE,KAAK;IAChBC,KAAK,EAAE;MACLC,IAAI,EAAE,EAAE;MACRC,GAAG,EAAE,EAAE;MACPC,IAAI,EAAE7B,IAAI,CAAC,OAAO,CAAC;MACnB8B,SAAS,EAAE;QACTC,UAAU,EAAE,GAAG;QACfC,QAAQ,EAAE;MACZ;IACF,CAAC;IACDC,KAAK,EAAE;MACLC,IAAI,EAAE,OAAO;MACbC,IAAI,EAAEnC,IAAI,CAAC,MAAM,CAAC,CAACoC,WAAW,CAAC,CAAC;MAChCC,YAAY,EAAE,QAAQ;MACtBC,WAAW,EAAEpC,SAAS,GAAG,CAAC,GAAG,CAAC;MAC9BqC,OAAO,EAAE,EAAE;MACXC,QAAQ,EAAE;QAAEC,IAAI,EAAE;MAAM,CAAC;MACzBC,QAAQ,EAAE;QAAED,IAAI,EAAE;MAAM,CAAC;MACzBE,SAAS,EAAE;QACTC,OAAO,EAAE,CAAC;QACVC,MAAM,EAAE,EAAE;QACVC,YAAY,EAAE,KAAK;QACnBC,YAAY,EAAE,KAAK;QACnBC,WAAW,EAAE,IAAI;QACjBC,SAAS,EAAGC,KAAK,IAAKA,KAAK,CAACC,OAAO,CAAC;MACtC,CAAC;MACDC,WAAW,EAAE;QACXC,KAAK,EAAE;UACLR,MAAM,EAAE,CAAC;UACTI,SAAS,EAAEK,IAAA;YAAA,IAAC;cAAEJ;YAAM,CAAC,GAAAI,IAAA;YAAA,OAAMJ,KAAK,CAAYC,OAAO,CAAC,CAAC;UAAA;QACvD;MACF;IACF,CAAC;IACDI,KAAK,EAAE;MACLpB,IAAI,EAAEnC,IAAI,CAAC,cAAc,CAAC,CAACoC,WAAW,CAAC,CAAC;MACxCF,IAAI,EAAE,OAAO;MACbsB,OAAO,EAAE,IAAI;MACbnB,YAAY,EAAE,QAAQ;MACtBE,OAAO,EAAErC,SAAS,GAAG,EAAE,GAAG,EAAE;MAC5BuD,UAAU,EAAE,CAAC,EAAE;MACfC,QAAQ,EAAE,OAAO;MACjBlB,QAAQ,EAAE;QAAEC,IAAI,EAAE;MAAM,CAAC;MACzBC,QAAQ,EAAE;QAAED,IAAI,EAAE;MAAM,CAAC;MACzBE,SAAS,EAAE;QACTC,OAAO,EAAE,CAAC;QACVC,MAAM,EAAE3C,SAAS,GAAG,EAAE,GAAG,CAAC;QAC1ByD,IAAI,EAAE;UACJ7C,CAAC,EAAE;YACD8B,OAAO,EAAE1C,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;UAClD;QACF,CAAC;QACD+C,SAAS,EAAEA,CAACC,KAAK,EAAEU,KAAK,KAAMA,KAAK,MAAAC,MAAA,CAAMX,KAAK,eAAAW,MAAA,CAAYX,KAAK;MAEjE,CAAC;MACDE,WAAW,EAAE;QACXC,KAAK,EAAE;UACLS,SAAS,EAAE,CAAC;UACZlB,OAAO,EAAE1C,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;UACvC+C,SAAS,EAAE;QACb;MACF;IACF,CAAC;IACDG,WAAW,EAAE;MACXX,IAAI,EAAE,IAAI;MACVP,IAAI,EAAE;IACR,CAAC;IACD6B,SAAS,EAAE;MACT7B,IAAI,EAAE,WAAW;MACjBO,IAAI,EAAE,KAAK;MACXuB,SAAS,EAAE,CAAC;MACZC,MAAM,EAAE,CACN;QACEC,EAAE,EAAEzD,IAAI,CAAC0D,OAAO;QAChBC,KAAK,EAAEnE,MAAM,GAAGf,YAAY,CAACmF,MAAM,GAAGnF,YAAY,CAACoF,cAAc;QACjEC,UAAU,EAAE;MACd,CAAC,EACD;QACEC,GAAG,EAAE/D,IAAI,CAAC0D,OAAO;QACjBD,EAAE,EAAEzD,IAAI,CAACgE,MAAM;QACfL,KAAK,EAAEnE,MAAM,GAAGf,YAAY,CAACmF,MAAM,GAAGnF,YAAY,CAACoF,cAAc;QACjEC,UAAU,EAAE;MACd,CAAC,EACD;QACEC,GAAG,EAAE/D,IAAI,CAACgE,MAAM;QAChBP,EAAE,EAAE9C,OAAO;QACXgD,KAAK,EAAEnE,MAAM,GAAGf,YAAY,CAACmF,MAAM,GAAGnF,YAAY,CAACoF,cAAc;QACjEC,UAAU,EAAE;MACd,CAAC,EACD;QACEC,GAAG,EAAEjD,KAAK;QACV2C,EAAE,EAAExD,EAAE,CAAC+D,MAAM;QACbL,KAAK,EAAEnE,MAAM,GACTf,YAAY,CAACwF,eAAe,GAC5BxF,YAAY,CAACyF,UAAU;QAC3BJ,UAAU,EAAE;MACd,CAAC,EACD;QACEC,GAAG,EAAE9D,EAAE,CAAC+D,MAAM;QACdP,EAAE,EAAExD,EAAE,CAACyD,OAAO;QACdC,KAAK,EAAEnE,MAAM,GACTf,YAAY,CAACwF,eAAe,GAC5BxF,YAAY,CAACyF,UAAU;QAC3BJ,UAAU,EAAE;MACd,CAAC,EACD;QACEC,GAAG,EAAE9D,EAAE,CAACyD,OAAO;QACfC,KAAK,EAAEnE,MAAM,GACTf,YAAY,CAACwF,eAAe,GAC5BxF,YAAY,CAACyF,UAAU;QAC3BJ,UAAU,EAAE;MACd,CAAC;IAEL,CAAC;IACDK,MAAM,EAAE,CACN;MACEzC,IAAI,EAAE,MAAM;MACZD,IAAI,EAAE,MAAM;MACZ2C,MAAM,EAAE,MAAM;MACdC,SAAS,EAAE;QACTC,MAAM,EAAE,KAAK;QACbC,OAAO,EAAE;MACX,CAAC;MACDC,SAAS,EAAE;QACTD,OAAO,EAAE;MACX,CAAC;MACDE,QAAQ,EAAE;QACRC,QAAQ,EAAE;MACZ,CAAC;MACDC,IAAI,EAAExE,MAAM;MACZyE,QAAQ,EAAE;QACRC,MAAM,EAAE,IAAI;QACZT,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACxBxB,KAAK,EAAE;UACLZ,IAAI,EAAE;QACR,CAAC;QACDwC,SAAS,EAAE;UACTb,KAAK,EAAEnE,MAAM,GAAGf,YAAY,CAACqG,KAAK,GAAGrG,YAAY,CAACwF,eAAe;UACjEc,KAAK,EAAE;QACT,CAAC;QACDJ,IAAI,EAAE,CACJ;UACEnD,KAAK,EAAExB,IAAI,CAACgE,MAAM;UAClBQ,SAAS,EAAE;YACT/C,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;UACb;QACF,CAAC,EACD;UACED,KAAK,EAAExB,IAAI,CAAC0D,OAAO;UACnBc,SAAS,EAAE;YACT/C,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;UACb;QACF,CAAC,EACD;UACED,KAAK,EAAExB,IAAI,CAACgF,SAAS;UACrBR,SAAS,EAAE;YACT/C,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;UACb;QACF,CAAC,EACD;UACED,KAAK,EAAExB,IAAI,CAACa,GAAG;UACf2D,SAAS,EAAE;YACT/C,IAAI,EAAE,OAAO;YACbkC,KAAK,EAAEnE,MAAM,GACTd,SAAS,CAACuG,aAAa,GACvBpG,UAAU,CAACoG;UACjB;QACF,CAAC,EACD;UACEzD,KAAK,EAAEvB,EAAE,CAAC+D,MAAM;UAChBQ,SAAS,EAAE;YACT/C,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;UACb;QACF,CAAC,EACD;UACED,KAAK,EAAEvB,EAAE,CAACyD,OAAO;UACjBc,SAAS,EAAE;YACT/C,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;UACb;QACF,CAAC,EACD;UACED,KAAK,EAAEvB,EAAE,CAAC+E,SAAS;UACnBR,SAAS,EAAE;YACT/C,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;UACb;QACF,CAAC,EACD;UACED,KAAK,EAAEvB,EAAE,CAACY,GAAG;UACb2D,SAAS,EAAE;YACT/C,IAAI,EAAE,OAAO;YACbkC,KAAK,EAAEnE,MAAM,GACTd,SAAS,CAACuG,aAAa,GACvBpG,UAAU,CAACoG;UACjB;QACF,CAAC;MAEL,CAAC;MACDC,SAAS,EAAE;QACTlE,SAAS,EAAE,KAAK;QAChB6D,MAAM,EAAE,IAAI;QACZM,SAAS,EAAE;UACTC,WAAW,EAAE,CAAC;UACdC,WAAW,EAAE5G,YAAY,CAACqG;QAC5B,CAAC;QACDlC,KAAK,EAAE;UACLZ,IAAI,EAAE;QACR,CAAC;QACD2C,IAAI,EAAE,CACJ;UACEjD,IAAI,EAAE,yBAAyB;UAC/BF,KAAK,EAAExB,IAAI,CAAC0D,OAAO;UACnBZ,KAAK,EAAE1D,qBAAqB,CAACY,IAAI,CAAC0D,OAAO,EAAEvD,MAAM,CAAC;UAClDiE,MAAM,EAAE,QAAQ;UAChBkB,UAAU,EAAE,CAAC;UACbH,SAAS,EAAE;YACTxB,KAAK,EAAElF,YAAY,CAAC8G;UACtB;QACF,CAAC,EACD;UACE7D,IAAI,EAAE,wBAAwB;UAC9BF,KAAK,EAAExB,IAAI,CAACgE,MAAM;UAClBlB,KAAK,EAAE1D,qBAAqB,CAACY,IAAI,CAACgE,MAAM,EAAE7D,MAAM,CAAC;UACjDiE,MAAM,EAAE,QAAQ;UAChBkB,UAAU,EAAE,CAAC;UACbH,SAAS,EAAE;YACTxB,KAAK,EAAElF,YAAY,CAAC+G;UACtB;QACF,CAAC,EACD;UACE9D,IAAI,EAAE,2BAA2B;UACjCF,KAAK,EAAExB,IAAI,CAACgF,SAAS;UACrBlC,KAAK,EAAE1D,qBAAqB,CAACY,IAAI,CAACgF,SAAS,EAAE7E,MAAM,CAAC;UACpDiE,MAAM,EAAE,QAAQ;UAChBkB,UAAU,EAAE,CAAC;UACbH,SAAS,EAAE;YACTxB,KAAK,EAAElF,YAAY,CAACgH;UACtB;QACF,CAAC,EACD;UACE/D,IAAI,EAAE,uBAAuB;UAC7BF,KAAK,EAAEvB,EAAE,CAACyD,OAAO;UACjBZ,KAAK,EAAE1D,qBAAqB,CAACa,EAAE,CAACyD,OAAO,EAAEvD,MAAM,CAAC;UAChDiE,MAAM,EAAE,WAAW;UACnBkB,UAAU,EAAE,CAAC;UACbH,SAAS,EAAE;YACTxB,KAAK,EAAElF,YAAY,CAAC8G;UACtB;QACF,CAAC,EACD;UACE7D,IAAI,EAAE,sBAAsB;UAC5BF,KAAK,EAAEvB,EAAE,CAAC+D,MAAM;UAChBlB,KAAK,EAAE1D,qBAAqB,CAACa,EAAE,CAAC+D,MAAM,EAAE7D,MAAM,CAAC;UAC/CiE,MAAM,EAAE,WAAW;UACnBkB,UAAU,EAAE,CAAC;UACbH,SAAS,EAAE;YACTxB,KAAK,EAAElF,YAAY,CAAC+G;UACtB;QACF,CAAC,EACD;UACE9D,IAAI,EAAE,yBAAyB;UAC/BF,KAAK,EAAEvB,EAAE,CAAC+E,SAAS;UACnBlC,KAAK,EAAE1D,qBAAqB,CAACa,EAAE,CAAC+E,SAAS,EAAE7E,MAAM,CAAC;UAClDiE,MAAM,EAAE,WAAW;UACnBkB,UAAU,EAAE,CAAC;UACbH,SAAS,EAAE;YACTxB,KAAK,EAAElF,YAAY,CAACgH;UACtB;QACF,CAAC;MAEL;IACF,CAAC,CACF;IACDC,IAAI,EAAE,CACJ;MACEhE,IAAI,EAAE,WAAW;MACjBP,GAAG,KAAAiC,MAAA,CAAKlE,YAAY,OAAI;MACxBgC,IAAI,EAAE,KAAK;MACXyE,KAAK,KAAAvC,MAAA,CAAK3D,SAAS,GAAGR,oBAAoB,GAAGE,mBAAmB,OAAI;MACpEyG,MAAM,KAAAxC,MAAA,CAAKpE,YAAY;IACzB,CAAC,CACF;IACD6G,OAAO,EAAE,CACP,GAAGnG,SAAS,EACZ;MACE,GAAGd,cAAc,CAACY,MAAM,CAAC;MACzB2B,GAAG,EAAEjC,YAAY,GAAG,CAAC;MACrByG,KAAK,EAAE,CAAC,CAAC;MACTG,KAAK,EAAE;QACLC,EAAE,EAAE,CAAC;QACLC,EAAE,EAAE,CAAC;QACLC,EAAE,EAAExG,SAAS,GAAG,CAAC,GAAGN,mBAAmB;QACvC+G,EAAE,EAAE;MACN;IACF,CAAC;EAEL,CAAC;AACH,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"getOption.js","names":["colorPalette","darkTheme","getGridLines","getLineCommons","lightTheme","CHART_WIDTH","CHART_HEIGHT","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","TITLE_HEIGHT","Y_LABEL_SIZE_MOBILE","getPercentValueByPips","getOption","values","lang","isDark","isDesktop","gridLines","chartWidth","chartHeight","xLabelsSize","yLabelSize","yLabelMarinTop","down","up","valueAtRiskChart","points","sort","a","b","pips","map","point","percent","maxDown","Math","max","minUp","min","animation","title","left","top","text","textStyle","fontWeight","fontSize","xAxis","type","name","toUpperCase","nameLocation","splitNumber","nameGap","axisLine","show","axisTick","axisLabel","padding","margin","showMaxLabel","showMinLabel","hideOverlap","formatter","value","toFixed","axisPointer","label","_ref","yAxis","inverse","nameRotate","position","rich","index","precision","visualMap","dimension","pieces","lt","average","color","orange","raspberryLight","colorAlpha","gte","median","bottleGreenDark","greenLight","series","symbol","areaStyle","origin","opacity","lineStyle","emphasis","disabled","data","markLine","silent","white","width","threshold","borderPrimary","markPoint","itemStyle","borderWidth","borderColor","symbolSize","gold","turquoiseLight","violetLight","grid","right","bottom","graphic","shape","x1","y1","x2","y2"],"sources":["../../../../../src/ValueAtRiskWidget/components/Chart/getOption.ts"],"sourcesContent":["import {\n colorPalette,\n darkTheme,\n getGridLines,\n getLineCommons,\n lightTheme,\n} from '@oanda/labs-widget-common';\nimport {\n CHART_WIDTH,\n CHART_HEIGHT,\n X_LABEL_SIZE,\n Y_LABEL_SIZE_DESKTOP,\n TITLE_HEIGHT,\n Y_LABEL_SIZE_MOBILE,\n} from './constants';\nimport { GetOptionType } from './types';\nimport { getPercentValueByPips } from './getPercentValueByPips';\n\nexport const getOption: GetOptionType = (values, lang, isDark, isDesktop) => {\n const gridLines = getGridLines({\n isDark,\n chartWidth: CHART_WIDTH,\n chartHeight: CHART_HEIGHT,\n xLabelsSize: X_LABEL_SIZE - Y_LABEL_SIZE_DESKTOP,\n yLabelSize: isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE,\n yLabelMarinTop: isDesktop ? 0 : TITLE_HEIGHT,\n });\n\n const { down, up } = values!.valueAtRiskChart!;\n\n const points = [...up.points!, ...down.points!]\n .sort((a, b) => a.pips - b.pips)\n .map((point) => [point.pips, point.percent * 100]);\n\n const maxDown = Math.max(...down.points!.map((point) => point.pips));\n const minUp = Math.min(...up.points!.map((point) => point.pips));\n\n return {\n animation: false,\n title: {\n left: 16,\n top: 10,\n text: lang('daily'),\n textStyle: {\n fontWeight: 500,\n fontSize: 20,\n },\n },\n xAxis: {\n type: 'value',\n name: lang('pips').toUpperCase(),\n nameLocation: 'middle',\n splitNumber: isDesktop ? 8 : 4,\n nameGap: 32,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n padding: 0,\n margin: 12,\n showMaxLabel: false,\n showMinLabel: false,\n hideOverlap: true,\n formatter: (value) => value.toFixed(),\n },\n axisPointer: {\n label: {\n margin: 7,\n formatter: ({ value }) => (value as number).toFixed(),\n },\n },\n },\n yAxis: {\n name: lang('distribution').toUpperCase(),\n type: 'value',\n inverse: true,\n nameLocation: 'middle',\n nameGap: isDesktop ? 40 : 30,\n nameRotate: -90,\n position: 'right',\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n padding: 0,\n margin: isDesktop ? 12 : 4,\n rich: {\n a: {\n padding: isDesktop ? [0, 0, 0, 0] : [20, 0, 0, 0],\n },\n },\n formatter: (value, index) => (index ? `${value}%` : `{a|${value}%}`),\n\n },\n axisPointer: {\n label: {\n precision: 0,\n padding: isDesktop ? [4, 10, 4, 10] : 4,\n formatter: '{value}%',\n },\n },\n },\n axisPointer: {\n show: true,\n type: 'line',\n },\n visualMap: {\n type: 'piecewise',\n show: false,\n dimension: 0,\n pieces: [\n {\n lt: down.average,\n color: isDark ? colorPalette.orange : colorPalette.raspberryLight,\n colorAlpha: 0.5,\n },\n {\n gte: down.average,\n lt: down.median,\n color: isDark ? colorPalette.orange : colorPalette.raspberryLight,\n colorAlpha: 0.6,\n },\n {\n gte: down.median,\n lt: maxDown,\n color: isDark ? colorPalette.orange : colorPalette.raspberryLight,\n colorAlpha: 0.75,\n },\n {\n gte: minUp,\n lt: up.median,\n color: isDark\n ? colorPalette.bottleGreenDark\n : colorPalette.greenLight,\n colorAlpha: 0.75,\n },\n {\n gte: up.median,\n lt: up.average,\n color: isDark\n ? colorPalette.bottleGreenDark\n : colorPalette.greenLight,\n colorAlpha: 0.6,\n },\n {\n gte: up.average,\n color: isDark\n ? colorPalette.bottleGreenDark\n : colorPalette.greenLight,\n colorAlpha: 0.5,\n },\n ],\n },\n series: [\n {\n name: 'main',\n type: 'line',\n symbol: 'none',\n areaStyle: {\n origin: 'end',\n opacity: 1,\n },\n lineStyle: {\n opacity: 1,\n },\n emphasis: {\n disabled: true,\n },\n data: points,\n markLine: {\n silent: true,\n symbol: ['none', 'none'],\n label: {\n show: false,\n },\n lineStyle: {\n color: isDark ? colorPalette.white : colorPalette.bottleGreenDark,\n width: 1,\n },\n data: [\n {\n xAxis: down.median,\n lineStyle: {\n type: [2, 2],\n },\n },\n {\n xAxis: down.average,\n lineStyle: {\n type: [4, 5],\n },\n },\n {\n xAxis: down.threshold,\n lineStyle: {\n type: [6, 2],\n },\n },\n {\n xAxis: down.max,\n lineStyle: {\n type: 'solid',\n color: isDark\n ? darkTheme.borderPrimary\n : lightTheme.borderPrimary,\n },\n },\n {\n xAxis: up.median,\n lineStyle: {\n type: [2, 2],\n },\n },\n {\n xAxis: up.average,\n lineStyle: {\n type: [4, 5],\n },\n },\n {\n xAxis: up.threshold,\n lineStyle: {\n type: [6, 2],\n },\n },\n {\n xAxis: up.max,\n lineStyle: {\n type: 'solid',\n color: isDark\n ? darkTheme.borderPrimary\n : lightTheme.borderPrimary,\n },\n },\n ],\n },\n markPoint: {\n animation: false,\n silent: true,\n itemStyle: {\n borderWidth: 1,\n borderColor: colorPalette.white,\n },\n label: {\n show: false,\n },\n data: [\n {\n name: 'Mark point Down average',\n xAxis: down.average,\n yAxis: getPercentValueByPips(down.average, points),\n symbol: 'circle',\n symbolSize: 9,\n itemStyle: {\n color: colorPalette.gold,\n },\n },\n {\n name: 'Mark point Down median',\n xAxis: down.median,\n yAxis: getPercentValueByPips(down.median, points),\n symbol: 'circle',\n symbolSize: 9,\n itemStyle: {\n color: colorPalette.turquoiseLight,\n },\n },\n {\n name: 'Mark point Down threshold',\n xAxis: down.threshold,\n yAxis: getPercentValueByPips(down.threshold, points),\n symbol: 'circle',\n symbolSize: 9,\n itemStyle: {\n color: colorPalette.violetLight,\n },\n },\n {\n name: 'Mark point up average',\n xAxis: up.average,\n yAxis: getPercentValueByPips(up.average, points),\n symbol: 'rectangle',\n symbolSize: 8,\n itemStyle: {\n color: colorPalette.gold,\n },\n },\n {\n name: 'Mark point up median',\n xAxis: up.median,\n yAxis: getPercentValueByPips(up.median, points),\n symbol: 'rectangle',\n symbolSize: 8,\n itemStyle: {\n color: colorPalette.turquoiseLight,\n },\n },\n {\n name: 'Mark point up threshold',\n xAxis: up.threshold,\n yAxis: getPercentValueByPips(up.threshold, points),\n symbol: 'rectangle',\n symbolSize: 8,\n itemStyle: {\n color: colorPalette.violetLight,\n },\n },\n ],\n },\n },\n ],\n grid: [\n {\n name: 'main-grid',\n top: `${TITLE_HEIGHT}px`,\n left: '0px',\n right: `${isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE}px`,\n bottom: `${X_LABEL_SIZE}px`,\n },\n ],\n graphic: [\n ...gridLines,\n {\n ...getLineCommons(isDark),\n top: TITLE_HEIGHT - 2,\n right: -2,\n shape: {\n x1: 0,\n y1: 0,\n x2: isDesktop ? 0 : Y_LABEL_SIZE_MOBILE,\n y2: 0,\n },\n },\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashedLine.js","names":["React","colorPalette","DashedLine","_ref","strokeDasharray","width","isDark","createElement","className","height","viewBox","
|
|
1
|
+
{"version":3,"file":"DashedLine.js","names":["React","colorPalette","DashedLine","_ref","strokeDasharray","width","isDark","createElement","className","height","viewBox","fill","xmlns","stroke","white","bottleGreenDark","x1","y1","x2","y2"],"sources":["../../../../../src/ValueAtRiskWidget/components/Legend/DashedLine.tsx"],"sourcesContent":["import React from 'react';\nimport { colorPalette } from '@oanda/labs-widget-common';\nimport {\n DashedLineProps,\n} from './types';\n\nconst DashedLine = ({ strokeDasharray, width = '30', isDark }: DashedLineProps) => (\n <svg className=\"lw-inline\" width={width} height=\"2\" viewBox={`0 0 ${width} 2`} fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <line\n stroke={isDark ? colorPalette.white : colorPalette.bottleGreenDark}\n x1=\"0\"\n y1=\"1\"\n x2={width}\n y2=\"1\"\n strokeDasharray={strokeDasharray}\n />\n </svg>\n);\n\nexport { DashedLine };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,QAAQ,2BAA2B;AAKxD,MAAMC,UAAU,GAAGC,IAAA;EAAA,IAAC;IAAEC,eAAe;IAAEC,KAAK,GAAG,IAAI;IAAEC;EAAwB,CAAC,GAAAH,IAAA;EAAA,OAC5EH,KAAA,CAAAO,aAAA;IAAKC,SAAS,EAAC,WAAW;IAACH,KAAK,EAAEA,KAAM;IAACI,MAAM,EAAC,GAAG;IAACC,OAAO,EAAE,OAAOL,KAAK,IAAK;IAACM,IAAI,EAAC,MAAM;IAACC,KAAK,EAAC;EAA4B,GAC3HZ,KAAA,CAAAO,aAAA;IACEM,MAAM,EAAEP,MAAM,GAAGL,YAAY,CAACa,KAAK,GAAGb,YAAY,CAACc,eAAgB;IACnEC,EAAE,EAAC,GAAG;IACNC,EAAE,EAAC,GAAG;IACNC,EAAE,EAAEb,KAAM;IACVc,EAAE,EAAC,GAAG;IACNf,eAAe,EAAEA;EAAgB,CAClC,CACE,CAAC;AAAA,CACP;AAED,SAASF,UAAU","ignoreList":[]}
|
|
@@ -33,9 +33,9 @@ const DesktopLegend = _ref => {
|
|
|
33
33
|
})
|
|
34
34
|
}), React.createElement("span", {
|
|
35
35
|
className: "lw-px-2"
|
|
36
|
-
},
|
|
36
|
+
}, `${item.label}:`), React.createElement("span", {
|
|
37
37
|
className: "lw-grow lw-text-right"
|
|
38
|
-
},
|
|
38
|
+
}, `${item.value.toFixed()} ${lang('pips')}`))));
|
|
39
39
|
};
|
|
40
40
|
export { DesktopLegend };
|
|
41
41
|
//# sourceMappingURL=DesktopLegend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DesktopLegend.js","names":["React","classnames","DataNames","DashedLine","lineTypes","DesktopLegend","_ref","data","lang","isDark","createElement","className","value","map","item","key","id","MAX","MIN","strokeDasharray","AVERAGE","MEDIAN","THRESHOLD","
|
|
1
|
+
{"version":3,"file":"DesktopLegend.js","names":["React","classnames","DataNames","DashedLine","lineTypes","DesktopLegend","_ref","data","lang","isDark","createElement","className","value","map","item","key","id","MAX","MIN","strokeDasharray","AVERAGE","MEDIAN","THRESHOLD","label","toFixed"],"sources":["../../../../../src/ValueAtRiskWidget/components/Legend/DesktopLegend.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { DataNames, DesktopLegendProps } from './types';\nimport { DashedLine } from './DashedLine';\nimport { lineTypes } from './constants';\n\nconst DesktopLegend = ({ data, lang, isDark }: DesktopLegendProps) => (\n <div className={classnames('lw-pointer-events-none lw-absolute lw-top-[50px] lw-z-10 lw-p-2 lw-text-xs', {\n 'lw-left-[6px]': data[0].value < 0,\n 'lw-right-[66px]': data[0].value > 0,\n 'lw-bg-border-primary': isDark,\n 'lw-bg-bg-primary lw-shadow': !isDark,\n })}\n >\n {data.map((item) => (\n <div\n key={item.id}\n className={classnames('lw-flex lw-items-center', {\n '[&_line]:lw-stroke-border-disabled': item.id === DataNames.MAX || item.id === DataNames.MIN,\n })}\n >\n <DashedLine isDark={isDark} strokeDasharray={lineTypes[item.id]} />\n {item.id !== DataNames.MAX && item.id !== DataNames.MIN && (\n <div className={classnames('lw-ml-[-8px] lw-h-[8px] lw-w-[8px] lw-border-[1px] lw-border-white lw-bg-gold', {\n 'lw-rounded-full': item.value < 0,\n 'lw-bg-gold': item.id === DataNames.AVERAGE,\n 'lw-bg-turquoise-light': item.id === DataNames.MEDIAN,\n 'lw-bg-violet-light': item.id === DataNames.THRESHOLD,\n })}\n />\n )}\n <span className=\"lw-px-2\">\n {`${item.label}:`}\n </span>\n <span className=\"lw-grow lw-text-right\">\n {`${item.value.toFixed()} ${lang('pips')}`}\n </span>\n </div>\n ))}\n </div>\n);\n\nexport { DesktopLegend };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,SAAS,QAA4B,SAAS;AACvD,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,SAAS,QAAQ,aAAa;AAEvC,MAAMC,aAAa,GAAGC,IAAA;EAAA,IAAC;IAAEC,IAAI;IAAEC,IAAI;IAAEC;EAA2B,CAAC,GAAAH,IAAA;EAAA,OAC/DN,KAAA,CAAAU,aAAA;IAAKC,SAAS,EAAEV,UAAU,CAAC,6EAA6E,EAAE;MACxG,eAAe,EAAEM,IAAI,CAAC,CAAC,CAAC,CAACK,KAAK,GAAG,CAAC;MAClC,iBAAiB,EAAEL,IAAI,CAAC,CAAC,CAAC,CAACK,KAAK,GAAG,CAAC;MACpC,sBAAsB,EAAEH,MAAM;MAC9B,4BAA4B,EAAE,CAACA;IACjC,CAAC;EAAE,GAEAF,IAAI,CAACM,GAAG,CAAEC,IAAI,IACbd,KAAA,CAAAU,aAAA;IACEK,GAAG,EAAED,IAAI,CAACE,EAAG;IACbL,SAAS,EAAEV,UAAU,CAAC,yBAAyB,EAAE;MAC/C,oCAAoC,EAAEa,IAAI,CAACE,EAAE,KAAKd,SAAS,CAACe,GAAG,IAAIH,IAAI,CAACE,EAAE,KAAKd,SAAS,CAACgB;IAC3F,CAAC;EAAE,GAEHlB,KAAA,CAAAU,aAAA,CAACP,UAAU;IAACM,MAAM,EAAEA,MAAO;IAACU,eAAe,EAAEf,SAAS,CAACU,IAAI,CAACE,EAAE;EAAE,CAAE,CAAC,EAClEF,IAAI,CAACE,EAAE,KAAKd,SAAS,CAACe,GAAG,IAAIH,IAAI,CAACE,EAAE,KAAKd,SAAS,CAACgB,GAAG,IACrDlB,KAAA,CAAAU,aAAA;IAAKC,SAAS,EAAEV,UAAU,CAAC,+EAA+E,EAAE;MAC1G,iBAAiB,EAAEa,IAAI,CAACF,KAAK,GAAG,CAAC;MACjC,YAAY,EAAEE,IAAI,CAACE,EAAE,KAAKd,SAAS,CAACkB,OAAO;MAC3C,uBAAuB,EAAEN,IAAI,CAACE,EAAE,KAAKd,SAAS,CAACmB,MAAM;MACrD,oBAAoB,EAAEP,IAAI,CAACE,EAAE,KAAKd,SAAS,CAACoB;IAC9C,CAAC;EAAE,CACF,CACF,EACDtB,KAAA,CAAAU,aAAA;IAAMC,SAAS,EAAC;EAAS,GACtB,GAAGG,IAAI,CAACS,KAAK,GACV,CAAC,EACPvB,KAAA,CAAAU,aAAA;IAAMC,SAAS,EAAC;EAAuB,GACpC,GAAGG,IAAI,CAACF,KAAK,CAACY,OAAO,CAAC,CAAC,IAAIhB,IAAI,CAAC,MAAM,CAAC,EACpC,CACH,CACN,CACE,CAAC;AAAA,CACP;AAED,SAASH,aAAa","ignoreList":[]}
|
|
@@ -29,7 +29,7 @@ const Legend = _ref => {
|
|
|
29
29
|
value: data.valueAtRiskChart.down.median
|
|
30
30
|
}, {
|
|
31
31
|
id: DataNames.THRESHOLD,
|
|
32
|
-
label:
|
|
32
|
+
label: `${lang('threshold')} (95%)`,
|
|
33
33
|
value: data.valueAtRiskChart.down.threshold
|
|
34
34
|
}, {
|
|
35
35
|
id: DataNames.MIN,
|
|
@@ -49,7 +49,7 @@ const Legend = _ref => {
|
|
|
49
49
|
value: data.valueAtRiskChart.up.median
|
|
50
50
|
}, {
|
|
51
51
|
id: DataNames.THRESHOLD,
|
|
52
|
-
label:
|
|
52
|
+
label: `${lang('threshold')} (95%)`,
|
|
53
53
|
value: data.valueAtRiskChart.up.threshold
|
|
54
54
|
}, {
|
|
55
55
|
id: DataNames.MAX,
|
|
@@ -71,12 +71,12 @@ const Legend = _ref => {
|
|
|
71
71
|
valueUp: data.valueAtRiskChart.up.median
|
|
72
72
|
}, {
|
|
73
73
|
id: DataNames.THRESHOLD,
|
|
74
|
-
label:
|
|
74
|
+
label: `${lang('threshold')} (95%)`,
|
|
75
75
|
valueDown: data.valueAtRiskChart.down.threshold,
|
|
76
76
|
valueUp: data.valueAtRiskChart.up.threshold
|
|
77
77
|
}, {
|
|
78
78
|
id: DataNames.MAX,
|
|
79
|
-
label:
|
|
79
|
+
label: `${lang('min')}/${lang('max')}`,
|
|
80
80
|
valueDown: data.valueAtRiskChart.down.max,
|
|
81
81
|
valueUp: data.valueAtRiskChart.up.max
|
|
82
82
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Legend.js","names":["React","useContext","Size","ThemeContext","useLocale","DataNames","DesktopLegend","MobileLegend","Legend","_ref","data","size","isDark","lang","isDesktop","DESKTOP","createElement","Fragment","id","AVERAGE","label","value","valueAtRiskChart","down","average","MEDIAN","median","THRESHOLD","
|
|
1
|
+
{"version":3,"file":"Legend.js","names":["React","useContext","Size","ThemeContext","useLocale","DataNames","DesktopLegend","MobileLegend","Legend","_ref","data","size","isDark","lang","isDesktop","DESKTOP","createElement","Fragment","id","AVERAGE","label","value","valueAtRiskChart","down","average","MEDIAN","median","THRESHOLD","threshold","MIN","max","up","MAX","valueDown","valueUp"],"sources":["../../../../../src/ValueAtRiskWidget/components/Legend/Legend.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport {\n Size,\n ThemeContext,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport {\n DataNames, LegendProps,\n} from './types';\nimport { DesktopLegend } from './DesktopLegend';\nimport { MobileLegend } from './MobileLegend';\n\nconst Legend = ({ data }: LegendProps) => {\n const { size, isDark } = useContext(ThemeContext);\n const { lang } = useLocale();\n const isDesktop = size === Size.DESKTOP;\n\n return (\n <>\n {isDesktop ? (\n <>\n <DesktopLegend\n isDark={isDark}\n lang={lang}\n data={[\n {\n id: DataNames.AVERAGE,\n label: lang('average'),\n value: data.valueAtRiskChart!.down.average,\n },\n {\n id: DataNames.MEDIAN,\n label: lang('median'),\n value: data.valueAtRiskChart!.down.median,\n },\n {\n id: DataNames.THRESHOLD,\n label: `${lang('threshold')} (95%)`,\n value: data.valueAtRiskChart!.down.threshold,\n },\n {\n id: DataNames.MIN,\n label: lang('min'),\n value: data.valueAtRiskChart!.down.max,\n },\n ]}\n />\n <DesktopLegend\n isDark={isDark}\n lang={lang}\n data={[\n {\n id: DataNames.AVERAGE,\n label: lang('average'),\n value: data.valueAtRiskChart!.up.average,\n },\n {\n id: DataNames.MEDIAN,\n label: lang('median'),\n value: data.valueAtRiskChart!.up.median,\n },\n {\n id: DataNames.THRESHOLD,\n label: `${lang('threshold')} (95%)`,\n value: data.valueAtRiskChart!.up.threshold,\n },\n {\n id: DataNames.MAX,\n label: lang('max'),\n value: data.valueAtRiskChart!.up.max,\n },\n ]}\n />\n </>\n ) : (\n <MobileLegend\n isDark={isDark}\n lang={lang}\n data={[\n {\n id: DataNames.AVERAGE,\n label: lang('average'),\n valueDown: data.valueAtRiskChart!.down.average,\n valueUp: data.valueAtRiskChart!.up.average,\n },\n {\n id: DataNames.MEDIAN,\n label: lang('median'),\n valueDown: data.valueAtRiskChart!.down.median,\n valueUp: data.valueAtRiskChart!.up.median,\n },\n {\n id: DataNames.THRESHOLD,\n label: `${lang('threshold')} (95%)`,\n valueDown: data.valueAtRiskChart!.down.threshold,\n valueUp: data.valueAtRiskChart!.up.threshold,\n },\n {\n id: DataNames.MAX,\n label: `${lang('min')}/${lang('max')}`,\n valueDown: data.valueAtRiskChart!.down.max,\n valueUp: data.valueAtRiskChart!.up.max,\n },\n ]}\n />\n )}\n </>\n );\n};\n\nexport { Legend };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -39,11 +39,11 @@ const MobileLegend = _ref => {
|
|
|
39
39
|
})
|
|
40
40
|
})), React.createElement("span", {
|
|
41
41
|
className: "lw-flex-1 lw-px-2"
|
|
42
|
-
},
|
|
42
|
+
}, `${item.label}:`), React.createElement("span", {
|
|
43
43
|
className: "lw-flex-1 lw-text-right"
|
|
44
|
-
},
|
|
44
|
+
}, `${item.valueDown.toFixed()} ${lang('pips')}`), React.createElement("span", {
|
|
45
45
|
className: "lw-flex-1 lw-text-right"
|
|
46
|
-
},
|
|
46
|
+
}, `${item.valueUp.toFixed()} ${lang('pips')}`))));
|
|
47
47
|
};
|
|
48
48
|
export { MobileLegend };
|
|
49
49
|
//# sourceMappingURL=MobileLegend.js.map
|