@oanda/labs-topical-instruments-widget 1.0.252 → 1.0.254

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.
Files changed (39) hide show
  1. package/CHANGELOG.md +780 -62520
  2. package/dist/module/TopicalInstrumentsWidget/Main.js +41 -33
  3. package/dist/module/TopicalInstrumentsWidget/Main.js.map +1 -1
  4. package/dist/module/TopicalInstrumentsWidget/TopicalInstrumentsWidget.js +22 -15
  5. package/dist/module/TopicalInstrumentsWidget/TopicalInstrumentsWidget.js.map +1 -1
  6. package/dist/module/TopicalInstrumentsWidget/config.js +28 -23
  7. package/dist/module/TopicalInstrumentsWidget/config.js.map +1 -1
  8. package/dist/module/TopicalInstrumentsWidget/constant.js +11 -6
  9. package/dist/module/TopicalInstrumentsWidget/constant.js.map +1 -1
  10. package/dist/module/TopicalInstrumentsWidget/index.js +27 -2
  11. package/dist/module/TopicalInstrumentsWidget/index.js.map +1 -1
  12. package/dist/module/TopicalInstrumentsWidget/render.js +15 -12
  13. package/dist/module/TopicalInstrumentsWidget/render.js.map +1 -1
  14. package/dist/module/TopicalInstrumentsWidget/types.js +31 -2
  15. package/dist/module/TopicalInstrumentsWidget/types.js.map +1 -1
  16. package/dist/module/TopicalInstrumentsWidget/utils.js +12 -5
  17. package/dist/module/TopicalInstrumentsWidget/utils.js.map +1 -1
  18. package/dist/module/gql/getInstrumentsChart.js +8 -2
  19. package/dist/module/gql/getInstrumentsChart.js.map +1 -1
  20. package/dist/module/gql/getTopicalInstruments.js +8 -3
  21. package/dist/module/gql/getTopicalInstruments.js.map +1 -1
  22. package/dist/module/gql/types/fragment-masking.js +11 -3
  23. package/dist/module/gql/types/fragment-masking.js.map +1 -1
  24. package/dist/module/gql/types/gql.js +9 -2
  25. package/dist/module/gql/types/gql.js.map +1 -1
  26. package/dist/module/gql/types/graphql.js +22 -16
  27. package/dist/module/gql/types/graphql.js.map +1 -1
  28. package/dist/module/gql/types/index.js +27 -2
  29. package/dist/module/gql/types/index.js.map +1 -1
  30. package/dist/module/index.js +16 -1
  31. package/dist/module/index.js.map +1 -1
  32. package/dist/module/translations/index.js +21 -14
  33. package/dist/module/translations/index.js.map +1 -1
  34. package/dist/module/translations/translations.js +7 -1
  35. package/dist/module/translations/translations.js.map +1 -1
  36. package/dist/types/gql/getInstrumentsChart.d.ts +1 -1
  37. package/dist/types/gql/getTopicalInstruments.d.ts +1 -1
  38. package/package.json +8 -4
  39. package/tsconfig.types.json +2 -4
@@ -1,44 +1,51 @@
1
- import { getHeaderConfig, Pagination, Size, TableWidget, Tabs, useFetchCombinedDataRecords, useLayoutProvider, useLiveRatesQuery } from '@oanda/labs-widget-common';
2
- import { useLocale } from '@oanda/mono-i18n';
3
- import React, { useEffect, useState } from 'react';
4
- import { getInstrumentsChart } from '../gql/getInstrumentsChart';
5
- import { getTopicalInstruments } from '../gql/getTopicalInstruments';
6
- import { Division, TopicalSort } from '../gql/types/graphql';
7
- import { headerConfig, navigationConfigDefault, navigationConfigOC } from './config';
8
- import { DEFAULT_COLUMNS, DEFAULT_COUNT, DEFAULT_TOTAL_COUNT, INSTRUMENT_TOOLTIP_ID } from './constant';
9
- import { getRecords } from './utils';
10
- export const Main = _ref => {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Main = void 0;
7
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
+ var _monoI18n = require("@oanda/mono-i18n");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _getInstrumentsChart = require("../gql/getInstrumentsChart");
11
+ var _getTopicalInstruments = require("../gql/getTopicalInstruments");
12
+ var _graphql = require("../gql/types/graphql");
13
+ var _config = require("./config");
14
+ var _constant = require("./constant");
15
+ var _utils = require("./utils");
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
+ const Main = _ref => {
11
18
  let {
12
19
  sort,
13
20
  assetClass,
14
21
  division,
15
- count = DEFAULT_COUNT,
16
- columns = DEFAULT_COLUMNS
22
+ count = _constant.DEFAULT_COUNT,
23
+ columns = _constant.DEFAULT_COLUMNS
17
24
  } = _ref;
18
25
  const emptyRecords = Array(count).fill({});
19
26
  const {
20
27
  lang
21
- } = useLocale();
28
+ } = (0, _monoI18n.useLocale)();
22
29
  const {
23
30
  size
24
- } = useLayoutProvider();
31
+ } = (0, _labsWidgetCommon.useLayoutProvider)();
25
32
  const {
26
33
  target,
27
34
  setQuery
28
- } = useLiveRatesQuery();
29
- const [pageNumber, setPageNumber] = useState(0);
30
- const [tiSort, setTiSort] = useState(sort || TopicalSort.Popular);
31
- const [records, setRecords] = useState(emptyRecords);
32
- const isDesktop = size === Size.DESKTOP;
33
- const navigationConfig = division === Division.Oc ? navigationConfigOC : navigationConfigDefault;
35
+ } = (0, _labsWidgetCommon.useLiveRatesQuery)();
36
+ const [pageNumber, setPageNumber] = (0, _react.useState)(0);
37
+ const [tiSort, setTiSort] = (0, _react.useState)(sort || _graphql.TopicalSort.Popular);
38
+ const [records, setRecords] = (0, _react.useState)(emptyRecords);
39
+ const isDesktop = size === _labsWidgetCommon.Size.DESKTOP;
40
+ const navigationConfig = division === _graphql.Division.Oc ? _config.navigationConfigOC : _config.navigationConfigDefault;
34
41
  const isTool = sort === undefined;
35
42
  const {
36
43
  data,
37
44
  mainLoading,
38
45
  loading,
39
46
  error
40
- } = useFetchCombinedDataRecords({
41
- mainQuery: getTopicalInstruments,
47
+ } = (0, _labsWidgetCommon.useFetchCombinedDataRecords)({
48
+ mainQuery: _getTopicalInstruments.getTopicalInstruments,
42
49
  mainVariables: {
43
50
  sort: tiSort,
44
51
  division,
@@ -46,7 +53,7 @@ export const Main = _ref => {
46
53
  count,
47
54
  offset: pageNumber * 10
48
55
  },
49
- batchQuery: getInstrumentsChart,
56
+ batchQuery: _getInstrumentsChart.getInstrumentsChart,
50
57
  getBatchVariables: mainData => {
51
58
  const topicalInstruments = mainData?.topicalInstruments?.map(i => i.name);
52
59
  return topicalInstruments?.length ? {
@@ -54,15 +61,15 @@ export const Main = _ref => {
54
61
  division
55
62
  } : undefined;
56
63
  },
57
- merge: (mainData, chartData) => getRecords(mainData, chartData),
64
+ merge: (mainData, chartData) => (0, _utils.getRecords)(mainData, chartData),
58
65
  fetchPolicy: 'network-only'
59
66
  });
60
- useEffect(() => {
67
+ (0, _react.useEffect)(() => {
61
68
  if (!mainLoading && data) {
62
69
  setRecords(data.records ?? []);
63
70
  }
64
71
  }, [mainLoading, data]);
65
- useEffect(() => {
72
+ (0, _react.useEffect)(() => {
66
73
  if (records[0].instrument) {
67
74
  const instruments = records.map(_ref2 => {
68
75
  let {
@@ -75,7 +82,7 @@ export const Main = _ref => {
75
82
  });
76
83
  }
77
84
  }, [isDesktop]);
78
- useEffect(() => {
85
+ (0, _react.useEffect)(() => {
79
86
  if (records[0].instrument && records[0].chart?.length === 0) {
80
87
  const instruments = records.map(_ref3 => {
81
88
  let {
@@ -99,15 +106,15 @@ export const Main = _ref => {
99
106
  };
100
107
  const showError = !!error || data?.records?.length === 0;
101
108
  const isPaginationDisabled = mainLoading || !!data?.totalCount && data?.totalCount <= count;
102
- return React.createElement(TableWidget, {
103
- PaginationComponent: isTool ? React.createElement(Pagination, {
109
+ return _react.default.createElement(_labsWidgetCommon.TableWidget, {
110
+ PaginationComponent: isTool ? _react.default.createElement(_labsWidgetCommon.Pagination, {
104
111
  currentPage: pageNumber,
105
112
  disabled: isPaginationDisabled,
106
113
  recordsPerPage: count,
107
- totalRecords: data?.totalCount ?? DEFAULT_TOTAL_COUNT,
114
+ totalRecords: data?.totalCount ?? _constant.DEFAULT_TOTAL_COUNT,
108
115
  onPageChange: handlePageChange
109
116
  }) : undefined,
110
- TabsComponent: isTool ? React.createElement(Tabs, {
117
+ TabsComponent: isTool ? _react.default.createElement(_labsWidgetCommon.Tabs, {
111
118
  mobileFullWidth: true,
112
119
  activeTab: tiSort,
113
120
  handleClick: handleTabClick,
@@ -117,7 +124,7 @@ export const Main = _ref => {
117
124
  activeColumns: columns,
118
125
  count: count,
119
126
  hasError: showError,
120
- headerColumns: getHeaderConfig(columns, headerConfig),
127
+ headerColumns: (0, _labsWidgetCommon.getHeaderConfig)(columns, _config.headerConfig),
121
128
  isChartLoading: loading,
122
129
  isLoading: mainLoading,
123
130
  pageNumber: pageNumber,
@@ -125,7 +132,8 @@ export const Main = _ref => {
125
132
  target: target,
126
133
  testId: "topical-instruments-wrapper",
127
134
  timestamp: data?.updatedAt,
128
- toolTipId: INSTRUMENT_TOOLTIP_ID
135
+ toolTipId: _constant.INSTRUMENT_TOOLTIP_ID
129
136
  });
130
137
  };
138
+ exports.Main = Main;
131
139
  //# sourceMappingURL=Main.js.map
@@ -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":["_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":[]}
@@ -1,9 +1,16 @@
1
- import { ApolloClient, InMemoryCache } from '@apollo/client';
2
- import { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';
3
- import React from 'react';
4
- import { translations } from '../translations';
5
- import { Main } from './Main';
6
- import { Division } from './types';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TopicalInstrumentsWidget = void 0;
7
+ var _client = require("@apollo/client");
8
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _translations = require("../translations");
11
+ var _Main = require("./Main");
12
+ var _types = require("./types");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
7
14
  const TopicalInstrumentsWidget = _ref => {
8
15
  let {
9
16
  graphqlUrl,
@@ -19,13 +26,13 @@ const TopicalInstrumentsWidget = _ref => {
19
26
  removePadding,
20
27
  logoLink
21
28
  } = _ref;
22
- const client = new ApolloClient({
29
+ const client = new _client.ApolloClient({
23
30
  uri: graphqlUrl,
24
- cache: new InMemoryCache()
31
+ cache: new _client.InMemoryCache()
25
32
  });
26
- const divisionCode = division === Division.Opt ? Division.Ogm : division;
27
- const dataSource = divisionCode === Division.Ogm ? 'MT5' : 'V20';
28
- return React.createElement(WidgetProvider, {
33
+ const divisionCode = division === _types.Division.Opt ? _types.Division.Ogm : division;
34
+ const dataSource = divisionCode === _types.Division.Ogm ? 'MT5' : 'V20';
35
+ return _react.default.createElement(_labsWidgetCommon.WidgetProvider, {
29
36
  client: client,
30
37
  liveRates: {
31
38
  url: liveRatesUrl,
@@ -39,12 +46,12 @@ const TopicalInstrumentsWidget = _ref => {
39
46
  removePadding
40
47
  },
41
48
  theme: theme,
42
- translations: translations
43
- }, React.createElement(WidgetWrapper, {
49
+ translations: _translations.translations
50
+ }, _react.default.createElement(_labsWidgetCommon.WidgetWrapper, {
44
51
  isParamError: isParamError,
45
52
  linkArea: "logo",
46
53
  logoLink: logoLink
47
- }, React.createElement(Main, {
54
+ }, _react.default.createElement(_Main.Main, {
48
55
  assetClass: assetClass,
49
56
  columns: columns,
50
57
  count: count,
@@ -52,5 +59,5 @@ const TopicalInstrumentsWidget = _ref => {
52
59
  sort: sort
53
60
  })));
54
61
  };
55
- export { TopicalInstrumentsWidget };
62
+ exports.TopicalInstrumentsWidget = TopicalInstrumentsWidget;
56
63
  //# sourceMappingURL=TopicalInstrumentsWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TopicalInstrumentsWidget.js","names":["ApolloClient","InMemoryCache","WidgetProvider","WidgetWrapper","React","translations","Main","Division","TopicalInstrumentsWidget","_ref","graphqlUrl","liveRatesUrl","sort","division","assetClass","count","columns","locale","theme","isParamError","removePadding","logoLink","client","uri","cache","divisionCode","Opt","Ogm","dataSource","createElement","liveRates","url","options","styling","linkArea"],"sources":["../../../src/TopicalInstrumentsWidget/TopicalInstrumentsWidget.tsx"],"sourcesContent":["import { ApolloClient, InMemoryCache } from '@apollo/client';\nimport { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';\nimport React from 'react';\n\nimport { translations } from '../translations';\nimport { Main } from './Main';\nimport type { TopicalInstrumentsConfig } from './types';\nimport { Division } from './types';\n\nconst TopicalInstrumentsWidget = ({\n graphqlUrl,\n liveRatesUrl,\n sort,\n division,\n assetClass,\n count,\n columns,\n locale,\n theme,\n isParamError,\n removePadding,\n logoLink,\n}: TopicalInstrumentsConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n const divisionCode = division === Division.Opt ? Division.Ogm : division;\n const dataSource = divisionCode === Division.Ogm ? 'MT5' : 'V20';\n\n return (\n <WidgetProvider\n client={client}\n liveRates={{\n url: liveRatesUrl,\n options: { divisionCode, dataSource },\n }}\n locale={locale}\n styling={{\n removePadding,\n }}\n theme={theme}\n translations={translations}\n >\n <WidgetWrapper\n isParamError={isParamError}\n linkArea=\"logo\"\n logoLink={logoLink}\n >\n <Main\n assetClass={assetClass}\n columns={columns}\n count={count}\n division={division}\n sort={sort}\n />\n </WidgetWrapper>\n </WidgetProvider>\n );\n};\n\nexport { TopicalInstrumentsWidget };\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,aAAa,QAAQ,gBAAgB;AAC5D,SAASC,cAAc,EAAEC,aAAa,QAAQ,2BAA2B;AACzE,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,QAAQ,QAAQ,SAAS;AAElC,MAAMC,wBAAwB,GAAGC,IAAA,IAaD;EAAA,IAbE;IAChCC,UAAU;IACVC,YAAY;IACZC,IAAI;IACJC,QAAQ;IACRC,UAAU;IACVC,KAAK;IACLC,OAAO;IACPC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC;EACwB,CAAC,GAAAZ,IAAA;EACzB,MAAMa,MAAM,GAAG,IAAItB,YAAY,CAAC;IAC9BuB,GAAG,EAAEb,UAAU;IACfc,KAAK,EAAE,IAAIvB,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMwB,YAAY,GAAGZ,QAAQ,KAAKN,QAAQ,CAACmB,GAAG,GAAGnB,QAAQ,CAACoB,GAAG,GAAGd,QAAQ;EACxE,MAAMe,UAAU,GAAGH,YAAY,KAAKlB,QAAQ,CAACoB,GAAG,GAAG,KAAK,GAAG,KAAK;EAEhE,OACEvB,KAAA,CAAAyB,aAAA,CAAC3B,cAAc;IACboB,MAAM,EAAEA,MAAO;IACfQ,SAAS,EAAE;MACTC,GAAG,EAAEpB,YAAY;MACjBqB,OAAO,EAAE;QAAEP,YAAY;QAAEG;MAAW;IACtC,CAAE;IACFX,MAAM,EAAEA,MAAO;IACfgB,OAAO,EAAE;MACPb;IACF,CAAE;IACFF,KAAK,EAAEA,KAAM;IACbb,YAAY,EAAEA;EAAa,GAE3BD,KAAA,CAAAyB,aAAA,CAAC1B,aAAa;IACZgB,YAAY,EAAEA,YAAa;IAC3Be,QAAQ,EAAC,MAAM;IACfb,QAAQ,EAAEA;EAAS,GAEnBjB,KAAA,CAAAyB,aAAA,CAACvB,IAAI;IACHQ,UAAU,EAAEA,UAAW;IACvBE,OAAO,EAAEA,OAAQ;IACjBD,KAAK,EAAEA,KAAM;IACbF,QAAQ,EAAEA,QAAS;IACnBD,IAAI,EAAEA;EAAK,CACZ,CACY,CACD,CAAC;AAErB,CAAC;AAED,SAASJ,wBAAwB","ignoreList":[]}
1
+ {"version":3,"file":"TopicalInstrumentsWidget.js","names":["_client","require","_labsWidgetCommon","_react","_interopRequireDefault","_translations","_Main","_types","e","__esModule","default","TopicalInstrumentsWidget","_ref","graphqlUrl","liveRatesUrl","sort","division","assetClass","count","columns","locale","theme","isParamError","removePadding","logoLink","client","ApolloClient","uri","cache","InMemoryCache","divisionCode","Division","Opt","Ogm","dataSource","createElement","WidgetProvider","liveRates","url","options","styling","translations","WidgetWrapper","linkArea","Main","exports"],"sources":["../../../src/TopicalInstrumentsWidget/TopicalInstrumentsWidget.tsx"],"sourcesContent":["import { ApolloClient, InMemoryCache } from '@apollo/client';\nimport { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';\nimport React from 'react';\n\nimport { translations } from '../translations';\nimport { Main } from './Main';\nimport type { TopicalInstrumentsConfig } from './types';\nimport { Division } from './types';\n\nconst TopicalInstrumentsWidget = ({\n graphqlUrl,\n liveRatesUrl,\n sort,\n division,\n assetClass,\n count,\n columns,\n locale,\n theme,\n isParamError,\n removePadding,\n logoLink,\n}: TopicalInstrumentsConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n const divisionCode = division === Division.Opt ? Division.Ogm : division;\n const dataSource = divisionCode === Division.Ogm ? 'MT5' : 'V20';\n\n return (\n <WidgetProvider\n client={client}\n liveRates={{\n url: liveRatesUrl,\n options: { divisionCode, dataSource },\n }}\n locale={locale}\n styling={{\n removePadding,\n }}\n theme={theme}\n translations={translations}\n >\n <WidgetWrapper\n isParamError={isParamError}\n linkArea=\"logo\"\n logoLink={logoLink}\n >\n <Main\n assetClass={assetClass}\n columns={columns}\n count={count}\n division={division}\n sort={sort}\n />\n </WidgetWrapper>\n </WidgetProvider>\n );\n};\n\nexport { TopicalInstrumentsWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAEA,IAAAM,MAAA,GAAAN,OAAA;AAAmC,SAAAG,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnC,MAAMG,wBAAwB,GAAGC,IAAA,IAaD;EAAA,IAbE;IAChCC,UAAU;IACVC,YAAY;IACZC,IAAI;IACJC,QAAQ;IACRC,UAAU;IACVC,KAAK;IACLC,OAAO;IACPC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC;EACwB,CAAC,GAAAZ,IAAA;EACzB,MAAMa,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAEd,UAAU;IACfe,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMC,YAAY,GAAGd,QAAQ,KAAKe,eAAQ,CAACC,GAAG,GAAGD,eAAQ,CAACE,GAAG,GAAGjB,QAAQ;EACxE,MAAMkB,UAAU,GAAGJ,YAAY,KAAKC,eAAQ,CAACE,GAAG,GAAG,KAAK,GAAG,KAAK;EAEhE,OACE9B,MAAA,CAAAO,OAAA,CAAAyB,aAAA,CAACjC,iBAAA,CAAAkC,cAAc;IACbX,MAAM,EAAEA,MAAO;IACfY,SAAS,EAAE;MACTC,GAAG,EAAExB,YAAY;MACjByB,OAAO,EAAE;QAAET,YAAY;QAAEI;MAAW;IACtC,CAAE;IACFd,MAAM,EAAEA,MAAO;IACfoB,OAAO,EAAE;MACPjB;IACF,CAAE;IACFF,KAAK,EAAEA,KAAM;IACboB,YAAY,EAAEA;EAAa,GAE3BtC,MAAA,CAAAO,OAAA,CAAAyB,aAAA,CAACjC,iBAAA,CAAAwC,aAAa;IACZpB,YAAY,EAAEA,YAAa;IAC3BqB,QAAQ,EAAC,MAAM;IACfnB,QAAQ,EAAEA;EAAS,GAEnBrB,MAAA,CAAAO,OAAA,CAAAyB,aAAA,CAAC7B,KAAA,CAAAsC,IAAI;IACH3B,UAAU,EAAEA,UAAW;IACvBE,OAAO,EAAEA,OAAQ;IACjBD,KAAK,EAAEA,KAAM;IACbF,QAAQ,EAAEA,QAAS;IACnBD,IAAI,EAAEA;EAAK,CACZ,CACY,CACD,CAAC;AAErB,CAAC;AAAC8B,OAAA,CAAAlC,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -1,14 +1,20 @@
1
- import { DataRecordType } from '@oanda/labs-widget-common';
2
- import { TopicalSort } from '../gql/types/graphql';
3
- const headerConfig = {
4
- [DataRecordType.INSTRUMENT]: {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.navigationConfigOC = exports.navigationConfigDefault = exports.headerConfig = void 0;
7
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
+ var _graphql = require("../gql/types/graphql");
9
+ const headerConfig = exports.headerConfig = {
10
+ [_labsWidgetCommon.DataRecordType.INSTRUMENT]: {
5
11
  displayName: 'instrument',
6
12
  additionalStyles: {
7
13
  align: 'left',
8
14
  minWidth: '130px'
9
15
  }
10
16
  },
11
- [DataRecordType.SELL]: {
17
+ [_labsWidgetCommon.DataRecordType.SELL]: {
12
18
  displayName: 'sell',
13
19
  additionalStyles: {
14
20
  align: 'right',
@@ -16,7 +22,7 @@ const headerConfig = {
16
22
  paddingRight: true
17
23
  }
18
24
  },
19
- [DataRecordType.BUY]: {
25
+ [_labsWidgetCommon.DataRecordType.BUY]: {
20
26
  displayName: 'buy',
21
27
  additionalStyles: {
22
28
  align: 'right',
@@ -24,28 +30,28 @@ const headerConfig = {
24
30
  paddingRight: true
25
31
  }
26
32
  },
27
- [DataRecordType.DAILY_CHANGE]: {
33
+ [_labsWidgetCommon.DataRecordType.DAILY_CHANGE]: {
28
34
  displayName: 'daily_percent_change',
29
35
  additionalStyles: {
30
36
  align: 'right',
31
37
  minWidth: '80px'
32
38
  }
33
39
  },
34
- [DataRecordType.CHART]: {
40
+ [_labsWidgetCommon.DataRecordType.CHART]: {
35
41
  displayName: '24h_chart',
36
42
  additionalStyles: {
37
43
  align: 'center',
38
44
  minWidth: '100px'
39
45
  }
40
46
  },
41
- [DataRecordType.SPREAD]: {
47
+ [_labsWidgetCommon.DataRecordType.SPREAD]: {
42
48
  displayName: 'spread',
43
49
  additionalStyles: {
44
50
  align: 'right',
45
51
  minWidth: '50px'
46
52
  }
47
53
  },
48
- [DataRecordType.SENTIMENT]: {
54
+ [_labsWidgetCommon.DataRecordType.SENTIMENT]: {
49
55
  displayName: 'sentiment',
50
56
  additionalStyles: {
51
57
  align: 'center',
@@ -53,37 +59,36 @@ const headerConfig = {
53
59
  }
54
60
  }
55
61
  };
56
- const navigationConfigDefault = [{
57
- id: TopicalSort.Popular,
62
+ const navigationConfigDefault = exports.navigationConfigDefault = [{
63
+ id: _graphql.TopicalSort.Popular,
58
64
  label: 'popular'
59
65
  }, {
60
- id: TopicalSort.Hot,
66
+ id: _graphql.TopicalSort.Hot,
61
67
  label: 'hot'
62
68
  }, {
63
- id: TopicalSort.Volatile,
69
+ id: _graphql.TopicalSort.Volatile,
64
70
  label: 'volatile'
65
71
  }, {
66
- id: TopicalSort.Bullish,
72
+ id: _graphql.TopicalSort.Bullish,
67
73
  label: 'bullish'
68
74
  }, {
69
- id: TopicalSort.Bearish,
75
+ id: _graphql.TopicalSort.Bearish,
70
76
  label: 'bearish'
71
77
  }];
72
- const navigationConfigOC = [{
73
- id: TopicalSort.Popular,
78
+ const navigationConfigOC = exports.navigationConfigOC = [{
79
+ id: _graphql.TopicalSort.Popular,
74
80
  label: 'most_traded'
75
81
  }, {
76
- id: TopicalSort.Hot,
82
+ id: _graphql.TopicalSort.Hot,
77
83
  label: 'high_volume'
78
84
  }, {
79
- id: TopicalSort.Volatile,
85
+ id: _graphql.TopicalSort.Volatile,
80
86
  label: 'volatile'
81
87
  }, {
82
- id: TopicalSort.Bullish,
88
+ id: _graphql.TopicalSort.Bullish,
83
89
  label: 'net_long'
84
90
  }, {
85
- id: TopicalSort.Bearish,
91
+ id: _graphql.TopicalSort.Bearish,
86
92
  label: 'net_short'
87
93
  }];
88
- export { headerConfig, navigationConfigDefault, navigationConfigOC };
89
94
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","names":["DataRecordType","TopicalSort","headerConfig","INSTRUMENT","displayName","additionalStyles","align","minWidth","SELL","paddingRight","BUY","DAILY_CHANGE","CHART","SPREAD","SENTIMENT","navigationConfigDefault","id","Popular","label","Hot","Volatile","Bullish","Bearish","navigationConfigOC"],"sources":["../../../src/TopicalInstrumentsWidget/config.ts"],"sourcesContent":["import type { HeaderConfigType } from '@oanda/labs-widget-common';\nimport { DataRecordType } from '@oanda/labs-widget-common';\n\nimport { TopicalSort } from '../gql/types/graphql';\n\nconst headerConfig: HeaderConfigType = {\n [DataRecordType.INSTRUMENT]: {\n displayName: 'instrument',\n additionalStyles: {\n align: 'left',\n minWidth: '130px',\n },\n },\n [DataRecordType.SELL]: {\n displayName: 'sell',\n additionalStyles: {\n align: 'right',\n minWidth: '75px',\n paddingRight: true,\n },\n },\n [DataRecordType.BUY]: {\n displayName: 'buy',\n additionalStyles: {\n align: 'right',\n minWidth: '75px',\n paddingRight: true,\n },\n },\n [DataRecordType.DAILY_CHANGE]: {\n displayName: 'daily_percent_change',\n additionalStyles: {\n align: 'right',\n minWidth: '80px',\n },\n },\n [DataRecordType.CHART]: {\n displayName: '24h_chart',\n additionalStyles: {\n align: 'center',\n minWidth: '100px',\n },\n },\n [DataRecordType.SPREAD]: {\n displayName: 'spread',\n additionalStyles: {\n align: 'right',\n minWidth: '50px',\n },\n },\n [DataRecordType.SENTIMENT]: {\n displayName: 'sentiment',\n additionalStyles: {\n align: 'center',\n minWidth: '190px',\n },\n },\n};\n\nconst navigationConfigDefault = [\n {\n id: TopicalSort.Popular,\n label: 'popular',\n },\n {\n id: TopicalSort.Hot,\n label: 'hot',\n },\n {\n id: TopicalSort.Volatile,\n label: 'volatile',\n },\n {\n id: TopicalSort.Bullish,\n label: 'bullish',\n },\n {\n id: TopicalSort.Bearish,\n label: 'bearish',\n },\n];\n\nconst navigationConfigOC = [\n {\n id: TopicalSort.Popular,\n label: 'most_traded',\n },\n {\n id: TopicalSort.Hot,\n label: 'high_volume',\n },\n {\n id: TopicalSort.Volatile,\n label: 'volatile',\n },\n {\n id: TopicalSort.Bullish,\n label: 'net_long',\n },\n {\n id: TopicalSort.Bearish,\n label: 'net_short',\n },\n];\n\nexport { headerConfig, navigationConfigDefault, navigationConfigOC };\n"],"mappings":"AACA,SAASA,cAAc,QAAQ,2BAA2B;AAE1D,SAASC,WAAW,QAAQ,sBAAsB;AAElD,MAAMC,YAA8B,GAAG;EACrC,CAACF,cAAc,CAACG,UAAU,GAAG;IAC3BC,WAAW,EAAE,YAAY;IACzBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,MAAM;MACbC,QAAQ,EAAE;IACZ;EACF,CAAC;EACD,CAACP,cAAc,CAACQ,IAAI,GAAG;IACrBJ,WAAW,EAAE,MAAM;IACnBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE,MAAM;MAChBE,YAAY,EAAE;IAChB;EACF,CAAC;EACD,CAACT,cAAc,CAACU,GAAG,GAAG;IACpBN,WAAW,EAAE,KAAK;IAClBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE,MAAM;MAChBE,YAAY,EAAE;IAChB;EACF,CAAC;EACD,CAACT,cAAc,CAACW,YAAY,GAAG;IAC7BP,WAAW,EAAE,sBAAsB;IACnCC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE;IACZ;EACF,CAAC;EACD,CAACP,cAAc,CAACY,KAAK,GAAG;IACtBR,WAAW,EAAE,WAAW;IACxBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,QAAQ;MACfC,QAAQ,EAAE;IACZ;EACF,CAAC;EACD,CAACP,cAAc,CAACa,MAAM,GAAG;IACvBT,WAAW,EAAE,QAAQ;IACrBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE;IACZ;EACF,CAAC;EACD,CAACP,cAAc,CAACc,SAAS,GAAG;IAC1BV,WAAW,EAAE,WAAW;IACxBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,QAAQ;MACfC,QAAQ,EAAE;IACZ;EACF;AACF,CAAC;AAED,MAAMQ,uBAAuB,GAAG,CAC9B;EACEC,EAAE,EAAEf,WAAW,CAACgB,OAAO;EACvBC,KAAK,EAAE;AACT,CAAC,EACD;EACEF,EAAE,EAAEf,WAAW,CAACkB,GAAG;EACnBD,KAAK,EAAE;AACT,CAAC,EACD;EACEF,EAAE,EAAEf,WAAW,CAACmB,QAAQ;EACxBF,KAAK,EAAE;AACT,CAAC,EACD;EACEF,EAAE,EAAEf,WAAW,CAACoB,OAAO;EACvBH,KAAK,EAAE;AACT,CAAC,EACD;EACEF,EAAE,EAAEf,WAAW,CAACqB,OAAO;EACvBJ,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAMK,kBAAkB,GAAG,CACzB;EACEP,EAAE,EAAEf,WAAW,CAACgB,OAAO;EACvBC,KAAK,EAAE;AACT,CAAC,EACD;EACEF,EAAE,EAAEf,WAAW,CAACkB,GAAG;EACnBD,KAAK,EAAE;AACT,CAAC,EACD;EACEF,EAAE,EAAEf,WAAW,CAACmB,QAAQ;EACxBF,KAAK,EAAE;AACT,CAAC,EACD;EACEF,EAAE,EAAEf,WAAW,CAACoB,OAAO;EACvBH,KAAK,EAAE;AACT,CAAC,EACD;EACEF,EAAE,EAAEf,WAAW,CAACqB,OAAO;EACvBJ,KAAK,EAAE;AACT,CAAC,CACF;AAED,SAAShB,YAAY,EAAEa,uBAAuB,EAAEQ,kBAAkB","ignoreList":[]}
1
+ {"version":3,"file":"config.js","names":["_labsWidgetCommon","require","_graphql","headerConfig","exports","DataRecordType","INSTRUMENT","displayName","additionalStyles","align","minWidth","SELL","paddingRight","BUY","DAILY_CHANGE","CHART","SPREAD","SENTIMENT","navigationConfigDefault","id","TopicalSort","Popular","label","Hot","Volatile","Bullish","Bearish","navigationConfigOC"],"sources":["../../../src/TopicalInstrumentsWidget/config.ts"],"sourcesContent":["import type { HeaderConfigType } from '@oanda/labs-widget-common';\nimport { DataRecordType } from '@oanda/labs-widget-common';\n\nimport { TopicalSort } from '../gql/types/graphql';\n\nconst headerConfig: HeaderConfigType = {\n [DataRecordType.INSTRUMENT]: {\n displayName: 'instrument',\n additionalStyles: {\n align: 'left',\n minWidth: '130px',\n },\n },\n [DataRecordType.SELL]: {\n displayName: 'sell',\n additionalStyles: {\n align: 'right',\n minWidth: '75px',\n paddingRight: true,\n },\n },\n [DataRecordType.BUY]: {\n displayName: 'buy',\n additionalStyles: {\n align: 'right',\n minWidth: '75px',\n paddingRight: true,\n },\n },\n [DataRecordType.DAILY_CHANGE]: {\n displayName: 'daily_percent_change',\n additionalStyles: {\n align: 'right',\n minWidth: '80px',\n },\n },\n [DataRecordType.CHART]: {\n displayName: '24h_chart',\n additionalStyles: {\n align: 'center',\n minWidth: '100px',\n },\n },\n [DataRecordType.SPREAD]: {\n displayName: 'spread',\n additionalStyles: {\n align: 'right',\n minWidth: '50px',\n },\n },\n [DataRecordType.SENTIMENT]: {\n displayName: 'sentiment',\n additionalStyles: {\n align: 'center',\n minWidth: '190px',\n },\n },\n};\n\nconst navigationConfigDefault = [\n {\n id: TopicalSort.Popular,\n label: 'popular',\n },\n {\n id: TopicalSort.Hot,\n label: 'hot',\n },\n {\n id: TopicalSort.Volatile,\n label: 'volatile',\n },\n {\n id: TopicalSort.Bullish,\n label: 'bullish',\n },\n {\n id: TopicalSort.Bearish,\n label: 'bearish',\n },\n];\n\nconst navigationConfigOC = [\n {\n id: TopicalSort.Popular,\n label: 'most_traded',\n },\n {\n id: TopicalSort.Hot,\n label: 'high_volume',\n },\n {\n id: TopicalSort.Volatile,\n label: 'volatile',\n },\n {\n id: TopicalSort.Bullish,\n label: 'net_long',\n },\n {\n id: TopicalSort.Bearish,\n label: 'net_short',\n },\n];\n\nexport { headerConfig, navigationConfigDefault, navigationConfigOC };\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAEA,MAAME,YAA8B,GAAAC,OAAA,CAAAD,YAAA,GAAG;EACrC,CAACE,gCAAc,CAACC,UAAU,GAAG;IAC3BC,WAAW,EAAE,YAAY;IACzBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,MAAM;MACbC,QAAQ,EAAE;IACZ;EACF,CAAC;EACD,CAACL,gCAAc,CAACM,IAAI,GAAG;IACrBJ,WAAW,EAAE,MAAM;IACnBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE,MAAM;MAChBE,YAAY,EAAE;IAChB;EACF,CAAC;EACD,CAACP,gCAAc,CAACQ,GAAG,GAAG;IACpBN,WAAW,EAAE,KAAK;IAClBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE,MAAM;MAChBE,YAAY,EAAE;IAChB;EACF,CAAC;EACD,CAACP,gCAAc,CAACS,YAAY,GAAG;IAC7BP,WAAW,EAAE,sBAAsB;IACnCC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE;IACZ;EACF,CAAC;EACD,CAACL,gCAAc,CAACU,KAAK,GAAG;IACtBR,WAAW,EAAE,WAAW;IACxBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,QAAQ;MACfC,QAAQ,EAAE;IACZ;EACF,CAAC;EACD,CAACL,gCAAc,CAACW,MAAM,GAAG;IACvBT,WAAW,EAAE,QAAQ;IACrBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE;IACZ;EACF,CAAC;EACD,CAACL,gCAAc,CAACY,SAAS,GAAG;IAC1BV,WAAW,EAAE,WAAW;IACxBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,QAAQ;MACfC,QAAQ,EAAE;IACZ;EACF;AACF,CAAC;AAED,MAAMQ,uBAAuB,GAAAd,OAAA,CAAAc,uBAAA,GAAG,CAC9B;EACEC,EAAE,EAAEC,oBAAW,CAACC,OAAO;EACvBC,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEC,oBAAW,CAACG,GAAG;EACnBD,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEC,oBAAW,CAACI,QAAQ;EACxBF,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEC,oBAAW,CAACK,OAAO;EACvBH,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEC,oBAAW,CAACM,OAAO;EACvBJ,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAMK,kBAAkB,GAAAvB,OAAA,CAAAuB,kBAAA,GAAG,CACzB;EACER,EAAE,EAAEC,oBAAW,CAACC,OAAO;EACvBC,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEC,oBAAW,CAACG,GAAG;EACnBD,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEC,oBAAW,CAACI,QAAQ;EACxBF,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEC,oBAAW,CAACK,OAAO;EACvBH,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEC,oBAAW,CAACM,OAAO;EACvBJ,KAAK,EAAE;AACT,CAAC,CACF","ignoreList":[]}
@@ -1,7 +1,12 @@
1
- import { DataRecordType } from '@oanda/labs-widget-common';
2
- const DEFAULT_COUNT = 10;
3
- const DEFAULT_TOTAL_COUNT = 50;
4
- const DEFAULT_COLUMNS = [DataRecordType.SELL, DataRecordType.BUY, DataRecordType.DAILY_CHANGE, DataRecordType.CHART, DataRecordType.SPREAD, DataRecordType.SENTIMENT];
5
- const INSTRUMENT_TOOLTIP_ID = 'instrument_tooltip_id';
6
- export { DEFAULT_COLUMNS, DEFAULT_COUNT, DEFAULT_TOTAL_COUNT, INSTRUMENT_TOOLTIP_ID };
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.INSTRUMENT_TOOLTIP_ID = exports.DEFAULT_TOTAL_COUNT = exports.DEFAULT_COUNT = exports.DEFAULT_COLUMNS = void 0;
7
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
+ const DEFAULT_COUNT = exports.DEFAULT_COUNT = 10;
9
+ const DEFAULT_TOTAL_COUNT = exports.DEFAULT_TOTAL_COUNT = 50;
10
+ const DEFAULT_COLUMNS = exports.DEFAULT_COLUMNS = [_labsWidgetCommon.DataRecordType.SELL, _labsWidgetCommon.DataRecordType.BUY, _labsWidgetCommon.DataRecordType.DAILY_CHANGE, _labsWidgetCommon.DataRecordType.CHART, _labsWidgetCommon.DataRecordType.SPREAD, _labsWidgetCommon.DataRecordType.SENTIMENT];
11
+ const INSTRUMENT_TOOLTIP_ID = exports.INSTRUMENT_TOOLTIP_ID = 'instrument_tooltip_id';
7
12
  //# sourceMappingURL=constant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constant.js","names":["DataRecordType","DEFAULT_COUNT","DEFAULT_TOTAL_COUNT","DEFAULT_COLUMNS","SELL","BUY","DAILY_CHANGE","CHART","SPREAD","SENTIMENT","INSTRUMENT_TOOLTIP_ID"],"sources":["../../../src/TopicalInstrumentsWidget/constant.ts"],"sourcesContent":["import { DataRecordType } from '@oanda/labs-widget-common';\n\nconst DEFAULT_COUNT = 10;\n\nconst DEFAULT_TOTAL_COUNT = 50;\n\nconst DEFAULT_COLUMNS = [\n DataRecordType.SELL,\n DataRecordType.BUY,\n DataRecordType.DAILY_CHANGE,\n DataRecordType.CHART,\n DataRecordType.SPREAD,\n DataRecordType.SENTIMENT,\n];\n\nconst INSTRUMENT_TOOLTIP_ID = 'instrument_tooltip_id';\n\nexport {\n DEFAULT_COLUMNS,\n DEFAULT_COUNT,\n DEFAULT_TOTAL_COUNT,\n INSTRUMENT_TOOLTIP_ID,\n};\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,2BAA2B;AAE1D,MAAMC,aAAa,GAAG,EAAE;AAExB,MAAMC,mBAAmB,GAAG,EAAE;AAE9B,MAAMC,eAAe,GAAG,CACtBH,cAAc,CAACI,IAAI,EACnBJ,cAAc,CAACK,GAAG,EAClBL,cAAc,CAACM,YAAY,EAC3BN,cAAc,CAACO,KAAK,EACpBP,cAAc,CAACQ,MAAM,EACrBR,cAAc,CAACS,SAAS,CACzB;AAED,MAAMC,qBAAqB,GAAG,uBAAuB;AAErD,SACEP,eAAe,EACfF,aAAa,EACbC,mBAAmB,EACnBQ,qBAAqB","ignoreList":[]}
1
+ {"version":3,"file":"constant.js","names":["_labsWidgetCommon","require","DEFAULT_COUNT","exports","DEFAULT_TOTAL_COUNT","DEFAULT_COLUMNS","DataRecordType","SELL","BUY","DAILY_CHANGE","CHART","SPREAD","SENTIMENT","INSTRUMENT_TOOLTIP_ID"],"sources":["../../../src/TopicalInstrumentsWidget/constant.ts"],"sourcesContent":["import { DataRecordType } from '@oanda/labs-widget-common';\n\nconst DEFAULT_COUNT = 10;\n\nconst DEFAULT_TOTAL_COUNT = 50;\n\nconst DEFAULT_COLUMNS = [\n DataRecordType.SELL,\n DataRecordType.BUY,\n DataRecordType.DAILY_CHANGE,\n DataRecordType.CHART,\n DataRecordType.SPREAD,\n DataRecordType.SENTIMENT,\n];\n\nconst INSTRUMENT_TOOLTIP_ID = 'instrument_tooltip_id';\n\nexport {\n DEFAULT_COLUMNS,\n DEFAULT_COUNT,\n DEFAULT_TOTAL_COUNT,\n INSTRUMENT_TOOLTIP_ID,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,EAAE;AAExB,MAAME,mBAAmB,GAAAD,OAAA,CAAAC,mBAAA,GAAG,EAAE;AAE9B,MAAMC,eAAe,GAAAF,OAAA,CAAAE,eAAA,GAAG,CACtBC,gCAAc,CAACC,IAAI,EACnBD,gCAAc,CAACE,GAAG,EAClBF,gCAAc,CAACG,YAAY,EAC3BH,gCAAc,CAACI,KAAK,EACpBJ,gCAAc,CAACK,MAAM,EACrBL,gCAAc,CAACM,SAAS,CACzB;AAED,MAAMC,qBAAqB,GAAAV,OAAA,CAAAU,qBAAA,GAAG,uBAAuB","ignoreList":[]}
@@ -1,3 +1,28 @@
1
- export * from './TopicalInstrumentsWidget';
2
- export * from './types';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _TopicalInstrumentsWidget = require("./TopicalInstrumentsWidget");
7
+ Object.keys(_TopicalInstrumentsWidget).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _TopicalInstrumentsWidget[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _TopicalInstrumentsWidget[key];
14
+ }
15
+ });
16
+ });
17
+ var _types = require("./types");
18
+ Object.keys(_types).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _types[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _types[key];
25
+ }
26
+ });
27
+ });
3
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/TopicalInstrumentsWidget/index.ts"],"sourcesContent":["export * from './TopicalInstrumentsWidget';\nexport * from './types';\n"],"mappings":"AAAA,cAAc,4BAA4B;AAC1C,cAAc,SAAS","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_TopicalInstrumentsWidget","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_types"],"sources":["../../../src/TopicalInstrumentsWidget/index.ts"],"sourcesContent":["export * from './TopicalInstrumentsWidget';\nexport * from './types';\n"],"mappings":";;;;;AAAA,IAAAA,yBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,yBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,yBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,yBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,MAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,MAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,MAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,8 +1,11 @@
1
- import { validateLocale, validateToolParams } from '@oanda/labs-widget-common';
2
- import React from 'react';
3
- import { createRoot } from 'react-dom/client';
4
- import { Division } from '../gql/types/graphql';
5
- import { TopicalInstrumentsWidget } from './TopicalInstrumentsWidget';
1
+ "use strict";
2
+
3
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _client = require("react-dom/client");
6
+ var _graphql = require("../gql/types/graphql");
7
+ var _TopicalInstrumentsWidget = require("./TopicalInstrumentsWidget");
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
6
9
  const {
7
10
  graphqlUrl: configGraphQlUrl,
8
11
  liveRatesUrl: configLiveRatesUrl,
@@ -20,7 +23,7 @@ const {
20
23
  const topicalInstrumentsParamsElements = document.querySelectorAll('div[data-topical-instruments-params]');
21
24
  if (topicalInstrumentsParamsElements.length > 0) {
22
25
  topicalInstrumentsParamsElements.forEach(element => {
23
- const root = createRoot(element);
26
+ const root = (0, _client.createRoot)(element);
24
27
  const params = element.getAttribute('data-topical-instruments-params');
25
28
  const mode = element.getAttribute('data-mode');
26
29
  const {
@@ -33,23 +36,23 @@ if (topicalInstrumentsParamsElements.length > 0) {
33
36
  logoLink
34
37
  } = JSON.parse(params);
35
38
  const countValue = count !== undefined ? parseInt(count, 10) : count;
36
- const isParamError = validateToolParams({
39
+ const isParamError = (0, _labsWidgetCommon.validateToolParams)({
37
40
  division,
38
41
  locale,
39
42
  graphqlUrl,
40
43
  liveRatesUrl
41
44
  }, [{
42
45
  name: 'locale',
43
- valueCheck: value => validateLocale(value)
46
+ valueCheck: value => (0, _labsWidgetCommon.validateLocale)(value)
44
47
  }, {
45
48
  name: 'division',
46
- valueCheck: value => Object.values(Division).includes(value)
49
+ valueCheck: value => Object.values(_graphql.Division).includes(value)
47
50
  }, {
48
51
  name: 'graphqlUrl'
49
52
  }, {
50
53
  name: 'liveRatesUrl'
51
54
  }]);
52
- root.render(React.createElement(TopicalInstrumentsWidget, {
55
+ root.render(_react.default.createElement(_TopicalInstrumentsWidget.TopicalInstrumentsWidget, {
53
56
  assetClass: assetClass,
54
57
  columns: columns,
55
58
  count: countValue,
@@ -65,8 +68,8 @@ if (topicalInstrumentsParamsElements.length > 0) {
65
68
  });
66
69
  } else {
67
70
  const container = document.querySelector(configRenderElementId);
68
- const root = createRoot(container);
69
- root.render(React.createElement(TopicalInstrumentsWidget, {
71
+ const root = (0, _client.createRoot)(container);
72
+ root.render(_react.default.createElement(_TopicalInstrumentsWidget.TopicalInstrumentsWidget, {
70
73
  columns: configColumns,
71
74
  count: configCount,
72
75
  division: configDivision,
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","names":["validateLocale","validateToolParams","React","createRoot","Division","TopicalInstrumentsWidget","graphqlUrl","configGraphQlUrl","liveRatesUrl","configLiveRatesUrl","sort","configSort","division","configDivision","count","configCount","columns","configColumns","renderElementId","configRenderElementId","locale","configLocale","window","topicalInstrumentsWidgetConfig","widgetsConfig","topicalInstrumentsParamsElements","document","querySelectorAll","length","forEach","element","root","params","getAttribute","mode","assetClass","logoLink","JSON","parse","countValue","undefined","parseInt","isParamError","name","valueCheck","value","Object","values","includes","render","createElement","theme","container","querySelector"],"sources":["../../../src/TopicalInstrumentsWidget/render.tsx"],"sourcesContent":["import type { Theme } from '@oanda/labs-widget-common';\nimport { validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { Division } from '../gql/types/graphql';\nimport { TopicalInstrumentsWidget } from './TopicalInstrumentsWidget';\n\nconst {\n graphqlUrl: configGraphQlUrl,\n liveRatesUrl: configLiveRatesUrl,\n sort: configSort,\n division: configDivision,\n count: configCount,\n columns: configColumns,\n renderElementId: configRenderElementId,\n locale: configLocale,\n} = window.topicalInstrumentsWidgetConfig || {};\n\nconst { graphqlUrl, liveRatesUrl } = window.widgetsConfig || {};\n\nconst topicalInstrumentsParamsElements = document.querySelectorAll(\n 'div[data-topical-instruments-params]'\n);\n\nif (topicalInstrumentsParamsElements.length > 0) {\n topicalInstrumentsParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-topical-instruments-params');\n const mode = element.getAttribute('data-mode');\n const { sort, assetClass, count, columns, division, locale, logoLink } =\n JSON.parse(params as string);\n\n const countValue =\n count !== undefined ? parseInt(count as string, 10) : count;\n\n const isParamError = validateToolParams(\n {\n division,\n locale,\n graphqlUrl,\n liveRatesUrl,\n },\n [\n {\n name: 'locale',\n valueCheck: (value: string | undefined) => validateLocale(value),\n },\n {\n name: 'division',\n valueCheck: (value: Division) =>\n Object.values(Division).includes(value),\n },\n {\n name: 'graphqlUrl',\n },\n {\n name: 'liveRatesUrl',\n },\n ]\n );\n\n root.render(\n <TopicalInstrumentsWidget\n assetClass={assetClass}\n columns={columns}\n count={countValue}\n division={division}\n graphqlUrl={graphqlUrl}\n isParamError={isParamError}\n liveRatesUrl={liveRatesUrl}\n locale={locale}\n logoLink={logoLink}\n sort={sort}\n theme={mode as Theme}\n />\n );\n });\n} else {\n const container: HTMLElement | null = document.querySelector(\n configRenderElementId\n );\n\n const root = createRoot(container!);\n\n root.render(\n <TopicalInstrumentsWidget\n columns={configColumns}\n count={configCount}\n division={configDivision}\n graphqlUrl={configGraphQlUrl}\n liveRatesUrl={configLiveRatesUrl}\n locale={configLocale}\n sort={configSort}\n />\n );\n}\n"],"mappings":"AACA,SAASA,cAAc,EAAEC,kBAAkB,QAAQ,2BAA2B;AAC9E,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,wBAAwB,QAAQ,4BAA4B;AAErE,MAAM;EACJC,UAAU,EAAEC,gBAAgB;EAC5BC,YAAY,EAAEC,kBAAkB;EAChCC,IAAI,EAAEC,UAAU;EAChBC,QAAQ,EAAEC,cAAc;EACxBC,KAAK,EAAEC,WAAW;EAClBC,OAAO,EAAEC,aAAa;EACtBC,eAAe,EAAEC,qBAAqB;EACtCC,MAAM,EAAEC;AACV,CAAC,GAAGC,MAAM,CAACC,8BAA8B,IAAI,CAAC,CAAC;AAE/C,MAAM;EAAEjB,UAAU;EAAEE;AAAa,CAAC,GAAGc,MAAM,CAACE,aAAa,IAAI,CAAC,CAAC;AAE/D,MAAMC,gCAAgC,GAAGC,QAAQ,CAACC,gBAAgB,CAChE,sCACF,CAAC;AAED,IAAIF,gCAAgC,CAACG,MAAM,GAAG,CAAC,EAAE;EAC/CH,gCAAgC,CAACI,OAAO,CAAEC,OAAO,IAAK;IACpD,MAAMC,IAAI,GAAG5B,UAAU,CAAC2B,OAAO,CAAC;IAChC,MAAME,MAAM,GAAGF,OAAO,CAACG,YAAY,CAAC,iCAAiC,CAAC;IACtE,MAAMC,IAAI,GAAGJ,OAAO,CAACG,YAAY,CAAC,WAAW,CAAC;IAC9C,MAAM;MAAEvB,IAAI;MAAEyB,UAAU;MAAErB,KAAK;MAAEE,OAAO;MAAEJ,QAAQ;MAAEQ,MAAM;MAAEgB;IAAS,CAAC,GACpEC,IAAI,CAACC,KAAK,CAACN,MAAgB,CAAC;IAE9B,MAAMO,UAAU,GACdzB,KAAK,KAAK0B,SAAS,GAAGC,QAAQ,CAAC3B,KAAK,EAAY,EAAE,CAAC,GAAGA,KAAK;IAE7D,MAAM4B,YAAY,GAAGzC,kBAAkB,CACrC;MACEW,QAAQ;MACRQ,MAAM;MACNd,UAAU;MACVE;IACF,CAAC,EACD,CACE;MACEmC,IAAI,EAAE,QAAQ;MACdC,UAAU,EAAGC,KAAyB,IAAK7C,cAAc,CAAC6C,KAAK;IACjE,CAAC,EACD;MACEF,IAAI,EAAE,UAAU;MAChBC,UAAU,EAAGC,KAAe,IAC1BC,MAAM,CAACC,MAAM,CAAC3C,QAAQ,CAAC,CAAC4C,QAAQ,CAACH,KAAK;IAC1C,CAAC,EACD;MACEF,IAAI,EAAE;IACR,CAAC,EACD;MACEA,IAAI,EAAE;IACR,CAAC,CAEL,CAAC;IAEDZ,IAAI,CAACkB,MAAM,CACT/C,KAAA,CAAAgD,aAAA,CAAC7C,wBAAwB;MACvB8B,UAAU,EAAEA,UAAW;MACvBnB,OAAO,EAAEA,OAAQ;MACjBF,KAAK,EAAEyB,UAAW;MAClB3B,QAAQ,EAAEA,QAAS;MACnBN,UAAU,EAAEA,UAAW;MACvBoC,YAAY,EAAEA,YAAa;MAC3BlC,YAAY,EAAEA,YAAa;MAC3BY,MAAM,EAAEA,MAAO;MACfgB,QAAQ,EAAEA,QAAS;MACnB1B,IAAI,EAAEA,IAAK;MACXyC,KAAK,EAAEjB;IAAc,CACtB,CACH,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,MAAM;EACL,MAAMkB,SAA6B,GAAG1B,QAAQ,CAAC2B,aAAa,CAC1DlC,qBACF,CAAC;EAED,MAAMY,IAAI,GAAG5B,UAAU,CAACiD,SAAU,CAAC;EAEnCrB,IAAI,CAACkB,MAAM,CACT/C,KAAA,CAAAgD,aAAA,CAAC7C,wBAAwB;IACvBW,OAAO,EAAEC,aAAc;IACvBH,KAAK,EAAEC,WAAY;IACnBH,QAAQ,EAAEC,cAAe;IACzBP,UAAU,EAAEC,gBAAiB;IAC7BC,YAAY,EAAEC,kBAAmB;IACjCW,MAAM,EAAEC,YAAa;IACrBX,IAAI,EAAEC;EAAW,CAClB,CACH,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"render.js","names":["_labsWidgetCommon","require","_react","_interopRequireDefault","_client","_graphql","_TopicalInstrumentsWidget","e","__esModule","default","graphqlUrl","configGraphQlUrl","liveRatesUrl","configLiveRatesUrl","sort","configSort","division","configDivision","count","configCount","columns","configColumns","renderElementId","configRenderElementId","locale","configLocale","window","topicalInstrumentsWidgetConfig","widgetsConfig","topicalInstrumentsParamsElements","document","querySelectorAll","length","forEach","element","root","createRoot","params","getAttribute","mode","assetClass","logoLink","JSON","parse","countValue","undefined","parseInt","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","render","createElement","TopicalInstrumentsWidget","theme","container","querySelector"],"sources":["../../../src/TopicalInstrumentsWidget/render.tsx"],"sourcesContent":["import type { Theme } from '@oanda/labs-widget-common';\nimport { validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { Division } from '../gql/types/graphql';\nimport { TopicalInstrumentsWidget } from './TopicalInstrumentsWidget';\n\nconst {\n graphqlUrl: configGraphQlUrl,\n liveRatesUrl: configLiveRatesUrl,\n sort: configSort,\n division: configDivision,\n count: configCount,\n columns: configColumns,\n renderElementId: configRenderElementId,\n locale: configLocale,\n} = window.topicalInstrumentsWidgetConfig || {};\n\nconst { graphqlUrl, liveRatesUrl } = window.widgetsConfig || {};\n\nconst topicalInstrumentsParamsElements = document.querySelectorAll(\n 'div[data-topical-instruments-params]'\n);\n\nif (topicalInstrumentsParamsElements.length > 0) {\n topicalInstrumentsParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-topical-instruments-params');\n const mode = element.getAttribute('data-mode');\n const { sort, assetClass, count, columns, division, locale, logoLink } =\n JSON.parse(params as string);\n\n const countValue =\n count !== undefined ? parseInt(count as string, 10) : count;\n\n const isParamError = validateToolParams(\n {\n division,\n locale,\n graphqlUrl,\n liveRatesUrl,\n },\n [\n {\n name: 'locale',\n valueCheck: (value: string | undefined) => validateLocale(value),\n },\n {\n name: 'division',\n valueCheck: (value: Division) =>\n Object.values(Division).includes(value),\n },\n {\n name: 'graphqlUrl',\n },\n {\n name: 'liveRatesUrl',\n },\n ]\n );\n\n root.render(\n <TopicalInstrumentsWidget\n assetClass={assetClass}\n columns={columns}\n count={countValue}\n division={division}\n graphqlUrl={graphqlUrl}\n isParamError={isParamError}\n liveRatesUrl={liveRatesUrl}\n locale={locale}\n logoLink={logoLink}\n sort={sort}\n theme={mode as Theme}\n />\n );\n });\n} else {\n const container: HTMLElement | null = document.querySelector(\n configRenderElementId\n );\n\n const root = createRoot(container!);\n\n root.render(\n <TopicalInstrumentsWidget\n columns={configColumns}\n count={configCount}\n division={configDivision}\n graphqlUrl={configGraphQlUrl}\n liveRatesUrl={configLiveRatesUrl}\n locale={configLocale}\n sort={configSort}\n />\n );\n}\n"],"mappings":";;AACA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,yBAAA,GAAAL,OAAA;AAAsE,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtE,MAAM;EACJG,UAAU,EAAEC,gBAAgB;EAC5BC,YAAY,EAAEC,kBAAkB;EAChCC,IAAI,EAAEC,UAAU;EAChBC,QAAQ,EAAEC,cAAc;EACxBC,KAAK,EAAEC,WAAW;EAClBC,OAAO,EAAEC,aAAa;EACtBC,eAAe,EAAEC,qBAAqB;EACtCC,MAAM,EAAEC;AACV,CAAC,GAAGC,MAAM,CAACC,8BAA8B,IAAI,CAAC,CAAC;AAE/C,MAAM;EAAEjB,UAAU;EAAEE;AAAa,CAAC,GAAGc,MAAM,CAACE,aAAa,IAAI,CAAC,CAAC;AAE/D,MAAMC,gCAAgC,GAAGC,QAAQ,CAACC,gBAAgB,CAChE,sCACF,CAAC;AAED,IAAIF,gCAAgC,CAACG,MAAM,GAAG,CAAC,EAAE;EAC/CH,gCAAgC,CAACI,OAAO,CAAEC,OAAO,IAAK;IACpD,MAAMC,IAAI,GAAG,IAAAC,kBAAU,EAACF,OAAO,CAAC;IAChC,MAAMG,MAAM,GAAGH,OAAO,CAACI,YAAY,CAAC,iCAAiC,CAAC;IACtE,MAAMC,IAAI,GAAGL,OAAO,CAACI,YAAY,CAAC,WAAW,CAAC;IAC9C,MAAM;MAAExB,IAAI;MAAE0B,UAAU;MAAEtB,KAAK;MAAEE,OAAO;MAAEJ,QAAQ;MAAEQ,MAAM;MAAEiB;IAAS,CAAC,GACpEC,IAAI,CAACC,KAAK,CAACN,MAAgB,CAAC;IAE9B,MAAMO,UAAU,GACd1B,KAAK,KAAK2B,SAAS,GAAGC,QAAQ,CAAC5B,KAAK,EAAY,EAAE,CAAC,GAAGA,KAAK;IAE7D,MAAM6B,YAAY,GAAG,IAAAC,oCAAkB,EACrC;MACEhC,QAAQ;MACRQ,MAAM;MACNd,UAAU;MACVE;IACF,CAAC,EACD,CACE;MACEqC,IAAI,EAAE,QAAQ;MACdC,UAAU,EAAGC,KAAyB,IAAK,IAAAC,gCAAc,EAACD,KAAK;IACjE,CAAC,EACD;MACEF,IAAI,EAAE,UAAU;MAChBC,UAAU,EAAGC,KAAe,IAC1BE,MAAM,CAACC,MAAM,CAACC,iBAAQ,CAAC,CAACC,QAAQ,CAACL,KAAK;IAC1C,CAAC,EACD;MACEF,IAAI,EAAE;IACR,CAAC,EACD;MACEA,IAAI,EAAE;IACR,CAAC,CAEL,CAAC;IAEDd,IAAI,CAACsB,MAAM,CACTvD,MAAA,CAAAO,OAAA,CAAAiD,aAAA,CAACpD,yBAAA,CAAAqD,wBAAwB;MACvBnB,UAAU,EAAEA,UAAW;MACvBpB,OAAO,EAAEA,OAAQ;MACjBF,KAAK,EAAE0B,UAAW;MAClB5B,QAAQ,EAAEA,QAAS;MACnBN,UAAU,EAAEA,UAAW;MACvBqC,YAAY,EAAEA,YAAa;MAC3BnC,YAAY,EAAEA,YAAa;MAC3BY,MAAM,EAAEA,MAAO;MACfiB,QAAQ,EAAEA,QAAS;MACnB3B,IAAI,EAAEA,IAAK;MACX8C,KAAK,EAAErB;IAAc,CACtB,CACH,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,MAAM;EACL,MAAMsB,SAA6B,GAAG/B,QAAQ,CAACgC,aAAa,CAC1DvC,qBACF,CAAC;EAED,MAAMY,IAAI,GAAG,IAAAC,kBAAU,EAACyB,SAAU,CAAC;EAEnC1B,IAAI,CAACsB,MAAM,CACTvD,MAAA,CAAAO,OAAA,CAAAiD,aAAA,CAACpD,yBAAA,CAAAqD,wBAAwB;IACvBvC,OAAO,EAAEC,aAAc;IACvBH,KAAK,EAAEC,WAAY;IACnBH,QAAQ,EAAEC,cAAe;IACzBP,UAAU,EAAEC,gBAAiB;IAC7BC,YAAY,EAAEC,kBAAmB;IACjCW,MAAM,EAAEC,YAAa;IACrBX,IAAI,EAAEC;EAAW,CAClB,CACH,CAAC;AACH","ignoreList":[]}