@oanda/labs-crowd-view-widget 1.0.56 → 1.0.58

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 (95) hide show
  1. package/CHANGELOG.md +468 -0
  2. package/dist/main/CrowdViewWidget/components/Chart/Chart.js +1 -6
  3. package/dist/main/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  4. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js +5 -4
  5. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js.map +1 -1
  6. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js +13 -6
  7. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js.map +1 -1
  8. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js +4 -4
  9. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js.map +1 -1
  10. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js +9 -43
  11. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js.map +1 -1
  12. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js +19 -4
  13. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js.map +1 -1
  14. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js +15 -2
  15. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js.map +1 -1
  16. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.js +27 -0
  17. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.js.map +1 -0
  18. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js +14 -23
  19. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js.map +1 -1
  20. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/index.js +11 -0
  21. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/index.js.map +1 -1
  22. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.js +22 -0
  23. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.js.map +1 -0
  24. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/index.js +8 -8
  25. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/index.js.map +1 -1
  26. package/dist/main/CrowdViewWidget/components/Chart/getOption.js +4 -4
  27. package/dist/main/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
  28. package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js +11 -7
  29. package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -1
  30. package/dist/main/CrowdViewWidget/constants.js +8 -6
  31. package/dist/main/CrowdViewWidget/constants.js.map +1 -1
  32. package/dist/main/translations/sources/en.json +2 -1
  33. package/dist/module/CrowdViewWidget/components/Chart/Chart.js +2 -7
  34. package/dist/module/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  35. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js +5 -4
  36. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js.map +1 -1
  37. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js +13 -6
  38. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js.map +1 -1
  39. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js +4 -4
  40. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js.map +1 -1
  41. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js +9 -42
  42. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js.map +1 -1
  43. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js +20 -5
  44. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js.map +1 -1
  45. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js +15 -2
  46. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js.map +1 -1
  47. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.js +20 -0
  48. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.js.map +1 -0
  49. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js +14 -23
  50. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js.map +1 -1
  51. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js +1 -0
  52. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js.map +1 -1
  53. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.js +15 -0
  54. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.js.map +1 -0
  55. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/index.js +1 -1
  56. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/index.js.map +1 -1
  57. package/dist/module/CrowdViewWidget/components/Chart/getOption.js +4 -4
  58. package/dist/module/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
  59. package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js +13 -9
  60. package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -1
  61. package/dist/module/CrowdViewWidget/constants.js +7 -5
  62. package/dist/module/CrowdViewWidget/constants.js.map +1 -1
  63. package/dist/module/translations/sources/en.json +2 -1
  64. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.d.ts +1 -2
  65. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.d.ts +2 -1
  66. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.d.ts +4 -2
  67. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.d.ts +1 -0
  68. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/index.d.ts +1 -0
  69. package/dist/types/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.d.ts +8 -0
  70. package/dist/types/CrowdViewWidget/components/Chart/dataUtils/index.d.ts +1 -1
  71. package/dist/types/CrowdViewWidget/constants.d.ts +5 -3
  72. package/package.json +3 -3
  73. package/src/CrowdViewWidget/components/Chart/Chart.tsx +1 -7
  74. package/src/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.ts +5 -4
  75. package/src/CrowdViewWidget/components/Chart/chartOptions/getGridLines.ts +19 -10
  76. package/src/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.ts +9 -5
  77. package/src/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.ts +38 -79
  78. package/src/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.ts +26 -2
  79. package/src/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.ts +20 -3
  80. package/src/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.ts +26 -0
  81. package/src/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.ts +50 -35
  82. package/src/CrowdViewWidget/components/Chart/chartUtils/index.ts +1 -0
  83. package/src/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.ts +25 -0
  84. package/src/CrowdViewWidget/components/Chart/dataUtils/index.ts +1 -1
  85. package/src/CrowdViewWidget/components/Chart/getOption.ts +2 -2
  86. package/src/CrowdViewWidget/components/Chart/useCrowdViewData.ts +17 -16
  87. package/src/CrowdViewWidget/constants.ts +11 -7
  88. package/src/translations/sources/en.json +2 -1
  89. package/test/components/Chart/dataUtils/getBucketWidthMultiplayer.test.ts +33 -0
  90. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getMultiplayerForTimeSpan.js +0 -19
  91. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getMultiplayerForTimeSpan.js.map +0 -1
  92. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getMultiplayerForTimeSpan.js +0 -12
  93. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getMultiplayerForTimeSpan.js.map +0 -1
  94. package/dist/types/CrowdViewWidget/components/Chart/dataUtils/getMultiplayerForTimeSpan.d.ts +0 -2
  95. package/src/CrowdViewWidget/components/Chart/dataUtils/getMultiplayerForTimeSpan.ts +0 -13
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_formatXAxisAdditionalLabel","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_formatXAxisLabel","_getChartStyles","_getGradientColor","_getLabelData","_getRectColor","_getTooltipFormatter","_handleLabelUpdate","_handleTooltipUpdate","_isDifferenceGreaterThanTwoWeeks","_normalizeLocale"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/index.ts"],"sourcesContent":["export * from './formatXAxisAdditionalLabel';\nexport * from './formatXAxisLabel';\nexport * from './getChartStyles';\nexport * from './getGradientColor';\nexport * from './getLabelData';\nexport * from './getRectColor';\nexport * from './getTooltipFormatter';\nexport * from './handleLabelUpdate';\nexport * from './handleTooltipUpdate';\nexport * from './isDifferenceGreaterThanTwoWeeks';\nexport * from './normalizeLocale';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_formatFullDate","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_formatXAxisAdditionalLabel","_formatXAxisLabel","_getChartStyles","_getGradientColor","_getLabelData","_getRectColor","_getTooltipFormatter","_handleLabelUpdate","_handleTooltipUpdate","_isDifferenceGreaterThanTwoWeeks","_normalizeLocale"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/index.ts"],"sourcesContent":["export * from './formatFullDate';\nexport * from './formatXAxisAdditionalLabel';\nexport * from './formatXAxisLabel';\nexport * from './getChartStyles';\nexport * from './getGradientColor';\nexport * from './getLabelData';\nexport * from './getRectColor';\nexport * from './getTooltipFormatter';\nexport * from './handleLabelUpdate';\nexport * from './handleTooltipUpdate';\nexport * from './isDifferenceGreaterThanTwoWeeks';\nexport * from './normalizeLocale';\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getBucketWidthMultiplayer = void 0;
7
+ var _constants = require("../../../constants");
8
+ const getBucketWidthMultiplayer = _ref => {
9
+ let {
10
+ minPrice,
11
+ maxPrice,
12
+ instrument
13
+ } = _ref;
14
+ const {
15
+ defaultBucketWidth
16
+ } = _constants.INSTRUMENTS_CONFIG[instrument];
17
+ const priceRange = maxPrice - minPrice;
18
+ const calculatedMultiplier = priceRange / (defaultBucketWidth * _constants.DISPLAYED_BUCKETS_COUNT);
19
+ return Math.max(1, Math.ceil(calculatedMultiplier));
20
+ };
21
+ exports.getBucketWidthMultiplayer = getBucketWidthMultiplayer;
22
+ //# sourceMappingURL=getBucketWidthMultiplayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBucketWidthMultiplayer.js","names":["_constants","require","getBucketWidthMultiplayer","_ref","minPrice","maxPrice","instrument","defaultBucketWidth","INSTRUMENTS_CONFIG","priceRange","calculatedMultiplier","DISPLAYED_BUCKETS_COUNT","Math","max","ceil","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.ts"],"sourcesContent":["import {\n DISPLAYED_BUCKETS_COUNT,\n INSTRUMENTS_CONFIG,\n} from '../../../constants';\nimport type { InstrumentId } from '../../../types';\n\ninterface GetBucketWidthMultiplayerParams {\n minPrice: number;\n maxPrice: number;\n instrument: InstrumentId;\n}\n\nexport const getBucketWidthMultiplayer = ({\n minPrice,\n maxPrice,\n instrument,\n}: GetBucketWidthMultiplayerParams): number => {\n const { defaultBucketWidth } = INSTRUMENTS_CONFIG[instrument];\n const priceRange = maxPrice - minPrice;\n\n const calculatedMultiplier =\n priceRange / (defaultBucketWidth * DISPLAYED_BUCKETS_COUNT);\n\n return Math.max(1, Math.ceil(calculatedMultiplier));\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAYO,MAAMC,yBAAyB,GAAGC,IAAA,IAIM;EAAA,IAJL;IACxCC,QAAQ;IACRC,QAAQ;IACRC;EAC+B,CAAC,GAAAH,IAAA;EAChC,MAAM;IAAEI;EAAmB,CAAC,GAAGC,6BAAkB,CAACF,UAAU,CAAC;EAC7D,MAAMG,UAAU,GAAGJ,QAAQ,GAAGD,QAAQ;EAEtC,MAAMM,oBAAoB,GACxBD,UAAU,IAAIF,kBAAkB,GAAGI,kCAAuB,CAAC;EAE7D,OAAOC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,IAAI,CAACJ,oBAAoB,CAAC,CAAC;AACrD,CAAC;AAACK,OAAA,CAAAb,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -3,25 +3,25 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _getInstrumentConfigForDivision = require("./getInstrumentConfigForDivision");
7
- Object.keys(_getInstrumentConfigForDivision).forEach(function (key) {
6
+ var _getBucketWidthMultiplayer = require("./getBucketWidthMultiplayer");
7
+ Object.keys(_getBucketWidthMultiplayer).forEach(function (key) {
8
8
  if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _getInstrumentConfigForDivision[key]) return;
9
+ if (key in exports && exports[key] === _getBucketWidthMultiplayer[key]) return;
10
10
  Object.defineProperty(exports, key, {
11
11
  enumerable: true,
12
12
  get: function () {
13
- return _getInstrumentConfigForDivision[key];
13
+ return _getBucketWidthMultiplayer[key];
14
14
  }
15
15
  });
16
16
  });
17
- var _getMultiplayerForTimeSpan = require("./getMultiplayerForTimeSpan");
18
- Object.keys(_getMultiplayerForTimeSpan).forEach(function (key) {
17
+ var _getInstrumentConfigForDivision = require("./getInstrumentConfigForDivision");
18
+ Object.keys(_getInstrumentConfigForDivision).forEach(function (key) {
19
19
  if (key === "default" || key === "__esModule") return;
20
- if (key in exports && exports[key] === _getMultiplayerForTimeSpan[key]) return;
20
+ if (key in exports && exports[key] === _getInstrumentConfigForDivision[key]) return;
21
21
  Object.defineProperty(exports, key, {
22
22
  enumerable: true,
23
23
  get: function () {
24
- return _getMultiplayerForTimeSpan[key];
24
+ return _getInstrumentConfigForDivision[key];
25
25
  }
26
26
  });
27
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_getInstrumentConfigForDivision","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getMultiplayerForTimeSpan","_getTimeSpanForGranularity","_processOrderPositionBooks","_processPriceCandles","_processSentiments","_validateData"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/dataUtils/index.ts"],"sourcesContent":["export * from './getInstrumentConfigForDivision';\nexport * from './getMultiplayerForTimeSpan';\nexport * from './getTimeSpanForGranularity';\nexport * from './processOrderPositionBooks';\nexport * from './processPriceCandles';\nexport * from './processSentiments';\nexport * from './validateData';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_getBucketWidthMultiplayer","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getInstrumentConfigForDivision","_getTimeSpanForGranularity","_processOrderPositionBooks","_processPriceCandles","_processSentiments","_validateData"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/dataUtils/index.ts"],"sourcesContent":["export * from './getBucketWidthMultiplayer';\nexport * from './getInstrumentConfigForDivision';\nexport * from './getTimeSpanForGranularity';\nexport * from './processOrderPositionBooks';\nexport * from './processPriceCandles';\nexport * from './processSentiments';\nexport * from './validateData';\n"],"mappings":"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","ignoreList":[]}
@@ -60,7 +60,6 @@ const getOption = _ref => {
60
60
  bookType,
61
61
  bucketWidth,
62
62
  buckets,
63
- displayPrecision,
64
63
  labelCallback,
65
64
  selectedPriceRef,
66
65
  tooltipLinesColor: styles.tooltipLinesColor,
@@ -76,12 +75,13 @@ const getOption = _ref => {
76
75
  xAxis: (0, _chartOptions.getXAxisConfig)({
77
76
  dates,
78
77
  isGreaterThanTwoWeeks,
79
- locale
78
+ locale,
79
+ isDesktop
80
80
  }),
81
81
  yAxis: (0, _chartOptions.getYAxisConfig)({
82
- isDesktop,
83
82
  bucketWidth,
84
- displayPrecision
83
+ displayPrecision,
84
+ selectedPriceRef
85
85
  }),
86
86
  dataZoom: (0, _chartOptions.getDataZoomConfig)({
87
87
  isDesktop
@@ -1 +1 @@
1
- {"version":3,"file":"getOption.js","names":["_constants","require","_chartOptions","_chartUtils","_getChartStyles","getOption","_ref","mainData","dates","candlesOpen","candlesClose","candlesLow","candlesHigh","bookPrices","bookIndexes","sentimentShorts","sentimentLongs","additionalData","bucketWidth","buckets","displayPrecision","bookType","sentimentThresholdMin","sentimentThresholdMax","isLoading","isDark","isDesktop","labelCallback","locale","styles","getChartStyles","selectedPriceRef","current","initialStartZoom","CHART_CONFIG","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","visibleXAxisData","slice","length","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","isDifferenceGreaterThanTwoWeeks","heatmapChart","getSeriesHeatmapConfig","sentimentChart","getSeriesSentimentConfig","animation","tooltip","getTooltipConfig","tooltipLinesColor","grid","getGridConfig","xAxis","getXAxisConfig","yAxis","getYAxisConfig","dataZoom","getDataZoomConfig","visualMap","getVisualMapConfig","sentimentLongColor","sentimentShortColor","graphic","getGridLines","getLabelsConfig","dataset","source","series","getSeriesCandlestickConfig","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/getOption.ts"],"sourcesContent":["import { CHART_CONFIG } from '../../constants';\nimport {\n getDataZoomConfig,\n getGridConfig,\n getGridLines,\n getLabelsConfig,\n getSeriesCandlestickConfig,\n getSeriesHeatmapConfig,\n getSeriesSentimentConfig,\n getTooltipConfig,\n getVisualMapConfig,\n getXAxisConfig,\n getYAxisConfig,\n} from './chartOptions';\nimport { isDifferenceGreaterThanTwoWeeks } from './chartUtils';\nimport { getChartStyles } from './chartUtils/getChartStyles';\nimport type { GetOptionType } from './types';\n\nexport const getOption: GetOptionType = ({\n mainData: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n },\n additionalData: {\n bucketWidth,\n buckets,\n displayPrecision,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n },\n isLoading,\n isDark,\n isDesktop,\n labelCallback,\n locale,\n}) => {\n const styles = getChartStyles(isDark);\n const selectedPriceRef = { current: 0 };\n\n const initialStartZoom = isDesktop\n ? CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP\n : CHART_CONFIG.INITIAL_START_ZOOM_MOBILE;\n\n const visibleXAxisData = dates.slice(\n (dates.length * initialStartZoom) / 100,\n (dates.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const heatmapChart =\n bookPrices && bookPrices.length > 0\n ? [\n getSeriesHeatmapConfig({\n bucketWidth,\n buckets,\n isDark,\n sentimentThresholdMax,\n sentimentThresholdMin,\n isLoading,\n }),\n ]\n : [];\n\n const sentimentChart =\n sentimentLongs && sentimentLongs.length > 0\n ? [\n getSeriesSentimentConfig({\n styles,\n isLoading,\n }),\n ]\n : [];\n\n return {\n animation: false,\n tooltip: getTooltipConfig({\n bookType,\n bucketWidth,\n buckets,\n displayPrecision,\n labelCallback,\n selectedPriceRef,\n tooltipLinesColor: styles.tooltipLinesColor,\n sentimentLongs,\n sentimentShorts,\n isDesktop,\n isDark,\n locale,\n }),\n grid: getGridConfig({ isDesktop }),\n xAxis: getXAxisConfig({\n dates,\n isGreaterThanTwoWeeks,\n locale,\n }),\n yAxis: getYAxisConfig({\n isDesktop,\n bucketWidth,\n displayPrecision,\n }),\n dataZoom: getDataZoomConfig({ isDesktop }),\n visualMap: getVisualMapConfig({\n sentimentLongColor: styles.sentimentLongColor,\n sentimentShortColor: styles.sentimentShortColor,\n }),\n graphic: [\n ...getGridLines({ isDark, isDesktop }),\n ...getLabelsConfig({ isDark, isDesktop, labelCallback }),\n ],\n dataset: {\n source: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices: bookPrices ?? [],\n bookIndexes: bookIndexes ?? [],\n sentimentShorts,\n sentimentLongs,\n },\n },\n series: [\n getSeriesCandlestickConfig({\n styles,\n isLoading,\n }),\n ...heatmapChart,\n ...sentimentChart,\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getOption.js","names":["_constants","require","_chartOptions","_chartUtils","_getChartStyles","getOption","_ref","mainData","dates","candlesOpen","candlesClose","candlesLow","candlesHigh","bookPrices","bookIndexes","sentimentShorts","sentimentLongs","additionalData","bucketWidth","buckets","displayPrecision","bookType","sentimentThresholdMin","sentimentThresholdMax","isLoading","isDark","isDesktop","labelCallback","locale","styles","getChartStyles","selectedPriceRef","current","initialStartZoom","CHART_CONFIG","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","visibleXAxisData","slice","length","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","isDifferenceGreaterThanTwoWeeks","heatmapChart","getSeriesHeatmapConfig","sentimentChart","getSeriesSentimentConfig","animation","tooltip","getTooltipConfig","tooltipLinesColor","grid","getGridConfig","xAxis","getXAxisConfig","yAxis","getYAxisConfig","dataZoom","getDataZoomConfig","visualMap","getVisualMapConfig","sentimentLongColor","sentimentShortColor","graphic","getGridLines","getLabelsConfig","dataset","source","series","getSeriesCandlestickConfig","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/getOption.ts"],"sourcesContent":["import { CHART_CONFIG } from '../../constants';\nimport {\n getDataZoomConfig,\n getGridConfig,\n getGridLines,\n getLabelsConfig,\n getSeriesCandlestickConfig,\n getSeriesHeatmapConfig,\n getSeriesSentimentConfig,\n getTooltipConfig,\n getVisualMapConfig,\n getXAxisConfig,\n getYAxisConfig,\n} from './chartOptions';\nimport { isDifferenceGreaterThanTwoWeeks } from './chartUtils';\nimport { getChartStyles } from './chartUtils/getChartStyles';\nimport type { GetOptionType } from './types';\n\nexport const getOption: GetOptionType = ({\n mainData: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n },\n additionalData: {\n bucketWidth,\n buckets,\n displayPrecision,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n },\n isLoading,\n isDark,\n isDesktop,\n labelCallback,\n locale,\n}) => {\n const styles = getChartStyles(isDark);\n const selectedPriceRef = { current: 0 };\n\n const initialStartZoom = isDesktop\n ? CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP\n : CHART_CONFIG.INITIAL_START_ZOOM_MOBILE;\n\n const visibleXAxisData = dates.slice(\n (dates.length * initialStartZoom) / 100,\n (dates.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const heatmapChart =\n bookPrices && bookPrices.length > 0\n ? [\n getSeriesHeatmapConfig({\n bucketWidth,\n buckets,\n isDark,\n sentimentThresholdMax,\n sentimentThresholdMin,\n isLoading,\n }),\n ]\n : [];\n\n const sentimentChart =\n sentimentLongs && sentimentLongs.length > 0\n ? [\n getSeriesSentimentConfig({\n styles,\n isLoading,\n }),\n ]\n : [];\n\n return {\n animation: false,\n tooltip: getTooltipConfig({\n bookType,\n bucketWidth,\n buckets,\n labelCallback,\n selectedPriceRef,\n tooltipLinesColor: styles.tooltipLinesColor,\n sentimentLongs,\n sentimentShorts,\n isDesktop,\n isDark,\n locale,\n }),\n grid: getGridConfig({ isDesktop }),\n xAxis: getXAxisConfig({\n dates,\n isGreaterThanTwoWeeks,\n locale,\n isDesktop,\n }),\n yAxis: getYAxisConfig({\n bucketWidth,\n displayPrecision,\n selectedPriceRef,\n }),\n dataZoom: getDataZoomConfig({ isDesktop }),\n visualMap: getVisualMapConfig({\n sentimentLongColor: styles.sentimentLongColor,\n sentimentShortColor: styles.sentimentShortColor,\n }),\n graphic: [\n ...getGridLines({ isDark, isDesktop }),\n ...getLabelsConfig({ isDark, isDesktop, labelCallback }),\n ],\n dataset: {\n source: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices: bookPrices ?? [],\n bookIndexes: bookIndexes ?? [],\n sentimentShorts,\n sentimentLongs,\n },\n },\n series: [\n getSeriesCandlestickConfig({\n styles,\n isLoading,\n }),\n ...heatmapChart,\n ...sentimentChart,\n ],\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAaA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAGO,MAAMI,SAAwB,GAAGC,IAAA,IAyBlC;EAAA,IAzBmC;IACvCC,QAAQ,EAAE;MACRC,KAAK;MACLC,WAAW;MACXC,YAAY;MACZC,UAAU;MACVC,WAAW;MACXC,UAAU;MACVC,WAAW;MACXC,eAAe;MACfC;IACF,CAAC;IACDC,cAAc,EAAE;MACdC,WAAW;MACXC,OAAO;MACPC,gBAAgB;MAChBC,QAAQ;MACRC,qBAAqB;MACrBC;IACF,CAAC;IACDC,SAAS;IACTC,MAAM;IACNC,SAAS;IACTC,aAAa;IACbC;EACF,CAAC,GAAAtB,IAAA;EACC,MAAMuB,MAAM,GAAG,IAAAC,8BAAc,EAACL,MAAM,CAAC;EACrC,MAAMM,gBAAgB,GAAG;IAAEC,OAAO,EAAE;EAAE,CAAC;EAEvC,MAAMC,gBAAgB,GAAGP,SAAS,GAC9BQ,uBAAY,CAACC,0BAA0B,GACvCD,uBAAY,CAACE,yBAAyB;EAE1C,MAAMC,gBAAgB,GAAG7B,KAAK,CAAC8B,KAAK,CACjC9B,KAAK,CAAC+B,MAAM,GAAGN,gBAAgB,GAAI,GAAG,EACtCzB,KAAK,CAAC+B,MAAM,GAAGL,uBAAY,CAACM,gBAAgB,GAAI,GACnD,CAAC;EAED,MAAMC,qBAAqB,GAAG,IAAAC,2CAA+B,EAC3DL,gBAAgB,CAAC,CAAC,CAAC,EACnBA,gBAAgB,CAACA,gBAAgB,CAACE,MAAM,GAAG,CAAC,CAC9C,CAAC;EAED,MAAMI,YAAY,GAChB9B,UAAU,IAAIA,UAAU,CAAC0B,MAAM,GAAG,CAAC,GAC/B,CACE,IAAAK,oCAAsB,EAAC;IACrB1B,WAAW;IACXC,OAAO;IACPM,MAAM;IACNF,qBAAqB;IACrBD,qBAAqB;IACrBE;EACF,CAAC,CAAC,CACH,GACD,EAAE;EAER,MAAMqB,cAAc,GAClB7B,cAAc,IAAIA,cAAc,CAACuB,MAAM,GAAG,CAAC,GACvC,CACE,IAAAO,sCAAwB,EAAC;IACvBjB,MAAM;IACNL;EACF,CAAC,CAAC,CACH,GACD,EAAE;EAER,OAAO;IACLuB,SAAS,EAAE,KAAK;IAChBC,OAAO,EAAE,IAAAC,8BAAgB,EAAC;MACxB5B,QAAQ;MACRH,WAAW;MACXC,OAAO;MACPQ,aAAa;MACbI,gBAAgB;MAChBmB,iBAAiB,EAAErB,MAAM,CAACqB,iBAAiB;MAC3ClC,cAAc;MACdD,eAAe;MACfW,SAAS;MACTD,MAAM;MACNG;IACF,CAAC,CAAC;IACFuB,IAAI,EAAE,IAAAC,2BAAa,EAAC;MAAE1B;IAAU,CAAC,CAAC;IAClC2B,KAAK,EAAE,IAAAC,4BAAc,EAAC;MACpB9C,KAAK;MACLiC,qBAAqB;MACrBb,MAAM;MACNF;IACF,CAAC,CAAC;IACF6B,KAAK,EAAE,IAAAC,4BAAc,EAAC;MACpBtC,WAAW;MACXE,gBAAgB;MAChBW;IACF,CAAC,CAAC;IACF0B,QAAQ,EAAE,IAAAC,+BAAiB,EAAC;MAAEhC;IAAU,CAAC,CAAC;IAC1CiC,SAAS,EAAE,IAAAC,gCAAkB,EAAC;MAC5BC,kBAAkB,EAAEhC,MAAM,CAACgC,kBAAkB;MAC7CC,mBAAmB,EAAEjC,MAAM,CAACiC;IAC9B,CAAC,CAAC;IACFC,OAAO,EAAE,CACP,GAAG,IAAAC,0BAAY,EAAC;MAAEvC,MAAM;MAAEC;IAAU,CAAC,CAAC,EACtC,GAAG,IAAAuC,6BAAe,EAAC;MAAExC,MAAM;MAAEC,SAAS;MAAEC;IAAc,CAAC,CAAC,CACzD;IACDuC,OAAO,EAAE;MACPC,MAAM,EAAE;QACN3D,KAAK;QACLC,WAAW;QACXC,YAAY;QACZC,UAAU;QACVC,WAAW;QACXC,UAAU,EAAEA,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI,EAAE;QAC5BC,WAAW,EAAEA,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,EAAE;QAC9BC,eAAe;QACfC;MACF;IACF,CAAC;IACDoD,MAAM,EAAE,CACN,IAAAC,wCAA0B,EAAC;MACzBxC,MAAM;MACNL;IACF,CAAC,CAAC,EACF,GAAGmB,YAAY,EACf,GAAGE,cAAc;EAErB,CAAC;AACH,CAAC;AAACyB,OAAA,CAAAjE,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -19,16 +19,15 @@ const useCrowdViewData = _ref => {
19
19
  division,
20
20
  granularity
21
21
  } = _ref;
22
- const dataSource = division === _graphql.Division.Ogm || division === _graphql.Division.Oj ? _graphql.DataSource.Mt5 : _graphql.DataSource.V20;
23
22
  const {
24
23
  loading: priceCandlesLoading,
25
24
  data: priceCandlesData,
26
25
  error: priceCandlesError
27
26
  } = (0, _client.useQuery)(_getPriceCandles.getPriceCandles, {
28
27
  variables: {
29
- dataSource,
28
+ dataSource: _graphql.DataSource.V20,
30
29
  division,
31
- instrument: dataSource === _graphql.DataSource.Mt5 ? _constants.INSTRUMENTS_CONFIG[instrument].mt5name : _constants.INSTRUMENTS_CONFIG[instrument].v20name,
30
+ instrument: _constants.INSTRUMENTS_CONFIG[instrument].v20name,
32
31
  granularity,
33
32
  timeSpan: (0, _dataUtils.getTimeSpanForGranularity)(granularity)
34
33
  },
@@ -45,6 +44,11 @@ const useCrowdViewData = _ref => {
45
44
  candlesHigh,
46
45
  pipsLocation
47
46
  } = (0, _react.useMemo)(() => (0, _dataUtils.processPriceCandles)(priceCandlesData), [priceCandlesData]);
47
+ const bucketWidthMultiplayer = (0, _react.useMemo)(() => (0, _dataUtils.getBucketWidthMultiplayer)({
48
+ minPrice,
49
+ maxPrice,
50
+ instrument
51
+ }), [minPrice, maxPrice, instrument]);
48
52
  const {
49
53
  loading: orderPositionLoading,
50
54
  data: orderPositionData,
@@ -52,12 +56,12 @@ const useCrowdViewData = _ref => {
52
56
  } = (0, _client.useQuery)(_getOrderPositionBooks.getOrderPositionBooks, {
53
57
  variables: {
54
58
  instrument: _constants.INSTRUMENTS_CONFIG[instrument].v20name,
55
- bookType: bookType || _graphql.BookType.Order,
59
+ bookType,
56
60
  timeSpan: (0, _dataUtils.getTimeSpanForGranularity)(granularity),
57
61
  granularity,
58
62
  maxBookPrice: maxPrice,
59
63
  minBookPrice: minPrice,
60
- bucketMultiplier: (0, _dataUtils.getMultiplayerForTimeSpan)(granularity),
64
+ bucketMultiplier: bucketWidthMultiplayer,
61
65
  bucketMargin: _constants.BUCKET_CONFIG.PRICE_MARGIN_MULTIPLIER
62
66
  },
63
67
  fetchPolicy: 'no-cache',
@@ -123,7 +127,7 @@ const useCrowdViewData = _ref => {
123
127
  sentimentLongs
124
128
  },
125
129
  additionalData: {
126
- bucketWidth: bucketWidth || _constants.INSTRUMENTS_CONFIG[instrument].defaultBucketWidth * (0, _dataUtils.getMultiplayerForTimeSpan)(granularity),
130
+ bucketWidth: bucketWidth || _constants.INSTRUMENTS_CONFIG[instrument].defaultBucketWidth * bucketWidthMultiplayer,
127
131
  buckets,
128
132
  displayPrecision: pipsLocation,
129
133
  bookType,
@@ -131,7 +135,7 @@ const useCrowdViewData = _ref => {
131
135
  sentimentThresholdMax
132
136
  }
133
137
  };
134
- }, [priceCandlesData, error, dates, candlesOpen, candlesClose, candlesLow, candlesHigh, bookPrices, bookIndexes, sentimentShorts, sentimentLongs, bucketWidth, granularity, instrument, buckets, pipsLocation, bookType, sentimentThresholdMin, sentimentThresholdMax]);
138
+ }, [priceCandlesData, error, dates, candlesOpen, candlesClose, candlesLow, candlesHigh, bookPrices, bookIndexes, sentimentShorts, sentimentLongs, bucketWidth, instrument, bucketWidthMultiplayer, buckets, pipsLocation, bookType, sentimentThresholdMin, sentimentThresholdMax]);
135
139
  return {
136
140
  mainData: data === null || data === void 0 ? void 0 : data.mainData,
137
141
  additionalData: data === null || data === void 0 ? void 0 : data.additionalData,
@@ -1 +1 @@
1
- {"version":3,"file":"useCrowdViewData.js","names":["_client","require","_react","_getOrderPositionBooks","_getPriceCandles","_getSentiments","_graphql","_constants","_dataUtils","useCrowdViewData","_ref","instrument","bookType","division","granularity","dataSource","Division","Ogm","Oj","DataSource","Mt5","V20","loading","priceCandlesLoading","data","priceCandlesData","error","priceCandlesError","useQuery","getPriceCandles","variables","INSTRUMENTS_CONFIG","mt5name","v20name","timeSpan","getTimeSpanForGranularity","fetchPolicy","minPrice","maxPrice","hasValidCandles","dates","candlesOpen","candlesClose","candlesLow","candlesHigh","pipsLocation","useMemo","processPriceCandles","orderPositionLoading","orderPositionData","orderPositionError","getOrderPositionBooks","BookType","Order","maxBookPrice","minBookPrice","bucketMultiplier","getMultiplayerForTimeSpan","bucketMargin","BUCKET_CONFIG","PRICE_MARGIN_MULTIPLIER","skip","bookPrices","bookIndexes","buckets","bucketWidth","sentimentThresholdMin","sentimentThresholdMax","hasValidBooks","processOrderPositionBooks","sentimentsLoading","sentimentsData","sentimentsError","getSentiments","sentimentLongs","sentimentShorts","hasValidSentiments","processSentiments","Error","concat","message","validateData","mainData","additionalData","defaultBucketWidth","displayPrecision","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/useCrowdViewData.ts"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { useMemo } from 'react';\n\nimport { getOrderPositionBooks } from '../../../gql/getOrderPositionBooks';\nimport { getPriceCandles } from '../../../gql/getPriceCandles';\nimport { getSentiments } from '../../../gql/getSentiments';\nimport type {\n GetOrderPositionBooksQuery,\n GetOrderPositionBooksQueryVariables,\n GetPriceCandlesQuery,\n GetPriceCandlesQueryVariables,\n GetSentimentsQuery,\n GetSentimentsQueryVariables,\n} from '../../../gql/types/graphql';\nimport { BookType, DataSource, Division } from '../../../gql/types/graphql';\nimport { BUCKET_CONFIG, INSTRUMENTS_CONFIG } from '../../constants';\nimport {\n getMultiplayerForTimeSpan,\n getTimeSpanForGranularity,\n processOrderPositionBooks,\n processPriceCandles,\n processSentiments,\n validateData,\n} from './dataUtils';\nimport type { UseCrowdViewDataProps, UseCrowdViewDataReturn } from './types';\n\nexport const useCrowdViewData = ({\n instrument,\n bookType,\n division,\n granularity,\n}: UseCrowdViewDataProps): UseCrowdViewDataReturn => {\n const dataSource =\n division === Division.Ogm || division === Division.Oj\n ? DataSource.Mt5\n : DataSource.V20;\n\n // Get price candles data\n const {\n loading: priceCandlesLoading,\n data: priceCandlesData,\n error: priceCandlesError,\n } = useQuery<GetPriceCandlesQuery, GetPriceCandlesQueryVariables>(\n getPriceCandles,\n {\n variables: {\n dataSource,\n division,\n instrument:\n dataSource === DataSource.Mt5\n ? INSTRUMENTS_CONFIG[instrument].mt5name\n : INSTRUMENTS_CONFIG[instrument].v20name,\n granularity,\n timeSpan: getTimeSpanForGranularity(granularity),\n },\n fetchPolicy: 'no-cache',\n }\n );\n\n const {\n minPrice,\n maxPrice,\n hasValidCandles,\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n pipsLocation,\n } = useMemo(() => processPriceCandles(priceCandlesData), [priceCandlesData]);\n\n // Get order position books data\n const {\n loading: orderPositionLoading,\n data: orderPositionData,\n error: orderPositionError,\n } = useQuery<GetOrderPositionBooksQuery, GetOrderPositionBooksQueryVariables>(\n getOrderPositionBooks,\n {\n variables: {\n instrument: INSTRUMENTS_CONFIG[instrument].v20name,\n bookType: bookType || BookType.Order,\n timeSpan: getTimeSpanForGranularity(granularity),\n granularity,\n maxBookPrice: maxPrice,\n minBookPrice: minPrice,\n bucketMultiplier: getMultiplayerForTimeSpan(granularity),\n bucketMargin: BUCKET_CONFIG.PRICE_MARGIN_MULTIPLIER,\n },\n fetchPolicy: 'no-cache',\n skip: priceCandlesLoading || !!priceCandlesError,\n }\n );\n\n const {\n bookPrices,\n bookIndexes,\n buckets,\n bucketWidth,\n sentimentThresholdMin,\n sentimentThresholdMax,\n hasValidBooks,\n } = useMemo(\n () => processOrderPositionBooks(orderPositionData, dates),\n [orderPositionData, dates]\n );\n\n // Get sentiments data\n const {\n loading: sentimentsLoading,\n data: sentimentsData,\n error: sentimentsError,\n } = useQuery<GetSentimentsQuery, GetSentimentsQueryVariables>(getSentiments, {\n variables: {\n instrument: INSTRUMENTS_CONFIG[instrument].v20name,\n granularity,\n timeSpan: getTimeSpanForGranularity(granularity),\n },\n fetchPolicy: 'no-cache',\n skip: priceCandlesLoading || !!priceCandlesError,\n });\n\n const { sentimentLongs, sentimentShorts, hasValidSentiments } = useMemo(\n () => processSentiments(sentimentsData, dates),\n [sentimentsData, dates]\n );\n\n // Gather all results\n const loading =\n priceCandlesLoading || orderPositionLoading || sentimentsLoading;\n\n const error = useMemo((): Error | null => {\n if (priceCandlesError) {\n return new Error(`Price candles error: ${priceCandlesError.message}`);\n }\n if (orderPositionError) {\n return new Error(`Order position error: ${orderPositionError.message}`);\n }\n if (sentimentsError) {\n return new Error(`Sentiments error: ${sentimentsError.message}`);\n }\n if (loading) {\n return null;\n }\n return validateData(\n priceCandlesData,\n orderPositionData,\n hasValidCandles,\n hasValidBooks,\n hasValidSentiments\n );\n }, [\n priceCandlesError,\n orderPositionError,\n sentimentsError,\n loading,\n priceCandlesData,\n orderPositionData,\n hasValidCandles,\n hasValidBooks,\n hasValidSentiments,\n ]);\n\n const data = useMemo(() => {\n if (!priceCandlesData || error) {\n return null;\n }\n\n return {\n mainData: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n },\n additionalData: {\n bucketWidth:\n bucketWidth ||\n INSTRUMENTS_CONFIG[instrument].defaultBucketWidth *\n getMultiplayerForTimeSpan(granularity),\n buckets,\n displayPrecision: pipsLocation,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n },\n };\n }, [\n priceCandlesData,\n error,\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n bucketWidth,\n granularity,\n instrument,\n buckets,\n pipsLocation,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n ]);\n\n return {\n mainData: data?.mainData,\n additionalData: data?.additionalData,\n priceCandlesLoading,\n orderPositionLoading,\n sentimentsLoading,\n loading,\n error: !!error,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useCrowdViewData.js","names":["_client","require","_react","_getOrderPositionBooks","_getPriceCandles","_getSentiments","_graphql","_constants","_dataUtils","useCrowdViewData","_ref","instrument","bookType","division","granularity","loading","priceCandlesLoading","data","priceCandlesData","error","priceCandlesError","useQuery","getPriceCandles","variables","dataSource","DataSource","V20","INSTRUMENTS_CONFIG","v20name","timeSpan","getTimeSpanForGranularity","fetchPolicy","minPrice","maxPrice","hasValidCandles","dates","candlesOpen","candlesClose","candlesLow","candlesHigh","pipsLocation","useMemo","processPriceCandles","bucketWidthMultiplayer","getBucketWidthMultiplayer","orderPositionLoading","orderPositionData","orderPositionError","getOrderPositionBooks","maxBookPrice","minBookPrice","bucketMultiplier","bucketMargin","BUCKET_CONFIG","PRICE_MARGIN_MULTIPLIER","skip","bookPrices","bookIndexes","buckets","bucketWidth","sentimentThresholdMin","sentimentThresholdMax","hasValidBooks","processOrderPositionBooks","sentimentsLoading","sentimentsData","sentimentsError","getSentiments","sentimentLongs","sentimentShorts","hasValidSentiments","processSentiments","Error","concat","message","validateData","mainData","additionalData","defaultBucketWidth","displayPrecision","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/useCrowdViewData.ts"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { useMemo } from 'react';\n\nimport { getOrderPositionBooks } from '../../../gql/getOrderPositionBooks';\nimport { getPriceCandles } from '../../../gql/getPriceCandles';\nimport { getSentiments } from '../../../gql/getSentiments';\nimport type {\n GetOrderPositionBooksQuery,\n GetOrderPositionBooksQueryVariables,\n GetPriceCandlesQuery,\n GetPriceCandlesQueryVariables,\n GetSentimentsQuery,\n GetSentimentsQueryVariables,\n} from '../../../gql/types/graphql';\nimport { DataSource } from '../../../gql/types/graphql';\nimport { BUCKET_CONFIG, INSTRUMENTS_CONFIG } from '../../constants';\nimport {\n getBucketWidthMultiplayer,\n getTimeSpanForGranularity,\n processOrderPositionBooks,\n processPriceCandles,\n processSentiments,\n validateData,\n} from './dataUtils';\nimport type { UseCrowdViewDataProps, UseCrowdViewDataReturn } from './types';\n\nexport const useCrowdViewData = ({\n instrument,\n bookType,\n division,\n granularity,\n}: UseCrowdViewDataProps): UseCrowdViewDataReturn => {\n // Get price candles data\n const {\n loading: priceCandlesLoading,\n data: priceCandlesData,\n error: priceCandlesError,\n } = useQuery<GetPriceCandlesQuery, GetPriceCandlesQueryVariables>(\n getPriceCandles,\n {\n variables: {\n dataSource: DataSource.V20,\n division,\n instrument: INSTRUMENTS_CONFIG[instrument].v20name,\n granularity,\n timeSpan: getTimeSpanForGranularity(granularity),\n },\n fetchPolicy: 'no-cache',\n }\n );\n\n const {\n minPrice,\n maxPrice,\n hasValidCandles,\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n pipsLocation,\n } = useMemo(() => processPriceCandles(priceCandlesData), [priceCandlesData]);\n\n const bucketWidthMultiplayer = useMemo(\n () =>\n getBucketWidthMultiplayer({\n minPrice,\n maxPrice,\n instrument,\n }),\n [minPrice, maxPrice, instrument]\n );\n // Get order position books data\n const {\n loading: orderPositionLoading,\n data: orderPositionData,\n error: orderPositionError,\n } = useQuery<GetOrderPositionBooksQuery, GetOrderPositionBooksQueryVariables>(\n getOrderPositionBooks,\n {\n variables: {\n instrument: INSTRUMENTS_CONFIG[instrument].v20name,\n bookType,\n timeSpan: getTimeSpanForGranularity(granularity),\n granularity,\n maxBookPrice: maxPrice,\n minBookPrice: minPrice,\n bucketMultiplier: bucketWidthMultiplayer,\n bucketMargin: BUCKET_CONFIG.PRICE_MARGIN_MULTIPLIER,\n },\n fetchPolicy: 'no-cache',\n skip: priceCandlesLoading || !!priceCandlesError,\n }\n );\n\n const {\n bookPrices,\n bookIndexes,\n buckets,\n bucketWidth,\n sentimentThresholdMin,\n sentimentThresholdMax,\n hasValidBooks,\n } = useMemo(\n () => processOrderPositionBooks(orderPositionData, dates),\n [orderPositionData, dates]\n );\n\n // Get sentiments data\n const {\n loading: sentimentsLoading,\n data: sentimentsData,\n error: sentimentsError,\n } = useQuery<GetSentimentsQuery, GetSentimentsQueryVariables>(getSentiments, {\n variables: {\n instrument: INSTRUMENTS_CONFIG[instrument].v20name,\n granularity,\n timeSpan: getTimeSpanForGranularity(granularity),\n },\n fetchPolicy: 'no-cache',\n skip: priceCandlesLoading || !!priceCandlesError,\n });\n\n const { sentimentLongs, sentimentShorts, hasValidSentiments } = useMemo(\n () => processSentiments(sentimentsData, dates),\n [sentimentsData, dates]\n );\n\n // Gather all results\n const loading =\n priceCandlesLoading || orderPositionLoading || sentimentsLoading;\n\n const error = useMemo((): Error | null => {\n if (priceCandlesError) {\n return new Error(`Price candles error: ${priceCandlesError.message}`);\n }\n if (orderPositionError) {\n return new Error(`Order position error: ${orderPositionError.message}`);\n }\n if (sentimentsError) {\n return new Error(`Sentiments error: ${sentimentsError.message}`);\n }\n if (loading) {\n return null;\n }\n return validateData(\n priceCandlesData,\n orderPositionData,\n hasValidCandles,\n hasValidBooks,\n hasValidSentiments\n );\n }, [\n priceCandlesError,\n orderPositionError,\n sentimentsError,\n loading,\n priceCandlesData,\n orderPositionData,\n hasValidCandles,\n hasValidBooks,\n hasValidSentiments,\n ]);\n\n const data = useMemo(() => {\n if (!priceCandlesData || error) {\n return null;\n }\n\n return {\n mainData: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n },\n additionalData: {\n bucketWidth:\n bucketWidth ||\n INSTRUMENTS_CONFIG[instrument].defaultBucketWidth *\n bucketWidthMultiplayer,\n buckets,\n displayPrecision: pipsLocation,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n },\n };\n }, [\n priceCandlesData,\n error,\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n bucketWidth,\n instrument,\n bucketWidthMultiplayer,\n buckets,\n pipsLocation,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n ]);\n\n return {\n mainData: data?.mainData,\n additionalData: data?.additionalData,\n priceCandlesLoading,\n orderPositionLoading,\n sentimentsLoading,\n loading,\n error: !!error,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TIME_THRESHOLDS = exports.INSTRUMENTS_CONFIG = exports.COLOR_MAP = exports.CHART_CONFIG = exports.BUCKET_CONFIG = void 0;
6
+ exports.TIME_THRESHOLDS = exports.INSTRUMENTS_CONFIG = exports.DISPLAYED_BUCKETS_COUNT = exports.COLOR_MAP = exports.CHART_CONFIG = exports.BUCKET_CONFIG = void 0;
7
7
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
8
  var _chromaJs = _interopRequireDefault(require("chroma-js"));
9
9
  var _types = require("./types");
@@ -23,6 +23,7 @@ const BUCKET_CONFIG = exports.BUCKET_CONFIG = {
23
23
  const TIME_THRESHOLDS = exports.TIME_THRESHOLDS = {
24
24
  TWO_WEEKS_MS: 14 * 24 * 60 * 60 * 1000
25
25
  };
26
+ const DISPLAYED_BUCKETS_COUNT = exports.DISPLAYED_BUCKETS_COUNT = 40;
26
27
  const CHART_CONFIG_STATIC = {
27
28
  MAIN_HEIGHT_DESKTOP: 410,
28
29
  MAIN_HEIGHT_MOBILE: 330,
@@ -40,14 +41,15 @@ const CHART_CONFIG_STATIC = {
40
41
  X_AXIS_DATE_PADDING: ' ',
41
42
  SENTIMENT_MIN: 0,
42
43
  SENTIMENT_MAX: 100,
43
- TOP_MARGIN_DESKTOP: 0,
44
- TOP_MARGIN_MOBILE: 24,
45
- MOBILE_TOOLTIP_HEIGHT: 85,
44
+ TOP_LABEL_SPACE_DESKTOP: 0,
45
+ TOP_LABEL_SPACE_MOBILE: 24,
46
+ TOOLTIP_HEIGHT_MOBILE: 85,
47
+ TOOLTIP_HEIGHT_DESKTOP: 46,
46
48
  TOOLTIP_OFFSET: 8
47
49
  };
48
50
  const CHART_CONFIG_CALCULATED = {
49
- HEIGHT_DESKTOP: CHART_CONFIG_STATIC.MAIN_HEIGHT_DESKTOP + CHART_CONFIG_STATIC.TOP_MARGIN_DESKTOP + CHART_CONFIG_STATIC.X_LABEL_SIZE,
50
- HEIGHT_MOBILE: CHART_CONFIG_STATIC.MAIN_HEIGHT_MOBILE + CHART_CONFIG_STATIC.X_LABEL_SIZE + CHART_CONFIG_STATIC.TOP_MARGIN_MOBILE + CHART_CONFIG_STATIC.MOBILE_TOOLTIP_HEIGHT
51
+ HEIGHT_DESKTOP: CHART_CONFIG_STATIC.MAIN_HEIGHT_DESKTOP + CHART_CONFIG_STATIC.TOP_LABEL_SPACE_DESKTOP + CHART_CONFIG_STATIC.X_LABEL_SIZE + CHART_CONFIG_STATIC.TOOLTIP_HEIGHT_DESKTOP,
52
+ HEIGHT_MOBILE: CHART_CONFIG_STATIC.MAIN_HEIGHT_MOBILE + CHART_CONFIG_STATIC.X_LABEL_SIZE + CHART_CONFIG_STATIC.TOP_LABEL_SPACE_MOBILE + CHART_CONFIG_STATIC.TOOLTIP_HEIGHT_MOBILE
51
53
  };
52
54
  const CHART_CONFIG = exports.CHART_CONFIG = _objectSpread(_objectSpread({}, CHART_CONFIG_STATIC), CHART_CONFIG_CALCULATED);
53
55
  const COLOR_MAP = exports.COLOR_MAP = {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["_labsWidgetCommon","require","_chromaJs","_interopRequireDefault","_types","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BUCKET_CONFIG","exports","MULTIPLIER_5M","MULTIPLIER_15M","MULTIPLIER_1H","MULTIPLIER_4H","PRICE_MARGIN_MULTIPLIER","TIME_THRESHOLDS","TWO_WEEKS_MS","CHART_CONFIG_STATIC","MAIN_HEIGHT_DESKTOP","MAIN_HEIGHT_MOBILE","MARGIN_BETWEEN","SENTIMENT_HEIGHT","WIDTH","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","Y_SENTIMENT_LABEL_DESKTOP_SIZE","Y_SENTIMENT_LABEL_MOBILE_SIZE","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","INITIAL_END_ZOOM","X_AXIS_DATE_PADDING","SENTIMENT_MIN","SENTIMENT_MAX","TOP_MARGIN_DESKTOP","TOP_MARGIN_MOBILE","MOBILE_TOOLTIP_HEIGHT","TOOLTIP_OFFSET","CHART_CONFIG_CALCULATED","HEIGHT_DESKTOP","HEIGHT_MOBILE","CHART_CONFIG","COLOR_MAP","dark","long","chroma","colorPalette","darkBlue10","shade","hex","darkBlue90","short","darkYellow10","darkYellow90","backgroundColor","black","light","lightBlue10","tint","lightBlue90","lightYellow10","lightYellow90","white","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 { colorPalette } from '@oanda/labs-widget-common';\nimport chroma from 'chroma-js';\n\nimport { InstrumentId } from './types';\n\nexport const BUCKET_CONFIG = {\n MULTIPLIER_5M: 1,\n MULTIPLIER_15M: 1,\n MULTIPLIER_1H: 2,\n MULTIPLIER_4H: 4,\n PRICE_MARGIN_MULTIPLIER: 2,\n} as const;\n\nexport const TIME_THRESHOLDS = {\n TWO_WEEKS_MS: 14 * 24 * 60 * 60 * 1000,\n} as const;\n\nconst CHART_CONFIG_STATIC = {\n MAIN_HEIGHT_DESKTOP: 410,\n MAIN_HEIGHT_MOBILE: 330,\n MARGIN_BETWEEN: 50,\n SENTIMENT_HEIGHT: 120,\n WIDTH: 9999,\n X_LABEL_SIZE: 40,\n Y_LABEL_SIZE_DESKTOP: 50,\n Y_LABEL_SIZE_MOBILE: 40,\n Y_SENTIMENT_LABEL_DESKTOP_SIZE: 40,\n Y_SENTIMENT_LABEL_MOBILE_SIZE: 30,\n INITIAL_START_ZOOM_DESKTOP: 70,\n INITIAL_START_ZOOM_MOBILE: 85,\n INITIAL_END_ZOOM: 100,\n X_AXIS_DATE_PADDING: ' ',\n SENTIMENT_MIN: 0,\n SENTIMENT_MAX: 100,\n TOP_MARGIN_DESKTOP: 0,\n TOP_MARGIN_MOBILE: 24,\n MOBILE_TOOLTIP_HEIGHT: 85,\n TOOLTIP_OFFSET: 8,\n};\n\nconst CHART_CONFIG_CALCULATED = {\n HEIGHT_DESKTOP:\n CHART_CONFIG_STATIC.MAIN_HEIGHT_DESKTOP +\n CHART_CONFIG_STATIC.TOP_MARGIN_DESKTOP +\n CHART_CONFIG_STATIC.X_LABEL_SIZE,\n HEIGHT_MOBILE:\n CHART_CONFIG_STATIC.MAIN_HEIGHT_MOBILE +\n CHART_CONFIG_STATIC.X_LABEL_SIZE +\n CHART_CONFIG_STATIC.TOP_MARGIN_MOBILE +\n CHART_CONFIG_STATIC.MOBILE_TOOLTIP_HEIGHT,\n};\nexport const CHART_CONFIG = {\n ...CHART_CONFIG_STATIC,\n ...CHART_CONFIG_CALCULATED,\n} as const;\n\nexport const COLOR_MAP = {\n dark: {\n long: [\n chroma(colorPalette.darkBlue10).shade(0.5).hex(),\n chroma(colorPalette.darkBlue90).shade(0.5).hex(),\n ],\n short: [\n chroma(colorPalette.darkYellow10).shade(0.5).hex(),\n chroma(colorPalette.darkYellow90).shade(0.5).hex(),\n ],\n backgroundColor: colorPalette.black,\n },\n light: {\n long: [\n chroma(colorPalette.lightBlue10).tint(0.5).hex(),\n chroma(colorPalette.lightBlue90).tint(0.5).hex(),\n ],\n short: [\n chroma(colorPalette.lightYellow10).tint(0.5).hex(),\n chroma(colorPalette.lightYellow90).tint(0.5).hex(),\n ],\n backgroundColor: colorPalette.white,\n },\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":[]}
1
+ {"version":3,"file":"constants.js","names":["_labsWidgetCommon","require","_chromaJs","_interopRequireDefault","_types","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BUCKET_CONFIG","exports","MULTIPLIER_5M","MULTIPLIER_15M","MULTIPLIER_1H","MULTIPLIER_4H","PRICE_MARGIN_MULTIPLIER","TIME_THRESHOLDS","TWO_WEEKS_MS","DISPLAYED_BUCKETS_COUNT","CHART_CONFIG_STATIC","MAIN_HEIGHT_DESKTOP","MAIN_HEIGHT_MOBILE","MARGIN_BETWEEN","SENTIMENT_HEIGHT","WIDTH","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","Y_SENTIMENT_LABEL_DESKTOP_SIZE","Y_SENTIMENT_LABEL_MOBILE_SIZE","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","INITIAL_END_ZOOM","X_AXIS_DATE_PADDING","SENTIMENT_MIN","SENTIMENT_MAX","TOP_LABEL_SPACE_DESKTOP","TOP_LABEL_SPACE_MOBILE","TOOLTIP_HEIGHT_MOBILE","TOOLTIP_HEIGHT_DESKTOP","TOOLTIP_OFFSET","CHART_CONFIG_CALCULATED","HEIGHT_DESKTOP","HEIGHT_MOBILE","CHART_CONFIG","COLOR_MAP","dark","long","chroma","colorPalette","darkBlue10","shade","hex","darkBlue90","short","darkYellow10","darkYellow90","backgroundColor","black","light","lightBlue10","tint","lightBlue90","lightYellow10","lightYellow90","white","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 { colorPalette } from '@oanda/labs-widget-common';\nimport chroma from 'chroma-js';\n\nimport { InstrumentId } from './types';\n\nexport const BUCKET_CONFIG = {\n MULTIPLIER_5M: 1,\n MULTIPLIER_15M: 1,\n MULTIPLIER_1H: 2,\n MULTIPLIER_4H: 4,\n PRICE_MARGIN_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 DISPLAYED_BUCKETS_COUNT = 40;\n\nconst CHART_CONFIG_STATIC = {\n MAIN_HEIGHT_DESKTOP: 410,\n MAIN_HEIGHT_MOBILE: 330,\n MARGIN_BETWEEN: 50,\n SENTIMENT_HEIGHT: 120,\n WIDTH: 9999,\n X_LABEL_SIZE: 40,\n Y_LABEL_SIZE_DESKTOP: 50,\n Y_LABEL_SIZE_MOBILE: 40,\n Y_SENTIMENT_LABEL_DESKTOP_SIZE: 40,\n Y_SENTIMENT_LABEL_MOBILE_SIZE: 30,\n INITIAL_START_ZOOM_DESKTOP: 70,\n INITIAL_START_ZOOM_MOBILE: 85,\n INITIAL_END_ZOOM: 100,\n X_AXIS_DATE_PADDING: ' ',\n SENTIMENT_MIN: 0,\n SENTIMENT_MAX: 100,\n TOP_LABEL_SPACE_DESKTOP: 0,\n TOP_LABEL_SPACE_MOBILE: 24,\n TOOLTIP_HEIGHT_MOBILE: 85,\n TOOLTIP_HEIGHT_DESKTOP: 46,\n TOOLTIP_OFFSET: 8,\n};\n\nconst CHART_CONFIG_CALCULATED = {\n HEIGHT_DESKTOP:\n CHART_CONFIG_STATIC.MAIN_HEIGHT_DESKTOP +\n CHART_CONFIG_STATIC.TOP_LABEL_SPACE_DESKTOP +\n CHART_CONFIG_STATIC.X_LABEL_SIZE +\n CHART_CONFIG_STATIC.TOOLTIP_HEIGHT_DESKTOP,\n HEIGHT_MOBILE:\n CHART_CONFIG_STATIC.MAIN_HEIGHT_MOBILE +\n CHART_CONFIG_STATIC.X_LABEL_SIZE +\n CHART_CONFIG_STATIC.TOP_LABEL_SPACE_MOBILE +\n CHART_CONFIG_STATIC.TOOLTIP_HEIGHT_MOBILE,\n};\nexport const CHART_CONFIG = {\n ...CHART_CONFIG_STATIC,\n ...CHART_CONFIG_CALCULATED,\n} as const;\n\nexport const COLOR_MAP = {\n dark: {\n long: [\n chroma(colorPalette.darkBlue10).shade(0.5).hex(),\n chroma(colorPalette.darkBlue90).shade(0.5).hex(),\n ],\n short: [\n chroma(colorPalette.darkYellow10).shade(0.5).hex(),\n chroma(colorPalette.darkYellow90).shade(0.5).hex(),\n ],\n backgroundColor: colorPalette.black,\n },\n light: {\n long: [\n chroma(colorPalette.lightBlue10).tint(0.5).hex(),\n chroma(colorPalette.lightBlue90).tint(0.5).hex(),\n ],\n short: [\n chroma(colorPalette.lightYellow10).tint(0.5).hex(),\n chroma(colorPalette.lightYellow90).tint(0.5).hex(),\n ],\n backgroundColor: colorPalette.white,\n },\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":[]}
@@ -29,6 +29,7 @@
29
29
  "sentiment": "Sentiment",
30
30
  "short": "Short",
31
31
  "short_overbalance": "Short overbalance",
32
- "tap_chart_to_see_more_details": "Tap chart to see more details",
32
+ "tap_chart_to_see_more_details": "Tap the chart to see more details",
33
+ "hover_chart_to_see_more_details": "Hover over the chart to see more details",
33
34
  "trades": "Trades"
34
35
  }
@@ -5,9 +5,8 @@ import { DatasetComponent, DataZoomInsideComponent, GraphicComponent, GridSimple
5
5
  import * as echarts from 'echarts/core';
6
6
  import { CanvasRenderer } from 'echarts/renderers';
7
7
  import React, { useCallback, useEffect, useMemo, useRef } from 'react';
8
- import { useMediaQuery } from 'usehooks-ts';
9
8
  import { CHART_CONFIG } from '../../constants';
10
- import { handleLabelUpdate, handleTooltipUpdate, isDifferenceGreaterThanTwoWeeks, normalizeLocale } from './chartUtils';
9
+ import { handleLabelUpdate, isDifferenceGreaterThanTwoWeeks, normalizeLocale } from './chartUtils';
11
10
  import { getOption } from './getOption';
12
11
  echarts.use([GridSimpleComponent, GraphicComponent, CanvasRenderer, DataZoomInsideComponent, CustomChart, TooltipComponent, CandlestickChart, MarkLineComponent, LineChart, VisualMapComponent, DatasetComponent]);
13
12
  echarts.registerTheme('dark_theme', getChartTheme(Theme.Dark));
@@ -26,11 +25,8 @@ const Chart = _ref => {
26
25
  lang,
27
26
  locale
28
27
  } = useLocale();
29
- const canHover = useMediaQuery('(hover: hover)');
30
28
  const labelTimerRef = useRef(null);
31
29
  const isGreaterThanTwoWeeksRef = useRef(null);
32
- const zoomTimerRef = useRef(null);
33
- const tooltipVisibleRef = useRef(true);
34
30
  const initialIsGreaterThanTwoWeeks = useMemo(() => {
35
31
  const {
36
32
  dates
@@ -55,9 +51,8 @@ const Chart = _ref => {
55
51
  labelCallback: lang
56
52
  }), [mainData, additionalData, isDark, isDesktop, isLoading, lang, locale]);
57
53
  const handleDataZoom = useCallback((_params, instance) => {
58
- handleTooltipUpdate(instance, zoomTimerRef, tooltipVisibleRef, canHover);
59
54
  handleLabelUpdate(instance, mainData, labelTimerRef, isGreaterThanTwoWeeksRef, normalizeLocale(locale));
60
- }, [mainData, canHover, locale]);
55
+ }, [mainData, locale]);
61
56
  const chartHeight = isDesktop ? CHART_CONFIG.HEIGHT_DESKTOP : CHART_CONFIG.HEIGHT_MOBILE;
62
57
  return React.createElement(BaseChart, {
63
58
  chartHeight: chartHeight,
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.js","names":["BaseChart","getChartTheme","Theme","useLayoutProvider","useLocale","CandlestickChart","CustomChart","LineChart","DatasetComponent","DataZoomInsideComponent","GraphicComponent","GridSimpleComponent","MarkLineComponent","TooltipComponent","VisualMapComponent","echarts","CanvasRenderer","React","useCallback","useEffect","useMemo","useRef","useMediaQuery","CHART_CONFIG","handleLabelUpdate","handleTooltipUpdate","isDifferenceGreaterThanTwoWeeks","normalizeLocale","getOption","use","registerTheme","Dark","Light","Chart","_ref","mainData","additionalData","isDesktop","isLoading","isDark","lang","locale","canHover","labelTimerRef","isGreaterThanTwoWeeksRef","zoomTimerRef","tooltipVisibleRef","initialIsGreaterThanTwoWeeks","dates","initialStartZoom","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","visibleXAxisData","slice","length","INITIAL_END_ZOOM","current","chartOption","labelCallback","handleDataZoom","_params","instance","chartHeight","HEIGHT_DESKTOP","HEIGHT_MOBILE","createElement","lazyUpdate","option","opts","renderer","onEvents","datazoom"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/Chart.tsx"],"sourcesContent":["import {\n BaseChart,\n getChartTheme,\n Theme,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport type { EChartsType } from 'echarts';\nimport { CandlestickChart, CustomChart, LineChart } from 'echarts/charts';\nimport {\n DatasetComponent,\n DataZoomInsideComponent,\n GraphicComponent,\n GridSimpleComponent,\n MarkLineComponent,\n TooltipComponent,\n VisualMapComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useMediaQuery } from 'usehooks-ts';\n\nimport { CHART_CONFIG } from '../../constants';\nimport {\n handleLabelUpdate,\n handleTooltipUpdate,\n isDifferenceGreaterThanTwoWeeks,\n normalizeLocale,\n} from './chartUtils';\nimport { getOption } from './getOption';\nimport type { ChartProps, DataZoomEvent } from './types';\n\necharts.use([\n GridSimpleComponent,\n GraphicComponent,\n CanvasRenderer,\n DataZoomInsideComponent,\n CustomChart,\n TooltipComponent,\n CandlestickChart,\n MarkLineComponent,\n LineChart,\n VisualMapComponent,\n DatasetComponent,\n]);\n\necharts.registerTheme('dark_theme', getChartTheme(Theme.Dark));\necharts.registerTheme('light_theme', getChartTheme(Theme.Light));\n\nconst Chart = ({\n mainData,\n additionalData,\n isDesktop,\n isLoading,\n}: ChartProps) => {\n const { isDark } = useLayoutProvider();\n const { lang, locale } = useLocale();\n const canHover = useMediaQuery('(hover: hover)');\n const labelTimerRef = useRef<NodeJS.Timeout | null>(null);\n const isGreaterThanTwoWeeksRef = useRef<boolean | null>(null);\n const zoomTimerRef = useRef<NodeJS.Timeout | null>(null);\n const tooltipVisibleRef = useRef<boolean>(true);\n\n const initialIsGreaterThanTwoWeeks = useMemo(() => {\n const { dates } = mainData;\n const initialStartZoom = isDesktop\n ? CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP\n : CHART_CONFIG.INITIAL_START_ZOOM_MOBILE;\n\n const visibleXAxisData = dates.slice(\n (dates.length * initialStartZoom) / 100,\n (dates.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n if (visibleXAxisData.length === 0) {\n return false;\n }\n\n return isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n }, [mainData, isDesktop]);\n\n useEffect(() => {\n isGreaterThanTwoWeeksRef.current = initialIsGreaterThanTwoWeeks;\n }, [initialIsGreaterThanTwoWeeks]);\n\n const chartOption = useMemo(\n () =>\n getOption({\n mainData,\n additionalData,\n isDark,\n isDesktop,\n isLoading,\n locale: normalizeLocale(locale),\n labelCallback: lang,\n }),\n [mainData, additionalData, isDark, isDesktop, isLoading, lang, locale]\n );\n\n // Memoize event handler to prevent unnecessary re-renders\n const handleDataZoom = useCallback(\n (_params: DataZoomEvent, instance: EChartsType) => {\n handleTooltipUpdate(instance, zoomTimerRef, tooltipVisibleRef, canHover);\n handleLabelUpdate(\n instance,\n mainData,\n labelTimerRef,\n isGreaterThanTwoWeeksRef,\n normalizeLocale(locale)\n );\n },\n [mainData, canHover, locale]\n );\n\n const chartHeight = isDesktop\n ? CHART_CONFIG.HEIGHT_DESKTOP\n : CHART_CONFIG.HEIGHT_MOBILE;\n\n return (\n <BaseChart\n chartHeight={chartHeight}\n echarts={echarts}\n isDark={isDark}\n lazyUpdate={true}\n option={chartOption}\n opts={{ renderer: 'canvas' }}\n onEvents={{\n datazoom: handleDataZoom,\n }}\n />\n );\n};\n\nexport { Chart };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Chart.js","names":["BaseChart","getChartTheme","Theme","useLayoutProvider","useLocale","CandlestickChart","CustomChart","LineChart","DatasetComponent","DataZoomInsideComponent","GraphicComponent","GridSimpleComponent","MarkLineComponent","TooltipComponent","VisualMapComponent","echarts","CanvasRenderer","React","useCallback","useEffect","useMemo","useRef","CHART_CONFIG","handleLabelUpdate","isDifferenceGreaterThanTwoWeeks","normalizeLocale","getOption","use","registerTheme","Dark","Light","Chart","_ref","mainData","additionalData","isDesktop","isLoading","isDark","lang","locale","labelTimerRef","isGreaterThanTwoWeeksRef","initialIsGreaterThanTwoWeeks","dates","initialStartZoom","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","visibleXAxisData","slice","length","INITIAL_END_ZOOM","current","chartOption","labelCallback","handleDataZoom","_params","instance","chartHeight","HEIGHT_DESKTOP","HEIGHT_MOBILE","createElement","lazyUpdate","option","opts","renderer","onEvents","datazoom"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/Chart.tsx"],"sourcesContent":["import {\n BaseChart,\n getChartTheme,\n Theme,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport type { EChartsType } from 'echarts';\nimport { CandlestickChart, CustomChart, LineChart } from 'echarts/charts';\nimport {\n DatasetComponent,\n DataZoomInsideComponent,\n GraphicComponent,\n GridSimpleComponent,\n MarkLineComponent,\n TooltipComponent,\n VisualMapComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { CHART_CONFIG } from '../../constants';\nimport {\n handleLabelUpdate,\n isDifferenceGreaterThanTwoWeeks,\n normalizeLocale,\n} from './chartUtils';\nimport { getOption } from './getOption';\nimport type { ChartProps, DataZoomEvent } from './types';\n\necharts.use([\n GridSimpleComponent,\n GraphicComponent,\n CanvasRenderer,\n DataZoomInsideComponent,\n CustomChart,\n TooltipComponent,\n CandlestickChart,\n MarkLineComponent,\n LineChart,\n VisualMapComponent,\n DatasetComponent,\n]);\n\necharts.registerTheme('dark_theme', getChartTheme(Theme.Dark));\necharts.registerTheme('light_theme', getChartTheme(Theme.Light));\n\nconst Chart = ({\n mainData,\n additionalData,\n isDesktop,\n isLoading,\n}: ChartProps) => {\n const { isDark } = useLayoutProvider();\n const { lang, locale } = useLocale();\n const labelTimerRef = useRef<NodeJS.Timeout | null>(null);\n const isGreaterThanTwoWeeksRef = useRef<boolean | null>(null);\n\n const initialIsGreaterThanTwoWeeks = useMemo(() => {\n const { dates } = mainData;\n const initialStartZoom = isDesktop\n ? CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP\n : CHART_CONFIG.INITIAL_START_ZOOM_MOBILE;\n\n const visibleXAxisData = dates.slice(\n (dates.length * initialStartZoom) / 100,\n (dates.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n if (visibleXAxisData.length === 0) {\n return false;\n }\n\n return isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n }, [mainData, isDesktop]);\n\n useEffect(() => {\n isGreaterThanTwoWeeksRef.current = initialIsGreaterThanTwoWeeks;\n }, [initialIsGreaterThanTwoWeeks]);\n\n const chartOption = useMemo(\n () =>\n getOption({\n mainData,\n additionalData,\n isDark,\n isDesktop,\n isLoading,\n locale: normalizeLocale(locale),\n labelCallback: lang,\n }),\n [mainData, additionalData, isDark, isDesktop, isLoading, lang, locale]\n );\n\n // Memoize event handler to prevent unnecessary re-renders\n const handleDataZoom = useCallback(\n (_params: DataZoomEvent, instance: EChartsType) => {\n handleLabelUpdate(\n instance,\n mainData,\n labelTimerRef,\n isGreaterThanTwoWeeksRef,\n normalizeLocale(locale)\n );\n },\n [mainData, locale]\n );\n\n const chartHeight = isDesktop\n ? CHART_CONFIG.HEIGHT_DESKTOP\n : CHART_CONFIG.HEIGHT_MOBILE;\n\n return (\n <BaseChart\n chartHeight={chartHeight}\n echarts={echarts}\n isDark={isDark}\n lazyUpdate={true}\n option={chartOption}\n opts={{ renderer: 'canvas' }}\n onEvents={{\n datazoom: handleDataZoom,\n }}\n />\n );\n};\n\nexport { Chart };\n"],"mappings":"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","ignoreList":[]}
@@ -13,17 +13,18 @@ export const getGridConfig = _ref => {
13
13
  Y_SENTIMENT_LABEL_MOBILE_SIZE,
14
14
  Y_LABEL_SIZE_DESKTOP,
15
15
  Y_LABEL_SIZE_MOBILE,
16
- TOP_MARGIN_DESKTOP,
17
- TOP_MARGIN_MOBILE,
16
+ TOP_LABEL_SPACE_DESKTOP,
17
+ TOP_LABEL_SPACE_MOBILE,
18
18
  MAIN_HEIGHT_DESKTOP,
19
19
  MAIN_HEIGHT_MOBILE,
20
- MOBILE_TOOLTIP_HEIGHT
20
+ TOOLTIP_HEIGHT_MOBILE,
21
+ TOOLTIP_HEIGHT_DESKTOP
21
22
  } = CHART_CONFIG;
22
23
  const mainHeight = isDesktop ? MAIN_HEIGHT_DESKTOP : MAIN_HEIGHT_MOBILE;
23
24
  const position = {
24
25
  left: "".concat(isDesktop ? Y_SENTIMENT_LABEL_DESKTOP_SIZE : Y_SENTIMENT_LABEL_MOBILE_SIZE, "px"),
25
26
  right: "".concat(isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE, "px"),
26
- top: "".concat(isDesktop ? TOP_MARGIN_DESKTOP : TOP_MARGIN_MOBILE + MOBILE_TOOLTIP_HEIGHT, "px"),
27
+ top: "".concat(isDesktop ? TOP_LABEL_SPACE_DESKTOP + TOOLTIP_HEIGHT_DESKTOP : TOP_LABEL_SPACE_MOBILE + TOOLTIP_HEIGHT_MOBILE, "px"),
27
28
  height: "".concat(mainHeight, "px")
28
29
  };
29
30
  return [_objectSpread({
@@ -1 +1 @@
1
- {"version":3,"file":"getGridConfig.js","names":["CHART_CONFIG","getGridConfig","_ref","isDesktop","Y_SENTIMENT_LABEL_DESKTOP_SIZE","Y_SENTIMENT_LABEL_MOBILE_SIZE","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","TOP_MARGIN_DESKTOP","TOP_MARGIN_MOBILE","MAIN_HEIGHT_DESKTOP","MAIN_HEIGHT_MOBILE","MOBILE_TOOLTIP_HEIGHT","mainHeight","position","left","concat","right","top","height","_objectSpread","id","name"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.ts"],"sourcesContent":["import type { GridComponentOption } from 'echarts';\n\nimport { CHART_CONFIG } from '../../../constants';\n\ninterface GetGridConfigParams {\n isDesktop: boolean;\n}\n\nexport const getGridConfig = ({\n isDesktop,\n}: GetGridConfigParams): GridComponentOption[] => {\n const {\n Y_SENTIMENT_LABEL_DESKTOP_SIZE,\n Y_SENTIMENT_LABEL_MOBILE_SIZE,\n Y_LABEL_SIZE_DESKTOP,\n Y_LABEL_SIZE_MOBILE,\n TOP_MARGIN_DESKTOP,\n TOP_MARGIN_MOBILE,\n MAIN_HEIGHT_DESKTOP,\n MAIN_HEIGHT_MOBILE,\n MOBILE_TOOLTIP_HEIGHT,\n } = CHART_CONFIG;\n\n const mainHeight = isDesktop ? MAIN_HEIGHT_DESKTOP : MAIN_HEIGHT_MOBILE;\n\n const position = {\n left: `${isDesktop ? Y_SENTIMENT_LABEL_DESKTOP_SIZE : Y_SENTIMENT_LABEL_MOBILE_SIZE}px`,\n right: `${isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE}px`,\n top: `${isDesktop ? TOP_MARGIN_DESKTOP : TOP_MARGIN_MOBILE + MOBILE_TOOLTIP_HEIGHT}px`,\n height: `${mainHeight}px`,\n };\n return [\n {\n id: 'main-grid',\n name: 'main-grid',\n ...position,\n },\n {\n id: 'sentiment-grid',\n name: 'sentiment-grid',\n ...position,\n },\n ];\n};\n"],"mappings":";;;;;AAEA,SAASA,YAAY,QAAQ,oBAAoB;AAMjD,OAAO,MAAMC,aAAa,GAAGC,IAAA,IAEqB;EAAA,IAFpB;IAC5BC;EACmB,CAAC,GAAAD,IAAA;EACpB,MAAM;IACJE,8BAA8B;IAC9BC,6BAA6B;IAC7BC,oBAAoB;IACpBC,mBAAmB;IACnBC,kBAAkB;IAClBC,iBAAiB;IACjBC,mBAAmB;IACnBC,kBAAkB;IAClBC;EACF,CAAC,GAAGZ,YAAY;EAEhB,MAAMa,UAAU,GAAGV,SAAS,GAAGO,mBAAmB,GAAGC,kBAAkB;EAEvE,MAAMG,QAAQ,GAAG;IACfC,IAAI,KAAAC,MAAA,CAAKb,SAAS,GAAGC,8BAA8B,GAAGC,6BAA6B,OAAI;IACvFY,KAAK,KAAAD,MAAA,CAAKb,SAAS,GAAGG,oBAAoB,GAAGC,mBAAmB,OAAI;IACpEW,GAAG,KAAAF,MAAA,CAAKb,SAAS,GAAGK,kBAAkB,GAAGC,iBAAiB,GAAGG,qBAAqB,OAAI;IACtFO,MAAM,KAAAH,MAAA,CAAKH,UAAU;EACvB,CAAC;EACD,OAAO,CAAAO,aAAA;IAEHC,EAAE,EAAE,WAAW;IACfC,IAAI,EAAE;EAAW,GACdR,QAAQ,GAAAM,aAAA;IAGXC,EAAE,EAAE,gBAAgB;IACpBC,IAAI,EAAE;EAAgB,GACnBR,QAAQ,EAEd;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"getGridConfig.js","names":["CHART_CONFIG","getGridConfig","_ref","isDesktop","Y_SENTIMENT_LABEL_DESKTOP_SIZE","Y_SENTIMENT_LABEL_MOBILE_SIZE","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","TOP_LABEL_SPACE_DESKTOP","TOP_LABEL_SPACE_MOBILE","MAIN_HEIGHT_DESKTOP","MAIN_HEIGHT_MOBILE","TOOLTIP_HEIGHT_MOBILE","TOOLTIP_HEIGHT_DESKTOP","mainHeight","position","left","concat","right","top","height","_objectSpread","id","name"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.ts"],"sourcesContent":["import type { GridComponentOption } from 'echarts';\n\nimport { CHART_CONFIG } from '../../../constants';\n\ninterface GetGridConfigParams {\n isDesktop: boolean;\n}\n\nexport const getGridConfig = ({\n isDesktop,\n}: GetGridConfigParams): GridComponentOption[] => {\n const {\n Y_SENTIMENT_LABEL_DESKTOP_SIZE,\n Y_SENTIMENT_LABEL_MOBILE_SIZE,\n Y_LABEL_SIZE_DESKTOP,\n Y_LABEL_SIZE_MOBILE,\n TOP_LABEL_SPACE_DESKTOP,\n TOP_LABEL_SPACE_MOBILE,\n MAIN_HEIGHT_DESKTOP,\n MAIN_HEIGHT_MOBILE,\n TOOLTIP_HEIGHT_MOBILE,\n TOOLTIP_HEIGHT_DESKTOP,\n } = CHART_CONFIG;\n\n const mainHeight = isDesktop ? MAIN_HEIGHT_DESKTOP : MAIN_HEIGHT_MOBILE;\n\n const position = {\n left: `${isDesktop ? Y_SENTIMENT_LABEL_DESKTOP_SIZE : Y_SENTIMENT_LABEL_MOBILE_SIZE}px`,\n right: `${isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE}px`,\n top: `${isDesktop ? TOP_LABEL_SPACE_DESKTOP + TOOLTIP_HEIGHT_DESKTOP : TOP_LABEL_SPACE_MOBILE + TOOLTIP_HEIGHT_MOBILE}px`,\n height: `${mainHeight}px`,\n };\n return [\n {\n id: 'main-grid',\n name: 'main-grid',\n ...position,\n },\n {\n id: 'sentiment-grid',\n name: 'sentiment-grid',\n ...position,\n },\n ];\n};\n"],"mappings":";;;;;AAEA,SAASA,YAAY,QAAQ,oBAAoB;AAMjD,OAAO,MAAMC,aAAa,GAAGC,IAAA,IAEqB;EAAA,IAFpB;IAC5BC;EACmB,CAAC,GAAAD,IAAA;EACpB,MAAM;IACJE,8BAA8B;IAC9BC,6BAA6B;IAC7BC,oBAAoB;IACpBC,mBAAmB;IACnBC,uBAAuB;IACvBC,sBAAsB;IACtBC,mBAAmB;IACnBC,kBAAkB;IAClBC,qBAAqB;IACrBC;EACF,CAAC,GAAGb,YAAY;EAEhB,MAAMc,UAAU,GAAGX,SAAS,GAAGO,mBAAmB,GAAGC,kBAAkB;EAEvE,MAAMI,QAAQ,GAAG;IACfC,IAAI,KAAAC,MAAA,CAAKd,SAAS,GAAGC,8BAA8B,GAAGC,6BAA6B,OAAI;IACvFa,KAAK,KAAAD,MAAA,CAAKd,SAAS,GAAGG,oBAAoB,GAAGC,mBAAmB,OAAI;IACpEY,GAAG,KAAAF,MAAA,CAAKd,SAAS,GAAGK,uBAAuB,GAAGK,sBAAsB,GAAGJ,sBAAsB,GAAGG,qBAAqB,OAAI;IACzHQ,MAAM,KAAAH,MAAA,CAAKH,UAAU;EACvB,CAAC;EACD,OAAO,CAAAO,aAAA;IAEHC,EAAE,EAAE,WAAW;IACfC,IAAI,EAAE;EAAW,GACdR,QAAQ,GAAAM,aAAA;IAGXC,EAAE,EAAE,gBAAgB;IACpBC,IAAI,EAAE;EAAgB,GACnBR,QAAQ,EAEd;AACH,CAAC","ignoreList":[]}
@@ -15,12 +15,19 @@ export const getGridLines = _ref => {
15
15
  MAIN_HEIGHT_DESKTOP,
16
16
  MAIN_HEIGHT_MOBILE,
17
17
  X_LABEL_SIZE,
18
- MOBILE_TOOLTIP_HEIGHT
18
+ TOOLTIP_HEIGHT_MOBILE,
19
+ TOOLTIP_HEIGHT_DESKTOP,
20
+ Y_SENTIMENT_LABEL_DESKTOP_SIZE,
21
+ Y_SENTIMENT_LABEL_MOBILE_SIZE,
22
+ Y_LABEL_SIZE_DESKTOP,
23
+ Y_LABEL_SIZE_MOBILE,
24
+ TOP_LABEL_SPACE_MOBILE
19
25
  } = CHART_CONFIG;
20
26
  const mainHeight = isDesktop ? MAIN_HEIGHT_DESKTOP : MAIN_HEIGHT_MOBILE;
21
- const ySentimentLabelSize = isDesktop ? CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE : CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE;
22
- const yLabelSize = isDesktop ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : CHART_CONFIG.Y_LABEL_SIZE_MOBILE;
23
- const topMargin = isDesktop ? CHART_CONFIG.TOP_MARGIN_DESKTOP : CHART_CONFIG.TOP_MARGIN_MOBILE + CHART_CONFIG.MOBILE_TOOLTIP_HEIGHT;
27
+ const ySentimentLabelSize = isDesktop ? Y_SENTIMENT_LABEL_DESKTOP_SIZE : Y_SENTIMENT_LABEL_MOBILE_SIZE;
28
+ const yLabelSize = isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE;
29
+ const topMargin = isDesktop ? CHART_CONFIG.TOP_LABEL_SPACE_DESKTOP + TOOLTIP_HEIGHT_DESKTOP : TOP_LABEL_SPACE_MOBILE + TOOLTIP_HEIGHT_MOBILE;
30
+ const tooltipHeight = isDesktop ? TOOLTIP_HEIGHT_DESKTOP : TOOLTIP_HEIGHT_MOBILE;
24
31
  return [_objectSpread(_objectSpread({}, getLineCommons(isDark)), {}, {
25
32
  top: -2,
26
33
  shape: {
@@ -96,11 +103,11 @@ export const getGridLines = _ref => {
96
103
  },
97
104
  z: 30
98
105
  }), _objectSpread(_objectSpread({}, getLineCommons(isDark)), {}, {
99
- top: MOBILE_TOOLTIP_HEIGHT - 2,
106
+ top: tooltipHeight - 3,
100
107
  shape: {
101
108
  x1: 0,
102
109
  y1: 0,
103
- x2: isDesktop ? 0 : WIDTH,
110
+ x2: WIDTH,
104
111
  y2: 0
105
112
  },
106
113
  z: 30