@oanda/labs-crowd-view-widget 1.0.45 → 1.0.47

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 (142) hide show
  1. package/CHANGELOG.md +380 -0
  2. package/dist/main/CrowdViewWidget/Main.js +9 -5
  3. package/dist/main/CrowdViewWidget/Main.js.map +1 -1
  4. package/dist/main/CrowdViewWidget/components/Chart/Chart.js +3 -2
  5. package/dist/main/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  6. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js +5 -14
  7. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  8. package/dist/main/CrowdViewWidget/components/Chart/chartOptions.js +20 -8
  9. package/dist/main/CrowdViewWidget/components/Chart/chartOptions.js.map +1 -1
  10. package/dist/main/CrowdViewWidget/components/Chart/index.js +4 -4
  11. package/dist/main/CrowdViewWidget/components/Chart/index.js.map +1 -1
  12. package/dist/main/CrowdViewWidget/components/Chart/types.js.map +1 -1
  13. package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js +17 -101
  14. package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -1
  15. package/dist/main/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js +37 -0
  16. package/dist/main/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js.map +1 -0
  17. package/dist/main/CrowdViewWidget/components/Chart/utils/chartUtils.js +19 -4
  18. package/dist/main/CrowdViewWidget/components/Chart/utils/chartUtils.js.map +1 -1
  19. package/dist/main/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js +14 -0
  20. package/dist/main/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js.map +1 -0
  21. package/dist/main/CrowdViewWidget/components/Chart/utils/index.js +83 -0
  22. package/dist/main/CrowdViewWidget/components/Chart/utils/index.js.map +1 -0
  23. package/dist/main/CrowdViewWidget/components/Chart/utils/processBuckets.js +29 -0
  24. package/dist/main/CrowdViewWidget/components/Chart/utils/processBuckets.js.map +1 -0
  25. package/dist/main/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js +23 -0
  26. package/dist/main/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js.map +1 -0
  27. package/dist/main/CrowdViewWidget/components/Chart/utils/processPriceCandles.js +43 -0
  28. package/dist/main/CrowdViewWidget/components/Chart/utils/processPriceCandles.js.map +1 -0
  29. package/dist/main/CrowdViewWidget/components/Chart/utils/validateData.js +23 -0
  30. package/dist/main/CrowdViewWidget/components/Chart/utils/validateData.js.map +1 -0
  31. package/dist/main/CrowdViewWidget/components/Legend/Legend.js +6 -4
  32. package/dist/main/CrowdViewWidget/components/Legend/Legend.js.map +1 -1
  33. package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js +5 -3
  34. package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
  35. package/dist/main/CrowdViewWidget/constants.js +105 -5
  36. package/dist/main/CrowdViewWidget/constants.js.map +1 -1
  37. package/dist/main/CrowdViewWidget/selectConfig.js +18 -60
  38. package/dist/main/CrowdViewWidget/selectConfig.js.map +1 -1
  39. package/dist/main/CrowdViewWidget/types.js +20 -0
  40. package/dist/main/CrowdViewWidget/types.js.map +1 -1
  41. package/dist/main/translations/sources/en.json +21 -16
  42. package/dist/module/CrowdViewWidget/Main.js +9 -5
  43. package/dist/module/CrowdViewWidget/Main.js.map +1 -1
  44. package/dist/module/CrowdViewWidget/components/Chart/Chart.js +3 -2
  45. package/dist/module/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  46. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js +5 -14
  47. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  48. package/dist/module/CrowdViewWidget/components/Chart/chartOptions.js +20 -8
  49. package/dist/module/CrowdViewWidget/components/Chart/chartOptions.js.map +1 -1
  50. package/dist/module/CrowdViewWidget/components/Chart/index.js +1 -1
  51. package/dist/module/CrowdViewWidget/components/Chart/index.js.map +1 -1
  52. package/dist/module/CrowdViewWidget/components/Chart/types.js.map +1 -1
  53. package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js +13 -97
  54. package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -1
  55. package/dist/module/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js +29 -0
  56. package/dist/module/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js.map +1 -0
  57. package/dist/module/CrowdViewWidget/components/Chart/utils/chartUtils.js +20 -5
  58. package/dist/module/CrowdViewWidget/components/Chart/utils/chartUtils.js.map +1 -1
  59. package/dist/module/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js +7 -0
  60. package/dist/module/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js.map +1 -0
  61. package/dist/module/CrowdViewWidget/components/Chart/utils/index.js +8 -0
  62. package/dist/module/CrowdViewWidget/components/Chart/utils/index.js.map +1 -0
  63. package/dist/module/CrowdViewWidget/components/Chart/utils/processBuckets.js +22 -0
  64. package/dist/module/CrowdViewWidget/components/Chart/utils/processBuckets.js.map +1 -0
  65. package/dist/module/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js +16 -0
  66. package/dist/module/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js.map +1 -0
  67. package/dist/module/CrowdViewWidget/components/Chart/utils/processPriceCandles.js +36 -0
  68. package/dist/module/CrowdViewWidget/components/Chart/utils/processPriceCandles.js.map +1 -0
  69. package/dist/module/CrowdViewWidget/components/Chart/utils/validateData.js +16 -0
  70. package/dist/module/CrowdViewWidget/components/Chart/utils/validateData.js.map +1 -0
  71. package/dist/module/CrowdViewWidget/components/Legend/Legend.js +6 -4
  72. package/dist/module/CrowdViewWidget/components/Legend/Legend.js.map +1 -1
  73. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js +5 -3
  74. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
  75. package/dist/module/CrowdViewWidget/constants.js +104 -4
  76. package/dist/module/CrowdViewWidget/constants.js.map +1 -1
  77. package/dist/module/CrowdViewWidget/selectConfig.js +3 -45
  78. package/dist/module/CrowdViewWidget/selectConfig.js.map +1 -1
  79. package/dist/module/CrowdViewWidget/types.js +19 -1
  80. package/dist/module/CrowdViewWidget/types.js.map +1 -1
  81. package/dist/module/translations/sources/en.json +21 -16
  82. package/dist/types/CrowdViewWidget/components/Chart/Chart.d.ts +1 -1
  83. package/dist/types/CrowdViewWidget/components/Chart/index.d.ts +1 -1
  84. package/dist/types/CrowdViewWidget/components/Chart/types.d.ts +13 -8
  85. package/dist/types/CrowdViewWidget/components/Chart/utils/aggregateBuckets.d.ts +2 -0
  86. package/dist/types/CrowdViewWidget/components/Chart/utils/chartUtils.d.ts +11 -6
  87. package/dist/types/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.d.ts +3 -0
  88. package/dist/types/CrowdViewWidget/components/Chart/utils/index.d.ts +7 -0
  89. package/dist/types/CrowdViewWidget/components/Chart/utils/processBuckets.d.ts +3 -0
  90. package/dist/types/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.d.ts +8 -0
  91. package/dist/types/CrowdViewWidget/components/Chart/utils/processPriceCandles.d.ts +27 -0
  92. package/dist/types/CrowdViewWidget/components/Chart/utils/validateData.d.ts +2 -0
  93. package/dist/types/CrowdViewWidget/components/Legend/Legend.d.ts +3 -1
  94. package/dist/types/CrowdViewWidget/constants.d.ts +12 -4
  95. package/dist/types/CrowdViewWidget/selectConfig.d.ts +2 -2
  96. package/dist/types/CrowdViewWidget/types.d.ts +18 -1
  97. package/dist/types/CrowdViewWidget/utils/instrumentUtils.d.ts +1 -4
  98. package/package.json +4 -3
  99. package/src/CrowdViewWidget/Main.tsx +46 -40
  100. package/src/CrowdViewWidget/components/Chart/Chart.tsx +2 -2
  101. package/src/CrowdViewWidget/components/Chart/ChartWithData.tsx +4 -26
  102. package/src/CrowdViewWidget/components/Chart/chartOptions.ts +41 -27
  103. package/src/CrowdViewWidget/components/Chart/index.ts +1 -1
  104. package/src/CrowdViewWidget/components/Chart/types.ts +14 -4
  105. package/src/CrowdViewWidget/components/Chart/useCrowdViewData.ts +30 -154
  106. package/src/CrowdViewWidget/components/Chart/utils/aggregateBuckets.ts +44 -0
  107. package/src/CrowdViewWidget/components/Chart/utils/chartUtils.ts +41 -12
  108. package/src/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.ts +13 -0
  109. package/src/CrowdViewWidget/components/Chart/utils/index.ts +7 -0
  110. package/src/CrowdViewWidget/components/Chart/utils/processBuckets.ts +43 -0
  111. package/src/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.ts +30 -0
  112. package/src/CrowdViewWidget/components/Chart/utils/processPriceCandles.ts +53 -0
  113. package/src/CrowdViewWidget/components/Chart/utils/validateData.ts +27 -0
  114. package/src/CrowdViewWidget/components/Legend/Legend.tsx +14 -3
  115. package/src/CrowdViewWidget/components/Legend/LegendBar.tsx +5 -2
  116. package/src/CrowdViewWidget/constants.ts +114 -4
  117. package/src/CrowdViewWidget/selectConfig.ts +5 -60
  118. package/src/CrowdViewWidget/types.ts +18 -1
  119. package/src/translations/sources/en.json +21 -16
  120. package/test/Main.test.tsx +1 -1
  121. package/test/components/Chart/utils/chartUtils.test.ts +13 -27
  122. package/test/components/Legend.test.tsx +8 -3
  123. package/test/components/LegendBar.test.tsx +3 -2
  124. package/test/utils/aggregateBuckets.test.ts +82 -0
  125. package/test/utils/getTargetBucketWidth.test.ts +37 -0
  126. package/test/utils/instrumentUtils.test.ts +13 -7
  127. package/test/utils/processBuckets.test.ts +153 -0
  128. package/test/utils/processOrderPositionBooks.test.ts +127 -0
  129. package/test/utils/processPriceCandles.test.ts +245 -0
  130. package/test/utils/validateData.test.ts +201 -0
  131. package/dist/main/CrowdViewWidget/types/index.js +0 -17
  132. package/dist/main/CrowdViewWidget/types/index.js.map +0 -1
  133. package/dist/main/CrowdViewWidget/types/instruments.js +0 -45
  134. package/dist/main/CrowdViewWidget/types/instruments.js.map +0 -1
  135. package/dist/module/CrowdViewWidget/types/index.js +0 -2
  136. package/dist/module/CrowdViewWidget/types/index.js.map +0 -1
  137. package/dist/module/CrowdViewWidget/types/instruments.js +0 -39
  138. package/dist/module/CrowdViewWidget/types/instruments.js.map +0 -1
  139. package/dist/types/CrowdViewWidget/types/index.d.ts +0 -1
  140. package/dist/types/CrowdViewWidget/types/instruments.d.ts +0 -36
  141. package/src/CrowdViewWidget/types/index.ts +0 -1
  142. package/src/CrowdViewWidget/types/instruments.ts +0 -37
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _aggregateBuckets = require("./aggregateBuckets");
7
+ Object.keys(_aggregateBuckets).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _aggregateBuckets[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _aggregateBuckets[key];
14
+ }
15
+ });
16
+ });
17
+ var _chartUtils = require("./chartUtils");
18
+ Object.keys(_chartUtils).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _chartUtils[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _chartUtils[key];
25
+ }
26
+ });
27
+ });
28
+ var _getTargetBucketWidth = require("./getTargetBucketWidth");
29
+ Object.keys(_getTargetBucketWidth).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _getTargetBucketWidth[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _getTargetBucketWidth[key];
36
+ }
37
+ });
38
+ });
39
+ var _processBuckets = require("./processBuckets");
40
+ Object.keys(_processBuckets).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _processBuckets[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _processBuckets[key];
47
+ }
48
+ });
49
+ });
50
+ var _processOrderPositionBooks = require("./processOrderPositionBooks");
51
+ Object.keys(_processOrderPositionBooks).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _processOrderPositionBooks[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _processOrderPositionBooks[key];
58
+ }
59
+ });
60
+ });
61
+ var _processPriceCandles = require("./processPriceCandles");
62
+ Object.keys(_processPriceCandles).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _processPriceCandles[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function () {
68
+ return _processPriceCandles[key];
69
+ }
70
+ });
71
+ });
72
+ var _validateData = require("./validateData");
73
+ Object.keys(_validateData).forEach(function (key) {
74
+ if (key === "default" || key === "__esModule") return;
75
+ if (key in exports && exports[key] === _validateData[key]) return;
76
+ Object.defineProperty(exports, key, {
77
+ enumerable: true,
78
+ get: function () {
79
+ return _validateData[key];
80
+ }
81
+ });
82
+ });
83
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_aggregateBuckets","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_chartUtils","_getTargetBucketWidth","_processBuckets","_processOrderPositionBooks","_processPriceCandles","_validateData"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/index.ts"],"sourcesContent":["export * from './aggregateBuckets';\nexport * from './chartUtils';\nexport * from './getTargetBucketWidth';\nexport * from './processBuckets';\nexport * from './processOrderPositionBooks';\nexport * from './processPriceCandles';\nexport * from './validateData';\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.processBuckets = void 0;
7
+ var _constants = require("../../../constants");
8
+ var _aggregateBuckets = require("./aggregateBuckets");
9
+ const processBuckets = (orderPositionData, targetBucketWidth) => {
10
+ var _orderPositionData$or;
11
+ if (!(orderPositionData !== null && orderPositionData !== void 0 && (_orderPositionData$or = orderPositionData.orderPositionBooks) !== null && _orderPositionData$or !== void 0 && _orderPositionData$or.length)) {
12
+ return [];
13
+ }
14
+ return orderPositionData.orderPositionBooks.filter(book => {
15
+ var _book$buckets;
16
+ return book !== null && ((_book$buckets = book.buckets) === null || _book$buckets === void 0 ? void 0 : _book$buckets.length) > 0;
17
+ }).map(book => {
18
+ var _book$bucketWidth;
19
+ const validBuckets = book.buckets.filter(bucket => bucket !== null && bucket.price !== undefined && bucket.sentiment !== undefined && bucket.sentiment !== null).map(bucket => ({
20
+ price: bucket.price,
21
+ sentiment: bucket.sentiment
22
+ }));
23
+ const bucketsToFilter = targetBucketWidth > ((_book$bucketWidth = book.bucketWidth) !== null && _book$bucketWidth !== void 0 ? _book$bucketWidth : 0) ? (0, _aggregateBuckets.aggregateBuckets)(validBuckets, targetBucketWidth) : validBuckets;
24
+ const filteredBuckets = bucketsToFilter.filter(bucket => Math.abs(bucket.sentiment) >= _constants.BOOKS_THRESHOLDS.MIN);
25
+ return filteredBuckets;
26
+ });
27
+ };
28
+ exports.processBuckets = processBuckets;
29
+ //# sourceMappingURL=processBuckets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processBuckets.js","names":["_constants","require","_aggregateBuckets","processBuckets","orderPositionData","targetBucketWidth","_orderPositionData$or","orderPositionBooks","length","filter","book","_book$buckets","buckets","map","_book$bucketWidth","validBuckets","bucket","price","undefined","sentiment","bucketsToFilter","bucketWidth","aggregateBuckets","filteredBuckets","Math","abs","BOOKS_THRESHOLDS","MIN","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/processBuckets.ts"],"sourcesContent":["import type { GetOrderPositionBooksQuery } from '../../../../gql/types/graphql';\nimport { BOOKS_THRESHOLDS } from '../../../constants';\nimport type { Bucket } from '../types';\nimport { aggregateBuckets } from './aggregateBuckets';\n\nexport const processBuckets = (\n orderPositionData: GetOrderPositionBooksQuery | undefined,\n targetBucketWidth: number\n): Bucket[][] => {\n if (!orderPositionData?.orderPositionBooks?.length) {\n return [];\n }\n\n return orderPositionData.orderPositionBooks\n .filter((book): book is NonNullable<typeof book> => {\n return book !== null && book.buckets?.length > 0;\n })\n .map((book) => {\n const validBuckets = book.buckets\n .filter(\n (bucket): bucket is NonNullable<typeof bucket> =>\n bucket !== null &&\n bucket.price !== undefined &&\n bucket.sentiment !== undefined &&\n bucket.sentiment !== null\n )\n .map((bucket) => ({\n price: bucket.price!,\n sentiment: bucket.sentiment!,\n }));\n\n const bucketsToFilter =\n targetBucketWidth > (book.bucketWidth ?? 0)\n ? aggregateBuckets(validBuckets, targetBucketWidth)\n : validBuckets;\n\n const filteredBuckets = bucketsToFilter.filter(\n (bucket: Bucket) => Math.abs(bucket.sentiment) >= BOOKS_THRESHOLDS.MIN\n );\n\n return filteredBuckets;\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAD,OAAA;AAEO,MAAME,cAAc,GAAGA,CAC5BC,iBAAyD,EACzDC,iBAAyB,KACV;EAAA,IAAAC,qBAAA;EACf,IAAI,EAACF,iBAAiB,aAAjBA,iBAAiB,gBAAAE,qBAAA,GAAjBF,iBAAiB,CAAEG,kBAAkB,cAAAD,qBAAA,eAArCA,qBAAA,CAAuCE,MAAM,GAAE;IAClD,OAAO,EAAE;EACX;EAEA,OAAOJ,iBAAiB,CAACG,kBAAkB,CACxCE,MAAM,CAAEC,IAAI,IAAuC;IAAA,IAAAC,aAAA;IAClD,OAAOD,IAAI,KAAK,IAAI,IAAI,EAAAC,aAAA,GAAAD,IAAI,CAACE,OAAO,cAAAD,aAAA,uBAAZA,aAAA,CAAcH,MAAM,IAAG,CAAC;EAClD,CAAC,CAAC,CACDK,GAAG,CAAEH,IAAI,IAAK;IAAA,IAAAI,iBAAA;IACb,MAAMC,YAAY,GAAGL,IAAI,CAACE,OAAO,CAC9BH,MAAM,CACJO,MAAM,IACLA,MAAM,KAAK,IAAI,IACfA,MAAM,CAACC,KAAK,KAAKC,SAAS,IAC1BF,MAAM,CAACG,SAAS,KAAKD,SAAS,IAC9BF,MAAM,CAACG,SAAS,KAAK,IACzB,CAAC,CACAN,GAAG,CAAEG,MAAM,KAAM;MAChBC,KAAK,EAAED,MAAM,CAACC,KAAM;MACpBE,SAAS,EAAEH,MAAM,CAACG;IACpB,CAAC,CAAC,CAAC;IAEL,MAAMC,eAAe,GACnBf,iBAAiB,KAAAS,iBAAA,GAAIJ,IAAI,CAACW,WAAW,cAAAP,iBAAA,cAAAA,iBAAA,GAAI,CAAC,CAAC,GACvC,IAAAQ,kCAAgB,EAACP,YAAY,EAAEV,iBAAiB,CAAC,GACjDU,YAAY;IAElB,MAAMQ,eAAe,GAAGH,eAAe,CAACX,MAAM,CAC3CO,MAAc,IAAKQ,IAAI,CAACC,GAAG,CAACT,MAAM,CAACG,SAAS,CAAC,IAAIO,2BAAgB,CAACC,GACrE,CAAC;IAED,OAAOJ,eAAe;EACxB,CAAC,CAAC;AACN,CAAC;AAACK,OAAA,CAAAzB,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.processOrderPositionBooks = void 0;
7
+ const processOrderPositionBooks = (orderPositionData, candleMap) => {
8
+ var _orderPositionData$or;
9
+ if (!(orderPositionData !== null && orderPositionData !== void 0 && (_orderPositionData$or = orderPositionData.orderPositionBooks) !== null && _orderPositionData$or !== void 0 && _orderPositionData$or.length)) {
10
+ return [];
11
+ }
12
+ return orderPositionData.orderPositionBooks.filter(book => {
13
+ var _book$buckets;
14
+ return book !== null && ((_book$buckets = book.buckets) === null || _book$buckets === void 0 ? void 0 : _book$buckets.length) > 0;
15
+ }).map((book, index) => {
16
+ var _candle$high;
17
+ const candle = candleMap.get(book.time);
18
+ const price = (_candle$high = candle === null || candle === void 0 ? void 0 : candle.high) !== null && _candle$high !== void 0 ? _candle$high : null;
19
+ return [book.time, price, index];
20
+ });
21
+ };
22
+ exports.processOrderPositionBooks = processOrderPositionBooks;
23
+ //# sourceMappingURL=processOrderPositionBooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processOrderPositionBooks.js","names":["processOrderPositionBooks","orderPositionData","candleMap","_orderPositionData$or","orderPositionBooks","length","filter","book","_book$buckets","buckets","map","index","_candle$high","candle","get","time","price","high","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.ts"],"sourcesContent":["import type { GetOrderPositionBooksQuery } from '../../../../gql/types/graphql';\n\nexport const processOrderPositionBooks = (\n orderPositionData: GetOrderPositionBooksQuery | undefined,\n candleMap: Map<\n string,\n {\n point?: string;\n high?: number;\n low?: number;\n open?: number;\n close?: number;\n }\n >\n): [string, number | null, number][] => {\n if (!orderPositionData?.orderPositionBooks?.length) {\n return [];\n }\n\n return orderPositionData.orderPositionBooks\n .filter((book): book is NonNullable<typeof book> => {\n return book !== null && book.buckets?.length > 0;\n })\n .map((book, index) => {\n const candle = candleMap.get(book.time);\n const price = candle?.high ?? null;\n\n return [book.time, price, index] as [string, number | null, number];\n });\n};\n"],"mappings":";;;;;;AAEO,MAAMA,yBAAyB,GAAGA,CACvCC,iBAAyD,EACzDC,SASC,KACqC;EAAA,IAAAC,qBAAA;EACtC,IAAI,EAACF,iBAAiB,aAAjBA,iBAAiB,gBAAAE,qBAAA,GAAjBF,iBAAiB,CAAEG,kBAAkB,cAAAD,qBAAA,eAArCA,qBAAA,CAAuCE,MAAM,GAAE;IAClD,OAAO,EAAE;EACX;EAEA,OAAOJ,iBAAiB,CAACG,kBAAkB,CACxCE,MAAM,CAAEC,IAAI,IAAuC;IAAA,IAAAC,aAAA;IAClD,OAAOD,IAAI,KAAK,IAAI,IAAI,EAAAC,aAAA,GAAAD,IAAI,CAACE,OAAO,cAAAD,aAAA,uBAAZA,aAAA,CAAcH,MAAM,IAAG,CAAC;EAClD,CAAC,CAAC,CACDK,GAAG,CAAC,CAACH,IAAI,EAAEI,KAAK,KAAK;IAAA,IAAAC,YAAA;IACpB,MAAMC,MAAM,GAAGX,SAAS,CAACY,GAAG,CAACP,IAAI,CAACQ,IAAI,CAAC;IACvC,MAAMC,KAAK,IAAAJ,YAAA,GAAGC,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEI,IAAI,cAAAL,YAAA,cAAAA,YAAA,GAAI,IAAI;IAElC,OAAO,CAACL,IAAI,CAACQ,IAAI,EAAEC,KAAK,EAAEL,KAAK,CAAC;EAClC,CAAC,CAAC;AACN,CAAC;AAACO,OAAA,CAAAlB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.processPriceCandles = void 0;
7
+ const processPriceCandles = priceCandlesData => {
8
+ var _priceCandlesData$pri;
9
+ if (!(priceCandlesData !== null && priceCandlesData !== void 0 && (_priceCandlesData$pri = priceCandlesData.priceCandles) !== null && _priceCandlesData$pri !== void 0 && (_priceCandlesData$pri = _priceCandlesData$pri.candle) !== null && _priceCandlesData$pri !== void 0 && _priceCandlesData$pri.length)) {
10
+ return {
11
+ minPrice: 0,
12
+ maxPrice: 0,
13
+ hasValidCandles: false,
14
+ candleMap: new Map(),
15
+ candles: []
16
+ };
17
+ }
18
+ const candles = priceCandlesData.priceCandles.candle;
19
+ let calculatedMinPrice = Number.MAX_VALUE;
20
+ let calculatedMaxPrice = Number.MIN_VALUE;
21
+ const candleMap = new Map();
22
+ candles.forEach(candle => {
23
+ if (!candle) return;
24
+ if (candle.high > calculatedMaxPrice) {
25
+ calculatedMaxPrice = candle.high;
26
+ }
27
+ if (candle.low < calculatedMinPrice) {
28
+ calculatedMinPrice = candle.low;
29
+ }
30
+ if (candle.point) {
31
+ candleMap.set(candle.point, candle);
32
+ }
33
+ });
34
+ return {
35
+ minPrice: calculatedMinPrice,
36
+ maxPrice: calculatedMaxPrice,
37
+ hasValidCandles: true,
38
+ candleMap,
39
+ candles
40
+ };
41
+ };
42
+ exports.processPriceCandles = processPriceCandles;
43
+ //# sourceMappingURL=processPriceCandles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processPriceCandles.js","names":["processPriceCandles","priceCandlesData","_priceCandlesData$pri","priceCandles","candle","length","minPrice","maxPrice","hasValidCandles","candleMap","Map","candles","calculatedMinPrice","Number","MAX_VALUE","calculatedMaxPrice","MIN_VALUE","forEach","high","low","point","set","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/processPriceCandles.ts"],"sourcesContent":["import type { GetPriceCandlesQuery } from '../../../../gql/types/graphql';\n\nexport const processPriceCandles = (\n priceCandlesData: GetPriceCandlesQuery | undefined\n) => {\n if (!priceCandlesData?.priceCandles?.candle?.length) {\n return {\n minPrice: 0,\n maxPrice: 0,\n hasValidCandles: false,\n candleMap: new Map(),\n candles: [],\n };\n }\n\n const candles = priceCandlesData.priceCandles.candle;\n let calculatedMinPrice = Number.MAX_VALUE;\n let calculatedMaxPrice = Number.MIN_VALUE;\n\n const candleMap = new Map<\n string,\n {\n point?: string;\n high?: number;\n low?: number;\n open?: number;\n close?: number;\n }\n >();\n\n candles.forEach((candle) => {\n if (!candle) return;\n\n if (candle.high > calculatedMaxPrice) {\n calculatedMaxPrice = candle.high;\n }\n if (candle.low < calculatedMinPrice) {\n calculatedMinPrice = candle.low;\n }\n\n if (candle.point) {\n candleMap.set(candle.point, candle);\n }\n });\n\n return {\n minPrice: calculatedMinPrice,\n maxPrice: calculatedMaxPrice,\n hasValidCandles: true,\n candleMap,\n candles,\n };\n};\n"],"mappings":";;;;;;AAEO,MAAMA,mBAAmB,GAC9BC,gBAAkD,IAC/C;EAAA,IAAAC,qBAAA;EACH,IAAI,EAACD,gBAAgB,aAAhBA,gBAAgB,gBAAAC,qBAAA,GAAhBD,gBAAgB,CAAEE,YAAY,cAAAD,qBAAA,gBAAAA,qBAAA,GAA9BA,qBAAA,CAAgCE,MAAM,cAAAF,qBAAA,eAAtCA,qBAAA,CAAwCG,MAAM,GAAE;IACnD,OAAO;MACLC,QAAQ,EAAE,CAAC;MACXC,QAAQ,EAAE,CAAC;MACXC,eAAe,EAAE,KAAK;MACtBC,SAAS,EAAE,IAAIC,GAAG,CAAC,CAAC;MACpBC,OAAO,EAAE;IACX,CAAC;EACH;EAEA,MAAMA,OAAO,GAAGV,gBAAgB,CAACE,YAAY,CAACC,MAAM;EACpD,IAAIQ,kBAAkB,GAAGC,MAAM,CAACC,SAAS;EACzC,IAAIC,kBAAkB,GAAGF,MAAM,CAACG,SAAS;EAEzC,MAAMP,SAAS,GAAG,IAAIC,GAAG,CASvB,CAAC;EAEHC,OAAO,CAACM,OAAO,CAAEb,MAAM,IAAK;IAC1B,IAAI,CAACA,MAAM,EAAE;IAEb,IAAIA,MAAM,CAACc,IAAI,GAAGH,kBAAkB,EAAE;MACpCA,kBAAkB,GAAGX,MAAM,CAACc,IAAI;IAClC;IACA,IAAId,MAAM,CAACe,GAAG,GAAGP,kBAAkB,EAAE;MACnCA,kBAAkB,GAAGR,MAAM,CAACe,GAAG;IACjC;IAEA,IAAIf,MAAM,CAACgB,KAAK,EAAE;MAChBX,SAAS,CAACY,GAAG,CAACjB,MAAM,CAACgB,KAAK,EAAEhB,MAAM,CAAC;IACrC;EACF,CAAC,CAAC;EAEF,OAAO;IACLE,QAAQ,EAAEM,kBAAkB;IAC5BL,QAAQ,EAAEQ,kBAAkB;IAC5BP,eAAe,EAAE,IAAI;IACrBC,SAAS;IACTE;EACF,CAAC;AACH,CAAC;AAACW,OAAA,CAAAtB,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateData = void 0;
7
+ const validateData = (priceCandlesData, orderPositionData, hasValidCandles) => {
8
+ var _priceCandlesData$pri, _priceCandlesData$pri2, _orderPositionData$or, _orderPositionData$or2;
9
+ const hasValidPriceData = ((_priceCandlesData$pri = priceCandlesData === null || priceCandlesData === void 0 || (_priceCandlesData$pri2 = priceCandlesData.priceCandles) === null || _priceCandlesData$pri2 === void 0 || (_priceCandlesData$pri2 = _priceCandlesData$pri2.candle) === null || _priceCandlesData$pri2 === void 0 ? void 0 : _priceCandlesData$pri2.length) !== null && _priceCandlesData$pri !== void 0 ? _priceCandlesData$pri : 0) >= 1;
10
+ const hasValidOrderData = ((_orderPositionData$or = orderPositionData === null || orderPositionData === void 0 || (_orderPositionData$or2 = orderPositionData.orderPositionBooks) === null || _orderPositionData$or2 === void 0 ? void 0 : _orderPositionData$or2.length) !== null && _orderPositionData$or !== void 0 ? _orderPositionData$or : 0) >= 1;
11
+ if (!hasValidPriceData) {
12
+ return new Error('Insufficient price candle data');
13
+ }
14
+ if (!hasValidOrderData) {
15
+ return new Error('Insufficient order position data');
16
+ }
17
+ if (!hasValidCandles) {
18
+ return new Error('Invalid candle data');
19
+ }
20
+ return null;
21
+ };
22
+ exports.validateData = validateData;
23
+ //# sourceMappingURL=validateData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateData.js","names":["validateData","priceCandlesData","orderPositionData","hasValidCandles","_priceCandlesData$pri","_priceCandlesData$pri2","_orderPositionData$or","_orderPositionData$or2","hasValidPriceData","priceCandles","candle","length","hasValidOrderData","orderPositionBooks","Error","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/validateData.ts"],"sourcesContent":["import type {\n GetOrderPositionBooksQuery,\n GetPriceCandlesQuery,\n} from '../../../../gql/types/graphql';\n\nexport const validateData = (\n priceCandlesData: GetPriceCandlesQuery | undefined,\n orderPositionData: GetOrderPositionBooksQuery | undefined,\n hasValidCandles: boolean\n): Error | null => {\n const hasValidPriceData =\n (priceCandlesData?.priceCandles?.candle?.length ?? 0) >= 1;\n const hasValidOrderData =\n (orderPositionData?.orderPositionBooks?.length ?? 0) >= 1;\n\n if (!hasValidPriceData) {\n return new Error('Insufficient price candle data');\n }\n if (!hasValidOrderData) {\n return new Error('Insufficient order position data');\n }\n if (!hasValidCandles) {\n return new Error('Invalid candle data');\n }\n\n return null;\n};\n"],"mappings":";;;;;;AAKO,MAAMA,YAAY,GAAGA,CAC1BC,gBAAkD,EAClDC,iBAAyD,EACzDC,eAAwB,KACP;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,sBAAA;EACjB,MAAMC,iBAAiB,GACrB,EAAAJ,qBAAA,GAACH,gBAAgB,aAAhBA,gBAAgB,gBAAAI,sBAAA,GAAhBJ,gBAAgB,CAAEQ,YAAY,cAAAJ,sBAAA,gBAAAA,sBAAA,GAA9BA,sBAAA,CAAgCK,MAAM,cAAAL,sBAAA,uBAAtCA,sBAAA,CAAwCM,MAAM,cAAAP,qBAAA,cAAAA,qBAAA,GAAI,CAAC,KAAK,CAAC;EAC5D,MAAMQ,iBAAiB,GACrB,EAAAN,qBAAA,GAACJ,iBAAiB,aAAjBA,iBAAiB,gBAAAK,sBAAA,GAAjBL,iBAAiB,CAAEW,kBAAkB,cAAAN,sBAAA,uBAArCA,sBAAA,CAAuCI,MAAM,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,CAAC,KAAK,CAAC;EAE3D,IAAI,CAACE,iBAAiB,EAAE;IACtB,OAAO,IAAIM,KAAK,CAAC,gCAAgC,CAAC;EACpD;EACA,IAAI,CAACF,iBAAiB,EAAE;IACtB,OAAO,IAAIE,KAAK,CAAC,kCAAkC,CAAC;EACtD;EACA,IAAI,CAACX,eAAe,EAAE;IACpB,OAAO,IAAIW,KAAK,CAAC,qBAAqB,CAAC;EACzC;EAEA,OAAO,IAAI;AACb,CAAC;AAACC,OAAA,CAAAf,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -6,25 +6,27 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.Legend = void 0;
7
7
  var _monoI18n = require("@oanda/mono-i18n");
8
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _graphql = require("../../../gql/types/graphql");
9
10
  var _constants = require("../../constants");
10
11
  var _LegendBar = require("./LegendBar");
11
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
13
  const Legend = _ref => {
13
14
  let {
14
15
  longValues = [_constants.BOOKS_THRESHOLDS.MIN, _constants.BOOKS_THRESHOLDS.MAX],
15
- shortValues = [_constants.BOOKS_THRESHOLDS.MIN, _constants.BOOKS_THRESHOLDS.MAX]
16
+ shortValues = [_constants.BOOKS_THRESHOLDS.MIN, _constants.BOOKS_THRESHOLDS.MAX],
17
+ bookType
16
18
  } = _ref;
17
19
  const {
18
20
  lang
19
21
  } = (0, _monoI18n.useLocale)();
20
22
  return _react.default.createElement("div", {
21
- className: "lw-mx-auto lw-flex lw-w-full lw-flex-col lw-items-center lw-space-y-4 lw-py-6 sm:lw-max-w-md lg:lw-max-w-xl"
23
+ className: "lw-mx-auto lw-flex lw-w-full lw-flex-col lw-items-center lw-space-y-4 lw-pb-6 lw-pt-0 sm:lw-max-w-md lg:lw-max-w-xl"
22
24
  }, _react.default.createElement(_LegendBar.LegendBar, {
23
- label: lang('long'),
25
+ label: lang(bookType === _graphql.BookType.Order ? 'buy' : 'long'),
24
26
  type: "long",
25
27
  values: longValues
26
28
  }), _react.default.createElement(_LegendBar.LegendBar, {
27
- label: lang('short'),
29
+ label: lang(bookType === _graphql.BookType.Order ? 'sell' : 'short'),
28
30
  type: "short",
29
31
  values: shortValues
30
32
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"Legend.js","names":["_monoI18n","require","_react","_interopRequireDefault","_constants","_LegendBar","e","__esModule","default","Legend","_ref","longValues","BOOKS_THRESHOLDS","MIN","MAX","shortValues","lang","useLocale","createElement","className","LegendBar","label","type","values","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/Legend.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport React from 'react';\n\nimport { BOOKS_THRESHOLDS } from '../../constants';\nimport { LegendBar } from './LegendBar';\n\ninterface LegendProps {\n longValues?: [number, number];\n shortValues?: [number, number];\n}\n\nexport const Legend = ({\n longValues = [BOOKS_THRESHOLDS.MIN, BOOKS_THRESHOLDS.MAX],\n shortValues = [BOOKS_THRESHOLDS.MIN, BOOKS_THRESHOLDS.MAX],\n}: LegendProps) => {\n const { lang } = useLocale();\n\n return (\n <div className=\"lw-mx-auto lw-flex lw-w-full lw-flex-col lw-items-center lw-space-y-4 lw-py-6 sm:lw-max-w-md lg:lw-max-w-xl\">\n <LegendBar label={lang('long')} type=\"long\" values={longValues} />\n <LegendBar label={lang('short')} type=\"short\" values={shortValues} />\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAAwC,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAOjC,MAAMG,MAAM,GAAGC,IAAA,IAGH;EAAA,IAHI;IACrBC,UAAU,GAAG,CAACC,2BAAgB,CAACC,GAAG,EAAED,2BAAgB,CAACE,GAAG,CAAC;IACzDC,WAAW,GAAG,CAACH,2BAAgB,CAACC,GAAG,EAAED,2BAAgB,CAACE,GAAG;EAC9C,CAAC,GAAAJ,IAAA;EACZ,MAAM;IAAEM;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAE5B,OACEf,MAAA,CAAAM,OAAA,CAAAU,aAAA;IAAKC,SAAS,EAAC;EAA6G,GAC1HjB,MAAA,CAAAM,OAAA,CAAAU,aAAA,CAACb,UAAA,CAAAe,SAAS;IAACC,KAAK,EAAEL,IAAI,CAAC,MAAM,CAAE;IAACM,IAAI,EAAC,MAAM;IAACC,MAAM,EAAEZ;EAAW,CAAE,CAAC,EAClET,MAAA,CAAAM,OAAA,CAAAU,aAAA,CAACb,UAAA,CAAAe,SAAS;IAACC,KAAK,EAAEL,IAAI,CAAC,OAAO,CAAE;IAACM,IAAI,EAAC,OAAO;IAACC,MAAM,EAAER;EAAY,CAAE,CACjE,CAAC;AAEV,CAAC;AAACS,OAAA,CAAAf,MAAA,GAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"file":"Legend.js","names":["_monoI18n","require","_react","_interopRequireDefault","_graphql","_constants","_LegendBar","e","__esModule","default","Legend","_ref","longValues","BOOKS_THRESHOLDS","MIN","MAX","shortValues","bookType","lang","useLocale","createElement","className","LegendBar","label","BookType","Order","type","values","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/Legend.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport React from 'react';\n\nimport { BookType } from '../../../gql/types/graphql';\nimport { BOOKS_THRESHOLDS } from '../../constants';\nimport { LegendBar } from './LegendBar';\n\ninterface LegendProps {\n longValues?: [number, number];\n shortValues?: [number, number];\n bookType: BookType;\n}\n\nexport const Legend = ({\n longValues = [BOOKS_THRESHOLDS.MIN, BOOKS_THRESHOLDS.MAX],\n shortValues = [BOOKS_THRESHOLDS.MIN, BOOKS_THRESHOLDS.MAX],\n bookType,\n}: LegendProps) => {\n const { lang } = useLocale();\n\n return (\n <div className=\"lw-mx-auto lw-flex lw-w-full lw-flex-col lw-items-center lw-space-y-4 lw-pb-6 lw-pt-0 sm:lw-max-w-md lg:lw-max-w-xl\">\n <LegendBar\n label={lang(bookType === BookType.Order ? 'buy' : 'long')}\n type=\"long\"\n values={longValues}\n />\n <LegendBar\n label={lang(bookType === BookType.Order ? 'sell' : 'short')}\n type=\"short\"\n values={shortValues}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAAwC,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQjC,MAAMG,MAAM,GAAGC,IAAA,IAIH;EAAA,IAJI;IACrBC,UAAU,GAAG,CAACC,2BAAgB,CAACC,GAAG,EAAED,2BAAgB,CAACE,GAAG,CAAC;IACzDC,WAAW,GAAG,CAACH,2BAAgB,CAACC,GAAG,EAAED,2BAAgB,CAACE,GAAG,CAAC;IAC1DE;EACW,CAAC,GAAAN,IAAA;EACZ,MAAM;IAAEO;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAE5B,OACEjB,MAAA,CAAAO,OAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC;EAAqH,GAClInB,MAAA,CAAAO,OAAA,CAAAW,aAAA,CAACd,UAAA,CAAAgB,SAAS;IACRC,KAAK,EAAEL,IAAI,CAACD,QAAQ,KAAKO,iBAAQ,CAACC,KAAK,GAAG,KAAK,GAAG,MAAM,CAAE;IAC1DC,IAAI,EAAC,MAAM;IACXC,MAAM,EAAEf;EAAW,CACpB,CAAC,EACFV,MAAA,CAAAO,OAAA,CAAAW,aAAA,CAACd,UAAA,CAAAgB,SAAS;IACRC,KAAK,EAAEL,IAAI,CAACD,QAAQ,KAAKO,iBAAQ,CAACC,KAAK,GAAG,MAAM,GAAG,OAAO,CAAE;IAC5DC,IAAI,EAAC,OAAO;IACZC,MAAM,EAAEX;EAAY,CACrB,CACE,CAAC;AAEV,CAAC;AAACY,OAAA,CAAAlB,MAAA,GAAAA,MAAA","ignoreList":[]}
@@ -16,7 +16,9 @@ const LegendBar = _ref => {
16
16
  const colors = _constants.COLOR_MAP[type];
17
17
  return _react.default.createElement("div", {
18
18
  className: "lw-flex lw-w-full lw-flex-col lw-space-y-1 lw-border-border-primary"
19
- }, _react.default.createElement("div", {
19
+ }, _react.default.createElement("span", {
20
+ className: "lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary"
21
+ }, label), _react.default.createElement("div", {
20
22
  className: "lw-flex lw-h-2 lw-w-full lw-overflow-hidden lw-border lw-border-border-primary"
21
23
  }, _react.default.createElement("div", {
22
24
  className: "lw-h-full lw-flex-1",
@@ -28,9 +30,9 @@ const LegendBar = _ref => {
28
30
  className: "lw-flex lw-w-full lw-justify-between"
29
31
  }, _react.default.createElement("span", {
30
32
  className: "lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary"
31
- }, values[0].toFixed(2), "% ", label), _react.default.createElement("span", {
33
+ }, values[0].toFixed(2), "%"), _react.default.createElement("span", {
32
34
  className: "lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary"
33
- }, values[1].toFixed(2), "% ", label)));
35
+ }, "\u2264 ".concat(values[1].toFixed(2)), "%")));
34
36
  };
35
37
  exports.LegendBar = LegendBar;
36
38
  //# sourceMappingURL=LegendBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LegendBar.js","names":["_react","_interopRequireDefault","require","_constants","e","__esModule","default","LegendBar","_ref","values","type","label","colors","COLOR_MAP","createElement","className","style","background","concat","toFixed","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/LegendBar.tsx"],"sourcesContent":["import React from 'react';\n\nimport { COLOR_MAP } from '../../constants';\n\nexport type LegendType = 'long' | 'short';\n\ninterface LegendBarProps {\n values: number[];\n type: LegendType;\n label: string;\n}\n\nexport const LegendBar = ({ values, type, label }: LegendBarProps) => {\n const colors = COLOR_MAP[type];\n\n return (\n <div className=\"lw-flex lw-w-full lw-flex-col lw-space-y-1 lw-border-border-primary\">\n <div className=\"lw-flex lw-h-2 lw-w-full lw-overflow-hidden lw-border lw-border-border-primary\">\n <div\n className=\"lw-h-full lw-flex-1\"\n data-testid=\"legend-bar-segment\"\n style={{\n background: `linear-gradient(90deg,${colors[0]} 0%, ${colors[1]} 100%)`,\n }}\n />\n </div>\n\n <div className=\"lw-flex lw-w-full lw-justify-between\">\n <span className=\"lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary\">\n {values[0].toFixed(2)}% {label}\n </span>\n <span className=\"lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary\">\n {values[1].toFixed(2)}% {label}\n </span>\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAA4C,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAUrC,MAAMG,SAAS,GAAGC,IAAA,IAA6C;EAAA,IAA5C;IAAEC,MAAM;IAAEC,IAAI;IAAEC;EAAsB,CAAC,GAAAH,IAAA;EAC/D,MAAMI,MAAM,GAAGC,oBAAS,CAACH,IAAI,CAAC;EAE9B,OACEV,MAAA,CAAAM,OAAA,CAAAQ,aAAA;IAAKC,SAAS,EAAC;EAAqE,GAClFf,MAAA,CAAAM,OAAA,CAAAQ,aAAA;IAAKC,SAAS,EAAC;EAAgF,GAC7Ff,MAAA,CAAAM,OAAA,CAAAQ,aAAA;IACEC,SAAS,EAAC,qBAAqB;IAC/B,eAAY,oBAAoB;IAChCC,KAAK,EAAE;MACLC,UAAU,2BAAAC,MAAA,CAA2BN,MAAM,CAAC,CAAC,CAAC,WAAAM,MAAA,CAAQN,MAAM,CAAC,CAAC,CAAC;IACjE;EAAE,CACH,CACE,CAAC,EAENZ,MAAA,CAAAM,OAAA,CAAAQ,aAAA;IAAKC,SAAS,EAAC;EAAsC,GACnDf,MAAA,CAAAM,OAAA,CAAAQ,aAAA;IAAMC,SAAS,EAAC;EAAmE,GAChFN,MAAM,CAAC,CAAC,CAAC,CAACU,OAAO,CAAC,CAAC,CAAC,EAAC,IAAE,EAACR,KACrB,CAAC,EACPX,MAAA,CAAAM,OAAA,CAAAQ,aAAA;IAAMC,SAAS,EAAC;EAAmE,GAChFN,MAAM,CAAC,CAAC,CAAC,CAACU,OAAO,CAAC,CAAC,CAAC,EAAC,IAAE,EAACR,KACrB,CACH,CACF,CAAC;AAEV,CAAC;AAACS,OAAA,CAAAb,SAAA,GAAAA,SAAA","ignoreList":[]}
1
+ {"version":3,"file":"LegendBar.js","names":["_react","_interopRequireDefault","require","_constants","e","__esModule","default","LegendBar","_ref","values","type","label","colors","COLOR_MAP","createElement","className","style","background","concat","toFixed","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/LegendBar.tsx"],"sourcesContent":["import React from 'react';\n\nimport { COLOR_MAP } from '../../constants';\n\nexport type LegendType = 'long' | 'short';\n\ninterface LegendBarProps {\n values: number[];\n type: LegendType;\n label: string;\n}\n\nexport const LegendBar = ({ values, type, label }: LegendBarProps) => {\n const colors = COLOR_MAP[type];\n\n return (\n <div className=\"lw-flex lw-w-full lw-flex-col lw-space-y-1 lw-border-border-primary\">\n <span className=\"lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary\">\n {label}\n </span>\n <div className=\"lw-flex lw-h-2 lw-w-full lw-overflow-hidden lw-border lw-border-border-primary\">\n <div\n className=\"lw-h-full lw-flex-1\"\n data-testid=\"legend-bar-segment\"\n style={{\n background: `linear-gradient(90deg,${colors[0]} 0%, ${colors[1]} 100%)`,\n }}\n />\n </div>\n\n <div className=\"lw-flex lw-w-full lw-justify-between\">\n <span className=\"lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary\">\n {values[0].toFixed(2)}%\n </span>\n <span className=\"lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary\">\n {`≤ ${values[1].toFixed(2)}`}%\n </span>\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAA4C,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAUrC,MAAMG,SAAS,GAAGC,IAAA,IAA6C;EAAA,IAA5C;IAAEC,MAAM;IAAEC,IAAI;IAAEC;EAAsB,CAAC,GAAAH,IAAA;EAC/D,MAAMI,MAAM,GAAGC,oBAAS,CAACH,IAAI,CAAC;EAE9B,OACEV,MAAA,CAAAM,OAAA,CAAAQ,aAAA;IAAKC,SAAS,EAAC;EAAqE,GAClFf,MAAA,CAAAM,OAAA,CAAAQ,aAAA;IAAMC,SAAS,EAAC;EAAmE,GAChFJ,KACG,CAAC,EACPX,MAAA,CAAAM,OAAA,CAAAQ,aAAA;IAAKC,SAAS,EAAC;EAAgF,GAC7Ff,MAAA,CAAAM,OAAA,CAAAQ,aAAA;IACEC,SAAS,EAAC,qBAAqB;IAC/B,eAAY,oBAAoB;IAChCC,KAAK,EAAE;MACLC,UAAU,2BAAAC,MAAA,CAA2BN,MAAM,CAAC,CAAC,CAAC,WAAAM,MAAA,CAAQN,MAAM,CAAC,CAAC,CAAC;IACjE;EAAE,CACH,CACE,CAAC,EAENZ,MAAA,CAAAM,OAAA,CAAAQ,aAAA;IAAKC,SAAS,EAAC;EAAsC,GACnDf,MAAA,CAAAM,OAAA,CAAAQ,aAAA;IAAMC,SAAS,EAAC;EAAmE,GAChFN,MAAM,CAAC,CAAC,CAAC,CAACU,OAAO,CAAC,CAAC,CAAC,EAAC,GAClB,CAAC,EACPnB,MAAA,CAAAM,OAAA,CAAAQ,aAAA;IAAMC,SAAS,EAAC;EAAmE,aAAAG,MAAA,CAC3ET,MAAM,CAAC,CAAC,CAAC,CAACU,OAAO,CAAC,CAAC,CAAC,GAAG,GACzB,CACH,CACF,CAAC;AAEV,CAAC;AAACC,OAAA,CAAAb,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -3,13 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TIME_THRESHOLDS = exports.COLOR_MAP = exports.CHART_CONFIG = exports.BUCKET_CONFIG = exports.BOOKS_THRESHOLDS = void 0;
6
+ exports.TIME_THRESHOLDS = exports.INSTRUMENTS_CONFIG = exports.COLOR_MAP = exports.CHART_CONFIG = exports.BUCKET_CONFIG = exports.BOOKS_THRESHOLDS = void 0;
7
+ var _types = require("./types");
7
8
  const BOOKS_THRESHOLDS = exports.BOOKS_THRESHOLDS = {
8
9
  MIN: 0.15,
9
10
  MAX: 0.55
10
11
  };
11
12
  const BUCKET_CONFIG = exports.BUCKET_CONFIG = {
12
- DEFAULT_WIDTH: 0.0005,
13
+ MULTIPLIER: 4,
13
14
  PRICE_PADDING_MULTIPLIER: 2
14
15
  };
15
16
  const TIME_THRESHOLDS = exports.TIME_THRESHOLDS = {
@@ -20,12 +21,111 @@ const CHART_CONFIG = exports.CHART_CONFIG = {
20
21
  WIDTH: 9999,
21
22
  X_LABEL_SIZE: 40,
22
23
  Y_LABEL_SIZE_DESKTOP: 60,
23
- INITIAL_START_ZOOM: 0,
24
+ Y_LABEL_SIZE_MOBILE: 40,
25
+ INITIAL_START_ZOOM: 80,
24
26
  INITIAL_END_ZOOM: 100,
25
27
  X_AXIS_DATE_PADDING: ' '
26
28
  };
27
29
  const COLOR_MAP = exports.COLOR_MAP = {
28
- long: ['#fcedca', '#FAB313'],
29
- short: ['#c8ebfa', '#309DCC']
30
+ long: ['#eaf5fa', '#83c4e0'],
31
+ short: ['#fef7e7', '#fcd171']
32
+ };
33
+ const INSTRUMENTS_CONFIG = exports.INSTRUMENTS_CONFIG = {
34
+ [_types.InstrumentId.EUR_AUD]: {
35
+ mt5name: 'EURAUD',
36
+ v20name: 'EUR_AUD',
37
+ precision: 5,
38
+ defaultBucketWidth: 0.0005
39
+ },
40
+ [_types.InstrumentId.EUR_GBP]: {
41
+ mt5name: 'EURGBP',
42
+ v20name: 'EUR_GBP',
43
+ precision: 5,
44
+ defaultBucketWidth: 0.0005
45
+ },
46
+ [_types.InstrumentId.EUR_JPY]: {
47
+ mt5name: 'EURJPY',
48
+ v20name: 'EUR_JPY',
49
+ precision: 3,
50
+ defaultBucketWidth: 0.05
51
+ },
52
+ [_types.InstrumentId.EUR_USD]: {
53
+ mt5name: 'EURUSD',
54
+ v20name: 'EUR_USD',
55
+ precision: 5,
56
+ defaultBucketWidth: 0.0005
57
+ },
58
+ [_types.InstrumentId.EUR_CHF]: {
59
+ mt5name: 'EURCHF',
60
+ v20name: 'EUR_CHF',
61
+ precision: 5,
62
+ defaultBucketWidth: 0.0005
63
+ },
64
+ [_types.InstrumentId.USD_CHF]: {
65
+ mt5name: 'USDCHF',
66
+ v20name: 'USD_CHF',
67
+ precision: 5,
68
+ defaultBucketWidth: 0.0005
69
+ },
70
+ [_types.InstrumentId.USD_JPY]: {
71
+ mt5name: 'USDJPY',
72
+ v20name: 'USD_JPY',
73
+ precision: 3,
74
+ defaultBucketWidth: 0.05
75
+ },
76
+ [_types.InstrumentId.USD_CAD]: {
77
+ mt5name: 'USDCAD',
78
+ v20name: 'USD_CAD',
79
+ precision: 5,
80
+ defaultBucketWidth: 0.0005
81
+ },
82
+ [_types.InstrumentId.GBP_USD]: {
83
+ mt5name: 'GBPUSD',
84
+ v20name: 'GBP_USD',
85
+ precision: 5,
86
+ defaultBucketWidth: 0.0005
87
+ },
88
+ [_types.InstrumentId.GBP_JPY]: {
89
+ mt5name: 'GBPJPY',
90
+ v20name: 'GBP_JPY',
91
+ precision: 3,
92
+ defaultBucketWidth: 0.05
93
+ },
94
+ [_types.InstrumentId.GBP_CHF]: {
95
+ mt5name: 'GBPCHF',
96
+ v20name: 'GBP_CHF',
97
+ precision: 5,
98
+ defaultBucketWidth: 0.0005
99
+ },
100
+ [_types.InstrumentId.AUD_JPY]: {
101
+ mt5name: 'AUDJPY',
102
+ v20name: 'AUD_JPY',
103
+ precision: 3,
104
+ defaultBucketWidth: 0.05
105
+ },
106
+ [_types.InstrumentId.AUD_USD]: {
107
+ mt5name: 'AUDUSD',
108
+ v20name: 'AUD_USD',
109
+ precision: 5,
110
+ defaultBucketWidth: 0.0005
111
+ },
112
+ [_types.InstrumentId.NZD_USD]: {
113
+ mt5name: 'NZDUSD',
114
+ v20name: 'NZD_USD',
115
+ precision: 5,
116
+ defaultBucketWidth: 0.0005
117
+ },
118
+ [_types.InstrumentId.XAU_USD]: {
119
+ mt5name: 'XAUUSD',
120
+ v20name: 'XAU_USD',
121
+ precision: 3,
122
+ defaultBucketWidth: 0.5
123
+ },
124
+ [_types.InstrumentId.XAG_USD]: {
125
+ mt5name: 'XAGUSD',
126
+ v20name: 'XAG_USD',
127
+ precision: 5,
128
+ defaultBucketWidth: 0.0005
129
+ }
30
130
  };
31
131
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["BOOKS_THRESHOLDS","exports","MIN","MAX","BUCKET_CONFIG","DEFAULT_WIDTH","PRICE_PADDING_MULTIPLIER","TIME_THRESHOLDS","TWO_WEEKS_MS","CHART_CONFIG","HEIGHT","WIDTH","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","INITIAL_START_ZOOM","INITIAL_END_ZOOM","X_AXIS_DATE_PADDING","COLOR_MAP","long","short"],"sources":["../../../src/CrowdViewWidget/constants.ts"],"sourcesContent":["export const BOOKS_THRESHOLDS = {\n MIN: 0.15,\n MAX: 0.55,\n} as const;\n\nexport const BUCKET_CONFIG = {\n DEFAULT_WIDTH: 0.0005,\n PRICE_PADDING_MULTIPLIER: 2,\n} as const;\n\nexport const TIME_THRESHOLDS = {\n TWO_WEEKS_MS: 14 * 24 * 60 * 60 * 1000,\n} as const;\n\nexport const CHART_CONFIG = {\n HEIGHT: 425,\n WIDTH: 9999,\n X_LABEL_SIZE: 40,\n Y_LABEL_SIZE_DESKTOP: 60,\n INITIAL_START_ZOOM: 0,\n INITIAL_END_ZOOM: 100,\n X_AXIS_DATE_PADDING: ' ',\n} as const;\n\nexport const COLOR_MAP = {\n long: ['#fcedca', '#FAB313'],\n short: ['#c8ebfa', '#309DCC'],\n} as const;\n"],"mappings":";;;;;;AAAO,MAAMA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC9BE,GAAG,EAAE,IAAI;EACTC,GAAG,EAAE;AACP,CAAU;AAEH,MAAMC,aAAa,GAAAH,OAAA,CAAAG,aAAA,GAAG;EAC3BC,aAAa,EAAE,MAAM;EACrBC,wBAAwB,EAAE;AAC5B,CAAU;AAEH,MAAMC,eAAe,GAAAN,OAAA,CAAAM,eAAA,GAAG;EAC7BC,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACpC,CAAU;AAEH,MAAMC,YAAY,GAAAR,OAAA,CAAAQ,YAAA,GAAG;EAC1BC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,IAAI;EACXC,YAAY,EAAE,EAAE;EAChBC,oBAAoB,EAAE,EAAE;EACxBC,kBAAkB,EAAE,CAAC;EACrBC,gBAAgB,EAAE,GAAG;EACrBC,mBAAmB,EAAE;AACvB,CAAU;AAEH,MAAMC,SAAS,GAAAhB,OAAA,CAAAgB,SAAA,GAAG;EACvBC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;EAC5BC,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS;AAC9B,CAAU","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","names":["_types","require","BOOKS_THRESHOLDS","exports","MIN","MAX","BUCKET_CONFIG","MULTIPLIER","PRICE_PADDING_MULTIPLIER","TIME_THRESHOLDS","TWO_WEEKS_MS","CHART_CONFIG","HEIGHT","WIDTH","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","INITIAL_START_ZOOM","INITIAL_END_ZOOM","X_AXIS_DATE_PADDING","COLOR_MAP","long","short","INSTRUMENTS_CONFIG","InstrumentId","EUR_AUD","mt5name","v20name","precision","defaultBucketWidth","EUR_GBP","EUR_JPY","EUR_USD","EUR_CHF","USD_CHF","USD_JPY","USD_CAD","GBP_USD","GBP_JPY","GBP_CHF","AUD_JPY","AUD_USD","NZD_USD","XAU_USD","XAG_USD"],"sources":["../../../src/CrowdViewWidget/constants.ts"],"sourcesContent":["import { InstrumentId } from './types';\n\nexport const BOOKS_THRESHOLDS = {\n MIN: 0.15,\n MAX: 0.55,\n} as const;\n\nexport const BUCKET_CONFIG = {\n MULTIPLIER: 4,\n PRICE_PADDING_MULTIPLIER: 2,\n} as const;\n\nexport const TIME_THRESHOLDS = {\n TWO_WEEKS_MS: 14 * 24 * 60 * 60 * 1000,\n} as const;\n\nexport const CHART_CONFIG = {\n HEIGHT: 425,\n WIDTH: 9999,\n X_LABEL_SIZE: 40,\n Y_LABEL_SIZE_DESKTOP: 60,\n Y_LABEL_SIZE_MOBILE: 40,\n INITIAL_START_ZOOM: 80,\n INITIAL_END_ZOOM: 100,\n X_AXIS_DATE_PADDING: ' ',\n} as const;\n\nexport const COLOR_MAP = {\n long: ['#eaf5fa', '#83c4e0'],\n short: ['#fef7e7', '#fcd171'],\n} as const;\n\nexport const INSTRUMENTS_CONFIG: Record<\n InstrumentId,\n {\n precision: number;\n defaultBucketWidth: number;\n v20name: string;\n mt5name: string;\n }\n> = {\n [InstrumentId.EUR_AUD]: {\n mt5name: 'EURAUD',\n v20name: 'EUR_AUD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.EUR_GBP]: {\n mt5name: 'EURGBP',\n v20name: 'EUR_GBP',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.EUR_JPY]: {\n mt5name: 'EURJPY',\n v20name: 'EUR_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.EUR_USD]: {\n mt5name: 'EURUSD',\n v20name: 'EUR_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.EUR_CHF]: {\n mt5name: 'EURCHF',\n v20name: 'EUR_CHF',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.USD_CHF]: {\n mt5name: 'USDCHF',\n v20name: 'USD_CHF',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.USD_JPY]: {\n mt5name: 'USDJPY',\n v20name: 'USD_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.USD_CAD]: {\n mt5name: 'USDCAD',\n v20name: 'USD_CAD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.GBP_USD]: {\n mt5name: 'GBPUSD',\n v20name: 'GBP_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.GBP_JPY]: {\n mt5name: 'GBPJPY',\n v20name: 'GBP_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.GBP_CHF]: {\n mt5name: 'GBPCHF',\n v20name: 'GBP_CHF',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.AUD_JPY]: {\n mt5name: 'AUDJPY',\n v20name: 'AUD_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.AUD_USD]: {\n mt5name: 'AUDUSD',\n v20name: 'AUD_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.NZD_USD]: {\n mt5name: 'NZDUSD',\n v20name: 'NZD_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.XAU_USD]: {\n mt5name: 'XAUUSD',\n v20name: 'XAU_USD',\n precision: 3,\n defaultBucketWidth: 0.5,\n },\n [InstrumentId.XAG_USD]: {\n mt5name: 'XAGUSD',\n v20name: 'XAG_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n};\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.navigationConfig = exports.instrumentSelectConfigOC = exports.instrumentSelectConfig = exports.granularitySelectConfig = void 0;
7
7
  var _graphql = require("../gql/types/graphql");
8
- var _instruments = require("./types/instruments");
8
+ var _types = require("./types");
9
9
  const navigationConfig = exports.navigationConfig = [{
10
10
  id: _graphql.BookType.Order,
11
11
  label: 'order_book'
@@ -14,95 +14,53 @@ const navigationConfig = exports.navigationConfig = [{
14
14
  label: 'position_book'
15
15
  }];
16
16
  const instrumentSelectConfigOC = exports.instrumentSelectConfigOC = [{
17
- id: _instruments.InstrumentIdOC.EUR_AUD,
17
+ id: _types.InstrumentId.EUR_AUD,
18
18
  label: 'EUR/AUD'
19
19
  }, {
20
- id: _instruments.InstrumentIdOC.EUR_GBP,
20
+ id: _types.InstrumentId.EUR_GBP,
21
21
  label: 'EUR/GBP'
22
22
  }, {
23
- id: _instruments.InstrumentIdOC.EUR_JPY,
23
+ id: _types.InstrumentId.EUR_JPY,
24
24
  label: 'EUR/JPY'
25
25
  }, {
26
- id: _instruments.InstrumentIdOC.EUR_USD,
26
+ id: _types.InstrumentId.EUR_USD,
27
27
  label: 'EUR/USD'
28
28
  }, {
29
- id: _instruments.InstrumentIdOC.EUR_CHF,
29
+ id: _types.InstrumentId.EUR_CHF,
30
30
  label: 'EUR/CHF'
31
31
  }, {
32
- id: _instruments.InstrumentIdOC.USD_CHF,
32
+ id: _types.InstrumentId.USD_CHF,
33
33
  label: 'USD/CHF'
34
34
  }, {
35
- id: _instruments.InstrumentIdOC.USD_JPY,
35
+ id: _types.InstrumentId.USD_JPY,
36
36
  label: 'USD/JPY'
37
37
  }, {
38
- id: _instruments.InstrumentIdOC.USD_CAD,
38
+ id: _types.InstrumentId.USD_CAD,
39
39
  label: 'USD/CAD'
40
40
  }, {
41
- id: _instruments.InstrumentIdOC.GBP_USD,
41
+ id: _types.InstrumentId.GBP_USD,
42
42
  label: 'GBP/USD'
43
43
  }, {
44
- id: _instruments.InstrumentIdOC.GBP_JPY,
44
+ id: _types.InstrumentId.GBP_JPY,
45
45
  label: 'GBP/JPY'
46
46
  }, {
47
- id: _instruments.InstrumentIdOC.GBP_CHF,
47
+ id: _types.InstrumentId.GBP_CHF,
48
48
  label: 'GBP/CHF'
49
49
  }, {
50
- id: _instruments.InstrumentIdOC.AUD_JPY,
50
+ id: _types.InstrumentId.AUD_JPY,
51
51
  label: 'AUD/JPY'
52
52
  }, {
53
- id: _instruments.InstrumentIdOC.AUD_USD,
53
+ id: _types.InstrumentId.AUD_USD,
54
54
  label: 'AUD/USD'
55
55
  }, {
56
- id: _instruments.InstrumentIdOC.NZD_USD,
56
+ id: _types.InstrumentId.NZD_USD,
57
57
  label: 'NZD/USD'
58
58
  }];
59
- const instrumentSelectConfig = exports.instrumentSelectConfig = [{
60
- id: _instruments.InstrumentId.EUR_AUD,
61
- label: 'EUR/AUD'
62
- }, {
63
- id: _instruments.InstrumentId.EUR_GBP,
64
- label: 'EUR/GBP'
65
- }, {
66
- id: _instruments.InstrumentId.EUR_JPY,
67
- label: 'EUR/JPY'
68
- }, {
69
- id: _instruments.InstrumentId.EUR_USD,
70
- label: 'EUR/USD'
71
- }, {
72
- id: _instruments.InstrumentId.EUR_CHF,
73
- label: 'EUR/CHF'
74
- }, {
75
- id: _instruments.InstrumentId.USD_CHF,
76
- label: 'USD/CHF'
77
- }, {
78
- id: _instruments.InstrumentId.USD_JPY,
79
- label: 'USD/JPY'
80
- }, {
81
- id: _instruments.InstrumentId.USD_CAD,
82
- label: 'USD/CAD'
83
- }, {
84
- id: _instruments.InstrumentId.GBP_USD,
85
- label: 'GBP/USD'
86
- }, {
87
- id: _instruments.InstrumentId.GBP_JPY,
88
- label: 'GBP/JPY'
89
- }, {
90
- id: _instruments.InstrumentId.GBP_CHF,
91
- label: 'GBP/CHF'
92
- }, {
93
- id: _instruments.InstrumentId.AUD_JPY,
94
- label: 'AUD/JPY'
95
- }, {
96
- id: _instruments.InstrumentId.AUD_USD,
97
- label: 'AUD/USD'
98
- }, {
99
- id: _instruments.InstrumentId.NZD_USD,
100
- label: 'NZD/USD'
101
- }, {
102
- id: _instruments.InstrumentId.XAU_USD,
59
+ const instrumentSelectConfig = exports.instrumentSelectConfig = [...instrumentSelectConfigOC, {
60
+ id: _types.InstrumentId.XAU_USD,
103
61
  label: 'XAU/USD'
104
62
  }, {
105
- id: _instruments.InstrumentId.XAG_USD,
63
+ id: _types.InstrumentId.XAG_USD,
106
64
  label: 'XAG/USD'
107
65
  }];
108
66
  const granularitySelectConfig = exports.granularitySelectConfig = [{