@oanda/labs-currency-cross-table 1.0.6 → 1.0.7

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 +32 -0
  2. package/codegen.ts +15 -0
  3. package/dist/main/CurrencyCrossTableWidget/CurrencyCrossTableWidget.js +12 -4
  4. package/dist/main/CurrencyCrossTableWidget/CurrencyCrossTableWidget.js.map +1 -1
  5. package/dist/main/CurrencyCrossTableWidget/Main.js +11 -9
  6. package/dist/main/CurrencyCrossTableWidget/Main.js.map +1 -1
  7. package/dist/main/CurrencyCrossTableWidget/ValidationWrapper.js +2 -1
  8. package/dist/main/CurrencyCrossTableWidget/ValidationWrapper.js.map +1 -1
  9. package/dist/main/CurrencyCrossTableWidget/components/CellValidationWrapper.js +51 -0
  10. package/dist/main/CurrencyCrossTableWidget/components/CellValidationWrapper.js.map +1 -0
  11. package/dist/main/CurrencyCrossTableWidget/components/CellWithData.js +19 -11
  12. package/dist/main/CurrencyCrossTableWidget/components/CellWithData.js.map +1 -1
  13. package/dist/main/CurrencyCrossTableWidget/components/types.js.map +1 -1
  14. package/dist/main/CurrencyCrossTableWidget/render.js +7 -2
  15. package/dist/main/CurrencyCrossTableWidget/render.js.map +1 -1
  16. package/dist/main/CurrencyCrossTableWidget/types.js +0 -13
  17. package/dist/main/CurrencyCrossTableWidget/types.js.map +1 -1
  18. package/dist/main/CurrencyCrossTableWidget/utils.js +13 -30
  19. package/dist/main/CurrencyCrossTableWidget/utils.js.map +1 -1
  20. package/dist/main/gql/types/fragment-masking.js +23 -0
  21. package/dist/main/gql/types/fragment-masking.js.map +1 -0
  22. package/dist/main/gql/types/gql.js +16 -0
  23. package/dist/main/gql/types/gql.js.map +1 -0
  24. package/dist/main/gql/types/graphql.js +223 -0
  25. package/dist/main/gql/types/graphql.js.map +1 -0
  26. package/dist/main/gql/types/index.js +28 -0
  27. package/dist/main/gql/types/index.js.map +1 -0
  28. package/dist/main/gql/validateInstruments.js +16 -0
  29. package/dist/main/gql/validateInstruments.js.map +1 -0
  30. package/dist/module/CurrencyCrossTableWidget/CurrencyCrossTableWidget.js +10 -2
  31. package/dist/module/CurrencyCrossTableWidget/CurrencyCrossTableWidget.js.map +1 -1
  32. package/dist/module/CurrencyCrossTableWidget/Main.js +13 -11
  33. package/dist/module/CurrencyCrossTableWidget/Main.js.map +1 -1
  34. package/dist/module/CurrencyCrossTableWidget/ValidationWrapper.js +2 -1
  35. package/dist/module/CurrencyCrossTableWidget/ValidationWrapper.js.map +1 -1
  36. package/dist/module/CurrencyCrossTableWidget/components/CellValidationWrapper.js +44 -0
  37. package/dist/module/CurrencyCrossTableWidget/components/CellValidationWrapper.js.map +1 -0
  38. package/dist/module/CurrencyCrossTableWidget/components/CellWithData.js +20 -12
  39. package/dist/module/CurrencyCrossTableWidget/components/CellWithData.js.map +1 -1
  40. package/dist/module/CurrencyCrossTableWidget/components/types.js.map +1 -1
  41. package/dist/module/CurrencyCrossTableWidget/render.js +6 -1
  42. package/dist/module/CurrencyCrossTableWidget/render.js.map +1 -1
  43. package/dist/module/CurrencyCrossTableWidget/types.js +0 -12
  44. package/dist/module/CurrencyCrossTableWidget/types.js.map +1 -1
  45. package/dist/module/CurrencyCrossTableWidget/utils.js +10 -29
  46. package/dist/module/CurrencyCrossTableWidget/utils.js.map +1 -1
  47. package/dist/module/gql/types/fragment-masking.js +15 -0
  48. package/dist/module/gql/types/fragment-masking.js.map +1 -0
  49. package/dist/module/gql/types/gql.js +8 -0
  50. package/dist/module/gql/types/gql.js.map +1 -0
  51. package/dist/module/gql/types/graphql.js +217 -0
  52. package/dist/module/gql/types/graphql.js.map +1 -0
  53. package/dist/module/gql/types/index.js +3 -0
  54. package/dist/module/gql/types/index.js.map +1 -0
  55. package/dist/module/gql/validateInstruments.js +10 -0
  56. package/dist/module/gql/validateInstruments.js.map +1 -0
  57. package/dist/types/CurrencyCrossTableWidget/CurrencyCrossTableWidget.d.ts +1 -1
  58. package/dist/types/CurrencyCrossTableWidget/Main.d.ts +1 -1
  59. package/dist/types/CurrencyCrossTableWidget/components/CellValidationWrapper.d.ts +4 -0
  60. package/dist/types/CurrencyCrossTableWidget/components/CellWithData.d.ts +1 -1
  61. package/dist/types/CurrencyCrossTableWidget/components/types.d.ts +15 -1
  62. package/dist/types/CurrencyCrossTableWidget/types.d.ts +3 -11
  63. package/dist/types/CurrencyCrossTableWidget/utils.d.ts +5 -6
  64. package/dist/types/gql/types/fragment-masking.d.ts +15 -0
  65. package/dist/types/gql/types/gql.d.ts +37 -0
  66. package/dist/types/gql/types/graphql.d.ts +384 -0
  67. package/dist/types/gql/types/index.d.ts +2 -0
  68. package/dist/types/gql/validateInstruments.d.ts +1 -0
  69. package/package.json +12 -4
  70. package/src/CurrencyCrossTableWidget/CurrencyCrossTableWidget.tsx +16 -6
  71. package/src/CurrencyCrossTableWidget/Main.tsx +19 -13
  72. package/src/CurrencyCrossTableWidget/ValidationWrapper.tsx +1 -0
  73. package/src/CurrencyCrossTableWidget/components/CellValidationWrapper.tsx +51 -0
  74. package/src/CurrencyCrossTableWidget/components/CellWithData.tsx +30 -14
  75. package/src/CurrencyCrossTableWidget/components/types.ts +15 -1
  76. package/src/CurrencyCrossTableWidget/render.tsx +6 -2
  77. package/src/CurrencyCrossTableWidget/types.tsx +3 -12
  78. package/src/CurrencyCrossTableWidget/utils.ts +17 -37
  79. package/src/gql/types/fragment-masking.ts +66 -0
  80. package/src/gql/types/gql.ts +42 -0
  81. package/src/gql/types/graphql.ts +423 -0
  82. package/src/gql/types/index.ts +2 -0
  83. package/src/gql/validateInstruments.ts +10 -0
  84. package/test/Main.test.tsx +12 -6
  85. package/test/mocks.ts +225 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,38 @@
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.7 (2024-09-02)
7
+
8
+
9
+
10
+ ## 1.0.155 (2024-08-29)
11
+
12
+
13
+
14
+ ## 1.0.154 (2024-08-29)
15
+
16
+
17
+
18
+ ## 1.0.153 (2024-08-23)
19
+
20
+
21
+
22
+ ## 1.0.152 (2024-08-23)
23
+
24
+
25
+
26
+ ## 1.0.151 (2024-08-20)
27
+
28
+
29
+
30
+ ## 1.0.150 (2024-08-19)
31
+
32
+ **Note:** Version bump only for package @oanda/labs-currency-cross-table
33
+
34
+
35
+
36
+
37
+
6
38
  ## 1.0.6 (2024-08-29)
7
39
 
8
40
 
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;
@@ -5,14 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.CurrencyCrossTableWidget = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
+ var _client = require("@apollo/client");
8
9
  var _monoI18n = require("@oanda/mono-i18n");
9
10
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
10
11
  var _translations = require("../translations");
11
- var _types = require("./types");
12
12
  var _ValidationWrapper = require("./ValidationWrapper");
13
+ var _graphql = require("../gql/types/graphql");
13
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
15
  const CurrencyCrossTableWidget = _ref => {
15
16
  let {
17
+ graphqlUrl,
16
18
  liveRatesUrl,
17
19
  currencies,
18
20
  division,
@@ -21,8 +23,12 @@ const CurrencyCrossTableWidget = _ref => {
21
23
  isParamError,
22
24
  removePadding
23
25
  } = _ref;
24
- const divisionCode = division === _types.Division.Opt ? _types.Division.Ogm : division;
25
- const dataSource = divisionCode === _types.Division.Ogm ? 'MT5' : 'V20';
26
+ const client = new _client.ApolloClient({
27
+ uri: graphqlUrl,
28
+ cache: new _client.InMemoryCache()
29
+ });
30
+ const divisionCode = division === _graphql.Division.Opt ? _graphql.Division.Ogm : division;
31
+ const dataSource = divisionCode === _graphql.Division.Ogm ? 'MT5' : 'V20';
26
32
  return _react.default.createElement(_labsWidgetCommon.ThemeProvider, {
27
33
  removePadding: removePadding,
28
34
  theme: theme
@@ -35,11 +41,13 @@ const CurrencyCrossTableWidget = _ref => {
35
41
  divisionCode,
36
42
  dataSource
37
43
  }
44
+ }, _react.default.createElement(_client.ApolloProvider, {
45
+ client: client
38
46
  }, _react.default.createElement(_ValidationWrapper.ValidationWrapper, {
39
47
  currencies: currencies,
40
48
  division: division,
41
49
  isParamError: isParamError
42
- }))));
50
+ })))));
43
51
  };
44
52
  exports.CurrencyCrossTableWidget = CurrencyCrossTableWidget;
45
53
  //# sourceMappingURL=CurrencyCrossTableWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CurrencyCrossTableWidget.js","names":["_react","_interopRequireDefault","require","_monoI18n","_labsWidgetCommon","_translations","_types","_ValidationWrapper","e","__esModule","default","CurrencyCrossTableWidget","_ref","liveRatesUrl","currencies","division","locale","theme","isParamError","removePadding","divisionCode","Division","Opt","Ogm","dataSource","createElement","ThemeProvider","LocaleProvider","getLocale","translations","LiveRatesProvider","url","options","ValidationWrapper","exports"],"sources":["../../../src/CurrencyCrossTableWidget/CurrencyCrossTableWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport {\n LiveRatesProvider, ThemeProvider, getLocale,\n} from '@oanda/labs-widget-common';\nimport { translations } from '../translations';\nimport { Division, CurrencyCrossTableConfig } from './types';\nimport { ValidationWrapper } from './ValidationWrapper';\n\nconst CurrencyCrossTableWidget = ({\n liveRatesUrl,\n currencies,\n division,\n locale,\n theme,\n isParamError,\n removePadding,\n}: CurrencyCrossTableConfig) => {\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 <ValidationWrapper\n currencies={currencies}\n division={division}\n isParamError={isParamError}\n />\n </LiveRatesProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { CurrencyCrossTableWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AAGA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AAAwD,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExD,MAAMG,wBAAwB,GAAGC,IAAA,IAQD;EAAA,IARE;IAChCC,YAAY;IACZC,UAAU;IACVC,QAAQ;IACRC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC;EACwB,CAAC,GAAAP,IAAA;EACzB,MAAMQ,YAAY,GAAGL,QAAQ,KAAKM,eAAQ,CAACC,GAAG,GAAGD,eAAQ,CAACE,GAAG,GAAGR,QAAQ;EACxE,MAAMS,UAAU,GAAGJ,YAAY,KAAKC,eAAQ,CAACE,GAAG,GAAG,KAAK,GAAG,KAAK;EAEhE,OACEvB,MAAA,CAAAU,OAAA,CAAAe,aAAA,CAACrB,iBAAA,CAAAsB,aAAa;IAACP,aAAa,EAAEA,aAAc;IAACF,KAAK,EAAEA;EAAM,GACxDjB,MAAA,CAAAU,OAAA,CAAAe,aAAA,CAACtB,SAAA,CAAAwB,cAAc;IAACX,MAAM,EAAE,IAAAY,2BAAS,EAACZ,MAAM,CAAE;IAACa,YAAY,EAAEA;EAAa,GACpE7B,MAAA,CAAAU,OAAA,CAAAe,aAAA,CAACrB,iBAAA,CAAA0B,iBAAiB;IAChBC,GAAG,EAAElB,YAAa;IAClBmB,OAAO,EAAE;MAAEZ,YAAY;MAAEI;IAAW;EAAE,GAEtCxB,MAAA,CAAAU,OAAA,CAAAe,aAAA,CAAClB,kBAAA,CAAA0B,iBAAiB;IAChBnB,UAAU,EAAEA,UAAW;IACvBC,QAAQ,EAAEA,QAAS;IACnBG,YAAY,EAAEA;EAAa,CAC5B,CACgB,CACL,CACH,CAAC;AAEpB,CAAC;AAACgB,OAAA,CAAAvB,wBAAA,GAAAA,wBAAA","ignoreList":[]}
1
+ {"version":3,"file":"CurrencyCrossTableWidget.js","names":["_react","_interopRequireDefault","require","_client","_monoI18n","_labsWidgetCommon","_translations","_ValidationWrapper","_graphql","e","__esModule","default","CurrencyCrossTableWidget","_ref","graphqlUrl","liveRatesUrl","currencies","division","locale","theme","isParamError","removePadding","client","ApolloClient","uri","cache","InMemoryCache","divisionCode","Division","Opt","Ogm","dataSource","createElement","ThemeProvider","LocaleProvider","getLocale","translations","LiveRatesProvider","url","options","ApolloProvider","ValidationWrapper","exports"],"sources":["../../../src/CurrencyCrossTableWidget/CurrencyCrossTableWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport {\n LiveRatesProvider, ThemeProvider, getLocale,\n} from '@oanda/labs-widget-common';\nimport { translations } from '../translations';\nimport { CurrencyCrossTableConfig } from './types';\nimport { ValidationWrapper } from './ValidationWrapper';\nimport { Division } from '../gql/types/graphql';\n\nconst CurrencyCrossTableWidget = ({\n graphqlUrl,\n liveRatesUrl,\n currencies,\n division,\n locale,\n theme,\n isParamError,\n removePadding,\n}: CurrencyCrossTableConfig) => {\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 <ValidationWrapper\n currencies={currencies}\n division={division}\n isParamError={isParamError}\n />\n </ApolloProvider>\n </LiveRatesProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { CurrencyCrossTableWidget };\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;AAEA,IAAAK,kBAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAAgD,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEhD,MAAMG,wBAAwB,GAAGC,IAAA,IASD;EAAA,IATE;IAChCC,UAAU;IACVC,YAAY;IACZC,UAAU;IACVC,QAAQ;IACRC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC;EACwB,CAAC,GAAAR,IAAA;EACzB,MAAMS,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAEV,UAAU;IACfW,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMC,YAAY,GAAGV,QAAQ,KAAKW,iBAAQ,CAACC,GAAG,GAAGD,iBAAQ,CAACE,GAAG,GAAGb,QAAQ;EACxE,MAAMc,UAAU,GAAGJ,YAAY,KAAKC,iBAAQ,CAACE,GAAG,GAAG,KAAK,GAAG,KAAK;EAEhE,OACE9B,MAAA,CAAAW,OAAA,CAAAqB,aAAA,CAAC3B,iBAAA,CAAA4B,aAAa;IAACZ,aAAa,EAAEA,aAAc;IAACF,KAAK,EAAEA;EAAM,GACxDnB,MAAA,CAAAW,OAAA,CAAAqB,aAAA,CAAC5B,SAAA,CAAA8B,cAAc;IAAChB,MAAM,EAAE,IAAAiB,2BAAS,EAACjB,MAAM,CAAE;IAACkB,YAAY,EAAEA;EAAa,GACpEpC,MAAA,CAAAW,OAAA,CAAAqB,aAAA,CAAC3B,iBAAA,CAAAgC,iBAAiB;IAChBC,GAAG,EAAEvB,YAAa;IAClBwB,OAAO,EAAE;MAAEZ,YAAY;MAAEI;IAAW;EAAE,GAEtC/B,MAAA,CAAAW,OAAA,CAAAqB,aAAA,CAAC7B,OAAA,CAAAqC,cAAc;IAAClB,MAAM,EAAEA;EAAO,GAC7BtB,MAAA,CAAAW,OAAA,CAAAqB,aAAA,CAACzB,kBAAA,CAAAkC,iBAAiB;IAChBzB,UAAU,EAAEA,UAAW;IACvBC,QAAQ,EAAEA,QAAS;IACnBG,YAAY,EAAEA;EAAa,CAC5B,CACa,CACC,CACL,CACH,CAAC;AAEpB,CAAC;AAACsB,OAAA,CAAA9B,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -7,12 +7,15 @@ exports.Main = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
9
9
  var _components = require("./components");
10
+ var _CellValidationWrapper = require("./components/CellValidationWrapper");
11
+ var _utils = require("./utils");
10
12
  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); }
11
13
  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; }
12
14
  const Main = _ref => {
13
15
  let {
14
16
  instruments,
15
- currencies
17
+ currencies,
18
+ division
16
19
  } = _ref;
17
20
  const [selectedCurrency, setSelectedCurrency] = (0, _react.useState)('');
18
21
  const [selectedPair, setSelectedPair] = (0, _react.useState)('');
@@ -46,17 +49,16 @@ const Main = _ref => {
46
49
  hovered: currency === selectedCurrency
47
50
  }), arr.map(pair => _react.default.createElement(_react.Fragment, {
48
51
  key: `${currency}_${pair}`
49
- }, currency !== pair ? _react.default.createElement(_components.CellWithData, {
50
- loading: false,
51
- record: {
52
- instrument: `${currency}_${pair}`,
53
- displayName: `${currency}/${pair}`
54
- },
52
+ }, currency !== pair ? _react.default.createElement(_react.Suspense, null, _react.default.createElement(_CellValidationWrapper.CellValidationWrapper, {
53
+ currency: currency,
54
+ pair: pair,
55
+ instrument: `${currency}${(0, _utils.divisionMapper)(division)}${pair}`,
55
56
  target: target,
56
57
  additionalBorderBottom: index === arr.length - 1,
57
58
  setSelectedCurrency: setSelectedCurrency,
58
- setSelectedPair: setSelectedPair
59
- }) : _react.default.createElement(_components.TextCell, {
59
+ setSelectedPair: setSelectedPair,
60
+ division: division
61
+ })) : _react.default.createElement(_components.TextCell, {
60
62
  additionalBorderBottom: index === arr.length - 1,
61
63
  emptyIndicator: true
62
64
  }))))));
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_components","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Main","_ref","instruments","currencies","selectedCurrency","setSelectedCurrency","useState","selectedPair","setSelectedPair","hasInstruments","length","target","setQuery","useLiveRatesQuery","useEffect","createElement","className","TextCell","map","pair","key","label","hovered","currency","index","arr","additionalBorderBottom","Fragment","CellWithData","loading","record","instrument","displayName","emptyIndicator","exports"],"sources":["../../../src/CurrencyCrossTableWidget/Main.tsx"],"sourcesContent":["import React, { Fragment, useEffect, useState } from 'react';\nimport { useLiveRatesQuery } from '@oanda/labs-widget-common';\nimport { MainProps } from './types';\nimport { CellWithData, TextCell } from './components';\n\nconst Main = ({\n instruments,\n currencies,\n}: MainProps) => {\n const [selectedCurrency, setSelectedCurrency] = useState('');\n const [selectedPair, setSelectedPair] = useState('');\n\n const hasInstruments = instruments.length > 0;\n\n const { target, setQuery } = useLiveRatesQuery();\n\n useEffect(() => {\n if (hasInstruments) {\n setQuery({ instruments });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, instruments);\n\n return (\n <div data-testid=\"currency-cross-table-wrapper\" className=\"lw-w-full\">\n <div className=\"lw-flex lw-border-l lw-border-t lw-border-solid lw-border-border-primary\">\n <TextCell />\n {currencies.map(((pair) => (\n <TextCell\n key={pair}\n label={pair}\n hovered={pair === selectedPair}\n />\n )))}\n </div>\n {currencies.map(((currency, index, arr) => (\n <div\n key={currency}\n className=\"lw-flex lw-border-l lw-border-t lw-border-solid lw-border-border-primary\"\n >\n <TextCell\n label={currency}\n additionalBorderBottom={index === arr.length - 1}\n hovered={currency === selectedCurrency}\n />\n {arr.map((pair) => (\n <Fragment key={`${currency}_${pair}`}>\n {currency !== pair ? (\n <CellWithData\n loading={false}\n record={{\n instrument: `${currency}_${pair}`,\n displayName: `${currency}/${pair}`,\n }}\n target={target}\n additionalBorderBottom={index === arr.length - 1}\n setSelectedCurrency={setSelectedCurrency}\n setSelectedPair={setSelectedPair}\n />\n ) : (\n <TextCell\n additionalBorderBottom={index === arr.length - 1}\n emptyIndicator\n />\n )}\n </Fragment>\n ))}\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","_labsWidgetCommon","_components","_CellValidationWrapper","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Main","_ref","instruments","currencies","division","selectedCurrency","setSelectedCurrency","useState","selectedPair","setSelectedPair","hasInstruments","length","target","setQuery","useLiveRatesQuery","useEffect","createElement","className","TextCell","map","pair","key","label","hovered","currency","index","arr","additionalBorderBottom","Fragment","Suspense","CellValidationWrapper","instrument","divisionMapper","emptyIndicator","exports"],"sources":["../../../src/CurrencyCrossTableWidget/Main.tsx"],"sourcesContent":["import React, {\n Fragment, Suspense, useEffect, useState,\n} from 'react';\nimport { useLiveRatesQuery } from '@oanda/labs-widget-common';\nimport { MainProps } from './types';\nimport { TextCell } from './components';\nimport { CellValidationWrapper } from './components/CellValidationWrapper';\nimport { divisionMapper } from './utils';\n\nconst Main = ({\n instruments,\n currencies,\n division,\n}: MainProps) => {\n const [selectedCurrency, setSelectedCurrency] = useState('');\n const [selectedPair, setSelectedPair] = useState('');\n\n const hasInstruments = instruments.length > 0;\n\n const { target, setQuery } = useLiveRatesQuery();\n\n useEffect(() => {\n if (hasInstruments) {\n setQuery({ instruments });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, instruments);\n\n return (\n <div data-testid=\"currency-cross-table-wrapper\" className=\"lw-w-full\">\n <div className=\"lw-flex lw-border-l lw-border-t lw-border-solid lw-border-border-primary\">\n <TextCell />\n {currencies.map(((pair) => (\n <TextCell\n key={pair}\n label={pair}\n hovered={pair === selectedPair}\n />\n )))}\n </div>\n {currencies.map(((currency, index, arr) => (\n <div\n key={currency}\n className=\"lw-flex lw-border-l lw-border-t lw-border-solid lw-border-border-primary\"\n >\n <TextCell\n label={currency}\n additionalBorderBottom={index === arr.length - 1}\n hovered={currency === selectedCurrency}\n />\n {arr.map((pair) => (\n <Fragment key={`${currency}_${pair}`}>\n {currency !== pair ? (\n <Suspense>\n <CellValidationWrapper\n currency={currency}\n pair={pair}\n instrument={`${currency}${divisionMapper(division)}${pair}`}\n target={target}\n additionalBorderBottom={index === arr.length - 1}\n setSelectedCurrency={setSelectedCurrency}\n setSelectedPair={setSelectedPair}\n division={division}\n />\n </Suspense>\n ) : (\n <TextCell\n additionalBorderBottom={index === arr.length - 1}\n emptyIndicator\n />\n )}\n </Fragment>\n ))}\n </div>\n )))}\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
@@ -21,7 +21,8 @@ const ValidationWrapper = _ref => {
21
21
  className: "lw-flex lw-w-full lw-text-sm lw-tracking-normal lw-text-text-primary"
22
22
  }, !showError && _react.default.createElement(_Main.Main, {
23
23
  instruments: (0, _utils.currenciesToInstruments)(currencies, division),
24
- currencies: currencies
24
+ currencies: currencies,
25
+ division: division
25
26
  }), showError && _react.default.createElement("div", {
26
27
  className: (0, _classnames.default)('lw-flex lw-h-[250px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary')
27
28
  }, _react.default.createElement(_labsWidgetCommon.ChartError, null))));
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationWrapper.js","names":["_react","_interopRequireDefault","require","_classnames","_labsWidgetCommon","_utils","_Main","e","__esModule","default","ValidationWrapper","_ref","currencies","division","isParamError","showError","validCurrencies","createElement","Fragment","className","Main","instruments","currenciesToInstruments","classnames","ChartError","exports"],"sources":["../../../src/CurrencyCrossTableWidget/ValidationWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { ChartError } from '@oanda/labs-widget-common';\nimport { currenciesToInstruments, validCurrencies } from './utils';\nimport { ValidationWrapperProps } from './types';\nimport { Main } from './Main';\n\nconst ValidationWrapper = ({\n currencies,\n division,\n isParamError,\n}: ValidationWrapperProps) => {\n const showError = !validCurrencies(currencies) || isParamError;\n\n return (\n <>\n <div\n className=\"lw-flex lw-w-full lw-text-sm lw-tracking-normal lw-text-text-primary\"\n >\n {!showError && (\n <Main\n instruments={currenciesToInstruments(currencies, division)}\n currencies={currencies}\n />\n )}\n {showError && (\n <div className={classnames('lw-flex lw-h-[250px] 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};\n\nexport { ValidationWrapper };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAJ,OAAA;AAA8B,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9B,MAAMG,iBAAiB,GAAGC,IAAA,IAII;EAAA,IAJH;IACzBC,UAAU;IACVC,QAAQ;IACRC;EACsB,CAAC,GAAAH,IAAA;EACvB,MAAMI,SAAS,GAAG,CAAC,IAAAC,sBAAe,EAACJ,UAAU,CAAC,IAAIE,YAAY;EAE9D,OACEd,MAAA,CAAAS,OAAA,CAAAQ,aAAA,CAAAjB,MAAA,CAAAS,OAAA,CAAAS,QAAA,QACElB,MAAA,CAAAS,OAAA,CAAAQ,aAAA;IACEE,SAAS,EAAC;EAAsE,GAE/E,CAACJ,SAAS,IACTf,MAAA,CAAAS,OAAA,CAAAQ,aAAA,CAACX,KAAA,CAAAc,IAAI;IACHC,WAAW,EAAE,IAAAC,8BAAuB,EAACV,UAAU,EAAEC,QAAQ,CAAE;IAC3DD,UAAU,EAAEA;EAAW,CACxB,CACF,EACAG,SAAS,IACRf,MAAA,CAAAS,OAAA,CAAAQ,aAAA;IAAKE,SAAS,EAAE,IAAAI,mBAAU,EAAC,mGAAmG;EAAE,GAC9HvB,MAAA,CAAAS,OAAA,CAAAQ,aAAA,CAACb,iBAAA,CAAAoB,UAAU,MAAE,CACV,CAEJ,CACL,CAAC;AAEP,CAAC;AAACC,OAAA,CAAAf,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"file":"ValidationWrapper.js","names":["_react","_interopRequireDefault","require","_classnames","_labsWidgetCommon","_utils","_Main","e","__esModule","default","ValidationWrapper","_ref","currencies","division","isParamError","showError","validCurrencies","createElement","Fragment","className","Main","instruments","currenciesToInstruments","classnames","ChartError","exports"],"sources":["../../../src/CurrencyCrossTableWidget/ValidationWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { ChartError } from '@oanda/labs-widget-common';\nimport { currenciesToInstruments, validCurrencies } from './utils';\nimport { ValidationWrapperProps } from './types';\nimport { Main } from './Main';\n\nconst ValidationWrapper = ({\n currencies,\n division,\n isParamError,\n}: ValidationWrapperProps) => {\n const showError = !validCurrencies(currencies) || isParamError;\n\n return (\n <>\n <div\n className=\"lw-flex lw-w-full lw-text-sm lw-tracking-normal lw-text-text-primary\"\n >\n {!showError && (\n <Main\n instruments={currenciesToInstruments(currencies, division)}\n currencies={currencies}\n division={division}\n />\n )}\n {showError && (\n <div className={classnames('lw-flex lw-h-[250px] 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};\n\nexport { ValidationWrapper };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAJ,OAAA;AAA8B,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9B,MAAMG,iBAAiB,GAAGC,IAAA,IAII;EAAA,IAJH;IACzBC,UAAU;IACVC,QAAQ;IACRC;EACsB,CAAC,GAAAH,IAAA;EACvB,MAAMI,SAAS,GAAG,CAAC,IAAAC,sBAAe,EAACJ,UAAU,CAAC,IAAIE,YAAY;EAE9D,OACEd,MAAA,CAAAS,OAAA,CAAAQ,aAAA,CAAAjB,MAAA,CAAAS,OAAA,CAAAS,QAAA,QACElB,MAAA,CAAAS,OAAA,CAAAQ,aAAA;IACEE,SAAS,EAAC;EAAsE,GAE/E,CAACJ,SAAS,IACTf,MAAA,CAAAS,OAAA,CAAAQ,aAAA,CAACX,KAAA,CAAAc,IAAI;IACHC,WAAW,EAAE,IAAAC,8BAAuB,EAACV,UAAU,EAAEC,QAAQ,CAAE;IAC3DD,UAAU,EAAEA,UAAW;IACvBC,QAAQ,EAAEA;EAAS,CACpB,CACF,EACAE,SAAS,IACRf,MAAA,CAAAS,OAAA,CAAAQ,aAAA;IAAKE,SAAS,EAAE,IAAAI,mBAAU,EAAC,mGAAmG;EAAE,GAC9HvB,MAAA,CAAAS,OAAA,CAAAQ,aAAA,CAACb,iBAAA,CAAAoB,UAAU,MAAE,CACV,CAEJ,CACL,CAAC;AAEP,CAAC;AAACC,OAAA,CAAAf,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CellValidationWrapper = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _client = require("@apollo/client");
9
+ var _validateInstruments = require("../../gql/validateInstruments");
10
+ var _CellWithData = require("./CellWithData");
11
+ var _utils = require("../utils");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const CellValidationWrapper = _ref => {
14
+ let {
15
+ currency,
16
+ pair,
17
+ instrument,
18
+ target,
19
+ additionalBorderBottom,
20
+ setSelectedCurrency,
21
+ setSelectedPair,
22
+ division
23
+ } = _ref;
24
+ const {
25
+ error
26
+ } = (0, _client.useSuspenseQuery)(_validateInstruments.validateInstruments, {
27
+ variables: {
28
+ instruments: [instrument],
29
+ division
30
+ },
31
+ fetchPolicy: 'network-only',
32
+ errorPolicy: 'all'
33
+ });
34
+ const instrumentForCalculations = error ? `${pair}${(0, _utils.divisionMapper)(division)}${currency}` : '';
35
+ return _react.default.createElement(_CellWithData.CellWithData, {
36
+ currency: currency,
37
+ pair: pair,
38
+ record: {
39
+ instrument,
40
+ displayName: `${currency}${(0, _utils.divisionMapper)(division)}${pair}`
41
+ },
42
+ instrumentForCalculations: instrumentForCalculations,
43
+ target: target,
44
+ additionalBorderBottom: additionalBorderBottom,
45
+ setSelectedCurrency: setSelectedCurrency,
46
+ setSelectedPair: setSelectedPair,
47
+ division: division
48
+ });
49
+ };
50
+ exports.CellValidationWrapper = CellValidationWrapper;
51
+ //# sourceMappingURL=CellValidationWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CellValidationWrapper.js","names":["_react","_interopRequireDefault","require","_client","_validateInstruments","_CellWithData","_utils","e","__esModule","default","CellValidationWrapper","_ref","currency","pair","instrument","target","additionalBorderBottom","setSelectedCurrency","setSelectedPair","division","error","useSuspenseQuery","validateInstruments","variables","instruments","fetchPolicy","errorPolicy","instrumentForCalculations","divisionMapper","createElement","CellWithData","record","displayName","exports"],"sources":["../../../../src/CurrencyCrossTableWidget/components/CellValidationWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { useSuspenseQuery } from '@apollo/client';\nimport { CellValidationWrapperProps } from './types';\nimport { ValidateInstrumentsQuery, ValidateInstrumentsQueryVariables } from '../../gql/types/graphql';\nimport { validateInstruments } from '../../gql/validateInstruments';\nimport { CellWithData } from './CellWithData';\nimport { divisionMapper } from '../utils';\n\nconst CellValidationWrapper = ({\n currency,\n pair,\n instrument,\n target,\n additionalBorderBottom,\n setSelectedCurrency,\n setSelectedPair,\n division,\n}: CellValidationWrapperProps) => {\n const { error } = useSuspenseQuery<\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables\n >(validateInstruments, {\n variables: {\n instruments: [instrument],\n division,\n },\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n });\n\n const instrumentForCalculations = error ? `${pair}${divisionMapper(division)}${currency}` : '';\n\n return (\n <CellWithData\n currency={currency}\n pair={pair}\n record={{\n instrument,\n displayName: `${currency}${divisionMapper(division)}${pair}`,\n }}\n instrumentForCalculations={instrumentForCalculations}\n target={target}\n additionalBorderBottom={additionalBorderBottom}\n setSelectedCurrency={setSelectedCurrency}\n setSelectedPair={setSelectedPair}\n division={division}\n />\n );\n};\n\nexport { CellValidationWrapper };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAA0C,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1C,MAAMG,qBAAqB,GAAGC,IAAA,IASI;EAAA,IATH;IAC7BC,QAAQ;IACRC,IAAI;IACJC,UAAU;IACVC,MAAM;IACNC,sBAAsB;IACtBC,mBAAmB;IACnBC,eAAe;IACfC;EAC0B,CAAC,GAAAR,IAAA;EAC3B,MAAM;IAAES;EAAM,CAAC,GAAG,IAAAC,wBAAgB,EAGhCC,wCAAmB,EAAE;IACrBC,SAAS,EAAE;MACTC,WAAW,EAAE,CAACV,UAAU,CAAC;MACzBK;IACF,CAAC;IACDM,WAAW,EAAE,cAAc;IAC3BC,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,yBAAyB,GAAGP,KAAK,GAAG,GAAGP,IAAI,GAAG,IAAAe,qBAAc,EAACT,QAAQ,CAAC,GAAGP,QAAQ,EAAE,GAAG,EAAE;EAE9F,OACEZ,MAAA,CAAAS,OAAA,CAAAoB,aAAA,CAACxB,aAAA,CAAAyB,YAAY;IACXlB,QAAQ,EAAEA,QAAS;IACnBC,IAAI,EAAEA,IAAK;IACXkB,MAAM,EAAE;MACNjB,UAAU;MACVkB,WAAW,EAAE,GAAGpB,QAAQ,GAAG,IAAAgB,qBAAc,EAACT,QAAQ,CAAC,GAAGN,IAAI;IAC5D,CAAE;IACFc,yBAAyB,EAAEA,yBAA0B;IACrDZ,MAAM,EAAEA,MAAO;IACfC,sBAAsB,EAAEA,sBAAuB;IAC/CC,mBAAmB,EAAEA,mBAAoB;IACzCC,eAAe,EAAEA,eAAgB;IACjCC,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC;AAACc,OAAA,CAAAvB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -6,29 +6,37 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.CellWithData = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
9
- var _utils = require("../utils");
10
9
  var _Cell = require("./Cell");
10
+ var _utils = require("../utils");
11
11
  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); }
12
12
  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; }
13
13
  const CellWithData = _ref => {
14
14
  let {
15
- loading,
15
+ currency,
16
+ pair,
16
17
  record,
18
+ instrumentForCalculations,
17
19
  target,
18
20
  additionalBorderBottom,
19
21
  setSelectedCurrency,
20
22
  setSelectedPair
21
23
  } = _ref;
22
24
  const [hovered, setHovered] = (0, _react.useState)(false);
25
+ const instrumentForUpdates = instrumentForCalculations || record.instrument;
23
26
  const {
24
- updatedRecord,
25
- error
26
- } = (0, _utils.useRecords)(record, record.instrument ? target : null);
27
- const checkLoading = id => loading || !error && updatedRecord?.[id] === undefined;
27
+ update,
28
+ error: liveRatesError
29
+ } = (0, _labsWidgetCommon.useLiveRatesMessage)(instrumentForUpdates, target);
30
+ const updatedRecord = {
31
+ displayName: record.displayName,
32
+ instrument: record.instrument,
33
+ buy: update?.ask,
34
+ buyPriceMovement: update?.askPriceMovement,
35
+ displayPrecision: update?.displayPrecision
36
+ };
37
+ const checkLoading = id => !liveRatesError && updatedRecord?.[id] === undefined;
28
38
  const handleMouseEnter = () => {
29
39
  setHovered(true);
30
- const currency = record.instrument.substring(0, 3);
31
- const pair = record.instrument.substring(record.instrument.length - 3);
32
40
  setSelectedCurrency(currency);
33
41
  setSelectedPair(pair);
34
42
  };
@@ -39,15 +47,15 @@ const CellWithData = _ref => {
39
47
  };
40
48
  return _react.default.createElement(_Cell.Cell, {
41
49
  isLoading: checkLoading('buy'),
42
- isError: !!error,
50
+ isError: !!liveRatesError,
43
51
  additionalBorderBottom: additionalBorderBottom,
44
52
  hovered: hovered,
45
53
  mouseEnterHandler: handleMouseEnter,
46
54
  mouseLeaveHandler: handleMouseLeave
47
55
  }, _react.default.createElement(_labsWidgetCommon.Price, {
48
- priceMovement: updatedRecord.buyPriceMovement,
56
+ priceMovement: (0, _utils.getPriceMovement)(updatedRecord.buyPriceMovement, !!instrumentForCalculations),
49
57
  movementIndicator: "background"
50
- }, _react.default.createElement("span", null, updatedRecord.buy?.toFixed(updatedRecord.displayPrecision))));
58
+ }, _react.default.createElement("span", null, (0, _utils.getBuyPrice)(updatedRecord.buy, !!instrumentForCalculations).toFixed(updatedRecord.displayPrecision))));
51
59
  };
52
60
  exports.CellWithData = CellWithData;
53
61
  //# sourceMappingURL=CellWithData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CellWithData.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_utils","_Cell","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CellWithData","_ref","loading","record","target","additionalBorderBottom","setSelectedCurrency","setSelectedPair","hovered","setHovered","useState","updatedRecord","error","useRecords","instrument","checkLoading","id","undefined","handleMouseEnter","currency","substring","pair","length","handleMouseLeave","createElement","Cell","isLoading","isError","mouseEnterHandler","mouseLeaveHandler","Price","priceMovement","buyPriceMovement","movementIndicator","buy","toFixed","displayPrecision","exports"],"sources":["../../../../src/CurrencyCrossTableWidget/components/CellWithData.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Price } from '@oanda/labs-widget-common';\nimport { useRecords } from '../utils';\nimport { CellWithDataProps } from './types';\nimport { Cell } from './Cell';\n\nconst CellWithData = ({\n loading,\n record,\n target,\n additionalBorderBottom,\n setSelectedCurrency,\n setSelectedPair,\n}: CellWithDataProps) => {\n const [hovered, setHovered] = useState(false);\n const { updatedRecord, error } = useRecords(record, record.instrument ? target : null);\n\n const checkLoading = (id: string) => loading || (!error && updatedRecord?.[id] === undefined);\n\n const handleMouseEnter = () => {\n setHovered(true);\n\n const currency = record.instrument.substring(0, 3);\n const pair = record.instrument.substring(record.instrument.length - 3);\n\n setSelectedCurrency(currency);\n setSelectedPair(pair);\n };\n\n const handleMouseLeave = () => {\n setHovered(false);\n\n setSelectedCurrency('');\n setSelectedPair('');\n };\n\n return (\n <Cell\n isLoading={checkLoading('buy')}\n isError={!!error}\n additionalBorderBottom={additionalBorderBottom}\n hovered={hovered}\n mouseEnterHandler={handleMouseEnter}\n mouseLeaveHandler={handleMouseLeave}\n >\n <Price priceMovement={updatedRecord.buyPriceMovement} movementIndicator=\"background\">\n <span>{updatedRecord.buy?.toFixed(updatedRecord.displayPrecision)}</span>\n </Price>\n </Cell>\n );\n};\n\nexport { CellWithData };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CellWithData.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_Cell","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CellWithData","_ref","currency","pair","record","instrumentForCalculations","target","additionalBorderBottom","setSelectedCurrency","setSelectedPair","hovered","setHovered","useState","instrumentForUpdates","instrument","update","error","liveRatesError","useLiveRatesMessage","updatedRecord","displayName","buy","ask","buyPriceMovement","askPriceMovement","displayPrecision","checkLoading","id","undefined","handleMouseEnter","handleMouseLeave","createElement","Cell","isLoading","isError","mouseEnterHandler","mouseLeaveHandler","Price","priceMovement","getPriceMovement","movementIndicator","getBuyPrice","toFixed","exports"],"sources":["../../../../src/CurrencyCrossTableWidget/components/CellWithData.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Price, useLiveRatesMessage } from '@oanda/labs-widget-common';\nimport { Cell } from './Cell';\nimport { CellWithDataProps } from './types';\nimport { getBuyPrice, getPriceMovement } from '../utils';\n\nconst CellWithData = ({\n currency,\n pair,\n record,\n instrumentForCalculations,\n target,\n additionalBorderBottom,\n setSelectedCurrency,\n setSelectedPair,\n}: CellWithDataProps) => {\n const [hovered, setHovered] = useState(false);\n\n const instrumentForUpdates = instrumentForCalculations || record.instrument;\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n instrumentForUpdates,\n target,\n );\n\n const updatedRecord: Record<string, any> = {\n displayName: record.displayName,\n instrument: record.instrument,\n buy: update?.ask,\n buyPriceMovement: update?.askPriceMovement,\n displayPrecision: update?.displayPrecision,\n };\n\n const checkLoading = (id: string) => (!liveRatesError && updatedRecord?.[id] === undefined);\n\n const handleMouseEnter = () => {\n setHovered(true);\n setSelectedCurrency(currency);\n setSelectedPair(pair);\n };\n\n const handleMouseLeave = () => {\n setHovered(false);\n setSelectedCurrency('');\n setSelectedPair('');\n };\n\n return (\n <Cell\n isLoading={checkLoading('buy')}\n isError={!!liveRatesError}\n additionalBorderBottom={additionalBorderBottom}\n hovered={hovered}\n mouseEnterHandler={handleMouseEnter}\n mouseLeaveHandler={handleMouseLeave}\n >\n <Price priceMovement={getPriceMovement(updatedRecord.buyPriceMovement, !!instrumentForCalculations)} movementIndicator=\"background\">\n <span>\n {getBuyPrice(\n updatedRecord.buy,\n !!instrumentForCalculations,\n ).toFixed(updatedRecord.displayPrecision)}\n </span>\n </Price>\n </Cell>\n );\n};\n\nexport { CellWithData };\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/CurrencyCrossTableWidget/components/types.ts"],"sourcesContent":["import { DataRecord, LoaderSize } from '@oanda/labs-widget-common';\n\nexport interface CellWithDataProps {\n loading: boolean;\n record: DataRecord;\n target: EventTarget | null;\n additionalBorderBottom? : boolean;\n setSelectedCurrency: React.Dispatch<React.SetStateAction<string>>;\n setSelectedPair: React.Dispatch<React.SetStateAction<string>>;\n}\n\nexport interface CellProps {\n children: React.ReactNode;\n isLoading?: boolean;\n isError?: boolean;\n loaderSize?: LoaderSize;\n additionalBorderBottom? : boolean;\n hovered: boolean;\n mouseEnterHandler: () => void;\n mouseLeaveHandler: () => void;\n}\n\nexport interface TextCellProps {\n label?: string;\n emptyIndicator?: boolean;\n additionalBorderBottom? : boolean;\n hovered?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/CurrencyCrossTableWidget/components/types.ts"],"sourcesContent":["import { DataRecord, LoaderSize } from '@oanda/labs-widget-common';\nimport { Division } from '../../gql/types/graphql';\n\nexport interface CellValidationWrapperProps {\n currency: string;\n pair: string;\n instrument: string;\n target: EventTarget | null;\n additionalBorderBottom? : boolean;\n division: Division;\n setSelectedCurrency: React.Dispatch<React.SetStateAction<string>>;\n setSelectedPair: React.Dispatch<React.SetStateAction<string>>;\n}\nexport interface CellWithDataProps {\n currency: string;\n pair: string;\n instrumentForCalculations: string;\n record: DataRecord;\n target: EventTarget | null;\n additionalBorderBottom? : boolean;\n division: Division;\n setSelectedCurrency: React.Dispatch<React.SetStateAction<string>>;\n setSelectedPair: React.Dispatch<React.SetStateAction<string>>;\n}\n\nexport interface CellProps {\n children: React.ReactNode;\n isLoading?: boolean;\n isError?: boolean;\n loaderSize?: LoaderSize;\n additionalBorderBottom? : boolean;\n hovered: boolean;\n mouseEnterHandler: () => void;\n mouseLeaveHandler: () => void;\n}\n\nexport interface TextCellProps {\n label?: string;\n emptyIndicator?: boolean;\n additionalBorderBottom? : boolean;\n hovered?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
@@ -4,9 +4,10 @@ var _react = _interopRequireDefault(require("react"));
4
4
  var _client = require("react-dom/client");
5
5
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
6
6
  var _CurrencyCrossTableWidget = require("./CurrencyCrossTableWidget");
7
- var _types = require("./types");
7
+ var _graphql = require("../gql/types/graphql");
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
9
  const {
10
+ graphqlUrl,
10
11
  liveRatesUrl
11
12
  } = window.widgetsConfig || {};
12
13
  const currencyCrossTableElements = document.querySelectorAll('div[data-currency-cross-table-params]');
@@ -23,20 +24,24 @@ currencyCrossTableElements.forEach(element => {
23
24
  division,
24
25
  locale,
25
26
  currencies,
27
+ graphqlUrl,
26
28
  liveRatesUrl
27
29
  }, [{
28
30
  name: 'locale',
29
31
  valueCheck: value => (0, _labsWidgetCommon.validateLocale)(value)
30
32
  }, {
31
33
  name: 'division',
32
- valueCheck: value => Object.values(_types.Division).includes(value)
34
+ valueCheck: value => Object.values(_graphql.Division).includes(value)
33
35
  }, {
34
36
  name: 'currencies',
35
37
  valueCheck: value => value.length > 0 && value.length <= 8
38
+ }, {
39
+ name: 'graphqlUrl'
36
40
  }, {
37
41
  name: 'liveRatesUrl'
38
42
  }]);
39
43
  root.render(_react.default.createElement(_CurrencyCrossTableWidget.CurrencyCrossTableWidget, {
44
+ graphqlUrl: graphqlUrl,
40
45
  liveRatesUrl: liveRatesUrl,
41
46
  division: division,
42
47
  currencies: currencies,
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_CurrencyCrossTableWidget","_types","e","__esModule","default","liveRatesUrl","window","widgetsConfig","currencyCrossTableElements","document","querySelectorAll","forEach","element","root","createRoot","params","getAttribute","mode","currencies","division","locale","JSON","parse","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","length","render","createElement","CurrencyCrossTableWidget","theme"],"sources":["../../../src/CurrencyCrossTableWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { CurrencyCrossTableWidget } from './CurrencyCrossTableWidget';\nimport { Division } from './types';\n\nconst {\n liveRatesUrl,\n} = window.widgetsConfig || {};\n\nconst currencyCrossTableElements = document.querySelectorAll('div[data-currency-cross-table-params]');\n\ncurrencyCrossTableElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-currency-cross-table-params');\n const mode = element.getAttribute('data-mode');\n const {\n currencies, division, locale,\n } = JSON.parse(params as string);\n\n const isParamError = validateToolParams({\n division, locale, currencies, liveRatesUrl,\n }, [{\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, {\n name: 'currencies',\n valueCheck: (value) => (value as string[]).length > 0 && (value as string[]).length <= 8,\n }, {\n name: 'liveRatesUrl',\n }]);\n\n root.render(\n <CurrencyCrossTableWidget\n liveRatesUrl={liveRatesUrl}\n division={division}\n currencies={currencies}\n locale={locale}\n theme={mode as Theme}\n isParamError={isParamError}\n />,\n );\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,yBAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAAmC,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnC,MAAM;EACJG;AACF,CAAC,GAAGC,MAAM,CAACC,aAAa,IAAI,CAAC,CAAC;AAE9B,MAAMC,0BAA0B,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,uCAAuC,CAAC;AAErGF,0BAA0B,CAACG,OAAO,CAAEC,OAAO,IAAK;EAC9C,MAAMC,IAAI,GAAG,IAAAC,kBAAU,EAACF,OAAO,CAAC;EAChC,MAAMG,MAAM,GAAGH,OAAO,CAACI,YAAY,CAAC,kCAAkC,CAAC;EACvE,MAAMC,IAAI,GAAGL,OAAO,CAACI,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IACJE,UAAU;IAAEC,QAAQ;IAAEC;EACxB,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACP,MAAgB,CAAC;EAEhC,MAAMQ,YAAY,GAAG,IAAAC,oCAAkB,EAAC;IACtCL,QAAQ;IAAEC,MAAM;IAAEF,UAAU;IAAEb;EAChC,CAAC,EAAE,CAAC;IACFoB,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,eAAQ,CAAC,CAACC,QAAQ,CAACL,KAAK;EAC/D,CAAC,EAAE;IACDF,IAAI,EAAE,YAAY;IAClBC,UAAU,EAAGC,KAAK,IAAMA,KAAK,CAAcM,MAAM,GAAG,CAAC,IAAKN,KAAK,CAAcM,MAAM,IAAI;EACzF,CAAC,EAAE;IACDR,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EAEHZ,IAAI,CAACqB,MAAM,CACTvC,MAAA,CAAAS,OAAA,CAAA+B,aAAA,CAACnC,yBAAA,CAAAoC,wBAAwB;IACvB/B,YAAY,EAAEA,YAAa;IAC3Bc,QAAQ,EAAEA,QAAS;IACnBD,UAAU,EAAEA,UAAW;IACvBE,MAAM,EAAEA,MAAO;IACfiB,KAAK,EAAEpB,IAAc;IACrBM,YAAY,EAAEA;EAAa,CAC5B,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_CurrencyCrossTableWidget","_graphql","e","__esModule","default","graphqlUrl","liveRatesUrl","window","widgetsConfig","currencyCrossTableElements","document","querySelectorAll","forEach","element","root","createRoot","params","getAttribute","mode","currencies","division","locale","JSON","parse","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","length","render","createElement","CurrencyCrossTableWidget","theme"],"sources":["../../../src/CurrencyCrossTableWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { CurrencyCrossTableWidget } from './CurrencyCrossTableWidget';\nimport { Division } from '../gql/types/graphql';\n\nconst {\n graphqlUrl,\n liveRatesUrl,\n} = window.widgetsConfig || {};\n\nconst currencyCrossTableElements = document.querySelectorAll('div[data-currency-cross-table-params]');\n\ncurrencyCrossTableElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-currency-cross-table-params');\n const mode = element.getAttribute('data-mode');\n const {\n currencies, division, locale,\n } = JSON.parse(params as string);\n\n const isParamError = validateToolParams({\n division, locale, currencies, graphqlUrl, liveRatesUrl,\n }, [{\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, {\n name: 'currencies',\n valueCheck: (value) => (value as string[]).length > 0 && (value as string[]).length <= 8,\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'liveRatesUrl',\n }]);\n\n root.render(\n <CurrencyCrossTableWidget\n graphqlUrl={graphqlUrl}\n liveRatesUrl={liveRatesUrl}\n division={division}\n currencies={currencies}\n locale={locale}\n theme={mode as Theme}\n isParamError={isParamError}\n />,\n );\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,yBAAA,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,0BAA0B,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,uCAAuC,CAAC;AAErGF,0BAA0B,CAACG,OAAO,CAAEC,OAAO,IAAK;EAC9C,MAAMC,IAAI,GAAG,IAAAC,kBAAU,EAACF,OAAO,CAAC;EAChC,MAAMG,MAAM,GAAGH,OAAO,CAACI,YAAY,CAAC,kCAAkC,CAAC;EACvE,MAAMC,IAAI,GAAGL,OAAO,CAACI,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IACJE,UAAU;IAAEC,QAAQ;IAAEC;EACxB,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACP,MAAgB,CAAC;EAEhC,MAAMQ,YAAY,GAAG,IAAAC,oCAAkB,EAAC;IACtCL,QAAQ;IAAEC,MAAM;IAAEF,UAAU;IAAEd,UAAU;IAAEC;EAC5C,CAAC,EAAE,CAAC;IACFoB,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,YAAY;IAClBC,UAAU,EAAGC,KAAK,IAAMA,KAAK,CAAcM,MAAM,GAAG,CAAC,IAAKN,KAAK,CAAcM,MAAM,IAAI;EACzF,CAAC,EAAE;IACDR,IAAI,EAAE;EACR,CAAC,EAAE;IACDA,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EAEHZ,IAAI,CAACqB,MAAM,CACTxC,MAAA,CAAAS,OAAA,CAAAgC,aAAA,CAACpC,yBAAA,CAAAqC,wBAAwB;IACvBhC,UAAU,EAAEA,UAAW;IACvBC,YAAY,EAAEA,YAAa;IAC3Bc,QAAQ,EAAEA,QAAS;IACnBD,UAAU,EAAEA,UAAW;IACvBE,MAAM,EAAEA,MAAO;IACfiB,KAAK,EAAEpB,IAAc;IACrBM,YAAY,EAAEA;EAAa,CAC5B,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Division = void 0;
7
6
  Object.defineProperty(exports, "Locale", {
8
7
  enumerable: true,
9
8
  get: function () {
@@ -11,16 +10,4 @@ Object.defineProperty(exports, "Locale", {
11
10
  }
12
11
  });
13
12
  var _monoI18n = require("@oanda/mono-i18n");
14
- let Division = exports.Division = function (Division) {
15
- Division["Oap"] = "OAP";
16
- Division["Oau"] = "OAU";
17
- Division["Oc"] = "OC";
18
- Division["Ocan"] = "OCAN";
19
- Division["Oel"] = "OEL";
20
- Division["Ogm"] = "OGM";
21
- Division["Oj"] = "OJ";
22
- Division["Opt"] = "OPT";
23
- Division["Otms"] = "OTMS";
24
- return Division;
25
- }({});
26
13
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["_monoI18n","require","Division","exports"],"sources":["../../../src/CurrencyCrossTableWidget/types.tsx"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport { Theme } from '@oanda/labs-widget-common';\n\nexport { Locale } from '@oanda/mono-i18n';\n\nexport enum Division {\n Oap = 'OAP',\n Oau = 'OAU',\n Oc = 'OC',\n Ocan = 'OCAN',\n Oel = 'OEL',\n Ogm = 'OGM',\n Oj = 'OJ',\n Opt = 'OPT',\n Otms = 'OTMS',\n}\n\nexport interface CurrencyCrossTableConfig {\n division: Division;\n liveRatesUrl: string;\n currencies: string[];\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n removePadding?: boolean;\n}\n\nexport interface ValidationWrapperProps {\n currencies: string[];\n division: Division;\n isParamError?: boolean;\n}\nexport interface MainProps {\n currencies: string[];\n instruments: string[];\n}\n"],"mappings":";;;;;;;;;;;;AAGA,IAAAA,SAAA,GAAAC,OAAA;AAA0C,IAE9BC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,aAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":["_monoI18n","require"],"sources":["../../../src/CurrencyCrossTableWidget/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';\n\nexport interface CurrencyCrossTableConfig {\n division: Division;\n graphqlUrl: string;\n liveRatesUrl: string;\n currencies: string[];\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n removePadding?: boolean;\n}\n\nexport interface ValidationWrapperProps {\n currencies: string[];\n division: Division;\n isParamError?: boolean;\n}\nexport interface MainProps {\n currencies: string[];\n instruments: string[];\n division: Division;\n}\n"],"mappings":";;;;;;;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA","ignoreList":[]}
@@ -3,45 +3,28 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.validCurrencies = exports.useRecords = exports.currenciesToInstruments = void 0;
7
- var _react = require("react");
8
- var _labsWidgetCommon = require("@oanda/labs-widget-common");
6
+ exports.validCurrencies = exports.getPriceMovement = exports.getBuyPrice = exports.divisionMapper = exports.currenciesToInstruments = void 0;
9
7
  var _constant = require("./constant");
10
8
  const validCurrencies = currencies => currencies.every(currency => _constant.MAJOR_CURRENCIES.includes(currency));
11
9
  exports.validCurrencies = validCurrencies;
10
+ const divisionMapper = division => division === 'OGM' ? '' : '_';
11
+ exports.divisionMapper = divisionMapper;
12
12
  const currenciesToInstruments = (currencies, division) => {
13
- const divisionMapper = division === 'OGM' ? '' : '_';
14
13
  const pairs = currencies.reduce((acc, cV, index, array) => {
15
14
  const unique = array.filter((_item, idx) => index !== idx);
16
- return [...acc, ...unique.map(el => `${cV}${divisionMapper}${el}`)];
15
+ return [...acc, ...unique.map(el => `${cV}${divisionMapper(division)}${el}`)];
17
16
  }, []);
18
17
  return pairs;
19
18
  };
20
19
  exports.currenciesToInstruments = currenciesToInstruments;
21
- const useRecords = (record, target) => {
22
- const [updatedRecord, setUpdatedRecord] = (0, _react.useState)({
23
- displayName: record.displayName,
24
- instrument: record.instrument
25
- });
26
- const [error, setError] = (0, _react.useState)(null);
27
- const {
28
- update,
29
- error: liveRatesError
30
- } = (0, _labsWidgetCommon.useLiveRatesMessage)(record.instrument, target);
31
- (0, _react.useEffect)(() => {
32
- setUpdatedRecord({
33
- displayName: record.displayName,
34
- instrument: record.instrument,
35
- buy: update?.ask,
36
- buyPriceMovement: update?.askPriceMovement,
37
- displayPrecision: update?.displayPrecision
38
- });
39
- setError(liveRatesError);
40
- }, [update, record, liveRatesError]);
41
- return {
42
- updatedRecord,
43
- error
44
- };
20
+ const getPriceMovement = (priceMovement, isReversed) => {
21
+ if (priceMovement === undefined) return 0;
22
+ return isReversed ? priceMovement * -1 : priceMovement;
45
23
  };
46
- exports.useRecords = useRecords;
24
+ exports.getPriceMovement = getPriceMovement;
25
+ const getBuyPrice = (price, isReversed) => {
26
+ if (price === undefined) return 0;
27
+ return isReversed ? 1 / price : price;
28
+ };
29
+ exports.getBuyPrice = getBuyPrice;
47
30
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["_react","require","_labsWidgetCommon","_constant","validCurrencies","currencies","every","currency","MAJOR_CURRENCIES","includes","exports","currenciesToInstruments","division","divisionMapper","pairs","reduce","acc","cV","index","array","unique","filter","_item","idx","map","el","useRecords","record","target","updatedRecord","setUpdatedRecord","useState","displayName","instrument","error","setError","update","liveRatesError","useLiveRatesMessage","useEffect","buy","ask","buyPriceMovement","askPriceMovement","displayPrecision"],"sources":["../../../src/CurrencyCrossTableWidget/utils.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { DataRecord, LiveRatesErrorMessage, useLiveRatesMessage } from '@oanda/labs-widget-common';\nimport { MAJOR_CURRENCIES } from './constant';\n\nconst validCurrencies = (currencies: string[]) => currencies\n .every((currency) => MAJOR_CURRENCIES.includes(currency));\n\nconst currenciesToInstruments = (currencies: string[], division: any) => {\n const divisionMapper = division === 'OGM' ? '' : '_';\n\n const pairs = currencies.reduce((acc, cV, index, array) => {\n const unique = array.filter((_item, idx) => index !== idx);\n\n return [\n ...acc,\n ...unique.map((el) => `${cV}${divisionMapper}${el}`),\n ];\n }, [] as string[]);\n\n return pairs;\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 });\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?.ask,\n buyPriceMovement: update?.askPriceMovement,\n displayPrecision: update?.displayPrecision,\n });\n setError(liveRatesError);\n }, [update, record, liveRatesError]);\n\n return {\n updatedRecord,\n error,\n };\n};\n\nexport {\n validCurrencies,\n currenciesToInstruments,\n useRecords,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEA,MAAMG,eAAe,GAAIC,UAAoB,IAAKA,UAAU,CACzDC,KAAK,CAAEC,QAAQ,IAAKC,0BAAgB,CAACC,QAAQ,CAACF,QAAQ,CAAC,CAAC;AAACG,OAAA,CAAAN,eAAA,GAAAA,eAAA;AAE5D,MAAMO,uBAAuB,GAAGA,CAACN,UAAoB,EAAEO,QAAa,KAAK;EACvE,MAAMC,cAAc,GAAGD,QAAQ,KAAK,KAAK,GAAG,EAAE,GAAG,GAAG;EAEpD,MAAME,KAAK,GAAGT,UAAU,CAACU,MAAM,CAAC,CAACC,GAAG,EAAEC,EAAE,EAAEC,KAAK,EAAEC,KAAK,KAAK;IACzD,MAAMC,MAAM,GAAGD,KAAK,CAACE,MAAM,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAKL,KAAK,KAAKK,GAAG,CAAC;IAE1D,OAAO,CACL,GAAGP,GAAG,EACN,GAAGI,MAAM,CAACI,GAAG,CAAEC,EAAE,IAAK,GAAGR,EAAE,GAAGJ,cAAc,GAAGY,EAAE,EAAE,CAAC,CACrD;EACH,CAAC,EAAE,EAAc,CAAC;EAElB,OAAOX,KAAK;AACd,CAAC;AAACJ,OAAA,CAAAC,uBAAA,GAAAA,uBAAA;AAEF,MAAMe,UAAU,GAAGA,CACjBC,MAAkB,EAClBC,MAA0B,KACvB;EACH,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAC,eAAQ,EAAa;IAC7DC,WAAW,EAAEL,MAAM,CAACK,WAAW;IAC/BC,UAAU,EAAEN,MAAM,CAACM;EACrB,CAAC,CAAC;EAEF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAJ,eAAQ,EAA+B,IAAI,CAAC;EAEtE,MAAM;IAAEK,MAAM;IAAEF,KAAK,EAAEG;EAAe,CAAC,GAAG,IAAAC,qCAAmB,EAC3DX,MAAM,CAACM,UAAU,EACjBL,MACF,CAAC;EAED,IAAAW,gBAAS,EAAC,MAAM;IACdT,gBAAgB,CAAC;MACfE,WAAW,EAAEL,MAAM,CAACK,WAAW;MAC/BC,UAAU,EAAEN,MAAM,CAACM,UAAU;MAC7BO,GAAG,EAAEJ,MAAM,EAAEK,GAAG;MAChBC,gBAAgB,EAAEN,MAAM,EAAEO,gBAAgB;MAC1CC,gBAAgB,EAAER,MAAM,EAAEQ;IAC5B,CAAC,CAAC;IACFT,QAAQ,CAACE,cAAc,CAAC;EAC1B,CAAC,EAAE,CAACD,MAAM,EAAET,MAAM,EAAEU,cAAc,CAAC,CAAC;EAEpC,OAAO;IACLR,aAAa;IACbK;EACF,CAAC;AACH,CAAC;AAACxB,OAAA,CAAAgB,UAAA,GAAAA,UAAA","ignoreList":[]}
1
+ {"version":3,"file":"utils.js","names":["_constant","require","validCurrencies","currencies","every","currency","MAJOR_CURRENCIES","includes","exports","divisionMapper","division","currenciesToInstruments","pairs","reduce","acc","cV","index","array","unique","filter","_item","idx","map","el","getPriceMovement","priceMovement","isReversed","undefined","getBuyPrice","price"],"sources":["../../../src/CurrencyCrossTableWidget/utils.ts"],"sourcesContent":["import { MAJOR_CURRENCIES } from './constant';\nimport { Division } from '../gql/types/graphql';\n\nconst validCurrencies = (currencies: string[]) => currencies\n .every((currency) => MAJOR_CURRENCIES.includes(currency));\n\nconst divisionMapper = (division: Division) => (division === 'OGM' ? '' : '_');\n\nconst currenciesToInstruments = (currencies: string[], division: any) => {\n const pairs = currencies.reduce((acc, cV, index, array) => {\n const unique = array.filter((_item, idx) => index !== idx);\n\n return [\n ...acc,\n ...unique.map((el) => `${cV}${divisionMapper(division)}${el}`),\n ];\n }, [] as string[]);\n\n return pairs;\n};\n\nconst getPriceMovement = (priceMovement: number | undefined, isReversed: boolean) => {\n if (priceMovement === undefined) return 0;\n\n return isReversed ? priceMovement * -1 : priceMovement;\n};\n\nconst getBuyPrice = (price: number | undefined, isReversed: boolean) => {\n if (price === undefined) return 0;\n\n return isReversed ? 1 / price : price;\n};\n\nexport {\n validCurrencies,\n currenciesToInstruments,\n divisionMapper,\n getPriceMovement,\n getBuyPrice,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAGA,MAAMC,eAAe,GAAIC,UAAoB,IAAKA,UAAU,CACzDC,KAAK,CAAEC,QAAQ,IAAKC,0BAAgB,CAACC,QAAQ,CAACF,QAAQ,CAAC,CAAC;AAACG,OAAA,CAAAN,eAAA,GAAAA,eAAA;AAE5D,MAAMO,cAAc,GAAIC,QAAkB,IAAMA,QAAQ,KAAK,KAAK,GAAG,EAAE,GAAG,GAAI;AAACF,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAE/E,MAAME,uBAAuB,GAAGA,CAACR,UAAoB,EAAEO,QAAa,KAAK;EACvE,MAAME,KAAK,GAAGT,UAAU,CAACU,MAAM,CAAC,CAACC,GAAG,EAAEC,EAAE,EAAEC,KAAK,EAAEC,KAAK,KAAK;IACzD,MAAMC,MAAM,GAAGD,KAAK,CAACE,MAAM,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAKL,KAAK,KAAKK,GAAG,CAAC;IAE1D,OAAO,CACL,GAAGP,GAAG,EACN,GAAGI,MAAM,CAACI,GAAG,CAAEC,EAAE,IAAK,GAAGR,EAAE,GAAGN,cAAc,CAACC,QAAQ,CAAC,GAAGa,EAAE,EAAE,CAAC,CAC/D;EACH,CAAC,EAAE,EAAc,CAAC;EAElB,OAAOX,KAAK;AACd,CAAC;AAACJ,OAAA,CAAAG,uBAAA,GAAAA,uBAAA;AAEF,MAAMa,gBAAgB,GAAGA,CAACC,aAAiC,EAAEC,UAAmB,KAAK;EACnF,IAAID,aAAa,KAAKE,SAAS,EAAE,OAAO,CAAC;EAEzC,OAAOD,UAAU,GAAGD,aAAa,GAAG,CAAC,CAAC,GAAGA,aAAa;AACxD,CAAC;AAACjB,OAAA,CAAAgB,gBAAA,GAAAA,gBAAA;AAEF,MAAMI,WAAW,GAAGA,CAACC,KAAyB,EAAEH,UAAmB,KAAK;EACtE,IAAIG,KAAK,KAAKF,SAAS,EAAE,OAAO,CAAC;EAEjC,OAAOD,UAAU,GAAG,CAAC,GAAGG,KAAK,GAAGA,KAAK;AACvC,CAAC;AAACrB,OAAA,CAAAoB,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isFragmentReady = isFragmentReady;
7
+ exports.makeFragmentData = makeFragmentData;
8
+ exports.useFragment = useFragment;
9
+ function useFragment(_documentNode, fragmentType) {
10
+ return fragmentType;
11
+ }
12
+ function makeFragmentData(data, _fragment) {
13
+ return data;
14
+ }
15
+ function isFragmentReady(queryNode, fragmentNode, data) {
16
+ const deferredFields = queryNode.__meta__?.deferredFields;
17
+ if (!deferredFields) return true;
18
+ const fragDef = fragmentNode.definitions[0];
19
+ const fragName = fragDef?.name?.value;
20
+ const fields = fragName && deferredFields[fragName] || [];
21
+ return fields.length > 0 && fields.every(field => data && field in data);
22
+ }
23
+ //# sourceMappingURL=fragment-masking.js.map