@oanda/labs-live-rates-table-widget 1.0.118 → 1.0.120

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 (37) hide show
  1. package/CHANGELOG.md +823 -14833
  2. package/dist/module/LiveRatesTableWidget/LiveRatesTableWidget.js +24 -17
  3. package/dist/module/LiveRatesTableWidget/LiveRatesTableWidget.js.map +1 -1
  4. package/dist/module/LiveRatesTableWidget/Main.js +30 -23
  5. package/dist/module/LiveRatesTableWidget/Main.js.map +1 -1
  6. package/dist/module/LiveRatesTableWidget/config.js +19 -14
  7. package/dist/module/LiveRatesTableWidget/config.js.map +1 -1
  8. package/dist/module/LiveRatesTableWidget/constant.js +11 -6
  9. package/dist/module/LiveRatesTableWidget/constant.js.map +1 -1
  10. package/dist/module/LiveRatesTableWidget/render.js +13 -10
  11. package/dist/module/LiveRatesTableWidget/render.js.map +1 -1
  12. package/dist/module/LiveRatesTableWidget/types.js +21 -3
  13. package/dist/module/LiveRatesTableWidget/types.js.map +1 -1
  14. package/dist/module/LiveRatesTableWidget/utils.js +7 -1
  15. package/dist/module/LiveRatesTableWidget/utils.js.map +1 -1
  16. package/dist/module/gql/getInstrumentsChart.js +8 -2
  17. package/dist/module/gql/getInstrumentsChart.js.map +1 -1
  18. package/dist/module/gql/types/fragment-masking.js +11 -3
  19. package/dist/module/gql/types/fragment-masking.js.map +1 -1
  20. package/dist/module/gql/types/gql.js +9 -2
  21. package/dist/module/gql/types/gql.js.map +1 -1
  22. package/dist/module/gql/types/graphql.js +22 -16
  23. package/dist/module/gql/types/graphql.js.map +1 -1
  24. package/dist/module/gql/types/index.js +27 -2
  25. package/dist/module/gql/types/index.js.map +1 -1
  26. package/dist/module/gql/validateInstruments.js +8 -2
  27. package/dist/module/gql/validateInstruments.js.map +1 -1
  28. package/dist/module/index.js +27 -2
  29. package/dist/module/index.js.map +1 -1
  30. package/dist/module/translations/index.js +21 -14
  31. package/dist/module/translations/index.js.map +1 -1
  32. package/dist/module/translations/translations.js +7 -1
  33. package/dist/module/translations/translations.js.map +1 -1
  34. package/dist/types/gql/getInstrumentsChart.d.ts +1 -1
  35. package/dist/types/gql/validateInstruments.d.ts +1 -1
  36. package/package.json +8 -4
  37. package/tsconfig.types.json +2 -4
@@ -1,10 +1,17 @@
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 { sizeConfig } from './config';
6
- import { Main } from './Main';
7
- import { Division } from './types';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LiveRatesTableWidget = 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 _config = require("./config");
12
+ var _Main = require("./Main");
13
+ var _types = require("./types");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
15
  const LiveRatesTableWidget = _ref => {
9
16
  let {
10
17
  graphqlUrl,
@@ -20,13 +27,13 @@ const LiveRatesTableWidget = _ref => {
20
27
  logoLink,
21
28
  brandingSpace
22
29
  } = _ref;
23
- const client = new ApolloClient({
30
+ const client = new _client.ApolloClient({
24
31
  uri: graphqlUrl,
25
- cache: new InMemoryCache()
32
+ cache: new _client.InMemoryCache()
26
33
  });
27
- const divisionCode = division === Division.Opt ? Division.Ogm : division;
28
- const dataSource = divisionCode === Division.Ogm ? 'MT5' : 'V20';
29
- return React.createElement(WidgetProvider, {
34
+ const divisionCode = division === _types.Division.Opt ? _types.Division.Ogm : division;
35
+ const dataSource = divisionCode === _types.Division.Ogm ? 'MT5' : 'V20';
36
+ return _react.default.createElement(_labsWidgetCommon.WidgetProvider, {
30
37
  client: client,
31
38
  liveRates: {
32
39
  url: liveRatesUrl,
@@ -38,20 +45,20 @@ const LiveRatesTableWidget = _ref => {
38
45
  locale: locale,
39
46
  styling: {
40
47
  removePadding,
41
- size: view && sizeConfig[view]
48
+ size: view && _config.sizeConfig[view]
42
49
  },
43
50
  theme: theme,
44
- translations: translations
45
- }, React.createElement(WidgetWrapper, {
51
+ translations: _translations.translations
52
+ }, _react.default.createElement(_labsWidgetCommon.WidgetWrapper, {
46
53
  brandingSpace: brandingSpace,
47
54
  isParamError: isParamError,
48
55
  linkArea: "logo",
49
56
  logoLink: logoLink
50
- }, React.createElement(Main, {
57
+ }, _react.default.createElement(_Main.Main, {
51
58
  columns: columns,
52
59
  division: division,
53
60
  instruments: instruments
54
61
  })));
55
62
  };
56
- export { LiveRatesTableWidget };
63
+ exports.LiveRatesTableWidget = LiveRatesTableWidget;
57
64
  //# sourceMappingURL=LiveRatesTableWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiveRatesTableWidget.js","names":["ApolloClient","InMemoryCache","WidgetProvider","WidgetWrapper","React","translations","sizeConfig","Main","Division","LiveRatesTableWidget","_ref","graphqlUrl","liveRatesUrl","instruments","division","columns","locale","theme","isParamError","removePadding","view","logoLink","brandingSpace","client","uri","cache","divisionCode","Opt","Ogm","dataSource","createElement","liveRates","url","options","styling","size","linkArea"],"sources":["../../../src/LiveRatesTableWidget/LiveRatesTableWidget.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 { sizeConfig } from './config';\nimport { Main } from './Main';\nimport type { LiveRatesTableConfig } from './types';\nimport { Division } from './types';\n\nconst LiveRatesTableWidget = ({\n graphqlUrl,\n liveRatesUrl,\n instruments,\n division,\n columns,\n locale,\n theme,\n isParamError,\n removePadding,\n view,\n logoLink,\n brandingSpace,\n}: LiveRatesTableConfig) => {\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 size: view && sizeConfig[view],\n }}\n theme={theme}\n translations={translations}\n >\n <WidgetWrapper\n brandingSpace={brandingSpace}\n isParamError={isParamError}\n linkArea=\"logo\"\n logoLink={logoLink}\n >\n <Main columns={columns} division={division} instruments={instruments} />\n </WidgetWrapper>\n </WidgetProvider>\n );\n};\n\nexport { LiveRatesTableWidget };\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,UAAU,QAAQ,UAAU;AACrC,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,QAAQ,QAAQ,SAAS;AAElC,MAAMC,oBAAoB,GAAGC,IAAA,IAaD;EAAA,IAbE;IAC5BC,UAAU;IACVC,YAAY;IACZC,WAAW;IACXC,QAAQ;IACRC,OAAO;IACPC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC,IAAI;IACJC,QAAQ;IACRC;EACoB,CAAC,GAAAZ,IAAA;EACrB,MAAMa,MAAM,GAAG,IAAIvB,YAAY,CAAC;IAC9BwB,GAAG,EAAEb,UAAU;IACfc,KAAK,EAAE,IAAIxB,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMyB,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,OACExB,KAAA,CAAA0B,aAAA,CAAC5B,cAAc;IACbqB,MAAM,EAAEA,MAAO;IACfQ,SAAS,EAAE;MACTC,GAAG,EAAEpB,YAAY;MACjBqB,OAAO,EAAE;QAAEP,YAAY;QAAEG;MAAW;IACtC,CAAE;IACFb,MAAM,EAAEA,MAAO;IACfkB,OAAO,EAAE;MACPf,aAAa;MACbgB,IAAI,EAAEf,IAAI,IAAId,UAAU,CAACc,IAAI;IAC/B,CAAE;IACFH,KAAK,EAAEA,KAAM;IACbZ,YAAY,EAAEA;EAAa,GAE3BD,KAAA,CAAA0B,aAAA,CAAC3B,aAAa;IACZmB,aAAa,EAAEA,aAAc;IAC7BJ,YAAY,EAAEA,YAAa;IAC3BkB,QAAQ,EAAC,MAAM;IACff,QAAQ,EAAEA;EAAS,GAEnBjB,KAAA,CAAA0B,aAAA,CAACvB,IAAI;IAACQ,OAAO,EAAEA,OAAQ;IAACD,QAAQ,EAAEA,QAAS;IAACD,WAAW,EAAEA;EAAY,CAAE,CAC1D,CACD,CAAC;AAErB,CAAC;AAED,SAASJ,oBAAoB","ignoreList":[]}
1
+ {"version":3,"file":"LiveRatesTableWidget.js","names":["_client","require","_labsWidgetCommon","_react","_interopRequireDefault","_translations","_config","_Main","_types","e","__esModule","default","LiveRatesTableWidget","_ref","graphqlUrl","liveRatesUrl","instruments","division","columns","locale","theme","isParamError","removePadding","view","logoLink","brandingSpace","client","ApolloClient","uri","cache","InMemoryCache","divisionCode","Division","Opt","Ogm","dataSource","createElement","WidgetProvider","liveRates","url","options","styling","size","sizeConfig","translations","WidgetWrapper","linkArea","Main","exports"],"sources":["../../../src/LiveRatesTableWidget/LiveRatesTableWidget.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 { sizeConfig } from './config';\nimport { Main } from './Main';\nimport type { LiveRatesTableConfig } from './types';\nimport { Division } from './types';\n\nconst LiveRatesTableWidget = ({\n graphqlUrl,\n liveRatesUrl,\n instruments,\n division,\n columns,\n locale,\n theme,\n isParamError,\n removePadding,\n view,\n logoLink,\n brandingSpace,\n}: LiveRatesTableConfig) => {\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 size: view && sizeConfig[view],\n }}\n theme={theme}\n translations={translations}\n >\n <WidgetWrapper\n brandingSpace={brandingSpace}\n isParamError={isParamError}\n linkArea=\"logo\"\n logoLink={logoLink}\n >\n <Main columns={columns} division={division} instruments={instruments} />\n </WidgetWrapper>\n </WidgetProvider>\n );\n};\n\nexport { LiveRatesTableWidget };\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,OAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AAEA,IAAAO,MAAA,GAAAP,OAAA;AAAmC,SAAAG,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnC,MAAMG,oBAAoB,GAAGC,IAAA,IAaD;EAAA,IAbE;IAC5BC,UAAU;IACVC,YAAY;IACZC,WAAW;IACXC,QAAQ;IACRC,OAAO;IACPC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC,IAAI;IACJC,QAAQ;IACRC;EACoB,CAAC,GAAAZ,IAAA;EACrB,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,OACE/B,MAAA,CAAAQ,OAAA,CAAAyB,aAAA,CAAClC,iBAAA,CAAAmC,cAAc;IACbX,MAAM,EAAEA,MAAO;IACfY,SAAS,EAAE;MACTC,GAAG,EAAExB,YAAY;MACjByB,OAAO,EAAE;QAAET,YAAY;QAAEI;MAAW;IACtC,CAAE;IACFhB,MAAM,EAAEA,MAAO;IACfsB,OAAO,EAAE;MACPnB,aAAa;MACboB,IAAI,EAAEnB,IAAI,IAAIoB,kBAAU,CAACpB,IAAI;IAC/B,CAAE;IACFH,KAAK,EAAEA,KAAM;IACbwB,YAAY,EAAEA;EAAa,GAE3BzC,MAAA,CAAAQ,OAAA,CAAAyB,aAAA,CAAClC,iBAAA,CAAA2C,aAAa;IACZpB,aAAa,EAAEA,aAAc;IAC7BJ,YAAY,EAAEA,YAAa;IAC3ByB,QAAQ,EAAC,MAAM;IACftB,QAAQ,EAAEA;EAAS,GAEnBrB,MAAA,CAAAQ,OAAA,CAAAyB,aAAA,CAAC7B,KAAA,CAAAwC,IAAI;IAAC7B,OAAO,EAAEA,OAAQ;IAACD,QAAQ,EAAEA,QAAS;IAACD,WAAW,EAAEA;EAAY,CAAE,CAC1D,CACD,CAAC;AAErB,CAAC;AAACgC,OAAA,CAAApC,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -1,37 +1,44 @@
1
- import { getHeaderConfig, Size, TableWidget, useFetchCombinedDataRecords, useLayoutProvider, useLiveRatesQuery } from '@oanda/labs-widget-common';
2
- import React, { useEffect, useState } from 'react';
3
- import { getInstrumentsChart } from '../gql/getInstrumentsChart';
4
- import { validateInstruments } from '../gql/validateInstruments';
5
- import { headerConfig } from './config';
6
- import { DEFAULT_COLUMNS, INSTRUMENT_TOOLTIP_ID } from './constant';
7
- import { getRecords } from './utils';
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 _react = _interopRequireWildcard(require("react"));
9
+ var _getInstrumentsChart = require("../gql/getInstrumentsChart");
10
+ var _validateInstruments = require("../gql/validateInstruments");
11
+ var _config = require("./config");
12
+ var _constant = require("./constant");
13
+ var _utils = require("./utils");
14
+ 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); }
8
15
  const Main = _ref => {
9
16
  let {
10
17
  instruments,
11
18
  division,
12
- columns = DEFAULT_COLUMNS
19
+ columns = _constant.DEFAULT_COLUMNS
13
20
  } = _ref;
14
21
  const {
15
22
  size
16
- } = useLayoutProvider();
17
- const isDesktop = size === Size.DESKTOP;
23
+ } = (0, _labsWidgetCommon.useLayoutProvider)();
24
+ const isDesktop = size === _labsWidgetCommon.Size.DESKTOP;
18
25
  const {
19
26
  target,
20
27
  setQuery
21
- } = useLiveRatesQuery();
22
- const [records, setRecords] = useState(new Array(instruments.length).fill({}));
28
+ } = (0, _labsWidgetCommon.useLiveRatesQuery)();
29
+ const [records, setRecords] = (0, _react.useState)(new Array(instruments.length).fill({}));
23
30
  const {
24
31
  data,
25
32
  loading,
26
33
  mainLoading,
27
34
  error
28
- } = useFetchCombinedDataRecords({
29
- mainQuery: validateInstruments,
35
+ } = (0, _labsWidgetCommon.useFetchCombinedDataRecords)({
36
+ mainQuery: _validateInstruments.validateInstruments,
30
37
  mainVariables: {
31
38
  instruments,
32
39
  division
33
40
  },
34
- batchQuery: getInstrumentsChart,
41
+ batchQuery: _getInstrumentsChart.getInstrumentsChart,
35
42
  getBatchVariables: mainData => {
36
43
  const instrumentsByDivision = mainData?.mapInstrumentNames?.filter(i => !!i?.displayName)?.map(i => i.displayName);
37
44
  return instrumentsByDivision?.length ? {
@@ -39,15 +46,15 @@ const Main = _ref => {
39
46
  division
40
47
  } : undefined;
41
48
  },
42
- merge: (mainData, chartData) => getRecords(mainData, chartData),
49
+ merge: (mainData, chartData) => (0, _utils.getRecords)(mainData, chartData),
43
50
  fetchPolicy: 'network-only'
44
51
  });
45
- useEffect(() => {
52
+ (0, _react.useEffect)(() => {
46
53
  if (!mainLoading && data) {
47
54
  setRecords(data.records ?? []);
48
55
  }
49
56
  }, [mainLoading, data]);
50
- useEffect(() => {
57
+ (0, _react.useEffect)(() => {
51
58
  if (records[0].instrument) {
52
59
  const instrumentsNames = records.map(_ref2 => {
53
60
  let {
@@ -60,7 +67,7 @@ const Main = _ref => {
60
67
  });
61
68
  }
62
69
  }, [isDesktop]);
63
- useEffect(() => {
70
+ (0, _react.useEffect)(() => {
64
71
  if (records[0].instrument && records[0].chart?.length === 0) {
65
72
  const instrumentsNames = records.map(_ref3 => {
66
73
  let {
@@ -74,19 +81,19 @@ const Main = _ref => {
74
81
  }
75
82
  }, [records]);
76
83
  const showError = !loading && !!error || !loading && !data;
77
- return React.createElement(TableWidget, {
84
+ return _react.default.createElement(_labsWidgetCommon.TableWidget, {
78
85
  activeColumns: columns,
79
86
  count: 0,
80
87
  hasError: showError,
81
- headerColumns: getHeaderConfig(columns, headerConfig),
88
+ headerColumns: (0, _labsWidgetCommon.getHeaderConfig)(columns, _config.headerConfig),
82
89
  isChartLoading: loading,
83
90
  isLoading: mainLoading,
84
91
  pageNumber: 0,
85
92
  records: records,
86
93
  target: target,
87
94
  testId: "live-rates-table-wrapper",
88
- toolTipId: INSTRUMENT_TOOLTIP_ID
95
+ toolTipId: _constant.INSTRUMENT_TOOLTIP_ID
89
96
  });
90
97
  };
91
- export { Main };
98
+ exports.Main = Main;
92
99
  //# sourceMappingURL=Main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","names":["getHeaderConfig","Size","TableWidget","useFetchCombinedDataRecords","useLayoutProvider","useLiveRatesQuery","React","useEffect","useState","getInstrumentsChart","validateInstruments","headerConfig","DEFAULT_COLUMNS","INSTRUMENT_TOOLTIP_ID","getRecords","Main","_ref","instruments","division","columns","size","isDesktop","DESKTOP","target","setQuery","records","setRecords","Array","length","fill","data","loading","mainLoading","error","mainQuery","mainVariables","batchQuery","getBatchVariables","mainData","instrumentsByDivision","mapInstrumentNames","filter","i","displayName","map","undefined","merge","chartData","fetchPolicy","instrument","instrumentsNames","_ref2","chart","_ref3","showError","createElement","activeColumns","count","hasError","headerColumns","isChartLoading","isLoading","pageNumber","testId","toolTipId"],"sources":["../../../src/LiveRatesTableWidget/Main.tsx"],"sourcesContent":["import type { DataRecord } from '@oanda/labs-widget-common';\nimport {\n getHeaderConfig,\n Size,\n TableWidget,\n useFetchCombinedDataRecords,\n useLayoutProvider,\n useLiveRatesQuery,\n} from '@oanda/labs-widget-common';\nimport React, { useEffect, useState } from 'react';\n\nimport { getInstrumentsChart } from '../gql/getInstrumentsChart';\nimport type {\n GetInstrumentsChartQuery,\n GetInstrumentsChartQueryVariables,\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables,\n} from '../gql/types/graphql';\nimport { validateInstruments } from '../gql/validateInstruments';\nimport { headerConfig } from './config';\nimport { DEFAULT_COLUMNS, INSTRUMENT_TOOLTIP_ID } from './constant';\nimport type { MainProps, ValidateInstrumentsData } from './types';\nimport { getRecords } from './utils';\n\nconst Main = ({\n instruments,\n division,\n columns = DEFAULT_COLUMNS,\n}: MainProps) => {\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const { target, setQuery } = useLiveRatesQuery();\n\n const [records, setRecords] = useState<DataRecord[]>(\n new Array(instruments.length).fill({})\n );\n\n const { data, loading, mainLoading, error } = useFetchCombinedDataRecords<\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables,\n GetInstrumentsChartQuery,\n GetInstrumentsChartQueryVariables,\n ValidateInstrumentsData\n >({\n mainQuery: validateInstruments,\n mainVariables: {\n instruments,\n division,\n },\n batchQuery: getInstrumentsChart,\n getBatchVariables: (mainData) => {\n const instrumentsByDivision = mainData?.mapInstrumentNames\n ?.filter(\n (i): i is { displayName: string; name: string } => !!i?.displayName\n )\n ?.map((i) => i.displayName);\n\n return instrumentsByDivision?.length\n ? { instruments: instrumentsByDivision, 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 instrumentsNames = records.map(({ instrument }) => instrument);\n setQuery({ instruments: instrumentsNames });\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 instrumentsNames = records.map(({ instrument }) => instrument);\n setQuery({ instruments: instrumentsNames });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [records]);\n\n const showError = (!loading && !!error) || (!loading && !data);\n\n return (\n <TableWidget\n activeColumns={columns}\n count={0}\n hasError={showError}\n headerColumns={getHeaderConfig(columns, headerConfig)}\n isChartLoading={loading}\n isLoading={mainLoading}\n pageNumber={0}\n records={records}\n target={target}\n testId=\"live-rates-table-wrapper\"\n toolTipId={INSTRUMENT_TOOLTIP_ID}\n />\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Main.js","names":["_labsWidgetCommon","require","_react","_interopRequireWildcard","_getInstrumentsChart","_validateInstruments","_config","_constant","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Main","_ref","instruments","division","columns","DEFAULT_COLUMNS","size","useLayoutProvider","isDesktop","Size","DESKTOP","target","setQuery","useLiveRatesQuery","records","setRecords","useState","Array","length","fill","data","loading","mainLoading","error","useFetchCombinedDataRecords","mainQuery","validateInstruments","mainVariables","batchQuery","getInstrumentsChart","getBatchVariables","mainData","instrumentsByDivision","mapInstrumentNames","filter","displayName","map","undefined","merge","chartData","getRecords","fetchPolicy","useEffect","instrument","instrumentsNames","_ref2","chart","_ref3","showError","createElement","TableWidget","activeColumns","count","hasError","headerColumns","getHeaderConfig","headerConfig","isChartLoading","isLoading","pageNumber","testId","toolTipId","INSTRUMENT_TOOLTIP_ID","exports"],"sources":["../../../src/LiveRatesTableWidget/Main.tsx"],"sourcesContent":["import type { DataRecord } from '@oanda/labs-widget-common';\nimport {\n getHeaderConfig,\n Size,\n TableWidget,\n useFetchCombinedDataRecords,\n useLayoutProvider,\n useLiveRatesQuery,\n} from '@oanda/labs-widget-common';\nimport React, { useEffect, useState } from 'react';\n\nimport { getInstrumentsChart } from '../gql/getInstrumentsChart';\nimport type {\n GetInstrumentsChartQuery,\n GetInstrumentsChartQueryVariables,\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables,\n} from '../gql/types/graphql';\nimport { validateInstruments } from '../gql/validateInstruments';\nimport { headerConfig } from './config';\nimport { DEFAULT_COLUMNS, INSTRUMENT_TOOLTIP_ID } from './constant';\nimport type { MainProps, ValidateInstrumentsData } from './types';\nimport { getRecords } from './utils';\n\nconst Main = ({\n instruments,\n division,\n columns = DEFAULT_COLUMNS,\n}: MainProps) => {\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const { target, setQuery } = useLiveRatesQuery();\n\n const [records, setRecords] = useState<DataRecord[]>(\n new Array(instruments.length).fill({})\n );\n\n const { data, loading, mainLoading, error } = useFetchCombinedDataRecords<\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables,\n GetInstrumentsChartQuery,\n GetInstrumentsChartQueryVariables,\n ValidateInstrumentsData\n >({\n mainQuery: validateInstruments,\n mainVariables: {\n instruments,\n division,\n },\n batchQuery: getInstrumentsChart,\n getBatchVariables: (mainData) => {\n const instrumentsByDivision = mainData?.mapInstrumentNames\n ?.filter(\n (i): i is { displayName: string; name: string } => !!i?.displayName\n )\n ?.map((i) => i.displayName);\n\n return instrumentsByDivision?.length\n ? { instruments: instrumentsByDivision, 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 instrumentsNames = records.map(({ instrument }) => instrument);\n setQuery({ instruments: instrumentsNames });\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 instrumentsNames = records.map(({ instrument }) => instrument);\n setQuery({ instruments: instrumentsNames });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [records]);\n\n const showError = (!loading && !!error) || (!loading && !data);\n\n return (\n <TableWidget\n activeColumns={columns}\n count={0}\n hasError={showError}\n headerColumns={getHeaderConfig(columns, headerConfig)}\n isChartLoading={loading}\n isLoading={mainLoading}\n pageNumber={0}\n records={records}\n target={target}\n testId=\"live-rates-table-wrapper\"\n toolTipId={INSTRUMENT_TOOLTIP_ID}\n />\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,20 @@
1
- import { DataRecordType, Size } from '@oanda/labs-widget-common';
2
- import { View } from './types';
3
- const headerConfig = {
4
- [DataRecordType.INSTRUMENT]: {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.sizeConfig = exports.headerConfig = void 0;
7
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
+ var _types = require("./types");
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,9 +59,8 @@ const headerConfig = {
53
59
  }
54
60
  }
55
61
  };
56
- const sizeConfig = {
57
- [View.CARDS]: Size.MOBILE,
58
- [View.TABLE]: Size.DESKTOP
62
+ const sizeConfig = exports.sizeConfig = {
63
+ [_types.View.CARDS]: _labsWidgetCommon.Size.MOBILE,
64
+ [_types.View.TABLE]: _labsWidgetCommon.Size.DESKTOP
59
65
  };
60
- export { headerConfig, sizeConfig };
61
66
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","names":["DataRecordType","Size","View","headerConfig","INSTRUMENT","displayName","additionalStyles","align","minWidth","SELL","paddingRight","BUY","DAILY_CHANGE","CHART","SPREAD","SENTIMENT","sizeConfig","CARDS","MOBILE","TABLE","DESKTOP"],"sources":["../../../src/LiveRatesTableWidget/config.ts"],"sourcesContent":["import type { HeaderConfigType } from '@oanda/labs-widget-common';\nimport { DataRecordType, Size } from '@oanda/labs-widget-common';\n\nimport { View } from './types';\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 sizeConfig = {\n [View.CARDS]: Size.MOBILE,\n [View.TABLE]: Size.DESKTOP,\n};\n\nexport { headerConfig, sizeConfig };\n"],"mappings":"AACA,SAASA,cAAc,EAAEC,IAAI,QAAQ,2BAA2B;AAEhE,SAASC,IAAI,QAAQ,SAAS;AAE9B,MAAMC,YAA8B,GAAG;EACrC,CAACH,cAAc,CAACI,UAAU,GAAG;IAC3BC,WAAW,EAAE,YAAY;IACzBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,MAAM;MACbC,QAAQ,EAAE;IACZ;EACF,CAAC;EACD,CAACR,cAAc,CAACS,IAAI,GAAG;IACrBJ,WAAW,EAAE,MAAM;IACnBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE,MAAM;MAChBE,YAAY,EAAE;IAChB;EACF,CAAC;EACD,CAACV,cAAc,CAACW,GAAG,GAAG;IACpBN,WAAW,EAAE,KAAK;IAClBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE,MAAM;MAChBE,YAAY,EAAE;IAChB;EACF,CAAC;EACD,CAACV,cAAc,CAACY,YAAY,GAAG;IAC7BP,WAAW,EAAE,sBAAsB;IACnCC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE;IACZ;EACF,CAAC;EACD,CAACR,cAAc,CAACa,KAAK,GAAG;IACtBR,WAAW,EAAE,WAAW;IACxBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,QAAQ;MACfC,QAAQ,EAAE;IACZ;EACF,CAAC;EACD,CAACR,cAAc,CAACc,MAAM,GAAG;IACvBT,WAAW,EAAE,QAAQ;IACrBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE;IACZ;EACF,CAAC;EACD,CAACR,cAAc,CAACe,SAAS,GAAG;IAC1BV,WAAW,EAAE,WAAW;IACxBC,gBAAgB,EAAE;MAChBC,KAAK,EAAE,QAAQ;MACfC,QAAQ,EAAE;IACZ;EACF;AACF,CAAC;AAED,MAAMQ,UAAU,GAAG;EACjB,CAACd,IAAI,CAACe,KAAK,GAAGhB,IAAI,CAACiB,MAAM;EACzB,CAAChB,IAAI,CAACiB,KAAK,GAAGlB,IAAI,CAACmB;AACrB,CAAC;AAED,SAASjB,YAAY,EAAEa,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"config.js","names":["_labsWidgetCommon","require","_types","headerConfig","exports","DataRecordType","INSTRUMENT","displayName","additionalStyles","align","minWidth","SELL","paddingRight","BUY","DAILY_CHANGE","CHART","SPREAD","SENTIMENT","sizeConfig","View","CARDS","Size","MOBILE","TABLE","DESKTOP"],"sources":["../../../src/LiveRatesTableWidget/config.ts"],"sourcesContent":["import type { HeaderConfigType } from '@oanda/labs-widget-common';\nimport { DataRecordType, Size } from '@oanda/labs-widget-common';\n\nimport { View } from './types';\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 sizeConfig = {\n [View.CARDS]: Size.MOBILE,\n [View.TABLE]: Size.DESKTOP,\n};\n\nexport { headerConfig, sizeConfig };\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,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,UAAU,GAAAd,OAAA,CAAAc,UAAA,GAAG;EACjB,CAACC,WAAI,CAACC,KAAK,GAAGC,sBAAI,CAACC,MAAM;EACzB,CAACH,WAAI,CAACI,KAAK,GAAGF,sBAAI,CAACG;AACrB,CAAC","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];
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];
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","INSTRUMENT_TOOLTIP_ID"],"sources":["../../../src/LiveRatesTableWidget/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];\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,CACtB;AAED,MAAMC,qBAAqB,GAAG,uBAAuB;AAErD,SACEN,eAAe,EACfF,aAAa,EACbC,mBAAmB,EACnBO,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","INSTRUMENT_TOOLTIP_ID"],"sources":["../../../src/LiveRatesTableWidget/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];\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,CACtB;AAED,MAAMC,qBAAqB,GAAAT,OAAA,CAAAS,qBAAA,GAAG,uBAAuB","ignoreList":[]}
@@ -1,15 +1,18 @@
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 { LiveRatesTableWidget } from './LiveRatesTableWidget';
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 _LiveRatesTableWidget = require("./LiveRatesTableWidget");
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
6
9
  const {
7
10
  graphqlUrl,
8
11
  liveRatesUrl
9
12
  } = window.widgetsConfig || {};
10
13
  const liveRatesTableParamsElements = document.querySelectorAll('div[data-live-rates-table-params]');
11
14
  liveRatesTableParamsElements.forEach(element => {
12
- const root = createRoot(element);
15
+ const root = (0, _client.createRoot)(element);
13
16
  const params = element.getAttribute('data-live-rates-table-params');
14
17
  const mode = element.getAttribute('data-mode');
15
18
  const {
@@ -20,7 +23,7 @@ liveRatesTableParamsElements.forEach(element => {
20
23
  view,
21
24
  logoLink
22
25
  } = JSON.parse(params);
23
- const isParamError = validateToolParams({
26
+ const isParamError = (0, _labsWidgetCommon.validateToolParams)({
24
27
  division,
25
28
  locale,
26
29
  graphqlUrl,
@@ -29,10 +32,10 @@ liveRatesTableParamsElements.forEach(element => {
29
32
  columns
30
33
  }, [{
31
34
  name: 'locale',
32
- valueCheck: value => validateLocale(value)
35
+ valueCheck: value => (0, _labsWidgetCommon.validateLocale)(value)
33
36
  }, {
34
37
  name: 'division',
35
- valueCheck: value => Object.values(Division).includes(value)
38
+ valueCheck: value => Object.values(_graphql.Division).includes(value)
36
39
  }, {
37
40
  name: 'instruments',
38
41
  valueCheck: value => value.length > 0 && value.length <= 10
@@ -44,7 +47,7 @@ liveRatesTableParamsElements.forEach(element => {
44
47
  }, {
45
48
  name: 'liveRatesUrl'
46
49
  }]);
47
- root.render(React.createElement(LiveRatesTableWidget, {
50
+ root.render(_react.default.createElement(_LiveRatesTableWidget.LiveRatesTableWidget, {
48
51
  columns: columns,
49
52
  division: division,
50
53
  graphqlUrl: graphqlUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","names":["validateLocale","validateToolParams","React","createRoot","Division","LiveRatesTableWidget","graphqlUrl","liveRatesUrl","window","widgetsConfig","liveRatesTableParamsElements","document","querySelectorAll","forEach","element","root","params","getAttribute","mode","instruments","columns","division","locale","view","logoLink","JSON","parse","isParamError","name","valueCheck","value","Object","values","includes","length","render","createElement","theme"],"sources":["../../../src/LiveRatesTableWidget/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 { LiveRatesTableWidget } from './LiveRatesTableWidget';\n\nconst { graphqlUrl, liveRatesUrl } = window.widgetsConfig || {};\n\nconst liveRatesTableParamsElements = document.querySelectorAll(\n 'div[data-live-rates-table-params]'\n);\n\nliveRatesTableParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-live-rates-table-params');\n const mode = element.getAttribute('data-mode');\n const { instruments, columns, division, locale, view, logoLink } = JSON.parse(\n params as string\n );\n\n const isParamError = validateToolParams(\n {\n division,\n locale,\n graphqlUrl,\n liveRatesUrl,\n instruments,\n columns,\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: 'instruments',\n valueCheck: (value) =>\n (value as string[]).length > 0 && (value as string[]).length <= 10,\n },\n {\n name: 'columns',\n valueCheck: (value) => (value as string[]).length > 0,\n },\n {\n name: 'graphqlUrl',\n },\n {\n name: 'liveRatesUrl',\n },\n ]\n );\n\n root.render(\n <LiveRatesTableWidget\n columns={columns}\n division={division}\n graphqlUrl={graphqlUrl}\n instruments={instruments}\n isParamError={isParamError}\n liveRatesUrl={liveRatesUrl}\n locale={locale}\n logoLink={logoLink}\n theme={mode as Theme}\n view={view}\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,oBAAoB,QAAQ,wBAAwB;AAE7D,MAAM;EAAEC,UAAU;EAAEC;AAAa,CAAC,GAAGC,MAAM,CAACC,aAAa,IAAI,CAAC,CAAC;AAE/D,MAAMC,4BAA4B,GAAGC,QAAQ,CAACC,gBAAgB,CAC5D,mCACF,CAAC;AAEDF,4BAA4B,CAACG,OAAO,CAAEC,OAAO,IAAK;EAChD,MAAMC,IAAI,GAAGZ,UAAU,CAACW,OAAO,CAAC;EAChC,MAAME,MAAM,GAAGF,OAAO,CAACG,YAAY,CAAC,8BAA8B,CAAC;EACnE,MAAMC,IAAI,GAAGJ,OAAO,CAACG,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IAAEE,WAAW;IAAEC,OAAO;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,IAAI;IAAEC;EAAS,CAAC,GAAGC,IAAI,CAACC,KAAK,CAC3EV,MACF,CAAC;EAED,MAAMW,YAAY,GAAG1B,kBAAkB,CACrC;IACEoB,QAAQ;IACRC,MAAM;IACNhB,UAAU;IACVC,YAAY;IACZY,WAAW;IACXC;EACF,CAAC,EACD,CACE;IACEQ,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAGC,KAAyB,IAAK9B,cAAc,CAAC8B,KAAK;EACjE,CAAC,EACD;IACEF,IAAI,EAAE,UAAU;IAChBC,UAAU,EAAGC,KAAe,IAC1BC,MAAM,CAACC,MAAM,CAAC5B,QAAQ,CAAC,CAAC6B,QAAQ,CAACH,KAAK;EAC1C,CAAC,EACD;IACEF,IAAI,EAAE,aAAa;IACnBC,UAAU,EAAGC,KAAK,IACfA,KAAK,CAAcI,MAAM,GAAG,CAAC,IAAKJ,KAAK,CAAcI,MAAM,IAAI;EACpE,CAAC,EACD;IACEN,IAAI,EAAE,SAAS;IACfC,UAAU,EAAGC,KAAK,IAAMA,KAAK,CAAcI,MAAM,GAAG;EACtD,CAAC,EACD;IACEN,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC,CAEL,CAAC;EAEDb,IAAI,CAACoB,MAAM,CACTjC,KAAA,CAAAkC,aAAA,CAAC/B,oBAAoB;IACnBe,OAAO,EAAEA,OAAQ;IACjBC,QAAQ,EAAEA,QAAS;IACnBf,UAAU,EAAEA,UAAW;IACvBa,WAAW,EAAEA,WAAY;IACzBQ,YAAY,EAAEA,YAAa;IAC3BpB,YAAY,EAAEA,YAAa;IAC3Be,MAAM,EAAEA,MAAO;IACfE,QAAQ,EAAEA,QAAS;IACnBa,KAAK,EAAEnB,IAAc;IACrBK,IAAI,EAAEA;EAAK,CACZ,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"render.js","names":["_labsWidgetCommon","require","_react","_interopRequireDefault","_client","_graphql","_LiveRatesTableWidget","e","__esModule","default","graphqlUrl","liveRatesUrl","window","widgetsConfig","liveRatesTableParamsElements","document","querySelectorAll","forEach","element","root","createRoot","params","getAttribute","mode","instruments","columns","division","locale","view","logoLink","JSON","parse","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","length","render","createElement","LiveRatesTableWidget","theme"],"sources":["../../../src/LiveRatesTableWidget/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 { LiveRatesTableWidget } from './LiveRatesTableWidget';\n\nconst { graphqlUrl, liveRatesUrl } = window.widgetsConfig || {};\n\nconst liveRatesTableParamsElements = document.querySelectorAll(\n 'div[data-live-rates-table-params]'\n);\n\nliveRatesTableParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-live-rates-table-params');\n const mode = element.getAttribute('data-mode');\n const { instruments, columns, division, locale, view, logoLink } = JSON.parse(\n params as string\n );\n\n const isParamError = validateToolParams(\n {\n division,\n locale,\n graphqlUrl,\n liveRatesUrl,\n instruments,\n columns,\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: 'instruments',\n valueCheck: (value) =>\n (value as string[]).length > 0 && (value as string[]).length <= 10,\n },\n {\n name: 'columns',\n valueCheck: (value) => (value as string[]).length > 0,\n },\n {\n name: 'graphqlUrl',\n },\n {\n name: 'liveRatesUrl',\n },\n ]\n );\n\n root.render(\n <LiveRatesTableWidget\n columns={columns}\n division={division}\n graphqlUrl={graphqlUrl}\n instruments={instruments}\n isParamError={isParamError}\n liveRatesUrl={liveRatesUrl}\n locale={locale}\n logoLink={logoLink}\n theme={mode as Theme}\n view={view}\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,qBAAA,GAAAL,OAAA;AAA8D,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9D,MAAM;EAAEG,UAAU;EAAEC;AAAa,CAAC,GAAGC,MAAM,CAACC,aAAa,IAAI,CAAC,CAAC;AAE/D,MAAMC,4BAA4B,GAAGC,QAAQ,CAACC,gBAAgB,CAC5D,mCACF,CAAC;AAEDF,4BAA4B,CAACG,OAAO,CAAEC,OAAO,IAAK;EAChD,MAAMC,IAAI,GAAG,IAAAC,kBAAU,EAACF,OAAO,CAAC;EAChC,MAAMG,MAAM,GAAGH,OAAO,CAACI,YAAY,CAAC,8BAA8B,CAAC;EACnE,MAAMC,IAAI,GAAGL,OAAO,CAACI,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IAAEE,WAAW;IAAEC,OAAO;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,IAAI;IAAEC;EAAS,CAAC,GAAGC,IAAI,CAACC,KAAK,CAC3EV,MACF,CAAC;EAED,MAAMW,YAAY,GAAG,IAAAC,oCAAkB,EACrC;IACEP,QAAQ;IACRC,MAAM;IACNjB,UAAU;IACVC,YAAY;IACZa,WAAW;IACXC;EACF,CAAC,EACD,CACE;IACES,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAGC,KAAyB,IAAK,IAAAC,gCAAc,EAACD,KAAK;EACjE,CAAC,EACD;IACEF,IAAI,EAAE,UAAU;IAChBC,UAAU,EAAGC,KAAe,IAC1BE,MAAM,CAACC,MAAM,CAACC,iBAAQ,CAAC,CAACC,QAAQ,CAACL,KAAK;EAC1C,CAAC,EACD;IACEF,IAAI,EAAE,aAAa;IACnBC,UAAU,EAAGC,KAAK,IACfA,KAAK,CAAcM,MAAM,GAAG,CAAC,IAAKN,KAAK,CAAcM,MAAM,IAAI;EACpE,CAAC,EACD;IACER,IAAI,EAAE,SAAS;IACfC,UAAU,EAAGC,KAAK,IAAMA,KAAK,CAAcM,MAAM,GAAG;EACtD,CAAC,EACD;IACER,IAAI,EAAE;EACR,CAAC,EACD;IACEA,IAAI,EAAE;EACR,CAAC,CAEL,CAAC;EAEDf,IAAI,CAACwB,MAAM,CACTzC,MAAA,CAAAO,OAAA,CAAAmC,aAAA,CAACtC,qBAAA,CAAAuC,oBAAoB;IACnBpB,OAAO,EAAEA,OAAQ;IACjBC,QAAQ,EAAEA,QAAS;IACnBhB,UAAU,EAAEA,UAAW;IACvBc,WAAW,EAAEA,WAAY;IACzBQ,YAAY,EAAEA,YAAa;IAC3BrB,YAAY,EAAEA,YAAa;IAC3BgB,MAAM,EAAEA,MAAO;IACfE,QAAQ,EAAEA,QAAS;IACnBiB,KAAK,EAAEvB,IAAc;IACrBK,IAAI,EAAEA;EAAK,CACZ,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
@@ -1,6 +1,24 @@
1
- export { Division } from '../gql/types/graphql';
2
- export { Locale } from '@oanda/mono-i18n';
3
- export let View = function (View) {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Division", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _graphql.Division;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "Locale", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _monoI18n.Locale;
16
+ }
17
+ });
18
+ exports.View = void 0;
19
+ var _graphql = require("../gql/types/graphql");
20
+ var _monoI18n = require("@oanda/mono-i18n");
21
+ let View = exports.View = function (View) {
4
22
  View["TABLE"] = "table";
5
23
  View["CARDS"] = "cards";
6
24
  return View;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["Division","Locale","View"],"sources":["../../../src/LiveRatesTableWidget/types.tsx"],"sourcesContent":["import type {\n DataRecord,\n DataRecordType,\n WidgetConfig,\n} from '@oanda/labs-widget-common';\n\nimport type { Division } from '../gql/types/graphql';\n\nexport { Division } from '../gql/types/graphql';\nexport { Locale } from '@oanda/mono-i18n';\n\nexport enum View {\n TABLE = 'table',\n CARDS = 'cards',\n}\n\nexport interface ValidateInstrumentsData {\n records?: DataRecord[];\n}\n\nexport interface LiveRatesTableConfig extends WidgetConfig {\n division: Division;\n liveRatesUrl: string;\n instruments: string[];\n columns?: DataRecordType[];\n removePadding?: boolean;\n view?: View;\n}\n\nexport interface MainProps {\n instruments: string[];\n division: Division;\n columns?: DataRecordType[];\n}\n"],"mappings":"AAQA,SAASA,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,WAAYC,IAAI,aAAJA,IAAI;EAAJA,IAAI;EAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":["_graphql","require","_monoI18n","View","exports"],"sources":["../../../src/LiveRatesTableWidget/types.tsx"],"sourcesContent":["import type {\n DataRecord,\n DataRecordType,\n WidgetConfig,\n} from '@oanda/labs-widget-common';\n\nimport type { Division } from '../gql/types/graphql';\n\nexport { Division } from '../gql/types/graphql';\nexport { Locale } from '@oanda/mono-i18n';\n\nexport enum View {\n TABLE = 'table',\n CARDS = 'cards',\n}\n\nexport interface ValidateInstrumentsData {\n records?: DataRecord[];\n}\n\nexport interface LiveRatesTableConfig extends WidgetConfig {\n division: Division;\n liveRatesUrl: string;\n instruments: string[];\n columns?: DataRecordType[];\n removePadding?: boolean;\n view?: View;\n}\n\nexport interface MainProps {\n instruments: string[];\n division: Division;\n columns?: DataRecordType[];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAQA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAA0C,IAE9BE,IAAI,GAAAC,OAAA,CAAAD,IAAA,aAAJA,IAAI;EAAJA,IAAI;EAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA","ignoreList":[]}
@@ -1,3 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getRecords = void 0;
1
7
  const getRecords = (data, chart) => ({
2
8
  records: data?.mapInstrumentNames?.map(item => ({
3
9
  instrument: item?.name || '',
@@ -5,5 +11,5 @@ const getRecords = (data, chart) => ({
5
11
  chart: chart?.topicalInstrumentsCharts?.find(ti => ti.name === item?.displayName)?.chart || []
6
12
  })) ?? []
7
13
  });
8
- export { getRecords };
14
+ exports.getRecords = getRecords;
9
15
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["getRecords","data","chart","records","mapInstrumentNames","map","item","instrument","name","displayName","topicalInstrumentsCharts","find","ti"],"sources":["../../../src/LiveRatesTableWidget/utils.ts"],"sourcesContent":["import type {\n GetInstrumentsChartQuery,\n ValidateInstrumentsQuery,\n} from '../gql/types/graphql';\nimport type { ValidateInstrumentsData } from './types';\n\nconst getRecords = (\n data: ValidateInstrumentsQuery,\n chart?: GetInstrumentsChartQuery\n): ValidateInstrumentsData => ({\n records:\n data?.mapInstrumentNames?.map((item) => ({\n instrument: item?.name || '',\n displayName: item?.displayName || '',\n chart:\n chart?.topicalInstrumentsCharts?.find(\n (ti) => ti.name === item?.displayName\n )?.chart || [],\n })) ?? [],\n});\n\nexport { getRecords };\n"],"mappings":"AAMA,MAAMA,UAAU,GAAGA,CACjBC,IAA8B,EAC9BC,KAAgC,MACH;EAC7BC,OAAO,EACLF,IAAI,EAAEG,kBAAkB,EAAEC,GAAG,CAAEC,IAAI,KAAM;IACvCC,UAAU,EAAED,IAAI,EAAEE,IAAI,IAAI,EAAE;IAC5BC,WAAW,EAAEH,IAAI,EAAEG,WAAW,IAAI,EAAE;IACpCP,KAAK,EACHA,KAAK,EAAEQ,wBAAwB,EAAEC,IAAI,CAClCC,EAAE,IAAKA,EAAE,CAACJ,IAAI,KAAKF,IAAI,EAAEG,WAC5B,CAAC,EAAEP,KAAK,IAAI;EAChB,CAAC,CAAC,CAAC,IAAI;AACX,CAAC,CAAC;AAEF,SAASF,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"utils.js","names":["getRecords","data","chart","records","mapInstrumentNames","map","item","instrument","name","displayName","topicalInstrumentsCharts","find","ti","exports"],"sources":["../../../src/LiveRatesTableWidget/utils.ts"],"sourcesContent":["import type {\n GetInstrumentsChartQuery,\n ValidateInstrumentsQuery,\n} from '../gql/types/graphql';\nimport type { ValidateInstrumentsData } from './types';\n\nconst getRecords = (\n data: ValidateInstrumentsQuery,\n chart?: GetInstrumentsChartQuery\n): ValidateInstrumentsData => ({\n records:\n data?.mapInstrumentNames?.map((item) => ({\n instrument: item?.name || '',\n displayName: item?.displayName || '',\n chart:\n chart?.topicalInstrumentsCharts?.find(\n (ti) => ti.name === item?.displayName\n )?.chart || [],\n })) ?? [],\n});\n\nexport { getRecords };\n"],"mappings":";;;;;;AAMA,MAAMA,UAAU,GAAGA,CACjBC,IAA8B,EAC9BC,KAAgC,MACH;EAC7BC,OAAO,EACLF,IAAI,EAAEG,kBAAkB,EAAEC,GAAG,CAAEC,IAAI,KAAM;IACvCC,UAAU,EAAED,IAAI,EAAEE,IAAI,IAAI,EAAE;IAC5BC,WAAW,EAAEH,IAAI,EAAEG,WAAW,IAAI,EAAE;IACpCP,KAAK,EACHA,KAAK,EAAEQ,wBAAwB,EAAEC,IAAI,CAClCC,EAAE,IAAKA,EAAE,CAACJ,IAAI,KAAKF,IAAI,EAAEG,WAC5B,CAAC,EAAEP,KAAK,IAAI;EAChB,CAAC,CAAC,CAAC,IAAI;AACX,CAAC,CAAC;AAACW,OAAA,CAAAb,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -1,5 +1,11 @@
1
- import { gql } from '@apollo/client';
2
- export const getInstrumentsChart = gql`
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getInstrumentsChart = void 0;
7
+ var _client = require("@apollo/client");
8
+ const getInstrumentsChart = exports.getInstrumentsChart = (0, _client.gql)`
3
9
  query GetInstrumentsChart($instruments: [String!], $division: Division) {
4
10
  topicalInstrumentsCharts(instruments: $instruments, division: $division) {
5
11
  name
@@ -1 +1 @@
1
- {"version":3,"file":"getInstrumentsChart.js","names":["gql","getInstrumentsChart"],"sources":["../../../src/gql/getInstrumentsChart.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const getInstrumentsChart = gql`\n query GetInstrumentsChart($instruments: [String!], $division: Division) {\n topicalInstrumentsCharts(instruments: $instruments, division: $division) {\n name\n chart\n }\n }\n`;\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,OAAO,MAAMC,mBAAmB,GAAGD,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","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":[]}
@@ -1,10 +1,18 @@
1
- export function useFragment(_documentNode, fragmentType) {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isFragmentReady = isFragmentReady;
7
+ exports.makeFragmentData = makeFragmentData;
8
+ exports.useFragment = useFragment;
9
+ function useFragment(_documentNode, fragmentType) {
2
10
  return fragmentType;
3
11
  }
4
- export function makeFragmentData(data, _fragment) {
12
+ function makeFragmentData(data, _fragment) {
5
13
  return data;
6
14
  }
7
- export function isFragmentReady(queryNode, fragmentNode, data) {
15
+ function isFragmentReady(queryNode, fragmentNode, data) {
8
16
  const deferredFields = queryNode.__meta__?.deferredFields;
9
17
  if (!deferredFields) return true;
10
18
  const fragDef = fragmentNode.definitions[0];
@@ -1 +1 @@
1
- {"version":3,"file":"fragment-masking.js","names":["useFragment","_documentNode","fragmentType","makeFragmentData","data","_fragment","isFragmentReady","queryNode","fragmentNode","deferredFields","__meta__","fragDef","definitions","fragName","name","value","fields","length","every","field"],"sources":["../../../../src/gql/types/fragment-masking.ts"],"sourcesContent":["import {\n ResultOf,\n DocumentTypeDecoration,\n TypedDocumentNode,\n} from '@graphql-typed-document-node/core';\nimport { FragmentDefinitionNode } from 'graphql';\nimport { Incremental } from './graphql';\n\nexport type FragmentType<\n TDocumentType extends DocumentTypeDecoration<any, any>,\n> =\n TDocumentType extends DocumentTypeDecoration<infer TType, any>\n ? [TType] extends [{ ' $fragmentName'?: infer TKey }]\n ? TKey extends string\n ? { ' $fragmentRefs'?: { [key in TKey]: TType } }\n : never\n : never\n : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>\n): TType;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | null\n | undefined\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n): ReadonlyArray<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): TType | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\n}\n\nexport function makeFragmentData<\n F extends DocumentTypeDecoration<any, any>,\n FT extends ResultOf<F>,\n>(data: FT, _fragment: F): FragmentType<F> {\n return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n queryNode: DocumentTypeDecoration<TQuery, any>,\n fragmentNode: TypedDocumentNode<TFrag>,\n data:\n | FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>\n | null\n | undefined\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = (\n queryNode as {\n __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };\n }\n ).__meta__?.deferredFields;\n\n if (!deferredFields) return true;\n\n const fragDef = fragmentNode.definitions[0] as\n | FragmentDefinitionNode\n | undefined;\n const fragName = fragDef?.name?.value;\n\n const fields = (fragName && deferredFields[fragName]) || [];\n return fields.length > 0 && fields.every((field) => data && field in data);\n}\n"],"mappings":"AA6CA,OAAO,SAASA,WAAWA,CACzBC,aAAiD,EACjDC,YAIa,EACoC;EACjD,OAAOA,YAAY;AACrB;AAEA,OAAO,SAASC,gBAAgBA,CAG9BC,IAAQ,EAAEC,SAAY,EAAmB;EACzC,OAAOD,IAAI;AACb;AACA,OAAO,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":[]}
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":[]}