@oanda/labs-correlation-widget 1.0.159 → 1.0.161
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 +1292 -0
- package/dist/main/CorrelationWidget/Main.js +1 -1
- package/dist/main/CorrelationWidget/Main.js.map +1 -1
- package/dist/main/CorrelationWidget/components/Heatmap/Heatmap.js +3 -3
- package/dist/main/CorrelationWidget/components/Heatmap/Heatmap.js.map +1 -1
- package/dist/main/CorrelationWidget/components/Heatmap/HeatmapGrid.js +3 -3
- package/dist/main/CorrelationWidget/components/Heatmap/HeatmapGrid.js.map +1 -1
- package/dist/main/CorrelationWidget/components/Matrix/Matrix.js +4 -4
- package/dist/main/CorrelationWidget/components/Matrix/Matrix.js.map +1 -1
- package/dist/main/CorrelationWidget/components/Matrix/MatrixGrid.js +5 -5
- package/dist/main/CorrelationWidget/components/Matrix/MatrixGrid.js.map +1 -1
- package/dist/main/gql/getCorrelationHeatmap.js +28 -3
- package/dist/main/gql/getCorrelationHeatmap.js.map +1 -1
- package/dist/main/gql/getCorrelationMatrix.js +20 -3
- package/dist/main/gql/getCorrelationMatrix.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/module/CorrelationWidget/Main.js +1 -1
- package/dist/module/CorrelationWidget/Main.js.map +1 -1
- package/dist/module/CorrelationWidget/components/Heatmap/Heatmap.js +3 -3
- package/dist/module/CorrelationWidget/components/Heatmap/Heatmap.js.map +1 -1
- package/dist/module/CorrelationWidget/components/Heatmap/HeatmapGrid.js +3 -3
- package/dist/module/CorrelationWidget/components/Heatmap/HeatmapGrid.js.map +1 -1
- package/dist/module/CorrelationWidget/components/Matrix/Matrix.js +4 -4
- package/dist/module/CorrelationWidget/components/Matrix/Matrix.js.map +1 -1
- package/dist/module/CorrelationWidget/components/Matrix/MatrixGrid.js +5 -5
- package/dist/module/CorrelationWidget/components/Matrix/MatrixGrid.js.map +1 -1
- package/dist/module/gql/getCorrelationHeatmap.js +28 -3
- package/dist/module/gql/getCorrelationHeatmap.js.map +1 -1
- package/dist/module/gql/getCorrelationMatrix.js +20 -3
- package/dist/module/gql/getCorrelationMatrix.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/package.json +3 -3
|
@@ -22,7 +22,7 @@ const Main = _ref => {
|
|
|
22
22
|
size
|
|
23
23
|
} = (0, _labsWidgetCommon.useLayoutProvider)();
|
|
24
24
|
const isDesktop = size === _labsWidgetCommon.Size.DESKTOP;
|
|
25
|
-
const [selectedCorrelation, setSelectedCorrelation] = (0, _react.useState)(
|
|
25
|
+
const [selectedCorrelation, setSelectedCorrelation] = (0, _react.useState)(sort?.toLowerCase() || _config.navigationConfigDesktop[0].id);
|
|
26
26
|
const {
|
|
27
27
|
lang
|
|
28
28
|
} = (0, _monoI18n.useLocale)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Main.js","names":["_labsWidgetCommon","require","_monoI18n","_react","_interopRequireWildcard","_components","_Matrix","_config","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Main","_ref","division","sort","instruments","heatmapTimeUnits","size","useLayoutProvider","isDesktop","Size","DESKTOP","selectedCorrelation","setSelectedCorrelation","useState","toLowerCase","navigationConfigDesktop","id","lang","useLocale","createElement","Tabs","mobileFullWidth","activeTab","handleClick","_ref2","currentTarget","value","items","navigationConfigMobile","labelCallback","Heatmap","Matrix","exports"],"sources":["../../../src/CorrelationWidget/Main.tsx"],"sourcesContent":["import { Size, Tabs, useLayoutProvider } from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useState } from 'react';\n\nimport { Heatmap } from './components';\nimport { Matrix } from './components/Matrix';\nimport { navigationConfigDesktop, navigationConfigMobile } from './config';\nimport type { MainProps } from './types';\n\nconst Main = ({ division, sort, instruments, heatmapTimeUnits }: MainProps) => {\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const [selectedCorrelation, setSelectedCorrelation] = useState(\n sort?.toLowerCase() || navigationConfigDesktop[0].id\n );\n const { lang } = useLocale();\n\n return (\n size && (\n <div data-testid=\"correlation-wrapper\">\n {!sort && (\n <Tabs\n mobileFullWidth\n activeTab={selectedCorrelation}\n handleClick={({ currentTarget: { value } }) =>\n setSelectedCorrelation(value)\n }\n items={isDesktop ? navigationConfigDesktop : navigationConfigMobile}\n labelCallback={lang}\n />\n )}\n {selectedCorrelation === 'heatmap' && (\n <Heatmap\n division={division}\n heatmapTimeUnits={heatmapTimeUnits}\n instruments={instruments}\n />\n )}\n {selectedCorrelation === 'matrix' && (\n <Matrix division={division} instruments={instruments} />\n )}\n </div>\n )\n );\n};\n\nexport { Main };\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,uBAAA,CAAAH,OAAA;AAEA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AAA2E,SAAAG,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAG3E,MAAMkB,IAAI,GAAGC,IAAA,IAAkE;EAAA,IAAjE;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAA4B,CAAC,GAAAJ,IAAA;EACxE,MAAM;IAAEK;EAAK,CAAC,GAAG,IAAAC,mCAAiB,EAAC,CAAC;EACpC,MAAMC,SAAS,GAAGF,IAAI,KAAKG,sBAAI,CAACC,OAAO;EACvC,MAAM,CAACC,mBAAmB,EAAEC,sBAAsB,CAAC,GAAG,IAAAC,eAAQ,
|
|
1
|
+
{"version":3,"file":"Main.js","names":["_labsWidgetCommon","require","_monoI18n","_react","_interopRequireWildcard","_components","_Matrix","_config","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Main","_ref","division","sort","instruments","heatmapTimeUnits","size","useLayoutProvider","isDesktop","Size","DESKTOP","selectedCorrelation","setSelectedCorrelation","useState","toLowerCase","navigationConfigDesktop","id","lang","useLocale","createElement","Tabs","mobileFullWidth","activeTab","handleClick","_ref2","currentTarget","value","items","navigationConfigMobile","labelCallback","Heatmap","Matrix","exports"],"sources":["../../../src/CorrelationWidget/Main.tsx"],"sourcesContent":["import { Size, Tabs, useLayoutProvider } from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useState } from 'react';\n\nimport { Heatmap } from './components';\nimport { Matrix } from './components/Matrix';\nimport { navigationConfigDesktop, navigationConfigMobile } from './config';\nimport type { MainProps } from './types';\n\nconst Main = ({ division, sort, instruments, heatmapTimeUnits }: MainProps) => {\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const [selectedCorrelation, setSelectedCorrelation] = useState(\n sort?.toLowerCase() || navigationConfigDesktop[0].id\n );\n const { lang } = useLocale();\n\n return (\n size && (\n <div data-testid=\"correlation-wrapper\">\n {!sort && (\n <Tabs\n mobileFullWidth\n activeTab={selectedCorrelation}\n handleClick={({ currentTarget: { value } }) =>\n setSelectedCorrelation(value)\n }\n items={isDesktop ? navigationConfigDesktop : navigationConfigMobile}\n labelCallback={lang}\n />\n )}\n {selectedCorrelation === 'heatmap' && (\n <Heatmap\n division={division}\n heatmapTimeUnits={heatmapTimeUnits}\n instruments={instruments}\n />\n )}\n {selectedCorrelation === 'matrix' && (\n <Matrix division={division} instruments={instruments} />\n )}\n </div>\n )\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -39,7 +39,7 @@ const Heatmap = _ref => {
|
|
|
39
39
|
let {
|
|
40
40
|
id
|
|
41
41
|
} = _ref2;
|
|
42
|
-
return
|
|
42
|
+
return timeSpans?.length > 0 ? timeSpans?.includes(id) : id;
|
|
43
43
|
});
|
|
44
44
|
const showError = error || instruments && instruments.length === 1 || timeSpans && timeSpans.length === 1;
|
|
45
45
|
return _react.default.createElement(_react.default.Fragment, null, !showError && _react.default.createElement(_react.default.Fragment, null, _react.default.createElement("div", {
|
|
@@ -53,10 +53,10 @@ const Heatmap = _ref => {
|
|
|
53
53
|
})
|
|
54
54
|
}, _react.default.createElement(_labsWidgetCommon.Spinner, {
|
|
55
55
|
size: _labsWidgetCommon.SpinnerSize.lg
|
|
56
|
-
})), !loading &&
|
|
56
|
+
})), !loading && data?.correlationHeatmap && _react.default.createElement("div", {
|
|
57
57
|
"data-testid": "heatmap-wrapper"
|
|
58
58
|
}, _react.default.createElement(_Grid.GridHeader, {
|
|
59
|
-
label:
|
|
59
|
+
label: `${lang('reference_instrument')}: ${data?.correlationHeatmap.baseInstrument.displayName}`
|
|
60
60
|
}), _react.default.createElement(_HeatmapGrid.HeatmapGrid, {
|
|
61
61
|
data: data,
|
|
62
62
|
headerData: headerData
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Heatmap.js","names":["_client","require","_labsWidgetCommon","_monoI18n","_classnames","_interopRequireDefault","_react","_getCorrelationHeatmap","_config","_Grid","_HeatmapGrid","e","__esModule","default","Heatmap","_ref","division","instruments","heatmapTimeUnits","timeSpans","lang","useLocale","loading","data","error","useQuery","getCorrelationHeatmap","variables","fetchPolicy","headerData","heatmapGridHeader","filter","_ref2","id","length","includes","showError","createElement","Fragment","className","classnames","undefined","Spinner","size","SpinnerSize","lg","correlationHeatmap","GridHeader","label","
|
|
1
|
+
{"version":3,"file":"Heatmap.js","names":["_client","require","_labsWidgetCommon","_monoI18n","_classnames","_interopRequireDefault","_react","_getCorrelationHeatmap","_config","_Grid","_HeatmapGrid","e","__esModule","default","Heatmap","_ref","division","instruments","heatmapTimeUnits","timeSpans","lang","useLocale","loading","data","error","useQuery","getCorrelationHeatmap","variables","fetchPolicy","headerData","heatmapGridHeader","filter","_ref2","id","length","includes","showError","createElement","Fragment","className","classnames","undefined","Spinner","size","SpinnerSize","lg","correlationHeatmap","GridHeader","label","baseInstrument","displayName","HeatmapGrid","GridLegend","ChartError","exports"],"sources":["../../../../../src/CorrelationWidget/components/Heatmap/Heatmap.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { ChartError, Spinner, SpinnerSize } from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { getCorrelationHeatmap } from '../../../gql/getCorrelationHeatmap';\nimport type {\n GetCorrelationHeatmapQuery,\n GetCorrelationHeatmapQueryVariables,\n} from '../../../gql/types/graphql';\nimport { heatmapGridHeader } from '../../config';\nimport type { HeatmapProps } from '../../types';\nimport { GridHeader, GridLegend } from '../Grid';\nimport { HeatmapGrid } from './HeatmapGrid';\n\nconst Heatmap = ({\n division,\n instruments,\n heatmapTimeUnits: timeSpans,\n}: HeatmapProps) => {\n const { lang } = useLocale();\n const { loading, data, error } = useQuery<\n GetCorrelationHeatmapQuery,\n GetCorrelationHeatmapQueryVariables\n >(getCorrelationHeatmap, {\n variables: {\n division,\n instruments,\n timeSpans,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const headerData = heatmapGridHeader.filter(({ id }) =>\n timeSpans?.length! > 0 ? timeSpans?.includes(id) : id\n );\n\n const showError =\n error ||\n (instruments && instruments.length === 1) ||\n (timeSpans && timeSpans.length === 1);\n\n return (\n <>\n {!showError && (\n <>\n <div\n className={classnames('lw-flex lw-flex-col lw-text-text-primary', {\n 'lw-min-h-[580px]': timeSpans === undefined,\n })}\n >\n {loading && (\n <div\n className={classnames(\n 'lw-flex lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary',\n {\n 'lw-h-[500px]': timeSpans === undefined,\n 'lw-h-[200px]': timeSpans !== undefined,\n }\n )}\n >\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {!loading && data?.correlationHeatmap && (\n <div data-testid=\"heatmap-wrapper\">\n <GridHeader\n label={`${lang('reference_instrument')}: ${data?.correlationHeatmap.baseInstrument.displayName}`}\n />\n <HeatmapGrid data={data} headerData={headerData} />\n </div>\n )}\n </div>\n <GridLegend />\n </>\n )}\n {!loading && showError && (\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 </>\n );\n};\n\nexport { Heatmap };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -39,7 +39,7 @@ const HeatmapGrid = _ref => {
|
|
|
39
39
|
className: (0, _classnames.default)('lw-relative lw-grid lw-grid-cols-[var(--cols)] lw-overflow-x-auto lw-border-x lw-border-t lw-border-solid lw-border-border-primary lw-bg-border-primary lw-text-sm', {}),
|
|
40
40
|
"data-testid": "heatmap-grid",
|
|
41
41
|
style: {
|
|
42
|
-
'--cols':
|
|
42
|
+
'--cols': `repeat(${columnsNumber + 1},minmax(70px,1fr))`
|
|
43
43
|
},
|
|
44
44
|
onMouseLeave: resetHover
|
|
45
45
|
}, _react.default.createElement(_Grid.GridCell, {
|
|
@@ -89,12 +89,12 @@ const HeatmapGrid = _ref => {
|
|
|
89
89
|
value
|
|
90
90
|
} = _ref7;
|
|
91
91
|
return value === null ? _react.default.createElement(_Grid.GridCell, {
|
|
92
|
-
key:
|
|
92
|
+
key: `${displayName}-${timeUnit}`,
|
|
93
93
|
empty: true,
|
|
94
94
|
mouseEnterHandler: resetHover,
|
|
95
95
|
noRightBorder: columnsNumber === index + 1
|
|
96
96
|
}) : _react.default.createElement(_Grid.GridCell, {
|
|
97
|
-
key:
|
|
97
|
+
key: `${displayName}-${timeUnit}`,
|
|
98
98
|
hovered: selectedInstrument === displayName && selectedTimeUnit === timeUnit,
|
|
99
99
|
mouseEnterHandler: () => {
|
|
100
100
|
setSelectedInstrument(displayName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeatmapGrid.js","names":["_monoI18n","require","_classnames","_interopRequireDefault","_react","_interopRequireWildcard","_Grid","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","HeatmapGrid","_ref","data","correlationHeatmap","heatmap","headerData","lang","useLocale","selectedInstrument","setSelectedInstrument","useState","selectedTimeUnit","setSelectedTimeUnit","resetHover","timeUnitOrder","map","_ref2","id","columnsNumber","length","createElement","className","classnames","style","
|
|
1
|
+
{"version":3,"file":"HeatmapGrid.js","names":["_monoI18n","require","_classnames","_interopRequireDefault","_react","_interopRequireWildcard","_Grid","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","HeatmapGrid","_ref","data","correlationHeatmap","heatmap","headerData","lang","useLocale","selectedInstrument","setSelectedInstrument","useState","selectedTimeUnit","setSelectedTimeUnit","resetHover","timeUnitOrder","map","_ref2","id","columnsNumber","length","createElement","className","classnames","style","onMouseLeave","GridCell","sticky","_ref3","index","label","translationKey","count","key","hovered","mouseEnterHandler","noRightBorder","value","_ref4","instrument","displayName","timeCorrelation","Fragment","sort","_ref5","_ref6","timeUnit","timeUnitA","timeUnitB","indexOf","_ref7","empty","exports"],"sources":["../../../../../src/CorrelationWidget/components/Heatmap/HeatmapGrid.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport classnames from 'classnames';\nimport React, { Fragment, useState } from 'react';\n\nimport { GridCell } from '../Grid';\nimport type { HeatmapGridProps } from './types';\n\nconst HeatmapGrid = ({\n data: {\n correlationHeatmap: { heatmap },\n },\n headerData,\n}: HeatmapGridProps) => {\n const { lang } = useLocale();\n const [selectedInstrument, setSelectedInstrument] = useState('');\n const [selectedTimeUnit, setSelectedTimeUnit] = useState('');\n\n const resetHover = () => {\n setSelectedInstrument('');\n setSelectedTimeUnit('');\n };\n\n const timeUnitOrder = headerData.map(({ id }) => id);\n\n const columnsNumber = headerData.length;\n\n return (\n <div\n className={classnames(\n 'lw-relative lw-grid lw-grid-cols-[var(--cols)] lw-overflow-x-auto lw-border-x lw-border-t lw-border-solid lw-border-border-primary lw-bg-border-primary lw-text-sm',\n {}\n )}\n data-testid=\"heatmap-grid\"\n style={\n {\n '--cols': `repeat(${columnsNumber + 1},minmax(70px,1fr))`,\n } as React.CSSProperties\n }\n onMouseLeave={resetHover}\n >\n <GridCell sticky />\n {headerData.map(({ id, label: { translationKey, count } }, index) => (\n <GridCell\n key={id}\n hovered={selectedTimeUnit === id}\n mouseEnterHandler={resetHover}\n noRightBorder={columnsNumber === index + 1}\n value={lang(translationKey, { count })}\n />\n ))}\n {heatmap.map(({ instrument: { displayName }, timeCorrelation }) => (\n <Fragment key={displayName}>\n <GridCell\n sticky\n hovered={selectedInstrument === displayName}\n mouseEnterHandler={resetHover}\n value={displayName}\n />\n {[...timeCorrelation]\n .sort(\n ({ timeUnit: timeUnitA }, { timeUnit: timeUnitB }) =>\n timeUnitOrder.indexOf(timeUnitA) -\n timeUnitOrder.indexOf(timeUnitB)\n )\n .map(({ timeUnit, value }, index) =>\n value === null ? (\n <GridCell\n key={`${displayName}-${timeUnit}`}\n empty\n mouseEnterHandler={resetHover}\n noRightBorder={columnsNumber === index + 1}\n />\n ) : (\n <GridCell\n key={`${displayName}-${timeUnit}`}\n hovered={\n selectedInstrument === displayName &&\n selectedTimeUnit === timeUnit\n }\n mouseEnterHandler={() => {\n setSelectedInstrument(displayName);\n setSelectedTimeUnit(timeUnit);\n }}\n noRightBorder={columnsNumber === index + 1}\n value={value}\n />\n )\n )}\n </Fragment>\n ))}\n </div>\n );\n};\n\nexport { HeatmapGrid };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -32,7 +32,7 @@ const Matrix = _ref => {
|
|
|
32
32
|
},
|
|
33
33
|
fetchPolicy: 'cache-and-network'
|
|
34
34
|
});
|
|
35
|
-
const columnNumber = instruments
|
|
35
|
+
const columnNumber = instruments?.length;
|
|
36
36
|
const showError = error || instruments && instruments.length === 1;
|
|
37
37
|
return _react.default.createElement(_react.default.Fragment, null, !showError && _react.default.createElement(_react.default.Fragment, null, _react.default.createElement("div", {
|
|
38
38
|
className: (0, _classnames.default)('lw-flex lw-flex-col', {
|
|
@@ -45,12 +45,12 @@ const Matrix = _ref => {
|
|
|
45
45
|
})
|
|
46
46
|
}, _react.default.createElement(_labsWidgetCommon.Spinner, {
|
|
47
47
|
size: _labsWidgetCommon.SpinnerSize.lg
|
|
48
|
-
})), !loading &&
|
|
48
|
+
})), !loading && data?.correlationMatrix && _react.default.createElement("div", {
|
|
49
49
|
"data-testid": "matrix-wrapper"
|
|
50
50
|
}, _react.default.createElement(_Grid.GridHeader, {
|
|
51
|
-
label:
|
|
51
|
+
label: `${lang('time_period')}: ${lang('year', {
|
|
52
52
|
count: 1
|
|
53
|
-
})
|
|
53
|
+
})}`
|
|
54
54
|
}), _react.default.createElement(_MatrixGrid.MatrixGrid, {
|
|
55
55
|
columnsNumber: columnNumber,
|
|
56
56
|
data: data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Matrix.js","names":["_client","require","_labsWidgetCommon","_monoI18n","_classnames","_interopRequireDefault","_react","_getCorrelationMatrix","_Grid","_MatrixGrid","e","__esModule","default","Matrix","_ref","division","instruments","lang","useLocale","loading","data","error","useQuery","getCorrelationMatrix","variables","fetchPolicy","columnNumber","length","showError","createElement","Fragment","className","classnames","undefined","Spinner","size","SpinnerSize","lg","correlationMatrix","GridHeader","label","
|
|
1
|
+
{"version":3,"file":"Matrix.js","names":["_client","require","_labsWidgetCommon","_monoI18n","_classnames","_interopRequireDefault","_react","_getCorrelationMatrix","_Grid","_MatrixGrid","e","__esModule","default","Matrix","_ref","division","instruments","lang","useLocale","loading","data","error","useQuery","getCorrelationMatrix","variables","fetchPolicy","columnNumber","length","showError","createElement","Fragment","className","classnames","undefined","Spinner","size","SpinnerSize","lg","correlationMatrix","GridHeader","label","count","MatrixGrid","columnsNumber","GridLegend","ChartError","exports"],"sources":["../../../../../src/CorrelationWidget/components/Matrix/Matrix.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { ChartError, Spinner, SpinnerSize } from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { getCorrelationMatrix } from '../../../gql/getCorrelationMatrix';\nimport type {\n GetCorrelationMatrixQuery,\n GetCorrelationMatrixQueryVariables,\n} from '../../../gql/types/graphql';\nimport type { MatrixProps } from '../../types';\nimport { GridHeader, GridLegend } from '../Grid';\nimport { MatrixGrid } from './MatrixGrid';\n\nconst Matrix = ({ division, instruments }: MatrixProps) => {\n const { lang } = useLocale();\n const { loading, data, error } = useQuery<\n GetCorrelationMatrixQuery,\n GetCorrelationMatrixQueryVariables\n >(getCorrelationMatrix, {\n variables: {\n division,\n instruments,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const columnNumber = instruments?.length;\n\n const showError = error || (instruments && instruments.length === 1);\n\n return (\n <>\n {!showError && (\n <>\n <div\n className={classnames('lw-flex lw-flex-col', {\n 'lw-min-h-[580px]': columnNumber === undefined,\n })}\n >\n {loading && (\n <div\n className={classnames(\n 'lw-flex lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary',\n {\n 'lw-h-[500px]': columnNumber === undefined,\n 'lw-h-[200px]': columnNumber !== undefined,\n }\n )}\n >\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {!loading && data?.correlationMatrix && (\n <div data-testid=\"matrix-wrapper\">\n <GridHeader\n label={`${lang('time_period')}: ${lang('year', { count: 1 })}`}\n />\n <MatrixGrid columnsNumber={columnNumber} data={data} />\n </div>\n )}\n </div>\n <GridLegend />\n </>\n )}\n {!loading && showError && (\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 </>\n );\n};\n\nexport { Matrix };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAD,sBAAA,CAAAJ,OAAA;AAEA,IAAAM,qBAAA,GAAAN,OAAA;AAMA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AAA0C,SAAAI,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1C,MAAMG,MAAM,GAAGC,IAAA,IAA4C;EAAA,IAA3C;IAAEC,QAAQ;IAAEC;EAAyB,CAAC,GAAAF,IAAA;EACpD,MAAM;IAAEG;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAC5B,MAAM;IAAEC,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAG,IAAAC,gBAAQ,EAGvCC,0CAAoB,EAAE;IACtBC,SAAS,EAAE;MACTT,QAAQ;MACRC;IACF,CAAC;IACDS,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,YAAY,GAAGV,WAAW,EAAEW,MAAM;EAExC,MAAMC,SAAS,GAAGP,KAAK,IAAKL,WAAW,IAAIA,WAAW,CAACW,MAAM,KAAK,CAAE;EAEpE,OACErB,MAAA,CAAAM,OAAA,CAAAiB,aAAA,CAAAvB,MAAA,CAAAM,OAAA,CAAAkB,QAAA,QACG,CAACF,SAAS,IACTtB,MAAA,CAAAM,OAAA,CAAAiB,aAAA,CAAAvB,MAAA,CAAAM,OAAA,CAAAkB,QAAA,QACExB,MAAA,CAAAM,OAAA,CAAAiB,aAAA;IACEE,SAAS,EAAE,IAAAC,mBAAU,EAAC,qBAAqB,EAAE;MAC3C,kBAAkB,EAAEN,YAAY,KAAKO;IACvC,CAAC;EAAE,GAEFd,OAAO,IACNb,MAAA,CAAAM,OAAA,CAAAiB,aAAA;IACEE,SAAS,EAAE,IAAAC,mBAAU,EACnB,sFAAsF,EACtF;MACE,cAAc,EAAEN,YAAY,KAAKO,SAAS;MAC1C,cAAc,EAAEP,YAAY,KAAKO;IACnC,CACF;EAAE,GAEF3B,MAAA,CAAAM,OAAA,CAAAiB,aAAA,CAAC3B,iBAAA,CAAAgC,OAAO;IAACC,IAAI,EAAEC,6BAAW,CAACC;EAAG,CAAE,CAC7B,CACN,EACA,CAAClB,OAAO,IAAIC,IAAI,EAAEkB,iBAAiB,IAClChC,MAAA,CAAAM,OAAA,CAAAiB,aAAA;IAAK,eAAY;EAAgB,GAC/BvB,MAAA,CAAAM,OAAA,CAAAiB,aAAA,CAACrB,KAAA,CAAA+B,UAAU;IACTC,KAAK,EAAE,GAAGvB,IAAI,CAAC,aAAa,CAAC,KAAKA,IAAI,CAAC,MAAM,EAAE;MAAEwB,KAAK,EAAE;IAAE,CAAC,CAAC;EAAG,CAChE,CAAC,EACFnC,MAAA,CAAAM,OAAA,CAAAiB,aAAA,CAACpB,WAAA,CAAAiC,UAAU;IAACC,aAAa,EAAEjB,YAAa;IAACN,IAAI,EAAEA;EAAK,CAAE,CACnD,CAEJ,CAAC,EACNd,MAAA,CAAAM,OAAA,CAAAiB,aAAA,CAACrB,KAAA,CAAAoC,UAAU,MAAE,CACb,CACH,EACA,CAACzB,OAAO,IAAIS,SAAS,IACpBtB,MAAA,CAAAM,OAAA,CAAAiB,aAAA;IAAKE,SAAS,EAAC;EAAmG,GAChHzB,MAAA,CAAAM,OAAA,CAAAiB,aAAA,CAAC3B,iBAAA,CAAA2C,UAAU,MAAE,CACV,CAEP,CAAC;AAEP,CAAC;AAACC,OAAA,CAAAjC,MAAA,GAAAA,MAAA","ignoreList":[]}
|
|
@@ -28,7 +28,7 @@ const MatrixGrid = _ref => {
|
|
|
28
28
|
className: (0, _classnames.default)('lw-relative lw-grid-cols-[var(--cols)] lw-grid lw-overflow-x-auto lw-border-x lw-border-t lw-border-solid lw-border-border-primary lw-bg-border-primary lw-text-sm', {}),
|
|
29
29
|
"data-testid": "matrix-grid",
|
|
30
30
|
style: {
|
|
31
|
-
'--cols':
|
|
31
|
+
'--cols': `minmax(70px,1fr)repeat(${columnsNumber},minmax(65px,1fr))`
|
|
32
32
|
},
|
|
33
33
|
onMouseLeave: resetHover
|
|
34
34
|
}, _react.default.createElement(_Grid.GridCell, {
|
|
@@ -40,7 +40,7 @@ const MatrixGrid = _ref => {
|
|
|
40
40
|
}
|
|
41
41
|
} = _ref2;
|
|
42
42
|
return _react.default.createElement(_Grid.GridCell, {
|
|
43
|
-
key:
|
|
43
|
+
key: `x-${displayName}`,
|
|
44
44
|
hovered: selectedXInstrument === displayName,
|
|
45
45
|
mouseEnterHandler: resetHover,
|
|
46
46
|
noRightBorder: columnsNumber === index + 1,
|
|
@@ -54,7 +54,7 @@ const MatrixGrid = _ref => {
|
|
|
54
54
|
instrumentCorrelation
|
|
55
55
|
} = _ref3;
|
|
56
56
|
return _react.default.createElement(_react.Fragment, {
|
|
57
|
-
key:
|
|
57
|
+
key: `y-${yInstrument}`
|
|
58
58
|
}, _react.default.createElement(_Grid.GridCell, {
|
|
59
59
|
sticky: true,
|
|
60
60
|
hovered: selectedYInstrument === yInstrument,
|
|
@@ -69,12 +69,12 @@ const MatrixGrid = _ref => {
|
|
|
69
69
|
} = _ref4;
|
|
70
70
|
const noRightBorder = columnsNumber === index + 1;
|
|
71
71
|
return xInstrument === yInstrument || value === null ? _react.default.createElement(_Grid.GridCell, {
|
|
72
|
-
key:
|
|
72
|
+
key: `${xInstrument}-${yInstrument}`,
|
|
73
73
|
empty: true,
|
|
74
74
|
mouseEnterHandler: resetHover,
|
|
75
75
|
noRightBorder: noRightBorder
|
|
76
76
|
}) : _react.default.createElement(_Grid.GridCell, {
|
|
77
|
-
key:
|
|
77
|
+
key: `${xInstrument}-${yInstrument}`,
|
|
78
78
|
hovered: selectedXInstrument === xInstrument && selectedYInstrument === yInstrument,
|
|
79
79
|
mouseEnterHandler: () => {
|
|
80
80
|
setSelectedXInstrument(xInstrument);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatrixGrid.js","names":["_classnames","_interopRequireDefault","require","_react","_interopRequireWildcard","_Grid","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MatrixGrid","_ref","data","correlationMatrix","matrix","columnsNumber","selectedXInstrument","setSelectedXInstrument","useState","selectedYInstrument","setSelectedYInstrument","resetHover","createElement","className","classNames","style","
|
|
1
|
+
{"version":3,"file":"MatrixGrid.js","names":["_classnames","_interopRequireDefault","require","_react","_interopRequireWildcard","_Grid","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MatrixGrid","_ref","data","correlationMatrix","matrix","columnsNumber","selectedXInstrument","setSelectedXInstrument","useState","selectedYInstrument","setSelectedYInstrument","resetHover","createElement","className","classNames","style","onMouseLeave","GridCell","sticky","map","_ref2","index","instrument","displayName","key","hovered","mouseEnterHandler","noRightBorder","value","_ref3","yInstrument","instrumentCorrelation","Fragment","_ref4","xInstrument","empty","exports"],"sources":["../../../../../src/CorrelationWidget/components/Matrix/MatrixGrid.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport React, { Fragment, useState } from 'react';\n\nimport { GridCell } from '../Grid';\nimport type { MatrixGridProps } from './types';\n\nconst MatrixGrid = ({\n data: {\n correlationMatrix: { matrix },\n },\n columnsNumber = 10,\n}: MatrixGridProps) => {\n const [selectedXInstrument, setSelectedXInstrument] = useState('');\n const [selectedYInstrument, setSelectedYInstrument] = useState('');\n\n const resetHover = () => {\n setSelectedXInstrument('');\n setSelectedYInstrument('');\n };\n\n return (\n <div\n className={classNames(\n 'lw-relative lw-grid-cols-[var(--cols)] lw-grid lw-overflow-x-auto lw-border-x lw-border-t lw-border-solid lw-border-border-primary lw-bg-border-primary lw-text-sm',\n {}\n )}\n data-testid=\"matrix-grid\"\n style={\n {\n '--cols': `minmax(70px,1fr)repeat(${columnsNumber},minmax(65px,1fr))`,\n } as React.CSSProperties\n }\n onMouseLeave={resetHover}\n >\n <GridCell sticky />\n {matrix.map(({ instrument: { displayName } }, index) => (\n <GridCell\n key={`x-${displayName}`}\n hovered={selectedXInstrument === displayName}\n mouseEnterHandler={resetHover}\n noRightBorder={columnsNumber === index + 1}\n value={displayName}\n />\n ))}\n {matrix.map(\n ({\n instrument: { displayName: yInstrument },\n instrumentCorrelation,\n }) => (\n <Fragment key={`y-${yInstrument}`}>\n <GridCell\n sticky\n hovered={selectedYInstrument === yInstrument}\n mouseEnterHandler={resetHover}\n value={yInstrument}\n />\n {instrumentCorrelation.map(\n ({ instrument: { displayName: xInstrument }, value }, index) => {\n const noRightBorder = columnsNumber === index + 1;\n\n return xInstrument === yInstrument || value === null ? (\n <GridCell\n key={`${xInstrument}-${yInstrument}`}\n empty\n mouseEnterHandler={resetHover}\n noRightBorder={noRightBorder}\n />\n ) : (\n <GridCell\n key={`${xInstrument}-${yInstrument}`}\n hovered={\n selectedXInstrument === xInstrument &&\n selectedYInstrument === yInstrument\n }\n mouseEnterHandler={() => {\n setSelectedXInstrument(xInstrument);\n setSelectedYInstrument(yInstrument);\n }}\n noRightBorder={noRightBorder}\n value={value}\n />\n );\n }\n )}\n </Fragment>\n )\n )}\n </div>\n );\n};\n\nexport { MatrixGrid };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,32 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getCorrelationHeatmap = void 0;
|
|
7
7
|
var _client = require("@apollo/client");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const getCorrelationHeatmap = exports.getCorrelationHeatmap = (0, _client.gql)`
|
|
9
|
+
query GetCorrelationHeatmap(
|
|
10
|
+
$division: Division!
|
|
11
|
+
$instruments: [String]
|
|
12
|
+
$timeSpans: [CorrelationTimeUnit]
|
|
13
|
+
) {
|
|
14
|
+
correlationHeatmap(
|
|
15
|
+
division: $division
|
|
16
|
+
instruments: $instruments
|
|
17
|
+
timeSpans: $timeSpans
|
|
18
|
+
) {
|
|
19
|
+
baseInstrument {
|
|
20
|
+
name
|
|
21
|
+
displayName
|
|
22
|
+
}
|
|
23
|
+
heatmap {
|
|
24
|
+
instrument {
|
|
25
|
+
name
|
|
26
|
+
displayName
|
|
27
|
+
}
|
|
28
|
+
timeCorrelation {
|
|
29
|
+
timeUnit
|
|
30
|
+
value
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
11
36
|
//# sourceMappingURL=getCorrelationHeatmap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCorrelationHeatmap.js","names":["_client","require","
|
|
1
|
+
{"version":3,"file":"getCorrelationHeatmap.js","names":["_client","require","getCorrelationHeatmap","exports","gql"],"sources":["../../../src/gql/getCorrelationHeatmap.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getCorrelationHeatmap = gql`\n query GetCorrelationHeatmap(\n $division: Division!\n $instruments: [String]\n $timeSpans: [CorrelationTimeUnit]\n ) {\n correlationHeatmap(\n division: $division\n instruments: $instruments\n timeSpans: $timeSpans\n ) {\n baseInstrument {\n name\n displayName\n }\n heatmap {\n instrument {\n name\n displayName\n }\n timeCorrelation {\n timeUnit\n value\n }\n }\n }\n }\n`;\n\nexport { getCorrelationHeatmap };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,MAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,IAAAE,WAAG;AACjC;AACA;AACA;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":[]}
|
|
@@ -5,7 +5,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getCorrelationMatrix = void 0;
|
|
7
7
|
var _client = require("@apollo/client");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const getCorrelationMatrix = exports.getCorrelationMatrix = (0, _client.gql)`
|
|
9
|
+
query GetCorrelationMatrix($division: Division!, $instruments: [String]) {
|
|
10
|
+
correlationMatrix(division: $division, instruments: $instruments) {
|
|
11
|
+
baseTimeUnit
|
|
12
|
+
matrix {
|
|
13
|
+
instrument {
|
|
14
|
+
name
|
|
15
|
+
displayName
|
|
16
|
+
}
|
|
17
|
+
instrumentCorrelation {
|
|
18
|
+
instrument {
|
|
19
|
+
name
|
|
20
|
+
displayName
|
|
21
|
+
}
|
|
22
|
+
value
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
`;
|
|
11
28
|
//# sourceMappingURL=getCorrelationMatrix.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCorrelationMatrix.js","names":["_client","require","
|
|
1
|
+
{"version":3,"file":"getCorrelationMatrix.js","names":["_client","require","getCorrelationMatrix","exports","gql"],"sources":["../../../src/gql/getCorrelationMatrix.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getCorrelationMatrix = gql`\n query GetCorrelationMatrix($division: Division!, $instruments: [String]) {\n correlationMatrix(division: $division, instruments: $instruments) {\n baseTimeUnit\n matrix {\n instrument {\n name\n displayName\n }\n instrumentCorrelation {\n instrument {\n name\n displayName\n }\n value\n }\n }\n }\n }\n`;\n\nexport { getCorrelationMatrix };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,MAAMC,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,IAAAE,WAAG;AAChC;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 {\n ResultOf,\n DocumentTypeDecoration,\n TypedDocumentNode,\n} from '@graphql-typed-document-node/core';\nimport { FragmentDefinitionNode } from 'graphql';\nimport { Incremental } from './graphql';\n\nexport type FragmentType<\n TDocumentType extends DocumentTypeDecoration<any, any>,\n> =\n TDocumentType extends DocumentTypeDecoration<infer TType, any>\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:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | null\n | 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:\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): TType | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\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:\n | FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>\n | null\n | undefined\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = (\n queryNode as {\n __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };\n }\n ).__meta__?.deferredFields;\n\n if (!deferredFields) return true;\n\n const fragDef = fragmentNode.definitions[0] as\n | FragmentDefinitionNode\n | 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":";;;;;;;;AA6CO,SAASA,WAAWA,CACzBC,aAAiD,EACjDC,YAIa,EACoC;EACjD,OAAOA,YAAY;AACrB;AAEO,SAASC,gBAAgBA,CAG9BC,IAAQ,EAAEC,SAAY,EAAmB;EACzC,OAAOD,IAAI;AACb;AACO,SAASE,eAAeA,CAC7BC,SAA8C,EAC9CC,YAAsC,EACtCJ,IAGa,EAC8B;EAC3C,MAAMK,cAAc,GAClBF,SAAS,CAGTG,QAAQ,EAAED,cAAc;EAE1B,IAAI,CAACA,cAAc,EAAE,OAAO,IAAI;EAEhC,MAAME,OAAO,GAAGH,YAAY,CAACI,WAAW,CAAC,CAAC,CAE7B;EACb,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,CAAEC,KAAK,IAAKf,IAAI,IAAIe,KAAK,IAAIf,IAAI,CAAC;AAC5E","ignoreList":[]}
|
|
@@ -11,7 +11,6 @@ const documents = {
|
|
|
11
11
|
'\n query GetCorrelationMatrix($division: Division!, $instruments: [String]) {\n correlationMatrix(division: $division, instruments: $instruments) {\n baseTimeUnit\n matrix {\n instrument {\n name\n displayName\n }\n instrumentCorrelation {\n instrument {\n name\n displayName\n }\n value\n }\n }\n }\n }\n': types.GetCorrelationMatrixDocument
|
|
12
12
|
};
|
|
13
13
|
function graphql(source) {
|
|
14
|
-
|
|
15
|
-
return (_source = documents[source]) !== null && _source !== void 0 ? _source : {};
|
|
14
|
+
return documents[source] ?? {};
|
|
16
15
|
}
|
|
17
16
|
//# sourceMappingURL=gql.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gql.js","names":["types","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","documents","GetCorrelationHeatmapDocument","GetCorrelationMatrixDocument","graphql","source"
|
|
1
|
+
{"version":3,"file":"gql.js","names":["types","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","documents","GetCorrelationHeatmapDocument","GetCorrelationMatrixDocument","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 GetCorrelationHeatmap($division: Division!, $instruments: [String], $timeSpans: [CorrelationTimeUnit]) {\\n correlationHeatmap(division: $division, instruments: $instruments, timeSpans: $timeSpans){\\n baseInstrument {\\n name\\n displayName\\n }\\n heatmap {\\n instrument {\\n name\\n displayName\\n }\\n timeCorrelation {\\n timeUnit\\n value\\n }\\n }\\n }\\n }\\n':\n types.GetCorrelationHeatmapDocument,\n '\\n query GetCorrelationMatrix($division: Division!, $instruments: [String]) {\\n correlationMatrix(division: $division, instruments: $instruments) {\\n baseTimeUnit\\n matrix {\\n instrument {\\n name\\n displayName\\n }\\n instrumentCorrelation {\\n instrument {\\n name\\n displayName\\n }\\n value\\n }\\n }\\n }\\n }\\n':\n types.GetCorrelationMatrixDocument,\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(\n source: '\\n query GetCorrelationHeatmap($division: Division!, $instruments: [String], $timeSpans: [CorrelationTimeUnit]) {\\n correlationHeatmap(division: $division, instruments: $instruments, timeSpans: $timeSpans){\\n baseInstrument {\\n name\\n displayName\\n }\\n heatmap {\\n instrument {\\n name\\n displayName\\n }\\n timeCorrelation {\\n timeUnit\\n value\\n }\\n }\\n }\\n }\\n'\n): (typeof documents)['\\n query GetCorrelationHeatmap($division: Division!, $instruments: [String], $timeSpans: [CorrelationTimeUnit]) {\\n correlationHeatmap(division: $division, instruments: $instruments, timeSpans: $timeSpans){\\n baseInstrument {\\n name\\n displayName\\n }\\n heatmap {\\n instrument {\\n name\\n displayName\\n }\\n timeCorrelation {\\n timeUnit\\n value\\n }\\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(\n source: '\\n query GetCorrelationMatrix($division: Division!, $instruments: [String]) {\\n correlationMatrix(division: $division, instruments: $instruments) {\\n baseTimeUnit\\n matrix {\\n instrument {\\n name\\n displayName\\n }\\n instrumentCorrelation {\\n instrument {\\n name\\n displayName\\n }\\n value\\n }\\n }\\n }\\n }\\n'\n): (typeof documents)['\\n query GetCorrelationMatrix($division: Division!, $instruments: [String]) {\\n correlationMatrix(division: $division, instruments: $instruments) {\\n baseTimeUnit\\n matrix {\\n instrument {\\n name\\n displayName\\n }\\n instrumentCorrelation {\\n instrument {\\n name\\n displayName\\n }\\n value\\n }\\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>> =\n TDocumentNode extends DocumentNode<infer TType, any> ? TType : never;\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAmC,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAanC,MAAMkB,SAAS,GAAG;EAChB,mdAAmd,EACjdtB,KAAK,CAACuB,6BAA6B;EACrC,yaAAya,EACvavB,KAAK,CAACwB;AACV,CAAC;AA6BM,SAASC,OAAOA,CAACC,MAAc,EAAE;EACtC,OAAQJ,SAAS,CAASI,MAAM,CAAC,IAAI,CAAC,CAAC;AACzC","ignoreList":[]}
|
|
@@ -15,7 +15,7 @@ const Main = _ref => {
|
|
|
15
15
|
size
|
|
16
16
|
} = useLayoutProvider();
|
|
17
17
|
const isDesktop = size === Size.DESKTOP;
|
|
18
|
-
const [selectedCorrelation, setSelectedCorrelation] = useState(
|
|
18
|
+
const [selectedCorrelation, setSelectedCorrelation] = useState(sort?.toLowerCase() || navigationConfigDesktop[0].id);
|
|
19
19
|
const {
|
|
20
20
|
lang
|
|
21
21
|
} = useLocale();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Main.js","names":["Size","Tabs","useLayoutProvider","useLocale","React","useState","Heatmap","Matrix","navigationConfigDesktop","navigationConfigMobile","Main","_ref","division","sort","instruments","heatmapTimeUnits","size","isDesktop","DESKTOP","selectedCorrelation","setSelectedCorrelation","toLowerCase","id","lang","createElement","mobileFullWidth","activeTab","handleClick","_ref2","currentTarget","value","items","labelCallback"],"sources":["../../../src/CorrelationWidget/Main.tsx"],"sourcesContent":["import { Size, Tabs, useLayoutProvider } from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useState } from 'react';\n\nimport { Heatmap } from './components';\nimport { Matrix } from './components/Matrix';\nimport { navigationConfigDesktop, navigationConfigMobile } from './config';\nimport type { MainProps } from './types';\n\nconst Main = ({ division, sort, instruments, heatmapTimeUnits }: MainProps) => {\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const [selectedCorrelation, setSelectedCorrelation] = useState(\n sort?.toLowerCase() || navigationConfigDesktop[0].id\n );\n const { lang } = useLocale();\n\n return (\n size && (\n <div data-testid=\"correlation-wrapper\">\n {!sort && (\n <Tabs\n mobileFullWidth\n activeTab={selectedCorrelation}\n handleClick={({ currentTarget: { value } }) =>\n setSelectedCorrelation(value)\n }\n items={isDesktop ? navigationConfigDesktop : navigationConfigMobile}\n labelCallback={lang}\n />\n )}\n {selectedCorrelation === 'heatmap' && (\n <Heatmap\n division={division}\n heatmapTimeUnits={heatmapTimeUnits}\n instruments={instruments}\n />\n )}\n {selectedCorrelation === 'matrix' && (\n <Matrix division={division} instruments={instruments} />\n )}\n </div>\n )\n );\n};\n\nexport { Main };\n"],"mappings":"AAAA,SAASA,IAAI,EAAEC,IAAI,EAAEC,iBAAiB,QAAQ,2BAA2B;AACzE,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAEvC,SAASC,OAAO,QAAQ,cAAc;AACtC,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,uBAAuB,EAAEC,sBAAsB,QAAQ,UAAU;AAG1E,MAAMC,IAAI,GAAGC,IAAA,IAAkE;EAAA,IAAjE;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAA4B,CAAC,GAAAJ,IAAA;EACxE,MAAM;IAAEK;EAAK,CAAC,GAAGd,iBAAiB,CAAC,CAAC;EACpC,MAAMe,SAAS,GAAGD,IAAI,KAAKhB,IAAI,CAACkB,OAAO;EACvC,MAAM,CAACC,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGf,QAAQ,
|
|
1
|
+
{"version":3,"file":"Main.js","names":["Size","Tabs","useLayoutProvider","useLocale","React","useState","Heatmap","Matrix","navigationConfigDesktop","navigationConfigMobile","Main","_ref","division","sort","instruments","heatmapTimeUnits","size","isDesktop","DESKTOP","selectedCorrelation","setSelectedCorrelation","toLowerCase","id","lang","createElement","mobileFullWidth","activeTab","handleClick","_ref2","currentTarget","value","items","labelCallback"],"sources":["../../../src/CorrelationWidget/Main.tsx"],"sourcesContent":["import { Size, Tabs, useLayoutProvider } from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useState } from 'react';\n\nimport { Heatmap } from './components';\nimport { Matrix } from './components/Matrix';\nimport { navigationConfigDesktop, navigationConfigMobile } from './config';\nimport type { MainProps } from './types';\n\nconst Main = ({ division, sort, instruments, heatmapTimeUnits }: MainProps) => {\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const [selectedCorrelation, setSelectedCorrelation] = useState(\n sort?.toLowerCase() || navigationConfigDesktop[0].id\n );\n const { lang } = useLocale();\n\n return (\n size && (\n <div data-testid=\"correlation-wrapper\">\n {!sort && (\n <Tabs\n mobileFullWidth\n activeTab={selectedCorrelation}\n handleClick={({ currentTarget: { value } }) =>\n setSelectedCorrelation(value)\n }\n items={isDesktop ? navigationConfigDesktop : navigationConfigMobile}\n labelCallback={lang}\n />\n )}\n {selectedCorrelation === 'heatmap' && (\n <Heatmap\n division={division}\n heatmapTimeUnits={heatmapTimeUnits}\n instruments={instruments}\n />\n )}\n {selectedCorrelation === 'matrix' && (\n <Matrix division={division} instruments={instruments} />\n )}\n </div>\n )\n );\n};\n\nexport { Main };\n"],"mappings":"AAAA,SAASA,IAAI,EAAEC,IAAI,EAAEC,iBAAiB,QAAQ,2BAA2B;AACzE,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAEvC,SAASC,OAAO,QAAQ,cAAc;AACtC,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,uBAAuB,EAAEC,sBAAsB,QAAQ,UAAU;AAG1E,MAAMC,IAAI,GAAGC,IAAA,IAAkE;EAAA,IAAjE;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAA4B,CAAC,GAAAJ,IAAA;EACxE,MAAM;IAAEK;EAAK,CAAC,GAAGd,iBAAiB,CAAC,CAAC;EACpC,MAAMe,SAAS,GAAGD,IAAI,KAAKhB,IAAI,CAACkB,OAAO;EACvC,MAAM,CAACC,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGf,QAAQ,CAC5DQ,IAAI,EAAEQ,WAAW,CAAC,CAAC,IAAIb,uBAAuB,CAAC,CAAC,CAAC,CAACc,EACpD,CAAC;EACD,MAAM;IAAEC;EAAK,CAAC,GAAGpB,SAAS,CAAC,CAAC;EAE5B,OACEa,IAAI,IACFZ,KAAA,CAAAoB,aAAA;IAAK,eAAY;EAAqB,GACnC,CAACX,IAAI,IACJT,KAAA,CAAAoB,aAAA,CAACvB,IAAI;IACHwB,eAAe;IACfC,SAAS,EAAEP,mBAAoB;IAC/BQ,WAAW,EAAEC,KAAA;MAAA,IAAC;QAAEC,aAAa,EAAE;UAAEC;QAAM;MAAE,CAAC,GAAAF,KAAA;MAAA,OACxCR,sBAAsB,CAACU,KAAK,CAAC;IAAA,CAC9B;IACDC,KAAK,EAAEd,SAAS,GAAGT,uBAAuB,GAAGC,sBAAuB;IACpEuB,aAAa,EAAET;EAAK,CACrB,CACF,EACAJ,mBAAmB,KAAK,SAAS,IAChCf,KAAA,CAAAoB,aAAA,CAAClB,OAAO;IACNM,QAAQ,EAAEA,QAAS;IACnBG,gBAAgB,EAAEA,gBAAiB;IACnCD,WAAW,EAAEA;EAAY,CAC1B,CACF,EACAK,mBAAmB,KAAK,QAAQ,IAC/Bf,KAAA,CAAAoB,aAAA,CAACjB,MAAM;IAACK,QAAQ,EAAEA,QAAS;IAACE,WAAW,EAAEA;EAAY,CAAE,CAEtD,CACN;AAEL,CAAC;AAED,SAASJ,IAAI","ignoreList":[]}
|
|
@@ -32,7 +32,7 @@ const Heatmap = _ref => {
|
|
|
32
32
|
let {
|
|
33
33
|
id
|
|
34
34
|
} = _ref2;
|
|
35
|
-
return
|
|
35
|
+
return timeSpans?.length > 0 ? timeSpans?.includes(id) : id;
|
|
36
36
|
});
|
|
37
37
|
const showError = error || instruments && instruments.length === 1 || timeSpans && timeSpans.length === 1;
|
|
38
38
|
return React.createElement(React.Fragment, null, !showError && React.createElement(React.Fragment, null, React.createElement("div", {
|
|
@@ -46,10 +46,10 @@ const Heatmap = _ref => {
|
|
|
46
46
|
})
|
|
47
47
|
}, React.createElement(Spinner, {
|
|
48
48
|
size: SpinnerSize.lg
|
|
49
|
-
})), !loading &&
|
|
49
|
+
})), !loading && data?.correlationHeatmap && React.createElement("div", {
|
|
50
50
|
"data-testid": "heatmap-wrapper"
|
|
51
51
|
}, React.createElement(GridHeader, {
|
|
52
|
-
label:
|
|
52
|
+
label: `${lang('reference_instrument')}: ${data?.correlationHeatmap.baseInstrument.displayName}`
|
|
53
53
|
}), React.createElement(HeatmapGrid, {
|
|
54
54
|
data: data,
|
|
55
55
|
headerData: headerData
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Heatmap.js","names":["useQuery","ChartError","Spinner","SpinnerSize","useLocale","classnames","React","getCorrelationHeatmap","heatmapGridHeader","GridHeader","GridLegend","HeatmapGrid","Heatmap","_ref","division","instruments","heatmapTimeUnits","timeSpans","lang","loading","data","error","variables","fetchPolicy","headerData","filter","_ref2","id","length","includes","showError","createElement","Fragment","className","undefined","size","lg","correlationHeatmap","label","
|
|
1
|
+
{"version":3,"file":"Heatmap.js","names":["useQuery","ChartError","Spinner","SpinnerSize","useLocale","classnames","React","getCorrelationHeatmap","heatmapGridHeader","GridHeader","GridLegend","HeatmapGrid","Heatmap","_ref","division","instruments","heatmapTimeUnits","timeSpans","lang","loading","data","error","variables","fetchPolicy","headerData","filter","_ref2","id","length","includes","showError","createElement","Fragment","className","undefined","size","lg","correlationHeatmap","label","baseInstrument","displayName"],"sources":["../../../../../src/CorrelationWidget/components/Heatmap/Heatmap.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { ChartError, Spinner, SpinnerSize } from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { getCorrelationHeatmap } from '../../../gql/getCorrelationHeatmap';\nimport type {\n GetCorrelationHeatmapQuery,\n GetCorrelationHeatmapQueryVariables,\n} from '../../../gql/types/graphql';\nimport { heatmapGridHeader } from '../../config';\nimport type { HeatmapProps } from '../../types';\nimport { GridHeader, GridLegend } from '../Grid';\nimport { HeatmapGrid } from './HeatmapGrid';\n\nconst Heatmap = ({\n division,\n instruments,\n heatmapTimeUnits: timeSpans,\n}: HeatmapProps) => {\n const { lang } = useLocale();\n const { loading, data, error } = useQuery<\n GetCorrelationHeatmapQuery,\n GetCorrelationHeatmapQueryVariables\n >(getCorrelationHeatmap, {\n variables: {\n division,\n instruments,\n timeSpans,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const headerData = heatmapGridHeader.filter(({ id }) =>\n timeSpans?.length! > 0 ? timeSpans?.includes(id) : id\n );\n\n const showError =\n error ||\n (instruments && instruments.length === 1) ||\n (timeSpans && timeSpans.length === 1);\n\n return (\n <>\n {!showError && (\n <>\n <div\n className={classnames('lw-flex lw-flex-col lw-text-text-primary', {\n 'lw-min-h-[580px]': timeSpans === undefined,\n })}\n >\n {loading && (\n <div\n className={classnames(\n 'lw-flex lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary',\n {\n 'lw-h-[500px]': timeSpans === undefined,\n 'lw-h-[200px]': timeSpans !== undefined,\n }\n )}\n >\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {!loading && data?.correlationHeatmap && (\n <div data-testid=\"heatmap-wrapper\">\n <GridHeader\n label={`${lang('reference_instrument')}: ${data?.correlationHeatmap.baseInstrument.displayName}`}\n />\n <HeatmapGrid data={data} headerData={headerData} />\n </div>\n )}\n </div>\n <GridLegend />\n </>\n )}\n {!loading && showError && (\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 </>\n );\n};\n\nexport { Heatmap };\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,UAAU,EAAEC,OAAO,EAAEC,WAAW,QAAQ,2BAA2B;AAC5E,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,qBAAqB,QAAQ,oCAAoC;AAK1E,SAASC,iBAAiB,QAAQ,cAAc;AAEhD,SAASC,UAAU,EAAEC,UAAU,QAAQ,SAAS;AAChD,SAASC,WAAW,QAAQ,eAAe;AAE3C,MAAMC,OAAO,GAAGC,IAAA,IAII;EAAA,IAJH;IACfC,QAAQ;IACRC,WAAW;IACXC,gBAAgB,EAAEC;EACN,CAAC,GAAAJ,IAAA;EACb,MAAM;IAAEK;EAAK,CAAC,GAAGd,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAEe,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAGrB,QAAQ,CAGvCO,qBAAqB,EAAE;IACvBe,SAAS,EAAE;MACTR,QAAQ;MACRC,WAAW;MACXE;IACF,CAAC;IACDM,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,UAAU,GAAGhB,iBAAiB,CAACiB,MAAM,CAACC,KAAA;IAAA,IAAC;MAAEC;IAAG,CAAC,GAAAD,KAAA;IAAA,OACjDT,SAAS,EAAEW,MAAM,GAAI,CAAC,GAAGX,SAAS,EAAEY,QAAQ,CAACF,EAAE,CAAC,GAAGA,EAAE;EAAA,CACvD,CAAC;EAED,MAAMG,SAAS,GACbT,KAAK,IACJN,WAAW,IAAIA,WAAW,CAACa,MAAM,KAAK,CAAE,IACxCX,SAAS,IAAIA,SAAS,CAACW,MAAM,KAAK,CAAE;EAEvC,OACEtB,KAAA,CAAAyB,aAAA,CAAAzB,KAAA,CAAA0B,QAAA,QACG,CAACF,SAAS,IACTxB,KAAA,CAAAyB,aAAA,CAAAzB,KAAA,CAAA0B,QAAA,QACE1B,KAAA,CAAAyB,aAAA;IACEE,SAAS,EAAE5B,UAAU,CAAC,0CAA0C,EAAE;MAChE,kBAAkB,EAAEY,SAAS,KAAKiB;IACpC,CAAC;EAAE,GAEFf,OAAO,IACNb,KAAA,CAAAyB,aAAA;IACEE,SAAS,EAAE5B,UAAU,CACnB,sFAAsF,EACtF;MACE,cAAc,EAAEY,SAAS,KAAKiB,SAAS;MACvC,cAAc,EAAEjB,SAAS,KAAKiB;IAChC,CACF;EAAE,GAEF5B,KAAA,CAAAyB,aAAA,CAAC7B,OAAO;IAACiC,IAAI,EAAEhC,WAAW,CAACiC;EAAG,CAAE,CAC7B,CACN,EACA,CAACjB,OAAO,IAAIC,IAAI,EAAEiB,kBAAkB,IACnC/B,KAAA,CAAAyB,aAAA;IAAK,eAAY;EAAiB,GAChCzB,KAAA,CAAAyB,aAAA,CAACtB,UAAU;IACT6B,KAAK,EAAE,GAAGpB,IAAI,CAAC,sBAAsB,CAAC,KAAKE,IAAI,EAAEiB,kBAAkB,CAACE,cAAc,CAACC,WAAW;EAAG,CAClG,CAAC,EACFlC,KAAA,CAAAyB,aAAA,CAACpB,WAAW;IAACS,IAAI,EAAEA,IAAK;IAACI,UAAU,EAAEA;EAAW,CAAE,CAC/C,CAEJ,CAAC,EACNlB,KAAA,CAAAyB,aAAA,CAACrB,UAAU,MAAE,CACb,CACH,EACA,CAACS,OAAO,IAAIW,SAAS,IACpBxB,KAAA,CAAAyB,aAAA;IAAKE,SAAS,EAAC;EAAmG,GAChH3B,KAAA,CAAAyB,aAAA,CAAC9B,UAAU,MAAE,CACV,CAEP,CAAC;AAEP,CAAC;AAED,SAASW,OAAO","ignoreList":[]}
|
|
@@ -31,7 +31,7 @@ const HeatmapGrid = _ref => {
|
|
|
31
31
|
className: classnames('lw-relative lw-grid lw-grid-cols-[var(--cols)] lw-overflow-x-auto lw-border-x lw-border-t lw-border-solid lw-border-border-primary lw-bg-border-primary lw-text-sm', {}),
|
|
32
32
|
"data-testid": "heatmap-grid",
|
|
33
33
|
style: {
|
|
34
|
-
'--cols':
|
|
34
|
+
'--cols': `repeat(${columnsNumber + 1},minmax(70px,1fr))`
|
|
35
35
|
},
|
|
36
36
|
onMouseLeave: resetHover
|
|
37
37
|
}, React.createElement(GridCell, {
|
|
@@ -81,12 +81,12 @@ const HeatmapGrid = _ref => {
|
|
|
81
81
|
value
|
|
82
82
|
} = _ref7;
|
|
83
83
|
return value === null ? React.createElement(GridCell, {
|
|
84
|
-
key:
|
|
84
|
+
key: `${displayName}-${timeUnit}`,
|
|
85
85
|
empty: true,
|
|
86
86
|
mouseEnterHandler: resetHover,
|
|
87
87
|
noRightBorder: columnsNumber === index + 1
|
|
88
88
|
}) : React.createElement(GridCell, {
|
|
89
|
-
key:
|
|
89
|
+
key: `${displayName}-${timeUnit}`,
|
|
90
90
|
hovered: selectedInstrument === displayName && selectedTimeUnit === timeUnit,
|
|
91
91
|
mouseEnterHandler: () => {
|
|
92
92
|
setSelectedInstrument(displayName);
|