@oanda/labs-ticker-tape-widget 1.0.1

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 (161) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/codegen.ts +15 -0
  3. package/dist/main/TickerTapeWidget/Main.js +87 -0
  4. package/dist/main/TickerTapeWidget/Main.js.map +1 -0
  5. package/dist/main/TickerTapeWidget/TickerTapeWidget.js +56 -0
  6. package/dist/main/TickerTapeWidget/TickerTapeWidget.js.map +1 -0
  7. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/InstrumentRateWithChart.js +46 -0
  8. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/InstrumentRateWithChart.js.map +1 -0
  9. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/index.js +28 -0
  10. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/index.js.map +1 -0
  11. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/types.js +6 -0
  12. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/types.js.map +1 -0
  13. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/utils.js +25 -0
  14. package/dist/main/TickerTapeWidget/components/InstrumentRateWithChart/utils.js.map +1 -0
  15. package/dist/main/TickerTapeWidget/components/LineChartWithData/LineChartWithData.js +42 -0
  16. package/dist/main/TickerTapeWidget/components/LineChartWithData/LineChartWithData.js.map +1 -0
  17. package/dist/main/TickerTapeWidget/components/LineChartWithData/index.js +17 -0
  18. package/dist/main/TickerTapeWidget/components/LineChartWithData/index.js.map +1 -0
  19. package/dist/main/TickerTapeWidget/components/LineChartWithData/types.js +6 -0
  20. package/dist/main/TickerTapeWidget/components/LineChartWithData/types.js.map +1 -0
  21. package/dist/main/TickerTapeWidget/constant.js +8 -0
  22. package/dist/main/TickerTapeWidget/constant.js.map +1 -0
  23. package/dist/main/TickerTapeWidget/index.js +28 -0
  24. package/dist/main/TickerTapeWidget/index.js.map +1 -0
  25. package/dist/main/TickerTapeWidget/render.js +55 -0
  26. package/dist/main/TickerTapeWidget/render.js.map +1 -0
  27. package/dist/main/TickerTapeWidget/types.js +20 -0
  28. package/dist/main/TickerTapeWidget/types.js.map +1 -0
  29. package/dist/main/TickerTapeWidget/utils.js +43 -0
  30. package/dist/main/TickerTapeWidget/utils.js.map +1 -0
  31. package/dist/main/gql/getInstrumentsChart.js +16 -0
  32. package/dist/main/gql/getInstrumentsChart.js.map +1 -0
  33. package/dist/main/gql/types/fragment-masking.js +23 -0
  34. package/dist/main/gql/types/fragment-masking.js.map +1 -0
  35. package/dist/main/gql/types/gql.js +17 -0
  36. package/dist/main/gql/types/gql.js.map +1 -0
  37. package/dist/main/gql/types/graphql.js +326 -0
  38. package/dist/main/gql/types/graphql.js.map +1 -0
  39. package/dist/main/gql/types/index.js +28 -0
  40. package/dist/main/gql/types/index.js.map +1 -0
  41. package/dist/main/gql/validateInstruments.js +16 -0
  42. package/dist/main/gql/validateInstruments.js.map +1 -0
  43. package/dist/main/index.js +17 -0
  44. package/dist/main/index.js.map +1 -0
  45. package/dist/main/translations/index.js +27 -0
  46. package/dist/main/translations/index.js.map +1 -0
  47. package/dist/main/translations/sources/en.json +4 -0
  48. package/dist/main/translations/sources/es.json +4 -0
  49. package/dist/main/translations/sources/th.json +4 -0
  50. package/dist/main/translations/sources/zh_TW.json +4 -0
  51. package/dist/main/translations/translations.js +11 -0
  52. package/dist/main/translations/translations.js.map +1 -0
  53. package/dist/module/TickerTapeWidget/Main.js +78 -0
  54. package/dist/module/TickerTapeWidget/Main.js.map +1 -0
  55. package/dist/module/TickerTapeWidget/TickerTapeWidget.js +49 -0
  56. package/dist/module/TickerTapeWidget/TickerTapeWidget.js.map +1 -0
  57. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/InstrumentRateWithChart.js +38 -0
  58. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/InstrumentRateWithChart.js.map +1 -0
  59. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/index.js +3 -0
  60. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/index.js.map +1 -0
  61. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/types.js +2 -0
  62. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/types.js.map +1 -0
  63. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/utils.js +18 -0
  64. package/dist/module/TickerTapeWidget/components/InstrumentRateWithChart/utils.js.map +1 -0
  65. package/dist/module/TickerTapeWidget/components/LineChartWithData/LineChartWithData.js +35 -0
  66. package/dist/module/TickerTapeWidget/components/LineChartWithData/LineChartWithData.js.map +1 -0
  67. package/dist/module/TickerTapeWidget/components/LineChartWithData/index.js +2 -0
  68. package/dist/module/TickerTapeWidget/components/LineChartWithData/index.js.map +1 -0
  69. package/dist/module/TickerTapeWidget/components/LineChartWithData/types.js +2 -0
  70. package/dist/module/TickerTapeWidget/components/LineChartWithData/types.js.map +1 -0
  71. package/dist/module/TickerTapeWidget/constant.js +3 -0
  72. package/dist/module/TickerTapeWidget/constant.js.map +1 -0
  73. package/dist/module/TickerTapeWidget/index.js +3 -0
  74. package/dist/module/TickerTapeWidget/index.js.map +1 -0
  75. package/dist/module/TickerTapeWidget/render.js +52 -0
  76. package/dist/module/TickerTapeWidget/render.js.map +1 -0
  77. package/dist/module/TickerTapeWidget/types.js +3 -0
  78. package/dist/module/TickerTapeWidget/types.js.map +1 -0
  79. package/dist/module/TickerTapeWidget/utils.js +36 -0
  80. package/dist/module/TickerTapeWidget/utils.js.map +1 -0
  81. package/dist/module/gql/getInstrumentsChart.js +10 -0
  82. package/dist/module/gql/getInstrumentsChart.js.map +1 -0
  83. package/dist/module/gql/types/fragment-masking.js +15 -0
  84. package/dist/module/gql/types/fragment-masking.js.map +1 -0
  85. package/dist/module/gql/types/gql.js +9 -0
  86. package/dist/module/gql/types/gql.js.map +1 -0
  87. package/dist/module/gql/types/graphql.js +320 -0
  88. package/dist/module/gql/types/graphql.js.map +1 -0
  89. package/dist/module/gql/types/index.js +3 -0
  90. package/dist/module/gql/types/index.js.map +1 -0
  91. package/dist/module/gql/validateInstruments.js +10 -0
  92. package/dist/module/gql/validateInstruments.js.map +1 -0
  93. package/dist/module/index.js +2 -0
  94. package/dist/module/index.js.map +1 -0
  95. package/dist/module/translations/index.js +20 -0
  96. package/dist/module/translations/index.js.map +1 -0
  97. package/dist/module/translations/sources/en.json +4 -0
  98. package/dist/module/translations/sources/es.json +4 -0
  99. package/dist/module/translations/sources/th.json +4 -0
  100. package/dist/module/translations/sources/zh_TW.json +4 -0
  101. package/dist/module/translations/translations.js +5 -0
  102. package/dist/module/translations/translations.js.map +1 -0
  103. package/dist/types/TickerTapeWidget/Main.d.ts +4 -0
  104. package/dist/types/TickerTapeWidget/TickerTapeWidget.d.ts +4 -0
  105. package/dist/types/TickerTapeWidget/components/InstrumentRateWithChart/InstrumentRateWithChart.d.ts +4 -0
  106. package/dist/types/TickerTapeWidget/components/InstrumentRateWithChart/index.d.ts +2 -0
  107. package/dist/types/TickerTapeWidget/components/InstrumentRateWithChart/types.d.ts +9 -0
  108. package/dist/types/TickerTapeWidget/components/InstrumentRateWithChart/utils.d.ts +3 -0
  109. package/dist/types/TickerTapeWidget/components/LineChartWithData/LineChartWithData.d.ts +4 -0
  110. package/dist/types/TickerTapeWidget/components/LineChartWithData/index.d.ts +1 -0
  111. package/dist/types/TickerTapeWidget/components/LineChartWithData/types.d.ts +8 -0
  112. package/dist/types/TickerTapeWidget/constant.d.ts +2 -0
  113. package/dist/types/TickerTapeWidget/index.d.ts +2 -0
  114. package/dist/types/TickerTapeWidget/render.d.ts +1 -0
  115. package/dist/types/TickerTapeWidget/types.d.ts +21 -0
  116. package/dist/types/TickerTapeWidget/utils.d.ts +11 -0
  117. package/dist/types/gql/getInstrumentsChart.d.ts +1 -0
  118. package/dist/types/gql/types/fragment-masking.d.ts +15 -0
  119. package/dist/types/gql/types/gql.d.ts +45 -0
  120. package/dist/types/gql/types/graphql.d.ts +397 -0
  121. package/dist/types/gql/types/index.d.ts +2 -0
  122. package/dist/types/gql/validateInstruments.d.ts +1 -0
  123. package/dist/types/index.d.ts +1 -0
  124. package/dist/types/translations/index.d.ts +4 -0
  125. package/dist/types/translations/translations.d.ts +4 -0
  126. package/index.ts +1 -0
  127. package/lokalise.config.json +18 -0
  128. package/package.json +26 -0
  129. package/src/TickerTapeWidget/Main.tsx +91 -0
  130. package/src/TickerTapeWidget/TickerTapeWidget.tsx +57 -0
  131. package/src/TickerTapeWidget/components/InstrumentRateWithChart/InstrumentRateWithChart.tsx +43 -0
  132. package/src/TickerTapeWidget/components/InstrumentRateWithChart/index.ts +2 -0
  133. package/src/TickerTapeWidget/components/InstrumentRateWithChart/types.ts +10 -0
  134. package/src/TickerTapeWidget/components/InstrumentRateWithChart/utils.ts +25 -0
  135. package/src/TickerTapeWidget/components/LineChartWithData/LineChartWithData.tsx +43 -0
  136. package/src/TickerTapeWidget/components/LineChartWithData/index.ts +1 -0
  137. package/src/TickerTapeWidget/components/LineChartWithData/types.tsx +9 -0
  138. package/src/TickerTapeWidget/constant.ts +5 -0
  139. package/src/TickerTapeWidget/index.ts +2 -0
  140. package/src/TickerTapeWidget/render.tsx +51 -0
  141. package/src/TickerTapeWidget/types.tsx +24 -0
  142. package/src/TickerTapeWidget/utils.ts +48 -0
  143. package/src/gql/getInstrumentsChart.ts +10 -0
  144. package/src/gql/types/fragment-masking.ts +66 -0
  145. package/src/gql/types/gql.ts +47 -0
  146. package/src/gql/types/graphql.ts +432 -0
  147. package/src/gql/types/index.ts +2 -0
  148. package/src/gql/validateInstruments.ts +10 -0
  149. package/src/index.ts +1 -0
  150. package/src/translations/index.ts +17 -0
  151. package/src/translations/sources/en.json +4 -0
  152. package/src/translations/sources/es.json +4 -0
  153. package/src/translations/sources/th.json +4 -0
  154. package/src/translations/sources/zh_TW.json +4 -0
  155. package/src/translations/translations.ts +4 -0
  156. package/test/LineChartWithData.test.tsx +164 -0
  157. package/test/Main.test.tsx +27 -0
  158. package/test/components/InstrumentRateWithChart.test.tsx +62 -0
  159. package/test/components/utils.test.ts +13 -0
  160. package/test/mocks.ts +52 -0
  161. package/tsconfig.types.json +12 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ ## 1.0.1 (2024-07-25)
7
+
8
+ **Note:** Version bump only for package @oanda/labs-ticker-tape-widget
package/codegen.ts ADDED
@@ -0,0 +1,15 @@
1
+ import type { CodegenConfig } from '@graphql-codegen/cli';
2
+
3
+ const config: CodegenConfig = {
4
+ overwrite: true,
5
+ schema: 'https://labs-api.uat.oanda.com/graphql',
6
+ documents: 'src/**/*.ts',
7
+ generates: {
8
+ 'src/gql/types/': {
9
+ preset: 'client',
10
+ plugins: [],
11
+ },
12
+ },
13
+ };
14
+
15
+ export default config;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Main = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactFastMarquee = _interopRequireDefault(require("react-fast-marquee"));
9
+ var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _client = require("@apollo/client");
11
+ 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
+ var _constant = require("./constant");
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ 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
+ 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
+ const Main = _ref => {
20
+ let {
21
+ instruments,
22
+ division,
23
+ size: widgetSize = 'fullWithChart'
24
+ } = _ref;
25
+ const [records, setRecords] = (0, _react.useState)([]);
26
+ const {
27
+ target,
28
+ setQuery
29
+ } = (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
+ const instrumentsNames = records.map(_ref2 => {
47
+ let {
48
+ instrument: instrumentName
49
+ } = _ref2;
50
+ return instrumentName;
51
+ });
52
+ (0, _react.useEffect)(() => {
53
+ if (instrumentsNames[0]) {
54
+ setQuery({
55
+ instruments: instrumentsNames
56
+ });
57
+ }
58
+ }, [records]);
59
+ const showError = !!error;
60
+ const isLoading = loading || !data;
61
+ return _react.default.createElement("div", {
62
+ "data-testid": "ticker-tape-wrapper"
63
+ }, _react.default.createElement(_reactFastMarquee.default, {
64
+ play: !isLoading,
65
+ autoFill: true,
66
+ pauseOnHover: true,
67
+ speed: 60
68
+ }, records.map(record => _react.default.createElement("div", {
69
+ key: record.instrument,
70
+ className: (0, _classnames.default)('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', {
71
+ 'lw-h-[82px]': widgetSize !== 'compact',
72
+ 'lw-h-[54px]': widgetSize === 'compact'
73
+ })
74
+ }, _react.default.createElement(_InstrumentRateWithChart.InstrumentRateWithChart, {
75
+ loading: loading,
76
+ record: record,
77
+ target: target,
78
+ division: division,
79
+ size: widgetSize
80
+ })))), _react.default.createElement(_labsWidgetCommon.Tooltip, {
81
+ 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)));
85
+ };
86
+ exports.Main = Main;
87
+ //# sourceMappingURL=Main.js.map
@@ -0,0 +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":[]}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TickerTapeWidget = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _client = require("@apollo/client");
9
+ var _monoI18n = require("@oanda/mono-i18n");
10
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
11
+ var _translations = require("../translations");
12
+ var _Main = require("./Main");
13
+ var _types = require("./types");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ const TickerTapeWidget = _ref => {
16
+ let {
17
+ graphqlUrl,
18
+ liveRatesUrl,
19
+ instruments,
20
+ division,
21
+ locale,
22
+ theme,
23
+ isParamError,
24
+ removePadding,
25
+ size
26
+ } = _ref;
27
+ const client = new _client.ApolloClient({
28
+ uri: graphqlUrl,
29
+ cache: new _client.InMemoryCache()
30
+ });
31
+ const divisionCode = division === _types.Division.Opt ? _types.Division.Ogm : division;
32
+ const dataSource = divisionCode === _types.Division.Ogm ? 'MT5' : 'V20';
33
+ return _react.default.createElement(_labsWidgetCommon.ThemeProvider, {
34
+ removePadding: removePadding,
35
+ theme: theme
36
+ }, _react.default.createElement(_monoI18n.LocaleProvider, {
37
+ locale: (0, _labsWidgetCommon.getLocale)(locale),
38
+ translations: _translations.translations
39
+ }, _react.default.createElement(_labsWidgetCommon.LiveRatesProvider, {
40
+ url: liveRatesUrl,
41
+ options: {
42
+ divisionCode,
43
+ dataSource
44
+ }
45
+ }, _react.default.createElement(_client.ApolloProvider, {
46
+ 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, {
50
+ size: size,
51
+ instruments: instruments,
52
+ division: division
53
+ })))));
54
+ };
55
+ exports.TickerTapeWidget = TickerTapeWidget;
56
+ //# sourceMappingURL=TickerTapeWidget.js.map
@@ -0,0 +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":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.InstrumentRateWithChart = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
9
+ var _utils = require("./utils");
10
+ var _constant = require("../../constant");
11
+ var _LineChartWithData = require("../LineChartWithData");
12
+ var _utils2 = require("../../utils");
13
+ 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); }
14
+ 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
+ const InstrumentRateWithChart = _ref => {
16
+ let {
17
+ loading,
18
+ record,
19
+ target,
20
+ division,
21
+ size
22
+ } = _ref;
23
+ const {
24
+ isDark
25
+ } = (0, _react.useContext)(_labsWidgetCommon.ThemeContext);
26
+ const {
27
+ updatedRecord,
28
+ error
29
+ } = (0, _utils2.useRecords)(record, record.instrument ? target : null);
30
+ const indicator = (0, _utils.getColorIndicator)(updatedRecord.dailyPercentChange);
31
+ return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_labsWidgetCommon.InstrumentRate, {
32
+ isLoading: loading,
33
+ isError: !!error,
34
+ record: updatedRecord,
35
+ size: size,
36
+ tooltipId: _constant.INSTRUMENT_TOOLTIP_ID,
37
+ colorIndicator: indicator
38
+ }), size === 'fullWithChart' && _react.default.createElement(_LineChartWithData.LineChartWithData, {
39
+ record: record,
40
+ isLoading: loading,
41
+ division: division,
42
+ color: (0, _utils.getChartColor)(indicator, isDark)
43
+ }));
44
+ };
45
+ exports.InstrumentRateWithChart = InstrumentRateWithChart;
46
+ //# sourceMappingURL=InstrumentRateWithChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstrumentRateWithChart.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_utils","_constant","_LineChartWithData","_utils2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","InstrumentRateWithChart","_ref","loading","record","target","division","size","isDark","useContext","ThemeContext","updatedRecord","error","useRecords","instrument","indicator","getColorIndicator","dailyPercentChange","createElement","Fragment","InstrumentRate","isLoading","isError","tooltipId","INSTRUMENT_TOOLTIP_ID","colorIndicator","LineChartWithData","color","getChartColor","exports"],"sources":["../../../../../src/TickerTapeWidget/components/InstrumentRateWithChart/InstrumentRateWithChart.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { InstrumentRate, ThemeContext } from '@oanda/labs-widget-common';\nimport { InstrumentRateWithChartProps } from './types';\nimport { getChartColor, getColorIndicator } from './utils';\nimport { INSTRUMENT_TOOLTIP_ID } from '../../constant';\nimport { LineChartWithData } from '../LineChartWithData';\nimport { useRecords } from '../../utils';\n\nconst InstrumentRateWithChart = ({\n loading,\n record,\n target,\n division,\n size,\n}: InstrumentRateWithChartProps) => {\n const { isDark } = useContext(ThemeContext);\n const { updatedRecord, error } = useRecords(record, record.instrument ? target : null);\n\n const indicator = getColorIndicator(updatedRecord.dailyPercentChange);\n\n return (\n <>\n <InstrumentRate\n isLoading={loading}\n isError={!!error}\n record={updatedRecord}\n size={size}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n colorIndicator={indicator}\n />\n {size === 'fullWithChart' && (\n <LineChartWithData\n record={record}\n isLoading={loading}\n division={division}\n color={getChartColor(indicator, isDark)}\n />\n )}\n </>\n );\n};\n\nexport { InstrumentRateWithChart };\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _InstrumentRateWithChart = require("./InstrumentRateWithChart");
7
+ Object.keys(_InstrumentRateWithChart).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _InstrumentRateWithChart[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _InstrumentRateWithChart[key];
14
+ }
15
+ });
16
+ });
17
+ var _utils = require("./utils");
18
+ Object.keys(_utils).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _utils[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _utils[key];
25
+ }
26
+ });
27
+ });
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_InstrumentRateWithChart","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_utils"],"sources":["../../../../../src/TickerTapeWidget/components/InstrumentRateWithChart/index.ts"],"sourcesContent":["export * from './InstrumentRateWithChart';\nexport * from './utils';\n"],"mappings":";;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,wBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,wBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,wBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,MAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,MAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,MAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/TickerTapeWidget/components/InstrumentRateWithChart/types.ts"],"sourcesContent":["import { DataRecord } from '@oanda/labs-widget-common';\nimport { Division } from '../../types';\n\nexport interface InstrumentRateWithChartProps {\n loading: boolean;\n record: DataRecord;\n target: EventTarget | null;\n division: Division;\n size?: 'compact' | 'full' | 'fullWithChart'\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getColorIndicator = exports.getChartColor = void 0;
7
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
+ const getColorIndicator = dailyChange => {
9
+ const numberValue = Number(dailyChange?.substring(0, dailyChange.length - 1));
10
+ return Math.sign(numberValue);
11
+ };
12
+ exports.getColorIndicator = getColorIndicator;
13
+ const getChartColor = (indicator, isDarkMode) => {
14
+ const theme = isDarkMode ? _labsWidgetCommon.darkTheme : _labsWidgetCommon.lightTheme;
15
+ switch (indicator) {
16
+ case 1:
17
+ return theme.textOk;
18
+ case -1:
19
+ return theme.textDanger;
20
+ default:
21
+ return theme.textDisabled;
22
+ }
23
+ };
24
+ exports.getChartColor = getChartColor;
25
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["_labsWidgetCommon","require","getColorIndicator","dailyChange","numberValue","Number","substring","length","Math","sign","exports","getChartColor","indicator","isDarkMode","theme","darkTheme","lightTheme","textOk","textDanger","textDisabled"],"sources":["../../../../../src/TickerTapeWidget/components/InstrumentRateWithChart/utils.ts"],"sourcesContent":["import { lightTheme, darkTheme } from '@oanda/labs-widget-common';\n\nconst getColorIndicator = (dailyChange?: string) => {\n const numberValue = Number(dailyChange?.substring(0, dailyChange.length - 1));\n\n return Math.sign(numberValue);\n};\n\nconst getChartColor = (indicator?: number, isDarkMode?: boolean) => {\n const theme = isDarkMode ? darkTheme : lightTheme;\n\n switch (indicator) {\n case 1:\n return theme.textOk;\n case -1:\n return theme.textDanger;\n default:\n return theme.textDisabled;\n }\n};\n\nexport {\n getColorIndicator,\n getChartColor,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEA,MAAMC,iBAAiB,GAAIC,WAAoB,IAAK;EAClD,MAAMC,WAAW,GAAGC,MAAM,CAACF,WAAW,EAAEG,SAAS,CAAC,CAAC,EAAEH,WAAW,CAACI,MAAM,GAAG,CAAC,CAAC,CAAC;EAE7E,OAAOC,IAAI,CAACC,IAAI,CAACL,WAAW,CAAC;AAC/B,CAAC;AAACM,OAAA,CAAAR,iBAAA,GAAAA,iBAAA;AAEF,MAAMS,aAAa,GAAGA,CAACC,SAAkB,EAAEC,UAAoB,KAAK;EAClE,MAAMC,KAAK,GAAGD,UAAU,GAAGE,2BAAS,GAAGC,4BAAU;EAEjD,QAAQJ,SAAS;IACf,KAAK,CAAC;MACJ,OAAOE,KAAK,CAACG,MAAM;IACrB,KAAK,CAAC,CAAC;MACL,OAAOH,KAAK,CAACI,UAAU;IACzB;MACE,OAAOJ,KAAK,CAACK,YAAY;EAC7B;AACF,CAAC;AAACT,OAAA,CAAAC,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LineChartWithData = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _client = require("@apollo/client");
9
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
10
+ var _getInstrumentsChart = require("../../../gql/getInstrumentsChart");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const LineChartWithData = _ref => {
13
+ let {
14
+ record,
15
+ isLoading,
16
+ division,
17
+ color
18
+ } = _ref;
19
+ const {
20
+ loading,
21
+ data
22
+ } = (0, _client.useQuery)(_getInstrumentsChart.getInstrumentsChart, {
23
+ variables: {
24
+ instruments: [record.instrument],
25
+ division
26
+ },
27
+ fetchPolicy: 'network-only',
28
+ skip: !record.instrument
29
+ });
30
+ const showChart = isLoading || loading;
31
+ const chart = data?.topicalInstrumentsCharts?.[0].chart || [];
32
+ return _react.default.createElement("div", {
33
+ className: "lw-relative"
34
+ }, !showChart ? _react.default.createElement("div", {
35
+ className: "lw-absolute lw-bottom-0 lw-right-0 lw--z-50 lw-flex lw-h-10 lw-w-[100px] lw-items-center lw-justify-center"
36
+ }, _react.default.createElement(_labsWidgetCommon.LineChart, {
37
+ color: color,
38
+ data: chart
39
+ })) : null);
40
+ };
41
+ exports.LineChartWithData = LineChartWithData;
42
+ //# sourceMappingURL=LineChartWithData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LineChartWithData.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_getInstrumentsChart","e","__esModule","default","LineChartWithData","_ref","record","isLoading","division","color","loading","data","useQuery","getInstrumentsChart","variables","instruments","instrument","fetchPolicy","skip","showChart","chart","topicalInstrumentsCharts","createElement","className","LineChart","exports"],"sources":["../../../../../src/TickerTapeWidget/components/LineChartWithData/LineChartWithData.tsx"],"sourcesContent":["import React from 'react';\nimport { useQuery } from '@apollo/client';\nimport { LineChart } from '@oanda/labs-widget-common';\nimport { LineChartWithDataProps } from './types';\nimport { getInstrumentsChart } from '../../../gql/getInstrumentsChart';\nimport { GetInstrumentsChartQuery, GetInstrumentsChartQueryVariables } from '../../../gql/types/graphql';\n\nconst LineChartWithData = ({\n record,\n isLoading,\n division,\n color,\n}: LineChartWithDataProps) => {\n const { loading, data } = useQuery<\n GetInstrumentsChartQuery,\n GetInstrumentsChartQueryVariables\n >(getInstrumentsChart, {\n variables: {\n instruments: [record.instrument],\n division,\n },\n fetchPolicy: 'network-only',\n skip: !record.instrument,\n });\n\n const showChart = isLoading || loading;\n const chart = data?.topicalInstrumentsCharts?.[0].chart || [];\n\n return (\n <div className=\"lw-relative\">\n {!showChart ? (\n <div className=\"lw-absolute lw-bottom-0 lw-right-0 lw--z-50 lw-flex lw-h-10 lw-w-[100px] lw-items-center lw-justify-center\">\n <LineChart\n color={color}\n data={chart}\n />\n </div>\n ) : null}\n </div>\n );\n};\n\nexport { LineChartWithData };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AAEA,IAAAG,oBAAA,GAAAH,OAAA;AAAuE,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGvE,MAAMG,iBAAiB,GAAGC,IAAA,IAKI;EAAA,IALH;IACzBC,MAAM;IACNC,SAAS;IACTC,QAAQ;IACRC;EACsB,CAAC,GAAAJ,IAAA;EACvB,MAAM;IAAEK,OAAO;IAAEC;EAAK,CAAC,GAAG,IAAAC,gBAAQ,EAGhCC,wCAAmB,EAAE;IACrBC,SAAS,EAAE;MACTC,WAAW,EAAE,CAACT,MAAM,CAACU,UAAU,CAAC;MAChCR;IACF,CAAC;IACDS,WAAW,EAAE,cAAc;IAC3BC,IAAI,EAAE,CAACZ,MAAM,CAACU;EAChB,CAAC,CAAC;EAEF,MAAMG,SAAS,GAAGZ,SAAS,IAAIG,OAAO;EACtC,MAAMU,KAAK,GAAGT,IAAI,EAAEU,wBAAwB,GAAG,CAAC,CAAC,CAACD,KAAK,IAAI,EAAE;EAE7D,OACEzB,MAAA,CAAAQ,OAAA,CAAAmB,aAAA;IAAKC,SAAS,EAAC;EAAa,GACzB,CAACJ,SAAS,GACTxB,MAAA,CAAAQ,OAAA,CAAAmB,aAAA;IAAKC,SAAS,EAAC;EAA4G,GACzH5B,MAAA,CAAAQ,OAAA,CAAAmB,aAAA,CAACvB,iBAAA,CAAAyB,SAAS;IACRf,KAAK,EAAEA,KAAM;IACbE,IAAI,EAAES;EAAM,CACb,CACE,CAAC,GACJ,IACD,CAAC;AAEV,CAAC;AAACK,OAAA,CAAArB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _LineChartWithData = require("./LineChartWithData");
7
+ Object.keys(_LineChartWithData).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _LineChartWithData[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _LineChartWithData[key];
14
+ }
15
+ });
16
+ });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_LineChartWithData","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../../src/TickerTapeWidget/components/LineChartWithData/index.ts"],"sourcesContent":["export * from './LineChartWithData';\n"],"mappings":";;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/TickerTapeWidget/components/LineChartWithData/types.tsx"],"sourcesContent":["import { DataRecord } from '@oanda/labs-widget-common';\nimport { Division } from '../../../gql/types/graphql';\n\nexport interface LineChartWithDataProps {\n record: DataRecord;\n isLoading: boolean;\n division: Division;\n color: string;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.INSTRUMENT_TOOLTIP_ID = void 0;
7
+ const INSTRUMENT_TOOLTIP_ID = exports.INSTRUMENT_TOOLTIP_ID = 'instrument_tooltip_id';
8
+ //# sourceMappingURL=constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.js","names":["INSTRUMENT_TOOLTIP_ID","exports"],"sources":["../../../src/TickerTapeWidget/constant.ts"],"sourcesContent":["const INSTRUMENT_TOOLTIP_ID = 'instrument_tooltip_id';\n\nexport {\n INSTRUMENT_TOOLTIP_ID,\n};\n"],"mappings":";;;;;;AAAA,MAAMA,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,uBAAuB","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _types = require("./types");
7
+ Object.keys(_types).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _types[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _types[key];
14
+ }
15
+ });
16
+ });
17
+ var _TickerTapeWidget = require("./TickerTapeWidget");
18
+ Object.keys(_TickerTapeWidget).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _TickerTapeWidget[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _TickerTapeWidget[key];
25
+ }
26
+ });
27
+ });
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_types","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_TickerTapeWidget"],"sources":["../../../src/TickerTapeWidget/index.ts"],"sourcesContent":["export * from './types';\nexport * from './TickerTapeWidget';\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,iBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,iBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,iBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,iBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+ var _client = require("react-dom/client");
5
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
6
+ var _TickerTapeWidget = require("./TickerTapeWidget");
7
+ var _graphql = require("../gql/types/graphql");
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ const {
10
+ graphqlUrl,
11
+ liveRatesUrl
12
+ } = window.widgetsConfig || {};
13
+ const dataTickerTapeParamsElements = document.querySelectorAll('div[data-ticker-tape-params]');
14
+ dataTickerTapeParamsElements.forEach(element => {
15
+ const root = (0, _client.createRoot)(element);
16
+ const params = element.getAttribute('data-ticker-tape-params');
17
+ const mode = element.getAttribute('data-mode');
18
+ const {
19
+ instruments,
20
+ division,
21
+ locale,
22
+ size
23
+ } = JSON.parse(params);
24
+ const isParamError = (0, _labsWidgetCommon.validateToolParams)({
25
+ division,
26
+ locale,
27
+ graphqlUrl,
28
+ liveRatesUrl,
29
+ instruments
30
+ }, [{
31
+ name: 'locale',
32
+ valueCheck: value => (0, _labsWidgetCommon.validateLocale)(value)
33
+ }, {
34
+ name: 'division',
35
+ valueCheck: value => Object.values(_graphql.Division).includes(value)
36
+ }, {
37
+ name: 'instruments',
38
+ valueCheck: value => value.length > 0 && value.length <= 10
39
+ }, {
40
+ name: 'graphqlUrl'
41
+ }, {
42
+ name: 'liveRatesUrl'
43
+ }]);
44
+ root.render(_react.default.createElement(_TickerTapeWidget.TickerTapeWidget, {
45
+ graphqlUrl: graphqlUrl,
46
+ liveRatesUrl: liveRatesUrl,
47
+ division: division,
48
+ instruments: instruments,
49
+ locale: locale,
50
+ theme: mode,
51
+ isParamError: isParamError,
52
+ size: size
53
+ }));
54
+ });
55
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_TickerTapeWidget","_graphql","e","__esModule","default","graphqlUrl","liveRatesUrl","window","widgetsConfig","dataTickerTapeParamsElements","document","querySelectorAll","forEach","element","root","createRoot","params","getAttribute","mode","instruments","division","locale","size","JSON","parse","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","length","render","createElement","TickerTapeWidget","theme"],"sources":["../../../src/TickerTapeWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { TickerTapeWidget } from './TickerTapeWidget';\nimport { Division } from '../gql/types/graphql';\n\nconst {\n graphqlUrl,\n liveRatesUrl,\n} = window.widgetsConfig || {};\n\nconst dataTickerTapeParamsElements = document.querySelectorAll('div[data-ticker-tape-params]');\n\ndataTickerTapeParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-ticker-tape-params');\n const mode = element.getAttribute('data-mode');\n const {\n instruments, division, locale, size,\n } = JSON.parse(params as string);\n\n const isParamError = validateToolParams({\n division, locale, graphqlUrl, liveRatesUrl, instruments,\n }, [{\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, {\n name: 'instruments',\n valueCheck: (value) => value.length > 0 && value.length <= 10,\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'liveRatesUrl',\n }]);\n\n root.render(\n <TickerTapeWidget\n graphqlUrl={graphqlUrl}\n liveRatesUrl={liveRatesUrl}\n division={division}\n instruments={instruments}\n locale={locale}\n theme={mode as Theme}\n isParamError={isParamError}\n size={size}\n />,\n );\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAAgD,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEhD,MAAM;EACJG,UAAU;EACVC;AACF,CAAC,GAAGC,MAAM,CAACC,aAAa,IAAI,CAAC,CAAC;AAE9B,MAAMC,4BAA4B,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,8BAA8B,CAAC;AAE9FF,4BAA4B,CAACG,OAAO,CAAEC,OAAO,IAAK;EAChD,MAAMC,IAAI,GAAG,IAAAC,kBAAU,EAACF,OAAO,CAAC;EAChC,MAAMG,MAAM,GAAGH,OAAO,CAACI,YAAY,CAAC,yBAAyB,CAAC;EAC9D,MAAMC,IAAI,GAAGL,OAAO,CAACI,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IACJE,WAAW;IAAEC,QAAQ;IAAEC,MAAM;IAAEC;EACjC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACR,MAAgB,CAAC;EAEhC,MAAMS,YAAY,GAAG,IAAAC,oCAAkB,EAAC;IACtCN,QAAQ;IAAEC,MAAM;IAAEhB,UAAU;IAAEC,YAAY;IAAEa;EAC9C,CAAC,EAAE,CAAC;IACFQ,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAGC,KAAK,IAAK,IAAAC,gCAAc,EAACD,KAAK;EAC7C,CAAC,EAAE;IACDF,IAAI,EAAE,UAAU;IAChBC,UAAU,EAAGC,KAAK,IAAKE,MAAM,CAACC,MAAM,CAACC,iBAAQ,CAAC,CAACC,QAAQ,CAACL,KAAK;EAC/D,CAAC,EAAE;IACDF,IAAI,EAAE,aAAa;IACnBC,UAAU,EAAGC,KAAK,IAAKA,KAAK,CAACM,MAAM,GAAG,CAAC,IAAIN,KAAK,CAACM,MAAM,IAAI;EAC7D,CAAC,EAAE;IACDR,IAAI,EAAE;EACR,CAAC,EAAE;IACDA,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EAEHb,IAAI,CAACsB,MAAM,CACTzC,MAAA,CAAAS,OAAA,CAAAiC,aAAA,CAACrC,iBAAA,CAAAsC,gBAAgB;IACfjC,UAAU,EAAEA,UAAW;IACvBC,YAAY,EAAEA,YAAa;IAC3Bc,QAAQ,EAAEA,QAAS;IACnBD,WAAW,EAAEA,WAAY;IACzBE,MAAM,EAAEA,MAAO;IACfkB,KAAK,EAAErB,IAAc;IACrBO,YAAY,EAAEA,YAAa;IAC3BH,IAAI,EAAEA;EAAK,CACZ,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,20 @@
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
+ var _monoI18n = require("@oanda/mono-i18n");
19
+ var _graphql = require("../gql/types/graphql");
20
+ //# sourceMappingURL=types.js.map
@@ -0,0 +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":[]}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useRecords = exports.getRecords = void 0;
7
+ var _react = require("react");
8
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
9
+ const getRecords = data => data?.mapInstrumentNames?.map(item => ({
10
+ instrument: item?.name || '',
11
+ displayName: item?.displayName || ''
12
+ }));
13
+ exports.getRecords = getRecords;
14
+ const useRecords = (record, target) => {
15
+ const [updatedRecord, setUpdatedRecord] = (0, _react.useState)({
16
+ displayName: record.displayName,
17
+ instrument: record.instrument,
18
+ sentiment: record.sentiment
19
+ });
20
+ const [error, setError] = (0, _react.useState)(null);
21
+ const {
22
+ update,
23
+ error: liveRatesError
24
+ } = (0, _labsWidgetCommon.useLiveRatesMessage)(record.instrument, target);
25
+ (0, _react.useEffect)(() => {
26
+ setUpdatedRecord({
27
+ displayName: record.displayName,
28
+ instrument: record.instrument,
29
+ buy: update?.bid,
30
+ buyPriceMovement: update?.bidPriceMovement,
31
+ dailyPercentChange: update?.dailyPercentChangeFromOpen,
32
+ dailyPipsChange: update?.dailyPipsChangeFromOpen,
33
+ displayPrecision: update?.displayPrecision
34
+ });
35
+ setError(liveRatesError);
36
+ }, [update, record, liveRatesError]);
37
+ return {
38
+ updatedRecord,
39
+ error
40
+ };
41
+ };
42
+ exports.useRecords = useRecords;
43
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["_react","require","_labsWidgetCommon","getRecords","data","mapInstrumentNames","map","item","instrument","name","displayName","exports","useRecords","record","target","updatedRecord","setUpdatedRecord","useState","sentiment","error","setError","update","liveRatesError","useLiveRatesMessage","useEffect","buy","bid","buyPriceMovement","bidPriceMovement","dailyPercentChange","dailyPercentChangeFromOpen","dailyPipsChange","dailyPipsChangeFromOpen","displayPrecision"],"sources":["../../../src/TickerTapeWidget/utils.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { DataRecord, LiveRatesErrorMessage, useLiveRatesMessage } from '@oanda/labs-widget-common';\nimport { ValidateInstrumentsQuery } from '../gql/types/graphql';\n\nconst getRecords = (data: ValidateInstrumentsQuery) => data?.mapInstrumentNames?.map((item) => ({\n instrument: item?.name || '',\n displayName: item?.displayName || '',\n}));\n\nconst useRecords = (\n record: DataRecord,\n target: EventTarget | null,\n) => {\n const [updatedRecord, setUpdatedRecord] = useState<DataRecord>({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n });\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n record.instrument,\n target,\n );\n\n useEffect(() => {\n setUpdatedRecord({\n displayName: record.displayName,\n instrument: record.instrument,\n buy: update?.bid,\n buyPriceMovement: update?.bidPriceMovement,\n dailyPercentChange: update?.dailyPercentChangeFromOpen,\n dailyPipsChange: update?.dailyPipsChangeFromOpen,\n displayPrecision: update?.displayPrecision,\n });\n setError(liveRatesError);\n }, [update, record, liveRatesError]);\n\n return {\n updatedRecord,\n error,\n };\n};\n\nexport {\n getRecords,\n useRecords,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAGA,MAAME,UAAU,GAAIC,IAA8B,IAAKA,IAAI,EAAEC,kBAAkB,EAAEC,GAAG,CAAEC,IAAI,KAAM;EAC9FC,UAAU,EAAED,IAAI,EAAEE,IAAI,IAAI,EAAE;EAC5BC,WAAW,EAAEH,IAAI,EAAEG,WAAW,IAAI;AACpC,CAAC,CAAC,CAAC;AAACC,OAAA,CAAAR,UAAA,GAAAA,UAAA;AAEJ,MAAMS,UAAU,GAAGA,CACjBC,MAAkB,EAClBC,MAA0B,KACvB;EACH,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAC,eAAQ,EAAa;IAC7DP,WAAW,EAAEG,MAAM,CAACH,WAAW;IAC/BF,UAAU,EAAEK,MAAM,CAACL,UAAU;IAC7BU,SAAS,EAAEL,MAAM,CAACK;EACpB,CAAC,CAAC;EACF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAH,eAAQ,EAA+B,IAAI,CAAC;EAEtE,MAAM;IAAEI,MAAM;IAAEF,KAAK,EAAEG;EAAe,CAAC,GAAG,IAAAC,qCAAmB,EAC3DV,MAAM,CAACL,UAAU,EACjBM,MACF,CAAC;EAED,IAAAU,gBAAS,EAAC,MAAM;IACdR,gBAAgB,CAAC;MACfN,WAAW,EAAEG,MAAM,CAACH,WAAW;MAC/BF,UAAU,EAAEK,MAAM,CAACL,UAAU;MAC7BiB,GAAG,EAAEJ,MAAM,EAAEK,GAAG;MAChBC,gBAAgB,EAAEN,MAAM,EAAEO,gBAAgB;MAC1CC,kBAAkB,EAAER,MAAM,EAAES,0BAA0B;MACtDC,eAAe,EAAEV,MAAM,EAAEW,uBAAuB;MAChDC,gBAAgB,EAAEZ,MAAM,EAAEY;IAC5B,CAAC,CAAC;IACFb,QAAQ,CAACE,cAAc,CAAC;EAC1B,CAAC,EAAE,CAACD,MAAM,EAAER,MAAM,EAAES,cAAc,CAAC,CAAC;EAEpC,OAAO;IACLP,aAAa;IACbI;EACF,CAAC;AACH,CAAC;AAACR,OAAA,CAAAC,UAAA,GAAAA,UAAA","ignoreList":[]}