@oanda/labs-topical-instruments-widget 1.0.222 → 1.0.223
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 +880 -0
- package/dist/main/TopicalInstrumentsWidget/Main.js +13 -10
- package/dist/main/TopicalInstrumentsWidget/Main.js.map +1 -1
- package/dist/main/TopicalInstrumentsWidget/utils.js +27 -23
- package/dist/main/TopicalInstrumentsWidget/utils.js.map +1 -1
- package/dist/main/gql/getInstrumentsChart.js +3 -8
- package/dist/main/gql/getInstrumentsChart.js.map +1 -1
- package/dist/main/gql/getTopicalInstruments.js +3 -26
- package/dist/main/gql/getTopicalInstruments.js.map +1 -1
- package/dist/main/gql/types/fragment-masking.js +3 -2
- package/dist/main/gql/types/fragment-masking.js.map +1 -1
- package/dist/main/gql/types/gql.js +3 -3
- package/dist/main/gql/types/gql.js.map +1 -1
- package/dist/module/TopicalInstrumentsWidget/Main.js +12 -8
- package/dist/module/TopicalInstrumentsWidget/Main.js.map +1 -1
- package/dist/module/TopicalInstrumentsWidget/utils.js +27 -23
- package/dist/module/TopicalInstrumentsWidget/utils.js.map +1 -1
- package/dist/module/gql/getInstrumentsChart.js +3 -8
- package/dist/module/gql/getInstrumentsChart.js.map +1 -1
- package/dist/module/gql/getTopicalInstruments.js +3 -26
- package/dist/module/gql/getTopicalInstruments.js.map +1 -1
- package/dist/module/gql/types/fragment-masking.js +3 -2
- package/dist/module/gql/types/fragment-masking.js.map +1 -1
- package/dist/module/gql/types/gql.js +2 -1
- package/dist/module/gql/types/gql.js.map +1 -1
- package/package.json +4 -4
|
@@ -13,9 +13,9 @@ var _graphql = require("../gql/types/graphql");
|
|
|
13
13
|
var _config = require("./config");
|
|
14
14
|
var _constant = require("./constant");
|
|
15
15
|
var _utils = require("./utils");
|
|
16
|
-
function
|
|
17
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
18
17
|
const Main = _ref => {
|
|
18
|
+
var _data$records2, _data$totalCount;
|
|
19
19
|
let {
|
|
20
20
|
sort,
|
|
21
21
|
assetClass,
|
|
@@ -56,8 +56,9 @@ const Main = _ref => {
|
|
|
56
56
|
},
|
|
57
57
|
batchQuery: _getInstrumentsChart.getInstrumentsChart,
|
|
58
58
|
getBatchVariables: mainData => {
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
var _mainData$topicalInst;
|
|
60
|
+
const topicalInstruments = mainData === null || mainData === void 0 || (_mainData$topicalInst = mainData.topicalInstruments) === null || _mainData$topicalInst === void 0 ? void 0 : _mainData$topicalInst.map(i => i.name);
|
|
61
|
+
return topicalInstruments !== null && topicalInstruments !== void 0 && topicalInstruments.length ? {
|
|
61
62
|
instruments: topicalInstruments,
|
|
62
63
|
division
|
|
63
64
|
} : undefined;
|
|
@@ -67,7 +68,8 @@ const Main = _ref => {
|
|
|
67
68
|
});
|
|
68
69
|
(0, _react.useEffect)(() => {
|
|
69
70
|
if (!mainLoading && data) {
|
|
70
|
-
|
|
71
|
+
var _data$records;
|
|
72
|
+
setRecords((_data$records = data.records) !== null && _data$records !== void 0 ? _data$records : []);
|
|
71
73
|
}
|
|
72
74
|
}, [mainLoading, data]);
|
|
73
75
|
(0, _react.useEffect)(() => {
|
|
@@ -84,7 +86,8 @@ const Main = _ref => {
|
|
|
84
86
|
}
|
|
85
87
|
}, [isDesktop]);
|
|
86
88
|
(0, _react.useEffect)(() => {
|
|
87
|
-
|
|
89
|
+
var _records$0$chart;
|
|
90
|
+
if (records[0].instrument && ((_records$0$chart = records[0].chart) === null || _records$0$chart === void 0 ? void 0 : _records$0$chart.length) === 0) {
|
|
88
91
|
const instruments = records.map(_ref3 => {
|
|
89
92
|
let {
|
|
90
93
|
instrument
|
|
@@ -105,14 +108,14 @@ const Main = _ref => {
|
|
|
105
108
|
setRecords(emptyRecords);
|
|
106
109
|
setPageNumber(num);
|
|
107
110
|
};
|
|
108
|
-
const showError = !!error || data
|
|
109
|
-
const isPaginationDisabled = mainLoading || !!data
|
|
111
|
+
const showError = !!error || (data === null || data === void 0 || (_data$records2 = data.records) === null || _data$records2 === void 0 ? void 0 : _data$records2.length) === 0;
|
|
112
|
+
const isPaginationDisabled = mainLoading || !!(data !== null && data !== void 0 && data.totalCount) && (data === null || data === void 0 ? void 0 : data.totalCount) <= count;
|
|
110
113
|
return _react.default.createElement(_labsWidgetCommon.TableWidget, {
|
|
111
114
|
PaginationComponent: isTool ? _react.default.createElement(_labsWidgetCommon.Pagination, {
|
|
112
115
|
currentPage: pageNumber,
|
|
113
116
|
disabled: isPaginationDisabled,
|
|
114
117
|
recordsPerPage: count,
|
|
115
|
-
totalRecords: data
|
|
118
|
+
totalRecords: (_data$totalCount = data === null || data === void 0 ? void 0 : data.totalCount) !== null && _data$totalCount !== void 0 ? _data$totalCount : _constant.DEFAULT_TOTAL_COUNT,
|
|
116
119
|
onPageChange: handlePageChange
|
|
117
120
|
}) : undefined,
|
|
118
121
|
TabsComponent: isTool ? _react.default.createElement(_labsWidgetCommon.Tabs, {
|
|
@@ -132,7 +135,7 @@ const Main = _ref => {
|
|
|
132
135
|
records: records,
|
|
133
136
|
target: target,
|
|
134
137
|
testId: "topical-instruments-wrapper",
|
|
135
|
-
timestamp: data
|
|
138
|
+
timestamp: data === null || data === void 0 ? void 0 : data.updatedAt,
|
|
136
139
|
toolTipId: _constant.INSTRUMENT_TOOLTIP_ID
|
|
137
140
|
});
|
|
138
141
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Main.js","names":["_labsWidgetCommon","require","_monoI18n","_react","_interopRequireWildcard","_getInstrumentsChart","_getTopicalInstruments","_graphql","_config","_constant","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Main","_ref","sort","assetClass","division","count","DEFAULT_COUNT","columns","DEFAULT_COLUMNS","emptyRecords","Array","fill","lang","useLocale","size","useLayoutProvider","target","setQuery","useLiveRatesQuery","pageNumber","setPageNumber","useState","tiSort","setTiSort","TopicalSort","Popular","records","setRecords","isDesktop","Size","DESKTOP","navigationConfig","Division","Oc","navigationConfigOC","navigationConfigDefault","isTool","undefined","data","mainLoading","loading","error","useFetchCombinedDataRecords","mainQuery","getTopicalInstruments","mainVariables","offset","batchQuery","getInstrumentsChart","getBatchVariables","mainData","topicalInstruments","map","name","length","instruments","merge","chartData","getRecords","fetchPolicy","useEffect","instrument","_ref2","chart","_ref3","handleTabClick","currentTarget","value","handlePageChange","num","showError","isPaginationDisabled","totalCount","createElement","TableWidget","PaginationComponent","Pagination","currentPage","disabled","recordsPerPage","totalRecords","DEFAULT_TOTAL_COUNT","onPageChange","TabsComponent","Tabs","mobileFullWidth","activeTab","handleClick","items","labelCallback","activeColumns","hasError","headerColumns","getHeaderConfig","headerConfig","isChartLoading","isLoading","testId","timestamp","updatedAt","toolTipId","INSTRUMENT_TOOLTIP_ID","exports"],"sources":["../../../src/TopicalInstrumentsWidget/Main.tsx"],"sourcesContent":["import type { DataRecord } from '@oanda/labs-widget-common';\nimport {\n getHeaderConfig,\n Pagination,\n Size,\n TableWidget,\n Tabs,\n useFetchCombinedDataRecords,\n useLayoutProvider,\n useLiveRatesQuery,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useEffect, useState } from 'react';\n\nimport { getInstrumentsChart } from '../gql/getInstrumentsChart';\nimport { getTopicalInstruments } from '../gql/getTopicalInstruments';\nimport {\n Division,\n type GetInstrumentsChartQuery,\n type GetInstrumentsChartQueryVariables,\n type GetTopicalInstrumentsQuery,\n type GetTopicalInstrumentsQueryVariables,\n TopicalSort,\n} from '../gql/types/graphql';\nimport {\n headerConfig,\n navigationConfigDefault,\n navigationConfigOC,\n} from './config';\nimport {\n DEFAULT_COLUMNS,\n DEFAULT_COUNT,\n DEFAULT_TOTAL_COUNT,\n INSTRUMENT_TOOLTIP_ID,\n} from './constant';\nimport type { MainProps, TopicalInstrumentsData } from './types';\nimport { getRecords } from './utils';\n\nexport const Main = ({\n sort,\n assetClass,\n division,\n count = DEFAULT_COUNT,\n columns = DEFAULT_COLUMNS,\n}: MainProps) => {\n const emptyRecords = Array(count).fill({});\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const { target, setQuery } = useLiveRatesQuery();\n\n const [pageNumber, setPageNumber] = useState(0);\n const [tiSort, setTiSort] = useState(sort || TopicalSort.Popular);\n const [records, setRecords] = useState<DataRecord[]>(emptyRecords);\n\n const isDesktop = size === Size.DESKTOP;\n const navigationConfig =\n division === Division.Oc ? navigationConfigOC : navigationConfigDefault;\n const isTool = sort === undefined;\n\n const { data, mainLoading, loading, error } = useFetchCombinedDataRecords<\n GetTopicalInstrumentsQuery,\n GetTopicalInstrumentsQueryVariables,\n GetInstrumentsChartQuery,\n GetInstrumentsChartQueryVariables,\n TopicalInstrumentsData\n >({\n mainQuery: getTopicalInstruments,\n mainVariables: {\n sort: tiSort,\n division,\n assetClass,\n count,\n offset: pageNumber * 10,\n },\n batchQuery: getInstrumentsChart,\n getBatchVariables: (mainData) => {\n const topicalInstruments = mainData?.topicalInstruments?.map(\n (i) => i.name\n );\n return topicalInstruments?.length\n ? { instruments: topicalInstruments, division }\n : undefined;\n },\n merge: (mainData, chartData) => getRecords(mainData, chartData),\n fetchPolicy: 'network-only',\n });\n\n useEffect(() => {\n if (!mainLoading && data) {\n setRecords(data.records ?? []);\n }\n }, [mainLoading, data]);\n\n useEffect(() => {\n if (records[0].instrument) {\n const instruments = records.map(({ instrument }) => instrument);\n setQuery({ instruments });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDesktop]);\n\n useEffect(() => {\n if (records[0].instrument && records[0].chart?.length === 0) {\n const instruments = records.map(({ instrument }) => instrument);\n setQuery({ instruments });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [records]);\n\n const handleTabClick = (e: React.SyntheticEvent<HTMLButtonElement>) => {\n setRecords(emptyRecords);\n setTiSort(e.currentTarget.value as TopicalSort);\n setPageNumber(0);\n };\n\n const handlePageChange = (num: number) => {\n setRecords(emptyRecords);\n setPageNumber(num);\n };\n\n const showError = !!error || data?.records?.length === 0;\n const isPaginationDisabled =\n mainLoading || (!!data?.totalCount && data?.totalCount <= count);\n\n return (\n <TableWidget\n PaginationComponent={\n isTool ? (\n <Pagination\n currentPage={pageNumber}\n disabled={isPaginationDisabled}\n recordsPerPage={count}\n totalRecords={data?.totalCount ?? DEFAULT_TOTAL_COUNT}\n onPageChange={handlePageChange}\n />\n ) : undefined\n }\n TabsComponent={\n isTool ? (\n <Tabs\n mobileFullWidth\n activeTab={tiSort}\n handleClick={handleTabClick}\n items={navigationConfig}\n labelCallback={lang}\n />\n ) : undefined\n }\n activeColumns={columns}\n count={count}\n hasError={showError}\n headerColumns={getHeaderConfig(columns, headerConfig)}\n isChartLoading={loading}\n isLoading={mainLoading}\n pageNumber={pageNumber}\n records={records}\n target={target}\n testId=\"topical-instruments-wrapper\"\n timestamp={data?.updatedAt}\n toolTipId={INSTRUMENT_TOOLTIP_ID}\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Main.js","names":["_labsWidgetCommon","require","_monoI18n","_react","_interopRequireWildcard","_getInstrumentsChart","_getTopicalInstruments","_graphql","_config","_constant","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Main","_ref","_data$records2","_data$totalCount","sort","assetClass","division","count","DEFAULT_COUNT","columns","DEFAULT_COLUMNS","emptyRecords","Array","fill","lang","useLocale","size","useLayoutProvider","target","setQuery","useLiveRatesQuery","pageNumber","setPageNumber","useState","tiSort","setTiSort","TopicalSort","Popular","records","setRecords","isDesktop","Size","DESKTOP","navigationConfig","Division","Oc","navigationConfigOC","navigationConfigDefault","isTool","undefined","data","mainLoading","loading","error","useFetchCombinedDataRecords","mainQuery","getTopicalInstruments","mainVariables","offset","batchQuery","getInstrumentsChart","getBatchVariables","mainData","_mainData$topicalInst","topicalInstruments","map","name","length","instruments","merge","chartData","getRecords","fetchPolicy","useEffect","_data$records","instrument","_ref2","_records$0$chart","chart","_ref3","handleTabClick","currentTarget","value","handlePageChange","num","showError","isPaginationDisabled","totalCount","createElement","TableWidget","PaginationComponent","Pagination","currentPage","disabled","recordsPerPage","totalRecords","DEFAULT_TOTAL_COUNT","onPageChange","TabsComponent","Tabs","mobileFullWidth","activeTab","handleClick","items","labelCallback","activeColumns","hasError","headerColumns","getHeaderConfig","headerConfig","isChartLoading","isLoading","testId","timestamp","updatedAt","toolTipId","INSTRUMENT_TOOLTIP_ID","exports"],"sources":["../../../src/TopicalInstrumentsWidget/Main.tsx"],"sourcesContent":["import type { DataRecord } from '@oanda/labs-widget-common';\nimport {\n getHeaderConfig,\n Pagination,\n Size,\n TableWidget,\n Tabs,\n useFetchCombinedDataRecords,\n useLayoutProvider,\n useLiveRatesQuery,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useEffect, useState } from 'react';\n\nimport { getInstrumentsChart } from '../gql/getInstrumentsChart';\nimport { getTopicalInstruments } from '../gql/getTopicalInstruments';\nimport {\n Division,\n type GetInstrumentsChartQuery,\n type GetInstrumentsChartQueryVariables,\n type GetTopicalInstrumentsQuery,\n type GetTopicalInstrumentsQueryVariables,\n TopicalSort,\n} from '../gql/types/graphql';\nimport {\n headerConfig,\n navigationConfigDefault,\n navigationConfigOC,\n} from './config';\nimport {\n DEFAULT_COLUMNS,\n DEFAULT_COUNT,\n DEFAULT_TOTAL_COUNT,\n INSTRUMENT_TOOLTIP_ID,\n} from './constant';\nimport type { MainProps, TopicalInstrumentsData } from './types';\nimport { getRecords } from './utils';\n\nexport const Main = ({\n sort,\n assetClass,\n division,\n count = DEFAULT_COUNT,\n columns = DEFAULT_COLUMNS,\n}: MainProps) => {\n const emptyRecords = Array(count).fill({});\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const { target, setQuery } = useLiveRatesQuery();\n\n const [pageNumber, setPageNumber] = useState(0);\n const [tiSort, setTiSort] = useState(sort || TopicalSort.Popular);\n const [records, setRecords] = useState<DataRecord[]>(emptyRecords);\n\n const isDesktop = size === Size.DESKTOP;\n const navigationConfig =\n division === Division.Oc ? navigationConfigOC : navigationConfigDefault;\n const isTool = sort === undefined;\n\n const { data, mainLoading, loading, error } = useFetchCombinedDataRecords<\n GetTopicalInstrumentsQuery,\n GetTopicalInstrumentsQueryVariables,\n GetInstrumentsChartQuery,\n GetInstrumentsChartQueryVariables,\n TopicalInstrumentsData\n >({\n mainQuery: getTopicalInstruments,\n mainVariables: {\n sort: tiSort,\n division,\n assetClass,\n count,\n offset: pageNumber * 10,\n },\n batchQuery: getInstrumentsChart,\n getBatchVariables: (mainData) => {\n const topicalInstruments = mainData?.topicalInstruments?.map(\n (i) => i.name\n );\n return topicalInstruments?.length\n ? { instruments: topicalInstruments, division }\n : undefined;\n },\n merge: (mainData, chartData) => getRecords(mainData, chartData),\n fetchPolicy: 'network-only',\n });\n\n useEffect(() => {\n if (!mainLoading && data) {\n setRecords(data.records ?? []);\n }\n }, [mainLoading, data]);\n\n useEffect(() => {\n if (records[0].instrument) {\n const instruments = records.map(({ instrument }) => instrument);\n setQuery({ instruments });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDesktop]);\n\n useEffect(() => {\n if (records[0].instrument && records[0].chart?.length === 0) {\n const instruments = records.map(({ instrument }) => instrument);\n setQuery({ instruments });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [records]);\n\n const handleTabClick = (e: React.SyntheticEvent<HTMLButtonElement>) => {\n setRecords(emptyRecords);\n setTiSort(e.currentTarget.value as TopicalSort);\n setPageNumber(0);\n };\n\n const handlePageChange = (num: number) => {\n setRecords(emptyRecords);\n setPageNumber(num);\n };\n\n const showError = !!error || data?.records?.length === 0;\n const isPaginationDisabled =\n mainLoading || (!!data?.totalCount && data?.totalCount <= count);\n\n return (\n <TableWidget\n PaginationComponent={\n isTool ? (\n <Pagination\n currentPage={pageNumber}\n disabled={isPaginationDisabled}\n recordsPerPage={count}\n totalRecords={data?.totalCount ?? DEFAULT_TOTAL_COUNT}\n onPageChange={handlePageChange}\n />\n ) : undefined\n }\n TabsComponent={\n isTool ? (\n <Tabs\n mobileFullWidth\n activeTab={tiSort}\n handleClick={handleTabClick}\n items={navigationConfig}\n labelCallback={lang}\n />\n ) : undefined\n }\n activeColumns={columns}\n count={count}\n hasError={showError}\n headerColumns={getHeaderConfig(columns, headerConfig)}\n isChartLoading={loading}\n isLoading={mainLoading}\n pageNumber={pageNumber}\n records={records}\n target={target}\n testId=\"topical-instruments-wrapper\"\n timestamp={data?.updatedAt}\n toolTipId={INSTRUMENT_TOOLTIP_ID}\n />\n );\n};\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AAUA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,uBAAA,CAAAH,OAAA;AAEA,IAAAI,oBAAA,GAAAJ,OAAA;AACA,IAAAK,sBAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAQA,IAAAO,OAAA,GAAAP,OAAA;AAKA,IAAAQ,SAAA,GAAAR,OAAA;AAOA,IAAAS,MAAA,GAAAT,OAAA;AAAqC,SAAAG,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,CAAAO,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;AAE9B,MAAMkB,IAAI,GAAGC,IAAA,IAMH;EAAA,IAAAC,cAAA,EAAAC,gBAAA;EAAA,IANI;IACnBC,IAAI;IACJC,UAAU;IACVC,QAAQ;IACRC,KAAK,GAAGC,uBAAa;IACrBC,OAAO,GAAGC;EACD,CAAC,GAAAT,IAAA;EACV,MAAMU,YAAY,GAAGC,KAAK,CAACL,KAAK,CAAC,CAACM,IAAI,CAAC,CAAC,CAAC,CAAC;EAC1C,MAAM;IAAEC;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAC5B,MAAM;IAAEC;EAAK,CAAC,GAAG,IAAAC,mCAAiB,EAAC,CAAC;EACpC,MAAM;IAAEC,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,mCAAiB,EAAC,CAAC;EAEhD,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC;EAC/C,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAF,eAAQ,EAACnB,IAAI,IAAIsB,oBAAW,CAACC,OAAO,CAAC;EACjE,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAN,eAAQ,EAAeZ,YAAY,CAAC;EAElE,MAAMmB,SAAS,GAAGd,IAAI,KAAKe,sBAAI,CAACC,OAAO;EACvC,MAAMC,gBAAgB,GACpB3B,QAAQ,KAAK4B,iBAAQ,CAACC,EAAE,GAAGC,0BAAkB,GAAGC,+BAAuB;EACzE,MAAMC,MAAM,GAAGlC,IAAI,KAAKmC,SAAS;EAEjC,MAAM;IAAEC,IAAI;IAAEC,WAAW;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAG,IAAAC,6CAA2B,EAMvE;IACAC,SAAS,EAAEC,4CAAqB;IAChCC,aAAa,EAAE;MACb3C,IAAI,EAAEoB,MAAM;MACZlB,QAAQ;MACRD,UAAU;MACVE,KAAK;MACLyC,MAAM,EAAE3B,UAAU,GAAG;IACvB,CAAC;IACD4B,UAAU,EAAEC,wCAAmB;IAC/BC,iBAAiB,EAAGC,QAAQ,IAAK;MAAA,IAAAC,qBAAA;MAC/B,MAAMC,kBAAkB,GAAGF,QAAQ,aAARA,QAAQ,gBAAAC,qBAAA,GAARD,QAAQ,CAAEE,kBAAkB,cAAAD,qBAAA,uBAA5BA,qBAAA,CAA8BE,GAAG,CACzDnE,CAAC,IAAKA,CAAC,CAACoE,IACX,CAAC;MACD,OAAOF,kBAAkB,aAAlBA,kBAAkB,eAAlBA,kBAAkB,CAAEG,MAAM,GAC7B;QAAEC,WAAW,EAAEJ,kBAAkB;QAAEhD;MAAS,CAAC,GAC7CiC,SAAS;IACf,CAAC;IACDoB,KAAK,EAAEA,CAACP,QAAQ,EAAEQ,SAAS,KAAK,IAAAC,iBAAU,EAACT,QAAQ,EAAEQ,SAAS,CAAC;IAC/DE,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACtB,WAAW,IAAID,IAAI,EAAE;MAAA,IAAAwB,aAAA;MACxBnC,UAAU,EAAAmC,aAAA,GAACxB,IAAI,CAACZ,OAAO,cAAAoC,aAAA,cAAAA,aAAA,GAAI,EAAE,CAAC;IAChC;EACF,CAAC,EAAE,CAACvB,WAAW,EAAED,IAAI,CAAC,CAAC;EAEvB,IAAAuB,gBAAS,EAAC,MAAM;IACd,IAAInC,OAAO,CAAC,CAAC,CAAC,CAACqC,UAAU,EAAE;MACzB,MAAMP,WAAW,GAAG9B,OAAO,CAAC2B,GAAG,CAACW,KAAA;QAAA,IAAC;UAAED;QAAW,CAAC,GAAAC,KAAA;QAAA,OAAKD,UAAU;MAAA,EAAC;MAC/D9C,QAAQ,CAAC;QAAEuC;MAAY,CAAC,CAAC;IAC3B;EAEF,CAAC,EAAE,CAAC5B,SAAS,CAAC,CAAC;EAEf,IAAAiC,gBAAS,EAAC,MAAM;IAAA,IAAAI,gBAAA;IACd,IAAIvC,OAAO,CAAC,CAAC,CAAC,CAACqC,UAAU,IAAI,EAAAE,gBAAA,GAAAvC,OAAO,CAAC,CAAC,CAAC,CAACwC,KAAK,cAAAD,gBAAA,uBAAhBA,gBAAA,CAAkBV,MAAM,MAAK,CAAC,EAAE;MAC3D,MAAMC,WAAW,GAAG9B,OAAO,CAAC2B,GAAG,CAACc,KAAA;QAAA,IAAC;UAAEJ;QAAW,CAAC,GAAAI,KAAA;QAAA,OAAKJ,UAAU;MAAA,EAAC;MAC/D9C,QAAQ,CAAC;QAAEuC;MAAY,CAAC,CAAC;IAC3B;EAEF,CAAC,EAAE,CAAC9B,OAAO,CAAC,CAAC;EAEb,MAAM0C,cAAc,GAAIzF,CAA0C,IAAK;IACrEgD,UAAU,CAAClB,YAAY,CAAC;IACxBc,SAAS,CAAC5C,CAAC,CAAC0F,aAAa,CAACC,KAAoB,CAAC;IAC/ClD,aAAa,CAAC,CAAC,CAAC;EAClB,CAAC;EAED,MAAMmD,gBAAgB,GAAIC,GAAW,IAAK;IACxC7C,UAAU,CAAClB,YAAY,CAAC;IACxBW,aAAa,CAACoD,GAAG,CAAC;EACpB,CAAC;EAED,MAAMC,SAAS,GAAG,CAAC,CAAChC,KAAK,IAAI,CAAAH,IAAI,aAAJA,IAAI,gBAAAtC,cAAA,GAAJsC,IAAI,CAAEZ,OAAO,cAAA1B,cAAA,uBAAbA,cAAA,CAAeuD,MAAM,MAAK,CAAC;EACxD,MAAMmB,oBAAoB,GACxBnC,WAAW,IAAK,CAAC,EAACD,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEqC,UAAU,KAAI,CAAArC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEqC,UAAU,KAAItE,KAAM;EAElE,OACElC,MAAA,CAAAkB,OAAA,CAAAuF,aAAA,CAAC5G,iBAAA,CAAA6G,WAAW;IACVC,mBAAmB,EACjB1C,MAAM,GACJjE,MAAA,CAAAkB,OAAA,CAAAuF,aAAA,CAAC5G,iBAAA,CAAA+G,UAAU;MACTC,WAAW,EAAE7D,UAAW;MACxB8D,QAAQ,EAAEP,oBAAqB;MAC/BQ,cAAc,EAAE7E,KAAM;MACtB8E,YAAY,GAAAlF,gBAAA,GAAEqC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEqC,UAAU,cAAA1E,gBAAA,cAAAA,gBAAA,GAAImF,6BAAoB;MACtDC,YAAY,EAAEd;IAAiB,CAChC,CAAC,GACAlC,SACL;IACDiD,aAAa,EACXlD,MAAM,GACJjE,MAAA,CAAAkB,OAAA,CAAAuF,aAAA,CAAC5G,iBAAA,CAAAuH,IAAI;MACHC,eAAe;MACfC,SAAS,EAAEnE,MAAO;MAClBoE,WAAW,EAAEtB,cAAe;MAC5BuB,KAAK,EAAE5D,gBAAiB;MACxB6D,aAAa,EAAEhF;IAAK,CACrB,CAAC,GACAyB,SACL;IACDwD,aAAa,EAAEtF,OAAQ;IACvBF,KAAK,EAAEA,KAAM;IACbyF,QAAQ,EAAErB,SAAU;IACpBsB,aAAa,EAAE,IAAAC,iCAAe,EAACzF,OAAO,EAAE0F,oBAAY,CAAE;IACtDC,cAAc,EAAE1D,OAAQ;IACxB2D,SAAS,EAAE5D,WAAY;IACvBpB,UAAU,EAAEA,UAAW;IACvBO,OAAO,EAAEA,OAAQ;IACjBV,MAAM,EAAEA,MAAO;IACfoF,MAAM,EAAC,6BAA6B;IACpCC,SAAS,EAAE/D,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEgE,SAAU;IAC3BC,SAAS,EAAEC;EAAsB,CAClC,CAAC;AAEN,CAAC;AAACC,OAAA,CAAA3G,IAAA,GAAAA,IAAA","ignoreList":[]}
|
|
@@ -6,28 +6,32 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getRecords = void 0;
|
|
7
7
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
8
8
|
var _constant = require("./constant");
|
|
9
|
-
const getRecords = (data, chart) =>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
})
|
|
9
|
+
const getRecords = (data, chart) => {
|
|
10
|
+
var _data$topicalInstrume, _data$topicalInstrume2, _data$topicalInstrume3, _data$topicalInstrume4;
|
|
11
|
+
return {
|
|
12
|
+
records: (data === null || data === void 0 || (_data$topicalInstrume = data.topicalInstruments) === null || _data$topicalInstrume === void 0 ? void 0 : _data$topicalInstrume.map(_ref => {
|
|
13
|
+
var _chart$topicalInstrum;
|
|
14
|
+
let {
|
|
15
|
+
name: instrument,
|
|
16
|
+
displayName,
|
|
17
|
+
sentiment: {
|
|
18
|
+
longPercent,
|
|
19
|
+
shortPercent
|
|
20
|
+
}
|
|
21
|
+
} = _ref;
|
|
22
|
+
return {
|
|
23
|
+
instrument,
|
|
24
|
+
displayName,
|
|
25
|
+
sentiment: {
|
|
26
|
+
shortPercent,
|
|
27
|
+
longPercent
|
|
28
|
+
},
|
|
29
|
+
chart: (chart === null || chart === void 0 || (_chart$topicalInstrum = chart.topicalInstrumentsCharts) === null || _chart$topicalInstrum === void 0 || (_chart$topicalInstrum = _chart$topicalInstrum.find(ti => ti.name === instrument)) === null || _chart$topicalInstrum === void 0 ? void 0 : _chart$topicalInstrum.chart) || []
|
|
30
|
+
};
|
|
31
|
+
})) || [],
|
|
32
|
+
updatedAt: (_data$topicalInstrume2 = (_data$topicalInstrume3 = data.topicalInstruments) === null || _data$topicalInstrume3 === void 0 || (_data$topicalInstrume3 = _data$topicalInstrume3.find(ti => ti)) === null || _data$topicalInstrume3 === void 0 ? void 0 : _data$topicalInstrume3.updatedAt) !== null && _data$topicalInstrume2 !== void 0 ? _data$topicalInstrume2 : _labsWidgetCommon.EMPTY_VALUE,
|
|
33
|
+
totalCount: (_data$topicalInstrume4 = data.topicalInstrumentsTotalCount) !== null && _data$topicalInstrume4 !== void 0 ? _data$topicalInstrume4 : _constant.DEFAULT_TOTAL_COUNT
|
|
34
|
+
};
|
|
35
|
+
};
|
|
32
36
|
exports.getRecords = getRecords;
|
|
33
37
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["_labsWidgetCommon","require","_constant","getRecords","data","chart","records","topicalInstruments","map","_ref","name","instrument","displayName","sentiment","longPercent","shortPercent","topicalInstrumentsCharts","find","ti","updatedAt","EMPTY_VALUE","totalCount","topicalInstrumentsTotalCount","DEFAULT_TOTAL_COUNT","exports"],"sources":["../../../src/TopicalInstrumentsWidget/utils.ts"],"sourcesContent":["import { EMPTY_VALUE } from '@oanda/labs-widget-common';\n\nimport type {\n GetInstrumentsChartQuery,\n GetTopicalInstrumentsQuery,\n} from '../gql/types/graphql';\nimport { DEFAULT_TOTAL_COUNT } from './constant';\nimport type { TopicalInstrumentsData } from './types';\n\nexport const getRecords = (\n data: GetTopicalInstrumentsQuery,\n chart?: GetInstrumentsChartQuery\n): TopicalInstrumentsData => ({\n records:\n data?.topicalInstruments?.map(\n ({\n name: instrument,\n displayName,\n sentiment: { longPercent, shortPercent },\n }) => ({\n instrument,\n displayName,\n sentiment: { shortPercent, longPercent },\n chart:\n chart?.topicalInstrumentsCharts?.find((ti) => ti.name === instrument)\n ?.chart || [],\n })\n ) || [],\n updatedAt:\n data.topicalInstruments?.find((ti) => ti)?.updatedAt ?? EMPTY_VALUE,\n totalCount: data.topicalInstrumentsTotalCount ?? DEFAULT_TOTAL_COUNT,\n});\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAMA,IAAAC,SAAA,GAAAD,OAAA;AAGO,MAAME,UAAU,GAAGA,CACxBC,IAAgC,EAChCC,KAAgC,
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_labsWidgetCommon","require","_constant","getRecords","data","chart","_data$topicalInstrume","_data$topicalInstrume2","_data$topicalInstrume3","_data$topicalInstrume4","records","topicalInstruments","map","_ref","_chart$topicalInstrum","name","instrument","displayName","sentiment","longPercent","shortPercent","topicalInstrumentsCharts","find","ti","updatedAt","EMPTY_VALUE","totalCount","topicalInstrumentsTotalCount","DEFAULT_TOTAL_COUNT","exports"],"sources":["../../../src/TopicalInstrumentsWidget/utils.ts"],"sourcesContent":["import { EMPTY_VALUE } from '@oanda/labs-widget-common';\n\nimport type {\n GetInstrumentsChartQuery,\n GetTopicalInstrumentsQuery,\n} from '../gql/types/graphql';\nimport { DEFAULT_TOTAL_COUNT } from './constant';\nimport type { TopicalInstrumentsData } from './types';\n\nexport const getRecords = (\n data: GetTopicalInstrumentsQuery,\n chart?: GetInstrumentsChartQuery\n): TopicalInstrumentsData => ({\n records:\n data?.topicalInstruments?.map(\n ({\n name: instrument,\n displayName,\n sentiment: { longPercent, shortPercent },\n }) => ({\n instrument,\n displayName,\n sentiment: { shortPercent, longPercent },\n chart:\n chart?.topicalInstrumentsCharts?.find((ti) => ti.name === instrument)\n ?.chart || [],\n })\n ) || [],\n updatedAt:\n data.topicalInstruments?.find((ti) => ti)?.updatedAt ?? EMPTY_VALUE,\n totalCount: data.topicalInstrumentsTotalCount ?? DEFAULT_TOTAL_COUNT,\n});\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAMA,IAAAC,SAAA,GAAAD,OAAA;AAGO,MAAME,UAAU,GAAGA,CACxBC,IAAgC,EAChCC,KAAgC;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EAAA,OACJ;IAC5BC,OAAO,EACL,CAAAN,IAAI,aAAJA,IAAI,gBAAAE,qBAAA,GAAJF,IAAI,CAAEO,kBAAkB,cAAAL,qBAAA,uBAAxBA,qBAAA,CAA0BM,GAAG,CAC3BC,IAAA;MAAA,IAAAC,qBAAA;MAAA,IAAC;QACCC,IAAI,EAAEC,UAAU;QAChBC,WAAW;QACXC,SAAS,EAAE;UAAEC,WAAW;UAAEC;QAAa;MACzC,CAAC,GAAAP,IAAA;MAAA,OAAM;QACLG,UAAU;QACVC,WAAW;QACXC,SAAS,EAAE;UAAEE,YAAY;UAAED;QAAY,CAAC;QACxCd,KAAK,EACH,CAAAA,KAAK,aAALA,KAAK,gBAAAS,qBAAA,GAALT,KAAK,CAAEgB,wBAAwB,cAAAP,qBAAA,gBAAAA,qBAAA,GAA/BA,qBAAA,CAAiCQ,IAAI,CAAEC,EAAE,IAAKA,EAAE,CAACR,IAAI,KAAKC,UAAU,CAAC,cAAAF,qBAAA,uBAArEA,qBAAA,CACIT,KAAK,KAAI;MACjB,CAAC;IAAA,CACH,CAAC,KAAI,EAAE;IACTmB,SAAS,GAAAjB,sBAAA,IAAAC,sBAAA,GACPJ,IAAI,CAACO,kBAAkB,cAAAH,sBAAA,gBAAAA,sBAAA,GAAvBA,sBAAA,CAAyBc,IAAI,CAAEC,EAAE,IAAKA,EAAE,CAAC,cAAAf,sBAAA,uBAAzCA,sBAAA,CAA2CgB,SAAS,cAAAjB,sBAAA,cAAAA,sBAAA,GAAIkB,6BAAW;IACrEC,UAAU,GAAAjB,sBAAA,GAAEL,IAAI,CAACuB,4BAA4B,cAAAlB,sBAAA,cAAAA,sBAAA,GAAImB;EACnD,CAAC;AAAA,CAAC;AAACC,OAAA,CAAA1B,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
@@ -5,12 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getInstrumentsChart = void 0;
|
|
7
7
|
var _client = require("@apollo/client");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
topicalInstrumentsCharts(instruments: $instruments, division: $division) {
|
|
11
|
-
name
|
|
12
|
-
chart
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
`;
|
|
8
|
+
var _templateObject;
|
|
9
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
10
|
+
const getInstrumentsChart = exports.getInstrumentsChart = (0, _client.gql)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetInstrumentsChart($instruments: [String!], $division: Division) {\n topicalInstrumentsCharts(instruments: $instruments, division: $division) {\n name\n chart\n }\n }\n"])));
|
|
16
11
|
//# sourceMappingURL=getInstrumentsChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInstrumentsChart.js","names":["_client","require","getInstrumentsChart","exports","gql"],"sources":["../../../src/gql/getInstrumentsChart.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const getInstrumentsChart = gql`\n query GetInstrumentsChart($instruments: [String!], $division: Division) {\n topicalInstrumentsCharts(instruments: $instruments, division: $division) {\n name\n chart\n }\n }\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"file":"getInstrumentsChart.js","names":["_client","require","_templateObject","_taggedTemplateLiteral","e","t","slice","Object","freeze","defineProperties","raw","value","getInstrumentsChart","exports","gql"],"sources":["../../../src/gql/getInstrumentsChart.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const getInstrumentsChart = gql`\n query GetInstrumentsChart($instruments: [String!], $division: Division) {\n topicalInstrumentsCharts(instruments: $instruments, division: $division) {\n name\n chart\n }\n }\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAqC,IAAAC,eAAA;AAAA,SAAAC,uBAAAC,CAAA,EAAAC,CAAA,WAAAA,CAAA,KAAAA,CAAA,GAAAD,CAAA,CAAAE,KAAA,MAAAC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAE,gBAAA,CAAAL,CAAA,IAAAM,GAAA,IAAAC,KAAA,EAAAJ,MAAA,CAAAC,MAAA,CAAAH,CAAA;AAE9B,MAAMO,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,OAAGE,WAAG,EAAAZ,eAAA,KAAAA,eAAA,GAAAC,sBAAA,4MAOrC","ignoreList":[]}
|
|
@@ -5,30 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getTopicalInstruments = void 0;
|
|
7
7
|
var _client = require("@apollo/client");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
$sort: TopicalSort
|
|
11
|
-
$assetClass: AssetClassName
|
|
12
|
-
$division: Division
|
|
13
|
-
$count: Int
|
|
14
|
-
$offset: Int
|
|
15
|
-
) {
|
|
16
|
-
topicalInstruments(
|
|
17
|
-
sort: $sort
|
|
18
|
-
assetClass: $assetClass
|
|
19
|
-
division: $division
|
|
20
|
-
count: $count
|
|
21
|
-
offset: $offset
|
|
22
|
-
) {
|
|
23
|
-
name
|
|
24
|
-
displayName
|
|
25
|
-
sentiment {
|
|
26
|
-
shortPercent
|
|
27
|
-
longPercent
|
|
28
|
-
}
|
|
29
|
-
updatedAt
|
|
30
|
-
}
|
|
31
|
-
topicalInstrumentsTotalCount(sort: $sort, division: $division)
|
|
32
|
-
}
|
|
33
|
-
`;
|
|
8
|
+
var _templateObject;
|
|
9
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
10
|
+
const getTopicalInstruments = exports.getTopicalInstruments = (0, _client.gql)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetTopicalInstruments(\n $sort: TopicalSort!\n $assetClass: AssetClassName\n $division: Division\n $count: Int\n $offset: Int\n ) {\n topicalInstruments(\n sort: $sort\n assetClass: $assetClass\n division: $division\n count: $count\n offset: $offset\n ) {\n name\n displayName\n sentiment {\n shortPercent\n longPercent\n }\n updatedAt\n }\n topicalInstrumentsTotalCount(sort: $sort, division: $division)\n }\n"])));
|
|
34
11
|
//# sourceMappingURL=getTopicalInstruments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTopicalInstruments.js","names":["_client","require","getTopicalInstruments","exports","gql"],"sources":["../../../src/gql/getTopicalInstruments.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getTopicalInstruments = gql`\n query GetTopicalInstruments(\n $sort: TopicalSort!\n $assetClass: AssetClassName\n $division: Division\n $count: Int\n $offset: Int\n ) {\n topicalInstruments(\n sort: $sort\n assetClass: $assetClass\n division: $division\n count: $count\n offset: $offset\n ) {\n name\n displayName\n sentiment {\n shortPercent\n longPercent\n }\n updatedAt\n }\n topicalInstrumentsTotalCount(sort: $sort, division: $division)\n }\n`;\n\nexport { getTopicalInstruments };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"file":"getTopicalInstruments.js","names":["_client","require","_templateObject","_taggedTemplateLiteral","e","t","slice","Object","freeze","defineProperties","raw","value","getTopicalInstruments","exports","gql"],"sources":["../../../src/gql/getTopicalInstruments.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getTopicalInstruments = gql`\n query GetTopicalInstruments(\n $sort: TopicalSort!\n $assetClass: AssetClassName\n $division: Division\n $count: Int\n $offset: Int\n ) {\n topicalInstruments(\n sort: $sort\n assetClass: $assetClass\n division: $division\n count: $count\n offset: $offset\n ) {\n name\n displayName\n sentiment {\n shortPercent\n longPercent\n }\n updatedAt\n }\n topicalInstrumentsTotalCount(sort: $sort, division: $division)\n }\n`;\n\nexport { getTopicalInstruments };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAqC,IAAAC,eAAA;AAAA,SAAAC,uBAAAC,CAAA,EAAAC,CAAA,WAAAA,CAAA,KAAAA,CAAA,GAAAD,CAAA,CAAAE,KAAA,MAAAC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAE,gBAAA,CAAAL,CAAA,IAAAM,GAAA,IAAAC,KAAA,EAAAJ,MAAA,CAAAC,MAAA,CAAAH,CAAA;AAErC,MAAMO,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,OAAGE,WAAG,EAAAZ,eAAA,KAAAA,eAAA,GAAAC,sBAAA,ygBAyBhC","ignoreList":[]}
|
|
@@ -13,10 +13,11 @@ function makeFragmentData(data, _fragment) {
|
|
|
13
13
|
return data;
|
|
14
14
|
}
|
|
15
15
|
function isFragmentReady(queryNode, fragmentNode, data) {
|
|
16
|
-
|
|
16
|
+
var _meta__, _fragDef$name;
|
|
17
|
+
const deferredFields = (_meta__ = queryNode.__meta__) === null || _meta__ === void 0 ? void 0 : _meta__.deferredFields;
|
|
17
18
|
if (!deferredFields) return true;
|
|
18
19
|
const fragDef = fragmentNode.definitions[0];
|
|
19
|
-
const fragName = fragDef
|
|
20
|
+
const fragName = fragDef === null || fragDef === void 0 || (_fragDef$name = fragDef.name) === null || _fragDef$name === void 0 ? void 0 : _fragDef$name.value;
|
|
20
21
|
const fields = fragName && deferredFields[fragName] || [];
|
|
21
22
|
return fields.length > 0 && fields.every(field => data && field in data);
|
|
22
23
|
}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"fragment-masking.js","names":["useFragment","_documentNode","fragmentType","makeFragmentData","data","_fragment","isFragmentReady","queryNode","fragmentNode","_meta__","_fragDef$name","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;EAAA,IAAAK,OAAA,EAAAC,aAAA;EAC3C,MAAMC,cAAc,IAAAF,OAAA,GAClBF,SAAS,CAGTK,QAAQ,cAAAH,OAAA,uBAJaA,OAAA,CAIXE,cAAc;EAE1B,IAAI,CAACA,cAAc,EAAE,OAAO,IAAI;EAEhC,MAAME,OAAO,GAAGL,YAAY,CAACM,WAAW,CAAC,CAAC,CAE7B;EACb,MAAMC,QAAQ,GAAGF,OAAO,aAAPA,OAAO,gBAAAH,aAAA,GAAPG,OAAO,CAAEG,IAAI,cAAAN,aAAA,uBAAbA,aAAA,CAAeO,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,IAAKjB,IAAI,IAAIiB,KAAK,IAAIjB,IAAI,CAAC;AAC5E","ignoreList":[]}
|
|
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.graphql = graphql;
|
|
7
7
|
var types = _interopRequireWildcard(require("./graphql"));
|
|
8
|
-
function
|
|
9
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
8
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
10
9
|
const documents = {
|
|
11
10
|
'\n query GetInstrumentsChart($instruments: [String!], $division: Division) {\n topicalInstrumentsCharts(instruments: $instruments, division: $division) {\n name\n chart\n }\n }\n': types.GetInstrumentsChartDocument,
|
|
12
11
|
'\n query GetTopicalInstruments(\n $sort: TopicalSort!\n $assetClass: AssetClassName\n $division: Division\n $count: Int\n $offset: Int\n ) {\n topicalInstruments(\n sort: $sort\n assetClass: $assetClass\n division: $division\n count: $count\n offset: $offset\n ) {\n name\n displayName\n sentiment {\n shortPercent\n longPercent\n }\n updatedAt\n }\n topicalInstrumentsTotalCount(sort: $sort, division: $division)\n }\n': types.GetTopicalInstrumentsDocument
|
|
13
12
|
};
|
|
14
13
|
function graphql(source) {
|
|
15
|
-
|
|
14
|
+
var _source;
|
|
15
|
+
return (_source = documents[source]) !== null && _source !== void 0 ? _source : {};
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=gql.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gql.js","names":["types","_interopRequireWildcard","require","
|
|
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","GetInstrumentsChartDocument","GetTopicalInstrumentsDocument","graphql","source","_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 GetInstrumentsChart($instruments: [String!], $division: Division) {\\n topicalInstrumentsCharts(instruments: $instruments, division: $division) {\\n name\\n chart\\n }\\n }\\n':\n types.GetInstrumentsChartDocument,\n '\\n query GetTopicalInstruments(\\n $sort: TopicalSort!\\n $assetClass: AssetClassName\\n $division: Division\\n $count: Int\\n $offset: Int\\n ) {\\n topicalInstruments(\\n sort: $sort\\n assetClass: $assetClass\\n division: $division\\n count: $count\\n offset: $offset\\n ) {\\n name\\n displayName\\n sentiment {\\n shortPercent\\n longPercent\\n }\\n updatedAt\\n }\\n topicalInstrumentsTotalCount(sort: $sort, division: $division)\\n }\\n':\n types.GetTopicalInstrumentsDocument,\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 GetInstrumentsChart($instruments: [String!], $division: Division) {\\n topicalInstrumentsCharts(instruments: $instruments, division: $division) {\\n name\\n chart\\n }\\n }\\n'\n): (typeof documents)['\\n query GetInstrumentsChart($instruments: [String!], $division: Division) {\\n topicalInstrumentsCharts(instruments: $instruments, division: $division) {\\n name\\n chart\\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 GetTopicalInstruments(\\n $sort: TopicalSort!\\n $assetClass: AssetClassName\\n $division: Division\\n $count: Int\\n $offset: Int\\n ) {\\n topicalInstruments(\\n sort: $sort\\n assetClass: $assetClass\\n division: $division\\n count: $count\\n offset: $offset\\n ) {\\n name\\n displayName\\n sentiment {\\n shortPercent\\n longPercent\\n }\\n updatedAt\\n }\\n topicalInstrumentsTotalCount(sort: $sort, division: $division)\\n }\\n'\n): (typeof documents)['\\n query GetTopicalInstruments(\\n $sort: TopicalSort!\\n $assetClass: AssetClassName\\n $division: Division\\n $count: Int\\n $offset: Int\\n ) {\\n topicalInstruments(\\n sort: $sort\\n assetClass: $assetClass\\n division: $division\\n count: $count\\n offset: $offset\\n ) {\\n name\\n displayName\\n sentiment {\\n shortPercent\\n longPercent\\n }\\n updatedAt\\n }\\n topicalInstrumentsTotalCount(sort: $sort, division: $division)\\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,sMAAsM,EACpMtB,KAAK,CAACuB,2BAA2B;EACnC,mgBAAmgB,EACjgBvB,KAAK,CAACwB;AACV,CAAC;AA6BM,SAASC,OAAOA,CAACC,MAAc,EAAE;EAAA,IAAAC,OAAA;EACtC,QAAAA,OAAA,GAAQL,SAAS,CAASI,MAAM,CAAC,cAAAC,OAAA,cAAAA,OAAA,GAAI,CAAC,CAAC;AACzC","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ import { headerConfig, navigationConfigDefault, navigationConfigOC } from './con
|
|
|
8
8
|
import { DEFAULT_COLUMNS, DEFAULT_COUNT, DEFAULT_TOTAL_COUNT, INSTRUMENT_TOOLTIP_ID } from './constant';
|
|
9
9
|
import { getRecords } from './utils';
|
|
10
10
|
export const Main = _ref => {
|
|
11
|
+
var _data$records2, _data$totalCount;
|
|
11
12
|
let {
|
|
12
13
|
sort,
|
|
13
14
|
assetClass,
|
|
@@ -48,8 +49,9 @@ export const Main = _ref => {
|
|
|
48
49
|
},
|
|
49
50
|
batchQuery: getInstrumentsChart,
|
|
50
51
|
getBatchVariables: mainData => {
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
var _mainData$topicalInst;
|
|
53
|
+
const topicalInstruments = mainData === null || mainData === void 0 || (_mainData$topicalInst = mainData.topicalInstruments) === null || _mainData$topicalInst === void 0 ? void 0 : _mainData$topicalInst.map(i => i.name);
|
|
54
|
+
return topicalInstruments !== null && topicalInstruments !== void 0 && topicalInstruments.length ? {
|
|
53
55
|
instruments: topicalInstruments,
|
|
54
56
|
division
|
|
55
57
|
} : undefined;
|
|
@@ -59,7 +61,8 @@ export const Main = _ref => {
|
|
|
59
61
|
});
|
|
60
62
|
useEffect(() => {
|
|
61
63
|
if (!mainLoading && data) {
|
|
62
|
-
|
|
64
|
+
var _data$records;
|
|
65
|
+
setRecords((_data$records = data.records) !== null && _data$records !== void 0 ? _data$records : []);
|
|
63
66
|
}
|
|
64
67
|
}, [mainLoading, data]);
|
|
65
68
|
useEffect(() => {
|
|
@@ -76,7 +79,8 @@ export const Main = _ref => {
|
|
|
76
79
|
}
|
|
77
80
|
}, [isDesktop]);
|
|
78
81
|
useEffect(() => {
|
|
79
|
-
|
|
82
|
+
var _records$0$chart;
|
|
83
|
+
if (records[0].instrument && ((_records$0$chart = records[0].chart) === null || _records$0$chart === void 0 ? void 0 : _records$0$chart.length) === 0) {
|
|
80
84
|
const instruments = records.map(_ref3 => {
|
|
81
85
|
let {
|
|
82
86
|
instrument
|
|
@@ -97,14 +101,14 @@ export const Main = _ref => {
|
|
|
97
101
|
setRecords(emptyRecords);
|
|
98
102
|
setPageNumber(num);
|
|
99
103
|
};
|
|
100
|
-
const showError = !!error || data
|
|
101
|
-
const isPaginationDisabled = mainLoading || !!data
|
|
104
|
+
const showError = !!error || (data === null || data === void 0 || (_data$records2 = data.records) === null || _data$records2 === void 0 ? void 0 : _data$records2.length) === 0;
|
|
105
|
+
const isPaginationDisabled = mainLoading || !!(data !== null && data !== void 0 && data.totalCount) && (data === null || data === void 0 ? void 0 : data.totalCount) <= count;
|
|
102
106
|
return React.createElement(TableWidget, {
|
|
103
107
|
PaginationComponent: isTool ? React.createElement(Pagination, {
|
|
104
108
|
currentPage: pageNumber,
|
|
105
109
|
disabled: isPaginationDisabled,
|
|
106
110
|
recordsPerPage: count,
|
|
107
|
-
totalRecords: data
|
|
111
|
+
totalRecords: (_data$totalCount = data === null || data === void 0 ? void 0 : data.totalCount) !== null && _data$totalCount !== void 0 ? _data$totalCount : DEFAULT_TOTAL_COUNT,
|
|
108
112
|
onPageChange: handlePageChange
|
|
109
113
|
}) : undefined,
|
|
110
114
|
TabsComponent: isTool ? React.createElement(Tabs, {
|
|
@@ -124,7 +128,7 @@ export const Main = _ref => {
|
|
|
124
128
|
records: records,
|
|
125
129
|
target: target,
|
|
126
130
|
testId: "topical-instruments-wrapper",
|
|
127
|
-
timestamp: data
|
|
131
|
+
timestamp: data === null || data === void 0 ? void 0 : data.updatedAt,
|
|
128
132
|
toolTipId: INSTRUMENT_TOOLTIP_ID
|
|
129
133
|
});
|
|
130
134
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Main.js","names":["getHeaderConfig","Pagination","Size","TableWidget","Tabs","useFetchCombinedDataRecords","useLayoutProvider","useLiveRatesQuery","useLocale","React","useEffect","useState","getInstrumentsChart","getTopicalInstruments","Division","TopicalSort","headerConfig","navigationConfigDefault","navigationConfigOC","DEFAULT_COLUMNS","DEFAULT_COUNT","DEFAULT_TOTAL_COUNT","INSTRUMENT_TOOLTIP_ID","getRecords","Main","_ref","sort","assetClass","division","count","columns","emptyRecords","Array","fill","lang","size","target","setQuery","pageNumber","setPageNumber","tiSort","setTiSort","Popular","records","setRecords","isDesktop","DESKTOP","navigationConfig","Oc","isTool","undefined","data","mainLoading","loading","error","mainQuery","mainVariables","offset","batchQuery","getBatchVariables","mainData","topicalInstruments","map","i","name","length","instruments","merge","chartData","fetchPolicy","instrument","_ref2","chart","_ref3","handleTabClick","e","currentTarget","value","handlePageChange","num","showError","isPaginationDisabled","totalCount","createElement","PaginationComponent","currentPage","disabled","recordsPerPage","totalRecords","onPageChange","TabsComponent","mobileFullWidth","activeTab","handleClick","items","labelCallback","activeColumns","hasError","headerColumns","isChartLoading","isLoading","testId","timestamp","updatedAt","toolTipId"],"sources":["../../../src/TopicalInstrumentsWidget/Main.tsx"],"sourcesContent":["import type { DataRecord } from '@oanda/labs-widget-common';\nimport {\n getHeaderConfig,\n Pagination,\n Size,\n TableWidget,\n Tabs,\n useFetchCombinedDataRecords,\n useLayoutProvider,\n useLiveRatesQuery,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useEffect, useState } from 'react';\n\nimport { getInstrumentsChart } from '../gql/getInstrumentsChart';\nimport { getTopicalInstruments } from '../gql/getTopicalInstruments';\nimport {\n Division,\n type GetInstrumentsChartQuery,\n type GetInstrumentsChartQueryVariables,\n type GetTopicalInstrumentsQuery,\n type GetTopicalInstrumentsQueryVariables,\n TopicalSort,\n} from '../gql/types/graphql';\nimport {\n headerConfig,\n navigationConfigDefault,\n navigationConfigOC,\n} from './config';\nimport {\n DEFAULT_COLUMNS,\n DEFAULT_COUNT,\n DEFAULT_TOTAL_COUNT,\n INSTRUMENT_TOOLTIP_ID,\n} from './constant';\nimport type { MainProps, TopicalInstrumentsData } from './types';\nimport { getRecords } from './utils';\n\nexport const Main = ({\n sort,\n assetClass,\n division,\n count = DEFAULT_COUNT,\n columns = DEFAULT_COLUMNS,\n}: MainProps) => {\n const emptyRecords = Array(count).fill({});\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const { target, setQuery } = useLiveRatesQuery();\n\n const [pageNumber, setPageNumber] = useState(0);\n const [tiSort, setTiSort] = useState(sort || TopicalSort.Popular);\n const [records, setRecords] = useState<DataRecord[]>(emptyRecords);\n\n const isDesktop = size === Size.DESKTOP;\n const navigationConfig =\n division === Division.Oc ? navigationConfigOC : navigationConfigDefault;\n const isTool = sort === undefined;\n\n const { data, mainLoading, loading, error } = useFetchCombinedDataRecords<\n GetTopicalInstrumentsQuery,\n GetTopicalInstrumentsQueryVariables,\n GetInstrumentsChartQuery,\n GetInstrumentsChartQueryVariables,\n TopicalInstrumentsData\n >({\n mainQuery: getTopicalInstruments,\n mainVariables: {\n sort: tiSort,\n division,\n assetClass,\n count,\n offset: pageNumber * 10,\n },\n batchQuery: getInstrumentsChart,\n getBatchVariables: (mainData) => {\n const topicalInstruments = mainData?.topicalInstruments?.map(\n (i) => i.name\n );\n return topicalInstruments?.length\n ? { instruments: topicalInstruments, division }\n : undefined;\n },\n merge: (mainData, chartData) => getRecords(mainData, chartData),\n fetchPolicy: 'network-only',\n });\n\n useEffect(() => {\n if (!mainLoading && data) {\n setRecords(data.records ?? []);\n }\n }, [mainLoading, data]);\n\n useEffect(() => {\n if (records[0].instrument) {\n const instruments = records.map(({ instrument }) => instrument);\n setQuery({ instruments });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDesktop]);\n\n useEffect(() => {\n if (records[0].instrument && records[0].chart?.length === 0) {\n const instruments = records.map(({ instrument }) => instrument);\n setQuery({ instruments });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [records]);\n\n const handleTabClick = (e: React.SyntheticEvent<HTMLButtonElement>) => {\n setRecords(emptyRecords);\n setTiSort(e.currentTarget.value as TopicalSort);\n setPageNumber(0);\n };\n\n const handlePageChange = (num: number) => {\n setRecords(emptyRecords);\n setPageNumber(num);\n };\n\n const showError = !!error || data?.records?.length === 0;\n const isPaginationDisabled =\n mainLoading || (!!data?.totalCount && data?.totalCount <= count);\n\n return (\n <TableWidget\n PaginationComponent={\n isTool ? (\n <Pagination\n currentPage={pageNumber}\n disabled={isPaginationDisabled}\n recordsPerPage={count}\n totalRecords={data?.totalCount ?? DEFAULT_TOTAL_COUNT}\n onPageChange={handlePageChange}\n />\n ) : undefined\n }\n TabsComponent={\n isTool ? (\n <Tabs\n mobileFullWidth\n activeTab={tiSort}\n handleClick={handleTabClick}\n items={navigationConfig}\n labelCallback={lang}\n />\n ) : undefined\n }\n activeColumns={columns}\n count={count}\n hasError={showError}\n headerColumns={getHeaderConfig(columns, headerConfig)}\n isChartLoading={loading}\n isLoading={mainLoading}\n pageNumber={pageNumber}\n records={records}\n target={target}\n testId=\"topical-instruments-wrapper\"\n timestamp={data?.updatedAt}\n toolTipId={INSTRUMENT_TOOLTIP_ID}\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Main.js","names":["getHeaderConfig","Pagination","Size","TableWidget","Tabs","useFetchCombinedDataRecords","useLayoutProvider","useLiveRatesQuery","useLocale","React","useEffect","useState","getInstrumentsChart","getTopicalInstruments","Division","TopicalSort","headerConfig","navigationConfigDefault","navigationConfigOC","DEFAULT_COLUMNS","DEFAULT_COUNT","DEFAULT_TOTAL_COUNT","INSTRUMENT_TOOLTIP_ID","getRecords","Main","_ref","_data$records2","_data$totalCount","sort","assetClass","division","count","columns","emptyRecords","Array","fill","lang","size","target","setQuery","pageNumber","setPageNumber","tiSort","setTiSort","Popular","records","setRecords","isDesktop","DESKTOP","navigationConfig","Oc","isTool","undefined","data","mainLoading","loading","error","mainQuery","mainVariables","offset","batchQuery","getBatchVariables","mainData","_mainData$topicalInst","topicalInstruments","map","i","name","length","instruments","merge","chartData","fetchPolicy","_data$records","instrument","_ref2","_records$0$chart","chart","_ref3","handleTabClick","e","currentTarget","value","handlePageChange","num","showError","isPaginationDisabled","totalCount","createElement","PaginationComponent","currentPage","disabled","recordsPerPage","totalRecords","onPageChange","TabsComponent","mobileFullWidth","activeTab","handleClick","items","labelCallback","activeColumns","hasError","headerColumns","isChartLoading","isLoading","testId","timestamp","updatedAt","toolTipId"],"sources":["../../../src/TopicalInstrumentsWidget/Main.tsx"],"sourcesContent":["import type { DataRecord } from '@oanda/labs-widget-common';\nimport {\n getHeaderConfig,\n Pagination,\n Size,\n TableWidget,\n Tabs,\n useFetchCombinedDataRecords,\n useLayoutProvider,\n useLiveRatesQuery,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useEffect, useState } from 'react';\n\nimport { getInstrumentsChart } from '../gql/getInstrumentsChart';\nimport { getTopicalInstruments } from '../gql/getTopicalInstruments';\nimport {\n Division,\n type GetInstrumentsChartQuery,\n type GetInstrumentsChartQueryVariables,\n type GetTopicalInstrumentsQuery,\n type GetTopicalInstrumentsQueryVariables,\n TopicalSort,\n} from '../gql/types/graphql';\nimport {\n headerConfig,\n navigationConfigDefault,\n navigationConfigOC,\n} from './config';\nimport {\n DEFAULT_COLUMNS,\n DEFAULT_COUNT,\n DEFAULT_TOTAL_COUNT,\n INSTRUMENT_TOOLTIP_ID,\n} from './constant';\nimport type { MainProps, TopicalInstrumentsData } from './types';\nimport { getRecords } from './utils';\n\nexport const Main = ({\n sort,\n assetClass,\n division,\n count = DEFAULT_COUNT,\n columns = DEFAULT_COLUMNS,\n}: MainProps) => {\n const emptyRecords = Array(count).fill({});\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const { target, setQuery } = useLiveRatesQuery();\n\n const [pageNumber, setPageNumber] = useState(0);\n const [tiSort, setTiSort] = useState(sort || TopicalSort.Popular);\n const [records, setRecords] = useState<DataRecord[]>(emptyRecords);\n\n const isDesktop = size === Size.DESKTOP;\n const navigationConfig =\n division === Division.Oc ? navigationConfigOC : navigationConfigDefault;\n const isTool = sort === undefined;\n\n const { data, mainLoading, loading, error } = useFetchCombinedDataRecords<\n GetTopicalInstrumentsQuery,\n GetTopicalInstrumentsQueryVariables,\n GetInstrumentsChartQuery,\n GetInstrumentsChartQueryVariables,\n TopicalInstrumentsData\n >({\n mainQuery: getTopicalInstruments,\n mainVariables: {\n sort: tiSort,\n division,\n assetClass,\n count,\n offset: pageNumber * 10,\n },\n batchQuery: getInstrumentsChart,\n getBatchVariables: (mainData) => {\n const topicalInstruments = mainData?.topicalInstruments?.map(\n (i) => i.name\n );\n return topicalInstruments?.length\n ? { instruments: topicalInstruments, division }\n : undefined;\n },\n merge: (mainData, chartData) => getRecords(mainData, chartData),\n fetchPolicy: 'network-only',\n });\n\n useEffect(() => {\n if (!mainLoading && data) {\n setRecords(data.records ?? []);\n }\n }, [mainLoading, data]);\n\n useEffect(() => {\n if (records[0].instrument) {\n const instruments = records.map(({ instrument }) => instrument);\n setQuery({ instruments });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDesktop]);\n\n useEffect(() => {\n if (records[0].instrument && records[0].chart?.length === 0) {\n const instruments = records.map(({ instrument }) => instrument);\n setQuery({ instruments });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [records]);\n\n const handleTabClick = (e: React.SyntheticEvent<HTMLButtonElement>) => {\n setRecords(emptyRecords);\n setTiSort(e.currentTarget.value as TopicalSort);\n setPageNumber(0);\n };\n\n const handlePageChange = (num: number) => {\n setRecords(emptyRecords);\n setPageNumber(num);\n };\n\n const showError = !!error || data?.records?.length === 0;\n const isPaginationDisabled =\n mainLoading || (!!data?.totalCount && data?.totalCount <= count);\n\n return (\n <TableWidget\n PaginationComponent={\n isTool ? (\n <Pagination\n currentPage={pageNumber}\n disabled={isPaginationDisabled}\n recordsPerPage={count}\n totalRecords={data?.totalCount ?? DEFAULT_TOTAL_COUNT}\n onPageChange={handlePageChange}\n />\n ) : undefined\n }\n TabsComponent={\n isTool ? (\n <Tabs\n mobileFullWidth\n activeTab={tiSort}\n handleClick={handleTabClick}\n items={navigationConfig}\n labelCallback={lang}\n />\n ) : undefined\n }\n activeColumns={columns}\n count={count}\n hasError={showError}\n headerColumns={getHeaderConfig(columns, headerConfig)}\n isChartLoading={loading}\n isLoading={mainLoading}\n pageNumber={pageNumber}\n records={records}\n target={target}\n testId=\"topical-instruments-wrapper\"\n timestamp={data?.updatedAt}\n toolTipId={INSTRUMENT_TOOLTIP_ID}\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,26 +1,30 @@
|
|
|
1
1
|
import { EMPTY_VALUE } from '@oanda/labs-widget-common';
|
|
2
2
|
import { DEFAULT_TOTAL_COUNT } from './constant';
|
|
3
|
-
export const getRecords = (data, chart) =>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
})
|
|
3
|
+
export const getRecords = (data, chart) => {
|
|
4
|
+
var _data$topicalInstrume, _data$topicalInstrume2, _data$topicalInstrume3, _data$topicalInstrume4;
|
|
5
|
+
return {
|
|
6
|
+
records: (data === null || data === void 0 || (_data$topicalInstrume = data.topicalInstruments) === null || _data$topicalInstrume === void 0 ? void 0 : _data$topicalInstrume.map(_ref => {
|
|
7
|
+
var _chart$topicalInstrum;
|
|
8
|
+
let {
|
|
9
|
+
name: instrument,
|
|
10
|
+
displayName,
|
|
11
|
+
sentiment: {
|
|
12
|
+
longPercent,
|
|
13
|
+
shortPercent
|
|
14
|
+
}
|
|
15
|
+
} = _ref;
|
|
16
|
+
return {
|
|
17
|
+
instrument,
|
|
18
|
+
displayName,
|
|
19
|
+
sentiment: {
|
|
20
|
+
shortPercent,
|
|
21
|
+
longPercent
|
|
22
|
+
},
|
|
23
|
+
chart: (chart === null || chart === void 0 || (_chart$topicalInstrum = chart.topicalInstrumentsCharts) === null || _chart$topicalInstrum === void 0 || (_chart$topicalInstrum = _chart$topicalInstrum.find(ti => ti.name === instrument)) === null || _chart$topicalInstrum === void 0 ? void 0 : _chart$topicalInstrum.chart) || []
|
|
24
|
+
};
|
|
25
|
+
})) || [],
|
|
26
|
+
updatedAt: (_data$topicalInstrume2 = (_data$topicalInstrume3 = data.topicalInstruments) === null || _data$topicalInstrume3 === void 0 || (_data$topicalInstrume3 = _data$topicalInstrume3.find(ti => ti)) === null || _data$topicalInstrume3 === void 0 ? void 0 : _data$topicalInstrume3.updatedAt) !== null && _data$topicalInstrume2 !== void 0 ? _data$topicalInstrume2 : EMPTY_VALUE,
|
|
27
|
+
totalCount: (_data$topicalInstrume4 = data.topicalInstrumentsTotalCount) !== null && _data$topicalInstrume4 !== void 0 ? _data$topicalInstrume4 : DEFAULT_TOTAL_COUNT
|
|
28
|
+
};
|
|
29
|
+
};
|
|
26
30
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["EMPTY_VALUE","DEFAULT_TOTAL_COUNT","getRecords","data","chart","records","topicalInstruments","map","_ref","name","instrument","displayName","sentiment","longPercent","shortPercent","topicalInstrumentsCharts","find","ti","updatedAt","totalCount","topicalInstrumentsTotalCount"],"sources":["../../../src/TopicalInstrumentsWidget/utils.ts"],"sourcesContent":["import { EMPTY_VALUE } from '@oanda/labs-widget-common';\n\nimport type {\n GetInstrumentsChartQuery,\n GetTopicalInstrumentsQuery,\n} from '../gql/types/graphql';\nimport { DEFAULT_TOTAL_COUNT } from './constant';\nimport type { TopicalInstrumentsData } from './types';\n\nexport const getRecords = (\n data: GetTopicalInstrumentsQuery,\n chart?: GetInstrumentsChartQuery\n): TopicalInstrumentsData => ({\n records:\n data?.topicalInstruments?.map(\n ({\n name: instrument,\n displayName,\n sentiment: { longPercent, shortPercent },\n }) => ({\n instrument,\n displayName,\n sentiment: { shortPercent, longPercent },\n chart:\n chart?.topicalInstrumentsCharts?.find((ti) => ti.name === instrument)\n ?.chart || [],\n })\n ) || [],\n updatedAt:\n data.topicalInstruments?.find((ti) => ti)?.updatedAt ?? EMPTY_VALUE,\n totalCount: data.topicalInstrumentsTotalCount ?? DEFAULT_TOTAL_COUNT,\n});\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,2BAA2B;AAMvD,SAASC,mBAAmB,QAAQ,YAAY;AAGhD,OAAO,MAAMC,UAAU,GAAGA,CACxBC,IAAgC,EAChCC,KAAgC,
|
|
1
|
+
{"version":3,"file":"utils.js","names":["EMPTY_VALUE","DEFAULT_TOTAL_COUNT","getRecords","data","chart","_data$topicalInstrume","_data$topicalInstrume2","_data$topicalInstrume3","_data$topicalInstrume4","records","topicalInstruments","map","_ref","_chart$topicalInstrum","name","instrument","displayName","sentiment","longPercent","shortPercent","topicalInstrumentsCharts","find","ti","updatedAt","totalCount","topicalInstrumentsTotalCount"],"sources":["../../../src/TopicalInstrumentsWidget/utils.ts"],"sourcesContent":["import { EMPTY_VALUE } from '@oanda/labs-widget-common';\n\nimport type {\n GetInstrumentsChartQuery,\n GetTopicalInstrumentsQuery,\n} from '../gql/types/graphql';\nimport { DEFAULT_TOTAL_COUNT } from './constant';\nimport type { TopicalInstrumentsData } from './types';\n\nexport const getRecords = (\n data: GetTopicalInstrumentsQuery,\n chart?: GetInstrumentsChartQuery\n): TopicalInstrumentsData => ({\n records:\n data?.topicalInstruments?.map(\n ({\n name: instrument,\n displayName,\n sentiment: { longPercent, shortPercent },\n }) => ({\n instrument,\n displayName,\n sentiment: { shortPercent, longPercent },\n chart:\n chart?.topicalInstrumentsCharts?.find((ti) => ti.name === instrument)\n ?.chart || [],\n })\n ) || [],\n updatedAt:\n data.topicalInstruments?.find((ti) => ti)?.updatedAt ?? EMPTY_VALUE,\n totalCount: data.topicalInstrumentsTotalCount ?? DEFAULT_TOTAL_COUNT,\n});\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,2BAA2B;AAMvD,SAASC,mBAAmB,QAAQ,YAAY;AAGhD,OAAO,MAAMC,UAAU,GAAGA,CACxBC,IAAgC,EAChCC,KAAgC;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EAAA,OACJ;IAC5BC,OAAO,EACL,CAAAN,IAAI,aAAJA,IAAI,gBAAAE,qBAAA,GAAJF,IAAI,CAAEO,kBAAkB,cAAAL,qBAAA,uBAAxBA,qBAAA,CAA0BM,GAAG,CAC3BC,IAAA;MAAA,IAAAC,qBAAA;MAAA,IAAC;QACCC,IAAI,EAAEC,UAAU;QAChBC,WAAW;QACXC,SAAS,EAAE;UAAEC,WAAW;UAAEC;QAAa;MACzC,CAAC,GAAAP,IAAA;MAAA,OAAM;QACLG,UAAU;QACVC,WAAW;QACXC,SAAS,EAAE;UAAEE,YAAY;UAAED;QAAY,CAAC;QACxCd,KAAK,EACH,CAAAA,KAAK,aAALA,KAAK,gBAAAS,qBAAA,GAALT,KAAK,CAAEgB,wBAAwB,cAAAP,qBAAA,gBAAAA,qBAAA,GAA/BA,qBAAA,CAAiCQ,IAAI,CAAEC,EAAE,IAAKA,EAAE,CAACR,IAAI,KAAKC,UAAU,CAAC,cAAAF,qBAAA,uBAArEA,qBAAA,CACIT,KAAK,KAAI;MACjB,CAAC;IAAA,CACH,CAAC,KAAI,EAAE;IACTmB,SAAS,GAAAjB,sBAAA,IAAAC,sBAAA,GACPJ,IAAI,CAACO,kBAAkB,cAAAH,sBAAA,gBAAAA,sBAAA,GAAvBA,sBAAA,CAAyBc,IAAI,CAAEC,EAAE,IAAKA,EAAE,CAAC,cAAAf,sBAAA,uBAAzCA,sBAAA,CAA2CgB,SAAS,cAAAjB,sBAAA,cAAAA,sBAAA,GAAIN,WAAW;IACrEwB,UAAU,GAAAhB,sBAAA,GAAEL,IAAI,CAACsB,4BAA4B,cAAAjB,sBAAA,cAAAA,sBAAA,GAAIP;EACnD,CAAC;AAAA,CAAC","ignoreList":[]}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
+
var _templateObject;
|
|
2
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
1
3
|
import { gql } from '@apollo/client';
|
|
2
|
-
export const getInstrumentsChart = gql
|
|
3
|
-
query GetInstrumentsChart($instruments: [String!], $division: Division) {
|
|
4
|
-
topicalInstrumentsCharts(instruments: $instruments, division: $division) {
|
|
5
|
-
name
|
|
6
|
-
chart
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
`;
|
|
4
|
+
export const getInstrumentsChart = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetInstrumentsChart($instruments: [String!], $division: Division) {\n topicalInstrumentsCharts(instruments: $instruments, division: $division) {\n name\n chart\n }\n }\n"])));
|
|
10
5
|
//# sourceMappingURL=getInstrumentsChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInstrumentsChart.js","names":["gql","getInstrumentsChart"],"sources":["../../../src/gql/getInstrumentsChart.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const getInstrumentsChart = gql`\n query GetInstrumentsChart($instruments: [String!], $division: Division) {\n topicalInstrumentsCharts(instruments: $instruments, division: $division) {\n name\n chart\n }\n }\n`;\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,OAAO,MAAMC,mBAAmB,GAAGD,GAAG
|
|
1
|
+
{"version":3,"file":"getInstrumentsChart.js","names":["gql","getInstrumentsChart","_templateObject","_taggedTemplateLiteral"],"sources":["../../../src/gql/getInstrumentsChart.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const getInstrumentsChart = gql`\n query GetInstrumentsChart($instruments: [String!], $division: Division) {\n topicalInstrumentsCharts(instruments: $instruments, division: $division) {\n name\n chart\n }\n }\n`;\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,OAAO,MAAMC,mBAAmB,GAAGD,GAAG,CAAAE,eAAA,KAAAA,eAAA,GAAAC,sBAAA,4MAOrC","ignoreList":[]}
|