@oanda/labs-ticker-tape-widget 1.0.7 → 1.0.8

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 (85) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/main/TickerTapeWidget/Main.js +5 -30
  3. package/dist/main/TickerTapeWidget/Main.js.map +1 -1
  4. package/dist/main/TickerTapeWidget/TickerTapeWidget.js +8 -8
  5. package/dist/main/TickerTapeWidget/TickerTapeWidget.js.map +1 -1
  6. package/dist/main/TickerTapeWidget/ValidationWrapper.js +45 -0
  7. package/dist/main/TickerTapeWidget/ValidationWrapper.js.map +1 -0
  8. package/dist/main/TickerTapeWidget/components/InstrumentRateWithData/InstrumentRateWithData.js +38 -0
  9. package/dist/main/TickerTapeWidget/components/InstrumentRateWithData/InstrumentRateWithData.js.map +1 -0
  10. package/dist/main/TickerTapeWidget/components/InstrumentRateWithData/index.js +17 -0
  11. package/dist/main/TickerTapeWidget/components/InstrumentRateWithData/index.js.map +1 -0
  12. package/dist/main/TickerTapeWidget/components/InstrumentRateWithData/types.js.map +1 -0
  13. package/dist/main/TickerTapeWidget/types.js.map +1 -1
  14. package/dist/module/TickerTapeWidget/Main.js +7 -32
  15. package/dist/module/TickerTapeWidget/Main.js.map +1 -1
  16. package/dist/module/TickerTapeWidget/TickerTapeWidget.js +7 -8
  17. package/dist/module/TickerTapeWidget/TickerTapeWidget.js.map +1 -1
  18. package/dist/module/TickerTapeWidget/ValidationWrapper.js +38 -0
  19. package/dist/module/TickerTapeWidget/ValidationWrapper.js.map +1 -0
  20. package/dist/module/TickerTapeWidget/components/InstrumentRateWithData/InstrumentRateWithData.js +31 -0
  21. package/dist/module/TickerTapeWidget/components/InstrumentRateWithData/InstrumentRateWithData.js.map +1 -0
  22. package/dist/module/TickerTapeWidget/components/InstrumentRateWithData/index.js +2 -0
  23. package/dist/module/TickerTapeWidget/components/InstrumentRateWithData/index.js.map +1 -0
  24. package/dist/module/TickerTapeWidget/components/InstrumentRateWithData/types.js.map +1 -0
  25. package/dist/module/TickerTapeWidget/types.js.map +1 -1
  26. package/dist/types/TickerTapeWidget/Main.d.ts +1 -1
  27. package/dist/types/TickerTapeWidget/ValidationWrapper.d.ts +4 -0
  28. package/dist/types/TickerTapeWidget/components/InstrumentRateWithData/InstrumentRateWithData.d.ts +4 -0
  29. package/dist/types/TickerTapeWidget/components/InstrumentRateWithData/index.d.ts +1 -0
  30. package/dist/types/TickerTapeWidget/components/InstrumentRateWithData/types.d.ts +8 -0
  31. package/dist/types/TickerTapeWidget/types.d.ts +10 -4
  32. package/package.json +3 -3
  33. package/src/TickerTapeWidget/Main.tsx +6 -42
  34. package/src/TickerTapeWidget/TickerTapeWidget.tsx +11 -17
  35. package/src/TickerTapeWidget/ValidationWrapper.tsx +52 -0
  36. package/src/TickerTapeWidget/components/InstrumentRateWithData/InstrumentRateWithData.tsx +40 -0
  37. package/src/TickerTapeWidget/components/InstrumentRateWithData/index.ts +1 -0
  38. package/src/TickerTapeWidget/components/InstrumentRateWithData/types.ts +9 -0
  39. package/src/TickerTapeWidget/types.tsx +10 -5
  40. package/test/Main.test.tsx +8 -1
  41. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/InstrumentRateWithChart.js +0 -46
  42. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/InstrumentRateWithChart.js.map +0 -1
  43. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/index.js +0 -28
  44. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/index.js.map +0 -1
  45. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/types.js.map +0 -1
  46. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/utils.js +0 -25
  47. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/utils.js.map +0 -1
  48. package/dist/main/TickerTapeWidget/components/LineChartWithData/LineChartWithData.js +0 -42
  49. package/dist/main/TickerTapeWidget/components/LineChartWithData/LineChartWithData.js.map +0 -1
  50. package/dist/main/TickerTapeWidget/components/LineChartWithData/index.js +0 -17
  51. package/dist/main/TickerTapeWidget/components/LineChartWithData/index.js.map +0 -1
  52. package/dist/main/TickerTapeWidget/components/LineChartWithData/types.js +0 -6
  53. package/dist/main/TickerTapeWidget/components/LineChartWithData/types.js.map +0 -1
  54. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/InstrumentRateWithChart.js +0 -38
  55. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/InstrumentRateWithChart.js.map +0 -1
  56. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/index.js +0 -3
  57. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/index.js.map +0 -1
  58. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/types.js.map +0 -1
  59. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/utils.js +0 -18
  60. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/utils.js.map +0 -1
  61. package/dist/module/TickerTapeWidget/components/LineChartWithData/LineChartWithData.js +0 -35
  62. package/dist/module/TickerTapeWidget/components/LineChartWithData/LineChartWithData.js.map +0 -1
  63. package/dist/module/TickerTapeWidget/components/LineChartWithData/index.js +0 -2
  64. package/dist/module/TickerTapeWidget/components/LineChartWithData/index.js.map +0 -1
  65. package/dist/module/TickerTapeWidget/components/LineChartWithData/types.js +0 -2
  66. package/dist/module/TickerTapeWidget/components/LineChartWithData/types.js.map +0 -1
  67. package/dist/types/TickerTapeWidget/components/InstrumentRateWithChart/InstrumentRateWithChart.d.ts +0 -4
  68. package/dist/types/TickerTapeWidget/components/InstrumentRateWithChart/index.d.ts +0 -2
  69. package/dist/types/TickerTapeWidget/components/InstrumentRateWithChart/types.d.ts +0 -9
  70. package/dist/types/TickerTapeWidget/components/InstrumentRateWithChart/utils.d.ts +0 -3
  71. package/dist/types/TickerTapeWidget/components/LineChartWithData/LineChartWithData.d.ts +0 -4
  72. package/dist/types/TickerTapeWidget/components/LineChartWithData/index.d.ts +0 -1
  73. package/dist/types/TickerTapeWidget/components/LineChartWithData/types.d.ts +0 -8
  74. package/src/TickerTapeWidget/components/InstrumentRateWithChart/InstrumentRateWithChart.tsx +0 -43
  75. package/src/TickerTapeWidget/components/InstrumentRateWithChart/index.ts +0 -2
  76. package/src/TickerTapeWidget/components/InstrumentRateWithChart/types.ts +0 -10
  77. package/src/TickerTapeWidget/components/InstrumentRateWithChart/utils.ts +0 -25
  78. package/src/TickerTapeWidget/components/LineChartWithData/LineChartWithData.tsx +0 -43
  79. package/src/TickerTapeWidget/components/LineChartWithData/index.ts +0 -1
  80. package/src/TickerTapeWidget/components/LineChartWithData/types.tsx +0 -9
  81. package/test/LineChartWithData.test.tsx +0 -164
  82. package/test/components/InstrumentRateWithChart.test.tsx +0 -62
  83. package/test/components/utils.test.ts +0 -13
  84. /package/dist/main/TickerTapeWidget/components/{InstrumentRateWithChart → InstrumentRateWithData}/types.js +0 -0
  85. /package/dist/module/TickerTapeWidget/components/{InstrumentRateWithChart → InstrumentRateWithData}/types.js +0 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,42 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 1.0.8 (2024-08-23)
7
+
8
+
9
+
10
+ ## 1.0.151 (2024-08-20)
11
+
12
+
13
+
14
+ ## 1.0.150 (2024-08-19)
15
+
16
+
17
+
18
+ ## 1.0.149 (2024-08-07)
19
+
20
+
21
+
22
+ ## 1.0.148 (2024-08-01)
23
+
24
+
25
+
26
+ ## 1.0.147 (2024-08-01)
27
+
28
+
29
+
30
+ ## 1.0.146 (2024-07-26)
31
+
32
+
33
+
34
+ ## 1.0.145 (2024-07-25)
35
+
36
+ **Note:** Version bump only for package @oanda/labs-ticker-tape-widget
37
+
38
+
39
+
40
+
41
+
6
42
  ## 1.0.7 (2024-08-20)
7
43
 
8
44
 
@@ -7,42 +7,22 @@ exports.Main = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactFastMarquee = _interopRequireDefault(require("react-fast-marquee"));
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
- var _client = require("@apollo/client");
11
10
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
12
- var _validateInstruments = require("../gql/validateInstruments");
13
- var _utils = require("./utils");
14
- var _InstrumentRateWithChart = require("./components/InstrumentRateWithChart");
15
11
  var _constant = require("./constant");
12
+ var _InstrumentRateWithData = require("./components/InstrumentRateWithData");
16
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
14
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
15
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
16
  const Main = _ref => {
20
17
  let {
21
- instruments,
18
+ records,
22
19
  division,
23
20
  size: widgetSize = 'fullWithChart'
24
21
  } = _ref;
25
- const [records, setRecords] = (0, _react.useState)([]);
26
22
  const {
27
23
  target,
28
24
  setQuery
29
25
  } = (0, _labsWidgetCommon.useLiveRatesQuery)();
30
- const {
31
- loading,
32
- data,
33
- error
34
- } = (0, _client.useQuery)(_validateInstruments.validateInstruments, {
35
- variables: {
36
- instruments,
37
- division
38
- },
39
- fetchPolicy: 'network-only'
40
- });
41
- (0, _react.useEffect)(() => {
42
- if (!loading && data) {
43
- setRecords((0, _utils.getRecords)(data));
44
- }
45
- }, [loading, data]);
46
26
  const instrumentsNames = records.map(_ref2 => {
47
27
  let {
48
28
  instrument: instrumentName
@@ -56,12 +36,10 @@ const Main = _ref => {
56
36
  });
57
37
  }
58
38
  }, [records]);
59
- const showError = !!error;
60
- const isLoading = loading || !data;
61
39
  return _react.default.createElement("div", {
62
40
  "data-testid": "ticker-tape-wrapper"
63
41
  }, _react.default.createElement(_reactFastMarquee.default, {
64
- play: !isLoading,
42
+ play: records.length > 0,
65
43
  autoFill: true,
66
44
  pauseOnHover: true,
67
45
  speed: 60
@@ -71,17 +49,14 @@ const Main = _ref => {
71
49
  'lw-h-[82px]': widgetSize !== 'compact',
72
50
  'lw-h-[54px]': widgetSize === 'compact'
73
51
  })
74
- }, _react.default.createElement(_InstrumentRateWithChart.InstrumentRateWithChart, {
75
- loading: loading,
52
+ }, _react.default.createElement(_InstrumentRateWithData.InstrumentRateWithData, {
76
53
  record: record,
77
54
  target: target,
78
55
  division: division,
79
56
  size: widgetSize
80
57
  })))), _react.default.createElement(_labsWidgetCommon.Tooltip, {
81
58
  id: _constant.INSTRUMENT_TOOLTIP_ID
82
- }), !loading && showError && _react.default.createElement("div", {
83
- className: "lw-flex lw-h-[150px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
84
- }, _react.default.createElement(_labsWidgetCommon.ChartError, null)));
59
+ }));
85
60
  };
86
61
  exports.Main = Main;
87
62
  //# sourceMappingURL=Main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","names":["_react","_interopRequireWildcard","require","_reactFastMarquee","_interopRequireDefault","_classnames","_client","_labsWidgetCommon","_validateInstruments","_utils","_InstrumentRateWithChart","_constant","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Main","_ref","instruments","division","size","widgetSize","records","setRecords","useState","target","setQuery","useLiveRatesQuery","loading","data","error","useQuery","validateInstruments","variables","fetchPolicy","useEffect","getRecords","instrumentsNames","map","_ref2","instrument","instrumentName","showError","isLoading","createElement","play","autoFill","pauseOnHover","speed","record","key","className","classnames","InstrumentRateWithChart","Tooltip","id","INSTRUMENT_TOOLTIP_ID","ChartError","exports"],"sources":["../../../src/TickerTapeWidget/Main.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport Marquee from 'react-fast-marquee';\nimport classnames from 'classnames';\nimport { useQuery } from '@apollo/client';\nimport {\n ChartError, DataRecord, Tooltip, useLiveRatesQuery,\n} from '@oanda/labs-widget-common';\nimport { MainProps } from './types';\nimport {\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables,\n} from '../gql/types/graphql';\nimport { validateInstruments } from '../gql/validateInstruments';\nimport { getRecords } from './utils';\nimport { InstrumentRateWithChart } from './components/InstrumentRateWithChart';\nimport { INSTRUMENT_TOOLTIP_ID } from './constant';\n\nconst Main = ({\n instruments,\n division,\n size: widgetSize = 'fullWithChart',\n}: MainProps) => {\n const [records, setRecords] = useState<DataRecord[]>([]);\n const { target, setQuery } = useLiveRatesQuery();\n const { loading, data, error } = useQuery<\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables\n >(validateInstruments, {\n variables: {\n instruments,\n division,\n },\n fetchPolicy: 'network-only',\n });\n\n useEffect(() => {\n if (!loading && data) {\n setRecords(getRecords(data)!);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loading, data]);\n\n const instrumentsNames = records.map(({ instrument: instrumentName }) => instrumentName);\n\n useEffect(() => {\n if (instrumentsNames[0]) {\n setQuery({ instruments: instrumentsNames });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [records]);\n\n const showError = !!error;\n const isLoading = loading || !data;\n\n return (\n <div data-testid=\"ticker-tape-wrapper\">\n <Marquee\n play={!isLoading}\n autoFill\n pauseOnHover\n speed={60}\n >\n {records.map((record) => (\n <div\n key={record.instrument}\n className={classnames('lw-flex lw-border lw-border-r-0 lw-border-solid lw-border-border-primary lw-px-4 lw-text-sm lw-tracking-normal lw-text-text-primary', {\n 'lw-h-[82px]': widgetSize !== 'compact',\n 'lw-h-[54px]': widgetSize === 'compact',\n })}\n >\n <InstrumentRateWithChart\n loading={loading}\n record={record}\n target={target}\n division={division}\n size={widgetSize}\n />\n </div>\n ))}\n </Marquee>\n <Tooltip id={INSTRUMENT_TOOLTIP_ID} />\n {!loading && showError && (\n <div className=\"lw-flex lw-h-[150px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )}\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Main.js","names":["_react","_interopRequireWildcard","require","_reactFastMarquee","_interopRequireDefault","_classnames","_labsWidgetCommon","_constant","_InstrumentRateWithData","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Main","_ref","records","division","size","widgetSize","target","setQuery","useLiveRatesQuery","instrumentsNames","map","_ref2","instrument","instrumentName","useEffect","instruments","createElement","play","length","autoFill","pauseOnHover","speed","record","key","className","classnames","InstrumentRateWithData","Tooltip","id","INSTRUMENT_TOOLTIP_ID","exports"],"sources":["../../../src/TickerTapeWidget/Main.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport Marquee from 'react-fast-marquee';\nimport classnames from 'classnames';\nimport { Tooltip, useLiveRatesQuery } from '@oanda/labs-widget-common';\nimport { MainProps } from './types';\nimport { INSTRUMENT_TOOLTIP_ID } from './constant';\nimport { InstrumentRateWithData } from './components/InstrumentRateWithData';\n\nconst Main = ({\n records,\n division,\n size: widgetSize = 'fullWithChart',\n}: MainProps) => {\n const { target, setQuery } = useLiveRatesQuery();\n\n const instrumentsNames = records.map(({ instrument: instrumentName }) => instrumentName);\n\n useEffect(() => {\n if (instrumentsNames[0]) {\n setQuery({ instruments: instrumentsNames });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [records]);\n\n return (\n <div data-testid=\"ticker-tape-wrapper\">\n <Marquee\n play={records.length > 0}\n autoFill\n pauseOnHover\n speed={60}\n >\n {records.map((record) => (\n <div\n key={record.instrument}\n className={classnames('lw-flex lw-border lw-border-r-0 lw-border-solid lw-border-border-primary lw-px-4 lw-text-sm lw-tracking-normal lw-text-text-primary', {\n 'lw-h-[82px]': widgetSize !== 'compact',\n 'lw-h-[54px]': widgetSize === 'compact',\n })}\n >\n <InstrumentRateWithData\n record={record}\n target={target}\n division={division}\n size={widgetSize}\n />\n </div>\n ))}\n </Marquee>\n <Tooltip id={INSTRUMENT_TOOLTIP_ID} />\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
@@ -4,14 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.TickerTapeWidget = void 0;
7
- var _react = _interopRequireDefault(require("react"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _client = require("@apollo/client");
9
9
  var _monoI18n = require("@oanda/mono-i18n");
10
10
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
11
11
  var _translations = require("../translations");
12
- var _Main = require("./Main");
13
12
  var _types = require("./types");
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ var _ValidationWrapper = require("./ValidationWrapper");
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
16
  const TickerTapeWidget = _ref => {
16
17
  let {
17
18
  graphqlUrl,
@@ -44,13 +45,12 @@ const TickerTapeWidget = _ref => {
44
45
  }
45
46
  }, _react.default.createElement(_client.ApolloProvider, {
46
47
  client: client
47
- }, isParamError ? _react.default.createElement("div", {
48
- className: "lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
49
- }, _react.default.createElement(_labsWidgetCommon.ChartError, null)) : _react.default.createElement(_Main.Main, {
48
+ }, _react.default.createElement(_react.Suspense, null, _react.default.createElement(_ValidationWrapper.ValidationWrapper, {
50
49
  size: size,
51
50
  instruments: instruments,
52
- division: division
53
- })))));
51
+ division: division,
52
+ isParamError: isParamError
53
+ }))))));
54
54
  };
55
55
  exports.TickerTapeWidget = TickerTapeWidget;
56
56
  //# sourceMappingURL=TickerTapeWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TickerTapeWidget.js","names":["_react","_interopRequireDefault","require","_client","_monoI18n","_labsWidgetCommon","_translations","_Main","_types","e","__esModule","default","TickerTapeWidget","_ref","graphqlUrl","liveRatesUrl","instruments","division","locale","theme","isParamError","removePadding","size","client","ApolloClient","uri","cache","InMemoryCache","divisionCode","Division","Opt","Ogm","dataSource","createElement","ThemeProvider","LocaleProvider","getLocale","translations","LiveRatesProvider","url","options","ApolloProvider","className","ChartError","Main","exports"],"sources":["../../../src/TickerTapeWidget/TickerTapeWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport {\n ChartError, LiveRatesProvider, ThemeProvider, getLocale,\n} from '@oanda/labs-widget-common';\nimport { translations } from '../translations';\nimport { Main } from './Main';\nimport { Division, TickerTapeConfig } from './types';\n\nconst TickerTapeWidget = ({\n graphqlUrl,\n liveRatesUrl,\n instruments,\n division,\n locale,\n theme,\n isParamError,\n removePadding,\n size,\n}: TickerTapeConfig) => {\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 <ThemeProvider removePadding={removePadding} theme={theme}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <LiveRatesProvider\n url={liveRatesUrl}\n options={{ divisionCode, dataSource }}\n >\n <ApolloProvider client={client}>\n {isParamError ? (\n <div className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )\n : (\n <Main\n size={size}\n instruments={instruments}\n division={division}\n />\n )}\n </ApolloProvider>\n </LiveRatesProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { TickerTapeWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAGA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAAqD,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAErD,MAAMG,gBAAgB,GAAGC,IAAA,IAUD;EAAA,IAVE;IACxBC,UAAU;IACVC,YAAY;IACZC,WAAW;IACXC,QAAQ;IACRC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC;EACgB,CAAC,GAAAT,IAAA;EACjB,MAAMU,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAEX,UAAU;IACfY,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMC,YAAY,GAAGX,QAAQ,KAAKY,eAAQ,CAACC,GAAG,GAAGD,eAAQ,CAACE,GAAG,GAAGd,QAAQ;EACxE,MAAMe,UAAU,GAAGJ,YAAY,KAAKC,eAAQ,CAACE,GAAG,GAAG,KAAK,GAAG,KAAK;EAEhE,OACE/B,MAAA,CAAAW,OAAA,CAAAsB,aAAA,CAAC5B,iBAAA,CAAA6B,aAAa;IAACb,aAAa,EAAEA,aAAc;IAACF,KAAK,EAAEA;EAAM,GACxDnB,MAAA,CAAAW,OAAA,CAAAsB,aAAA,CAAC7B,SAAA,CAAA+B,cAAc;IAACjB,MAAM,EAAE,IAAAkB,2BAAS,EAAClB,MAAM,CAAE;IAACmB,YAAY,EAAEA;EAAa,GACpErC,MAAA,CAAAW,OAAA,CAAAsB,aAAA,CAAC5B,iBAAA,CAAAiC,iBAAiB;IAChBC,GAAG,EAAExB,YAAa;IAClByB,OAAO,EAAE;MAAEZ,YAAY;MAAEI;IAAW;EAAE,GAEtChC,MAAA,CAAAW,OAAA,CAAAsB,aAAA,CAAC9B,OAAA,CAAAsC,cAAc;IAAClB,MAAM,EAAEA;EAAO,GAC5BH,YAAY,GACXpB,MAAA,CAAAW,OAAA,CAAAsB,aAAA;IAAKS,SAAS,EAAC;EAAmG,GAChH1C,MAAA,CAAAW,OAAA,CAAAsB,aAAA,CAAC5B,iBAAA,CAAAsC,UAAU,MAAE,CACV,CAAC,GAGJ3C,MAAA,CAAAW,OAAA,CAAAsB,aAAA,CAAC1B,KAAA,CAAAqC,IAAI;IACHtB,IAAI,EAAEA,IAAK;IACXN,WAAW,EAAEA,WAAY;IACzBC,QAAQ,EAAEA;EAAS,CACpB,CAES,CACC,CACL,CACH,CAAC;AAEpB,CAAC;AAAC4B,OAAA,CAAAjC,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"file":"TickerTapeWidget.js","names":["_react","_interopRequireWildcard","require","_client","_monoI18n","_labsWidgetCommon","_translations","_types","_ValidationWrapper","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TickerTapeWidget","_ref","graphqlUrl","liveRatesUrl","instruments","division","locale","theme","isParamError","removePadding","size","client","ApolloClient","uri","cache","InMemoryCache","divisionCode","Division","Opt","Ogm","dataSource","createElement","ThemeProvider","LocaleProvider","getLocale","translations","LiveRatesProvider","url","options","ApolloProvider","Suspense","ValidationWrapper","exports"],"sources":["../../../src/TickerTapeWidget/TickerTapeWidget.tsx"],"sourcesContent":["import React, { Suspense } from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport { LiveRatesProvider, ThemeProvider, getLocale } from '@oanda/labs-widget-common';\nimport { translations } from '../translations';\nimport { Division, TickerTapeConfig } from './types';\nimport { ValidationWrapper } from './ValidationWrapper';\n\nconst TickerTapeWidget = ({\n graphqlUrl,\n liveRatesUrl,\n instruments,\n division,\n locale,\n theme,\n isParamError,\n removePadding,\n size,\n}: TickerTapeConfig) => {\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 <ThemeProvider removePadding={removePadding} theme={theme}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <LiveRatesProvider\n url={liveRatesUrl}\n options={{ divisionCode, dataSource }}\n >\n <ApolloProvider client={client}>\n <Suspense>\n <ValidationWrapper\n size={size}\n instruments={instruments}\n division={division}\n isParamError={isParamError}\n />\n </Suspense>\n </ApolloProvider>\n </LiveRatesProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { TickerTapeWidget };\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ValidationWrapper = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _client = require("@apollo/client");
9
+ var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
11
+ var _validateInstruments = require("../gql/validateInstruments");
12
+ var _Main = require("./Main");
13
+ var _utils = require("./utils");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ const ValidationWrapper = _ref => {
16
+ let {
17
+ instruments,
18
+ division,
19
+ size: widgetSize,
20
+ isParamError
21
+ } = _ref;
22
+ const {
23
+ data,
24
+ error
25
+ } = (0, _client.useSuspenseQuery)(_validateInstruments.validateInstruments, {
26
+ variables: {
27
+ instruments,
28
+ division
29
+ },
30
+ fetchPolicy: 'network-only'
31
+ });
32
+ const showError = !!error || isParamError;
33
+ return _react.default.createElement(_react.default.Fragment, null, !showError && _react.default.createElement(_Main.Main, {
34
+ size: widgetSize,
35
+ division: division,
36
+ records: (0, _utils.getRecords)(data)
37
+ }), showError && _react.default.createElement("div", {
38
+ className: (0, _classnames.default)('lw-flex lw-border lw-border-solid lw-border-border-primary lw-px-4 lw-text-sm lw-tracking-normal lw-text-text-primary', {
39
+ 'lw-h-[82px]': widgetSize !== 'compact',
40
+ 'lw-h-[54px]': widgetSize === 'compact'
41
+ })
42
+ }, _react.default.createElement(_labsWidgetCommon.Error, null)));
43
+ };
44
+ exports.ValidationWrapper = ValidationWrapper;
45
+ //# sourceMappingURL=ValidationWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationWrapper.js","names":["_react","_interopRequireDefault","require","_client","_classnames","_labsWidgetCommon","_validateInstruments","_Main","_utils","e","__esModule","default","ValidationWrapper","_ref","instruments","division","size","widgetSize","isParamError","data","error","useSuspenseQuery","validateInstruments","variables","fetchPolicy","showError","createElement","Fragment","Main","records","getRecords","className","classnames","Error","exports"],"sources":["../../../src/TickerTapeWidget/ValidationWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { useSuspenseQuery } from '@apollo/client';\nimport classnames from 'classnames';\nimport { Error } from '@oanda/labs-widget-common';\nimport { validateInstruments } from '../gql/validateInstruments';\nimport { ValidateInstrumentsQuery, ValidateInstrumentsQueryVariables } from '../gql/types/graphql';\nimport { Main } from './Main';\nimport { getRecords } from './utils';\nimport { ValidationWrapperProps } from './types';\n\nconst ValidationWrapper = ({\n instruments,\n division,\n size: widgetSize,\n isParamError,\n}: ValidationWrapperProps) => {\n const { data, error } = useSuspenseQuery<\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables\n >(validateInstruments, {\n variables: {\n instruments,\n division,\n },\n fetchPolicy: 'network-only',\n });\n\n const showError = !!error || isParamError;\n\n return (\n <>\n {!showError && (\n <Main\n size={widgetSize}\n division={division}\n records={getRecords(data)!}\n />\n )}\n {showError && (\n <div className={classnames('lw-flex lw-border lw-border-solid lw-border-border-primary lw-px-4 lw-text-sm lw-tracking-normal lw-text-text-primary', {\n 'lw-h-[82px]': widgetSize !== 'compact',\n 'lw-h-[54px]': widgetSize === 'compact',\n })}\n >\n <Error />\n </div>\n )}\n </>\n );\n};\n\nexport { ValidationWrapper };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AAEA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAAqC,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGrC,MAAMG,iBAAiB,GAAGC,IAAA,IAKI;EAAA,IALH;IACzBC,WAAW;IACXC,QAAQ;IACRC,IAAI,EAAEC,UAAU;IAChBC;EACsB,CAAC,GAAAL,IAAA;EACvB,MAAM;IAAEM,IAAI;IAAEC;EAAM,CAAC,GAAG,IAAAC,wBAAgB,EAGtCC,wCAAmB,EAAE;IACrBC,SAAS,EAAE;MACTT,WAAW;MACXC;IACF,CAAC;IACDS,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAG,CAAC,CAACL,KAAK,IAAIF,YAAY;EAEzC,OACElB,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAAA1B,MAAA,CAAAW,OAAA,CAAAgB,QAAA,QACG,CAACF,SAAS,IACTzB,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACnB,KAAA,CAAAqB,IAAI;IACHZ,IAAI,EAAEC,UAAW;IACjBF,QAAQ,EAAEA,QAAS;IACnBc,OAAO,EAAE,IAAAC,iBAAU,EAACX,IAAI;EAAG,CAC5B,CACF,EACAM,SAAS,IACVzB,MAAA,CAAAW,OAAA,CAAAe,aAAA;IAAKK,SAAS,EAAE,IAAAC,mBAAU,EAAC,uHAAuH,EAAE;MAClJ,aAAa,EAAEf,UAAU,KAAK,SAAS;MACvC,aAAa,EAAEA,UAAU,KAAK;IAChC,CAAC;EAAE,GAEDjB,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACrB,iBAAA,CAAA4B,KAAK,MAAE,CACL,CAEL,CAAC;AAEP,CAAC;AAACC,OAAA,CAAAtB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.InstrumentRateWithData = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _client = require("@apollo/client");
9
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
10
+ var _constant = require("../../constant");
11
+ var _getInstrumentsChart = require("../../../gql/getInstrumentsChart");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const InstrumentRateWithData = _ref => {
14
+ let {
15
+ record,
16
+ division,
17
+ target,
18
+ size
19
+ } = _ref;
20
+ const hasInstrument = !!record.instrument;
21
+ const [queryRef] = (0, _client.useBackgroundQuery)(_getInstrumentsChart.getInstrumentsChart, {
22
+ variables: {
23
+ instruments: [record.instrument],
24
+ division
25
+ },
26
+ fetchPolicy: 'network-only',
27
+ skip: !hasInstrument
28
+ });
29
+ return _react.default.createElement(_labsWidgetCommon.InstrumentRateWithChart, {
30
+ record: record,
31
+ target: target,
32
+ size: size,
33
+ tooltipId: _constant.INSTRUMENT_TOOLTIP_ID,
34
+ queryRef: queryRef
35
+ });
36
+ };
37
+ exports.InstrumentRateWithData = InstrumentRateWithData;
38
+ //# sourceMappingURL=InstrumentRateWithData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstrumentRateWithData.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_constant","_getInstrumentsChart","e","__esModule","default","InstrumentRateWithData","_ref","record","division","target","size","hasInstrument","instrument","queryRef","useBackgroundQuery","getInstrumentsChart","variables","instruments","fetchPolicy","skip","createElement","InstrumentRateWithChart","tooltipId","INSTRUMENT_TOOLTIP_ID","exports"],"sources":["../../../../../src/TickerTapeWidget/components/InstrumentRateWithData/InstrumentRateWithData.tsx"],"sourcesContent":["import React from 'react';\nimport { useBackgroundQuery } from '@apollo/client';\nimport { InstrumentRateWithChart } from '@oanda/labs-widget-common';\nimport { InstrumentRateWithDataProps } from './types';\nimport { INSTRUMENT_TOOLTIP_ID } from '../../constant';\nimport { getInstrumentsChart } from '../../../gql/getInstrumentsChart';\nimport { GetInstrumentsChartQuery, GetInstrumentsChartQueryVariables } from '../../../gql/types/graphql';\n\nconst InstrumentRateWithData = ({\n record,\n division,\n target,\n size,\n}: InstrumentRateWithDataProps) => {\n const hasInstrument = !!record.instrument;\n\n const [queryRef] = useBackgroundQuery<\n GetInstrumentsChartQuery,\n GetInstrumentsChartQueryVariables\n >(getInstrumentsChart, {\n variables: {\n instruments: [record.instrument],\n division,\n },\n fetchPolicy: 'network-only',\n skip: !hasInstrument,\n });\n\n return (\n <InstrumentRateWithChart<GetInstrumentsChartQuery>\n record={record}\n target={target}\n size={size}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n queryRef={queryRef}\n />\n );\n};\n\nexport { InstrumentRateWithData };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AAEA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AAAuE,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGvE,MAAMG,sBAAsB,GAAGC,IAAA,IAKI;EAAA,IALH;IAC9BC,MAAM;IACNC,QAAQ;IACRC,MAAM;IACNC;EAC2B,CAAC,GAAAJ,IAAA;EAC5B,MAAMK,aAAa,GAAG,CAAC,CAACJ,MAAM,CAACK,UAAU;EAEzC,MAAM,CAACC,QAAQ,CAAC,GAAG,IAAAC,0BAAkB,EAGnCC,wCAAmB,EAAE;IACrBC,SAAS,EAAE;MACTC,WAAW,EAAE,CAACV,MAAM,CAACK,UAAU,CAAC;MAChCJ;IACF,CAAC;IACDU,WAAW,EAAE,cAAc;IAC3BC,IAAI,EAAE,CAACR;EACT,CAAC,CAAC;EAEF,OACEhB,MAAA,CAAAS,OAAA,CAAAgB,aAAA,CAACrB,iBAAA,CAAAsB,uBAAuB;IACtBd,MAAM,EAAEA,MAAO;IACfE,MAAM,EAAEA,MAAO;IACfC,IAAI,EAAEA,IAAK;IACXY,SAAS,EAAEC,+BAAsB;IACjCV,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC;AAACW,OAAA,CAAAnB,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _InstrumentRateWithData = require("./InstrumentRateWithData");
7
+ Object.keys(_InstrumentRateWithData).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _InstrumentRateWithData[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _InstrumentRateWithData[key];
14
+ }
15
+ });
16
+ });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_InstrumentRateWithData","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../../src/TickerTapeWidget/components/InstrumentRateWithData/index.ts"],"sourcesContent":["export * from './InstrumentRateWithData';\n"],"mappings":";;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,uBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,uBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,uBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/TickerTapeWidget/components/InstrumentRateWithData/types.ts"],"sourcesContent":["import { DataRecord, WidgetSize } from '@oanda/labs-widget-common';\nimport { Division } from '../../types';\n\nexport interface InstrumentRateWithDataProps {\n record: DataRecord;\n target: EventTarget | null;\n division: Division;\n size?: WidgetSize\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["_monoI18n","require","_graphql"],"sources":["../../../src/TickerTapeWidget/types.tsx"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport { Theme } from '@oanda/labs-widget-common';\nimport { Division } from '../gql/types/graphql';\n\nexport { Locale } from '@oanda/mono-i18n';\nexport { Division } from '../gql/types/graphql';\n\nexport interface TickerTapeConfig {\n graphqlUrl: string;\n division: Division;\n liveRatesUrl: string;\n instruments: string[];\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n removePadding?: boolean;\n size?: 'compact' | 'full' | 'fullWithChart';\n}\n\nexport interface MainProps {\n instruments: string[];\n division: Division;\n size?: 'compact' | 'full' | 'fullWithChart'\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":["_monoI18n","require","_graphql"],"sources":["../../../src/TickerTapeWidget/types.tsx"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport { DataRecord, Theme, WidgetSize } from '@oanda/labs-widget-common';\nimport { Division } from '../gql/types/graphql';\n\nexport { Locale } from '@oanda/mono-i18n';\nexport { Division } from '../gql/types/graphql';\n\nexport interface TickerTapeConfig {\n graphqlUrl: string;\n division: Division;\n liveRatesUrl: string;\n instruments: string[];\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n removePadding?: boolean;\n size?: WidgetSize;\n}\nexport interface ValidationWrapperProps {\n instruments: string[];\n division: Division;\n size?: WidgetSize;\n isParamError?: boolean;\n}\nexport interface MainProps {\n records: DataRecord[];\n division: Division;\n size?: WidgetSize;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]}
@@ -1,39 +1,19 @@
1
- import React, { useEffect, useState } from 'react';
1
+ import React, { useEffect } from 'react';
2
2
  import Marquee from 'react-fast-marquee';
3
3
  import classnames from 'classnames';
4
- import { useQuery } from '@apollo/client';
5
- import { ChartError, Tooltip, useLiveRatesQuery } from '@oanda/labs-widget-common';
6
- import { validateInstruments } from '../gql/validateInstruments';
7
- import { getRecords } from './utils';
8
- import { InstrumentRateWithChart } from './components/InstrumentRateWithChart';
4
+ import { Tooltip, useLiveRatesQuery } from '@oanda/labs-widget-common';
9
5
  import { INSTRUMENT_TOOLTIP_ID } from './constant';
6
+ import { InstrumentRateWithData } from './components/InstrumentRateWithData';
10
7
  const Main = _ref => {
11
8
  let {
12
- instruments,
9
+ records,
13
10
  division,
14
11
  size: widgetSize = 'fullWithChart'
15
12
  } = _ref;
16
- const [records, setRecords] = useState([]);
17
13
  const {
18
14
  target,
19
15
  setQuery
20
16
  } = useLiveRatesQuery();
21
- const {
22
- loading,
23
- data,
24
- error
25
- } = useQuery(validateInstruments, {
26
- variables: {
27
- instruments,
28
- division
29
- },
30
- fetchPolicy: 'network-only'
31
- });
32
- useEffect(() => {
33
- if (!loading && data) {
34
- setRecords(getRecords(data));
35
- }
36
- }, [loading, data]);
37
17
  const instrumentsNames = records.map(_ref2 => {
38
18
  let {
39
19
  instrument: instrumentName
@@ -47,12 +27,10 @@ const Main = _ref => {
47
27
  });
48
28
  }
49
29
  }, [records]);
50
- const showError = !!error;
51
- const isLoading = loading || !data;
52
30
  return React.createElement("div", {
53
31
  "data-testid": "ticker-tape-wrapper"
54
32
  }, React.createElement(Marquee, {
55
- play: !isLoading,
33
+ play: records.length > 0,
56
34
  autoFill: true,
57
35
  pauseOnHover: true,
58
36
  speed: 60
@@ -62,17 +40,14 @@ const Main = _ref => {
62
40
  'lw-h-[82px]': widgetSize !== 'compact',
63
41
  'lw-h-[54px]': widgetSize === 'compact'
64
42
  })
65
- }, React.createElement(InstrumentRateWithChart, {
66
- loading: loading,
43
+ }, React.createElement(InstrumentRateWithData, {
67
44
  record: record,
68
45
  target: target,
69
46
  division: division,
70
47
  size: widgetSize
71
48
  })))), React.createElement(Tooltip, {
72
49
  id: INSTRUMENT_TOOLTIP_ID
73
- }), !loading && showError && React.createElement("div", {
74
- className: "lw-flex lw-h-[150px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
75
- }, React.createElement(ChartError, null)));
50
+ }));
76
51
  };
77
52
  export { Main };
78
53
  //# sourceMappingURL=Main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","names":["React","useEffect","useState","Marquee","classnames","useQuery","ChartError","Tooltip","useLiveRatesQuery","validateInstruments","getRecords","InstrumentRateWithChart","INSTRUMENT_TOOLTIP_ID","Main","_ref","instruments","division","size","widgetSize","records","setRecords","target","setQuery","loading","data","error","variables","fetchPolicy","instrumentsNames","map","_ref2","instrument","instrumentName","showError","isLoading","createElement","play","autoFill","pauseOnHover","speed","record","key","className","id"],"sources":["../../../src/TickerTapeWidget/Main.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport Marquee from 'react-fast-marquee';\nimport classnames from 'classnames';\nimport { useQuery } from '@apollo/client';\nimport {\n ChartError, DataRecord, Tooltip, useLiveRatesQuery,\n} from '@oanda/labs-widget-common';\nimport { MainProps } from './types';\nimport {\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables,\n} from '../gql/types/graphql';\nimport { validateInstruments } from '../gql/validateInstruments';\nimport { getRecords } from './utils';\nimport { InstrumentRateWithChart } from './components/InstrumentRateWithChart';\nimport { INSTRUMENT_TOOLTIP_ID } from './constant';\n\nconst Main = ({\n instruments,\n division,\n size: widgetSize = 'fullWithChart',\n}: MainProps) => {\n const [records, setRecords] = useState<DataRecord[]>([]);\n const { target, setQuery } = useLiveRatesQuery();\n const { loading, data, error } = useQuery<\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables\n >(validateInstruments, {\n variables: {\n instruments,\n division,\n },\n fetchPolicy: 'network-only',\n });\n\n useEffect(() => {\n if (!loading && data) {\n setRecords(getRecords(data)!);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loading, data]);\n\n const instrumentsNames = records.map(({ instrument: instrumentName }) => instrumentName);\n\n useEffect(() => {\n if (instrumentsNames[0]) {\n setQuery({ instruments: instrumentsNames });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [records]);\n\n const showError = !!error;\n const isLoading = loading || !data;\n\n return (\n <div data-testid=\"ticker-tape-wrapper\">\n <Marquee\n play={!isLoading}\n autoFill\n pauseOnHover\n speed={60}\n >\n {records.map((record) => (\n <div\n key={record.instrument}\n className={classnames('lw-flex lw-border lw-border-r-0 lw-border-solid lw-border-border-primary lw-px-4 lw-text-sm lw-tracking-normal lw-text-text-primary', {\n 'lw-h-[82px]': widgetSize !== 'compact',\n 'lw-h-[54px]': widgetSize === 'compact',\n })}\n >\n <InstrumentRateWithChart\n loading={loading}\n record={record}\n target={target}\n division={division}\n size={widgetSize}\n />\n </div>\n ))}\n </Marquee>\n <Tooltip id={INSTRUMENT_TOOLTIP_ID} />\n {!loading && showError && (\n <div className=\"lw-flex lw-h-[150px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )}\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,OAAOC,OAAO,MAAM,oBAAoB;AACxC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SACEC,UAAU,EAAcC,OAAO,EAAEC,iBAAiB,QAC7C,2BAA2B;AAMlC,SAASC,mBAAmB,QAAQ,4BAA4B;AAChE,SAASC,UAAU,QAAQ,SAAS;AACpC,SAASC,uBAAuB,QAAQ,sCAAsC;AAC9E,SAASC,qBAAqB,QAAQ,YAAY;AAElD,MAAMC,IAAI,GAAGC,IAAA,IAII;EAAA,IAJH;IACZC,WAAW;IACXC,QAAQ;IACRC,IAAI,EAAEC,UAAU,GAAG;EACV,CAAC,GAAAJ,IAAA;EACV,MAAM,CAACK,OAAO,EAAEC,UAAU,CAAC,GAAGlB,QAAQ,CAAe,EAAE,CAAC;EACxD,MAAM;IAAEmB,MAAM;IAAEC;EAAS,CAAC,GAAGd,iBAAiB,CAAC,CAAC;EAChD,MAAM;IAAEe,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAGpB,QAAQ,CAGvCI,mBAAmB,EAAE;IACrBiB,SAAS,EAAE;MACTX,WAAW;MACXC;IACF,CAAC;IACDW,WAAW,EAAE;EACf,CAAC,CAAC;EAEF1B,SAAS,CAAC,MAAM;IACd,IAAI,CAACsB,OAAO,IAAIC,IAAI,EAAE;MACpBJ,UAAU,CAACV,UAAU,CAACc,IAAI,CAAE,CAAC;IAC/B;EAEF,CAAC,EAAE,CAACD,OAAO,EAAEC,IAAI,CAAC,CAAC;EAEnB,MAAMI,gBAAgB,GAAGT,OAAO,CAACU,GAAG,CAACC,KAAA;IAAA,IAAC;MAAEC,UAAU,EAAEC;IAAe,CAAC,GAAAF,KAAA;IAAA,OAAKE,cAAc;EAAA,EAAC;EAExF/B,SAAS,CAAC,MAAM;IACd,IAAI2B,gBAAgB,CAAC,CAAC,CAAC,EAAE;MACvBN,QAAQ,CAAC;QAAEP,WAAW,EAAEa;MAAiB,CAAC,CAAC;IAC7C;EAEF,CAAC,EAAE,CAACT,OAAO,CAAC,CAAC;EAEb,MAAMc,SAAS,GAAG,CAAC,CAACR,KAAK;EACzB,MAAMS,SAAS,GAAGX,OAAO,IAAI,CAACC,IAAI;EAElC,OACExB,KAAA,CAAAmC,aAAA;IAAK,eAAY;EAAqB,GACpCnC,KAAA,CAAAmC,aAAA,CAAChC,OAAO;IACNiC,IAAI,EAAE,CAACF,SAAU;IACjBG,QAAQ;IACRC,YAAY;IACZC,KAAK,EAAE;EAAG,GAETpB,OAAO,CAACU,GAAG,CAAEW,MAAM,IAClBxC,KAAA,CAAAmC,aAAA;IACEM,GAAG,EAAED,MAAM,CAACT,UAAW;IACvBW,SAAS,EAAEtC,UAAU,CAAC,qIAAqI,EAAE;MAC3J,aAAa,EAAEc,UAAU,KAAK,SAAS;MACvC,aAAa,EAAEA,UAAU,KAAK;IAChC,CAAC;EAAE,GAEHlB,KAAA,CAAAmC,aAAA,CAACxB,uBAAuB;IACtBY,OAAO,EAAEA,OAAQ;IACjBiB,MAAM,EAAEA,MAAO;IACfnB,MAAM,EAAEA,MAAO;IACfL,QAAQ,EAAEA,QAAS;IACnBC,IAAI,EAAEC;EAAW,CAClB,CACE,CACN,CACM,CAAC,EACVlB,KAAA,CAAAmC,aAAA,CAAC5B,OAAO;IAACoC,EAAE,EAAE/B;EAAsB,CAAE,CAAC,EACrC,CAACW,OAAO,IAAIU,SAAS,IACpBjC,KAAA,CAAAmC,aAAA;IAAKO,SAAS,EAAC;EAAmG,GAChH1C,KAAA,CAAAmC,aAAA,CAAC7B,UAAU,MAAE,CACV,CAEJ,CAAC;AAEV,CAAC;AAED,SAASO,IAAI","ignoreList":[]}
1
+ {"version":3,"file":"Main.js","names":["React","useEffect","Marquee","classnames","Tooltip","useLiveRatesQuery","INSTRUMENT_TOOLTIP_ID","InstrumentRateWithData","Main","_ref","records","division","size","widgetSize","target","setQuery","instrumentsNames","map","_ref2","instrument","instrumentName","instruments","createElement","play","length","autoFill","pauseOnHover","speed","record","key","className","id"],"sources":["../../../src/TickerTapeWidget/Main.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport Marquee from 'react-fast-marquee';\nimport classnames from 'classnames';\nimport { Tooltip, useLiveRatesQuery } from '@oanda/labs-widget-common';\nimport { MainProps } from './types';\nimport { INSTRUMENT_TOOLTIP_ID } from './constant';\nimport { InstrumentRateWithData } from './components/InstrumentRateWithData';\n\nconst Main = ({\n records,\n division,\n size: widgetSize = 'fullWithChart',\n}: MainProps) => {\n const { target, setQuery } = useLiveRatesQuery();\n\n const instrumentsNames = records.map(({ instrument: instrumentName }) => instrumentName);\n\n useEffect(() => {\n if (instrumentsNames[0]) {\n setQuery({ instruments: instrumentsNames });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [records]);\n\n return (\n <div data-testid=\"ticker-tape-wrapper\">\n <Marquee\n play={records.length > 0}\n autoFill\n pauseOnHover\n speed={60}\n >\n {records.map((record) => (\n <div\n key={record.instrument}\n className={classnames('lw-flex lw-border lw-border-r-0 lw-border-solid lw-border-border-primary lw-px-4 lw-text-sm lw-tracking-normal lw-text-text-primary', {\n 'lw-h-[82px]': widgetSize !== 'compact',\n 'lw-h-[54px]': widgetSize === 'compact',\n })}\n >\n <InstrumentRateWithData\n record={record}\n target={target}\n division={division}\n size={widgetSize}\n />\n </div>\n ))}\n </Marquee>\n <Tooltip id={INSTRUMENT_TOOLTIP_ID} />\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,OAAOC,OAAO,MAAM,oBAAoB;AACxC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,OAAO,EAAEC,iBAAiB,QAAQ,2BAA2B;AAEtE,SAASC,qBAAqB,QAAQ,YAAY;AAClD,SAASC,sBAAsB,QAAQ,qCAAqC;AAE5E,MAAMC,IAAI,GAAGC,IAAA,IAII;EAAA,IAJH;IACZC,OAAO;IACPC,QAAQ;IACRC,IAAI,EAAEC,UAAU,GAAG;EACV,CAAC,GAAAJ,IAAA;EACV,MAAM;IAAEK,MAAM;IAAEC;EAAS,CAAC,GAAGV,iBAAiB,CAAC,CAAC;EAEhD,MAAMW,gBAAgB,GAAGN,OAAO,CAACO,GAAG,CAACC,KAAA;IAAA,IAAC;MAAEC,UAAU,EAAEC;IAAe,CAAC,GAAAF,KAAA;IAAA,OAAKE,cAAc;EAAA,EAAC;EAExFnB,SAAS,CAAC,MAAM;IACd,IAAIe,gBAAgB,CAAC,CAAC,CAAC,EAAE;MACvBD,QAAQ,CAAC;QAAEM,WAAW,EAAEL;MAAiB,CAAC,CAAC;IAC7C;EAEF,CAAC,EAAE,CAACN,OAAO,CAAC,CAAC;EAEb,OACEV,KAAA,CAAAsB,aAAA;IAAK,eAAY;EAAqB,GACpCtB,KAAA,CAAAsB,aAAA,CAACpB,OAAO;IACNqB,IAAI,EAAEb,OAAO,CAACc,MAAM,GAAG,CAAE;IACzBC,QAAQ;IACRC,YAAY;IACZC,KAAK,EAAE;EAAG,GAETjB,OAAO,CAACO,GAAG,CAAEW,MAAM,IAClB5B,KAAA,CAAAsB,aAAA;IACEO,GAAG,EAAED,MAAM,CAACT,UAAW;IACvBW,SAAS,EAAE3B,UAAU,CAAC,qIAAqI,EAAE;MAC3J,aAAa,EAAEU,UAAU,KAAK,SAAS;MACvC,aAAa,EAAEA,UAAU,KAAK;IAChC,CAAC;EAAE,GAEHb,KAAA,CAAAsB,aAAA,CAACf,sBAAsB;IACrBqB,MAAM,EAAEA,MAAO;IACfd,MAAM,EAAEA,MAAO;IACfH,QAAQ,EAAEA,QAAS;IACnBC,IAAI,EAAEC;EAAW,CAClB,CACE,CACN,CACM,CAAC,EACVb,KAAA,CAAAsB,aAAA,CAAClB,OAAO;IAAC2B,EAAE,EAAEzB;EAAsB,CAAE,CAClC,CAAC;AAEV,CAAC;AAED,SAASE,IAAI","ignoreList":[]}
@@ -1,10 +1,10 @@
1
- import React from 'react';
1
+ import React, { Suspense } from 'react';
2
2
  import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';
3
3
  import { LocaleProvider } from '@oanda/mono-i18n';
4
- import { ChartError, LiveRatesProvider, ThemeProvider, getLocale } from '@oanda/labs-widget-common';
4
+ import { LiveRatesProvider, ThemeProvider, getLocale } from '@oanda/labs-widget-common';
5
5
  import { translations } from '../translations';
6
- import { Main } from './Main';
7
6
  import { Division } from './types';
7
+ import { ValidationWrapper } from './ValidationWrapper';
8
8
  const TickerTapeWidget = _ref => {
9
9
  let {
10
10
  graphqlUrl,
@@ -37,13 +37,12 @@ const TickerTapeWidget = _ref => {
37
37
  }
38
38
  }, React.createElement(ApolloProvider, {
39
39
  client: client
40
- }, isParamError ? React.createElement("div", {
41
- className: "lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
42
- }, React.createElement(ChartError, null)) : React.createElement(Main, {
40
+ }, React.createElement(Suspense, null, React.createElement(ValidationWrapper, {
43
41
  size: size,
44
42
  instruments: instruments,
45
- division: division
46
- })))));
43
+ division: division,
44
+ isParamError: isParamError
45
+ }))))));
47
46
  };
48
47
  export { TickerTapeWidget };
49
48
  //# sourceMappingURL=TickerTapeWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TickerTapeWidget.js","names":["React","ApolloClient","InMemoryCache","ApolloProvider","LocaleProvider","ChartError","LiveRatesProvider","ThemeProvider","getLocale","translations","Main","Division","TickerTapeWidget","_ref","graphqlUrl","liveRatesUrl","instruments","division","locale","theme","isParamError","removePadding","size","client","uri","cache","divisionCode","Opt","Ogm","dataSource","createElement","url","options","className"],"sources":["../../../src/TickerTapeWidget/TickerTapeWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport {\n ChartError, LiveRatesProvider, ThemeProvider, getLocale,\n} from '@oanda/labs-widget-common';\nimport { translations } from '../translations';\nimport { Main } from './Main';\nimport { Division, TickerTapeConfig } from './types';\n\nconst TickerTapeWidget = ({\n graphqlUrl,\n liveRatesUrl,\n instruments,\n division,\n locale,\n theme,\n isParamError,\n removePadding,\n size,\n}: TickerTapeConfig) => {\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 <ThemeProvider removePadding={removePadding} theme={theme}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <LiveRatesProvider\n url={liveRatesUrl}\n options={{ divisionCode, dataSource }}\n >\n <ApolloProvider client={client}>\n {isParamError ? (\n <div className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )\n : (\n <Main\n size={size}\n instruments={instruments}\n division={division}\n />\n )}\n </ApolloProvider>\n </LiveRatesProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { TickerTapeWidget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,EAAEC,cAAc,QAAQ,gBAAgB;AAC5E,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SACEC,UAAU,EAAEC,iBAAiB,EAAEC,aAAa,EAAEC,SAAS,QAClD,2BAA2B;AAClC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,QAAQ,QAA0B,SAAS;AAEpD,MAAMC,gBAAgB,GAAGC,IAAA,IAUD;EAAA,IAVE;IACxBC,UAAU;IACVC,YAAY;IACZC,WAAW;IACXC,QAAQ;IACRC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC;EACgB,CAAC,GAAAT,IAAA;EACjB,MAAMU,MAAM,GAAG,IAAItB,YAAY,CAAC;IAC9BuB,GAAG,EAAEV,UAAU;IACfW,KAAK,EAAE,IAAIvB,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMwB,YAAY,GAAGT,QAAQ,KAAKN,QAAQ,CAACgB,GAAG,GAAGhB,QAAQ,CAACiB,GAAG,GAAGX,QAAQ;EACxE,MAAMY,UAAU,GAAGH,YAAY,KAAKf,QAAQ,CAACiB,GAAG,GAAG,KAAK,GAAG,KAAK;EAEhE,OACE5B,KAAA,CAAA8B,aAAA,CAACvB,aAAa;IAACc,aAAa,EAAEA,aAAc;IAACF,KAAK,EAAEA;EAAM,GACxDnB,KAAA,CAAA8B,aAAA,CAAC1B,cAAc;IAACc,MAAM,EAAEV,SAAS,CAACU,MAAM,CAAE;IAACT,YAAY,EAAEA;EAAa,GACpET,KAAA,CAAA8B,aAAA,CAACxB,iBAAiB;IAChByB,GAAG,EAAEhB,YAAa;IAClBiB,OAAO,EAAE;MAAEN,YAAY;MAAEG;IAAW;EAAE,GAEtC7B,KAAA,CAAA8B,aAAA,CAAC3B,cAAc;IAACoB,MAAM,EAAEA;EAAO,GAC5BH,YAAY,GACXpB,KAAA,CAAA8B,aAAA;IAAKG,SAAS,EAAC;EAAmG,GAChHjC,KAAA,CAAA8B,aAAA,CAACzB,UAAU,MAAE,CACV,CAAC,GAGJL,KAAA,CAAA8B,aAAA,CAACpB,IAAI;IACHY,IAAI,EAAEA,IAAK;IACXN,WAAW,EAAEA,WAAY;IACzBC,QAAQ,EAAEA;EAAS,CACpB,CAES,CACC,CACL,CACH,CAAC;AAEpB,CAAC;AAED,SAASL,gBAAgB","ignoreList":[]}
1
+ {"version":3,"file":"TickerTapeWidget.js","names":["React","Suspense","ApolloClient","InMemoryCache","ApolloProvider","LocaleProvider","LiveRatesProvider","ThemeProvider","getLocale","translations","Division","ValidationWrapper","TickerTapeWidget","_ref","graphqlUrl","liveRatesUrl","instruments","division","locale","theme","isParamError","removePadding","size","client","uri","cache","divisionCode","Opt","Ogm","dataSource","createElement","url","options"],"sources":["../../../src/TickerTapeWidget/TickerTapeWidget.tsx"],"sourcesContent":["import React, { Suspense } from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport { LiveRatesProvider, ThemeProvider, getLocale } from '@oanda/labs-widget-common';\nimport { translations } from '../translations';\nimport { Division, TickerTapeConfig } from './types';\nimport { ValidationWrapper } from './ValidationWrapper';\n\nconst TickerTapeWidget = ({\n graphqlUrl,\n liveRatesUrl,\n instruments,\n division,\n locale,\n theme,\n isParamError,\n removePadding,\n size,\n}: TickerTapeConfig) => {\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 <ThemeProvider removePadding={removePadding} theme={theme}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <LiveRatesProvider\n url={liveRatesUrl}\n options={{ divisionCode, dataSource }}\n >\n <ApolloProvider client={client}>\n <Suspense>\n <ValidationWrapper\n size={size}\n instruments={instruments}\n division={division}\n isParamError={isParamError}\n />\n </Suspense>\n </ApolloProvider>\n </LiveRatesProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { TickerTapeWidget };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,YAAY,EAAEC,aAAa,EAAEC,cAAc,QAAQ,gBAAgB;AAC5E,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,iBAAiB,EAAEC,aAAa,EAAEC,SAAS,QAAQ,2BAA2B;AACvF,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,QAAQ,QAA0B,SAAS;AACpD,SAASC,iBAAiB,QAAQ,qBAAqB;AAEvD,MAAMC,gBAAgB,GAAGC,IAAA,IAUD;EAAA,IAVE;IACxBC,UAAU;IACVC,YAAY;IACZC,WAAW;IACXC,QAAQ;IACRC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC;EACgB,CAAC,GAAAT,IAAA;EACjB,MAAMU,MAAM,GAAG,IAAIrB,YAAY,CAAC;IAC9BsB,GAAG,EAAEV,UAAU;IACfW,KAAK,EAAE,IAAItB,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMuB,YAAY,GAAGT,QAAQ,KAAKP,QAAQ,CAACiB,GAAG,GAAGjB,QAAQ,CAACkB,GAAG,GAAGX,QAAQ;EACxE,MAAMY,UAAU,GAAGH,YAAY,KAAKhB,QAAQ,CAACkB,GAAG,GAAG,KAAK,GAAG,KAAK;EAEhE,OACE5B,KAAA,CAAA8B,aAAA,CAACvB,aAAa;IAACc,aAAa,EAAEA,aAAc;IAACF,KAAK,EAAEA;EAAM,GACxDnB,KAAA,CAAA8B,aAAA,CAACzB,cAAc;IAACa,MAAM,EAAEV,SAAS,CAACU,MAAM,CAAE;IAACT,YAAY,EAAEA;EAAa,GACpET,KAAA,CAAA8B,aAAA,CAACxB,iBAAiB;IAChByB,GAAG,EAAEhB,YAAa;IAClBiB,OAAO,EAAE;MAAEN,YAAY;MAAEG;IAAW;EAAE,GAEtC7B,KAAA,CAAA8B,aAAA,CAAC1B,cAAc;IAACmB,MAAM,EAAEA;EAAO,GAC7BvB,KAAA,CAAA8B,aAAA,CAAC7B,QAAQ,QACPD,KAAA,CAAA8B,aAAA,CAACnB,iBAAiB;IAChBW,IAAI,EAAEA,IAAK;IACXN,WAAW,EAAEA,WAAY;IACzBC,QAAQ,EAAEA,QAAS;IACnBG,YAAY,EAAEA;EAAa,CAC5B,CACO,CACI,CACC,CACL,CACH,CAAC;AAEpB,CAAC;AAED,SAASR,gBAAgB","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import { useSuspenseQuery } from '@apollo/client';
3
+ import classnames from 'classnames';
4
+ import { Error } from '@oanda/labs-widget-common';
5
+ import { validateInstruments } from '../gql/validateInstruments';
6
+ import { Main } from './Main';
7
+ import { getRecords } from './utils';
8
+ const ValidationWrapper = _ref => {
9
+ let {
10
+ instruments,
11
+ division,
12
+ size: widgetSize,
13
+ isParamError
14
+ } = _ref;
15
+ const {
16
+ data,
17
+ error
18
+ } = useSuspenseQuery(validateInstruments, {
19
+ variables: {
20
+ instruments,
21
+ division
22
+ },
23
+ fetchPolicy: 'network-only'
24
+ });
25
+ const showError = !!error || isParamError;
26
+ return React.createElement(React.Fragment, null, !showError && React.createElement(Main, {
27
+ size: widgetSize,
28
+ division: division,
29
+ records: getRecords(data)
30
+ }), showError && React.createElement("div", {
31
+ className: classnames('lw-flex lw-border lw-border-solid lw-border-border-primary lw-px-4 lw-text-sm lw-tracking-normal lw-text-text-primary', {
32
+ 'lw-h-[82px]': widgetSize !== 'compact',
33
+ 'lw-h-[54px]': widgetSize === 'compact'
34
+ })
35
+ }, React.createElement(Error, null)));
36
+ };
37
+ export { ValidationWrapper };
38
+ //# sourceMappingURL=ValidationWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationWrapper.js","names":["React","useSuspenseQuery","classnames","Error","validateInstruments","Main","getRecords","ValidationWrapper","_ref","instruments","division","size","widgetSize","isParamError","data","error","variables","fetchPolicy","showError","createElement","Fragment","records","className"],"sources":["../../../src/TickerTapeWidget/ValidationWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { useSuspenseQuery } from '@apollo/client';\nimport classnames from 'classnames';\nimport { Error } from '@oanda/labs-widget-common';\nimport { validateInstruments } from '../gql/validateInstruments';\nimport { ValidateInstrumentsQuery, ValidateInstrumentsQueryVariables } from '../gql/types/graphql';\nimport { Main } from './Main';\nimport { getRecords } from './utils';\nimport { ValidationWrapperProps } from './types';\n\nconst ValidationWrapper = ({\n instruments,\n division,\n size: widgetSize,\n isParamError,\n}: ValidationWrapperProps) => {\n const { data, error } = useSuspenseQuery<\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables\n >(validateInstruments, {\n variables: {\n instruments,\n division,\n },\n fetchPolicy: 'network-only',\n });\n\n const showError = !!error || isParamError;\n\n return (\n <>\n {!showError && (\n <Main\n size={widgetSize}\n division={division}\n records={getRecords(data)!}\n />\n )}\n {showError && (\n <div className={classnames('lw-flex lw-border lw-border-solid lw-border-border-primary lw-px-4 lw-text-sm lw-tracking-normal lw-text-text-primary', {\n 'lw-h-[82px]': widgetSize !== 'compact',\n 'lw-h-[54px]': widgetSize === 'compact',\n })}\n >\n <Error />\n </div>\n )}\n </>\n );\n};\n\nexport { ValidationWrapper };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,QAAQ,gBAAgB;AACjD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,KAAK,QAAQ,2BAA2B;AACjD,SAASC,mBAAmB,QAAQ,4BAA4B;AAEhE,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,UAAU,QAAQ,SAAS;AAGpC,MAAMC,iBAAiB,GAAGC,IAAA,IAKI;EAAA,IALH;IACzBC,WAAW;IACXC,QAAQ;IACRC,IAAI,EAAEC,UAAU;IAChBC;EACsB,CAAC,GAAAL,IAAA;EACvB,MAAM;IAAEM,IAAI;IAAEC;EAAM,CAAC,GAAGd,gBAAgB,CAGtCG,mBAAmB,EAAE;IACrBY,SAAS,EAAE;MACTP,WAAW;MACXC;IACF,CAAC;IACDO,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAG,CAAC,CAACH,KAAK,IAAIF,YAAY;EAEzC,OACEb,KAAA,CAAAmB,aAAA,CAAAnB,KAAA,CAAAoB,QAAA,QACG,CAACF,SAAS,IACTlB,KAAA,CAAAmB,aAAA,CAACd,IAAI;IACHM,IAAI,EAAEC,UAAW;IACjBF,QAAQ,EAAEA,QAAS;IACnBW,OAAO,EAAEf,UAAU,CAACQ,IAAI;EAAG,CAC5B,CACF,EACAI,SAAS,IACVlB,KAAA,CAAAmB,aAAA;IAAKG,SAAS,EAAEpB,UAAU,CAAC,uHAAuH,EAAE;MAClJ,aAAa,EAAEU,UAAU,KAAK,SAAS;MACvC,aAAa,EAAEA,UAAU,KAAK;IAChC,CAAC;EAAE,GAEDZ,KAAA,CAAAmB,aAAA,CAAChB,KAAK,MAAE,CACL,CAEL,CAAC;AAEP,CAAC;AAED,SAASI,iBAAiB","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import { useBackgroundQuery } from '@apollo/client';
3
+ import { InstrumentRateWithChart } from '@oanda/labs-widget-common';
4
+ import { INSTRUMENT_TOOLTIP_ID } from '../../constant';
5
+ import { getInstrumentsChart } from '../../../gql/getInstrumentsChart';
6
+ const InstrumentRateWithData = _ref => {
7
+ let {
8
+ record,
9
+ division,
10
+ target,
11
+ size
12
+ } = _ref;
13
+ const hasInstrument = !!record.instrument;
14
+ const [queryRef] = useBackgroundQuery(getInstrumentsChart, {
15
+ variables: {
16
+ instruments: [record.instrument],
17
+ division
18
+ },
19
+ fetchPolicy: 'network-only',
20
+ skip: !hasInstrument
21
+ });
22
+ return React.createElement(InstrumentRateWithChart, {
23
+ record: record,
24
+ target: target,
25
+ size: size,
26
+ tooltipId: INSTRUMENT_TOOLTIP_ID,
27
+ queryRef: queryRef
28
+ });
29
+ };
30
+ export { InstrumentRateWithData };
31
+ //# sourceMappingURL=InstrumentRateWithData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstrumentRateWithData.js","names":["React","useBackgroundQuery","InstrumentRateWithChart","INSTRUMENT_TOOLTIP_ID","getInstrumentsChart","InstrumentRateWithData","_ref","record","division","target","size","hasInstrument","instrument","queryRef","variables","instruments","fetchPolicy","skip","createElement","tooltipId"],"sources":["../../../../../src/TickerTapeWidget/components/InstrumentRateWithData/InstrumentRateWithData.tsx"],"sourcesContent":["import React from 'react';\nimport { useBackgroundQuery } from '@apollo/client';\nimport { InstrumentRateWithChart } from '@oanda/labs-widget-common';\nimport { InstrumentRateWithDataProps } from './types';\nimport { INSTRUMENT_TOOLTIP_ID } from '../../constant';\nimport { getInstrumentsChart } from '../../../gql/getInstrumentsChart';\nimport { GetInstrumentsChartQuery, GetInstrumentsChartQueryVariables } from '../../../gql/types/graphql';\n\nconst InstrumentRateWithData = ({\n record,\n division,\n target,\n size,\n}: InstrumentRateWithDataProps) => {\n const hasInstrument = !!record.instrument;\n\n const [queryRef] = useBackgroundQuery<\n GetInstrumentsChartQuery,\n GetInstrumentsChartQueryVariables\n >(getInstrumentsChart, {\n variables: {\n instruments: [record.instrument],\n division,\n },\n fetchPolicy: 'network-only',\n skip: !hasInstrument,\n });\n\n return (\n <InstrumentRateWithChart<GetInstrumentsChartQuery>\n record={record}\n target={target}\n size={size}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n queryRef={queryRef}\n />\n );\n};\n\nexport { InstrumentRateWithData };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,kBAAkB,QAAQ,gBAAgB;AACnD,SAASC,uBAAuB,QAAQ,2BAA2B;AAEnE,SAASC,qBAAqB,QAAQ,gBAAgB;AACtD,SAASC,mBAAmB,QAAQ,kCAAkC;AAGtE,MAAMC,sBAAsB,GAAGC,IAAA,IAKI;EAAA,IALH;IAC9BC,MAAM;IACNC,QAAQ;IACRC,MAAM;IACNC;EAC2B,CAAC,GAAAJ,IAAA;EAC5B,MAAMK,aAAa,GAAG,CAAC,CAACJ,MAAM,CAACK,UAAU;EAEzC,MAAM,CAACC,QAAQ,CAAC,GAAGZ,kBAAkB,CAGnCG,mBAAmB,EAAE;IACrBU,SAAS,EAAE;MACTC,WAAW,EAAE,CAACR,MAAM,CAACK,UAAU,CAAC;MAChCJ;IACF,CAAC;IACDQ,WAAW,EAAE,cAAc;IAC3BC,IAAI,EAAE,CAACN;EACT,CAAC,CAAC;EAEF,OACEX,KAAA,CAAAkB,aAAA,CAAChB,uBAAuB;IACtBK,MAAM,EAAEA,MAAO;IACfE,MAAM,EAAEA,MAAO;IACfC,IAAI,EAAEA,IAAK;IACXS,SAAS,EAAEhB,qBAAsB;IACjCU,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC;AAED,SAASR,sBAAsB","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from './InstrumentRateWithData';
2
+ //# sourceMappingURL=index.js.map