@oanda/labs-value-at-risk-widget 1.0.25 → 1.0.27
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 +220 -0
- package/dist/main/ValueAtRiskWidget/ChartWithData.js +2 -3
- package/dist/main/ValueAtRiskWidget/ChartWithData.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/Main.js +1 -1
- package/dist/main/ValueAtRiskWidget/Main.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/MainWithData.js +1 -1
- package/dist/main/ValueAtRiskWidget/MainWithData.js.map +1 -1
- package/dist/main/ValueAtRiskWidget/ValueAtRiskWidget.js +1 -1
- package/dist/main/ValueAtRiskWidget/ValueAtRiskWidget.js.map +1 -1
- 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 +1 -1
- package/dist/main/ValueAtRiskWidget/render.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/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/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/gql/types/gql.d.ts +2 -2
- package/dist/types/gql/types/graphql.d.ts +2 -9
- package/package.json +3 -3
|
@@ -9,7 +9,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
9
9
|
var _types = require("./types");
|
|
10
10
|
var _DashedLine = require("./DashedLine");
|
|
11
11
|
var _constants = require("./constants");
|
|
12
|
-
function _interopRequireDefault(
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
const DesktopLegend = _ref => {
|
|
14
14
|
let {
|
|
15
15
|
data,
|
|
@@ -40,9 +40,9 @@ const DesktopLegend = _ref => {
|
|
|
40
40
|
})
|
|
41
41
|
}), _react.default.createElement("span", {
|
|
42
42
|
className: "lw-px-2"
|
|
43
|
-
},
|
|
43
|
+
}, `${item.label}:`), _react.default.createElement("span", {
|
|
44
44
|
className: "lw-grow lw-text-right"
|
|
45
|
-
},
|
|
45
|
+
}, `${item.value.toFixed()} ${lang('pips')}`))));
|
|
46
46
|
};
|
|
47
47
|
exports.DesktopLegend = DesktopLegend;
|
|
48
48
|
//# sourceMappingURL=DesktopLegend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DesktopLegend.js","names":["_react","_interopRequireDefault","require","_classnames","_types","_DashedLine","_constants","
|
|
1
|
+
{"version":3,"file":"DesktopLegend.js","names":["_react","_interopRequireDefault","require","_classnames","_types","_DashedLine","_constants","e","__esModule","default","DesktopLegend","_ref","data","lang","isDark","createElement","className","classnames","value","map","item","key","id","DataNames","MAX","MIN","DashedLine","strokeDasharray","lineTypes","AVERAGE","MEDIAN","THRESHOLD","label","toFixed","exports"],"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,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAAwC,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExC,MAAMG,aAAa,GAAGC,IAAA;EAAA,IAAC;IAAEC,IAAI;IAAEC,IAAI;IAAEC;EAA2B,CAAC,GAAAH,IAAA;EAAA,OAC/DX,MAAA,CAAAS,OAAA,CAAAM,aAAA;IAAKC,SAAS,EAAE,IAAAC,mBAAU,EAAC,6EAA6E,EAAE;MACxG,eAAe,EAAEL,IAAI,CAAC,CAAC,CAAC,CAACM,KAAK,GAAG,CAAC;MAClC,iBAAiB,EAAEN,IAAI,CAAC,CAAC,CAAC,CAACM,KAAK,GAAG,CAAC;MACpC,sBAAsB,EAAEJ,MAAM;MAC9B,4BAA4B,EAAE,CAACA;IACjC,CAAC;EAAE,GAEAF,IAAI,CAACO,GAAG,CAAEC,IAAI,IACbpB,MAAA,CAAAS,OAAA,CAAAM,aAAA;IACEM,GAAG,EAAED,IAAI,CAACE,EAAG;IACbN,SAAS,EAAE,IAAAC,mBAAU,EAAC,yBAAyB,EAAE;MAC/C,oCAAoC,EAAEG,IAAI,CAACE,EAAE,KAAKC,gBAAS,CAACC,GAAG,IAAIJ,IAAI,CAACE,EAAE,KAAKC,gBAAS,CAACE;IAC3F,CAAC;EAAE,GAEHzB,MAAA,CAAAS,OAAA,CAAAM,aAAA,CAACV,WAAA,CAAAqB,UAAU;IAACZ,MAAM,EAAEA,MAAO;IAACa,eAAe,EAAEC,oBAAS,CAACR,IAAI,CAACE,EAAE;EAAE,CAAE,CAAC,EAClEF,IAAI,CAACE,EAAE,KAAKC,gBAAS,CAACC,GAAG,IAAIJ,IAAI,CAACE,EAAE,KAAKC,gBAAS,CAACE,GAAG,IACrDzB,MAAA,CAAAS,OAAA,CAAAM,aAAA;IAAKC,SAAS,EAAE,IAAAC,mBAAU,EAAC,+EAA+E,EAAE;MAC1G,iBAAiB,EAAEG,IAAI,CAACF,KAAK,GAAG,CAAC;MACjC,YAAY,EAAEE,IAAI,CAACE,EAAE,KAAKC,gBAAS,CAACM,OAAO;MAC3C,uBAAuB,EAAET,IAAI,CAACE,EAAE,KAAKC,gBAAS,CAACO,MAAM;MACrD,oBAAoB,EAAEV,IAAI,CAACE,EAAE,KAAKC,gBAAS,CAACQ;IAC9C,CAAC;EAAE,CACF,CACF,EACD/B,MAAA,CAAAS,OAAA,CAAAM,aAAA;IAAMC,SAAS,EAAC;EAAS,GACtB,GAAGI,IAAI,CAACY,KAAK,GACV,CAAC,EACPhC,MAAA,CAAAS,OAAA,CAAAM,aAAA;IAAMC,SAAS,EAAC;EAAuB,GACpC,GAAGI,IAAI,CAACF,KAAK,CAACe,OAAO,CAAC,CAAC,IAAIpB,IAAI,CAAC,MAAM,CAAC,EACpC,CACH,CACN,CACE,CAAC;AAAA,CACP;AAACqB,OAAA,CAAAxB,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -37,7 +37,7 @@ const Legend = _ref => {
|
|
|
37
37
|
value: data.valueAtRiskChart.down.median
|
|
38
38
|
}, {
|
|
39
39
|
id: _types.DataNames.THRESHOLD,
|
|
40
|
-
label:
|
|
40
|
+
label: `${lang('threshold')} (95%)`,
|
|
41
41
|
value: data.valueAtRiskChart.down.threshold
|
|
42
42
|
}, {
|
|
43
43
|
id: _types.DataNames.MIN,
|
|
@@ -57,7 +57,7 @@ const Legend = _ref => {
|
|
|
57
57
|
value: data.valueAtRiskChart.up.median
|
|
58
58
|
}, {
|
|
59
59
|
id: _types.DataNames.THRESHOLD,
|
|
60
|
-
label:
|
|
60
|
+
label: `${lang('threshold')} (95%)`,
|
|
61
61
|
value: data.valueAtRiskChart.up.threshold
|
|
62
62
|
}, {
|
|
63
63
|
id: _types.DataNames.MAX,
|
|
@@ -79,12 +79,12 @@ const Legend = _ref => {
|
|
|
79
79
|
valueUp: data.valueAtRiskChart.up.median
|
|
80
80
|
}, {
|
|
81
81
|
id: _types.DataNames.THRESHOLD,
|
|
82
|
-
label:
|
|
82
|
+
label: `${lang('threshold')} (95%)`,
|
|
83
83
|
valueDown: data.valueAtRiskChart.down.threshold,
|
|
84
84
|
valueUp: data.valueAtRiskChart.up.threshold
|
|
85
85
|
}, {
|
|
86
86
|
id: _types.DataNames.MAX,
|
|
87
|
-
label:
|
|
87
|
+
label: `${lang('min')}/${lang('max')}`,
|
|
88
88
|
valueDown: data.valueAtRiskChart.down.max,
|
|
89
89
|
valueUp: data.valueAtRiskChart.up.max
|
|
90
90
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Legend.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_monoI18n","_types","_DesktopLegend","_MobileLegend","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Legend","_ref","data","size","isDark","useContext","ThemeContext","lang","useLocale","isDesktop","Size","DESKTOP","createElement","Fragment","DesktopLegend","id","DataNames","AVERAGE","label","value","valueAtRiskChart","down","average","MEDIAN","median","THRESHOLD","
|
|
1
|
+
{"version":3,"file":"Legend.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_monoI18n","_types","_DesktopLegend","_MobileLegend","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Legend","_ref","data","size","isDark","useContext","ThemeContext","lang","useLocale","isDesktop","Size","DESKTOP","createElement","Fragment","DesktopLegend","id","DataNames","AVERAGE","label","value","valueAtRiskChart","down","average","MEDIAN","median","THRESHOLD","threshold","MIN","max","up","MAX","MobileLegend","valueDown","valueUp","exports"],"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":[]}
|
|
@@ -9,7 +9,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
9
9
|
var _types = require("./types");
|
|
10
10
|
var _DashedLine = require("./DashedLine");
|
|
11
11
|
var _constants = require("./constants");
|
|
12
|
-
function _interopRequireDefault(
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
const MobileLegend = _ref => {
|
|
14
14
|
let {
|
|
15
15
|
data,
|
|
@@ -46,11 +46,11 @@ const MobileLegend = _ref => {
|
|
|
46
46
|
})
|
|
47
47
|
})), _react.default.createElement("span", {
|
|
48
48
|
className: "lw-flex-1 lw-px-2"
|
|
49
|
-
},
|
|
49
|
+
}, `${item.label}:`), _react.default.createElement("span", {
|
|
50
50
|
className: "lw-flex-1 lw-text-right"
|
|
51
|
-
},
|
|
51
|
+
}, `${item.valueDown.toFixed()} ${lang('pips')}`), _react.default.createElement("span", {
|
|
52
52
|
className: "lw-flex-1 lw-text-right"
|
|
53
|
-
},
|
|
53
|
+
}, `${item.valueUp.toFixed()} ${lang('pips')}`))));
|
|
54
54
|
};
|
|
55
55
|
exports.MobileLegend = MobileLegend;
|
|
56
56
|
//# sourceMappingURL=MobileLegend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileLegend.js","names":["_react","_interopRequireDefault","require","_classnames","_types","_DashedLine","_constants","
|
|
1
|
+
{"version":3,"file":"MobileLegend.js","names":["_react","_interopRequireDefault","require","_classnames","_types","_DashedLine","_constants","e","__esModule","default","MobileLegend","_ref","data","isDark","lang","createElement","className","classnames","map","item","key","id","DataNames","MAX","MIN","AVERAGE","MEDIAN","THRESHOLD","DashedLine","width","undefined","strokeDasharray","lineTypes","label","valueDown","toFixed","valueUp","exports"],"sources":["../../../../../src/ValueAtRiskWidget/components/Legend/MobileLegend.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { DataNames, MobileLegendProps } from './types';\nimport { DashedLine } from './DashedLine';\nimport { lineTypes } from './constants';\n\nconst MobileLegend = ({ data, isDark, lang }: MobileLegendProps) => (\n <div className={classnames('lw-mb-6 lw-p-2 lw-text-xs', {\n 'lw-bg-border-primary': isDark,\n 'lw-border lw-border-solid lw-border-border-primary': !isDark,\n })}\n >\n {data.map((item) => (\n <div\n key={item.id}\n className={classnames('lw-flex lw-items-center lw-justify-between', {\n '[&_line]:lw-stroke-border-disabled': item.id === DataNames.MAX || item.id === DataNames.MIN,\n })}\n >\n <div className=\"lw-mr-2 lw-flex lw-w-10 lw-items-center\">\n {item.id !== DataNames.MAX && item.id !== DataNames.MIN && (\n <div className={classnames('lw-h-[8px] lw-w-[8px] lw-rounded-full lw-border-[1px] lw-border-white lw-bg-gold', {\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 <DashedLine isDark={isDark} width={(item.id === DataNames.MAX || item.id === DataNames.MIN) ? '38' : undefined} 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-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 </div>\n <span className=\"lw-flex-1 lw-px-2\">\n {`${item.label}:`}\n </span>\n <span className=\"lw-flex-1 lw-text-right\">\n {`${item.valueDown.toFixed()} ${lang('pips')}`}\n </span>\n <span className=\"lw-flex-1 lw-text-right\">\n {`${item.valueUp.toFixed()} ${lang('pips')}`}\n </span>\n </div>\n ))}\n </div>\n);\n\nexport { MobileLegend };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ var _client = require("react-dom/client");
|
|
|
5
5
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
6
6
|
var _ValueAtRiskWidget = require("./ValueAtRiskWidget");
|
|
7
7
|
var _graphql = require("../gql/types/graphql");
|
|
8
|
-
function _interopRequireDefault(
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
const {
|
|
10
10
|
graphqlUrl
|
|
11
11
|
} = window.widgetsConfig || {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_ValueAtRiskWidget","_graphql","
|
|
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":[]}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getInstrumentsByAssetClassId = exports.getAssetClassesList = void 0;
|
|
7
7
|
exports.sortAlphabetically = sortAlphabetically;
|
|
8
|
-
const capitalize = name =>
|
|
8
|
+
const capitalize = name => `${name[0].toUpperCase()}${name.substring(1)}`;
|
|
9
9
|
function sortAlphabetically(paramName, items) {
|
|
10
10
|
return [...items].sort((itemA, itemB) => itemA[paramName].localeCompare(itemB[paramName], 'en', {
|
|
11
11
|
sensitivity: 'base'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["capitalize","name","
|
|
1
|
+
{"version":3,"file":"utils.js","names":["capitalize","name","toUpperCase","substring","sortAlphabetically","paramName","items","sort","itemA","itemB","localeCompare","sensitivity","getAssetClassesList","data","list","map","_ref","id","toLowerCase","label","exports","mapInstrumentsList","_ref2","displayName","getInstrumentsByAssetClassId","instruments","filter","_ref3"],"sources":["../../../src/ValueAtRiskWidget/utils.ts"],"sourcesContent":["import { AssetClass, Instrument } from '../gql/types/graphql';\n\nconst capitalize = (name: string) => `${name[0].toUpperCase()}${name.substring(1)}`;\n\nfunction sortAlphabetically<T extends Record<string, string>>(\n paramName: keyof T,\n items: T[],\n): T[] {\n return [...items]\n .sort((itemA, itemB) => itemA[paramName].localeCompare(itemB[paramName], 'en', { sensitivity: 'base' }));\n}\n\nconst getAssetClassesList = (data: AssetClass[]) => {\n const list = data\n .map(({ name }) => ({ id: name.toLowerCase(), label: capitalize(name) }));\n\n return sortAlphabetically('label', list);\n};\n\nconst mapInstrumentsList = (data: Instrument[]) => sortAlphabetically('displayName', data)\n .map(({ name: id, displayName: label }) => ({ id, label }));\n\nconst getInstrumentsByAssetClassId = (data: AssetClass[], id: string) => {\n const [{ instruments }] = data.filter(({ name }) => id === name);\n\n return mapInstrumentsList(instruments);\n};\n\nexport {\n getAssetClassesList,\n sortAlphabetically,\n getInstrumentsByAssetClassId,\n};\n"],"mappings":";;;;;;;AAEA,MAAMA,UAAU,GAAIC,IAAY,IAAK,GAAGA,IAAI,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGD,IAAI,CAACE,SAAS,CAAC,CAAC,CAAC,EAAE;AAEnF,SAASC,kBAAkBA,CACzBC,SAAkB,EAClBC,KAAU,EACL;EACL,OAAO,CAAC,GAAGA,KAAK,CAAC,CACdC,IAAI,CAAC,CAACC,KAAK,EAAEC,KAAK,KAAKD,KAAK,CAACH,SAAS,CAAC,CAACK,aAAa,CAACD,KAAK,CAACJ,SAAS,CAAC,EAAE,IAAI,EAAE;IAAEM,WAAW,EAAE;EAAO,CAAC,CAAC,CAAC;AAC5G;AAEA,MAAMC,mBAAmB,GAAIC,IAAkB,IAAK;EAClD,MAAMC,IAAI,GAAGD,IAAI,CACdE,GAAG,CAACC,IAAA;IAAA,IAAC;MAAEf;IAAK,CAAC,GAAAe,IAAA;IAAA,OAAM;MAAEC,EAAE,EAAEhB,IAAI,CAACiB,WAAW,CAAC,CAAC;MAAEC,KAAK,EAAEnB,UAAU,CAACC,IAAI;IAAE,CAAC;EAAA,CAAC,CAAC;EAE3E,OAAOG,kBAAkB,CAAC,OAAO,EAAEU,IAAI,CAAC;AAC1C,CAAC;AAACM,OAAA,CAAAR,mBAAA,GAAAA,mBAAA;AAEF,MAAMS,kBAAkB,GAAIR,IAAkB,IAAKT,kBAAkB,CAAC,aAAa,EAAES,IAAI,CAAC,CACvFE,GAAG,CAACO,KAAA;EAAA,IAAC;IAAErB,IAAI,EAAEgB,EAAE;IAAEM,WAAW,EAAEJ;EAAM,CAAC,GAAAG,KAAA;EAAA,OAAM;IAAEL,EAAE;IAAEE;EAAM,CAAC;AAAA,CAAC,CAAC;AAE7D,MAAMK,4BAA4B,GAAGA,CAACX,IAAkB,EAAEI,EAAU,KAAK;EACvE,MAAM,CAAC;IAAEQ;EAAY,CAAC,CAAC,GAAGZ,IAAI,CAACa,MAAM,CAACC,KAAA;IAAA,IAAC;MAAE1B;IAAK,CAAC,GAAA0B,KAAA;IAAA,OAAKV,EAAE,KAAKhB,IAAI;EAAA,EAAC;EAEhE,OAAOoB,kBAAkB,CAACI,WAAW,CAAC;AACxC,CAAC;AAACL,OAAA,CAAAI,4BAAA,GAAAA,4BAAA","ignoreList":[]}
|
|
@@ -5,7 +5,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getValueAtRiskAssetClasses = void 0;
|
|
7
7
|
var _client = require("@apollo/client");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const getValueAtRiskAssetClasses = exports.getValueAtRiskAssetClasses = (0, _client.gql)`
|
|
9
|
+
query GetValueAtRiskAssetClasses($division: Division) {
|
|
10
|
+
valueAtRiskAssetClasses(division: $division) {
|
|
11
|
+
name
|
|
12
|
+
instruments {
|
|
13
|
+
name
|
|
14
|
+
displayName
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`;
|
|
11
19
|
//# sourceMappingURL=getValueAtRiskAssetClasses.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getValueAtRiskAssetClasses.js","names":["_client","require","
|
|
1
|
+
{"version":3,"file":"getValueAtRiskAssetClasses.js","names":["_client","require","getValueAtRiskAssetClasses","exports","gql"],"sources":["../../../src/gql/getValueAtRiskAssetClasses.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const getValueAtRiskAssetClasses = gql`\n query GetValueAtRiskAssetClasses($division: Division) {\n valueAtRiskAssetClasses(division: $division) {\n name\n instruments {\n name\n displayName\n }\n }\n }\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEO,MAAMC,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG,IAAAE,WAAG;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -5,7 +5,30 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getValueAtRiskChart = void 0;
|
|
7
7
|
var _client = require("@apollo/client");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const getValueAtRiskChart = exports.getValueAtRiskChart = (0, _client.gql)`
|
|
9
|
+
query getValueAtRiskChart($instrument: String!, $division: Division!, $duration: ValueAtRiskDuration!, $bars: ValueAtRiskBars!) {
|
|
10
|
+
valueAtRiskChart(instrument: $instrument, division: $division, duration: $duration, bars: $bars) {
|
|
11
|
+
up {
|
|
12
|
+
points {
|
|
13
|
+
pips
|
|
14
|
+
percent
|
|
15
|
+
}
|
|
16
|
+
average
|
|
17
|
+
median
|
|
18
|
+
max
|
|
19
|
+
threshold
|
|
20
|
+
}
|
|
21
|
+
down {
|
|
22
|
+
points {
|
|
23
|
+
pips
|
|
24
|
+
percent
|
|
25
|
+
}
|
|
26
|
+
average
|
|
27
|
+
median
|
|
28
|
+
max
|
|
29
|
+
threshold
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
`;
|
|
11
34
|
//# sourceMappingURL=getValueAtRiskChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getValueAtRiskChart.js","names":["_client","require","
|
|
1
|
+
{"version":3,"file":"getValueAtRiskChart.js","names":["_client","require","getValueAtRiskChart","exports","gql"],"sources":["../../../src/gql/getValueAtRiskChart.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const getValueAtRiskChart = gql`\n query getValueAtRiskChart($instrument: String!, $division: Division!, $duration: ValueAtRiskDuration!, $bars: ValueAtRiskBars!) {\n valueAtRiskChart(instrument: $instrument, division: $division, duration: $duration, bars: $bars) {\n up {\n points {\n pips\n percent\n }\n average\n median\n max\n threshold\n }\n down {\n points {\n pips\n percent\n }\n average\n median\n max\n threshold\n }\n }\n }\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEO,MAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,IAAAE,WAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -13,11 +13,10 @@ function makeFragmentData(data, _fragment) {
|
|
|
13
13
|
return data;
|
|
14
14
|
}
|
|
15
15
|
function isFragmentReady(queryNode, fragmentNode, data) {
|
|
16
|
-
|
|
17
|
-
const deferredFields = (_meta__ = queryNode.__meta__) === null || _meta__ === void 0 ? void 0 : _meta__.deferredFields;
|
|
16
|
+
const deferredFields = queryNode.__meta__?.deferredFields;
|
|
18
17
|
if (!deferredFields) return true;
|
|
19
18
|
const fragDef = fragmentNode.definitions[0];
|
|
20
|
-
const fragName = fragDef
|
|
19
|
+
const fragName = fragDef?.name?.value;
|
|
21
20
|
const fields = fragName && deferredFields[fragName] || [];
|
|
22
21
|
return fields.length > 0 && fields.every(field => data && field in data);
|
|
23
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragment-masking.js","names":["useFragment","_documentNode","fragmentType","makeFragmentData","data","_fragment","isFragmentReady","queryNode","fragmentNode","
|
|
1
|
+
{"version":3,"file":"fragment-masking.js","names":["useFragment","_documentNode","fragmentType","makeFragmentData","data","_fragment","isFragmentReady","queryNode","fragmentNode","deferredFields","__meta__","fragDef","definitions","fragName","name","value","fields","length","every","field"],"sources":["../../../../src/gql/types/fragment-masking.ts"],"sourcesContent":["import { ResultOf, DocumentTypeDecoration, TypedDocumentNode } from '@graphql-typed-document-node/core';\nimport { FragmentDefinitionNode } from 'graphql';\nimport { Incremental } from './graphql';\n\n\nexport type FragmentType<TDocumentType extends DocumentTypeDecoration<any, any>> = TDocumentType extends DocumentTypeDecoration<\n infer TType,\n any\n>\n ? [TType] extends [{ ' $fragmentName'?: infer TKey }]\n ? TKey extends string\n ? { ' $fragmentRefs'?: { [key in TKey]: TType } }\n : never\n : never\n : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>\n): TType;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null | undefined\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n): ReadonlyArray<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>> | null | undefined\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>> | null | undefined\n): TType | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\n}\n\n\nexport function makeFragmentData<\n F extends DocumentTypeDecoration<any, any>,\n FT extends ResultOf<F>\n>(data: FT, _fragment: F): FragmentType<F> {\n return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n queryNode: DocumentTypeDecoration<TQuery, any>,\n fragmentNode: TypedDocumentNode<TFrag>,\n data: FragmentType<TypedDocumentNode<Incremental<TFrag>, any>> | null | undefined\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = (queryNode as { __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> } }).__meta__\n ?.deferredFields;\n\n if (!deferredFields) return true;\n\n const fragDef = fragmentNode.definitions[0] as FragmentDefinitionNode | undefined;\n const fragName = fragDef?.name?.value;\n\n const fields = (fragName && deferredFields[fragName]) || [];\n return fields.length > 0 && fields.every(field => data && field in data);\n}\n"],"mappings":";;;;;;;;AAoCO,SAASA,WAAWA,CACzBC,aAAiD,EACjDC,YAAmJ,EAClG;EACjD,OAAOA,YAAY;AACrB;AAGO,SAASC,gBAAgBA,CAG9BC,IAAQ,EAAEC,SAAY,EAAmB;EACzC,OAAOD,IAAI;AACb;AACO,SAASE,eAAeA,CAC7BC,SAA8C,EAC9CC,YAAsC,EACtCJ,IAAiF,EACtC;EAC3C,MAAMK,cAAc,GAAIF,SAAS,CAAwEG,QAAQ,EAC7GD,cAAc;EAElB,IAAI,CAACA,cAAc,EAAE,OAAO,IAAI;EAEhC,MAAME,OAAO,GAAGH,YAAY,CAACI,WAAW,CAAC,CAAC,CAAuC;EACjF,MAAMC,QAAQ,GAAGF,OAAO,EAAEG,IAAI,EAAEC,KAAK;EAErC,MAAMC,MAAM,GAAIH,QAAQ,IAAIJ,cAAc,CAACI,QAAQ,CAAC,IAAK,EAAE;EAC3D,OAAOG,MAAM,CAACC,MAAM,GAAG,CAAC,IAAID,MAAM,CAACE,KAAK,CAACC,KAAK,IAAIf,IAAI,IAAIe,KAAK,IAAIf,IAAI,CAAC;AAC1E","ignoreList":[]}
|
|
@@ -12,7 +12,6 @@ const documents = {
|
|
|
12
12
|
"\n query getValueAtRiskChart($instrument: String!, $division: Division!, $duration: ValueAtRiskDuration!, $bars: ValueAtRiskBars!) {\n valueAtRiskChart(instrument: $instrument, division: $division, duration: $duration, bars: $bars) {\n up {\n points {\n pips\n percent\n }\n average\n median\n max\n threshold\n }\n down {\n points {\n pips\n percent\n }\n average\n median\n max\n threshold\n }\n }\n }\n": types.GetValueAtRiskChartDocument
|
|
13
13
|
};
|
|
14
14
|
function graphql(source) {
|
|
15
|
-
|
|
16
|
-
return (_source = documents[source]) !== null && _source !== void 0 ? _source : {};
|
|
15
|
+
return documents[source] ?? {};
|
|
17
16
|
}
|
|
18
17
|
//# sourceMappingURL=gql.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gql.js","names":["types","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","documents","GetValueAtRiskAssetClassesDocument","GetValueAtRiskChartDocument","graphql","source"
|
|
1
|
+
{"version":3,"file":"gql.js","names":["types","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","documents","GetValueAtRiskAssetClassesDocument","GetValueAtRiskChartDocument","graphql","source"],"sources":["../../../../src/gql/types/gql.ts"],"sourcesContent":["/* eslint-disable */\nimport * as types from './graphql';\nimport { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n */\nconst documents = {\n \"\\n query GetValueAtRiskAssetClasses($division: Division) {\\n valueAtRiskAssetClasses(division: $division) {\\n name\\n instruments {\\n name\\n displayName\\n }\\n }\\n }\\n\": types.GetValueAtRiskAssetClassesDocument,\n \"\\n query getValueAtRiskChart($instrument: String!, $division: Division!, $duration: ValueAtRiskDuration!, $bars: ValueAtRiskBars!) {\\n valueAtRiskChart(instrument: $instrument, division: $division, duration: $duration, bars: $bars) {\\n up {\\n points {\\n pips\\n percent\\n }\\n average\\n median\\n max\\n threshold\\n }\\n down {\\n points {\\n pips\\n percent\\n }\\n average\\n median\\n max\\n threshold\\n }\\n }\\n }\\n\": types.GetValueAtRiskChartDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n *\n *\n * @example\n * ```ts\n * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);\n * ```\n *\n * The query argument is unknown!\n * Please regenerate the types.\n */\nexport function graphql(source: string): unknown;\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetValueAtRiskAssetClasses($division: Division) {\\n valueAtRiskAssetClasses(division: $division) {\\n name\\n instruments {\\n name\\n displayName\\n }\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetValueAtRiskAssetClasses($division: Division) {\\n valueAtRiskAssetClasses(division: $division) {\\n name\\n instruments {\\n name\\n displayName\\n }\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query getValueAtRiskChart($instrument: String!, $division: Division!, $duration: ValueAtRiskDuration!, $bars: ValueAtRiskBars!) {\\n valueAtRiskChart(instrument: $instrument, division: $division, duration: $duration, bars: $bars) {\\n up {\\n points {\\n pips\\n percent\\n }\\n average\\n median\\n max\\n threshold\\n }\\n down {\\n points {\\n pips\\n percent\\n }\\n average\\n median\\n max\\n threshold\\n }\\n }\\n }\\n\"): (typeof documents)[\"\\n query getValueAtRiskChart($instrument: String!, $division: Division!, $duration: ValueAtRiskDuration!, $bars: ValueAtRiskBars!) {\\n valueAtRiskChart(instrument: $instrument, division: $division, duration: $duration, bars: $bars) {\\n up {\\n points {\\n pips\\n percent\\n }\\n average\\n median\\n max\\n threshold\\n }\\n down {\\n points {\\n pips\\n percent\\n }\\n average\\n median\\n max\\n threshold\\n }\\n }\\n }\\n\"];\n\nexport function graphql(source: string) {\n return (documents as any)[source] ?? {};\n}\n\nexport type DocumentType<TDocumentNode extends DocumentNode<any, any>> = TDocumentNode extends DocumentNode< infer TType, any> ? TType : never;"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAmC,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAanC,MAAMW,SAAS,GAAG;EACd,8MAA8M,EAAEvB,KAAK,CAACwB,kCAAkC;EACxP,2iBAA2iB,EAAExB,KAAK,CAACyB;AACvjB,CAAC;AAyBM,SAASC,OAAOA,CAACC,MAAc,EAAE;EACtC,OAAQJ,SAAS,CAASI,MAAM,CAAC,IAAI,CAAC,CAAC;AACzC","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ var _en = _interopRequireDefault(require("./sources/en.json"));
|
|
|
9
9
|
var _zh_TW = _interopRequireDefault(require("./sources/zh_TW.json"));
|
|
10
10
|
var _es = _interopRequireDefault(require("./sources/es.json"));
|
|
11
11
|
var _th = _interopRequireDefault(require("./sources/th.json"));
|
|
12
|
-
function _interopRequireDefault(
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
const translations = exports.translations = {
|
|
14
14
|
[_monoI18n.Locale.en]: {
|
|
15
15
|
translation: _en.default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_monoI18n","require","_en","_interopRequireDefault","_zh_TW","_es","_th","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_monoI18n","require","_en","_interopRequireDefault","_zh_TW","_es","_th","e","__esModule","default","translations","exports","Locale","en","translation","zhTW","es","th"],"sources":["../../../src/translations/index.ts"],"sourcesContent":["import { Locale, Translations } from '@oanda/mono-i18n';\n\nimport en from './sources/en.json';\nimport zhTW from './sources/zh_TW.json';\nimport es from './sources/es.json';\nimport th from './sources/th.json';\n\nimport { defaultTranslations } from './translations';\n\nexport type TranslationKey = keyof typeof defaultTranslations;\n\nexport const translations: Translations = {\n [Locale.en]: { translation: en },\n [Locale.zhTW]: { translation: zhTW },\n [Locale.es]: { translation: es },\n [Locale.th]: { translation: th },\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,GAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,GAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,GAAA,GAAAH,sBAAA,CAAAF,OAAA;AAAmC,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAM5B,MAAMG,YAA0B,GAAAC,OAAA,CAAAD,YAAA,GAAG;EACxC,CAACE,gBAAM,CAACC,EAAE,GAAG;IAAEC,WAAW,EAAED;EAAG,CAAC;EAChC,CAACD,gBAAM,CAACG,IAAI,GAAG;IAAED,WAAW,EAAEC;EAAK,CAAC;EACpC,CAACH,gBAAM,CAACI,EAAE,GAAG;IAAEF,WAAW,EAAEE;EAAG,CAAC;EAChC,CAACJ,gBAAM,CAACK,EAAE,GAAG;IAAEH,WAAW,EAAEG;EAAG;AACjC,CAAC","ignoreList":[]}
|
|
@@ -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":[]}
|
|
@@ -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),
|