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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +68 -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 +19 -17
  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/Cell.js +2 -4
  10. package/dist/main/CurrencyCrossTableWidget/components/Cell.js.map +1 -1
  11. package/dist/main/CurrencyCrossTableWidget/components/CellValidationWrapper.js +49 -0
  12. package/dist/main/CurrencyCrossTableWidget/components/CellValidationWrapper.js.map +1 -0
  13. package/dist/main/CurrencyCrossTableWidget/components/CellWithData.js +19 -13
  14. package/dist/main/CurrencyCrossTableWidget/components/CellWithData.js.map +1 -1
  15. package/dist/main/CurrencyCrossTableWidget/components/TextCell.js +7 -5
  16. package/dist/main/CurrencyCrossTableWidget/components/TextCell.js.map +1 -1
  17. package/dist/main/CurrencyCrossTableWidget/components/types.js.map +1 -1
  18. package/dist/main/CurrencyCrossTableWidget/render.js +7 -2
  19. package/dist/main/CurrencyCrossTableWidget/render.js.map +1 -1
  20. package/dist/main/CurrencyCrossTableWidget/types.js +0 -13
  21. package/dist/main/CurrencyCrossTableWidget/types.js.map +1 -1
  22. package/dist/main/CurrencyCrossTableWidget/utils.js +13 -30
  23. package/dist/main/CurrencyCrossTableWidget/utils.js.map +1 -1
  24. package/dist/main/gql/types/fragment-masking.js +23 -0
  25. package/dist/main/gql/types/fragment-masking.js.map +1 -0
  26. package/dist/main/gql/types/gql.js +16 -0
  27. package/dist/main/gql/types/gql.js.map +1 -0
  28. package/dist/main/gql/types/graphql.js +223 -0
  29. package/dist/main/gql/types/graphql.js.map +1 -0
  30. package/dist/main/gql/types/index.js +28 -0
  31. package/dist/main/gql/types/index.js.map +1 -0
  32. package/dist/main/gql/validateInstruments.js +16 -0
  33. package/dist/main/gql/validateInstruments.js.map +1 -0
  34. package/dist/module/CurrencyCrossTableWidget/CurrencyCrossTableWidget.js +10 -2
  35. package/dist/module/CurrencyCrossTableWidget/CurrencyCrossTableWidget.js.map +1 -1
  36. package/dist/module/CurrencyCrossTableWidget/Main.js +21 -19
  37. package/dist/module/CurrencyCrossTableWidget/Main.js.map +1 -1
  38. package/dist/module/CurrencyCrossTableWidget/ValidationWrapper.js +2 -1
  39. package/dist/module/CurrencyCrossTableWidget/ValidationWrapper.js.map +1 -1
  40. package/dist/module/CurrencyCrossTableWidget/components/Cell.js +2 -4
  41. package/dist/module/CurrencyCrossTableWidget/components/Cell.js.map +1 -1
  42. package/dist/module/CurrencyCrossTableWidget/components/CellValidationWrapper.js +42 -0
  43. package/dist/module/CurrencyCrossTableWidget/components/CellValidationWrapper.js.map +1 -0
  44. package/dist/module/CurrencyCrossTableWidget/components/CellWithData.js +20 -14
  45. package/dist/module/CurrencyCrossTableWidget/components/CellWithData.js.map +1 -1
  46. package/dist/module/CurrencyCrossTableWidget/components/TextCell.js +7 -5
  47. package/dist/module/CurrencyCrossTableWidget/components/TextCell.js.map +1 -1
  48. package/dist/module/CurrencyCrossTableWidget/components/types.js.map +1 -1
  49. package/dist/module/CurrencyCrossTableWidget/render.js +6 -1
  50. package/dist/module/CurrencyCrossTableWidget/render.js.map +1 -1
  51. package/dist/module/CurrencyCrossTableWidget/types.js +0 -12
  52. package/dist/module/CurrencyCrossTableWidget/types.js.map +1 -1
  53. package/dist/module/CurrencyCrossTableWidget/utils.js +10 -29
  54. package/dist/module/CurrencyCrossTableWidget/utils.js.map +1 -1
  55. package/dist/module/gql/types/fragment-masking.js +15 -0
  56. package/dist/module/gql/types/fragment-masking.js.map +1 -0
  57. package/dist/module/gql/types/gql.js +8 -0
  58. package/dist/module/gql/types/gql.js.map +1 -0
  59. package/dist/module/gql/types/graphql.js +217 -0
  60. package/dist/module/gql/types/graphql.js.map +1 -0
  61. package/dist/module/gql/types/index.js +3 -0
  62. package/dist/module/gql/types/index.js.map +1 -0
  63. package/dist/module/gql/validateInstruments.js +10 -0
  64. package/dist/module/gql/validateInstruments.js.map +1 -0
  65. package/dist/types/CurrencyCrossTableWidget/CurrencyCrossTableWidget.d.ts +1 -1
  66. package/dist/types/CurrencyCrossTableWidget/Main.d.ts +1 -1
  67. package/dist/types/CurrencyCrossTableWidget/components/Cell.d.ts +1 -1
  68. package/dist/types/CurrencyCrossTableWidget/components/CellValidationWrapper.d.ts +4 -0
  69. package/dist/types/CurrencyCrossTableWidget/components/CellWithData.d.ts +1 -1
  70. package/dist/types/CurrencyCrossTableWidget/components/TextCell.d.ts +1 -1
  71. package/dist/types/CurrencyCrossTableWidget/components/types.d.ts +15 -4
  72. package/dist/types/CurrencyCrossTableWidget/types.d.ts +3 -11
  73. package/dist/types/CurrencyCrossTableWidget/utils.d.ts +5 -6
  74. package/dist/types/gql/types/fragment-masking.d.ts +15 -0
  75. package/dist/types/gql/types/gql.d.ts +37 -0
  76. package/dist/types/gql/types/graphql.d.ts +384 -0
  77. package/dist/types/gql/types/index.d.ts +2 -0
  78. package/dist/types/gql/validateInstruments.d.ts +1 -0
  79. package/package.json +12 -4
  80. package/src/CurrencyCrossTableWidget/CurrencyCrossTableWidget.tsx +16 -6
  81. package/src/CurrencyCrossTableWidget/Main.tsx +23 -19
  82. package/src/CurrencyCrossTableWidget/ValidationWrapper.tsx +1 -0
  83. package/src/CurrencyCrossTableWidget/components/Cell.tsx +2 -4
  84. package/src/CurrencyCrossTableWidget/components/CellValidationWrapper.tsx +49 -0
  85. package/src/CurrencyCrossTableWidget/components/CellWithData.tsx +30 -16
  86. package/src/CurrencyCrossTableWidget/components/TextCell.tsx +6 -4
  87. package/src/CurrencyCrossTableWidget/components/types.ts +15 -4
  88. package/src/CurrencyCrossTableWidget/render.tsx +6 -2
  89. package/src/CurrencyCrossTableWidget/types.tsx +3 -12
  90. package/src/CurrencyCrossTableWidget/utils.ts +17 -37
  91. package/src/gql/types/fragment-masking.ts +66 -0
  92. package/src/gql/types/gql.ts +42 -0
  93. package/src/gql/types/graphql.ts +423 -0
  94. package/src/gql/types/index.ts +2 -0
  95. package/src/gql/validateInstruments.ts +10 -0
  96. package/test/Main.test.tsx +12 -6
  97. package/test/mocks.ts +225 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,74 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 1.0.8 (2024-09-04)
7
+
8
+
9
+
10
+ ## 1.0.156 (2024-09-02)
11
+
12
+
13
+
14
+ ## 1.0.155 (2024-08-29)
15
+
16
+
17
+
18
+ ## 1.0.154 (2024-08-29)
19
+
20
+
21
+
22
+ ## 1.0.153 (2024-08-23)
23
+
24
+
25
+
26
+ ## 1.0.152 (2024-08-23)
27
+
28
+
29
+
30
+ ## 1.0.151 (2024-08-20)
31
+
32
+
33
+
34
+ ## 1.0.150 (2024-08-19)
35
+
36
+ **Note:** Version bump only for package @oanda/labs-currency-cross-table
37
+
38
+
39
+
40
+
41
+
42
+ ## 1.0.7 (2024-09-02)
43
+
44
+
45
+
46
+ ## 1.0.155 (2024-08-29)
47
+
48
+
49
+
50
+ ## 1.0.154 (2024-08-29)
51
+
52
+
53
+
54
+ ## 1.0.153 (2024-08-23)
55
+
56
+
57
+
58
+ ## 1.0.152 (2024-08-23)
59
+
60
+
61
+
62
+ ## 1.0.151 (2024-08-20)
63
+
64
+
65
+
66
+ ## 1.0.150 (2024-08-19)
67
+
68
+ **Note:** Version bump only for package @oanda/labs-currency-cross-table
69
+
70
+
71
+
72
+
73
+
6
74
  ## 1.0.6 (2024-08-29)
7
75
 
8
76
 
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)('');
@@ -30,34 +33,33 @@ const Main = _ref => {
30
33
  }, instruments);
31
34
  return _react.default.createElement("div", {
32
35
  "data-testid": "currency-cross-table-wrapper",
33
- className: "lw-w-full"
36
+ className: "lw-w-full lw-overflow-x-auto lw-overflow-y-hidden lw-border lw-border-b-0 lw-border-solid lw-border-border-primary"
34
37
  }, _react.default.createElement("div", {
35
- className: "lw-flex lw-border-l lw-border-t lw-border-solid lw-border-border-primary"
36
- }, _react.default.createElement(_components.TextCell, null), currencies.map(pair => _react.default.createElement(_components.TextCell, {
38
+ className: "lw-flex lw-w-max lw-min-w-full"
39
+ }, _react.default.createElement(_components.TextCell, {
40
+ sticky: true
41
+ }), currencies.map(pair => _react.default.createElement(_components.TextCell, {
37
42
  key: pair,
38
43
  label: pair,
39
44
  hovered: pair === selectedPair
40
45
  }))), currencies.map((currency, index, arr) => _react.default.createElement("div", {
41
46
  key: currency,
42
- className: "lw-flex lw-border-l lw-border-t lw-border-solid lw-border-border-primary"
47
+ className: "lw-flex lw-w-max lw-min-w-full"
43
48
  }, _react.default.createElement(_components.TextCell, {
44
49
  label: currency,
45
- additionalBorderBottom: index === arr.length - 1,
46
- hovered: currency === selectedCurrency
50
+ hovered: currency === selectedCurrency,
51
+ sticky: true
47
52
  }), arr.map(pair => _react.default.createElement(_react.Fragment, {
48
53
  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
- },
54
+ }, currency !== pair ? _react.default.createElement(_react.Suspense, null, _react.default.createElement(_CellValidationWrapper.CellValidationWrapper, {
55
+ currency: currency,
56
+ pair: pair,
57
+ instrument: `${currency}${(0, _utils.divisionMapper)(division)}${pair}`,
55
58
  target: target,
56
- additionalBorderBottom: index === arr.length - 1,
57
59
  setSelectedCurrency: setSelectedCurrency,
58
- setSelectedPair: setSelectedPair
59
- }) : _react.default.createElement(_components.TextCell, {
60
- additionalBorderBottom: index === arr.length - 1,
60
+ setSelectedPair: setSelectedPair,
61
+ division: division
62
+ })) : _react.default.createElement(_components.TextCell, {
61
63
  emptyIndicator: true
62
64
  }))))));
63
65
  };
@@ -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","sticky","map","pair","key","label","hovered","currency","index","arr","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 lw-overflow-x-auto lw-overflow-y-hidden lw-border lw-border-b-0 lw-border-solid lw-border-border-primary\">\n <div className=\"lw-flex lw-w-max lw-min-w-full\">\n <TextCell sticky />\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-w-max lw-min-w-full\"\n >\n <TextCell\n label={currency}\n hovered={currency === selectedCurrency}\n sticky\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 setSelectedCurrency={setSelectedCurrency}\n setSelectedPair={setSelectedPair}\n division={division}\n />\n </Suspense>\n ) : (\n <TextCell\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":[]}
@@ -13,15 +13,13 @@ const Cell = _ref => {
13
13
  children,
14
14
  isError,
15
15
  isLoading,
16
- additionalBorderBottom,
17
16
  hovered,
18
17
  mouseEnterHandler,
19
18
  mouseLeaveHandler
20
19
  } = _ref;
21
20
  return _react.default.createElement("div", {
22
- className: (0, _classnames.default)('lw-flex lw-h-[inherit] lw-flex-1 lw-items-center lw-justify-center lw-border-r lw-border-solid lw-border-border-primary', {
23
- 'lw-border-b': additionalBorderBottom,
24
- 'lw-font-semibold': hovered
21
+ className: (0, _classnames.default)('lw-flex lw-h-11 lw-min-w-[70px] lw-flex-1 lw-items-center lw-justify-center lw-border-b lw-border-r lw-border-solid lw-border-border-primary last:lw-border-r-[0px]', {
22
+ 'lw-bg-border-primary lw-font-semibold lw-shadow-innerBorderBgColor': hovered
25
23
  }),
26
24
  onMouseEnter: mouseEnterHandler,
27
25
  onMouseLeave: mouseLeaveHandler
@@ -1 +1 @@
1
- {"version":3,"file":"Cell.js","names":["_react","_interopRequireDefault","require","_classnames","_constant","e","__esModule","default","Cell","_ref","children","isError","isLoading","additionalBorderBottom","hovered","mouseEnterHandler","mouseLeaveHandler","createElement","className","classnames","onMouseEnter","onMouseLeave","CELL_LOADING_VALUE","CELL_EMPTY_VALUE","exports"],"sources":["../../../../src/CurrencyCrossTableWidget/components/Cell.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { CellProps } from './types';\nimport { CELL_EMPTY_VALUE, CELL_LOADING_VALUE } from '../constant';\n\nconst Cell = ({\n children,\n isError,\n isLoading,\n additionalBorderBottom,\n hovered,\n mouseEnterHandler,\n mouseLeaveHandler,\n}: CellProps) => (\n <div\n className={classnames('lw-flex lw-h-[inherit] lw-flex-1 lw-items-center lw-justify-center lw-border-r lw-border-solid lw-border-border-primary', {\n 'lw-border-b': additionalBorderBottom,\n 'lw-font-semibold': hovered,\n })}\n onMouseEnter={mouseEnterHandler}\n onMouseLeave={mouseLeaveHandler}\n >\n {isLoading && <div className=\"lw-px-3 lw-py-3.5\">{CELL_LOADING_VALUE}</div>}\n {!isLoading && !isError && children}\n {!isLoading && isError && (\n <span>{CELL_EMPTY_VALUE}</span>\n )}\n </div>\n);\n\nexport { Cell };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AAAmE,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnE,MAAMG,IAAI,GAAGC,IAAA;EAAA,IAAC;IACZC,QAAQ;IACRC,OAAO;IACPC,SAAS;IACTC,sBAAsB;IACtBC,OAAO;IACPC,iBAAiB;IACjBC;EACS,CAAC,GAAAP,IAAA;EAAA,OACVT,MAAA,CAAAO,OAAA,CAAAU,aAAA;IACEC,SAAS,EAAE,IAAAC,mBAAU,EAAC,yHAAyH,EAAE;MAC/I,aAAa,EAAEN,sBAAsB;MACrC,kBAAkB,EAAEC;IACtB,CAAC,CAAE;IACHM,YAAY,EAAEL,iBAAkB;IAChCM,YAAY,EAAEL;EAAkB,GAE/BJ,SAAS,IAAIZ,MAAA,CAAAO,OAAA,CAAAU,aAAA;IAAKC,SAAS,EAAC;EAAmB,GAAEI,4BAAwB,CAAC,EAC1E,CAACV,SAAS,IAAI,CAACD,OAAO,IAAID,QAAQ,EAClC,CAACE,SAAS,IAAID,OAAO,IACpBX,MAAA,CAAAO,OAAA,CAAAU,aAAA,eAAOM,0BAAuB,CAE7B,CAAC;AAAA,CACP;AAACC,OAAA,CAAAhB,IAAA,GAAAA,IAAA","ignoreList":[]}
1
+ {"version":3,"file":"Cell.js","names":["_react","_interopRequireDefault","require","_classnames","_constant","e","__esModule","default","Cell","_ref","children","isError","isLoading","hovered","mouseEnterHandler","mouseLeaveHandler","createElement","className","classnames","onMouseEnter","onMouseLeave","CELL_LOADING_VALUE","CELL_EMPTY_VALUE","exports"],"sources":["../../../../src/CurrencyCrossTableWidget/components/Cell.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { CellProps } from './types';\nimport { CELL_EMPTY_VALUE, CELL_LOADING_VALUE } from '../constant';\n\nconst Cell = ({\n children,\n isError,\n isLoading,\n hovered,\n mouseEnterHandler,\n mouseLeaveHandler,\n}: CellProps) => (\n <div\n className={classnames('lw-flex lw-h-11 lw-min-w-[70px] lw-flex-1 lw-items-center lw-justify-center lw-border-b lw-border-r lw-border-solid lw-border-border-primary last:lw-border-r-[0px]', {\n 'lw-bg-border-primary lw-font-semibold lw-shadow-innerBorderBgColor': hovered,\n })}\n onMouseEnter={mouseEnterHandler}\n onMouseLeave={mouseLeaveHandler}\n >\n {isLoading && <div className=\"lw-px-3 lw-py-3.5\">{CELL_LOADING_VALUE}</div>}\n {!isLoading && !isError && children}\n {!isLoading && isError && (\n <span>{CELL_EMPTY_VALUE}</span>\n )}\n </div>\n);\n\nexport { Cell };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AAAmE,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnE,MAAMG,IAAI,GAAGC,IAAA;EAAA,IAAC;IACZC,QAAQ;IACRC,OAAO;IACPC,SAAS;IACTC,OAAO;IACPC,iBAAiB;IACjBC;EACS,CAAC,GAAAN,IAAA;EAAA,OACVT,MAAA,CAAAO,OAAA,CAAAS,aAAA;IACEC,SAAS,EAAE,IAAAC,mBAAU,EAAC,qKAAqK,EAAE;MAC3L,oEAAoE,EAAEL;IACxE,CAAC,CAAE;IACHM,YAAY,EAAEL,iBAAkB;IAChCM,YAAY,EAAEL;EAAkB,GAE/BH,SAAS,IAAIZ,MAAA,CAAAO,OAAA,CAAAS,aAAA;IAAKC,SAAS,EAAC;EAAmB,GAAEI,4BAAwB,CAAC,EAC1E,CAACT,SAAS,IAAI,CAACD,OAAO,IAAID,QAAQ,EAClC,CAACE,SAAS,IAAID,OAAO,IACpBX,MAAA,CAAAO,OAAA,CAAAS,aAAA,eAAOM,0BAAuB,CAE7B,CAAC;AAAA,CACP;AAACC,OAAA,CAAAf,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -0,0 +1,49 @@
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
+ setSelectedCurrency,
20
+ setSelectedPair,
21
+ division
22
+ } = _ref;
23
+ const {
24
+ error
25
+ } = (0, _client.useSuspenseQuery)(_validateInstruments.validateInstruments, {
26
+ variables: {
27
+ instruments: [instrument],
28
+ division
29
+ },
30
+ fetchPolicy: 'network-only',
31
+ errorPolicy: 'all'
32
+ });
33
+ const instrumentForCalculations = error ? `${pair}${(0, _utils.divisionMapper)(division)}${currency}` : '';
34
+ return _react.default.createElement(_CellWithData.CellWithData, {
35
+ currency: currency,
36
+ pair: pair,
37
+ record: {
38
+ instrument,
39
+ displayName: `${currency}${(0, _utils.divisionMapper)(division)}${pair}`
40
+ },
41
+ instrumentForCalculations: instrumentForCalculations,
42
+ target: target,
43
+ setSelectedCurrency: setSelectedCurrency,
44
+ setSelectedPair: setSelectedPair,
45
+ division: division
46
+ });
47
+ };
48
+ exports.CellValidationWrapper = CellValidationWrapper;
49
+ //# 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","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 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 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,IAQI;EAAA,IARH;IAC7BC,QAAQ;IACRC,IAAI;IACJC,UAAU;IACVC,MAAM;IACNC,mBAAmB;IACnBC,eAAe;IACfC;EAC0B,CAAC,GAAAP,IAAA;EAC3B,MAAM;IAAEQ;EAAM,CAAC,GAAG,IAAAC,wBAAgB,EAGhCC,wCAAmB,EAAE;IACrBC,SAAS,EAAE;MACTC,WAAW,EAAE,CAACT,UAAU,CAAC;MACzBI;IACF,CAAC;IACDM,WAAW,EAAE,cAAc;IAC3BC,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,yBAAyB,GAAGP,KAAK,GAAG,GAAGN,IAAI,GAAG,IAAAc,qBAAc,EAACT,QAAQ,CAAC,GAAGN,QAAQ,EAAE,GAAG,EAAE;EAE9F,OACEZ,MAAA,CAAAS,OAAA,CAAAmB,aAAA,CAACvB,aAAA,CAAAwB,YAAY;IACXjB,QAAQ,EAAEA,QAAS;IACnBC,IAAI,EAAEA,IAAK;IACXiB,MAAM,EAAE;MACNhB,UAAU;MACViB,WAAW,EAAE,GAAGnB,QAAQ,GAAG,IAAAe,qBAAc,EAACT,QAAQ,CAAC,GAAGL,IAAI;IAC5D,CAAE;IACFa,yBAAyB,EAAEA,yBAA0B;IACrDX,MAAM,EAAEA,MAAO;IACfC,mBAAmB,EAAEA,mBAAoB;IACzCC,eAAe,EAAEA,eAAgB;IACjCC,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC;AAACc,OAAA,CAAAtB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -6,29 +6,36 @@ 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
- additionalBorderBottom,
19
20
  setSelectedCurrency,
20
21
  setSelectedPair
21
22
  } = _ref;
22
23
  const [hovered, setHovered] = (0, _react.useState)(false);
24
+ const instrumentForUpdates = instrumentForCalculations || record.instrument;
23
25
  const {
24
- updatedRecord,
25
- error
26
- } = (0, _utils.useRecords)(record, record.instrument ? target : null);
27
- const checkLoading = id => loading || !error && updatedRecord?.[id] === undefined;
26
+ update,
27
+ error: liveRatesError
28
+ } = (0, _labsWidgetCommon.useLiveRatesMessage)(instrumentForUpdates, target);
29
+ const updatedRecord = {
30
+ displayName: record.displayName,
31
+ instrument: record.instrument,
32
+ buy: update?.ask,
33
+ buyPriceMovement: update?.askPriceMovement,
34
+ displayPrecision: update?.displayPrecision
35
+ };
36
+ const checkLoading = id => !liveRatesError && updatedRecord?.[id] === undefined;
28
37
  const handleMouseEnter = () => {
29
38
  setHovered(true);
30
- const currency = record.instrument.substring(0, 3);
31
- const pair = record.instrument.substring(record.instrument.length - 3);
32
39
  setSelectedCurrency(currency);
33
40
  setSelectedPair(pair);
34
41
  };
@@ -39,15 +46,14 @@ const CellWithData = _ref => {
39
46
  };
40
47
  return _react.default.createElement(_Cell.Cell, {
41
48
  isLoading: checkLoading('buy'),
42
- isError: !!error,
43
- additionalBorderBottom: additionalBorderBottom,
49
+ isError: !!liveRatesError,
44
50
  hovered: hovered,
45
51
  mouseEnterHandler: handleMouseEnter,
46
52
  mouseLeaveHandler: handleMouseLeave
47
53
  }, _react.default.createElement(_labsWidgetCommon.Price, {
48
- priceMovement: updatedRecord.buyPriceMovement,
54
+ priceMovement: (0, _utils.getPriceMovement)(updatedRecord.buyPriceMovement, !!instrumentForCalculations),
49
55
  movementIndicator: "background"
50
- }, _react.default.createElement("span", null, updatedRecord.buy?.toFixed(updatedRecord.displayPrecision))));
56
+ }, _react.default.createElement("span", null, (0, _utils.getBuyPrice)(updatedRecord.buy, !!instrumentForCalculations).toFixed(updatedRecord.displayPrecision))));
51
57
  };
52
58
  exports.CellWithData = CellWithData;
53
59
  //# 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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AAA8B,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAE9B,MAAMW,YAAY,GAAGC,IAAA,IAOI;EAAA,IAPH;IACpBC,OAAO;IACPC,MAAM;IACNC,MAAM;IACNC,sBAAsB;IACtBC,mBAAmB;IACnBC;EACiB,CAAC,GAAAN,IAAA;EAClB,MAAM,CAACO,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAC7C,MAAM;IAAEC,aAAa;IAAEC;EAAM,CAAC,GAAG,IAAAC,iBAAU,EAACV,MAAM,EAAEA,MAAM,CAACW,UAAU,GAAGV,MAAM,GAAG,IAAI,CAAC;EAEtF,MAAMW,YAAY,GAAIC,EAAU,IAAKd,OAAO,IAAK,CAACU,KAAK,IAAID,aAAa,GAAGK,EAAE,CAAC,KAAKC,SAAU;EAE7F,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;IAC7BT,UAAU,CAAC,IAAI,CAAC;IAEhB,MAAMU,QAAQ,GAAGhB,MAAM,CAACW,UAAU,CAACM,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAClD,MAAMC,IAAI,GAAGlB,MAAM,CAACW,UAAU,CAACM,SAAS,CAACjB,MAAM,CAACW,UAAU,CAACQ,MAAM,GAAG,CAAC,CAAC;IAEtEhB,mBAAmB,CAACa,QAAQ,CAAC;IAC7BZ,eAAe,CAACc,IAAI,CAAC;EACvB,CAAC;EAED,MAAME,gBAAgB,GAAGA,CAAA,KAAM;IAC7Bd,UAAU,CAAC,KAAK,CAAC;IAEjBH,mBAAmB,CAAC,EAAE,CAAC;IACvBC,eAAe,CAAC,EAAE,CAAC;EACrB,CAAC;EAED,OACEjC,MAAA,CAAAY,OAAA,CAAAsC,aAAA,CAAC7C,KAAA,CAAA8C,IAAI;IACHC,SAAS,EAAEX,YAAY,CAAC,KAAK,CAAE;IAC/BY,OAAO,EAAE,CAAC,CAACf,KAAM;IACjBP,sBAAsB,EAAEA,sBAAuB;IAC/CG,OAAO,EAAEA,OAAQ;IACjBoB,iBAAiB,EAAEV,gBAAiB;IACpCW,iBAAiB,EAAEN;EAAiB,GAEpCjD,MAAA,CAAAY,OAAA,CAAAsC,aAAA,CAAC/C,iBAAA,CAAAqD,KAAK;IAACC,aAAa,EAAEpB,aAAa,CAACqB,gBAAiB;IAACC,iBAAiB,EAAC;EAAY,GAClF3D,MAAA,CAAAY,OAAA,CAAAsC,aAAA,eAAOb,aAAa,CAACuB,GAAG,EAAEC,OAAO,CAACxB,aAAa,CAACyB,gBAAgB,CAAQ,CACnE,CACH,CAAC;AAEX,CAAC;AAACC,OAAA,CAAArC,YAAA,GAAAA,YAAA","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","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 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 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":[]}
@@ -11,14 +11,16 @@ const TextCell = _ref => {
11
11
  let {
12
12
  label,
13
13
  emptyIndicator,
14
- additionalBorderBottom,
15
- hovered
14
+ hovered,
15
+ sticky
16
16
  } = _ref;
17
17
  return _react.default.createElement("span", {
18
- className: (0, _classnames.default)('lw-flex-1 lw-border-r lw-border-solid lw-border-border-primary lw-py-3.5 lw-text-center', {
19
- 'lw-border-b': additionalBorderBottom,
18
+ className: (0, _classnames.default)('lw-h-11 lw-min-w-[70px] lw-flex-1 lw-border-b lw-border-r lw-border-solid lw-border-border-primary lw-py-3.5 lw-text-center last:lw-border-r-[0px]', {
20
19
  'lw-bg-border-primary': emptyIndicator,
21
- 'lw-font-semibold': hovered
20
+ 'lw-shadow-innerBorderBgColor': emptyIndicator && hovered,
21
+ 'lw-bg-border-primary lw-font-semibold': hovered,
22
+ 'lw-sticky lw-left-0 lw-z-10': sticky,
23
+ 'lw-bg-bg-primary': sticky && !hovered
22
24
  })
23
25
  }, label);
24
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TextCell.js","names":["_react","_interopRequireDefault","require","_classnames","e","__esModule","default","TextCell","_ref","label","emptyIndicator","additionalBorderBottom","hovered","createElement","className","classnames","exports"],"sources":["../../../../src/CurrencyCrossTableWidget/components/TextCell.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { TextCellProps } from './types';\n\nconst TextCell = ({\n label,\n emptyIndicator,\n additionalBorderBottom,\n hovered,\n}: TextCellProps) => (\n <span className={classnames('lw-flex-1 lw-border-r lw-border-solid lw-border-border-primary lw-py-3.5 lw-text-center', {\n 'lw-border-b': additionalBorderBottom,\n 'lw-bg-border-primary': emptyIndicator,\n 'lw-font-semibold': hovered,\n })}\n >\n {label}\n </span>\n);\n\nexport { TextCell };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAoC,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGpC,MAAMG,QAAQ,GAAGC,IAAA;EAAA,IAAC;IAChBC,KAAK;IACLC,cAAc;IACdC,sBAAsB;IACtBC;EACa,CAAC,GAAAJ,IAAA;EAAA,OACdR,MAAA,CAAAM,OAAA,CAAAO,aAAA;IAAMC,SAAS,EAAE,IAAAC,mBAAU,EAAC,yFAAyF,EAAE;MACrH,aAAa,EAAEJ,sBAAsB;MACrC,sBAAsB,EAAED,cAAc;MACtC,kBAAkB,EAAEE;IACtB,CAAC;EAAE,GAEAH,KACG,CAAC;AAAA,CACR;AAACO,OAAA,CAAAT,QAAA,GAAAA,QAAA","ignoreList":[]}
1
+ {"version":3,"file":"TextCell.js","names":["_react","_interopRequireDefault","require","_classnames","e","__esModule","default","TextCell","_ref","label","emptyIndicator","hovered","sticky","createElement","className","classnames","exports"],"sources":["../../../../src/CurrencyCrossTableWidget/components/TextCell.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { TextCellProps } from './types';\n\nconst TextCell = ({\n label,\n emptyIndicator,\n hovered,\n sticky,\n}: TextCellProps) => (\n <span className={classnames('lw-h-11 lw-min-w-[70px] lw-flex-1 lw-border-b lw-border-r lw-border-solid lw-border-border-primary lw-py-3.5 lw-text-center last:lw-border-r-[0px]', {\n 'lw-bg-border-primary': emptyIndicator,\n 'lw-shadow-innerBorderBgColor': emptyIndicator && hovered,\n 'lw-bg-border-primary lw-font-semibold': hovered,\n 'lw-sticky lw-left-0 lw-z-10': sticky,\n 'lw-bg-bg-primary': sticky && !hovered,\n })}\n >\n {label}\n </span>\n);\n\nexport { TextCell };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAoC,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGpC,MAAMG,QAAQ,GAAGC,IAAA;EAAA,IAAC;IAChBC,KAAK;IACLC,cAAc;IACdC,OAAO;IACPC;EACa,CAAC,GAAAJ,IAAA;EAAA,OACdR,MAAA,CAAAM,OAAA,CAAAO,aAAA;IAAMC,SAAS,EAAE,IAAAC,mBAAU,EAAC,oJAAoJ,EAAE;MAChL,sBAAsB,EAAEL,cAAc;MACtC,8BAA8B,EAAEA,cAAc,IAAIC,OAAO;MACzD,uCAAuC,EAAEA,OAAO;MAChD,6BAA6B,EAAEC,MAAM;MACrC,kBAAkB,EAAEA,MAAM,IAAI,CAACD;IACjC,CAAC;EAAE,GAEAF,KACG,CAAC;AAAA,CACR;AAACO,OAAA,CAAAT,QAAA,GAAAA,QAAA","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 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 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 hovered: boolean;\n mouseEnterHandler: () => void;\n mouseLeaveHandler: () => void;\n}\n\nexport interface TextCellProps {\n label?: string;\n emptyIndicator?: boolean;\n hovered?: boolean;\n sticky?: 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":[]}