@oanda/labs-crowd-view-widget 1.0.55 → 1.0.57

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 (129) hide show
  1. package/CHANGELOG.md +460 -0
  2. package/dist/main/CrowdViewWidget/components/Chart/Chart.js +8 -10
  3. package/dist/main/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  4. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js +15 -3
  5. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  6. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js +29 -14
  7. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js.map +1 -1
  8. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js +28 -9
  9. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js.map +1 -1
  10. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js +20 -8
  11. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js.map +1 -1
  12. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js +21 -16
  13. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js.map +1 -1
  14. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js +29 -6
  15. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js.map +1 -1
  16. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js +24 -4
  17. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js.map +1 -1
  18. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.js +27 -0
  19. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.js.map +1 -0
  20. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js +2 -2
  21. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js.map +1 -1
  22. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js +6 -5
  23. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js.map +1 -1
  24. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js +71 -22
  25. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js.map +1 -1
  26. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js +3 -3
  27. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js.map +1 -1
  28. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/index.js +22 -0
  29. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/index.js.map +1 -1
  30. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js +11 -0
  31. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js.map +1 -0
  32. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js +1 -1
  33. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js.map +1 -1
  34. package/dist/main/CrowdViewWidget/components/Chart/getOption.js +11 -5
  35. package/dist/main/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
  36. package/dist/main/CrowdViewWidget/components/Chart/types.js.map +1 -1
  37. package/dist/main/CrowdViewWidget/components/Chart/useResizeObserver.js +47 -0
  38. package/dist/main/CrowdViewWidget/components/Chart/useResizeObserver.js.map +1 -0
  39. package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js +1 -1
  40. package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
  41. package/dist/main/CrowdViewWidget/constants.js +22 -8
  42. package/dist/main/CrowdViewWidget/constants.js.map +1 -1
  43. package/dist/main/CrowdViewWidget/selectConfig.js +3 -3
  44. package/dist/main/CrowdViewWidget/selectConfig.js.map +1 -1
  45. package/dist/main/translations/sources/en.json +11 -9
  46. package/dist/module/CrowdViewWidget/components/Chart/Chart.js +9 -11
  47. package/dist/module/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  48. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js +15 -3
  49. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  50. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js +29 -14
  51. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js.map +1 -1
  52. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js +28 -9
  53. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js.map +1 -1
  54. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js +20 -8
  55. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js.map +1 -1
  56. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js +21 -16
  57. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js.map +1 -1
  58. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js +30 -7
  59. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js.map +1 -1
  60. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js +25 -5
  61. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js.map +1 -1
  62. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.js +20 -0
  63. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.js.map +1 -0
  64. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js +2 -2
  65. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js.map +1 -1
  66. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js +6 -5
  67. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js.map +1 -1
  68. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js +71 -22
  69. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js.map +1 -1
  70. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js +3 -3
  71. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js.map +1 -1
  72. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js +2 -0
  73. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js.map +1 -1
  74. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js +4 -0
  75. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js.map +1 -0
  76. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js +1 -1
  77. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js.map +1 -1
  78. package/dist/module/CrowdViewWidget/components/Chart/getOption.js +11 -5
  79. package/dist/module/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
  80. package/dist/module/CrowdViewWidget/components/Chart/types.js.map +1 -1
  81. package/dist/module/CrowdViewWidget/components/Chart/useResizeObserver.js +40 -0
  82. package/dist/module/CrowdViewWidget/components/Chart/useResizeObserver.js.map +1 -0
  83. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js +1 -1
  84. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
  85. package/dist/module/CrowdViewWidget/constants.js +22 -8
  86. package/dist/module/CrowdViewWidget/constants.js.map +1 -1
  87. package/dist/module/CrowdViewWidget/selectConfig.js +3 -3
  88. package/dist/module/CrowdViewWidget/selectConfig.js.map +1 -1
  89. package/dist/module/translations/sources/en.json +11 -9
  90. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.d.ts +4 -2
  91. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.d.ts +3 -1
  92. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.d.ts +4 -1
  93. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.d.ts +1 -0
  94. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.d.ts +1 -1
  95. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.d.ts +1 -1
  96. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.d.ts +4 -1
  97. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.d.ts +1 -1
  98. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/index.d.ts +2 -0
  99. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.d.ts +1 -0
  100. package/dist/types/CrowdViewWidget/components/Chart/types.d.ts +1 -0
  101. package/dist/types/CrowdViewWidget/components/Chart/useResizeObserver.d.ts +5 -0
  102. package/dist/types/CrowdViewWidget/constants.d.ts +25 -19
  103. package/package.json +3 -3
  104. package/src/CrowdViewWidget/components/Chart/Chart.tsx +12 -11
  105. package/src/CrowdViewWidget/components/Chart/ChartWithData.tsx +22 -3
  106. package/src/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.ts +35 -19
  107. package/src/CrowdViewWidget/components/Chart/chartOptions/getGridLines.ts +41 -11
  108. package/src/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.ts +31 -11
  109. package/src/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.ts +24 -22
  110. package/src/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.ts +36 -5
  111. package/src/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.ts +29 -6
  112. package/src/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.ts +26 -0
  113. package/src/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.ts +3 -2
  114. package/src/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.ts +6 -4
  115. package/src/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.ts +143 -32
  116. package/src/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.ts +8 -3
  117. package/src/CrowdViewWidget/components/Chart/chartUtils/index.ts +2 -0
  118. package/src/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.ts +3 -0
  119. package/src/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.ts +1 -1
  120. package/src/CrowdViewWidget/components/Chart/getOption.ts +7 -1
  121. package/src/CrowdViewWidget/components/Chart/types.ts +1 -0
  122. package/src/CrowdViewWidget/components/Chart/useResizeObserver.ts +51 -0
  123. package/src/CrowdViewWidget/components/Legend/LegendBar.tsx +3 -2
  124. package/src/CrowdViewWidget/constants.ts +27 -6
  125. package/src/CrowdViewWidget/selectConfig.ts +4 -4
  126. package/src/translations/sources/en.json +11 -9
  127. package/test/components/Chart/utils/chartUtils.test.ts +16 -4
  128. package/test/components/Chart/utils/handleLabelUpdate.test.ts +32 -16
  129. package/test/utils/processPriceCandles.test.ts +4 -4
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useResizeObserver = void 0;
7
+ var _react = require("react");
8
+ const useResizeObserver = function () {
9
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10
+ const {
11
+ debounceDelay = 150
12
+ } = options;
13
+ const [isResizing, setIsResizing] = (0, _react.useState)(false);
14
+ const containerRef = (0, _react.useRef)(null);
15
+ const resizeTimeoutRef = (0, _react.useRef)(null);
16
+ (0, _react.useEffect)(() => {
17
+ const container = containerRef.current;
18
+ if (!container) {
19
+ return undefined;
20
+ }
21
+ if (typeof ResizeObserver === 'undefined') {
22
+ console.warn('ResizeObserver is not supported in this browser');
23
+ return undefined;
24
+ }
25
+ const resizeObserver = new ResizeObserver(() => {
26
+ setIsResizing(true);
27
+ if (resizeTimeoutRef.current) {
28
+ clearTimeout(resizeTimeoutRef.current);
29
+ }
30
+ resizeTimeoutRef.current = setTimeout(() => {
31
+ setIsResizing(false);
32
+ resizeTimeoutRef.current = null;
33
+ }, debounceDelay);
34
+ });
35
+ resizeObserver.observe(container);
36
+ return () => {
37
+ resizeObserver.disconnect();
38
+ if (resizeTimeoutRef.current) {
39
+ clearTimeout(resizeTimeoutRef.current);
40
+ resizeTimeoutRef.current = null;
41
+ }
42
+ };
43
+ }, [debounceDelay]);
44
+ return [containerRef, isResizing];
45
+ };
46
+ exports.useResizeObserver = useResizeObserver;
47
+ //# sourceMappingURL=useResizeObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResizeObserver.js","names":["_react","require","useResizeObserver","options","arguments","length","undefined","debounceDelay","isResizing","setIsResizing","useState","containerRef","useRef","resizeTimeoutRef","useEffect","container","current","ResizeObserver","console","warn","resizeObserver","clearTimeout","setTimeout","observe","disconnect","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/useResizeObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\ninterface UseResizeObserverOptions {\n debounceDelay?: number;\n}\n\nexport const useResizeObserver = (\n options: UseResizeObserverOptions = {}\n): [React.RefObject<HTMLDivElement>, boolean] => {\n const { debounceDelay = 150 } = options;\n const [isResizing, setIsResizing] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const resizeTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return undefined;\n }\n\n if (typeof ResizeObserver === 'undefined') {\n console.warn('ResizeObserver is not supported in this browser');\n return undefined;\n }\n\n const resizeObserver = new ResizeObserver(() => {\n setIsResizing(true);\n\n if (resizeTimeoutRef.current) {\n clearTimeout(resizeTimeoutRef.current);\n }\n\n resizeTimeoutRef.current = setTimeout(() => {\n setIsResizing(false);\n resizeTimeoutRef.current = null;\n }, debounceDelay);\n });\n\n resizeObserver.observe(container);\n\n return () => {\n resizeObserver.disconnect();\n if (resizeTimeoutRef.current) {\n clearTimeout(resizeTimeoutRef.current);\n resizeTimeoutRef.current = null;\n }\n };\n }, [debounceDelay]);\n\n return [containerRef, isResizing];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMO,MAAMC,iBAAiB,GAAG,SAAAA,CAAA,EAEgB;EAAA,IAD/CC,OAAiC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEtC,MAAM;IAAEG,aAAa,GAAG;EAAI,CAAC,GAAGJ,OAAO;EACvC,MAAM,CAACK,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACnD,MAAMC,YAAY,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EACjD,MAAMC,gBAAgB,GAAG,IAAAD,aAAM,EAAwB,IAAI,CAAC;EAE5D,IAAAE,gBAAS,EAAC,MAAM;IACd,MAAMC,SAAS,GAAGJ,YAAY,CAACK,OAAO;IACtC,IAAI,CAACD,SAAS,EAAE;MACd,OAAOT,SAAS;IAClB;IAEA,IAAI,OAAOW,cAAc,KAAK,WAAW,EAAE;MACzCC,OAAO,CAACC,IAAI,CAAC,iDAAiD,CAAC;MAC/D,OAAOb,SAAS;IAClB;IAEA,MAAMc,cAAc,GAAG,IAAIH,cAAc,CAAC,MAAM;MAC9CR,aAAa,CAAC,IAAI,CAAC;MAEnB,IAAII,gBAAgB,CAACG,OAAO,EAAE;QAC5BK,YAAY,CAACR,gBAAgB,CAACG,OAAO,CAAC;MACxC;MAEAH,gBAAgB,CAACG,OAAO,GAAGM,UAAU,CAAC,MAAM;QAC1Cb,aAAa,CAAC,KAAK,CAAC;QACpBI,gBAAgB,CAACG,OAAO,GAAG,IAAI;MACjC,CAAC,EAAET,aAAa,CAAC;IACnB,CAAC,CAAC;IAEFa,cAAc,CAACG,OAAO,CAACR,SAAS,CAAC;IAEjC,OAAO,MAAM;MACXK,cAAc,CAACI,UAAU,CAAC,CAAC;MAC3B,IAAIX,gBAAgB,CAACG,OAAO,EAAE;QAC5BK,YAAY,CAACR,gBAAgB,CAACG,OAAO,CAAC;QACtCH,gBAAgB,CAACG,OAAO,GAAG,IAAI;MACjC;IACF,CAAC;EACH,CAAC,EAAE,CAACT,aAAa,CAAC,CAAC;EAEnB,OAAO,CAACI,YAAY,EAAEH,UAAU,CAAC;AACnC,CAAC;AAACiB,OAAA,CAAAvB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -16,7 +16,7 @@ const LegendBar = _ref => {
16
16
  const colorPalette = isDark ? _constants.COLOR_MAP.dark : _constants.COLOR_MAP.light;
17
17
  const startColor = type === 'long' ? colorPalette.long[1] : colorPalette.short[0];
18
18
  const endColor = type === 'long' ? colorPalette.long[0] : colorPalette.short[1];
19
- const endGradient = type === 'long' ? "linear-gradient(90deg,".concat(endColor, " 0%, transparent 100%)") : "linear-gradient(270deg,".concat(startColor, " 0%, transparent 100%)");
19
+ const endGradient = type === 'long' ? "linear-gradient(90deg,".concat(endColor, " 0%, ").concat(colorPalette.backgroundColor, " 100%)") : "linear-gradient(270deg,".concat(startColor, " 0%, ").concat(colorPalette.backgroundColor, " 100%)");
20
20
  return _react.default.createElement("div", {
21
21
  className: (0, _labsWidgetCommon.cn)('lw-flex lw-h-2 lw-w-full lw-overflow-hidden', {
22
22
  'lw-flex-row-reverse': type === 'short'
@@ -1 +1 @@
1
- {"version":3,"file":"LegendBar.js","names":["_labsWidgetCommon","require","_react","_interopRequireDefault","_constants","e","__esModule","default","LegendBar","_ref","type","isDark","colorPalette","COLOR_MAP","dark","light","startColor","long","short","endColor","endGradient","concat","createElement","className","cn","style","background","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/LegendBar.tsx"],"sourcesContent":["import { cn } from '@oanda/labs-widget-common';\nimport React from 'react';\n\nimport { COLOR_MAP } from '../../constants';\n\nexport type LegendType = 'long' | 'short';\n\ninterface LegendBarProps {\n type: LegendType;\n isDark: boolean;\n}\n\nexport const LegendBar = ({ type, isDark }: LegendBarProps) => {\n const colorPalette = isDark ? COLOR_MAP.dark : COLOR_MAP.light;\n const startColor =\n type === 'long' ? colorPalette.long[1] : colorPalette.short[0];\n const endColor =\n type === 'long' ? colorPalette.long[0] : colorPalette.short[1];\n const endGradient =\n type === 'long'\n ? `linear-gradient(90deg,${endColor} 0%, transparent 100%)`\n : `linear-gradient(270deg,${startColor} 0%, transparent 100%)`;\n\n return (\n <div\n className={cn('lw-flex lw-h-2 lw-w-full lw-overflow-hidden', {\n 'lw-flex-row-reverse': type === 'short',\n })}\n >\n <div\n className=\"lw-h-full lw-flex-1\"\n data-testid=\"legend-bar-segment\"\n style={{\n background: `linear-gradient(90deg,${startColor} 0%, ${endColor} 100%)`,\n }}\n />\n <div\n className=\"lw-h-full lw-w-[10px]\"\n data-testid=\"legend-bar-segment\"\n style={{\n background: endGradient,\n }}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AAA4C,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AASrC,MAAMG,SAAS,GAAGC,IAAA,IAAsC;EAAA,IAArC;IAAEC,IAAI;IAAEC;EAAuB,CAAC,GAAAF,IAAA;EACxD,MAAMG,YAAY,GAAGD,MAAM,GAAGE,oBAAS,CAACC,IAAI,GAAGD,oBAAS,CAACE,KAAK;EAC9D,MAAMC,UAAU,GACdN,IAAI,KAAK,MAAM,GAAGE,YAAY,CAACK,IAAI,CAAC,CAAC,CAAC,GAAGL,YAAY,CAACM,KAAK,CAAC,CAAC,CAAC;EAChE,MAAMC,QAAQ,GACZT,IAAI,KAAK,MAAM,GAAGE,YAAY,CAACK,IAAI,CAAC,CAAC,CAAC,GAAGL,YAAY,CAACM,KAAK,CAAC,CAAC,CAAC;EAChE,MAAME,WAAW,GACfV,IAAI,KAAK,MAAM,4BAAAW,MAAA,CACcF,QAAQ,wDAAAE,MAAA,CACPL,UAAU,2BAAwB;EAElE,OACEd,MAAA,CAAAK,OAAA,CAAAe,aAAA;IACEC,SAAS,EAAE,IAAAC,oBAAE,EAAC,6CAA6C,EAAE;MAC3D,qBAAqB,EAAEd,IAAI,KAAK;IAClC,CAAC;EAAE,GAEHR,MAAA,CAAAK,OAAA,CAAAe,aAAA;IACEC,SAAS,EAAC,qBAAqB;IAC/B,eAAY,oBAAoB;IAChCE,KAAK,EAAE;MACLC,UAAU,2BAAAL,MAAA,CAA2BL,UAAU,WAAAK,MAAA,CAAQF,QAAQ;IACjE;EAAE,CACH,CAAC,EACFjB,MAAA,CAAAK,OAAA,CAAAe,aAAA;IACEC,SAAS,EAAC,uBAAuB;IACjC,eAAY,oBAAoB;IAChCE,KAAK,EAAE;MACLC,UAAU,EAAEN;IACd;EAAE,CACH,CACE,CAAC;AAEV,CAAC;AAACO,OAAA,CAAAnB,SAAA,GAAAA,SAAA","ignoreList":[]}
1
+ {"version":3,"file":"LegendBar.js","names":["_labsWidgetCommon","require","_react","_interopRequireDefault","_constants","e","__esModule","default","LegendBar","_ref","type","isDark","colorPalette","COLOR_MAP","dark","light","startColor","long","short","endColor","endGradient","concat","backgroundColor","createElement","className","cn","style","background","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/LegendBar.tsx"],"sourcesContent":["import { cn } from '@oanda/labs-widget-common';\nimport React from 'react';\n\nimport { COLOR_MAP } from '../../constants';\n\nexport type LegendType = 'long' | 'short';\n\ninterface LegendBarProps {\n type: LegendType;\n isDark: boolean;\n}\n\nexport const LegendBar = ({ type, isDark }: LegendBarProps) => {\n const colorPalette = isDark ? COLOR_MAP.dark : COLOR_MAP.light;\n\n const startColor =\n type === 'long' ? colorPalette.long[1] : colorPalette.short[0];\n const endColor =\n type === 'long' ? colorPalette.long[0] : colorPalette.short[1];\n const endGradient =\n type === 'long'\n ? `linear-gradient(90deg,${endColor} 0%, ${colorPalette.backgroundColor} 100%)`\n : `linear-gradient(270deg,${startColor} 0%, ${colorPalette.backgroundColor} 100%)`;\n\n return (\n <div\n className={cn('lw-flex lw-h-2 lw-w-full lw-overflow-hidden', {\n 'lw-flex-row-reverse': type === 'short',\n })}\n >\n <div\n className=\"lw-h-full lw-flex-1\"\n data-testid=\"legend-bar-segment\"\n style={{\n background: `linear-gradient(90deg,${startColor} 0%, ${endColor} 100%)`,\n }}\n />\n <div\n className=\"lw-h-full lw-w-[10px]\"\n data-testid=\"legend-bar-segment\"\n style={{\n background: endGradient,\n }}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AAA4C,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AASrC,MAAMG,SAAS,GAAGC,IAAA,IAAsC;EAAA,IAArC;IAAEC,IAAI;IAAEC;EAAuB,CAAC,GAAAF,IAAA;EACxD,MAAMG,YAAY,GAAGD,MAAM,GAAGE,oBAAS,CAACC,IAAI,GAAGD,oBAAS,CAACE,KAAK;EAE9D,MAAMC,UAAU,GACdN,IAAI,KAAK,MAAM,GAAGE,YAAY,CAACK,IAAI,CAAC,CAAC,CAAC,GAAGL,YAAY,CAACM,KAAK,CAAC,CAAC,CAAC;EAChE,MAAMC,QAAQ,GACZT,IAAI,KAAK,MAAM,GAAGE,YAAY,CAACK,IAAI,CAAC,CAAC,CAAC,GAAGL,YAAY,CAACM,KAAK,CAAC,CAAC,CAAC;EAChE,MAAME,WAAW,GACfV,IAAI,KAAK,MAAM,4BAAAW,MAAA,CACcF,QAAQ,WAAAE,MAAA,CAAQT,YAAY,CAACU,eAAe,wCAAAD,MAAA,CAC3CL,UAAU,WAAAK,MAAA,CAAQT,YAAY,CAACU,eAAe,WAAQ;EAEtF,OACEpB,MAAA,CAAAK,OAAA,CAAAgB,aAAA;IACEC,SAAS,EAAE,IAAAC,oBAAE,EAAC,6CAA6C,EAAE;MAC3D,qBAAqB,EAAEf,IAAI,KAAK;IAClC,CAAC;EAAE,GAEHR,MAAA,CAAAK,OAAA,CAAAgB,aAAA;IACEC,SAAS,EAAC,qBAAqB;IAC/B,eAAY,oBAAoB;IAChCE,KAAK,EAAE;MACLC,UAAU,2BAAAN,MAAA,CAA2BL,UAAU,WAAAK,MAAA,CAAQF,QAAQ;IACjE;EAAE,CACH,CAAC,EACFjB,MAAA,CAAAK,OAAA,CAAAgB,aAAA;IACEC,SAAS,EAAC,uBAAuB;IACjC,eAAY,oBAAoB;IAChCE,KAAK,EAAE;MACLC,UAAU,EAAEP;IACd;EAAE,CACH,CACE,CAAC;AAEV,CAAC;AAACQ,OAAA,CAAApB,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -8,6 +8,11 @@ var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
8
  var _chromaJs = _interopRequireDefault(require("chroma-js"));
9
9
  var _types = require("./types");
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
15
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
16
  const BUCKET_CONFIG = exports.BUCKET_CONFIG = {
12
17
  MULTIPLIER_5M: 1,
13
18
  MULTIPLIER_15M: 1,
@@ -18,9 +23,9 @@ const BUCKET_CONFIG = exports.BUCKET_CONFIG = {
18
23
  const TIME_THRESHOLDS = exports.TIME_THRESHOLDS = {
19
24
  TWO_WEEKS_MS: 14 * 24 * 60 * 60 * 1000
20
25
  };
21
- const CHART_CONFIG = exports.CHART_CONFIG = {
22
- HEIGHT: 440,
23
- MAIN_HEIGHT: 400,
26
+ const CHART_CONFIG_STATIC = {
27
+ MAIN_HEIGHT_DESKTOP: 410,
28
+ MAIN_HEIGHT_MOBILE: 330,
24
29
  MARGIN_BETWEEN: 50,
25
30
  SENTIMENT_HEIGHT: 120,
26
31
  WIDTH: 9999,
@@ -35,18 +40,27 @@ const CHART_CONFIG = exports.CHART_CONFIG = {
35
40
  X_AXIS_DATE_PADDING: ' ',
36
41
  SENTIMENT_MIN: 0,
37
42
  SENTIMENT_MAX: 100,
38
- TOP_MARGIN_DESKTOP: 0,
39
- TOP_MARGIN_MOBILE: 30,
40
- TOOLTIP_OFFSET: 5
43
+ TOP_LABEL_SPACE_DESKTOP: 0,
44
+ TOP_LABEL_SPACE_MOBILE: 24,
45
+ TOOLTIP_HEIGHT_MOBILE: 85,
46
+ TOOLTIP_HEIGHT_DESKTOP: 46,
47
+ TOOLTIP_OFFSET: 8
41
48
  };
49
+ const CHART_CONFIG_CALCULATED = {
50
+ 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,
51
+ 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
52
+ };
53
+ const CHART_CONFIG = exports.CHART_CONFIG = _objectSpread(_objectSpread({}, CHART_CONFIG_STATIC), CHART_CONFIG_CALCULATED);
42
54
  const COLOR_MAP = exports.COLOR_MAP = {
43
55
  dark: {
44
56
  long: [(0, _chromaJs.default)(_labsWidgetCommon.colorPalette.darkBlue10).shade(0.5).hex(), (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.darkBlue90).shade(0.5).hex()],
45
- short: [(0, _chromaJs.default)(_labsWidgetCommon.colorPalette.darkYellow10).shade(0.5).hex(), (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.darkYellow90).shade(0.5).hex()]
57
+ short: [(0, _chromaJs.default)(_labsWidgetCommon.colorPalette.darkYellow10).shade(0.5).hex(), (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.darkYellow90).shade(0.5).hex()],
58
+ backgroundColor: _labsWidgetCommon.colorPalette.black
46
59
  },
47
60
  light: {
48
61
  long: [(0, _chromaJs.default)(_labsWidgetCommon.colorPalette.lightBlue10).tint(0.5).hex(), (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.lightBlue90).tint(0.5).hex()],
49
- short: [(0, _chromaJs.default)(_labsWidgetCommon.colorPalette.lightYellow10).tint(0.5).hex(), (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.lightYellow90).tint(0.5).hex()]
62
+ short: [(0, _chromaJs.default)(_labsWidgetCommon.colorPalette.lightYellow10).tint(0.5).hex(), (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.lightYellow90).tint(0.5).hex()],
63
+ backgroundColor: _labsWidgetCommon.colorPalette.white
50
64
  }
51
65
  };
52
66
  const INSTRUMENTS_CONFIG = exports.INSTRUMENTS_CONFIG = {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["_labsWidgetCommon","require","_chromaJs","_interopRequireDefault","_types","e","__esModule","default","BUCKET_CONFIG","exports","MULTIPLIER_5M","MULTIPLIER_15M","MULTIPLIER_1H","MULTIPLIER_4H","PRICE_MARGIN_MULTIPLIER","TIME_THRESHOLDS","TWO_WEEKS_MS","CHART_CONFIG","HEIGHT","MAIN_HEIGHT","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","TOOLTIP_OFFSET","COLOR_MAP","dark","long","chroma","colorPalette","darkBlue10","shade","hex","darkBlue90","short","darkYellow10","darkYellow90","light","lightBlue10","tint","lightBlue90","lightYellow10","lightYellow90","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 CHART_CONFIG = {\n HEIGHT: 440,\n MAIN_HEIGHT: 400,\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: 30,\n TOOLTIP_OFFSET: 5,\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 },\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 },\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","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\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":[]}
@@ -14,6 +14,9 @@ const navigationConfig = exports.navigationConfig = [{
14
14
  label: 'position_book'
15
15
  }];
16
16
  const instrumentSelectConfigOC = exports.instrumentSelectConfigOC = [{
17
+ id: _types.InstrumentId.EUR_USD,
18
+ label: 'EUR/USD'
19
+ }, {
17
20
  id: _types.InstrumentId.EUR_AUD,
18
21
  label: 'EUR/AUD'
19
22
  }, {
@@ -22,9 +25,6 @@ const instrumentSelectConfigOC = exports.instrumentSelectConfigOC = [{
22
25
  }, {
23
26
  id: _types.InstrumentId.EUR_JPY,
24
27
  label: 'EUR/JPY'
25
- }, {
26
- id: _types.InstrumentId.EUR_USD,
27
- label: 'EUR/USD'
28
28
  }, {
29
29
  id: _types.InstrumentId.EUR_CHF,
30
30
  label: 'EUR/CHF'
@@ -1 +1 @@
1
- {"version":3,"file":"selectConfig.js","names":["_graphql","require","_types","navigationConfig","exports","id","BookType","Order","label","Position","instrumentSelectConfigOC","InstrumentId","EUR_AUD","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","instrumentSelectConfig","XAU_USD","XAG_USD","granularitySelectConfig","Granularity","H1","H4"],"sources":["../../../src/CrowdViewWidget/selectConfig.ts"],"sourcesContent":["import { BookType, Granularity } from '../gql/types/graphql';\nimport { InstrumentId } from './types';\n\nconst navigationConfig = [\n {\n id: BookType.Order,\n label: 'order_book',\n },\n {\n id: BookType.Position,\n label: 'position_book',\n },\n];\n\nconst instrumentSelectConfigOC = [\n {\n id: InstrumentId.EUR_AUD,\n label: 'EUR/AUD',\n },\n {\n id: InstrumentId.EUR_GBP,\n label: 'EUR/GBP',\n },\n {\n id: InstrumentId.EUR_JPY,\n label: 'EUR/JPY',\n },\n {\n id: InstrumentId.EUR_USD,\n label: 'EUR/USD',\n },\n {\n id: InstrumentId.EUR_CHF,\n label: 'EUR/CHF',\n },\n {\n id: InstrumentId.USD_CHF,\n label: 'USD/CHF',\n },\n {\n id: InstrumentId.USD_JPY,\n label: 'USD/JPY',\n },\n {\n id: InstrumentId.USD_CAD,\n label: 'USD/CAD',\n },\n {\n id: InstrumentId.GBP_USD,\n label: 'GBP/USD',\n },\n {\n id: InstrumentId.GBP_JPY,\n label: 'GBP/JPY',\n },\n {\n id: InstrumentId.GBP_CHF,\n label: 'GBP/CHF',\n },\n {\n id: InstrumentId.AUD_JPY,\n label: 'AUD/JPY',\n },\n {\n id: InstrumentId.AUD_USD,\n label: 'AUD/USD',\n },\n {\n id: InstrumentId.NZD_USD,\n label: 'NZD/USD',\n },\n];\n\nconst instrumentSelectConfig = [\n ...instrumentSelectConfigOC,\n {\n id: InstrumentId.XAU_USD,\n label: 'XAU/USD',\n },\n {\n id: InstrumentId.XAG_USD,\n label: 'XAG/USD',\n },\n];\n\nconst granularitySelectConfig = [\n {\n id: Granularity.H1,\n label: '1_hour',\n },\n {\n id: Granularity.H4,\n label: '4_hours',\n },\n];\n\nexport {\n granularitySelectConfig,\n instrumentSelectConfig,\n instrumentSelectConfigOC,\n navigationConfig,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,MAAME,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,CACvB;EACEE,EAAE,EAAEC,iBAAQ,CAACC,KAAK;EAClBC,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEC,iBAAQ,CAACG,QAAQ;EACrBD,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAME,wBAAwB,GAAAN,OAAA,CAAAM,wBAAA,GAAG,CAC/B;EACEL,EAAE,EAAEM,mBAAY,CAACC,OAAO;EACxBJ,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACE,OAAO;EACxBL,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACG,OAAO;EACxBN,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACI,OAAO;EACxBP,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACK,OAAO;EACxBR,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACM,OAAO;EACxBT,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACO,OAAO;EACxBV,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACQ,OAAO;EACxBX,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACS,OAAO;EACxBZ,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACU,OAAO;EACxBb,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACW,OAAO;EACxBd,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACY,OAAO;EACxBf,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACa,OAAO;EACxBhB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACc,OAAO;EACxBjB,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAMkB,sBAAsB,GAAAtB,OAAA,CAAAsB,sBAAA,GAAG,CAC7B,GAAGhB,wBAAwB,EAC3B;EACEL,EAAE,EAAEM,mBAAY,CAACgB,OAAO;EACxBnB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACiB,OAAO;EACxBpB,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAMqB,uBAAuB,GAAAzB,OAAA,CAAAyB,uBAAA,GAAG,CAC9B;EACExB,EAAE,EAAEyB,oBAAW,CAACC,EAAE;EAClBvB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEyB,oBAAW,CAACE,EAAE;EAClBxB,KAAK,EAAE;AACT,CAAC,CACF","ignoreList":[]}
1
+ {"version":3,"file":"selectConfig.js","names":["_graphql","require","_types","navigationConfig","exports","id","BookType","Order","label","Position","instrumentSelectConfigOC","InstrumentId","EUR_USD","EUR_AUD","EUR_GBP","EUR_JPY","EUR_CHF","USD_CHF","USD_JPY","USD_CAD","GBP_USD","GBP_JPY","GBP_CHF","AUD_JPY","AUD_USD","NZD_USD","instrumentSelectConfig","XAU_USD","XAG_USD","granularitySelectConfig","Granularity","H1","H4"],"sources":["../../../src/CrowdViewWidget/selectConfig.ts"],"sourcesContent":["import { BookType, Granularity } from '../gql/types/graphql';\nimport { InstrumentId } from './types';\n\nconst navigationConfig = [\n {\n id: BookType.Order,\n label: 'order_book',\n },\n {\n id: BookType.Position,\n label: 'position_book',\n },\n];\n\nconst instrumentSelectConfigOC = [\n {\n id: InstrumentId.EUR_USD,\n label: 'EUR/USD',\n },\n {\n id: InstrumentId.EUR_AUD,\n label: 'EUR/AUD',\n },\n {\n id: InstrumentId.EUR_GBP,\n label: 'EUR/GBP',\n },\n {\n id: InstrumentId.EUR_JPY,\n label: 'EUR/JPY',\n },\n {\n id: InstrumentId.EUR_CHF,\n label: 'EUR/CHF',\n },\n {\n id: InstrumentId.USD_CHF,\n label: 'USD/CHF',\n },\n {\n id: InstrumentId.USD_JPY,\n label: 'USD/JPY',\n },\n {\n id: InstrumentId.USD_CAD,\n label: 'USD/CAD',\n },\n {\n id: InstrumentId.GBP_USD,\n label: 'GBP/USD',\n },\n {\n id: InstrumentId.GBP_JPY,\n label: 'GBP/JPY',\n },\n {\n id: InstrumentId.GBP_CHF,\n label: 'GBP/CHF',\n },\n {\n id: InstrumentId.AUD_JPY,\n label: 'AUD/JPY',\n },\n {\n id: InstrumentId.AUD_USD,\n label: 'AUD/USD',\n },\n {\n id: InstrumentId.NZD_USD,\n label: 'NZD/USD',\n },\n];\n\nconst instrumentSelectConfig = [\n ...instrumentSelectConfigOC,\n {\n id: InstrumentId.XAU_USD,\n label: 'XAU/USD',\n },\n {\n id: InstrumentId.XAG_USD,\n label: 'XAG/USD',\n },\n];\n\nconst granularitySelectConfig = [\n {\n id: Granularity.H1,\n label: '1_hour',\n },\n {\n id: Granularity.H4,\n label: '4_hours',\n },\n];\n\nexport {\n granularitySelectConfig,\n instrumentSelectConfig,\n instrumentSelectConfigOC,\n navigationConfig,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,MAAME,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,CACvB;EACEE,EAAE,EAAEC,iBAAQ,CAACC,KAAK;EAClBC,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEC,iBAAQ,CAACG,QAAQ;EACrBD,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAME,wBAAwB,GAAAN,OAAA,CAAAM,wBAAA,GAAG,CAC/B;EACEL,EAAE,EAAEM,mBAAY,CAACC,OAAO;EACxBJ,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACE,OAAO;EACxBL,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACG,OAAO;EACxBN,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACI,OAAO;EACxBP,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACK,OAAO;EACxBR,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACM,OAAO;EACxBT,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACO,OAAO;EACxBV,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACQ,OAAO;EACxBX,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACS,OAAO;EACxBZ,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACU,OAAO;EACxBb,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACW,OAAO;EACxBd,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACY,OAAO;EACxBf,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACa,OAAO;EACxBhB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACc,OAAO;EACxBjB,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAMkB,sBAAsB,GAAAtB,OAAA,CAAAsB,sBAAA,GAAG,CAC7B,GAAGhB,wBAAwB,EAC3B;EACEL,EAAE,EAAEM,mBAAY,CAACgB,OAAO;EACxBnB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACiB,OAAO;EACxBpB,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAMqB,uBAAuB,GAAAzB,OAAA,CAAAyB,uBAAA,GAAG,CAC9B;EACExB,EAAE,EAAEyB,oBAAW,CAACC,EAAE;EAClBvB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEyB,oBAAW,CAACE,EAAE;EAClBxB,KAAK,EAAE;AACT,CAAC,CACF","ignoreList":[]}
@@ -3,31 +3,33 @@
3
3
  "15_minutes": "15 minutes",
4
4
  "4_hours": "4 hours",
5
5
  "5_minutes": "5 minutes",
6
- "buy_overbalance": "Buy overbalance",
7
6
  "buy": "Buy",
7
+ "buy_overbalance": "Buy overbalance",
8
8
  "candle": "Candle",
9
- "close_price": "Close price",
9
+ "close": "Close",
10
10
  "data_unavailable": "Data unavailable",
11
+ "even_market_demand": "Even market demand",
11
12
  "granularity": "Granularity",
12
13
  "high": "High",
13
14
  "instrument": "Instrument",
14
- "long_overbalance": "Long overbalance",
15
15
  "long": "Long",
16
+ "long_overbalance": "Long overbalance",
16
17
  "low": "Low",
17
18
  "no_matching_results": "No matching results",
18
- "open_price": "Open price",
19
+ "open": "Open",
19
20
  "order_book": "Order book",
20
21
  "orders": "Orders",
21
22
  "pagination_entries_range": "{{firstItemOnPage}}-{{lastItemOnPage}} of {{itemCount}} entries",
22
23
  "position_book": "Position book",
23
- "positions": "Positions",
24
+ "price": "Price",
24
25
  "price_range": "Price range",
25
26
  "search": "Search",
26
- "sell_overbalance": "Sell overbalance",
27
27
  "sell": "Sell",
28
+ "sell_overbalance": "Sell overbalance",
28
29
  "sentiment": "Sentiment",
29
- "short_overbalance": "Short overbalance",
30
30
  "short": "Short",
31
- "even_market_demand": "Even market demand",
32
- "price": "Price"
31
+ "short_overbalance": "Short overbalance",
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",
34
+ "trades": "Trades"
33
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 } 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));
@@ -23,13 +22,11 @@ const Chart = _ref => {
23
22
  isDark
24
23
  } = useLayoutProvider();
25
24
  const {
26
- lang
25
+ lang,
26
+ locale
27
27
  } = useLocale();
28
- const canHover = useMediaQuery('(hover: hover)');
29
28
  const labelTimerRef = useRef(null);
30
29
  const isGreaterThanTwoWeeksRef = useRef(null);
31
- const zoomTimerRef = useRef(null);
32
- const tooltipVisibleRef = useRef(true);
33
30
  const initialIsGreaterThanTwoWeeks = useMemo(() => {
34
31
  const {
35
32
  dates
@@ -50,14 +47,15 @@ const Chart = _ref => {
50
47
  isDark,
51
48
  isDesktop,
52
49
  isLoading,
50
+ locale: normalizeLocale(locale),
53
51
  labelCallback: lang
54
- }), [mainData, additionalData, isDark, isDesktop, isLoading, lang]);
52
+ }), [mainData, additionalData, isDark, isDesktop, isLoading, lang, locale]);
55
53
  const handleDataZoom = useCallback((_params, instance) => {
56
- handleTooltipUpdate(instance, zoomTimerRef, tooltipVisibleRef, canHover);
57
- handleLabelUpdate(instance, mainData, labelTimerRef, isGreaterThanTwoWeeksRef);
58
- }, [mainData, canHover]);
54
+ handleLabelUpdate(instance, mainData, labelTimerRef, isGreaterThanTwoWeeksRef, normalizeLocale(locale));
55
+ }, [mainData, locale]);
56
+ const chartHeight = isDesktop ? CHART_CONFIG.HEIGHT_DESKTOP : CHART_CONFIG.HEIGHT_MOBILE;
59
57
  return React.createElement(BaseChart, {
60
- chartHeight: CHART_CONFIG.HEIGHT,
58
+ chartHeight: chartHeight,
61
59
  echarts: echarts,
62
60
  isDark: isDark,
63
61
  lazyUpdate: true,
@@ -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","getOption","use","registerTheme","Dark","Light","Chart","_ref","mainData","additionalData","isDesktop","isLoading","isDark","lang","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","createElement","chartHeight","HEIGHT","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} 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 } = 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 labelCallback: lang,\n }),\n [mainData, additionalData, isDark, isDesktop, isLoading, lang]\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 );\n },\n [mainData, canHover]\n );\n\n return (\n <BaseChart\n chartHeight={CHART_CONFIG.HEIGHT}\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":[]}
@@ -1,8 +1,10 @@
1
1
  import { ChartError, Size, Spinner, SpinnerSize, useLayoutProvider } from '@oanda/labs-widget-common';
2
2
  import React, { useEffect, useState } from 'react';
3
3
  import { useDebounceCallback } from 'usehooks-ts';
4
+ import { CHART_CONFIG } from '../../constants';
4
5
  import { Chart } from './Chart';
5
6
  import { useCrowdViewData } from './useCrowdViewData';
7
+ import { useResizeObserver } from './useResizeObserver';
6
8
  const ChartWithData = _ref => {
7
9
  let {
8
10
  instrument,
@@ -14,6 +16,9 @@ const ChartWithData = _ref => {
14
16
  size
15
17
  } = useLayoutProvider();
16
18
  const [debouncedLoading, setDebouncedLoading] = useState(true);
19
+ const [containerRef, isResizing] = useResizeObserver({
20
+ debounceDelay: 150
21
+ });
17
22
  const isDesktop = size === Size.DESKTOP;
18
23
  const {
19
24
  mainData,
@@ -36,18 +41,25 @@ const ChartWithData = _ref => {
36
41
  setDebouncedLoading(true);
37
42
  }
38
43
  }, [loading, hideLoading]);
44
+ const showChart = !priceCandlesLoading && !error && !!mainData && !!additionalData && !isResizing;
45
+ const showLoader = loading || isResizing;
46
+ const chartHeight = isDesktop ? CHART_CONFIG.HEIGHT_DESKTOP : CHART_CONFIG.HEIGHT_MOBILE;
39
47
  return React.createElement(React.Fragment, null, React.createElement("div", {
40
- className: "lw-relative lw-h-[440px] lw-w-full lw-overflow-hidden"
48
+ ref: containerRef,
49
+ className: "lw-relative lw-w-full lw-overflow-hidden",
50
+ style: {
51
+ height: chartHeight
52
+ }
41
53
  }, error && React.createElement("div", {
42
54
  className: "lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary"
43
- }, React.createElement(ChartError, null)), !priceCandlesLoading && !error && !!mainData && !!additionalData && React.createElement("div", {
55
+ }, React.createElement(ChartError, null)), showChart && React.createElement("div", {
44
56
  className: "lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full"
45
57
  }, React.createElement(Chart, {
46
58
  additionalData: additionalData,
47
59
  isDesktop: isDesktop,
48
60
  isLoading: debouncedLoading,
49
61
  mainData: mainData
50
- })), loading && React.createElement("div", {
62
+ })), showLoader && React.createElement("div", {
51
63
  className: "lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary lw-bg-bg-transparent-50"
52
64
  }, React.createElement(Spinner, {
53
65
  size: SpinnerSize.lg
@@ -1 +1 @@
1
- {"version":3,"file":"ChartWithData.js","names":["ChartError","Size","Spinner","SpinnerSize","useLayoutProvider","React","useEffect","useState","useDebounceCallback","Chart","useCrowdViewData","ChartWithData","_ref","instrument","bookType","division","granularity","size","debouncedLoading","setDebouncedLoading","isDesktop","DESKTOP","mainData","additionalData","loading","priceCandlesLoading","error","hideLoading","createElement","Fragment","className","isLoading","lg"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/ChartWithData.tsx"],"sourcesContent":["import {\n ChartError,\n Size,\n Spinner,\n SpinnerSize,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport React, { useEffect, useState } from 'react';\nimport { useDebounceCallback } from 'usehooks-ts';\n\nimport { Chart } from './Chart';\nimport type { ChartWithDataProps } from './types';\nimport { useCrowdViewData } from './useCrowdViewData';\n\nconst ChartWithData = ({\n instrument,\n bookType,\n division,\n granularity,\n}: ChartWithDataProps) => {\n const { size } = useLayoutProvider();\n const [debouncedLoading, setDebouncedLoading] = useState(true);\n const isDesktop = size === Size.DESKTOP;\n\n const { mainData, additionalData, loading, priceCandlesLoading, error } =\n useCrowdViewData({\n instrument,\n bookType,\n division,\n granularity,\n });\n\n const hideLoading = useDebounceCallback(\n () => setDebouncedLoading(false),\n 500\n );\n\n useEffect(() => {\n if (loading === false) {\n hideLoading();\n }\n if (loading === true) {\n setDebouncedLoading(true);\n }\n }, [loading, hideLoading]);\n\n return (\n <>\n <div className=\"lw-relative lw-h-[440px] lw-w-full lw-overflow-hidden\">\n {error && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )}\n {!priceCandlesLoading && !error && !!mainData && !!additionalData && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full\">\n <Chart\n additionalData={additionalData}\n isDesktop={isDesktop}\n isLoading={debouncedLoading}\n mainData={mainData}\n />\n </div>\n )}\n {loading && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary lw-bg-bg-transparent-50\">\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n </div>\n </>\n );\n};\n\nexport { ChartWithData };\n"],"mappings":"AAAA,SACEA,UAAU,EACVC,IAAI,EACJC,OAAO,EACPC,WAAW,EACXC,iBAAiB,QACZ,2BAA2B;AAClC,OAAOC,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SAASC,mBAAmB,QAAQ,aAAa;AAEjD,SAASC,KAAK,QAAQ,SAAS;AAE/B,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,MAAMC,aAAa,GAAGC,IAAA,IAKI;EAAA,IALH;IACrBC,UAAU;IACVC,QAAQ;IACRC,QAAQ;IACRC;EACkB,CAAC,GAAAJ,IAAA;EACnB,MAAM;IAAEK;EAAK,CAAC,GAAGb,iBAAiB,CAAC,CAAC;EACpC,MAAM,CAACc,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGZ,QAAQ,CAAC,IAAI,CAAC;EAC9D,MAAMa,SAAS,GAAGH,IAAI,KAAKhB,IAAI,CAACoB,OAAO;EAEvC,MAAM;IAAEC,QAAQ;IAAEC,cAAc;IAAEC,OAAO;IAAEC,mBAAmB;IAAEC;EAAM,CAAC,GACrEhB,gBAAgB,CAAC;IACfG,UAAU;IACVC,QAAQ;IACRC,QAAQ;IACRC;EACF,CAAC,CAAC;EAEJ,MAAMW,WAAW,GAAGnB,mBAAmB,CACrC,MAAMW,mBAAmB,CAAC,KAAK,CAAC,EAChC,GACF,CAAC;EAEDb,SAAS,CAAC,MAAM;IACd,IAAIkB,OAAO,KAAK,KAAK,EAAE;MACrBG,WAAW,CAAC,CAAC;IACf;IACA,IAAIH,OAAO,KAAK,IAAI,EAAE;MACpBL,mBAAmB,CAAC,IAAI,CAAC;IAC3B;EACF,CAAC,EAAE,CAACK,OAAO,EAAEG,WAAW,CAAC,CAAC;EAE1B,OACEtB,KAAA,CAAAuB,aAAA,CAAAvB,KAAA,CAAAwB,QAAA,QACExB,KAAA,CAAAuB,aAAA;IAAKE,SAAS,EAAC;EAAuD,GACnEJ,KAAK,IACJrB,KAAA,CAAAuB,aAAA;IAAKE,SAAS,EAAC;EAAiJ,GAC9JzB,KAAA,CAAAuB,aAAA,CAAC5B,UAAU,MAAE,CACV,CACN,EACA,CAACyB,mBAAmB,IAAI,CAACC,KAAK,IAAI,CAAC,CAACJ,QAAQ,IAAI,CAAC,CAACC,cAAc,IAC/DlB,KAAA,CAAAuB,aAAA;IAAKE,SAAS,EAAC;EAA4D,GACzEzB,KAAA,CAAAuB,aAAA,CAACnB,KAAK;IACJc,cAAc,EAAEA,cAAe;IAC/BH,SAAS,EAAEA,SAAU;IACrBW,SAAS,EAAEb,gBAAiB;IAC5BI,QAAQ,EAAEA;EAAS,CACpB,CACE,CACN,EACAE,OAAO,IACNnB,KAAA,CAAAuB,aAAA;IAAKE,SAAS,EAAC;EAAyK,GACtLzB,KAAA,CAAAuB,aAAA,CAAC1B,OAAO;IAACe,IAAI,EAAEd,WAAW,CAAC6B;EAAG,CAAE,CAC7B,CAEJ,CACL,CAAC;AAEP,CAAC;AAED,SAASrB,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"ChartWithData.js","names":["ChartError","Size","Spinner","SpinnerSize","useLayoutProvider","React","useEffect","useState","useDebounceCallback","CHART_CONFIG","Chart","useCrowdViewData","useResizeObserver","ChartWithData","_ref","instrument","bookType","division","granularity","size","debouncedLoading","setDebouncedLoading","containerRef","isResizing","debounceDelay","isDesktop","DESKTOP","mainData","additionalData","loading","priceCandlesLoading","error","hideLoading","showChart","showLoader","chartHeight","HEIGHT_DESKTOP","HEIGHT_MOBILE","createElement","Fragment","ref","className","style","height","isLoading","lg"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/ChartWithData.tsx"],"sourcesContent":["import {\n ChartError,\n Size,\n Spinner,\n SpinnerSize,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport React, { useEffect, useState } from 'react';\nimport { useDebounceCallback } from 'usehooks-ts';\n\nimport { CHART_CONFIG } from '../../constants';\nimport { Chart } from './Chart';\nimport type { ChartWithDataProps } from './types';\nimport { useCrowdViewData } from './useCrowdViewData';\nimport { useResizeObserver } from './useResizeObserver';\n\nconst ChartWithData = ({\n instrument,\n bookType,\n division,\n granularity,\n}: ChartWithDataProps) => {\n const { size } = useLayoutProvider();\n const [debouncedLoading, setDebouncedLoading] = useState(true);\n const [containerRef, isResizing] = useResizeObserver({ debounceDelay: 150 });\n const isDesktop = size === Size.DESKTOP;\n\n const { mainData, additionalData, loading, priceCandlesLoading, error } =\n useCrowdViewData({\n instrument,\n bookType,\n division,\n granularity,\n });\n\n const hideLoading = useDebounceCallback(\n () => setDebouncedLoading(false),\n 500\n );\n\n useEffect(() => {\n if (loading === false) {\n hideLoading();\n }\n if (loading === true) {\n setDebouncedLoading(true);\n }\n }, [loading, hideLoading]);\n\n const showChart =\n !priceCandlesLoading &&\n !error &&\n !!mainData &&\n !!additionalData &&\n !isResizing;\n const showLoader = loading || isResizing;\n\n const chartHeight = isDesktop\n ? CHART_CONFIG.HEIGHT_DESKTOP\n : CHART_CONFIG.HEIGHT_MOBILE;\n\n return (\n <>\n <div\n ref={containerRef}\n className=\"lw-relative lw-w-full lw-overflow-hidden\"\n style={{ height: chartHeight }}\n >\n {error && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )}\n {showChart && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full\">\n <Chart\n additionalData={additionalData}\n isDesktop={isDesktop}\n isLoading={debouncedLoading}\n mainData={mainData}\n />\n </div>\n )}\n {showLoader && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary lw-bg-bg-transparent-50\">\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n </div>\n </>\n );\n};\n\nexport { ChartWithData };\n"],"mappings":"AAAA,SACEA,UAAU,EACVC,IAAI,EACJC,OAAO,EACPC,WAAW,EACXC,iBAAiB,QACZ,2BAA2B;AAClC,OAAOC,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SAASC,mBAAmB,QAAQ,aAAa;AAEjD,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,KAAK,QAAQ,SAAS;AAE/B,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,iBAAiB,QAAQ,qBAAqB;AAEvD,MAAMC,aAAa,GAAGC,IAAA,IAKI;EAAA,IALH;IACrBC,UAAU;IACVC,QAAQ;IACRC,QAAQ;IACRC;EACkB,CAAC,GAAAJ,IAAA;EACnB,MAAM;IAAEK;EAAK,CAAC,GAAGf,iBAAiB,CAAC,CAAC;EACpC,MAAM,CAACgB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGd,QAAQ,CAAC,IAAI,CAAC;EAC9D,MAAM,CAACe,YAAY,EAAEC,UAAU,CAAC,GAAGX,iBAAiB,CAAC;IAAEY,aAAa,EAAE;EAAI,CAAC,CAAC;EAC5E,MAAMC,SAAS,GAAGN,IAAI,KAAKlB,IAAI,CAACyB,OAAO;EAEvC,MAAM;IAAEC,QAAQ;IAAEC,cAAc;IAAEC,OAAO;IAAEC,mBAAmB;IAAEC;EAAM,CAAC,GACrEpB,gBAAgB,CAAC;IACfI,UAAU;IACVC,QAAQ;IACRC,QAAQ;IACRC;EACF,CAAC,CAAC;EAEJ,MAAMc,WAAW,GAAGxB,mBAAmB,CACrC,MAAMa,mBAAmB,CAAC,KAAK,CAAC,EAChC,GACF,CAAC;EAEDf,SAAS,CAAC,MAAM;IACd,IAAIuB,OAAO,KAAK,KAAK,EAAE;MACrBG,WAAW,CAAC,CAAC;IACf;IACA,IAAIH,OAAO,KAAK,IAAI,EAAE;MACpBR,mBAAmB,CAAC,IAAI,CAAC;IAC3B;EACF,CAAC,EAAE,CAACQ,OAAO,EAAEG,WAAW,CAAC,CAAC;EAE1B,MAAMC,SAAS,GACb,CAACH,mBAAmB,IACpB,CAACC,KAAK,IACN,CAAC,CAACJ,QAAQ,IACV,CAAC,CAACC,cAAc,IAChB,CAACL,UAAU;EACb,MAAMW,UAAU,GAAGL,OAAO,IAAIN,UAAU;EAExC,MAAMY,WAAW,GAAGV,SAAS,GACzBhB,YAAY,CAAC2B,cAAc,GAC3B3B,YAAY,CAAC4B,aAAa;EAE9B,OACEhC,KAAA,CAAAiC,aAAA,CAAAjC,KAAA,CAAAkC,QAAA,QACElC,KAAA,CAAAiC,aAAA;IACEE,GAAG,EAAElB,YAAa;IAClBmB,SAAS,EAAC,0CAA0C;IACpDC,KAAK,EAAE;MAAEC,MAAM,EAAER;IAAY;EAAE,GAE9BJ,KAAK,IACJ1B,KAAA,CAAAiC,aAAA;IAAKG,SAAS,EAAC;EAAiJ,GAC9JpC,KAAA,CAAAiC,aAAA,CAACtC,UAAU,MAAE,CACV,CACN,EACAiC,SAAS,IACR5B,KAAA,CAAAiC,aAAA;IAAKG,SAAS,EAAC;EAA4D,GACzEpC,KAAA,CAAAiC,aAAA,CAAC5B,KAAK;IACJkB,cAAc,EAAEA,cAAe;IAC/BH,SAAS,EAAEA,SAAU;IACrBmB,SAAS,EAAExB,gBAAiB;IAC5BO,QAAQ,EAAEA;EAAS,CACpB,CACE,CACN,EACAO,UAAU,IACT7B,KAAA,CAAAiC,aAAA;IAAKG,SAAS,EAAC;EAAyK,GACtLpC,KAAA,CAAAiC,aAAA,CAACpC,OAAO;IAACiB,IAAI,EAAEhB,WAAW,CAAC0C;EAAG,CAAE,CAC7B,CAEJ,CACL,CAAC;AAEP,CAAC;AAED,SAAShC,aAAa","ignoreList":[]}
@@ -1,23 +1,38 @@
1
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
1
6
  import { CHART_CONFIG } from '../../../constants';
2
7
  export const getGridConfig = _ref => {
3
8
  let {
4
9
  isDesktop
5
10
  } = _ref;
6
- return [{
11
+ const {
12
+ Y_SENTIMENT_LABEL_DESKTOP_SIZE,
13
+ Y_SENTIMENT_LABEL_MOBILE_SIZE,
14
+ Y_LABEL_SIZE_DESKTOP,
15
+ Y_LABEL_SIZE_MOBILE,
16
+ TOP_LABEL_SPACE_DESKTOP,
17
+ TOP_LABEL_SPACE_MOBILE,
18
+ MAIN_HEIGHT_DESKTOP,
19
+ MAIN_HEIGHT_MOBILE,
20
+ TOOLTIP_HEIGHT_MOBILE,
21
+ TOOLTIP_HEIGHT_DESKTOP
22
+ } = CHART_CONFIG;
23
+ const mainHeight = isDesktop ? MAIN_HEIGHT_DESKTOP : MAIN_HEIGHT_MOBILE;
24
+ const position = {
25
+ left: "".concat(isDesktop ? Y_SENTIMENT_LABEL_DESKTOP_SIZE : Y_SENTIMENT_LABEL_MOBILE_SIZE, "px"),
26
+ right: "".concat(isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE, "px"),
27
+ top: "".concat(isDesktop ? TOP_LABEL_SPACE_DESKTOP + TOOLTIP_HEIGHT_DESKTOP : TOP_LABEL_SPACE_MOBILE + TOOLTIP_HEIGHT_MOBILE, "px"),
28
+ height: "".concat(mainHeight, "px")
29
+ };
30
+ return [_objectSpread({
7
31
  id: 'main-grid',
8
- name: 'main-grid',
9
- left: "".concat(isDesktop ? CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE : CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE, "px"),
10
- right: "".concat(isDesktop ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : CHART_CONFIG.Y_LABEL_SIZE_MOBILE, "px"),
11
- top: "".concat(isDesktop ? CHART_CONFIG.TOP_MARGIN_DESKTOP : CHART_CONFIG.TOP_MARGIN_MOBILE, "px"),
12
- bottom: "".concat(CHART_CONFIG.X_LABEL_SIZE, "px"),
13
- height: "".concat(isDesktop ? CHART_CONFIG.MAIN_HEIGHT - CHART_CONFIG.TOP_MARGIN_DESKTOP : CHART_CONFIG.MAIN_HEIGHT - CHART_CONFIG.TOP_MARGIN_MOBILE, "px")
14
- }, {
32
+ name: 'main-grid'
33
+ }, position), _objectSpread({
15
34
  id: 'sentiment-grid',
16
- name: 'sentiment-grid',
17
- left: "".concat(isDesktop ? CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE : CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE, "px"),
18
- right: "".concat(isDesktop ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : CHART_CONFIG.Y_LABEL_SIZE_MOBILE, "px"),
19
- top: "".concat(isDesktop ? CHART_CONFIG.TOP_MARGIN_DESKTOP : CHART_CONFIG.TOP_MARGIN_MOBILE, "px"),
20
- height: "".concat(isDesktop ? CHART_CONFIG.MAIN_HEIGHT - CHART_CONFIG.TOP_MARGIN_DESKTOP : CHART_CONFIG.MAIN_HEIGHT - CHART_CONFIG.TOP_MARGIN_MOBILE, "px")
21
- }];
35
+ name: 'sentiment-grid'
36
+ }, position)];
22
37
  };
23
38
  //# sourceMappingURL=getGridConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getGridConfig.js","names":["CHART_CONFIG","getGridConfig","_ref","isDesktop","id","name","left","concat","Y_SENTIMENT_LABEL_DESKTOP_SIZE","Y_SENTIMENT_LABEL_MOBILE_SIZE","right","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","top","TOP_MARGIN_DESKTOP","TOP_MARGIN_MOBILE","bottom","X_LABEL_SIZE","height","MAIN_HEIGHT"],"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 {\n id: 'main-grid',\n name: 'main-grid',\n left: `${isDesktop ? CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE : CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE}px`,\n right: `${isDesktop ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : CHART_CONFIG.Y_LABEL_SIZE_MOBILE}px`,\n top: `${isDesktop ? CHART_CONFIG.TOP_MARGIN_DESKTOP : CHART_CONFIG.TOP_MARGIN_MOBILE}px`,\n bottom: `${CHART_CONFIG.X_LABEL_SIZE}px`,\n height: `${isDesktop ? CHART_CONFIG.MAIN_HEIGHT - CHART_CONFIG.TOP_MARGIN_DESKTOP : CHART_CONFIG.MAIN_HEIGHT - CHART_CONFIG.TOP_MARGIN_MOBILE}px`,\n },\n {\n id: 'sentiment-grid',\n name: 'sentiment-grid',\n left: `${isDesktop ? CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE : CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE}px`,\n right: `${isDesktop ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : CHART_CONFIG.Y_LABEL_SIZE_MOBILE}px`,\n top: `${isDesktop ? CHART_CONFIG.TOP_MARGIN_DESKTOP : CHART_CONFIG.TOP_MARGIN_MOBILE}px`,\n height: `${isDesktop ? CHART_CONFIG.MAIN_HEIGHT - CHART_CONFIG.TOP_MARGIN_DESKTOP : CHART_CONFIG.MAIN_HEIGHT - CHART_CONFIG.TOP_MARGIN_MOBILE}px`,\n },\n];\n"],"mappings":"AAEA,SAASA,YAAY,QAAQ,oBAAoB;AAMjD,OAAO,MAAMC,aAAa,GAAGC,IAAA;EAAA,IAAC;IAC5BC;EACmB,CAAC,GAAAD,IAAA;EAAA,OAA4B,CAChD;IACEE,EAAE,EAAE,WAAW;IACfC,IAAI,EAAE,WAAW;IACjBC,IAAI,KAAAC,MAAA,CAAKJ,SAAS,GAAGH,YAAY,CAACQ,8BAA8B,GAAGR,YAAY,CAACS,6BAA6B,OAAI;IACjHC,KAAK,KAAAH,MAAA,CAAKJ,SAAS,GAAGH,YAAY,CAACW,oBAAoB,GAAGX,YAAY,CAACY,mBAAmB,OAAI;IAC9FC,GAAG,KAAAN,MAAA,CAAKJ,SAAS,GAAGH,YAAY,CAACc,kBAAkB,GAAGd,YAAY,CAACe,iBAAiB,OAAI;IACxFC,MAAM,KAAAT,MAAA,CAAKP,YAAY,CAACiB,YAAY,OAAI;IACxCC,MAAM,KAAAX,MAAA,CAAKJ,SAAS,GAAGH,YAAY,CAACmB,WAAW,GAAGnB,YAAY,CAACc,kBAAkB,GAAGd,YAAY,CAACmB,WAAW,GAAGnB,YAAY,CAACe,iBAAiB;EAC/I,CAAC,EACD;IACEX,EAAE,EAAE,gBAAgB;IACpBC,IAAI,EAAE,gBAAgB;IACtBC,IAAI,KAAAC,MAAA,CAAKJ,SAAS,GAAGH,YAAY,CAACQ,8BAA8B,GAAGR,YAAY,CAACS,6BAA6B,OAAI;IACjHC,KAAK,KAAAH,MAAA,CAAKJ,SAAS,GAAGH,YAAY,CAACW,oBAAoB,GAAGX,YAAY,CAACY,mBAAmB,OAAI;IAC9FC,GAAG,KAAAN,MAAA,CAAKJ,SAAS,GAAGH,YAAY,CAACc,kBAAkB,GAAGd,YAAY,CAACe,iBAAiB,OAAI;IACxFG,MAAM,KAAAX,MAAA,CAAKJ,SAAS,GAAGH,YAAY,CAACmB,WAAW,GAAGnB,YAAY,CAACc,kBAAkB,GAAGd,YAAY,CAACmB,WAAW,GAAGnB,YAAY,CAACe,iBAAiB;EAC/I,CAAC,CACF;AAAA","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":[]}