@oanda/labs-order-book-widget 1.0.173 → 1.0.175

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 (99) hide show
  1. package/CHANGELOG.md +1372 -0
  2. package/dist/main/OrderBookWidget/ChartWithData.js +7 -6
  3. package/dist/main/OrderBookWidget/ChartWithData.js.map +1 -1
  4. package/dist/main/OrderBookWidget/Main.js +11 -11
  5. package/dist/main/OrderBookWidget/Main.js.map +1 -1
  6. package/dist/main/OrderBookWidget/OrderBookWidget.js +9 -9
  7. package/dist/main/OrderBookWidget/OrderBookWidget.js.map +1 -1
  8. package/dist/main/OrderBookWidget/components/Chart/Chart.js +14 -14
  9. package/dist/main/OrderBookWidget/components/Chart/Chart.js.map +1 -1
  10. package/dist/main/OrderBookWidget/components/Chart/formatters.js +3 -3
  11. package/dist/main/OrderBookWidget/components/Chart/formatters.js.map +1 -1
  12. package/dist/main/OrderBookWidget/components/Chart/getOption.js +10 -9
  13. package/dist/main/OrderBookWidget/components/Chart/getOption.js.map +1 -1
  14. package/dist/main/OrderBookWidget/components/Chart/types.js.map +1 -1
  15. package/dist/main/OrderBookWidget/config.js.map +1 -1
  16. package/dist/main/OrderBookWidget/render.js +9 -9
  17. package/dist/main/OrderBookWidget/render.js.map +1 -1
  18. package/dist/main/OrderBookWidget/types.js.map +1 -1
  19. package/dist/main/gql/getOrderPositionBooks.js +3 -18
  20. package/dist/main/gql/getOrderPositionBooks.js.map +1 -1
  21. package/dist/main/gql/types/fragment-masking.js +3 -2
  22. package/dist/main/gql/types/fragment-masking.js.map +1 -1
  23. package/dist/main/gql/types/gql.js +3 -2
  24. package/dist/main/gql/types/gql.js.map +1 -1
  25. package/dist/main/gql/types/graphql.js +114 -114
  26. package/dist/main/gql/types/graphql.js.map +1 -1
  27. package/dist/main/gql/types/index.js.map +1 -1
  28. package/dist/main/index.js +8 -8
  29. package/dist/main/index.js.map +1 -1
  30. package/dist/main/translations/index.js +1 -1
  31. package/dist/main/translations/index.js.map +1 -1
  32. package/dist/main/translations/translations.js.map +1 -1
  33. package/dist/module/OrderBookWidget/ChartWithData.js +7 -6
  34. package/dist/module/OrderBookWidget/ChartWithData.js.map +1 -1
  35. package/dist/module/OrderBookWidget/Main.js +10 -10
  36. package/dist/module/OrderBookWidget/Main.js.map +1 -1
  37. package/dist/module/OrderBookWidget/OrderBookWidget.js +9 -9
  38. package/dist/module/OrderBookWidget/OrderBookWidget.js.map +1 -1
  39. package/dist/module/OrderBookWidget/components/Chart/Chart.js +14 -14
  40. package/dist/module/OrderBookWidget/components/Chart/Chart.js.map +1 -1
  41. package/dist/module/OrderBookWidget/components/Chart/formatters.js +3 -3
  42. package/dist/module/OrderBookWidget/components/Chart/formatters.js.map +1 -1
  43. package/dist/module/OrderBookWidget/components/Chart/getOption.js +11 -10
  44. package/dist/module/OrderBookWidget/components/Chart/getOption.js.map +1 -1
  45. package/dist/module/OrderBookWidget/components/Chart/types.js.map +1 -1
  46. package/dist/module/OrderBookWidget/config.js +1 -1
  47. package/dist/module/OrderBookWidget/config.js.map +1 -1
  48. package/dist/module/OrderBookWidget/render.js +10 -10
  49. package/dist/module/OrderBookWidget/render.js.map +1 -1
  50. package/dist/module/OrderBookWidget/types.js.map +1 -1
  51. package/dist/module/gql/getOrderPositionBooks.js +3 -18
  52. package/dist/module/gql/getOrderPositionBooks.js.map +1 -1
  53. package/dist/module/gql/types/fragment-masking.js +3 -2
  54. package/dist/module/gql/types/fragment-masking.js.map +1 -1
  55. package/dist/module/gql/types/gql.js +3 -2
  56. package/dist/module/gql/types/gql.js.map +1 -1
  57. package/dist/module/gql/types/graphql.js +114 -114
  58. package/dist/module/gql/types/graphql.js.map +1 -1
  59. package/dist/module/gql/types/index.js +2 -2
  60. package/dist/module/gql/types/index.js.map +1 -1
  61. package/dist/module/index.js +1 -1
  62. package/dist/module/index.js.map +1 -1
  63. package/dist/module/translations/index.js +1 -1
  64. package/dist/module/translations/index.js.map +1 -1
  65. package/dist/module/translations/translations.js.map +1 -1
  66. package/dist/types/OrderBookWidget/ChartWithData.d.ts +2 -2
  67. package/dist/types/OrderBookWidget/Main.d.ts +1 -1
  68. package/dist/types/OrderBookWidget/OrderBookWidget.d.ts +1 -1
  69. package/dist/types/OrderBookWidget/components/Chart/Chart.d.ts +1 -1
  70. package/dist/types/OrderBookWidget/components/Chart/formatters.d.ts +1 -1
  71. package/dist/types/OrderBookWidget/components/Chart/getOption.d.ts +1 -1
  72. package/dist/types/OrderBookWidget/components/Chart/types.d.ts +2 -2
  73. package/dist/types/OrderBookWidget/config.d.ts +1 -1
  74. package/dist/types/OrderBookWidget/types.d.ts +2 -2
  75. package/dist/types/gql/types/gql.d.ts +2 -2
  76. package/dist/types/gql/types/index.d.ts +2 -2
  77. package/dist/types/index.d.ts +1 -1
  78. package/dist/types/translations/index.d.ts +2 -2
  79. package/package.json +3 -3
  80. package/src/OrderBookWidget/ChartWithData.tsx +40 -39
  81. package/src/OrderBookWidget/Main.tsx +48 -30
  82. package/src/OrderBookWidget/OrderBookWidget.tsx +8 -8
  83. package/src/OrderBookWidget/components/Chart/Chart.tsx +41 -29
  84. package/src/OrderBookWidget/components/Chart/formatters.ts +11 -4
  85. package/src/OrderBookWidget/components/Chart/getOption.ts +205 -188
  86. package/src/OrderBookWidget/components/Chart/types.ts +10 -13
  87. package/src/OrderBookWidget/config.ts +76 -53
  88. package/src/OrderBookWidget/render.tsx +81 -52
  89. package/src/OrderBookWidget/types.ts +3 -2
  90. package/src/gql/getOrderPositionBooks.ts +5 -1
  91. package/src/gql/types/fragment-masking.ts +41 -21
  92. package/src/gql/types/gql.ts +7 -3
  93. package/src/gql/types/graphql.ts +165 -44
  94. package/src/gql/types/index.ts +2 -2
  95. package/src/index.ts +1 -1
  96. package/src/translations/index.ts +4 -4
  97. package/src/translations/translations.ts +1 -3
  98. package/test/Main.test.tsx +12 -9
  99. package/test/chartOptions.test.ts +18 -12
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_fragmentMasking","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_gql"],"sources":["../../../../src/gql/types/index.ts"],"sourcesContent":["export * from \"./fragment-masking\";\nexport * from \"./gql\";"],"mappings":";;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,gBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,gBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,gBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,IAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,IAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,IAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,IAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_fragmentMasking","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_gql"],"sources":["../../../../src/gql/types/index.ts"],"sourcesContent":["export * from './fragment-masking';\nexport * from './gql';\n"],"mappings":";;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,gBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,gBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,gBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,IAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,IAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,IAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,IAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -3,25 +3,25 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _types = require("./OrderBookWidget/types");
7
- Object.keys(_types).forEach(function (key) {
6
+ var _OrderBookWidget = require("./OrderBookWidget/OrderBookWidget");
7
+ Object.keys(_OrderBookWidget).forEach(function (key) {
8
8
  if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _types[key]) return;
9
+ if (key in exports && exports[key] === _OrderBookWidget[key]) return;
10
10
  Object.defineProperty(exports, key, {
11
11
  enumerable: true,
12
12
  get: function () {
13
- return _types[key];
13
+ return _OrderBookWidget[key];
14
14
  }
15
15
  });
16
16
  });
17
- var _OrderBookWidget = require("./OrderBookWidget/OrderBookWidget");
18
- Object.keys(_OrderBookWidget).forEach(function (key) {
17
+ var _types = require("./OrderBookWidget/types");
18
+ Object.keys(_types).forEach(function (key) {
19
19
  if (key === "default" || key === "__esModule") return;
20
- if (key in exports && exports[key] === _OrderBookWidget[key]) return;
20
+ if (key in exports && exports[key] === _types[key]) return;
21
21
  Object.defineProperty(exports, key, {
22
22
  enumerable: true,
23
23
  get: function () {
24
- return _OrderBookWidget[key];
24
+ return _types[key];
25
25
  }
26
26
  });
27
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_types","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_OrderBookWidget"],"sources":["../../src/index.ts"],"sourcesContent":["export * from './OrderBookWidget/types';\nexport * from './OrderBookWidget/OrderBookWidget';\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,gBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,gBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,gBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,gBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_OrderBookWidget","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_types"],"sources":["../../src/index.ts"],"sourcesContent":["export * from './OrderBookWidget/OrderBookWidget';\nexport * from './OrderBookWidget/types';\n"],"mappings":";;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,gBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,gBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,gBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,MAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,MAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,MAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.translations = void 0;
7
7
  var _monoI18n = require("@oanda/mono-i18n");
8
8
  var _en = _interopRequireDefault(require("./sources/en.json"));
9
- var _zh_TW = _interopRequireDefault(require("./sources/zh_TW.json"));
10
9
  var _es = _interopRequireDefault(require("./sources/es.json"));
11
10
  var _th = _interopRequireDefault(require("./sources/th.json"));
11
+ var _zh_TW = _interopRequireDefault(require("./sources/zh_TW.json"));
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
13
  const translations = exports.translations = {
14
14
  [_monoI18n.Locale.en]: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_monoI18n","require","_en","_interopRequireDefault","_zh_TW","_es","_th","e","__esModule","default","translations","exports","Locale","en","translation","zhTW","es","th"],"sources":["../../../src/translations/index.ts"],"sourcesContent":["import { Locale, Translations } from '@oanda/mono-i18n';\n\nimport en from './sources/en.json';\nimport zhTW from './sources/zh_TW.json';\nimport es from './sources/es.json';\nimport th from './sources/th.json';\n\nimport { defaultTranslations } from './translations';\n\nexport type TranslationKey = keyof typeof defaultTranslations;\n\nexport const translations: Translations = {\n [Locale.en]: { translation: en },\n [Locale.zhTW]: { translation: zhTW },\n [Locale.es]: { translation: es },\n [Locale.th]: { translation: th },\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,GAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,GAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,GAAA,GAAAH,sBAAA,CAAAF,OAAA;AAAmC,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAM5B,MAAMG,YAA0B,GAAAC,OAAA,CAAAD,YAAA,GAAG;EACxC,CAACE,gBAAM,CAACC,EAAE,GAAG;IAAEC,WAAW,EAAED;EAAG,CAAC;EAChC,CAACD,gBAAM,CAACG,IAAI,GAAG;IAAED,WAAW,EAAEC;EAAK,CAAC;EACpC,CAACH,gBAAM,CAACI,EAAE,GAAG;IAAEF,WAAW,EAAEE;EAAG,CAAC;EAChC,CAACJ,gBAAM,CAACK,EAAE,GAAG;IAAEH,WAAW,EAAEG;EAAG;AACjC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_monoI18n","require","_en","_interopRequireDefault","_es","_th","_zh_TW","e","__esModule","default","translations","exports","Locale","en","translation","zhTW","es","th"],"sources":["../../../src/translations/index.ts"],"sourcesContent":["import type { Translations } from '@oanda/mono-i18n';\nimport { Locale } from '@oanda/mono-i18n';\n\nimport en from './sources/en.json';\nimport es from './sources/es.json';\nimport th from './sources/th.json';\nimport zhTW from './sources/zh_TW.json';\nimport type { defaultTranslations } from './translations';\n\nexport type TranslationKey = keyof typeof defaultTranslations;\n\nexport const translations: Translations = {\n [Locale.en]: { translation: en },\n [Locale.zhTW]: { translation: zhTW },\n [Locale.es]: { translation: es },\n [Locale.th]: { translation: th },\n};\n"],"mappings":";;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,GAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,GAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,GAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,MAAA,GAAAH,sBAAA,CAAAF,OAAA;AAAwC,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAKjC,MAAMG,YAA0B,GAAAC,OAAA,CAAAD,YAAA,GAAG;EACxC,CAACE,gBAAM,CAACC,EAAE,GAAG;IAAEC,WAAW,EAAED;EAAG,CAAC;EAChC,CAACD,gBAAM,CAACG,IAAI,GAAG;IAAED,WAAW,EAAEC;EAAK,CAAC;EACpC,CAACH,gBAAM,CAACI,EAAE,GAAG;IAAEF,WAAW,EAAEE;EAAG,CAAC;EAChC,CAACJ,gBAAM,CAACK,EAAE,GAAG;IAAEH,WAAW,EAAEG;EAAG;AACjC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"translations.js","names":["defaultTranslations","exports"],"sources":["../../../src/translations/translations.ts"],"sourcesContent":["export const defaultTranslations = {\n\n};\n"],"mappings":";;;;;;AAAO,MAAMA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,CAEnC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"translations.js","names":["defaultTranslations","exports"],"sources":["../../../src/translations/translations.ts"],"sourcesContent":["export const defaultTranslations = {};\n"],"mappings":";;;;;;AAAO,MAAMA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -1,13 +1,14 @@
1
- import React from 'react';
2
1
  import { useQuery } from '@apollo/client';
3
- import classnames from 'classnames';
4
2
  import { ChartError, LastUpdated, Size, Spinner, SpinnerSize, useLayoutProvider } from '@oanda/labs-widget-common';
5
3
  import { useLocale } from '@oanda/mono-i18n';
4
+ import classnames from 'classnames';
5
+ import React from 'react';
6
6
  import { getOrderPositionBooks } from '../gql/getOrderPositionBooks';
7
7
  import { BookType } from '../gql/types/graphql';
8
8
  import { Chart } from './components/Chart/Chart';
9
9
  import { instrumentPrecisionConfig } from './config';
10
10
  const ChartWithData = _ref => {
11
+ var _data$orderPositionBo, _data$orderPositionBo2;
11
12
  let {
12
13
  instrument,
13
14
  bookType
@@ -31,8 +32,8 @@ const ChartWithData = _ref => {
31
32
  },
32
33
  fetchPolicy: 'network-only'
33
34
  });
34
- const isError = !loading && !data?.orderPositionBooks[0]?.price || !!error;
35
- const updatedAt = data?.orderPositionBooks[0]?.time;
35
+ const isError = !loading && !(data !== null && data !== void 0 && (_data$orderPositionBo = data.orderPositionBooks[0]) !== null && _data$orderPositionBo !== void 0 && _data$orderPositionBo.price) || !!error;
36
+ const updatedAt = data === null || data === void 0 || (_data$orderPositionBo2 = data.orderPositionBooks[0]) === null || _data$orderPositionBo2 === void 0 ? void 0 : _data$orderPositionBo2.time;
36
37
  return React.createElement(React.Fragment, null, React.createElement("div", {
37
38
  className: classnames('lw-relative lw-w-full', {
38
39
  'lw-h-[450px]': isDesktop,
@@ -59,8 +60,8 @@ const ChartWithData = _ref => {
59
60
  }))), React.createElement("div", {
60
61
  className: "lw-mt-2 lw-h-8"
61
62
  }, !loading && !isError && React.createElement(LastUpdated, {
62
- timestamp: updatedAt,
63
- labelCallback: lang
63
+ labelCallback: lang,
64
+ timestamp: updatedAt
64
65
  })));
65
66
  };
66
67
  export { ChartWithData };
@@ -1 +1 @@
1
- {"version":3,"file":"ChartWithData.js","names":["React","useQuery","classnames","ChartError","LastUpdated","Size","Spinner","SpinnerSize","useLayoutProvider","useLocale","getOrderPositionBooks","BookType","Chart","instrumentPrecisionConfig","ChartWithData","_ref","instrument","bookType","lang","size","isDesktop","DESKTOP","loading","data","error","variables","recentHours","fetchPolicy","isError","orderPositionBooks","price","updatedAt","time","createElement","Fragment","className","lg","isOrderBook","Order","precision","timestamp","labelCallback"],"sources":["../../../src/OrderBookWidget/ChartWithData.tsx"],"sourcesContent":["import React from 'react';\nimport { useQuery } from '@apollo/client';\nimport classnames from 'classnames';\nimport {\n ChartError,\n LastUpdated,\n Size,\n Spinner,\n SpinnerSize,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { ChartWithDataProps } from './types';\nimport { getOrderPositionBooks } from '../gql/getOrderPositionBooks';\nimport { GetOrderPositionBooksQuery, GetOrderPositionBooksQueryVariables, BookType } from '../gql/types/graphql';\nimport { Chart } from './components/Chart/Chart';\nimport { instrumentPrecisionConfig } from './config';\n\nconst ChartWithData = ({\n instrument,\n bookType,\n}: ChartWithDataProps) => {\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n\n const { loading, data, error } = useQuery<\n GetOrderPositionBooksQuery,\n GetOrderPositionBooksQueryVariables\n >(getOrderPositionBooks, {\n variables: {\n instrument,\n bookType,\n recentHours: 1,\n },\n fetchPolicy: 'network-only',\n });\n\n const isError = (!loading && !data?.orderPositionBooks[0]?.price) || !!error;\n const updatedAt = data?.orderPositionBooks[0]?.time;\n\n return (\n <>\n <div className={classnames('lw-relative lw-w-full', {\n 'lw-h-[450px]': isDesktop,\n 'lw-h-[390px]': !isDesktop,\n })}\n >\n {isError && (\n <div className={\n classnames(\n 'lw-absolute lw-left-0 lw-top-0 lw-flex lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary',\n {\n 'lw-h-full': isDesktop,\n 'lw-h-[calc(100%-40px)]': !isDesktop,\n },\n )\n }\n >\n <ChartError />\n </div>\n )}\n {loading && (\n <div className={\n classnames(\n 'lw-absolute lw-left-0 lw-top-0 lw-flex lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary',\n {\n 'lw-h-full': isDesktop,\n 'lw-h-[calc(100%-40px)]': !isDesktop,\n },\n )\n }\n >\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {!isError && data && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full\">\n <Chart\n data={data}\n isOrderBook={bookType === BookType.Order}\n precision={instrumentPrecisionConfig[instrument]}\n />\n </div>\n )}\n </div>\n <div className=\"lw-mt-2 lw-h-8\">\n {!loading && !isError && (\n <LastUpdated timestamp={updatedAt} labelCallback={lang} />\n )}\n </div>\n </>\n );\n};\n\nexport { ChartWithData };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,UAAU,EACVC,WAAW,EACXC,IAAI,EACJC,OAAO,EACPC,WAAW,EACXC,iBAAiB,QACZ,2BAA2B;AAClC,SAASC,SAAS,QAAQ,kBAAkB;AAE5C,SAASC,qBAAqB,QAAQ,8BAA8B;AACpE,SAA0EC,QAAQ,QAAQ,sBAAsB;AAChH,SAASC,KAAK,QAAQ,0BAA0B;AAChD,SAASC,yBAAyB,QAAQ,UAAU;AAEpD,MAAMC,aAAa,GAAGC,IAAA,IAGI;EAAA,IAHH;IACrBC,UAAU;IACVC;EACkB,CAAC,GAAAF,IAAA;EACnB,MAAM;IAAEG;EAAK,CAAC,GAAGT,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAEU;EAAK,CAAC,GAAGX,iBAAiB,CAAC,CAAC;EACpC,MAAMY,SAAS,GAAGD,IAAI,KAAKd,IAAI,CAACgB,OAAO;EAEvC,MAAM;IAAEC,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAGvB,QAAQ,CAGvCS,qBAAqB,EAAE;IACvBe,SAAS,EAAE;MACTT,UAAU;MACVC,QAAQ;MACRS,WAAW,EAAE;IACf,CAAC;IACDC,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAI,CAACN,OAAO,IAAI,CAACC,IAAI,EAAEM,kBAAkB,CAAC,CAAC,CAAC,EAAEC,KAAK,IAAK,CAAC,CAACN,KAAK;EAC5E,MAAMO,SAAS,GAAGR,IAAI,EAAEM,kBAAkB,CAAC,CAAC,CAAC,EAAEG,IAAI;EAEnD,OACEhC,KAAA,CAAAiC,aAAA,CAAAjC,KAAA,CAAAkC,QAAA,QACElC,KAAA,CAAAiC,aAAA;IAAKE,SAAS,EAAEjC,UAAU,CAAC,uBAAuB,EAAE;MAClD,cAAc,EAAEkB,SAAS;MACzB,cAAc,EAAE,CAACA;IACnB,CAAC;EAAE,GAEAQ,OAAO,IACR5B,KAAA,CAAAiC,aAAA;IAAKE,SAAS,EACZjC,UAAU,CACR,uIAAuI,EACvI;MACE,WAAW,EAAEkB,SAAS;MACtB,wBAAwB,EAAE,CAACA;IAC7B,CACF;EACD,GAECpB,KAAA,CAAAiC,aAAA,CAAC9B,UAAU,MAAE,CACV,CACJ,EACAmB,OAAO,IACRtB,KAAA,CAAAiC,aAAA;IAAKE,SAAS,EACZjC,UAAU,CACR,uIAAuI,EACvI;MACE,WAAW,EAAEkB,SAAS;MACtB,wBAAwB,EAAE,CAACA;IAC7B,CACF;EACD,GAECpB,KAAA,CAAAiC,aAAA,CAAC3B,OAAO;IAACa,IAAI,EAAEZ,WAAW,CAAC6B;EAAG,CAAE,CAC7B,CACJ,EACA,CAACR,OAAO,IAAIL,IAAI,IACfvB,KAAA,CAAAiC,aAAA;IAAKE,SAAS,EAAC;EAA4D,GACzEnC,KAAA,CAAAiC,aAAA,CAACrB,KAAK;IACJW,IAAI,EAAEA,IAAK;IACXc,WAAW,EAAEpB,QAAQ,KAAKN,QAAQ,CAAC2B,KAAM;IACzCC,SAAS,EAAE1B,yBAAyB,CAACG,UAAU;EAAE,CAClD,CACE,CAEJ,CAAC,EACNhB,KAAA,CAAAiC,aAAA;IAAKE,SAAS,EAAC;EAAgB,GAC5B,CAACb,OAAO,IAAI,CAACM,OAAO,IACnB5B,KAAA,CAAAiC,aAAA,CAAC7B,WAAW;IAACoC,SAAS,EAAET,SAAU;IAACU,aAAa,EAAEvB;EAAK,CAAE,CAExD,CACL,CAAC;AAEP,CAAC;AAED,SAASJ,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"ChartWithData.js","names":["useQuery","ChartError","LastUpdated","Size","Spinner","SpinnerSize","useLayoutProvider","useLocale","classnames","React","getOrderPositionBooks","BookType","Chart","instrumentPrecisionConfig","ChartWithData","_ref","_data$orderPositionBo","_data$orderPositionBo2","instrument","bookType","lang","size","isDesktop","DESKTOP","loading","data","error","variables","recentHours","fetchPolicy","isError","orderPositionBooks","price","updatedAt","time","createElement","Fragment","className","lg","isOrderBook","Order","precision","labelCallback","timestamp"],"sources":["../../../src/OrderBookWidget/ChartWithData.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport {\n ChartError,\n LastUpdated,\n Size,\n Spinner,\n SpinnerSize,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { getOrderPositionBooks } from '../gql/getOrderPositionBooks';\nimport type {\n GetOrderPositionBooksQuery,\n GetOrderPositionBooksQueryVariables,\n} from '../gql/types/graphql';\nimport { BookType } from '../gql/types/graphql';\nimport { Chart } from './components/Chart/Chart';\nimport { instrumentPrecisionConfig } from './config';\nimport type { ChartWithDataProps } from './types';\n\nconst ChartWithData = ({ instrument, bookType }: ChartWithDataProps) => {\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n\n const { loading, data, error } = useQuery<\n GetOrderPositionBooksQuery,\n GetOrderPositionBooksQueryVariables\n >(getOrderPositionBooks, {\n variables: {\n instrument,\n bookType,\n recentHours: 1,\n },\n fetchPolicy: 'network-only',\n });\n\n const isError = (!loading && !data?.orderPositionBooks[0]?.price) || !!error;\n const updatedAt = data?.orderPositionBooks[0]?.time;\n\n return (\n <>\n <div\n className={classnames('lw-relative lw-w-full', {\n 'lw-h-[450px]': isDesktop,\n 'lw-h-[390px]': !isDesktop,\n })}\n >\n {isError && (\n <div\n className={classnames(\n 'lw-absolute lw-left-0 lw-top-0 lw-flex lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary',\n {\n 'lw-h-full': isDesktop,\n 'lw-h-[calc(100%-40px)]': !isDesktop,\n }\n )}\n >\n <ChartError />\n </div>\n )}\n {loading && (\n <div\n className={classnames(\n 'lw-absolute lw-left-0 lw-top-0 lw-flex lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary',\n {\n 'lw-h-full': isDesktop,\n 'lw-h-[calc(100%-40px)]': !isDesktop,\n }\n )}\n >\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {!isError && data && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full\">\n <Chart\n data={data}\n isOrderBook={bookType === BookType.Order}\n precision={instrumentPrecisionConfig[instrument]}\n />\n </div>\n )}\n </div>\n <div className=\"lw-mt-2 lw-h-8\">\n {!loading && !isError && (\n <LastUpdated labelCallback={lang} timestamp={updatedAt} />\n )}\n </div>\n </>\n );\n};\n\nexport { ChartWithData };\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AACzC,SACEC,UAAU,EACVC,WAAW,EACXC,IAAI,EACJC,OAAO,EACPC,WAAW,EACXC,iBAAiB,QACZ,2BAA2B;AAClC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,qBAAqB,QAAQ,8BAA8B;AAKpE,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,KAAK,QAAQ,0BAA0B;AAChD,SAASC,yBAAyB,QAAQ,UAAU;AAGpD,MAAMC,aAAa,GAAGC,IAAA,IAAkD;EAAA,IAAAC,qBAAA,EAAAC,sBAAA;EAAA,IAAjD;IAAEC,UAAU;IAAEC;EAA6B,CAAC,GAAAJ,IAAA;EACjE,MAAM;IAAEK;EAAK,CAAC,GAAGb,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAEc;EAAK,CAAC,GAAGf,iBAAiB,CAAC,CAAC;EACpC,MAAMgB,SAAS,GAAGD,IAAI,KAAKlB,IAAI,CAACoB,OAAO;EAEvC,MAAM;IAAEC,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAG1B,QAAQ,CAGvCU,qBAAqB,EAAE;IACvBiB,SAAS,EAAE;MACTT,UAAU;MACVC,QAAQ;MACRS,WAAW,EAAE;IACf,CAAC;IACDC,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAI,CAACN,OAAO,IAAI,EAACC,IAAI,aAAJA,IAAI,gBAAAT,qBAAA,GAAJS,IAAI,CAAEM,kBAAkB,CAAC,CAAC,CAAC,cAAAf,qBAAA,eAA3BA,qBAAA,CAA6BgB,KAAK,KAAK,CAAC,CAACN,KAAK;EAC5E,MAAMO,SAAS,GAAGR,IAAI,aAAJA,IAAI,gBAAAR,sBAAA,GAAJQ,IAAI,CAAEM,kBAAkB,CAAC,CAAC,CAAC,cAAAd,sBAAA,uBAA3BA,sBAAA,CAA6BiB,IAAI;EAEnD,OACEzB,KAAA,CAAA0B,aAAA,CAAA1B,KAAA,CAAA2B,QAAA,QACE3B,KAAA,CAAA0B,aAAA;IACEE,SAAS,EAAE7B,UAAU,CAAC,uBAAuB,EAAE;MAC7C,cAAc,EAAEc,SAAS;MACzB,cAAc,EAAE,CAACA;IACnB,CAAC;EAAE,GAEFQ,OAAO,IACNrB,KAAA,CAAA0B,aAAA;IACEE,SAAS,EAAE7B,UAAU,CACnB,uIAAuI,EACvI;MACE,WAAW,EAAEc,SAAS;MACtB,wBAAwB,EAAE,CAACA;IAC7B,CACF;EAAE,GAEFb,KAAA,CAAA0B,aAAA,CAAClC,UAAU,MAAE,CACV,CACN,EACAuB,OAAO,IACNf,KAAA,CAAA0B,aAAA;IACEE,SAAS,EAAE7B,UAAU,CACnB,uIAAuI,EACvI;MACE,WAAW,EAAEc,SAAS;MACtB,wBAAwB,EAAE,CAACA;IAC7B,CACF;EAAE,GAEFb,KAAA,CAAA0B,aAAA,CAAC/B,OAAO;IAACiB,IAAI,EAAEhB,WAAW,CAACiC;EAAG,CAAE,CAC7B,CACN,EACA,CAACR,OAAO,IAAIL,IAAI,IACfhB,KAAA,CAAA0B,aAAA;IAAKE,SAAS,EAAC;EAA4D,GACzE5B,KAAA,CAAA0B,aAAA,CAACvB,KAAK;IACJa,IAAI,EAAEA,IAAK;IACXc,WAAW,EAAEpB,QAAQ,KAAKR,QAAQ,CAAC6B,KAAM;IACzCC,SAAS,EAAE5B,yBAAyB,CAACK,UAAU;EAAE,CAClD,CACE,CAEJ,CAAC,EACNT,KAAA,CAAA0B,aAAA;IAAKE,SAAS,EAAC;EAAgB,GAC5B,CAACb,OAAO,IAAI,CAACM,OAAO,IACnBrB,KAAA,CAAA0B,aAAA,CAACjC,WAAW;IAACwC,aAAa,EAAEtB,IAAK;IAACuB,SAAS,EAAEV;EAAU,CAAE,CAExD,CACL,CAAC;AAEP,CAAC;AAED,SAASnB,aAAa","ignoreList":[]}
@@ -1,10 +1,10 @@
1
- import React, { useState } from 'react';
2
- import classnames from 'classnames';
3
1
  import { Select, Size, Tabs, useLayoutProvider } from '@oanda/labs-widget-common';
4
2
  import { useLocale } from '@oanda/mono-i18n';
3
+ import classnames from 'classnames';
4
+ import React, { useState } from 'react';
5
5
  import { BookType, Division } from '../gql/types/graphql';
6
- import { instrumentSelectConfig, instrumentSelectConfigOC, navigationConfig } from './config';
7
6
  import { ChartWithData } from './ChartWithData';
7
+ import { instrumentSelectConfig, instrumentSelectConfigOC, navigationConfig } from './config';
8
8
  const Main = _ref => {
9
9
  let {
10
10
  instrument,
@@ -21,28 +21,28 @@ const Main = _ref => {
21
21
  lang
22
22
  } = useLocale();
23
23
  return React.createElement(React.Fragment, null, size && React.createElement("div", {
24
- "data-testid": "order-book-widget",
25
- className: "lw-text-sm lw-tracking-normal"
24
+ className: "lw-text-sm lw-tracking-normal",
25
+ "data-testid": "order-book-widget"
26
26
  }, React.createElement(Tabs, {
27
+ mobileFullWidth: true,
27
28
  activeTab: bookType,
28
29
  handleClick: e => setBookType(e.currentTarget.value),
29
- labelCallback: lang,
30
30
  items: navigationConfig,
31
- mobileFullWidth: true
31
+ labelCallback: lang
32
32
  }), !instrument && React.createElement("div", {
33
33
  className: classnames('lw-mb-6 lw-mt-12 ', {
34
34
  'lw-w-full': !isDesktop,
35
35
  'lw-w-[280px]': isDesktop
36
36
  })
37
37
  }, React.createElement(Select, {
38
+ options: selectConfig,
38
39
  searchPlaceholder: lang('search'),
39
40
  selectLabel: lang('instrument'),
40
- options: selectConfig,
41
41
  selectedOption: toolInstrument,
42
42
  setSelectedOption: val => setToolInstrument(val)
43
43
  })), React.createElement(ChartWithData, {
44
- instrument: instrument || toolInstrument.id,
45
- bookType: bookType
44
+ bookType: bookType,
45
+ instrument: instrument || toolInstrument.id
46
46
  })));
47
47
  };
48
48
  export { Main };
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","names":["React","useState","classnames","Select","Size","Tabs","useLayoutProvider","useLocale","BookType","Division","instrumentSelectConfig","instrumentSelectConfigOC","navigationConfig","ChartWithData","Main","_ref","instrument","division","selectConfig","Oc","size","isDesktop","DESKTOP","bookType","setBookType","Order","toolInstrument","setToolInstrument","lang","createElement","Fragment","className","activeTab","handleClick","e","currentTarget","value","labelCallback","items","mobileFullWidth","searchPlaceholder","selectLabel","options","selectedOption","setSelectedOption","val","id"],"sources":["../../../src/OrderBookWidget/Main.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport classnames from 'classnames';\nimport {\n Select, Size, Tabs, useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { InstrumentId, MainProps } from './types';\nimport { BookType, Division } from '../gql/types/graphql';\nimport { instrumentSelectConfig, instrumentSelectConfigOC, navigationConfig } from './config';\nimport { ChartWithData } from './ChartWithData';\n\nconst Main = ({ instrument, division }: MainProps) => {\n const selectConfig = division === Division.Oc ? instrumentSelectConfigOC : instrumentSelectConfig;\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const [bookType, setBookType] = useState(BookType.Order);\n const [toolInstrument, setToolInstrument] = useState(selectConfig[0]);\n const { lang } = useLocale();\n\n return (\n <>\n {size && (\n <div data-testid=\"order-book-widget\" className=\"lw-text-sm lw-tracking-normal\">\n <Tabs\n activeTab={bookType}\n handleClick={(e) => setBookType(e.currentTarget.value as BookType)}\n labelCallback={lang}\n items={navigationConfig}\n mobileFullWidth\n />\n {!instrument && (\n <div className={classnames('lw-mb-6 lw-mt-12 ', {\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <Select\n searchPlaceholder={lang('search')}\n selectLabel={lang('instrument')}\n options={selectConfig}\n selectedOption={toolInstrument}\n setSelectedOption={\n (val) => setToolInstrument(val as { id: InstrumentId; label: string })\n }\n />\n </div>\n )}\n <ChartWithData instrument={instrument || toolInstrument.id} bookType={bookType} />\n </div>\n )}\n </>\n );\n};\n\nexport { Main };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,MAAM,EAAEC,IAAI,EAAEC,IAAI,EAAEC,iBAAiB,QAChC,2BAA2B;AAClC,SAASC,SAAS,QAAQ,kBAAkB;AAE5C,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,sBAAsB;AACzD,SAASC,sBAAsB,EAAEC,wBAAwB,EAAEC,gBAAgB,QAAQ,UAAU;AAC7F,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,MAAMC,IAAI,GAAGC,IAAA,IAAyC;EAAA,IAAxC;IAAEC,UAAU;IAAEC;EAAoB,CAAC,GAAAF,IAAA;EAC/C,MAAMG,YAAY,GAAGD,QAAQ,KAAKR,QAAQ,CAACU,EAAE,GAAGR,wBAAwB,GAAGD,sBAAsB;EACjG,MAAM;IAAEU;EAAK,CAAC,GAAGd,iBAAiB,CAAC,CAAC;EACpC,MAAMe,SAAS,GAAGD,IAAI,KAAKhB,IAAI,CAACkB,OAAO;EACvC,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGvB,QAAQ,CAACO,QAAQ,CAACiB,KAAK,CAAC;EACxD,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAG1B,QAAQ,CAACiB,YAAY,CAAC,CAAC,CAAC,CAAC;EACrE,MAAM;IAAEU;EAAK,CAAC,GAAGrB,SAAS,CAAC,CAAC;EAE5B,OACEP,KAAA,CAAA6B,aAAA,CAAA7B,KAAA,CAAA8B,QAAA,QACGV,IAAI,IACLpB,KAAA,CAAA6B,aAAA;IAAK,eAAY,mBAAmB;IAACE,SAAS,EAAC;EAA+B,GAC5E/B,KAAA,CAAA6B,aAAA,CAACxB,IAAI;IACH2B,SAAS,EAAET,QAAS;IACpBU,WAAW,EAAGC,CAAC,IAAKV,WAAW,CAACU,CAAC,CAACC,aAAa,CAACC,KAAiB,CAAE;IACnEC,aAAa,EAAET,IAAK;IACpBU,KAAK,EAAE1B,gBAAiB;IACxB2B,eAAe;EAAA,CAChB,CAAC,EACD,CAACvB,UAAU,IACZhB,KAAA,CAAA6B,aAAA;IAAKE,SAAS,EAAE7B,UAAU,CAAC,mBAAmB,EAAE;MAC9C,WAAW,EAAE,CAACmB,SAAS;MACvB,cAAc,EAAEA;IAClB,CAAC;EAAE,GAEDrB,KAAA,CAAA6B,aAAA,CAAC1B,MAAM;IACLqC,iBAAiB,EAAEZ,IAAI,CAAC,QAAQ,CAAE;IAClCa,WAAW,EAAEb,IAAI,CAAC,YAAY,CAAE;IAChCc,OAAO,EAAExB,YAAa;IACtByB,cAAc,EAAEjB,cAAe;IAC/BkB,iBAAiB,EACdC,GAAG,IAAKlB,iBAAiB,CAACkB,GAA0C;EACtE,CACF,CACE,CACJ,EACD7C,KAAA,CAAA6B,aAAA,CAAChB,aAAa;IAACG,UAAU,EAAEA,UAAU,IAAIU,cAAc,CAACoB,EAAG;IAACvB,QAAQ,EAAEA;EAAS,CAAE,CAC9E,CAEL,CAAC;AAEP,CAAC;AAED,SAAST,IAAI","ignoreList":[]}
1
+ {"version":3,"file":"Main.js","names":["Select","Size","Tabs","useLayoutProvider","useLocale","classnames","React","useState","BookType","Division","ChartWithData","instrumentSelectConfig","instrumentSelectConfigOC","navigationConfig","Main","_ref","instrument","division","selectConfig","Oc","size","isDesktop","DESKTOP","bookType","setBookType","Order","toolInstrument","setToolInstrument","lang","createElement","Fragment","className","mobileFullWidth","activeTab","handleClick","e","currentTarget","value","items","labelCallback","options","searchPlaceholder","selectLabel","selectedOption","setSelectedOption","val","id"],"sources":["../../../src/OrderBookWidget/Main.tsx"],"sourcesContent":["import {\n Select,\n Size,\n Tabs,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport { BookType, Division } from '../gql/types/graphql';\nimport { ChartWithData } from './ChartWithData';\nimport {\n instrumentSelectConfig,\n instrumentSelectConfigOC,\n navigationConfig,\n} from './config';\nimport type { InstrumentId, MainProps } from './types';\n\nconst Main = ({ instrument, division }: MainProps) => {\n const selectConfig =\n division === Division.Oc\n ? instrumentSelectConfigOC\n : instrumentSelectConfig;\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const [bookType, setBookType] = useState(BookType.Order);\n const [toolInstrument, setToolInstrument] = useState(selectConfig[0]);\n const { lang } = useLocale();\n\n return (\n <>\n {size && (\n <div\n className=\"lw-text-sm lw-tracking-normal\"\n data-testid=\"order-book-widget\"\n >\n <Tabs\n mobileFullWidth\n activeTab={bookType}\n handleClick={(e) => setBookType(e.currentTarget.value as BookType)}\n items={navigationConfig}\n labelCallback={lang}\n />\n {!instrument && (\n <div\n className={classnames('lw-mb-6 lw-mt-12 ', {\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <Select\n options={selectConfig}\n searchPlaceholder={lang('search')}\n selectLabel={lang('instrument')}\n selectedOption={toolInstrument}\n setSelectedOption={(val) =>\n setToolInstrument(val as { id: InstrumentId; label: string })\n }\n />\n </div>\n )}\n <ChartWithData\n bookType={bookType}\n instrument={instrument || toolInstrument.id}\n />\n </div>\n )}\n </>\n );\n};\n\nexport { Main };\n"],"mappings":"AAAA,SACEA,MAAM,EACNC,IAAI,EACJC,IAAI,EACJC,iBAAiB,QACZ,2BAA2B;AAClC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAEvC,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,sBAAsB;AACzD,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SACEC,sBAAsB,EACtBC,wBAAwB,EACxBC,gBAAgB,QACX,UAAU;AAGjB,MAAMC,IAAI,GAAGC,IAAA,IAAyC;EAAA,IAAxC;IAAEC,UAAU;IAAEC;EAAoB,CAAC,GAAAF,IAAA;EAC/C,MAAMG,YAAY,GAChBD,QAAQ,KAAKR,QAAQ,CAACU,EAAE,GACpBP,wBAAwB,GACxBD,sBAAsB;EAC5B,MAAM;IAAES;EAAK,CAAC,GAAGjB,iBAAiB,CAAC,CAAC;EACpC,MAAMkB,SAAS,GAAGD,IAAI,KAAKnB,IAAI,CAACqB,OAAO;EACvC,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGjB,QAAQ,CAACC,QAAQ,CAACiB,KAAK,CAAC;EACxD,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGpB,QAAQ,CAACW,YAAY,CAAC,CAAC,CAAC,CAAC;EACrE,MAAM;IAAEU;EAAK,CAAC,GAAGxB,SAAS,CAAC,CAAC;EAE5B,OACEE,KAAA,CAAAuB,aAAA,CAAAvB,KAAA,CAAAwB,QAAA,QACGV,IAAI,IACHd,KAAA,CAAAuB,aAAA;IACEE,SAAS,EAAC,+BAA+B;IACzC,eAAY;EAAmB,GAE/BzB,KAAA,CAAAuB,aAAA,CAAC3B,IAAI;IACH8B,eAAe;IACfC,SAAS,EAAEV,QAAS;IACpBW,WAAW,EAAGC,CAAC,IAAKX,WAAW,CAACW,CAAC,CAACC,aAAa,CAACC,KAAiB,CAAE;IACnEC,KAAK,EAAEzB,gBAAiB;IACxB0B,aAAa,EAAEX;EAAK,CACrB,CAAC,EACD,CAACZ,UAAU,IACVV,KAAA,CAAAuB,aAAA;IACEE,SAAS,EAAE1B,UAAU,CAAC,mBAAmB,EAAE;MACzC,WAAW,EAAE,CAACgB,SAAS;MACvB,cAAc,EAAEA;IAClB,CAAC;EAAE,GAEHf,KAAA,CAAAuB,aAAA,CAAC7B,MAAM;IACLwC,OAAO,EAAEtB,YAAa;IACtBuB,iBAAiB,EAAEb,IAAI,CAAC,QAAQ,CAAE;IAClCc,WAAW,EAAEd,IAAI,CAAC,YAAY,CAAE;IAChCe,cAAc,EAAEjB,cAAe;IAC/BkB,iBAAiB,EAAGC,GAAG,IACrBlB,iBAAiB,CAACkB,GAA0C;EAC7D,CACF,CACE,CACN,EACDvC,KAAA,CAAAuB,aAAA,CAACnB,aAAa;IACZa,QAAQ,EAAEA,QAAS;IACnBP,UAAU,EAAEA,UAAU,IAAIU,cAAc,CAACoB;EAAG,CAC7C,CACE,CAEP,CAAC;AAEP,CAAC;AAED,SAAShC,IAAI","ignoreList":[]}
@@ -1,8 +1,8 @@
1
- import React from 'react';
2
1
  import { ApolloClient, InMemoryCache } from '@apollo/client';
3
2
  import { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';
4
- import { Main } from './Main';
3
+ import React from 'react';
5
4
  import { translations } from '../translations';
5
+ import { Main } from './Main';
6
6
  const OrderBookWidget = _ref => {
7
7
  let {
8
8
  graphqlUrl,
@@ -18,17 +18,17 @@ const OrderBookWidget = _ref => {
18
18
  cache: new InMemoryCache()
19
19
  });
20
20
  return React.createElement(WidgetProvider, {
21
- locale: locale,
22
- translations: translations,
23
21
  client: client,
24
- theme: theme
22
+ locale: locale,
23
+ theme: theme,
24
+ translations: translations
25
25
  }, React.createElement(WidgetWrapper, {
26
- logoLink: logoLink,
26
+ isParamError: isParamError,
27
27
  linkArea: "logo",
28
- isParamError: isParamError
28
+ logoLink: logoLink
29
29
  }, React.createElement(Main, {
30
- instrument: instrument,
31
- division: division
30
+ division: division,
31
+ instrument: instrument
32
32
  })));
33
33
  };
34
34
  export { OrderBookWidget };
@@ -1 +1 @@
1
- {"version":3,"file":"OrderBookWidget.js","names":["React","ApolloClient","InMemoryCache","WidgetProvider","WidgetWrapper","Main","translations","OrderBookWidget","_ref","graphqlUrl","instrument","locale","theme","isParamError","division","logoLink","client","uri","cache","createElement","linkArea"],"sources":["../../../src/OrderBookWidget/OrderBookWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache } from '@apollo/client';\nimport { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';\n\nimport { Main } from './Main';\nimport { OrderBookWidgetConfig } from './types';\nimport { translations } from '../translations';\n\nconst OrderBookWidget = ({\n graphqlUrl,\n instrument,\n locale,\n theme,\n isParamError,\n division,\n logoLink,\n}: OrderBookWidgetConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <WidgetProvider\n locale={locale}\n translations={translations}\n client={client}\n theme={theme}\n >\n <WidgetWrapper\n logoLink={logoLink}\n linkArea=\"logo\"\n isParamError={isParamError}\n >\n <Main instrument={instrument} division={division} />\n </WidgetWrapper>\n </WidgetProvider>\n );\n};\n\nexport { OrderBookWidget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,QAAQ,gBAAgB;AAC5D,SAASC,cAAc,EAAEC,aAAa,QAAQ,2BAA2B;AAEzE,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,eAAe,GAAGC,IAAA,IAQK;EAAA,IARJ;IACvBC,UAAU;IACVC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,QAAQ;IACRC;EACqB,CAAC,GAAAP,IAAA;EACtB,MAAMQ,MAAM,GAAG,IAAIf,YAAY,CAAC;IAC9BgB,GAAG,EAAER,UAAU;IACfS,KAAK,EAAE,IAAIhB,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEF,KAAA,CAAAmB,aAAA,CAAChB,cAAc;IACbQ,MAAM,EAAEA,MAAO;IACfL,YAAY,EAAEA,YAAa;IAC3BU,MAAM,EAAEA,MAAO;IACfJ,KAAK,EAAEA;EAAM,GAEbZ,KAAA,CAAAmB,aAAA,CAACf,aAAa;IACZW,QAAQ,EAAEA,QAAS;IACnBK,QAAQ,EAAC,MAAM;IACfP,YAAY,EAAEA;EAAa,GAE3Bb,KAAA,CAAAmB,aAAA,CAACd,IAAI;IAACK,UAAU,EAAEA,UAAW;IAACI,QAAQ,EAAEA;EAAS,CAAE,CACtC,CACD,CAAC;AAErB,CAAC;AAED,SAASP,eAAe","ignoreList":[]}
1
+ {"version":3,"file":"OrderBookWidget.js","names":["ApolloClient","InMemoryCache","WidgetProvider","WidgetWrapper","React","translations","Main","OrderBookWidget","_ref","graphqlUrl","instrument","locale","theme","isParamError","division","logoLink","client","uri","cache","createElement","linkArea"],"sources":["../../../src/OrderBookWidget/OrderBookWidget.tsx"],"sourcesContent":["import { ApolloClient, InMemoryCache } from '@apollo/client';\nimport { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';\nimport React from 'react';\n\nimport { translations } from '../translations';\nimport { Main } from './Main';\nimport type { OrderBookWidgetConfig } from './types';\n\nconst OrderBookWidget = ({\n graphqlUrl,\n instrument,\n locale,\n theme,\n isParamError,\n division,\n logoLink,\n}: OrderBookWidgetConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <WidgetProvider\n client={client}\n locale={locale}\n theme={theme}\n translations={translations}\n >\n <WidgetWrapper\n isParamError={isParamError}\n linkArea=\"logo\"\n logoLink={logoLink}\n >\n <Main division={division} instrument={instrument} />\n </WidgetWrapper>\n </WidgetProvider>\n );\n};\n\nexport { OrderBookWidget };\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,aAAa,QAAQ,gBAAgB;AAC5D,SAASC,cAAc,EAAEC,aAAa,QAAQ,2BAA2B;AACzE,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,IAAI,QAAQ,QAAQ;AAG7B,MAAMC,eAAe,GAAGC,IAAA,IAQK;EAAA,IARJ;IACvBC,UAAU;IACVC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,QAAQ;IACRC;EACqB,CAAC,GAAAP,IAAA;EACtB,MAAMQ,MAAM,GAAG,IAAIhB,YAAY,CAAC;IAC9BiB,GAAG,EAAER,UAAU;IACfS,KAAK,EAAE,IAAIjB,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEG,KAAA,CAAAe,aAAA,CAACjB,cAAc;IACbc,MAAM,EAAEA,MAAO;IACfL,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbP,YAAY,EAAEA;EAAa,GAE3BD,KAAA,CAAAe,aAAA,CAAChB,aAAa;IACZU,YAAY,EAAEA,YAAa;IAC3BO,QAAQ,EAAC,MAAM;IACfL,QAAQ,EAAEA;EAAS,GAEnBX,KAAA,CAAAe,aAAA,CAACb,IAAI;IAACQ,QAAQ,EAAEA,QAAS;IAACJ,UAAU,EAAEA;EAAW,CAAE,CACtC,CACD,CAAC;AAErB,CAAC;AAED,SAASH,eAAe","ignoreList":[]}
@@ -1,12 +1,12 @@
1
- import React, { useRef, useEffect } from 'react';
2
- import ReactEChartsCore from 'echarts-for-react/lib/core';
3
- import * as echarts from 'echarts/core';
1
+ import { colorPalette, getChartTheme, Size, Theme, useLayoutProvider } from '@oanda/labs-widget-common';
2
+ import { useLocale } from '@oanda/mono-i18n';
4
3
  import { CustomChart } from 'echarts/charts';
4
+ import { DatasetComponent, DataZoomInsideComponent, GraphicComponent, GridSimpleComponent, MarkLineComponent, TitleComponent, ToolboxComponent, TooltipComponent } from 'echarts/components';
5
+ import * as echarts from 'echarts/core';
5
6
  import { CanvasRenderer } from 'echarts/renderers';
6
- import { GridSimpleComponent, GraphicComponent, TooltipComponent, TitleComponent, MarkLineComponent, ToolboxComponent, DataZoomInsideComponent, DatasetComponent } from 'echarts/components';
7
- import { Theme, useLayoutProvider, colorPalette, getChartTheme, Size } from '@oanda/labs-widget-common';
8
- import { useLocale } from '@oanda/mono-i18n';
9
- import { getResponsiveOption, getOption } from './getOption';
7
+ import ReactEChartsCore from 'echarts-for-react/lib/core';
8
+ import React, { useEffect, useRef } from 'react';
9
+ import { getOption, getResponsiveOption } from './getOption';
10
10
  echarts.use([GridSimpleComponent, GraphicComponent, TooltipComponent, TitleComponent, CanvasRenderer, CustomChart, MarkLineComponent, ToolboxComponent, DataZoomInsideComponent, DatasetComponent]);
11
11
  echarts.registerTheme('dark_theme', getChartTheme(Theme.Dark));
12
12
  echarts.registerTheme('light_theme', getChartTheme(Theme.Light));
@@ -57,13 +57,8 @@ export const Chart = _ref => {
57
57
  className: "lw-relative lw-w-full",
58
58
  "data-testid": "order-book-chart"
59
59
  }, React.createElement("div", null, data && React.createElement(ReactEChartsCore, {
60
- echarts: echarts,
61
60
  ref: echartRef,
62
- theme: isDark ? 'dark_theme' : 'light_theme',
63
- style: {
64
- height: isDesktop ? '450px' : '390px',
65
- width: '100%'
66
- },
61
+ echarts: echarts,
67
62
  option: getOption({
68
63
  data,
69
64
  precision,
@@ -71,7 +66,12 @@ export const Chart = _ref => {
71
66
  isOrderBook,
72
67
  isDesktop,
73
68
  lang
74
- })
69
+ }),
70
+ style: {
71
+ height: isDesktop ? '450px' : '390px',
72
+ width: '100%'
73
+ },
74
+ theme: isDark ? 'dark_theme' : 'light_theme'
75
75
  })));
76
76
  };
77
77
  //# sourceMappingURL=Chart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.js","names":["React","useRef","useEffect","ReactEChartsCore","echarts","CustomChart","CanvasRenderer","GridSimpleComponent","GraphicComponent","TooltipComponent","TitleComponent","MarkLineComponent","ToolboxComponent","DataZoomInsideComponent","DatasetComponent","Theme","useLayoutProvider","colorPalette","getChartTheme","Size","useLocale","getResponsiveOption","getOption","use","registerTheme","Dark","Light","Chart","_ref","data","isOrderBook","precision","lang","isDark","size","isDesktop","DESKTOP","echartRef","current","echartInstance","getEchartsInstance","on","color","bottleGreenLight","setOption","bottleGreenLight70","orange70","raspberryDark70","orange","raspberryDark","createElement","className","ref","theme","style","height","width","option"],"sources":["../../../../../src/OrderBookWidget/components/Chart/Chart.tsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport ReactEChartsCore from 'echarts-for-react/lib/core';\nimport * as echarts from 'echarts/core';\nimport { CustomChart } from 'echarts/charts';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport {\n GridSimpleComponent,\n GraphicComponent,\n TooltipComponent,\n TitleComponent,\n MarkLineComponent,\n ToolboxComponent,\n DataZoomInsideComponent,\n DatasetComponent,\n} from 'echarts/components';\nimport {\n Theme, useLayoutProvider, colorPalette, getChartTheme, Size,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { getResponsiveOption, getOption } from './getOption';\nimport { ChartProps } from './types';\n\necharts.use([\n GridSimpleComponent,\n GraphicComponent,\n TooltipComponent,\n TitleComponent,\n CanvasRenderer,\n CustomChart,\n MarkLineComponent,\n ToolboxComponent,\n DataZoomInsideComponent,\n DatasetComponent,\n]);\n\necharts.registerTheme('dark_theme', getChartTheme(Theme.Dark));\necharts.registerTheme('light_theme', getChartTheme(Theme.Light));\n\nexport const Chart = ({ data, isOrderBook, precision }: ChartProps) => {\n const { lang } = useLocale();\n const { isDark, size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n\n const echartRef = useRef(null);\n\n useEffect(() => {\n if (echartRef.current) {\n // @ts-ignore\n const echartInstance = echartRef.current.getEchartsInstance() as echarts.EChartsType;\n\n echartInstance.on('highlight', () => {\n if ((\n echartInstance.getOption().color as echarts.Color[])[0] === colorPalette.bottleGreenLight\n ) {\n echartInstance.setOption({\n color: [\n colorPalette.bottleGreenLight70,\n isDark ? colorPalette.orange70 : colorPalette.raspberryDark70,\n ],\n });\n }\n });\n\n echartInstance.on('globalout', () => {\n echartInstance.setOption({\n color: [\n colorPalette.bottleGreenLight,\n isDark ? colorPalette.orange : colorPalette.raspberryDark,\n ],\n });\n });\n }\n }, [echartRef, isDark]);\n\n useEffect(() => {\n if (echartRef.current) {\n // @ts-ignore\n const echartInstance = echartRef.current.getEchartsInstance() as echarts.EChartsType;\n\n echartInstance.setOption(\n getResponsiveOption({\n isDark, isOrderBook, isDesktop, lang,\n }),\n );\n }\n }, [echartRef, isDesktop, isDark, isOrderBook, lang]);\n\n return (\n <div className=\"lw-relative lw-w-full\" data-testid=\"order-book-chart\">\n <div>\n {data && (\n <ReactEChartsCore\n echarts={echarts}\n ref={echartRef}\n theme={isDark ? 'dark_theme' : 'light_theme'}\n style={{\n height: isDesktop ? '450px' : '390px',\n width: '100%',\n }}\n option={getOption({\n data, precision, isDark, isOrderBook, isDesktop, lang,\n })}\n />\n )}\n </div>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Chart.js","names":["colorPalette","getChartTheme","Size","Theme","useLayoutProvider","useLocale","CustomChart","DatasetComponent","DataZoomInsideComponent","GraphicComponent","GridSimpleComponent","MarkLineComponent","TitleComponent","ToolboxComponent","TooltipComponent","echarts","CanvasRenderer","ReactEChartsCore","React","useEffect","useRef","getOption","getResponsiveOption","use","registerTheme","Dark","Light","Chart","_ref","data","isOrderBook","precision","lang","isDark","size","isDesktop","DESKTOP","echartRef","current","echartInstance","getEchartsInstance","on","color","bottleGreenLight","setOption","bottleGreenLight70","orange70","raspberryDark70","orange","raspberryDark","createElement","className","ref","option","style","height","width","theme"],"sources":["../../../../../src/OrderBookWidget/components/Chart/Chart.tsx"],"sourcesContent":["import {\n colorPalette,\n getChartTheme,\n Size,\n Theme,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { CustomChart } from 'echarts/charts';\nimport {\n DatasetComponent,\n DataZoomInsideComponent,\n GraphicComponent,\n GridSimpleComponent,\n MarkLineComponent,\n TitleComponent,\n ToolboxComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport ReactEChartsCore from 'echarts-for-react/lib/core';\nimport React, { useEffect, useRef } from 'react';\n\nimport { getOption, getResponsiveOption } from './getOption';\nimport type { ChartProps } from './types';\n\necharts.use([\n GridSimpleComponent,\n GraphicComponent,\n TooltipComponent,\n TitleComponent,\n CanvasRenderer,\n CustomChart,\n MarkLineComponent,\n ToolboxComponent,\n DataZoomInsideComponent,\n DatasetComponent,\n]);\n\necharts.registerTheme('dark_theme', getChartTheme(Theme.Dark));\necharts.registerTheme('light_theme', getChartTheme(Theme.Light));\n\nexport const Chart = ({ data, isOrderBook, precision }: ChartProps) => {\n const { lang } = useLocale();\n const { isDark, size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n\n const echartRef = useRef<ReactEChartsCore | null>(null);\n\n useEffect(() => {\n if (echartRef.current) {\n const echartInstance = echartRef.current.getEchartsInstance();\n\n echartInstance.on('highlight', () => {\n if (\n (echartInstance.getOption().color as echarts.Color[])[0] ===\n colorPalette.bottleGreenLight\n ) {\n echartInstance.setOption({\n color: [\n colorPalette.bottleGreenLight70,\n isDark ? colorPalette.orange70 : colorPalette.raspberryDark70,\n ],\n });\n }\n });\n\n echartInstance.on('globalout', () => {\n echartInstance.setOption({\n color: [\n colorPalette.bottleGreenLight,\n isDark ? colorPalette.orange : colorPalette.raspberryDark,\n ],\n });\n });\n }\n }, [echartRef, isDark]);\n\n useEffect(() => {\n if (echartRef.current) {\n const echartInstance = echartRef.current.getEchartsInstance();\n\n echartInstance.setOption(\n getResponsiveOption({\n isDark,\n isOrderBook,\n isDesktop,\n lang,\n })\n );\n }\n }, [echartRef, isDesktop, isDark, isOrderBook, lang]);\n\n return (\n <div className=\"lw-relative lw-w-full\" data-testid=\"order-book-chart\">\n <div>\n {data && (\n <ReactEChartsCore\n ref={echartRef}\n echarts={echarts}\n option={getOption({\n data,\n precision,\n isDark,\n isOrderBook,\n isDesktop,\n lang,\n })}\n style={{\n height: isDesktop ? '450px' : '390px',\n width: '100%',\n }}\n theme={isDark ? 'dark_theme' : 'light_theme'}\n />\n )}\n </div>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -5,9 +5,9 @@ const tooltipFormatter = _ref => {
5
5
  isOrderBook,
6
6
  lang
7
7
  } = _ref;
8
- const priceText = `${lang('price')}: ${data[0].toFixed(precision)}`;
9
- const buyText = data[1] ? `<br />${lang(isOrderBook ? 'buy' : 'long_positions')}: ${data[1]}%` : '';
10
- const sellText = data[2] ? `<br />${lang(isOrderBook ? 'sell' : 'short_positions')}: ${data[2] * -1}%` : '';
8
+ const priceText = "".concat(lang('price'), ": ").concat(data[0].toFixed(precision));
9
+ const buyText = data[1] ? "<br />".concat(lang(isOrderBook ? 'buy' : 'long_positions'), ": ").concat(data[1], "%") : '';
10
+ const sellText = data[2] ? "<br />".concat(lang(isOrderBook ? 'sell' : 'short_positions'), ": ").concat(data[2] * -1, "%") : '';
11
11
  return priceText + buyText + sellText;
12
12
  };
13
13
  export { tooltipFormatter };
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.js","names":["tooltipFormatter","_ref","data","precision","isOrderBook","lang","priceText","toFixed","buyText","sellText"],"sources":["../../../../../src/OrderBookWidget/components/Chart/formatters.ts"],"sourcesContent":["import { TooltipFormatterType } from './types';\n\nconst tooltipFormatter: TooltipFormatterType = ({\n data, precision, isOrderBook, lang,\n}) => {\n const priceText = `${lang('price')}: ${data[0].toFixed(precision)}`;\n const buyText = data[1] ? `<br />${lang(isOrderBook ? 'buy' : 'long_positions')}: ${data[1]}%` : '';\n const sellText = data[2] ? `<br />${lang(isOrderBook ? 'sell' : 'short_positions')}: ${data[2] * -1}%` : '';\n\n return priceText + buyText + sellText;\n};\n\nexport { tooltipFormatter };\n"],"mappings":"AAEA,MAAMA,gBAAsC,GAAGC,IAAA,IAEzC;EAAA,IAF0C;IAC9CC,IAAI;IAAEC,SAAS;IAAEC,WAAW;IAAEC;EAChC,CAAC,GAAAJ,IAAA;EACC,MAAMK,SAAS,GAAG,GAAGD,IAAI,CAAC,OAAO,CAAC,KAAKH,IAAI,CAAC,CAAC,CAAC,CAACK,OAAO,CAACJ,SAAS,CAAC,EAAE;EACnE,MAAMK,OAAO,GAAGN,IAAI,CAAC,CAAC,CAAC,GAAG,SAASG,IAAI,CAACD,WAAW,GAAG,KAAK,GAAG,gBAAgB,CAAC,KAAKF,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;EACnG,MAAMO,QAAQ,GAAGP,IAAI,CAAC,CAAC,CAAC,GAAG,SAASG,IAAI,CAACD,WAAW,GAAG,MAAM,GAAG,iBAAiB,CAAC,KAAKF,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE;EAE3G,OAAOI,SAAS,GAAGE,OAAO,GAAGC,QAAQ;AACvC,CAAC;AAED,SAAST,gBAAgB","ignoreList":[]}
1
+ {"version":3,"file":"formatters.js","names":["tooltipFormatter","_ref","data","precision","isOrderBook","lang","priceText","concat","toFixed","buyText","sellText"],"sources":["../../../../../src/OrderBookWidget/components/Chart/formatters.ts"],"sourcesContent":["import type { TooltipFormatterType } from './types';\n\nconst tooltipFormatter: TooltipFormatterType = ({\n data,\n precision,\n isOrderBook,\n lang,\n}) => {\n const priceText = `${lang('price')}: ${data[0].toFixed(precision)}`;\n const buyText = data[1]\n ? `<br />${lang(isOrderBook ? 'buy' : 'long_positions')}: ${data[1]}%`\n : '';\n const sellText = data[2]\n ? `<br />${lang(isOrderBook ? 'sell' : 'short_positions')}: ${data[2] * -1}%`\n : '';\n\n return priceText + buyText + sellText;\n};\n\nexport { tooltipFormatter };\n"],"mappings":"AAEA,MAAMA,gBAAsC,GAAGC,IAAA,IAKzC;EAAA,IAL0C;IAC9CC,IAAI;IACJC,SAAS;IACTC,WAAW;IACXC;EACF,CAAC,GAAAJ,IAAA;EACC,MAAMK,SAAS,MAAAC,MAAA,CAAMF,IAAI,CAAC,OAAO,CAAC,QAAAE,MAAA,CAAKL,IAAI,CAAC,CAAC,CAAC,CAACM,OAAO,CAACL,SAAS,CAAC,CAAE;EACnE,MAAMM,OAAO,GAAGP,IAAI,CAAC,CAAC,CAAC,YAAAK,MAAA,CACVF,IAAI,CAACD,WAAW,GAAG,KAAK,GAAG,gBAAgB,CAAC,QAAAG,MAAA,CAAKL,IAAI,CAAC,CAAC,CAAC,SACjE,EAAE;EACN,MAAMQ,QAAQ,GAAGR,IAAI,CAAC,CAAC,CAAC,YAAAK,MAAA,CACXF,IAAI,CAACD,WAAW,GAAG,MAAM,GAAG,iBAAiB,CAAC,QAAAG,MAAA,CAAKL,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SACxE,EAAE;EAEN,OAAOI,SAAS,GAAGG,OAAO,GAAGC,QAAQ;AACvC,CAAC;AAED,SAASV,gBAAgB","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { colorPalette, getGridLines, getZoomControls } from '@oanda/labs-widget-common';
2
- import { INITIAL_BARS, CHART_WIDTH, CHART_HEIGHT_DESKTOP, CHART_HEIGHT_MOBILE, X_LABEL_SIZE, Y_LABEL_SIZE_DESKTOP, Y_LABEL_SIZE_MOBILE, ZOOM_CONTROL_HEIGHT } from './constants';
2
+ import { CHART_HEIGHT_DESKTOP, CHART_HEIGHT_MOBILE, CHART_WIDTH, INITIAL_BARS, X_LABEL_SIZE, Y_LABEL_SIZE_DESKTOP, Y_LABEL_SIZE_MOBILE, ZOOM_CONTROL_HEIGHT } from './constants';
3
3
  import { tooltipFormatter } from './formatters';
4
4
  export const getResponsiveOption = _ref => {
5
5
  let {
@@ -22,8 +22,8 @@ export const getResponsiveOption = _ref => {
22
22
  name: 'main-grid',
23
23
  top: '48px',
24
24
  left: '0px',
25
- right: `${isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE}px`,
26
- bottom: `${isDesktop ? X_LABEL_SIZE : X_LABEL_SIZE + ZOOM_CONTROL_HEIGHT}px`
25
+ right: "".concat(isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE, "px"),
26
+ bottom: "".concat(isDesktop ? X_LABEL_SIZE : X_LABEL_SIZE + ZOOM_CONTROL_HEIGHT, "px")
27
27
  }],
28
28
  yAxis: {
29
29
  axisLabel: {
@@ -75,7 +75,7 @@ export const getResponsiveOption = _ref => {
75
75
  }]
76
76
  }, {
77
77
  type: 'group',
78
- right: `${(isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE) + 8}px'`,
78
+ right: "".concat((isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE) + 8, "px'"),
79
79
  top: '56px',
80
80
  silent: true,
81
81
  children: [{
@@ -110,6 +110,7 @@ export const getResponsiveOption = _ref => {
110
110
  };
111
111
  };
112
112
  export const getOption = _ref2 => {
113
+ var _data$orderPositionBo, _data$orderPositionBo2, _data$orderPositionBo3;
113
114
  let {
114
115
  data,
115
116
  precision,
@@ -118,9 +119,9 @@ export const getOption = _ref2 => {
118
119
  isDesktop,
119
120
  lang
120
121
  } = _ref2;
121
- const buckets = data.orderPositionBooks[0]?.buckets || [];
122
- const bucketWidth = data.orderPositionBooks[0]?.bucketWidth;
123
- const price = data.orderPositionBooks[0]?.price;
122
+ const buckets = ((_data$orderPositionBo = data.orderPositionBooks[0]) === null || _data$orderPositionBo === void 0 ? void 0 : _data$orderPositionBo.buckets) || [];
123
+ const bucketWidth = (_data$orderPositionBo2 = data.orderPositionBooks[0]) === null || _data$orderPositionBo2 === void 0 ? void 0 : _data$orderPositionBo2.bucketWidth;
124
+ const price = (_data$orderPositionBo3 = data.orderPositionBooks[0]) === null || _data$orderPositionBo3 === void 0 ? void 0 : _data$orderPositionBo3.price;
124
125
  const bucketPrecision = bucketWidth.toString().split('.')[1].length || 0;
125
126
  const dataset = buckets.map(item => [item.price, Number(item.longCountPercent), Number(item.shortCountPercent) * -1]);
126
127
  const zoomInitialStartValue = price - bucketWidth * INITIAL_BARS * 0.5;
@@ -169,8 +170,8 @@ export const getOption = _ref2 => {
169
170
  name: 'main-grid',
170
171
  top: '48px',
171
172
  left: '0px',
172
- right: `${isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE}px`,
173
- bottom: `${isDesktop ? X_LABEL_SIZE : X_LABEL_SIZE + ZOOM_CONTROL_HEIGHT}px`
173
+ right: "".concat(isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE, "px"),
174
+ bottom: "".concat(isDesktop ? X_LABEL_SIZE : X_LABEL_SIZE + ZOOM_CONTROL_HEIGHT, "px")
174
175
  }],
175
176
  xAxis: {
176
177
  type: 'value',
@@ -184,7 +185,7 @@ export const getOption = _ref2 => {
184
185
  },
185
186
  axisLabel: {
186
187
  padding: [7, 12, 0, 12],
187
- formatter: value => value === 0 ? '%' : `${Math.abs(value)}%`,
188
+ formatter: value => value === 0 ? '%' : "".concat(Math.abs(value), "%"),
188
189
  hideOverlap: true,
189
190
  alignMaxLabel: 'right',
190
191
  alignMinLabel: 'left'
@@ -1 +1 @@
1
- {"version":3,"file":"getOption.js","names":["colorPalette","getGridLines","getZoomControls","INITIAL_BARS","CHART_WIDTH","CHART_HEIGHT_DESKTOP","CHART_HEIGHT_MOBILE","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","ZOOM_CONTROL_HEIGHT","tooltipFormatter","getResponsiveOption","_ref","isDark","isOrderBook","isDesktop","lang","desktopGridLines","chartWidth","chartHeight","xLabelsSize","yLabelSize","bottomLeftBox","marginBottom","grid","name","top","left","right","bottom","yAxis","axisLabel","margin","series","type","id","markLine","label","padding","graphic","silent","children","z","shape","width","height","style","fill","darkGray","white","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","black","text","getOption","_ref2","data","precision","buckets","orderPositionBooks","bucketWidth","price","bucketPrecision","toString","split","length","dataset","map","item","Number","longCountPercent","shortCountPercent","zoomInitialStartValue","zoomInitialEndValue","max","Math","min","abs","range","animation","color","bottleGreenLight","orange","raspberryDark","title","toUpperCase","textStyle","fontSize","toolbox","feature","resetStartValue","resetEndValue","dataZoom","realtime","startValue","endValue","yAxisIndex","minValueSpan","tooltip","trigger","axisPointer","axis","formatter","val","extraCssText","xAxis","floor","ceil","axisTick","show","axisLine","value","hideOverlap","alignMaxLabel","alignMinLabel","position","overflow","showMaxLabel","showMinLabel","toFixed","source","clip","encode","x","y","renderItem","params","api","yValue","xStart","coord","xEnd","bucketWidthHeight","size","rectShape","emphasis","visual","symbol","symbolOffset","symbolRotate","symbolSize","lineStyle","bottleGreenDark","distance","undefined","backgroundColor"],"sources":["../../../../../src/OrderBookWidget/components/Chart/getOption.ts"],"sourcesContent":["import { colorPalette, getGridLines, getZoomControls } from '@oanda/labs-widget-common';\nimport {\n INITIAL_BARS,\n CHART_WIDTH,\n CHART_HEIGHT_DESKTOP,\n CHART_HEIGHT_MOBILE,\n X_LABEL_SIZE,\n Y_LABEL_SIZE_DESKTOP,\n Y_LABEL_SIZE_MOBILE,\n ZOOM_CONTROL_HEIGHT,\n} from './constants';\nimport { GetOptionType, GetResponsiveOptionsProps } from './types';\nimport { tooltipFormatter } from './formatters';\n\nexport const getResponsiveOption = (\n {\n isDark, isOrderBook, isDesktop, lang,\n }\n : GetResponsiveOptionsProps,\n) => {\n const desktopGridLines = getGridLines({\n isDark,\n chartWidth: CHART_WIDTH,\n chartHeight: isDesktop ? CHART_HEIGHT_DESKTOP : CHART_HEIGHT_MOBILE,\n xLabelsSize: isDesktop ? X_LABEL_SIZE : X_LABEL_SIZE + ZOOM_CONTROL_HEIGHT,\n yLabelSize: isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE,\n bottomLeftBox: isDesktop,\n marginBottom: isDesktop ? 0 : ZOOM_CONTROL_HEIGHT,\n });\n\n return {\n grid: [\n {\n name: 'main-grid',\n top: '48px',\n left: '0px',\n right: `${isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE}px`,\n bottom: `${isDesktop ? X_LABEL_SIZE : X_LABEL_SIZE + ZOOM_CONTROL_HEIGHT}px`,\n },\n ],\n yAxis: {\n axisLabel: {\n margin: isDesktop ? 10 : 0,\n },\n },\n series: [\n {\n type: 'custom',\n name: 'current-price',\n id: 'current-price',\n markLine: {\n label: {\n padding: isDesktop ? [5, 15, 5, 15] : [5, 12, 5, 5],\n },\n },\n },\n ],\n graphic: [\n ...desktopGridLines,\n {\n type: 'group',\n left: '8px',\n top: '56px',\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n left: 'center',\n top: 'middle',\n shape: {\n width: 70,\n height: 30,\n },\n style: {\n fill: isDark ? colorPalette.darkGray : colorPalette.white,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: 'rgba(0,0,0,0.1)',\n },\n },\n {\n type: 'text',\n z: 100,\n left: 'center',\n top: 'middle',\n style: {\n fill: isDark ? colorPalette.white : colorPalette.black,\n width: 70,\n height: 30,\n text: lang(isOrderBook ? 'sell' : 'short'),\n },\n },\n ],\n },\n {\n type: 'group',\n right: `${(isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE) + 8}px'`,\n top: '56px',\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n right: 'center',\n top: 'middle',\n shape: {\n width: 70,\n height: 30,\n },\n style: {\n fill: isDark ? colorPalette.darkGray : colorPalette.white,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: 'rgba(0,0,0,0.1)',\n },\n },\n {\n type: 'text',\n z: 100,\n right: 'center',\n top: 'middle',\n style: {\n fill: isDark ? colorPalette.white : colorPalette.black,\n width: 70,\n height: 30,\n text: lang(isOrderBook ? 'buy' : 'long'),\n },\n },\n ],\n },\n ],\n };\n};\n\nexport const getOption: GetOptionType = ({\n data, precision, isDark, isOrderBook, isDesktop, lang,\n}) => {\n const buckets = data.orderPositionBooks[0]?.buckets || [];\n const bucketWidth = data.orderPositionBooks[0]?.bucketWidth!;\n const price = data.orderPositionBooks[0]?.price!;\n const bucketPrecision = bucketWidth.toString().split('.')[1].length || 0;\n\n const dataset = buckets.map((item) => ([\n item!.price,\n Number(item!.longCountPercent),\n Number(item!.shortCountPercent) * -1,\n ]));\n\n const zoomInitialStartValue = price - (bucketWidth * INITIAL_BARS * 0.5);\n const zoomInitialEndValue = price + (bucketWidth * INITIAL_BARS * 0.5);\n\n const max = Math.max(...dataset.map((item) => item[1]));\n const min = Math.abs(Math.min(...dataset.map((item) => item[2])));\n\n const range = max > min ? max : min;\n\n return (\n {\n animation: false,\n color: [\n colorPalette.bottleGreenLight,\n isDark ? colorPalette.orange : colorPalette.raspberryDark,\n ],\n title: {\n text: lang(isOrderBook ? 'open_orders' : 'open_positions').toUpperCase(),\n padding: 20,\n textStyle: {\n fontSize: 14,\n },\n },\n toolbox: {\n feature: getZoomControls({\n resetStartValue: zoomInitialStartValue,\n resetEndValue: zoomInitialEndValue,\n }),\n },\n dataZoom: [\n {\n type: 'inside',\n realtime: true,\n startValue: zoomInitialStartValue,\n endValue: zoomInitialEndValue,\n\n yAxisIndex: 0,\n minValueSpan: 10 * bucketWidth,\n },\n ],\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n axis: 'y',\n },\n formatter: (val) => tooltipFormatter({\n data: (val as { data: number[] }[])[0].data,\n precision: bucketPrecision,\n isOrderBook,\n lang,\n }),\n extraCssText: 'z-index: 1',\n },\n grid: [\n {\n name: 'main-grid',\n top: '48px',\n left: '0px',\n right: `${isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE}px`,\n bottom: `${isDesktop ? X_LABEL_SIZE : X_LABEL_SIZE + ZOOM_CONTROL_HEIGHT}px`,\n },\n ],\n xAxis: {\n type: 'value',\n min: Math.floor(range * -1.1),\n max: Math.ceil(range * 1.1),\n axisTick: { show: false },\n axisLine: { show: false },\n axisLabel: {\n padding: [7, 12, 0, 12],\n formatter: (value) => (value === 0 ? '%' : `${Math.abs(value)}%`),\n hideOverlap: true,\n alignMaxLabel: 'right',\n alignMinLabel: 'left',\n },\n },\n yAxis: {\n type: 'value',\n position: 'right',\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n overflow: 'truncate',\n width: (isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE) - 10,\n margin: isDesktop ? 10 : 0,\n showMaxLabel: false,\n showMinLabel: false,\n padding: [0, 0, 0, 10],\n formatter: (value) => value.toFixed(bucketPrecision),\n },\n },\n dataset: {\n source: dataset,\n },\n series: [\n {\n type: 'custom',\n name: 'sell-short',\n id: 'sell-short',\n clip: true,\n encode: {\n x: 1,\n y: 0,\n tooltip: 1,\n },\n renderItem: (params, api) => {\n const yValue = api.value(0);\n const xStart = api.coord([api.value(1), yValue]);\n const xEnd = api.coord([0, yValue]);\n const bucketWidthHeight = api.size ? (api.size([0, bucketWidth]) as number[])[1] : 0;\n const height = bucketWidthHeight > 4 ? bucketWidthHeight * 0.8 : bucketWidthHeight;\n\n const rectShape = {\n x: xStart[0] + 0.5,\n y: xStart[1] - height / 2,\n width: xEnd[0] - xStart[0],\n height,\n };\n\n return {\n type: 'rect',\n shape: rectShape,\n emphasis: {\n style: {\n fill: colorPalette.bottleGreenLight,\n },\n },\n style: {\n fill: api.visual('color'),\n },\n };\n },\n },\n {\n type: 'custom',\n name: 'buy-long',\n id: 'buy-long',\n clip: true,\n encode: {\n x: 1,\n y: 0,\n tooltip: 2,\n },\n renderItem: (params, api) => {\n const yValue = api.value(0);\n const xStart = api.coord([api.value(2), yValue]);\n const xEnd = api.coord([0, yValue]);\n const bucketWidthHeight = api.size ? (api.size([0, bucketWidth]) as number[])[1] : 0;\n const height = bucketWidthHeight > 4 ? bucketWidthHeight * 0.8 : bucketWidthHeight;\n\n const rectShape = {\n x: xStart[0] - 0.5,\n y: xStart[1] - height / 2,\n width: xEnd[0] - xStart[0],\n height,\n };\n\n return {\n type: 'rect',\n shape: rectShape,\n emphasis: {\n style: {\n fill: isDark ? colorPalette.orange : colorPalette.raspberryDark,\n },\n },\n style: {\n fill: api.visual('color'),\n },\n };\n },\n },\n {\n type: 'custom',\n name: 'current-price',\n id: 'current-price',\n markLine: {\n animation: false,\n silent: true,\n precision,\n symbol: ['none', 'triangle'],\n symbolOffset: [0, [0, isDesktop ? 0 : -10]] as unknown as number,\n symbolRotate: 90,\n symbolSize: [20, 10],\n lineStyle: {\n color: isDark ? colorPalette.orange : colorPalette.bottleGreenDark,\n width: 1,\n },\n label: {\n distance: isDesktop ? 5 : -5,\n overflow: 'truncate',\n width: isDesktop ? undefined : Y_LABEL_SIZE_MOBILE,\n color: isDark ? colorPalette.black : colorPalette.white,\n backgroundColor: isDark ? colorPalette.orange : colorPalette.bottleGreenDark,\n },\n data: [\n {\n yAxis: price,\n },\n ],\n },\n renderItem: () => null,\n },\n ],\n }\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getOption.js","names":["colorPalette","getGridLines","getZoomControls","CHART_HEIGHT_DESKTOP","CHART_HEIGHT_MOBILE","CHART_WIDTH","INITIAL_BARS","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","ZOOM_CONTROL_HEIGHT","tooltipFormatter","getResponsiveOption","_ref","isDark","isOrderBook","isDesktop","lang","desktopGridLines","chartWidth","chartHeight","xLabelsSize","yLabelSize","bottomLeftBox","marginBottom","grid","name","top","left","right","concat","bottom","yAxis","axisLabel","margin","series","type","id","markLine","label","padding","graphic","silent","children","z","shape","width","height","style","fill","darkGray","white","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","black","text","getOption","_ref2","_data$orderPositionBo","_data$orderPositionBo2","_data$orderPositionBo3","data","precision","buckets","orderPositionBooks","bucketWidth","price","bucketPrecision","toString","split","length","dataset","map","item","Number","longCountPercent","shortCountPercent","zoomInitialStartValue","zoomInitialEndValue","max","Math","min","abs","range","animation","color","bottleGreenLight","orange","raspberryDark","title","toUpperCase","textStyle","fontSize","toolbox","feature","resetStartValue","resetEndValue","dataZoom","realtime","startValue","endValue","yAxisIndex","minValueSpan","tooltip","trigger","axisPointer","axis","formatter","val","extraCssText","xAxis","floor","ceil","axisTick","show","axisLine","value","hideOverlap","alignMaxLabel","alignMinLabel","position","overflow","showMaxLabel","showMinLabel","toFixed","source","clip","encode","x","y","renderItem","params","api","yValue","xStart","coord","xEnd","bucketWidthHeight","size","rectShape","emphasis","visual","symbol","symbolOffset","symbolRotate","symbolSize","lineStyle","bottleGreenDark","distance","undefined","backgroundColor"],"sources":["../../../../../src/OrderBookWidget/components/Chart/getOption.ts"],"sourcesContent":["import {\n colorPalette,\n getGridLines,\n getZoomControls,\n} from '@oanda/labs-widget-common';\n\nimport {\n CHART_HEIGHT_DESKTOP,\n CHART_HEIGHT_MOBILE,\n CHART_WIDTH,\n INITIAL_BARS,\n X_LABEL_SIZE,\n Y_LABEL_SIZE_DESKTOP,\n Y_LABEL_SIZE_MOBILE,\n ZOOM_CONTROL_HEIGHT,\n} from './constants';\nimport { tooltipFormatter } from './formatters';\nimport type { GetOptionType, GetResponsiveOptionsProps } from './types';\n\nexport const getResponsiveOption = ({\n isDark,\n isOrderBook,\n isDesktop,\n lang,\n}: GetResponsiveOptionsProps) => {\n const desktopGridLines = getGridLines({\n isDark,\n chartWidth: CHART_WIDTH,\n chartHeight: isDesktop ? CHART_HEIGHT_DESKTOP : CHART_HEIGHT_MOBILE,\n xLabelsSize: isDesktop ? X_LABEL_SIZE : X_LABEL_SIZE + ZOOM_CONTROL_HEIGHT,\n yLabelSize: isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE,\n bottomLeftBox: isDesktop,\n marginBottom: isDesktop ? 0 : ZOOM_CONTROL_HEIGHT,\n });\n\n return {\n grid: [\n {\n name: 'main-grid',\n top: '48px',\n left: '0px',\n right: `${isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE}px`,\n bottom: `${isDesktop ? X_LABEL_SIZE : X_LABEL_SIZE + ZOOM_CONTROL_HEIGHT}px`,\n },\n ],\n yAxis: {\n axisLabel: {\n margin: isDesktop ? 10 : 0,\n },\n },\n series: [\n {\n type: 'custom',\n name: 'current-price',\n id: 'current-price',\n markLine: {\n label: {\n padding: isDesktop ? [5, 15, 5, 15] : [5, 12, 5, 5],\n },\n },\n },\n ],\n graphic: [\n ...desktopGridLines,\n {\n type: 'group',\n left: '8px',\n top: '56px',\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n left: 'center',\n top: 'middle',\n shape: {\n width: 70,\n height: 30,\n },\n style: {\n fill: isDark ? colorPalette.darkGray : colorPalette.white,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: 'rgba(0,0,0,0.1)',\n },\n },\n {\n type: 'text',\n z: 100,\n left: 'center',\n top: 'middle',\n style: {\n fill: isDark ? colorPalette.white : colorPalette.black,\n width: 70,\n height: 30,\n text: lang(isOrderBook ? 'sell' : 'short'),\n },\n },\n ],\n },\n {\n type: 'group',\n right: `${(isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE) + 8}px'`,\n top: '56px',\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n right: 'center',\n top: 'middle',\n shape: {\n width: 70,\n height: 30,\n },\n style: {\n fill: isDark ? colorPalette.darkGray : colorPalette.white,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: 'rgba(0,0,0,0.1)',\n },\n },\n {\n type: 'text',\n z: 100,\n right: 'center',\n top: 'middle',\n style: {\n fill: isDark ? colorPalette.white : colorPalette.black,\n width: 70,\n height: 30,\n text: lang(isOrderBook ? 'buy' : 'long'),\n },\n },\n ],\n },\n ],\n };\n};\n\nexport const getOption: GetOptionType = ({\n data,\n precision,\n isDark,\n isOrderBook,\n isDesktop,\n lang,\n}) => {\n const buckets = data.orderPositionBooks[0]?.buckets || [];\n const bucketWidth = data.orderPositionBooks[0]?.bucketWidth!;\n const price = data.orderPositionBooks[0]?.price!;\n const bucketPrecision = bucketWidth.toString().split('.')[1].length || 0;\n\n const dataset = buckets.map((item) => [\n item!.price,\n Number(item!.longCountPercent),\n Number(item!.shortCountPercent) * -1,\n ]);\n\n const zoomInitialStartValue = price - bucketWidth * INITIAL_BARS * 0.5;\n const zoomInitialEndValue = price + bucketWidth * INITIAL_BARS * 0.5;\n\n const max = Math.max(...dataset.map((item) => item[1]));\n const min = Math.abs(Math.min(...dataset.map((item) => item[2])));\n\n const range = max > min ? max : min;\n\n return {\n animation: false,\n color: [\n colorPalette.bottleGreenLight,\n isDark ? colorPalette.orange : colorPalette.raspberryDark,\n ],\n title: {\n text: lang(isOrderBook ? 'open_orders' : 'open_positions').toUpperCase(),\n padding: 20,\n textStyle: {\n fontSize: 14,\n },\n },\n toolbox: {\n feature: getZoomControls({\n resetStartValue: zoomInitialStartValue,\n resetEndValue: zoomInitialEndValue,\n }),\n },\n dataZoom: [\n {\n type: 'inside',\n realtime: true,\n startValue: zoomInitialStartValue,\n endValue: zoomInitialEndValue,\n\n yAxisIndex: 0,\n minValueSpan: 10 * bucketWidth,\n },\n ],\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n axis: 'y',\n },\n formatter: (val) =>\n tooltipFormatter({\n data: (val as { data: number[] }[])[0].data,\n precision: bucketPrecision,\n isOrderBook,\n lang,\n }),\n extraCssText: 'z-index: 1',\n },\n grid: [\n {\n name: 'main-grid',\n top: '48px',\n left: '0px',\n right: `${isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE}px`,\n bottom: `${isDesktop ? X_LABEL_SIZE : X_LABEL_SIZE + ZOOM_CONTROL_HEIGHT}px`,\n },\n ],\n xAxis: {\n type: 'value',\n min: Math.floor(range * -1.1),\n max: Math.ceil(range * 1.1),\n axisTick: { show: false },\n axisLine: { show: false },\n axisLabel: {\n padding: [7, 12, 0, 12],\n formatter: (value) => (value === 0 ? '%' : `${Math.abs(value)}%`),\n hideOverlap: true,\n alignMaxLabel: 'right',\n alignMinLabel: 'left',\n },\n },\n yAxis: {\n type: 'value',\n position: 'right',\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n overflow: 'truncate',\n width: (isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE) - 10,\n margin: isDesktop ? 10 : 0,\n showMaxLabel: false,\n showMinLabel: false,\n padding: [0, 0, 0, 10],\n formatter: (value) => value.toFixed(bucketPrecision),\n },\n },\n dataset: {\n source: dataset,\n },\n series: [\n {\n type: 'custom',\n name: 'sell-short',\n id: 'sell-short',\n clip: true,\n encode: {\n x: 1,\n y: 0,\n tooltip: 1,\n },\n renderItem: (params, api) => {\n const yValue = api.value(0);\n const xStart = api.coord([api.value(1), yValue]);\n const xEnd = api.coord([0, yValue]);\n const bucketWidthHeight = api.size\n ? (api.size([0, bucketWidth]) as number[])[1]\n : 0;\n const height =\n bucketWidthHeight > 4 ? bucketWidthHeight * 0.8 : bucketWidthHeight;\n\n const rectShape = {\n x: xStart[0] + 0.5,\n y: xStart[1] - height / 2,\n width: xEnd[0] - xStart[0],\n height,\n };\n\n return {\n type: 'rect',\n shape: rectShape,\n emphasis: {\n style: {\n fill: colorPalette.bottleGreenLight,\n },\n },\n style: {\n fill: api.visual('color'),\n },\n };\n },\n },\n {\n type: 'custom',\n name: 'buy-long',\n id: 'buy-long',\n clip: true,\n encode: {\n x: 1,\n y: 0,\n tooltip: 2,\n },\n renderItem: (params, api) => {\n const yValue = api.value(0);\n const xStart = api.coord([api.value(2), yValue]);\n const xEnd = api.coord([0, yValue]);\n const bucketWidthHeight = api.size\n ? (api.size([0, bucketWidth]) as number[])[1]\n : 0;\n const height =\n bucketWidthHeight > 4 ? bucketWidthHeight * 0.8 : bucketWidthHeight;\n\n const rectShape = {\n x: xStart[0] - 0.5,\n y: xStart[1] - height / 2,\n width: xEnd[0] - xStart[0],\n height,\n };\n\n return {\n type: 'rect',\n shape: rectShape,\n emphasis: {\n style: {\n fill: isDark ? colorPalette.orange : colorPalette.raspberryDark,\n },\n },\n style: {\n fill: api.visual('color'),\n },\n };\n },\n },\n {\n type: 'custom',\n name: 'current-price',\n id: 'current-price',\n markLine: {\n animation: false,\n silent: true,\n precision,\n symbol: ['none', 'triangle'],\n symbolOffset: [0, [0, isDesktop ? 0 : -10]] as unknown as number,\n symbolRotate: 90,\n symbolSize: [20, 10],\n lineStyle: {\n color: isDark ? colorPalette.orange : colorPalette.bottleGreenDark,\n width: 1,\n },\n label: {\n distance: isDesktop ? 5 : -5,\n overflow: 'truncate',\n width: isDesktop ? undefined : Y_LABEL_SIZE_MOBILE,\n color: isDark ? colorPalette.black : colorPalette.white,\n backgroundColor: isDark\n ? colorPalette.orange\n : colorPalette.bottleGreenDark,\n },\n data: [\n {\n yAxis: price,\n },\n ],\n },\n renderItem: () => null,\n },\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}