@oanda/labs-topical-instruments-widget 1.0.243 → 1.0.245

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.
@@ -15,7 +15,6 @@ var _constant = require("./constant");
15
15
  var _utils = require("./utils");
16
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); }
17
17
  const Main = _ref => {
18
- var _data$records2, _data$totalCount;
19
18
  let {
20
19
  sort,
21
20
  assetClass,
@@ -56,9 +55,8 @@ const Main = _ref => {
56
55
  },
57
56
  batchQuery: _getInstrumentsChart.getInstrumentsChart,
58
57
  getBatchVariables: mainData => {
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 ? {
58
+ const topicalInstruments = mainData?.topicalInstruments?.map(i => i.name);
59
+ return topicalInstruments?.length ? {
62
60
  instruments: topicalInstruments,
63
61
  division
64
62
  } : undefined;
@@ -68,8 +66,7 @@ const Main = _ref => {
68
66
  });
69
67
  (0, _react.useEffect)(() => {
70
68
  if (!mainLoading && data) {
71
- var _data$records;
72
- setRecords((_data$records = data.records) !== null && _data$records !== void 0 ? _data$records : []);
69
+ setRecords(data.records ?? []);
73
70
  }
74
71
  }, [mainLoading, data]);
75
72
  (0, _react.useEffect)(() => {
@@ -86,8 +83,7 @@ const Main = _ref => {
86
83
  }
87
84
  }, [isDesktop]);
88
85
  (0, _react.useEffect)(() => {
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) {
86
+ if (records[0].instrument && records[0].chart?.length === 0) {
91
87
  const instruments = records.map(_ref3 => {
92
88
  let {
93
89
  instrument
@@ -108,14 +104,14 @@ const Main = _ref => {
108
104
  setRecords(emptyRecords);
109
105
  setPageNumber(num);
110
106
  };
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;
107
+ const showError = !!error || data?.records?.length === 0;
108
+ const isPaginationDisabled = mainLoading || !!data?.totalCount && data?.totalCount <= count;
113
109
  return _react.default.createElement(_labsWidgetCommon.TableWidget, {
114
110
  PaginationComponent: isTool ? _react.default.createElement(_labsWidgetCommon.Pagination, {
115
111
  currentPage: pageNumber,
116
112
  disabled: isPaginationDisabled,
117
113
  recordsPerPage: count,
118
- totalRecords: (_data$totalCount = data === null || data === void 0 ? void 0 : data.totalCount) !== null && _data$totalCount !== void 0 ? _data$totalCount : _constant.DEFAULT_TOTAL_COUNT,
114
+ totalRecords: data?.totalCount ?? _constant.DEFAULT_TOTAL_COUNT,
119
115
  onPageChange: handlePageChange
120
116
  }) : undefined,
121
117
  TabsComponent: isTool ? _react.default.createElement(_labsWidgetCommon.Tabs, {
@@ -135,7 +131,7 @@ const Main = _ref => {
135
131
  records: records,
136
132
  target: target,
137
133
  testId: "topical-instruments-wrapper",
138
- timestamp: data === null || data === void 0 ? void 0 : data.updatedAt,
134
+ timestamp: data?.updatedAt,
139
135
  toolTipId: _constant.INSTRUMENT_TOOLTIP_ID
140
136
  });
141
137
  };
@@ -1 +1 @@
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":"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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","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":[]}
@@ -6,32 +6,28 @@ 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
- 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
- };
9
+ const getRecords = (data, chart) => ({
10
+ records: data?.topicalInstruments?.map(_ref => {
11
+ let {
12
+ name: instrument,
13
+ displayName,
14
+ sentiment: {
15
+ longPercent,
16
+ shortPercent
17
+ }
18
+ } = _ref;
19
+ return {
20
+ instrument,
21
+ displayName,
22
+ sentiment: {
23
+ shortPercent,
24
+ longPercent
25
+ },
26
+ chart: chart?.topicalInstrumentsCharts?.find(ti => ti.name === instrument)?.chart || []
27
+ };
28
+ }) || [],
29
+ updatedAt: data.topicalInstruments?.find(ti => ti)?.updatedAt ?? _labsWidgetCommon.EMPTY_VALUE,
30
+ totalCount: data.topicalInstrumentsTotalCount ?? _constant.DEFAULT_TOTAL_COUNT
31
+ });
36
32
  exports.getRecords = getRecords;
37
33
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
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":[]}
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,MACJ;EAC5BC,OAAO,EACLF,IAAI,EAAEG,kBAAkB,EAAEC,GAAG,CAC3BC,IAAA;IAAA,IAAC;MACCC,IAAI,EAAEC,UAAU;MAChBC,WAAW;MACXC,SAAS,EAAE;QAAEC,WAAW;QAAEC;MAAa;IACzC,CAAC,GAAAN,IAAA;IAAA,OAAM;MACLE,UAAU;MACVC,WAAW;MACXC,SAAS,EAAE;QAAEE,YAAY;QAAED;MAAY,CAAC;MACxCT,KAAK,EACHA,KAAK,EAAEW,wBAAwB,EAAEC,IAAI,CAAEC,EAAE,IAAKA,EAAE,CAACR,IAAI,KAAKC,UAAU,CAAC,EACjEN,KAAK,IAAI;IACjB,CAAC;EAAA,CACH,CAAC,IAAI,EAAE;EACTc,SAAS,EACPf,IAAI,CAACG,kBAAkB,EAAEU,IAAI,CAAEC,EAAE,IAAKA,EAAE,CAAC,EAAEC,SAAS,IAAIC,6BAAW;EACrEC,UAAU,EAAEjB,IAAI,CAACkB,4BAA4B,IAAIC;AACnD,CAAC,CAAC;AAACC,OAAA,CAAArB,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -5,7 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getInstrumentsChart = void 0;
7
7
  var _client = require("@apollo/client");
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"])));
8
+ const getInstrumentsChart = exports.getInstrumentsChart = (0, _client.gql)`
9
+ query GetInstrumentsChart($instruments: [String!], $division: Division) {
10
+ topicalInstrumentsCharts(instruments: $instruments, division: $division) {
11
+ name
12
+ chart
13
+ }
14
+ }
15
+ `;
11
16
  //# sourceMappingURL=getInstrumentsChart.js.map
@@ -1 +1 @@
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":[]}
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;AAEO,MAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,IAAAE,WAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
@@ -5,7 +5,30 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getTopicalInstruments = void 0;
7
7
  var _client = require("@apollo/client");
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"])));
8
+ const getTopicalInstruments = exports.getTopicalInstruments = (0, _client.gql)`
9
+ query GetTopicalInstruments(
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
+ `;
11
34
  //# sourceMappingURL=getTopicalInstruments.js.map
@@ -1 +1 @@
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":[]}
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;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,CAAC","ignoreList":[]}
@@ -13,11 +13,10 @@ function makeFragmentData(data, _fragment) {
13
13
  return data;
14
14
  }
15
15
  function isFragmentReady(queryNode, fragmentNode, data) {
16
- var _meta__, _fragDef$name;
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 === null || fragDef === void 0 || (_fragDef$name = fragDef.name) === null || _fragDef$name === void 0 ? void 0 : _fragDef$name.value;
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","_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":[]}
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 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
12
12
  };
13
13
  function graphql(source) {
14
- var _source;
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","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":[]}
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"],"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;EACtC,OAAQJ,SAAS,CAASI,MAAM,CAAC,IAAI,CAAC,CAAC;AACzC","ignoreList":[]}
@@ -8,7 +8,6 @@ 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;
12
11
  let {
13
12
  sort,
14
13
  assetClass,
@@ -49,9 +48,8 @@ export const Main = _ref => {
49
48
  },
50
49
  batchQuery: getInstrumentsChart,
51
50
  getBatchVariables: mainData => {
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 ? {
51
+ const topicalInstruments = mainData?.topicalInstruments?.map(i => i.name);
52
+ return topicalInstruments?.length ? {
55
53
  instruments: topicalInstruments,
56
54
  division
57
55
  } : undefined;
@@ -61,8 +59,7 @@ export const Main = _ref => {
61
59
  });
62
60
  useEffect(() => {
63
61
  if (!mainLoading && data) {
64
- var _data$records;
65
- setRecords((_data$records = data.records) !== null && _data$records !== void 0 ? _data$records : []);
62
+ setRecords(data.records ?? []);
66
63
  }
67
64
  }, [mainLoading, data]);
68
65
  useEffect(() => {
@@ -79,8 +76,7 @@ export const Main = _ref => {
79
76
  }
80
77
  }, [isDesktop]);
81
78
  useEffect(() => {
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) {
79
+ if (records[0].instrument && records[0].chart?.length === 0) {
84
80
  const instruments = records.map(_ref3 => {
85
81
  let {
86
82
  instrument
@@ -101,14 +97,14 @@ export const Main = _ref => {
101
97
  setRecords(emptyRecords);
102
98
  setPageNumber(num);
103
99
  };
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;
100
+ const showError = !!error || data?.records?.length === 0;
101
+ const isPaginationDisabled = mainLoading || !!data?.totalCount && data?.totalCount <= count;
106
102
  return React.createElement(TableWidget, {
107
103
  PaginationComponent: isTool ? React.createElement(Pagination, {
108
104
  currentPage: pageNumber,
109
105
  disabled: isPaginationDisabled,
110
106
  recordsPerPage: count,
111
- totalRecords: (_data$totalCount = data === null || data === void 0 ? void 0 : data.totalCount) !== null && _data$totalCount !== void 0 ? _data$totalCount : DEFAULT_TOTAL_COUNT,
107
+ totalRecords: data?.totalCount ?? DEFAULT_TOTAL_COUNT,
112
108
  onPageChange: handlePageChange
113
109
  }) : undefined,
114
110
  TabsComponent: isTool ? React.createElement(Tabs, {
@@ -128,7 +124,7 @@ export const Main = _ref => {
128
124
  records: records,
129
125
  target: target,
130
126
  testId: "topical-instruments-wrapper",
131
- timestamp: data === null || data === void 0 ? void 0 : data.updatedAt,
127
+ timestamp: data?.updatedAt,
132
128
  toolTipId: INSTRUMENT_TOOLTIP_ID
133
129
  });
134
130
  };
@@ -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","_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":"AACA,SACEA,eAAe,EACfC,UAAU,EACVC,IAAI,EACJC,WAAW,EACXC,IAAI,EACJC,2BAA2B,EAC3BC,iBAAiB,EACjBC,iBAAiB,QACZ,2BAA2B;AAClC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAElD,SAASC,mBAAmB,QAAQ,4BAA4B;AAChE,SAASC,qBAAqB,QAAQ,8BAA8B;AACpE,SACEC,QAAQ,EAKRC,WAAW,QACN,sBAAsB;AAC7B,SACEC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,QACb,UAAU;AACjB,SACEC,eAAe,EACfC,aAAa,EACbC,mBAAmB,EACnBC,qBAAqB,QAChB,YAAY;AAEnB,SAASC,UAAU,QAAQ,SAAS;AAEpC,OAAO,MAAMC,IAAI,GAAGC,IAAA,IAMH;EAAA,IAAAC,cAAA,EAAAC,gBAAA;EAAA,IANI;IACnBC,IAAI;IACJC,UAAU;IACVC,QAAQ;IACRC,KAAK,GAAGX,aAAa;IACrBY,OAAO,GAAGb;EACD,CAAC,GAAAM,IAAA;EACV,MAAMQ,YAAY,GAAGC,KAAK,CAACH,KAAK,CAAC,CAACI,IAAI,CAAC,CAAC,CAAC,CAAC;EAC1C,MAAM;IAAEC;EAAK,CAAC,GAAG5B,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAE6B;EAAK,CAAC,GAAG/B,iBAAiB,CAAC,CAAC;EACpC,MAAM;IAAEgC,MAAM;IAAEC;EAAS,CAAC,GAAGhC,iBAAiB,CAAC,CAAC;EAEhD,MAAM,CAACiC,UAAU,EAAEC,aAAa,CAAC,GAAG9B,QAAQ,CAAC,CAAC,CAAC;EAC/C,MAAM,CAAC+B,MAAM,EAAEC,SAAS,CAAC,GAAGhC,QAAQ,CAACiB,IAAI,IAAIb,WAAW,CAAC6B,OAAO,CAAC;EACjE,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGnC,QAAQ,CAAesB,YAAY,CAAC;EAElE,MAAMc,SAAS,GAAGV,IAAI,KAAKnC,IAAI,CAAC8C,OAAO;EACvC,MAAMC,gBAAgB,GACpBnB,QAAQ,KAAKhB,QAAQ,CAACoC,EAAE,GAAGhC,kBAAkB,GAAGD,uBAAuB;EACzE,MAAMkC,MAAM,GAAGvB,IAAI,KAAKwB,SAAS;EAEjC,MAAM;IAAEC,IAAI;IAAEC,WAAW;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGnD,2BAA2B,CAMvE;IACAoD,SAAS,EAAE5C,qBAAqB;IAChC6C,aAAa,EAAE;MACb9B,IAAI,EAAEc,MAAM;MACZZ,QAAQ;MACRD,UAAU;MACVE,KAAK;MACL4B,MAAM,EAAEnB,UAAU,GAAG;IACvB,CAAC;IACDoB,UAAU,EAAEhD,mBAAmB;IAC/BiD,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,CACzDC,CAAC,IAAKA,CAAC,CAACC,IACX,CAAC;MACD,OAAOH,kBAAkB,aAAlBA,kBAAkB,eAAlBA,kBAAkB,CAAEI,MAAM,GAC7B;QAAEC,WAAW,EAAEL,kBAAkB;QAAElC;MAAS,CAAC,GAC7CsB,SAAS;IACf,CAAC;IACDkB,KAAK,EAAEA,CAACR,QAAQ,EAAES,SAAS,KAAKhD,UAAU,CAACuC,QAAQ,EAAES,SAAS,CAAC;IAC/DC,WAAW,EAAE;EACf,CAAC,CAAC;EAEF9D,SAAS,CAAC,MAAM;IACd,IAAI,CAAC4C,WAAW,IAAID,IAAI,EAAE;MAAA,IAAAoB,aAAA;MACxB3B,UAAU,EAAA2B,aAAA,GAACpB,IAAI,CAACR,OAAO,cAAA4B,aAAA,cAAAA,aAAA,GAAI,EAAE,CAAC;IAChC;EACF,CAAC,EAAE,CAACnB,WAAW,EAAED,IAAI,CAAC,CAAC;EAEvB3C,SAAS,CAAC,MAAM;IACd,IAAImC,OAAO,CAAC,CAAC,CAAC,CAAC6B,UAAU,EAAE;MACzB,MAAML,WAAW,GAAGxB,OAAO,CAACoB,GAAG,CAACU,KAAA;QAAA,IAAC;UAAED;QAAW,CAAC,GAAAC,KAAA;QAAA,OAAKD,UAAU;MAAA,EAAC;MAC/DnC,QAAQ,CAAC;QAAE8B;MAAY,CAAC,CAAC;IAC3B;EAEF,CAAC,EAAE,CAACtB,SAAS,CAAC,CAAC;EAEfrC,SAAS,CAAC,MAAM;IAAA,IAAAkE,gBAAA;IACd,IAAI/B,OAAO,CAAC,CAAC,CAAC,CAAC6B,UAAU,IAAI,EAAAE,gBAAA,GAAA/B,OAAO,CAAC,CAAC,CAAC,CAACgC,KAAK,cAAAD,gBAAA,uBAAhBA,gBAAA,CAAkBR,MAAM,MAAK,CAAC,EAAE;MAC3D,MAAMC,WAAW,GAAGxB,OAAO,CAACoB,GAAG,CAACa,KAAA;QAAA,IAAC;UAAEJ;QAAW,CAAC,GAAAI,KAAA;QAAA,OAAKJ,UAAU;MAAA,EAAC;MAC/DnC,QAAQ,CAAC;QAAE8B;MAAY,CAAC,CAAC;IAC3B;EAEF,CAAC,EAAE,CAACxB,OAAO,CAAC,CAAC;EAEb,MAAMkC,cAAc,GAAIC,CAA0C,IAAK;IACrElC,UAAU,CAACb,YAAY,CAAC;IACxBU,SAAS,CAACqC,CAAC,CAACC,aAAa,CAACC,KAAoB,CAAC;IAC/CzC,aAAa,CAAC,CAAC,CAAC;EAClB,CAAC;EAED,MAAM0C,gBAAgB,GAAIC,GAAW,IAAK;IACxCtC,UAAU,CAACb,YAAY,CAAC;IACxBQ,aAAa,CAAC2C,GAAG,CAAC;EACpB,CAAC;EAED,MAAMC,SAAS,GAAG,CAAC,CAAC7B,KAAK,IAAI,CAAAH,IAAI,aAAJA,IAAI,gBAAA3B,cAAA,GAAJ2B,IAAI,CAAER,OAAO,cAAAnB,cAAA,uBAAbA,cAAA,CAAe0C,MAAM,MAAK,CAAC;EACxD,MAAMkB,oBAAoB,GACxBhC,WAAW,IAAK,CAAC,EAACD,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEkC,UAAU,KAAI,CAAAlC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkC,UAAU,KAAIxD,KAAM;EAElE,OACEtB,KAAA,CAAA+E,aAAA,CAACrF,WAAW;IACVsF,mBAAmB,EACjBtC,MAAM,GACJ1C,KAAA,CAAA+E,aAAA,CAACvF,UAAU;MACTyF,WAAW,EAAElD,UAAW;MACxBmD,QAAQ,EAAEL,oBAAqB;MAC/BM,cAAc,EAAE7D,KAAM;MACtB8D,YAAY,GAAAlE,gBAAA,GAAE0B,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkC,UAAU,cAAA5D,gBAAA,cAAAA,gBAAA,GAAIN,mBAAoB;MACtDyE,YAAY,EAAEX;IAAiB,CAChC,CAAC,GACA/B,SACL;IACD2C,aAAa,EACX5C,MAAM,GACJ1C,KAAA,CAAA+E,aAAA,CAACpF,IAAI;MACH4F,eAAe;MACfC,SAAS,EAAEvD,MAAO;MAClBwD,WAAW,EAAEnB,cAAe;MAC5BoB,KAAK,EAAElD,gBAAiB;MACxBmD,aAAa,EAAEhE;IAAK,CACrB,CAAC,GACAgB,SACL;IACDiD,aAAa,EAAErE,OAAQ;IACvBD,KAAK,EAAEA,KAAM;IACbuE,QAAQ,EAAEjB,SAAU;IACpBkB,aAAa,EAAEvG,eAAe,CAACgC,OAAO,EAAEhB,YAAY,CAAE;IACtDwF,cAAc,EAAEjD,OAAQ;IACxBkD,SAAS,EAAEnD,WAAY;IACvBd,UAAU,EAAEA,UAAW;IACvBK,OAAO,EAAEA,OAAQ;IACjBP,MAAM,EAAEA,MAAO;IACfoE,MAAM,EAAC,6BAA6B;IACpCC,SAAS,EAAEtD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEuD,SAAU;IAC3BC,SAAS,EAAEvF;EAAsB,CAClC,CAAC;AAEN,CAAC","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","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,30 +1,26 @@
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
- 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
- };
3
+ export const getRecords = (data, chart) => ({
4
+ records: data?.topicalInstruments?.map(_ref => {
5
+ let {
6
+ name: instrument,
7
+ displayName,
8
+ sentiment: {
9
+ longPercent,
10
+ shortPercent
11
+ }
12
+ } = _ref;
13
+ return {
14
+ instrument,
15
+ displayName,
16
+ sentiment: {
17
+ shortPercent,
18
+ longPercent
19
+ },
20
+ chart: chart?.topicalInstrumentsCharts?.find(ti => ti.name === instrument)?.chart || []
21
+ };
22
+ }) || [],
23
+ updatedAt: data.topicalInstruments?.find(ti => ti)?.updatedAt ?? EMPTY_VALUE,
24
+ totalCount: data.topicalInstrumentsTotalCount ?? DEFAULT_TOTAL_COUNT
25
+ });
30
26
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
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
+ {"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,MACJ;EAC5BC,OAAO,EACLF,IAAI,EAAEG,kBAAkB,EAAEC,GAAG,CAC3BC,IAAA;IAAA,IAAC;MACCC,IAAI,EAAEC,UAAU;MAChBC,WAAW;MACXC,SAAS,EAAE;QAAEC,WAAW;QAAEC;MAAa;IACzC,CAAC,GAAAN,IAAA;IAAA,OAAM;MACLE,UAAU;MACVC,WAAW;MACXC,SAAS,EAAE;QAAEE,YAAY;QAAED;MAAY,CAAC;MACxCT,KAAK,EACHA,KAAK,EAAEW,wBAAwB,EAAEC,IAAI,CAAEC,EAAE,IAAKA,EAAE,CAACR,IAAI,KAAKC,UAAU,CAAC,EACjEN,KAAK,IAAI;IACjB,CAAC;EAAA,CACH,CAAC,IAAI,EAAE;EACTc,SAAS,EACPf,IAAI,CAACG,kBAAkB,EAAEU,IAAI,CAAEC,EAAE,IAAKA,EAAE,CAAC,EAAEC,SAAS,IAAIlB,WAAW;EACrEmB,UAAU,EAAEhB,IAAI,CAACiB,4BAA4B,IAAInB;AACnD,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,10 @@
1
- var _templateObject;
2
- function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
3
1
  import { gql } from '@apollo/client';
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"])));
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
+ `;
5
10
  //# sourceMappingURL=getInstrumentsChart.js.map
@@ -1 +1 @@
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":[]}
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;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
@@ -1,6 +1,29 @@
1
- var _templateObject;
2
- function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
3
1
  import { gql } from '@apollo/client';
4
- const getTopicalInstruments = 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"])));
2
+ const getTopicalInstruments = gql`
3
+ query GetTopicalInstruments(
4
+ $sort: TopicalSort!
5
+ $assetClass: AssetClassName
6
+ $division: Division
7
+ $count: Int
8
+ $offset: Int
9
+ ) {
10
+ topicalInstruments(
11
+ sort: $sort
12
+ assetClass: $assetClass
13
+ division: $division
14
+ count: $count
15
+ offset: $offset
16
+ ) {
17
+ name
18
+ displayName
19
+ sentiment {
20
+ shortPercent
21
+ longPercent
22
+ }
23
+ updatedAt
24
+ }
25
+ topicalInstrumentsTotalCount(sort: $sort, division: $division)
26
+ }
27
+ `;
5
28
  export { getTopicalInstruments };
6
29
  //# sourceMappingURL=getTopicalInstruments.js.map