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

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 (289) hide show
  1. package/CHANGELOG.md +444 -0
  2. package/dist/main/CrowdViewWidget/Main.js +4 -2
  3. package/dist/main/CrowdViewWidget/Main.js.map +1 -1
  4. package/dist/main/CrowdViewWidget/components/Chart/Chart.js +41 -83
  5. package/dist/main/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  6. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js +23 -17
  7. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  8. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.js +24 -0
  9. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.js.map +1 -0
  10. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js +30 -0
  11. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js.map +1 -0
  12. package/dist/main/CrowdViewWidget/components/Chart/{utils → chartOptions}/getGridLines.js +30 -49
  13. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js.map +1 -0
  14. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js +159 -0
  15. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js.map +1 -0
  16. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js +47 -0
  17. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js.map +1 -0
  18. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.js +83 -0
  19. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.js.map +1 -0
  20. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.js +68 -0
  21. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.js.map +1 -0
  22. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js +60 -0
  23. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js.map +1 -0
  24. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.js +31 -0
  25. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.js.map +1 -0
  26. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js +57 -0
  27. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js.map +1 -0
  28. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js +66 -0
  29. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js.map +1 -0
  30. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/index.js +127 -0
  31. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/index.js.map +1 -0
  32. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js +18 -0
  33. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js.map +1 -0
  34. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js +18 -0
  35. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js.map +1 -0
  36. package/dist/main/CrowdViewWidget/components/Chart/{utils → chartUtils}/getChartStyles.js +4 -4
  37. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getChartStyles.js.map +1 -0
  38. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.js +14 -0
  39. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.js.map +1 -0
  40. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getLabelData.js +23 -0
  41. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getLabelData.js.map +1 -0
  42. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getRectColor.js +14 -0
  43. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getRectColor.js.map +1 -0
  44. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js +120 -0
  45. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js.map +1 -0
  46. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js +59 -0
  47. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js.map +1 -0
  48. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/handleTooltipUpdate.js +34 -0
  49. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/handleTooltipUpdate.js.map +1 -0
  50. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/index.js +116 -0
  51. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/index.js.map +1 -0
  52. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.js +15 -0
  53. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.js.map +1 -0
  54. package/dist/main/CrowdViewWidget/{utils/instrumentUtils.js → components/Chart/dataUtils/getInstrumentConfigForDivision.js} +3 -3
  55. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfigForDivision.js.map +1 -0
  56. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getMultiplayerForTimeSpan.js +19 -0
  57. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getMultiplayerForTimeSpan.js.map +1 -0
  58. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.js +18 -0
  59. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.js.map +1 -0
  60. package/dist/main/CrowdViewWidget/components/Chart/{utils → dataUtils}/index.js +19 -8
  61. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/index.js.map +1 -0
  62. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processOrderPositionBooks.js.map +1 -0
  63. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js.map +1 -0
  64. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processSentiments.js.map +1 -0
  65. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/validateData.js.map +1 -0
  66. package/dist/main/CrowdViewWidget/components/Chart/getOption.js +115 -0
  67. package/dist/main/CrowdViewWidget/components/Chart/getOption.js.map +1 -0
  68. package/dist/main/CrowdViewWidget/components/Chart/index.js +11 -11
  69. package/dist/main/CrowdViewWidget/components/Chart/index.js.map +1 -1
  70. package/dist/main/CrowdViewWidget/components/Chart/types.js.map +1 -1
  71. package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js +15 -12
  72. package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -1
  73. package/dist/main/CrowdViewWidget/components/Legend/Legend.js +15 -12
  74. package/dist/main/CrowdViewWidget/components/Legend/Legend.js.map +1 -1
  75. package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js +15 -16
  76. package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
  77. package/dist/main/CrowdViewWidget/constants.js +20 -14
  78. package/dist/main/CrowdViewWidget/constants.js.map +1 -1
  79. package/dist/main/CrowdViewWidget/selectConfig.js +0 -6
  80. package/dist/main/CrowdViewWidget/selectConfig.js.map +1 -1
  81. package/dist/main/translations/sources/en.json +3 -1
  82. package/dist/module/CrowdViewWidget/Main.js +4 -2
  83. package/dist/module/CrowdViewWidget/Main.js.map +1 -1
  84. package/dist/module/CrowdViewWidget/components/Chart/Chart.js +43 -84
  85. package/dist/module/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  86. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js +22 -16
  87. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  88. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.js +17 -0
  89. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.js.map +1 -0
  90. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js +23 -0
  91. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js.map +1 -0
  92. package/dist/module/CrowdViewWidget/components/Chart/{utils → chartOptions}/getGridLines.js +30 -49
  93. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js.map +1 -0
  94. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js +151 -0
  95. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js.map +1 -0
  96. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js +39 -0
  97. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js.map +1 -0
  98. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.js +76 -0
  99. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.js.map +1 -0
  100. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.js +61 -0
  101. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.js.map +1 -0
  102. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js +53 -0
  103. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js.map +1 -0
  104. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.js +24 -0
  105. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.js.map +1 -0
  106. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js +50 -0
  107. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js.map +1 -0
  108. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js +59 -0
  109. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js.map +1 -0
  110. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/index.js +12 -0
  111. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/index.js.map +1 -0
  112. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js +11 -0
  113. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js.map +1 -0
  114. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js +11 -0
  115. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js.map +1 -0
  116. package/dist/module/CrowdViewWidget/components/Chart/{utils → chartUtils}/getChartStyles.js +4 -4
  117. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getChartStyles.js.map +1 -0
  118. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.js +6 -0
  119. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.js.map +1 -0
  120. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getLabelData.js +16 -0
  121. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getLabelData.js.map +1 -0
  122. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getRectColor.js +7 -0
  123. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getRectColor.js.map +1 -0
  124. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js +113 -0
  125. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js.map +1 -0
  126. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js +52 -0
  127. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js.map +1 -0
  128. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleTooltipUpdate.js +27 -0
  129. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleTooltipUpdate.js.map +1 -0
  130. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js +11 -0
  131. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js.map +1 -0
  132. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.js +8 -0
  133. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.js.map +1 -0
  134. package/dist/module/CrowdViewWidget/{utils/instrumentUtils.js → components/Chart/dataUtils/getInstrumentConfigForDivision.js} +3 -3
  135. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfigForDivision.js.map +1 -0
  136. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getMultiplayerForTimeSpan.js +12 -0
  137. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getMultiplayerForTimeSpan.js.map +1 -0
  138. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.js +11 -0
  139. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.js.map +1 -0
  140. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/index.js +8 -0
  141. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/index.js.map +1 -0
  142. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processOrderPositionBooks.js.map +1 -0
  143. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js.map +1 -0
  144. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processSentiments.js.map +1 -0
  145. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/validateData.js.map +1 -0
  146. package/dist/module/CrowdViewWidget/components/Chart/getOption.js +108 -0
  147. package/dist/module/CrowdViewWidget/components/Chart/getOption.js.map +1 -0
  148. package/dist/module/CrowdViewWidget/components/Chart/index.js +1 -1
  149. package/dist/module/CrowdViewWidget/components/Chart/index.js.map +1 -1
  150. package/dist/module/CrowdViewWidget/components/Chart/types.js.map +1 -1
  151. package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js +8 -5
  152. package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -1
  153. package/dist/module/CrowdViewWidget/components/Legend/Legend.js +15 -12
  154. package/dist/module/CrowdViewWidget/components/Legend/Legend.js.map +1 -1
  155. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js +15 -16
  156. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
  157. package/dist/module/CrowdViewWidget/constants.js +18 -13
  158. package/dist/module/CrowdViewWidget/constants.js.map +1 -1
  159. package/dist/module/CrowdViewWidget/selectConfig.js +0 -6
  160. package/dist/module/CrowdViewWidget/selectConfig.js.map +1 -1
  161. package/dist/module/translations/sources/en.json +3 -1
  162. package/dist/types/CrowdViewWidget/components/Chart/Chart.d.ts +1 -1
  163. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.d.ts +6 -0
  164. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.d.ts +6 -0
  165. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getGridLines.d.ts +7 -0
  166. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.d.ts +8 -0
  167. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.d.ts +8 -0
  168. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.d.ts +12 -0
  169. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.d.ts +8 -0
  170. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.d.ts +18 -0
  171. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.d.ts +7 -0
  172. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.d.ts +7 -0
  173. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.d.ts +7 -0
  174. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/index.d.ts +11 -0
  175. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.d.ts +1 -0
  176. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.d.ts +1 -0
  177. package/dist/types/CrowdViewWidget/components/Chart/{utils → chartUtils}/getChartStyles.d.ts +2 -2
  178. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.d.ts +1 -0
  179. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/getLabelData.d.ts +2 -0
  180. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/getRectColor.d.ts +1 -0
  181. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.d.ts +12 -0
  182. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.d.ts +4 -0
  183. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/handleTooltipUpdate.d.ts +3 -0
  184. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/index.d.ts +10 -0
  185. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.d.ts +1 -0
  186. package/dist/types/CrowdViewWidget/{utils/instrumentUtils.d.ts → components/Chart/dataUtils/getInstrumentConfigForDivision.d.ts} +2 -2
  187. package/dist/types/CrowdViewWidget/components/Chart/dataUtils/getMultiplayerForTimeSpan.d.ts +2 -0
  188. package/dist/types/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.d.ts +2 -0
  189. package/dist/types/CrowdViewWidget/components/Chart/{utils → dataUtils}/index.d.ts +3 -2
  190. package/dist/types/CrowdViewWidget/components/Chart/index.d.ts +1 -1
  191. package/dist/types/CrowdViewWidget/components/Chart/types.d.ts +5 -0
  192. package/dist/types/CrowdViewWidget/components/Legend/Legend.d.ts +1 -4
  193. package/dist/types/CrowdViewWidget/components/Legend/LegendBar.d.ts +1 -3
  194. package/dist/types/CrowdViewWidget/constants.d.ts +13 -9
  195. package/package.json +3 -3
  196. package/src/CrowdViewWidget/Main.tsx +3 -2
  197. package/src/CrowdViewWidget/components/Chart/Chart.tsx +76 -109
  198. package/src/CrowdViewWidget/components/Chart/ChartWithData.tsx +33 -28
  199. package/src/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.ts +22 -0
  200. package/src/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.ts +29 -0
  201. package/src/CrowdViewWidget/components/Chart/chartOptions/getGridLines.ts +126 -0
  202. package/src/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.ts +191 -0
  203. package/src/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.ts +44 -0
  204. package/src/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.ts +103 -0
  205. package/src/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.ts +72 -0
  206. package/src/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.ts +74 -0
  207. package/src/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.ts +32 -0
  208. package/src/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.ts +68 -0
  209. package/src/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.ts +60 -0
  210. package/src/CrowdViewWidget/components/Chart/chartOptions/index.ts +11 -0
  211. package/src/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.ts +13 -0
  212. package/src/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.ts +16 -0
  213. package/src/CrowdViewWidget/components/Chart/{utils → chartUtils}/getChartStyles.ts +9 -6
  214. package/src/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.ts +16 -0
  215. package/src/CrowdViewWidget/components/Chart/chartUtils/getLabelData.ts +18 -0
  216. package/src/CrowdViewWidget/components/Chart/chartUtils/getRectColor.ts +27 -0
  217. package/src/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.ts +212 -0
  218. package/src/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.ts +75 -0
  219. package/src/CrowdViewWidget/components/Chart/chartUtils/handleTooltipUpdate.ts +37 -0
  220. package/src/CrowdViewWidget/components/Chart/chartUtils/index.ts +10 -0
  221. package/src/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.ts +13 -0
  222. package/src/CrowdViewWidget/{utils/instrumentUtils.ts → components/Chart/dataUtils/getInstrumentConfigForDivision.ts} +2 -2
  223. package/src/CrowdViewWidget/components/Chart/dataUtils/getMultiplayerForTimeSpan.ts +13 -0
  224. package/src/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.ts +14 -0
  225. package/src/CrowdViewWidget/components/Chart/{utils → dataUtils}/index.ts +3 -2
  226. package/src/CrowdViewWidget/components/Chart/getOption.ts +138 -0
  227. package/src/CrowdViewWidget/components/Chart/index.ts +1 -1
  228. package/src/CrowdViewWidget/components/Chart/types.ts +5 -0
  229. package/src/CrowdViewWidget/components/Chart/useCrowdViewData.ts +14 -7
  230. package/src/CrowdViewWidget/components/Legend/Legend.tsx +24 -22
  231. package/src/CrowdViewWidget/components/Legend/LegendBar.tsx +29 -26
  232. package/src/CrowdViewWidget/constants.ts +30 -19
  233. package/src/CrowdViewWidget/selectConfig.ts +0 -8
  234. package/src/translations/sources/en.json +3 -1
  235. package/test/components/Chart/utils/chartUtils.test.ts +20 -9
  236. package/test/components/Chart/utils/getChartStyles.test.ts +10 -10
  237. package/test/components/Chart/utils/handleLabelUpdate.test.ts +419 -0
  238. package/test/components/Chart/utils/handleTooltipUpdate.test.ts +140 -0
  239. package/test/components/Chart/utils/processSentiments.test.ts +1 -1
  240. package/test/components/Legend.test.tsx +15 -23
  241. package/test/components/LegendBar.test.tsx +45 -63
  242. package/test/utils/instrumentUtils.test.ts +1 -1
  243. package/dist/main/CrowdViewWidget/components/Chart/chartOptions.js +0 -399
  244. package/dist/main/CrowdViewWidget/components/Chart/chartOptions.js.map +0 -1
  245. package/dist/main/CrowdViewWidget/components/Chart/utils/chartUtils.js +0 -126
  246. package/dist/main/CrowdViewWidget/components/Chart/utils/chartUtils.js.map +0 -1
  247. package/dist/main/CrowdViewWidget/components/Chart/utils/getChartStyles.js.map +0 -1
  248. package/dist/main/CrowdViewWidget/components/Chart/utils/getGridLines.js.map +0 -1
  249. package/dist/main/CrowdViewWidget/components/Chart/utils/index.js.map +0 -1
  250. package/dist/main/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js.map +0 -1
  251. package/dist/main/CrowdViewWidget/components/Chart/utils/processPriceCandles.js.map +0 -1
  252. package/dist/main/CrowdViewWidget/components/Chart/utils/processSentiments.js.map +0 -1
  253. package/dist/main/CrowdViewWidget/components/Chart/utils/validateData.js.map +0 -1
  254. package/dist/main/CrowdViewWidget/utils/instrumentUtils.js.map +0 -1
  255. package/dist/module/CrowdViewWidget/components/Chart/chartOptions.js +0 -391
  256. package/dist/module/CrowdViewWidget/components/Chart/chartOptions.js.map +0 -1
  257. package/dist/module/CrowdViewWidget/components/Chart/utils/chartUtils.js +0 -113
  258. package/dist/module/CrowdViewWidget/components/Chart/utils/chartUtils.js.map +0 -1
  259. package/dist/module/CrowdViewWidget/components/Chart/utils/getChartStyles.js.map +0 -1
  260. package/dist/module/CrowdViewWidget/components/Chart/utils/getGridLines.js.map +0 -1
  261. package/dist/module/CrowdViewWidget/components/Chart/utils/index.js +0 -7
  262. package/dist/module/CrowdViewWidget/components/Chart/utils/index.js.map +0 -1
  263. package/dist/module/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js.map +0 -1
  264. package/dist/module/CrowdViewWidget/components/Chart/utils/processPriceCandles.js.map +0 -1
  265. package/dist/module/CrowdViewWidget/components/Chart/utils/processSentiments.js.map +0 -1
  266. package/dist/module/CrowdViewWidget/components/Chart/utils/validateData.js.map +0 -1
  267. package/dist/module/CrowdViewWidget/utils/instrumentUtils.js.map +0 -1
  268. package/dist/types/CrowdViewWidget/components/Chart/utils/chartUtils.d.ts +0 -30
  269. package/dist/types/CrowdViewWidget/components/Chart/utils/getGridLines.d.ts +0 -97
  270. package/src/CrowdViewWidget/components/Chart/chartOptions.ts +0 -449
  271. package/src/CrowdViewWidget/components/Chart/utils/chartUtils.ts +0 -228
  272. package/src/CrowdViewWidget/components/Chart/utils/getGridLines.ts +0 -148
  273. /package/dist/main/CrowdViewWidget/components/Chart/{utils → dataUtils}/processOrderPositionBooks.js +0 -0
  274. /package/dist/main/CrowdViewWidget/components/Chart/{utils → dataUtils}/processPriceCandles.js +0 -0
  275. /package/dist/main/CrowdViewWidget/components/Chart/{utils → dataUtils}/processSentiments.js +0 -0
  276. /package/dist/main/CrowdViewWidget/components/Chart/{utils → dataUtils}/validateData.js +0 -0
  277. /package/dist/module/CrowdViewWidget/components/Chart/{utils → dataUtils}/processOrderPositionBooks.js +0 -0
  278. /package/dist/module/CrowdViewWidget/components/Chart/{utils → dataUtils}/processPriceCandles.js +0 -0
  279. /package/dist/module/CrowdViewWidget/components/Chart/{utils → dataUtils}/processSentiments.js +0 -0
  280. /package/dist/module/CrowdViewWidget/components/Chart/{utils → dataUtils}/validateData.js +0 -0
  281. /package/dist/types/CrowdViewWidget/components/Chart/{utils → dataUtils}/processOrderPositionBooks.d.ts +0 -0
  282. /package/dist/types/CrowdViewWidget/components/Chart/{utils → dataUtils}/processPriceCandles.d.ts +0 -0
  283. /package/dist/types/CrowdViewWidget/components/Chart/{utils → dataUtils}/processSentiments.d.ts +0 -0
  284. /package/dist/types/CrowdViewWidget/components/Chart/{utils → dataUtils}/validateData.d.ts +0 -0
  285. /package/dist/types/CrowdViewWidget/components/Chart/{chartOptions.d.ts → getOption.d.ts} +0 -0
  286. /package/src/CrowdViewWidget/components/Chart/{utils → dataUtils}/processOrderPositionBooks.ts +0 -0
  287. /package/src/CrowdViewWidget/components/Chart/{utils → dataUtils}/processPriceCandles.ts +0 -0
  288. /package/src/CrowdViewWidget/components/Chart/{utils → dataUtils}/processSentiments.ts +0 -0
  289. /package/src/CrowdViewWidget/components/Chart/{utils → dataUtils}/validateData.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.js","names":["_labsWidgetCommon","require","_monoI18n","_charts","_components","echarts","_interopRequireWildcard","_renderers","_react","_interopRequireDefault","_constants","_chartOptions","_chartUtils","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","use","GridSimpleComponent","GraphicComponent","CanvasRenderer","DataZoomInsideComponent","CustomChart","TooltipComponent","CandlestickChart","MarkPointComponent","MarkAreaComponent","LineChart","VisualMapComponent","DatasetComponent","registerTheme","getChartTheme","Theme","Dark","Light","Chart","_ref","mainData","additionalData","isDesktop","isDark","useLayoutProvider","lang","useLocale","createElement","BaseChart","chartHeight","CHART_CONFIG_CALCULATED","FULL_HEIGHT","lazyUpdate","option","getOption","labelCallback","opts","renderer","onEvents","datazoom","params","instance","_params$batch","_","batch","dates","batchItem","start","end","dataZoom","xAxis","Array","isArray","length","startValue","endValue","dataZoomId","dispatchAction","type","filterMode","isGreaterThanTwoWeeks","isDifferenceGreaterThanTwoWeeks","wasGreaterThanTwoWeeks","name","labelsData","getLabelData","setOption","id","axisLabel","formatter","value","formatXAxisLabel","series","markPoint","data","exports"],"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 MarkAreaComponent,\n MarkPointComponent,\n TooltipComponent,\n VisualMapComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport React from 'react';\n\nimport { CHART_CONFIG_CALCULATED } from '../../constants';\nimport { getOption } from './chartOptions';\nimport type {\n ChartProps,\n DataZoomArray,\n DataZoomEvent,\n XAxisArray,\n} from './types';\nimport {\n formatXAxisLabel,\n getLabelData,\n isDifferenceGreaterThanTwoWeeks,\n} from './utils/chartUtils';\n\necharts.use([\n GridSimpleComponent,\n GraphicComponent,\n CanvasRenderer,\n DataZoomInsideComponent,\n CustomChart,\n TooltipComponent,\n CandlestickChart,\n MarkPointComponent,\n MarkAreaComponent,\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 = ({ mainData, additionalData, isDesktop }: ChartProps) => {\n const { isDark } = useLayoutProvider();\n const { lang } = useLocale();\n\n return (\n <BaseChart\n chartHeight={CHART_CONFIG_CALCULATED.FULL_HEIGHT}\n echarts={echarts}\n isDark={isDark}\n lazyUpdate={true}\n option={getOption({\n mainData,\n additionalData,\n isDark,\n isDesktop,\n labelCallback: lang,\n })}\n opts={{ renderer: 'canvas' }}\n onEvents={{\n datazoom: (params: DataZoomEvent, instance: EChartsType) => {\n if (!params.batch?.[0]) {\n return;\n }\n\n const { dates } = mainData;\n const batchItem = params.batch[0];\n const { start, end } = batchItem;\n\n const { dataZoom, xAxis } = instance.getOption();\n if (\n !Array.isArray(dataZoom) ||\n dataZoom.length === 0 ||\n !dataZoom[0] ||\n typeof dataZoom[0].startValue !== 'number' ||\n typeof dataZoom[0].endValue !== 'number'\n ) {\n return;\n }\n\n const { startValue, endValue } = dataZoom[0] as DataZoomArray[0];\n\n if (batchItem.dataZoomId === 'main') {\n instance.dispatchAction({\n type: 'dataZoom',\n dataZoomId: 'sentiment',\n start,\n end,\n filterMode: 'none',\n });\n }\n\n if (batchItem.dataZoomId === 'sentiment') {\n instance.dispatchAction({\n type: 'dataZoom',\n dataZoomId: 'main',\n start,\n end,\n filterMode: 'filter',\n });\n }\n\n if (!dates[startValue] || !dates[endValue]) {\n return;\n }\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n dates[startValue],\n dates[endValue]\n );\n\n const wasGreaterThanTwoWeeks =\n Array.isArray(xAxis) &&\n xAxis.length > 0 &&\n (xAxis as XAxisArray)[0]?.name === 'xAxis-greater-than-two-weeks';\n\n if (isGreaterThanTwoWeeks !== wasGreaterThanTwoWeeks) {\n const labelsData = getLabelData({\n dates,\n isGreaterThanTwoWeeks,\n });\n\n instance.setOption({\n xAxis: {\n id: 'main-xAxis',\n name: isGreaterThanTwoWeeks\n ? 'xAxis-greater-than-two-weeks'\n : 'xAxis-less-than-two-weeks',\n axisLabel: {\n formatter: (value: string) =>\n formatXAxisLabel(value, isGreaterThanTwoWeeks),\n },\n },\n series: [\n {\n id: 'candlestick',\n markPoint: {\n data: labelsData,\n },\n },\n ],\n });\n }\n },\n }}\n />\n );\n};\n\nexport { Chart };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Chart.js","names":["_labsWidgetCommon","require","_monoI18n","_charts","_components","echarts","_interopRequireWildcard","_renderers","_react","_usehooksTs","_constants","_chartUtils","_getOption","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","use","GridSimpleComponent","GraphicComponent","CanvasRenderer","DataZoomInsideComponent","CustomChart","TooltipComponent","CandlestickChart","MarkLineComponent","LineChart","VisualMapComponent","DatasetComponent","registerTheme","getChartTheme","Theme","Dark","Light","Chart","_ref","mainData","additionalData","isDesktop","isLoading","isDark","useLayoutProvider","lang","useLocale","canHover","useMediaQuery","labelTimerRef","useRef","isGreaterThanTwoWeeksRef","zoomTimerRef","tooltipVisibleRef","initialIsGreaterThanTwoWeeks","useMemo","dates","initialStartZoom","CHART_CONFIG","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","visibleXAxisData","slice","length","INITIAL_END_ZOOM","isDifferenceGreaterThanTwoWeeks","useEffect","current","chartOption","getOption","labelCallback","handleDataZoom","useCallback","_params","instance","handleTooltipUpdate","handleLabelUpdate","createElement","BaseChart","chartHeight","HEIGHT","lazyUpdate","option","opts","renderer","onEvents","datazoom","exports"],"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":[]}
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.ChartWithData = void 0;
7
7
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
- var _react = _interopRequireDefault(require("react"));
9
- var _Legend = require("../Legend");
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _usehooksTs = require("usehooks-ts");
10
10
  var _Chart = require("./Chart");
11
11
  var _useCrowdViewData = require("./useCrowdViewData");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
13
  const ChartWithData = _ref => {
14
14
  let {
15
15
  instrument,
@@ -18,14 +18,15 @@ const ChartWithData = _ref => {
18
18
  granularity
19
19
  } = _ref;
20
20
  const {
21
- size,
22
- isDark
21
+ size
23
22
  } = (0, _labsWidgetCommon.useLayoutProvider)();
23
+ const [debouncedLoading, setDebouncedLoading] = (0, _react.useState)(true);
24
24
  const isDesktop = size === _labsWidgetCommon.Size.DESKTOP;
25
25
  const {
26
26
  mainData,
27
27
  additionalData,
28
28
  loading,
29
+ priceCandlesLoading,
29
30
  error
30
31
  } = (0, _useCrowdViewData.useCrowdViewData)({
31
32
  instrument,
@@ -33,26 +34,31 @@ const ChartWithData = _ref => {
33
34
  division,
34
35
  granularity
35
36
  });
37
+ const hideLoading = (0, _usehooksTs.useDebounceCallback)(() => setDebouncedLoading(false), 500);
38
+ (0, _react.useEffect)(() => {
39
+ if (loading === false) {
40
+ hideLoading();
41
+ }
42
+ if (loading === true) {
43
+ setDebouncedLoading(true);
44
+ }
45
+ }, [loading, hideLoading]);
36
46
  return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement("div", {
37
- className: "lw-relative lw-h-[610px] lw-w-full"
47
+ className: "lw-relative lw-h-[440px] lw-w-full lw-overflow-hidden"
38
48
  }, error && _react.default.createElement("div", {
39
49
  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"
40
- }, _react.default.createElement(_labsWidgetCommon.ChartError, null)), loading && _react.default.createElement("div", {
41
- 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"
42
- }, _react.default.createElement(_labsWidgetCommon.Spinner, {
43
- size: _labsWidgetCommon.SpinnerSize.lg
44
- })), !loading && !error && !!mainData && !!additionalData && _react.default.createElement("div", {
50
+ }, _react.default.createElement(_labsWidgetCommon.ChartError, null)), !priceCandlesLoading && !error && !!mainData && !!additionalData && _react.default.createElement("div", {
45
51
  className: "lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full"
46
52
  }, _react.default.createElement(_Chart.Chart, {
47
53
  additionalData: additionalData,
48
54
  isDesktop: isDesktop,
55
+ isLoading: debouncedLoading,
49
56
  mainData: mainData
50
- }))), _react.default.createElement(_Legend.Legend, {
51
- bookType: bookType,
52
- isDark: isDark,
53
- longValues: [additionalData === null || additionalData === void 0 ? void 0 : additionalData.sentimentThresholdMin, additionalData === null || additionalData === void 0 ? void 0 : additionalData.sentimentThresholdMax],
54
- shortValues: [additionalData === null || additionalData === void 0 ? void 0 : additionalData.sentimentThresholdMin, additionalData === null || additionalData === void 0 ? void 0 : additionalData.sentimentThresholdMax]
55
- }));
57
+ })), loading && _react.default.createElement("div", {
58
+ 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"
59
+ }, _react.default.createElement(_labsWidgetCommon.Spinner, {
60
+ size: _labsWidgetCommon.SpinnerSize.lg
61
+ }))));
56
62
  };
57
63
  exports.ChartWithData = ChartWithData;
58
64
  //# sourceMappingURL=ChartWithData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartWithData.js","names":["_labsWidgetCommon","require","_react","_interopRequireDefault","_Legend","_Chart","_useCrowdViewData","e","__esModule","default","ChartWithData","_ref","instrument","bookType","division","granularity","size","isDark","useLayoutProvider","isDesktop","Size","DESKTOP","mainData","additionalData","loading","error","useCrowdViewData","createElement","Fragment","className","ChartError","Spinner","SpinnerSize","lg","Chart","Legend","longValues","sentimentThresholdMin","sentimentThresholdMax","shortValues","exports"],"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 from 'react';\n\nimport { Legend } from '../Legend';\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, isDark } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n\n const { mainData, additionalData, loading, error } = useCrowdViewData({\n instrument,\n bookType,\n division,\n granularity,\n });\n\n return (\n <>\n <div className=\"lw-relative lw-h-[610px] lw-w-full\">\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 {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\">\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {!loading && !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 mainData={mainData}\n />\n </div>\n )}\n </div>\n <Legend\n bookType={bookType}\n isDark={isDark}\n longValues={[\n additionalData?.sentimentThresholdMin,\n additionalData?.sentimentThresholdMax,\n ]}\n shortValues={[\n additionalData?.sentimentThresholdMin,\n additionalData?.sentimentThresholdMax,\n ]}\n />\n </>\n );\n};\n\nexport { ChartWithData };\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAOA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,iBAAA,GAAAL,OAAA;AAAsD,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtD,MAAMG,aAAa,GAAGC,IAAA,IAKI;EAAA,IALH;IACrBC,UAAU;IACVC,QAAQ;IACRC,QAAQ;IACRC;EACkB,CAAC,GAAAJ,IAAA;EACnB,MAAM;IAAEK,IAAI;IAAEC;EAAO,CAAC,GAAG,IAAAC,mCAAiB,EAAC,CAAC;EAC5C,MAAMC,SAAS,GAAGH,IAAI,KAAKI,sBAAI,CAACC,OAAO;EAEvC,MAAM;IAAEC,QAAQ;IAAEC,cAAc;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAG,IAAAC,kCAAgB,EAAC;IACpEd,UAAU;IACVC,QAAQ;IACRC,QAAQ;IACRC;EACF,CAAC,CAAC;EAEF,OACEb,MAAA,CAAAO,OAAA,CAAAkB,aAAA,CAAAzB,MAAA,CAAAO,OAAA,CAAAmB,QAAA,QACE1B,MAAA,CAAAO,OAAA,CAAAkB,aAAA;IAAKE,SAAS,EAAC;EAAoC,GAChDJ,KAAK,IACJvB,MAAA,CAAAO,OAAA,CAAAkB,aAAA;IAAKE,SAAS,EAAC;EAAiJ,GAC9J3B,MAAA,CAAAO,OAAA,CAAAkB,aAAA,CAAC3B,iBAAA,CAAA8B,UAAU,MAAE,CACV,CACN,EACAN,OAAO,IACNtB,MAAA,CAAAO,OAAA,CAAAkB,aAAA;IAAKE,SAAS,EAAC;EAAiJ,GAC9J3B,MAAA,CAAAO,OAAA,CAAAkB,aAAA,CAAC3B,iBAAA,CAAA+B,OAAO;IAACf,IAAI,EAAEgB,6BAAW,CAACC;EAAG,CAAE,CAC7B,CACN,EACA,CAACT,OAAO,IAAI,CAACC,KAAK,IAAI,CAAC,CAACH,QAAQ,IAAI,CAAC,CAACC,cAAc,IACnDrB,MAAA,CAAAO,OAAA,CAAAkB,aAAA;IAAKE,SAAS,EAAC;EAA4D,GACzE3B,MAAA,CAAAO,OAAA,CAAAkB,aAAA,CAACtB,MAAA,CAAA6B,KAAK;IACJX,cAAc,EAAEA,cAAe;IAC/BJ,SAAS,EAAEA,SAAU;IACrBG,QAAQ,EAAEA;EAAS,CACpB,CACE,CAEJ,CAAC,EACNpB,MAAA,CAAAO,OAAA,CAAAkB,aAAA,CAACvB,OAAA,CAAA+B,MAAM;IACLtB,QAAQ,EAAEA,QAAS;IACnBI,MAAM,EAAEA,MAAO;IACfmB,UAAU,EAAE,CACVb,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEc,qBAAqB,EACrCd,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEe,qBAAqB,CACrC;IACFC,WAAW,EAAE,CACXhB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEc,qBAAqB,EACrCd,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEe,qBAAqB;EACrC,CACH,CACD,CAAC;AAEP,CAAC;AAACE,OAAA,CAAA9B,aAAA,GAAAA,aAAA","ignoreList":[]}
1
+ {"version":3,"file":"ChartWithData.js","names":["_labsWidgetCommon","require","_react","_interopRequireWildcard","_usehooksTs","_Chart","_useCrowdViewData","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ChartWithData","_ref","instrument","bookType","division","granularity","size","useLayoutProvider","debouncedLoading","setDebouncedLoading","useState","isDesktop","Size","DESKTOP","mainData","additionalData","loading","priceCandlesLoading","error","useCrowdViewData","hideLoading","useDebounceCallback","useEffect","createElement","Fragment","className","ChartError","Chart","isLoading","Spinner","SpinnerSize","lg","exports"],"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":"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","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDataZoomConfig = void 0;
7
+ var _constants = require("../../../constants");
8
+ const getDataZoomConfig = _ref => {
9
+ let {
10
+ isDesktop
11
+ } = _ref;
12
+ return {
13
+ type: 'inside',
14
+ id: 'main',
15
+ xAxisIndex: [0, 1],
16
+ start: isDesktop ? _constants.CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP : _constants.CHART_CONFIG.INITIAL_START_ZOOM_MOBILE,
17
+ end: _constants.CHART_CONFIG.INITIAL_END_ZOOM,
18
+ filterMode: 'filter',
19
+ minSpan: 10,
20
+ preventDefaultMouseMove: true
21
+ };
22
+ };
23
+ exports.getDataZoomConfig = getDataZoomConfig;
24
+ //# sourceMappingURL=getDataZoomConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDataZoomConfig.js","names":["_constants","require","getDataZoomConfig","_ref","isDesktop","type","id","xAxisIndex","start","CHART_CONFIG","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","end","INITIAL_END_ZOOM","filterMode","minSpan","preventDefaultMouseMove","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.ts"],"sourcesContent":["import type { DataZoomComponentOption } from 'echarts';\n\nimport { CHART_CONFIG } from '../../../constants';\n\ninterface GetDataZoomConfigParams {\n isDesktop: boolean;\n}\n\nexport const getDataZoomConfig = ({\n isDesktop,\n}: GetDataZoomConfigParams): DataZoomComponentOption => ({\n type: 'inside',\n id: 'main',\n xAxisIndex: [0, 1],\n start: isDesktop\n ? CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP\n : CHART_CONFIG.INITIAL_START_ZOOM_MOBILE,\n end: CHART_CONFIG.INITIAL_END_ZOOM,\n filterMode: 'filter',\n minSpan: 10,\n preventDefaultMouseMove: true,\n});\n"],"mappings":";;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AAMO,MAAMC,iBAAiB,GAAGC,IAAA;EAAA,IAAC;IAChCC;EACuB,CAAC,GAAAD,IAAA;EAAA,OAA+B;IACvDE,IAAI,EAAE,QAAQ;IACdC,EAAE,EAAE,MAAM;IACVC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClBC,KAAK,EAAEJ,SAAS,GACZK,uBAAY,CAACC,0BAA0B,GACvCD,uBAAY,CAACE,yBAAyB;IAC1CC,GAAG,EAAEH,uBAAY,CAACI,gBAAgB;IAClCC,UAAU,EAAE,QAAQ;IACpBC,OAAO,EAAE,EAAE;IACXC,uBAAuB,EAAE;EAC3B,CAAC;AAAA,CAAC;AAACC,OAAA,CAAAf,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getGridConfig = void 0;
7
+ var _constants = require("../../../constants");
8
+ const getGridConfig = _ref => {
9
+ let {
10
+ isDesktop
11
+ } = _ref;
12
+ return [{
13
+ id: 'main-grid',
14
+ name: 'main-grid',
15
+ left: "".concat(isDesktop ? _constants.CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE : _constants.CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE, "px"),
16
+ right: "".concat(isDesktop ? _constants.CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : _constants.CHART_CONFIG.Y_LABEL_SIZE_MOBILE, "px"),
17
+ top: "".concat(isDesktop ? _constants.CHART_CONFIG.TOP_MARGIN_DESKTOP : _constants.CHART_CONFIG.TOP_MARGIN_MOBILE, "px"),
18
+ bottom: "".concat(_constants.CHART_CONFIG.X_LABEL_SIZE, "px"),
19
+ height: "".concat(isDesktop ? _constants.CHART_CONFIG.MAIN_HEIGHT - _constants.CHART_CONFIG.TOP_MARGIN_DESKTOP : _constants.CHART_CONFIG.MAIN_HEIGHT - _constants.CHART_CONFIG.TOP_MARGIN_MOBILE, "px")
20
+ }, {
21
+ id: 'sentiment-grid',
22
+ name: 'sentiment-grid',
23
+ left: "".concat(isDesktop ? _constants.CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE : _constants.CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE, "px"),
24
+ right: "".concat(isDesktop ? _constants.CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : _constants.CHART_CONFIG.Y_LABEL_SIZE_MOBILE, "px"),
25
+ top: "".concat(isDesktop ? _constants.CHART_CONFIG.TOP_MARGIN_DESKTOP : _constants.CHART_CONFIG.TOP_MARGIN_MOBILE, "px"),
26
+ height: "".concat(isDesktop ? _constants.CHART_CONFIG.MAIN_HEIGHT - _constants.CHART_CONFIG.TOP_MARGIN_DESKTOP : _constants.CHART_CONFIG.MAIN_HEIGHT - _constants.CHART_CONFIG.TOP_MARGIN_MOBILE, "px")
27
+ }];
28
+ };
29
+ exports.getGridConfig = getGridConfig;
30
+ //# sourceMappingURL=getGridConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGridConfig.js","names":["_constants","require","getGridConfig","_ref","isDesktop","id","name","left","concat","CHART_CONFIG","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","exports"],"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,IAAAA,UAAA,GAAAC,OAAA;AAMO,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,GAAGK,uBAAY,CAACC,8BAA8B,GAAGD,uBAAY,CAACE,6BAA6B,OAAI;IACjHC,KAAK,KAAAJ,MAAA,CAAKJ,SAAS,GAAGK,uBAAY,CAACI,oBAAoB,GAAGJ,uBAAY,CAACK,mBAAmB,OAAI;IAC9FC,GAAG,KAAAP,MAAA,CAAKJ,SAAS,GAAGK,uBAAY,CAACO,kBAAkB,GAAGP,uBAAY,CAACQ,iBAAiB,OAAI;IACxFC,MAAM,KAAAV,MAAA,CAAKC,uBAAY,CAACU,YAAY,OAAI;IACxCC,MAAM,KAAAZ,MAAA,CAAKJ,SAAS,GAAGK,uBAAY,CAACY,WAAW,GAAGZ,uBAAY,CAACO,kBAAkB,GAAGP,uBAAY,CAACY,WAAW,GAAGZ,uBAAY,CAACQ,iBAAiB;EAC/I,CAAC,EACD;IACEZ,EAAE,EAAE,gBAAgB;IACpBC,IAAI,EAAE,gBAAgB;IACtBC,IAAI,KAAAC,MAAA,CAAKJ,SAAS,GAAGK,uBAAY,CAACC,8BAA8B,GAAGD,uBAAY,CAACE,6BAA6B,OAAI;IACjHC,KAAK,KAAAJ,MAAA,CAAKJ,SAAS,GAAGK,uBAAY,CAACI,oBAAoB,GAAGJ,uBAAY,CAACK,mBAAmB,OAAI;IAC9FC,GAAG,KAAAP,MAAA,CAAKJ,SAAS,GAAGK,uBAAY,CAACO,kBAAkB,GAAGP,uBAAY,CAACQ,iBAAiB,OAAI;IACxFG,MAAM,KAAAZ,MAAA,CAAKJ,SAAS,GAAGK,uBAAY,CAACY,WAAW,GAAGZ,uBAAY,CAACO,kBAAkB,GAAGP,uBAAY,CAACY,WAAW,GAAGZ,uBAAY,CAACQ,iBAAiB;EAC/I,CAAC,CACF;AAAA;AAACK,OAAA,CAAApB,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -19,12 +19,11 @@ const getGridLines = _ref => {
19
19
  const {
20
20
  WIDTH,
21
21
  MAIN_HEIGHT,
22
- MARGIN_BETWEEN,
23
- SENTIMENT_HEIGHT,
24
- X_LABEL_SIZE,
25
- Y_LABEL_SIZE_DESKTOP,
26
- Y_LABEL_SIZE_MOBILE
22
+ X_LABEL_SIZE
27
23
  } = _constants.CHART_CONFIG;
24
+ const ySentimentLabelSize = isDesktop ? _constants.CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE : _constants.CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE;
25
+ const yLabelSize = isDesktop ? _constants.CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : _constants.CHART_CONFIG.Y_LABEL_SIZE_MOBILE;
26
+ const topMargin = isDesktop ? 0 : _constants.CHART_CONFIG.TOP_MARGIN_MOBILE;
28
27
  return [_objectSpread(_objectSpread({}, (0, _labsWidgetCommon.getLineCommons)(isDark)), {}, {
29
28
  top: -2,
30
29
  shape: {
@@ -32,7 +31,8 @@ const getGridLines = _ref => {
32
31
  y1: 0,
33
32
  x2: WIDTH,
34
33
  y2: 0
35
- }
34
+ },
35
+ z: 30
36
36
  }), _objectSpread(_objectSpread({}, (0, _labsWidgetCommon.getLineCommons)(isDark)), {}, {
37
37
  right: -2,
38
38
  shape: {
@@ -40,15 +40,17 @@ const getGridLines = _ref => {
40
40
  y1: 0,
41
41
  x2: 0,
42
42
  y2: MAIN_HEIGHT + X_LABEL_SIZE + 2
43
- }
43
+ },
44
+ z: 30
44
45
  }), _objectSpread(_objectSpread({}, (0, _labsWidgetCommon.getLineCommons)(isDark)), {}, {
45
- top: MAIN_HEIGHT - 2,
46
+ bottom: -2,
46
47
  shape: {
47
48
  x1: 0,
48
49
  y1: 0,
49
50
  x2: WIDTH,
50
51
  y2: 0
51
- }
52
+ },
53
+ z: 30
52
54
  }), _objectSpread(_objectSpread({}, (0, _labsWidgetCommon.getLineCommons)(isDark)), {}, {
53
55
  left: -2,
54
56
  shape: {
@@ -56,67 +58,46 @@ const getGridLines = _ref => {
56
58
  y1: 0,
57
59
  x2: 0,
58
60
  y2: MAIN_HEIGHT + X_LABEL_SIZE + 2
59
- }
61
+ },
62
+ z: 30
60
63
  }), _objectSpread(_objectSpread({}, (0, _labsWidgetCommon.getLineCommons)(isDark)), {}, {
61
- right: (isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE) - 2,
62
- top: -2,
64
+ right: yLabelSize - 3,
65
+ top: topMargin - 2,
63
66
  shape: {
64
67
  x1: 0,
65
68
  y1: 0,
66
69
  x2: 0,
67
- y2: MAIN_HEIGHT
68
- }
70
+ y2: MAIN_HEIGHT - topMargin
71
+ },
72
+ z: 30
69
73
  }), _objectSpread(_objectSpread({}, (0, _labsWidgetCommon.getLineCommons)(isDark)), {}, {
70
- top: MAIN_HEIGHT + X_LABEL_SIZE,
74
+ left: ySentimentLabelSize - 2,
75
+ top: topMargin - 2,
71
76
  shape: {
72
77
  x1: 0,
73
78
  y1: 0,
74
- x2: WIDTH,
75
- y2: 0
76
- }
79
+ x2: 0,
80
+ y2: MAIN_HEIGHT - topMargin
81
+ },
82
+ z: 30
77
83
  }), _objectSpread(_objectSpread({}, (0, _labsWidgetCommon.getLineCommons)(isDark)), {}, {
78
- top: MAIN_HEIGHT + X_LABEL_SIZE + MARGIN_BETWEEN - 2,
84
+ bottom: X_LABEL_SIZE - 3,
79
85
  shape: {
80
86
  x1: 0,
81
87
  y1: 0,
82
88
  x2: WIDTH,
83
89
  y2: 0
84
- }
90
+ },
91
+ z: 30
85
92
  }), _objectSpread(_objectSpread({}, (0, _labsWidgetCommon.getLineCommons)(isDark)), {}, {
86
- top: MAIN_HEIGHT + X_LABEL_SIZE + MARGIN_BETWEEN - 2,
87
- right: -2,
88
- shape: {
89
- x1: 0,
90
- y1: 0,
91
- x2: 0,
92
- y2: SENTIMENT_HEIGHT
93
- }
94
- }), _objectSpread(_objectSpread({}, (0, _labsWidgetCommon.getLineCommons)(isDark)), {}, {
95
- top: MAIN_HEIGHT + X_LABEL_SIZE + MARGIN_BETWEEN + SENTIMENT_HEIGHT - 3,
93
+ top: topMargin - 3,
96
94
  shape: {
97
95
  x1: 0,
98
96
  y1: 0,
99
97
  x2: WIDTH,
100
98
  y2: 0
101
- }
102
- }), _objectSpread(_objectSpread({}, (0, _labsWidgetCommon.getLineCommons)(isDark)), {}, {
103
- top: MAIN_HEIGHT + X_LABEL_SIZE + MARGIN_BETWEEN - 2,
104
- left: -2,
105
- shape: {
106
- x1: 0,
107
- y1: 0,
108
- x2: 0,
109
- y2: SENTIMENT_HEIGHT
110
- }
111
- }), _objectSpread(_objectSpread({}, (0, _labsWidgetCommon.getLineCommons)(isDark)), {}, {
112
- right: (isDesktop ? Y_LABEL_SIZE_DESKTOP : Y_LABEL_SIZE_MOBILE) - 3,
113
- top: MAIN_HEIGHT + X_LABEL_SIZE + MARGIN_BETWEEN - 2,
114
- shape: {
115
- x1: 0,
116
- y1: 0,
117
- x2: 0,
118
- y2: SENTIMENT_HEIGHT
119
- }
99
+ },
100
+ z: 30
120
101
  })];
121
102
  };
122
103
  exports.getGridLines = getGridLines;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGridLines.js","names":["_labsWidgetCommon","require","_constants","ownKeys","e","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","getGridLines","_ref","isDark","isDesktop","WIDTH","MAIN_HEIGHT","X_LABEL_SIZE","CHART_CONFIG","ySentimentLabelSize","Y_SENTIMENT_LABEL_DESKTOP_SIZE","Y_SENTIMENT_LABEL_MOBILE_SIZE","yLabelSize","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","topMargin","TOP_MARGIN_MOBILE","getLineCommons","top","shape","x1","y1","x2","y2","z","right","bottom","left","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartOptions/getGridLines.ts"],"sourcesContent":["import { getLineCommons } from '@oanda/labs-widget-common';\nimport type { GraphicComponentOption } from 'echarts';\n\nimport { CHART_CONFIG } from '../../../constants';\n\ninterface GetGridLinesParams {\n isDark: boolean;\n isDesktop: boolean;\n}\n\nexport const getGridLines = ({\n isDark,\n isDesktop,\n}: GetGridLinesParams): GraphicComponentOption[] => {\n const { WIDTH, MAIN_HEIGHT, X_LABEL_SIZE } = CHART_CONFIG;\n const ySentimentLabelSize = isDesktop\n ? CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE\n : CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE;\n\n const yLabelSize = isDesktop\n ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP\n : CHART_CONFIG.Y_LABEL_SIZE_MOBILE;\n\n const topMargin = isDesktop ? 0 : CHART_CONFIG.TOP_MARGIN_MOBILE;\n\n return [\n // Top\n {\n ...getLineCommons(isDark),\n top: -2,\n shape: {\n x1: 0,\n y1: 0,\n x2: WIDTH,\n y2: 0,\n },\n z: 30,\n },\n // Right\n {\n ...getLineCommons(isDark),\n right: -2,\n shape: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: MAIN_HEIGHT + X_LABEL_SIZE + 2,\n },\n z: 30,\n },\n // Bottom\n {\n ...getLineCommons(isDark),\n bottom: -2,\n shape: {\n x1: 0,\n y1: 0,\n x2: WIDTH,\n y2: 0,\n },\n z: 30,\n },\n // Left\n {\n ...getLineCommons(isDark),\n left: -2,\n shape: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: MAIN_HEIGHT + X_LABEL_SIZE + 2,\n },\n z: 30,\n },\n // Y Label\n {\n ...getLineCommons(isDark),\n right: yLabelSize - 3,\n top: topMargin - 2,\n shape: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: MAIN_HEIGHT - topMargin,\n },\n z: 30,\n },\n // Y Sentiment Label\n {\n ...getLineCommons(isDark),\n left: ySentimentLabelSize - 2,\n top: topMargin - 2,\n shape: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: MAIN_HEIGHT - topMargin,\n },\n z: 30,\n },\n // X Label\n {\n ...getLineCommons(isDark),\n bottom: X_LABEL_SIZE - 3,\n shape: {\n x1: 0,\n y1: 0,\n x2: WIDTH,\n y2: 0,\n },\n z: 30,\n },\n // X Mobile Label\n {\n ...getLineCommons(isDark),\n top: topMargin - 3,\n shape: {\n x1: 0,\n y1: 0,\n x2: WIDTH,\n y2: 0,\n },\n z: 30,\n },\n ];\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getLabelsConfig = void 0;
7
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
+ var _chromaJs = _interopRequireDefault(require("chroma-js"));
9
+ var _constants = require("../../../constants");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ const getLabelsConfig = _ref => {
12
+ let {
13
+ isDark,
14
+ isDesktop,
15
+ labelCallback
16
+ } = _ref;
17
+ const ySentimentLabelSize = isDesktop ? _constants.CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE : _constants.CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE;
18
+ const yMainLabelSize = isDesktop ? _constants.CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : _constants.CHART_CONFIG.Y_LABEL_SIZE_MOBILE;
19
+ const textColor = isDark ? _labsWidgetCommon.colorPalette.white : _labsWidgetCommon.colorPalette.black;
20
+ const labelBackgroundColor = isDark ? _labsWidgetCommon.colorPalette.darkGray : _labsWidgetCommon.colorPalette.white;
21
+ const backgroundColor = isDark ? _labsWidgetCommon.colorPalette.black : _labsWidgetCommon.colorPalette.white;
22
+ const shadowColor = (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.black).alpha(0.1).hex();
23
+ const sentimentText = labelCallback('sentiment').toUpperCase();
24
+ const priceText = labelCallback('price').toUpperCase();
25
+ const sentimentEstimatedWidth = 10 * sentimentText.length * 0.65;
26
+ const priceEstimatedWidth = 10 * priceText.length * 0.65;
27
+ const sentimentVerticalOffset = sentimentEstimatedWidth / 2;
28
+ const priceVerticalOffset = priceEstimatedWidth / 2;
29
+ const topMargin = isDesktop ? _constants.CHART_CONFIG.TOP_MARGIN_DESKTOP : _constants.CHART_CONFIG.TOP_MARGIN_MOBILE;
30
+ return [{
31
+ type: 'group',
32
+ left: "".concat(ySentimentLabelSize + 5, "px'"),
33
+ top: "".concat(topMargin + 5, "px"),
34
+ silent: true,
35
+ children: [{
36
+ type: 'rect',
37
+ z: 100,
38
+ right: 'center',
39
+ top: 'middle',
40
+ shape: {
41
+ width: 50,
42
+ height: 24
43
+ },
44
+ style: {
45
+ fill: labelBackgroundColor,
46
+ shadowBlur: 8,
47
+ shadowOffsetX: 0,
48
+ shadowOffsetY: 1,
49
+ shadowColor: shadowColor
50
+ }
51
+ }, {
52
+ type: 'text',
53
+ z: 100,
54
+ right: 'center',
55
+ top: 'middle',
56
+ style: {
57
+ fontSize: 11,
58
+ fontFamily: 'Sofia W03',
59
+ fontWeight: 500,
60
+ fill: textColor,
61
+ width: 70,
62
+ height: 30,
63
+ text: labelCallback('short')
64
+ }
65
+ }]
66
+ }, {
67
+ type: 'group',
68
+ left: "".concat(ySentimentLabelSize + 5, "px'"),
69
+ top: "".concat(_constants.CHART_CONFIG.MAIN_HEIGHT - 24 - 5, "px"),
70
+ silent: true,
71
+ children: [{
72
+ type: 'rect',
73
+ z: 100,
74
+ right: 'center',
75
+ top: 'middle',
76
+ shape: {
77
+ width: 50,
78
+ height: 24
79
+ },
80
+ style: {
81
+ fill: labelBackgroundColor,
82
+ shadowBlur: 8,
83
+ shadowOffsetX: 0,
84
+ shadowOffsetY: 1,
85
+ shadowColor: shadowColor
86
+ }
87
+ }, {
88
+ type: 'text',
89
+ z: 100,
90
+ right: 'center',
91
+ top: 'middle',
92
+ style: {
93
+ fontSize: 11,
94
+ fontFamily: 'Sofia W03',
95
+ fontWeight: 500,
96
+ fill: textColor,
97
+ width: 70,
98
+ height: 30,
99
+ text: labelCallback('long')
100
+ }
101
+ }]
102
+ }, {
103
+ type: 'text',
104
+ z: 30,
105
+ rotation: isDesktop ? Math.PI / 2 : 0,
106
+ left: "5px",
107
+ top: isDesktop ? "".concat(topMargin + _constants.CHART_CONFIG.MAIN_HEIGHT / 2 - sentimentVerticalOffset, "px") : "".concat(topMargin - 18, "px"),
108
+ silent: true,
109
+ style: {
110
+ fontSize: 10,
111
+ fontFamily: 'Sofia W03',
112
+ fontWeight: 300,
113
+ fill: textColor,
114
+ text: sentimentText
115
+ }
116
+ }, {
117
+ type: 'text',
118
+ z: 30,
119
+ rotation: isDesktop ? -Math.PI / 2 : 0,
120
+ right: "5px",
121
+ top: isDesktop ? "".concat(topMargin + _constants.CHART_CONFIG.MAIN_HEIGHT / 2 - priceVerticalOffset, "px") : "".concat(topMargin - 18, "px"),
122
+ silent: true,
123
+ style: {
124
+ fontSize: 10,
125
+ fontFamily: 'Sofia W03',
126
+ fontWeight: 300,
127
+ fill: textColor,
128
+ text: priceText
129
+ }
130
+ }, {
131
+ type: 'rect',
132
+ z: 20,
133
+ right: '0px',
134
+ top: '0px',
135
+ shape: {
136
+ width: yMainLabelSize,
137
+ height: _constants.CHART_CONFIG.MAIN_HEIGHT
138
+ },
139
+ silent: true,
140
+ style: {
141
+ fill: backgroundColor
142
+ }
143
+ }, {
144
+ type: 'rect',
145
+ z: 20,
146
+ left: '0px',
147
+ top: '0px',
148
+ shape: {
149
+ width: ySentimentLabelSize,
150
+ height: _constants.CHART_CONFIG.MAIN_HEIGHT
151
+ },
152
+ silent: true,
153
+ style: {
154
+ fill: backgroundColor
155
+ }
156
+ }];
157
+ };
158
+ exports.getLabelsConfig = getLabelsConfig;
159
+ //# sourceMappingURL=getLabelsConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLabelsConfig.js","names":["_labsWidgetCommon","require","_chromaJs","_interopRequireDefault","_constants","e","__esModule","default","getLabelsConfig","_ref","isDark","isDesktop","labelCallback","ySentimentLabelSize","CHART_CONFIG","Y_SENTIMENT_LABEL_DESKTOP_SIZE","Y_SENTIMENT_LABEL_MOBILE_SIZE","yMainLabelSize","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","textColor","colorPalette","white","black","labelBackgroundColor","darkGray","backgroundColor","shadowColor","chroma","alpha","hex","sentimentText","toUpperCase","priceText","sentimentEstimatedWidth","length","priceEstimatedWidth","sentimentVerticalOffset","priceVerticalOffset","topMargin","TOP_MARGIN_DESKTOP","TOP_MARGIN_MOBILE","type","left","concat","top","silent","children","z","right","shape","width","height","style","fill","shadowBlur","shadowOffsetX","shadowOffsetY","fontSize","fontFamily","fontWeight","text","MAIN_HEIGHT","rotation","Math","PI","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.ts"],"sourcesContent":["import { colorPalette } from '@oanda/labs-widget-common';\nimport chroma from 'chroma-js';\nimport type { GraphicComponentOption } from 'echarts';\n\nimport { CHART_CONFIG } from '../../../constants';\n\ninterface getLabelsConfigParams {\n isDark: boolean;\n isDesktop: boolean;\n labelCallback: (key: string, params?: Record<string, unknown>) => string;\n}\n\nexport const getLabelsConfig = ({\n isDark,\n isDesktop,\n labelCallback,\n}: getLabelsConfigParams): GraphicComponentOption[] => {\n const ySentimentLabelSize = isDesktop\n ? CHART_CONFIG.Y_SENTIMENT_LABEL_DESKTOP_SIZE\n : CHART_CONFIG.Y_SENTIMENT_LABEL_MOBILE_SIZE;\n\n const yMainLabelSize = isDesktop\n ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP\n : CHART_CONFIG.Y_LABEL_SIZE_MOBILE;\n\n const textColor = isDark ? colorPalette.white : colorPalette.black;\n const labelBackgroundColor = isDark\n ? colorPalette.darkGray\n : colorPalette.white;\n const backgroundColor = isDark ? colorPalette.black : colorPalette.white;\n const shadowColor = chroma(colorPalette.black).alpha(0.1).hex();\n\n // Estimate text width for centering rotated text\n // Approximate: fontSize * characterCount * 0.65 (typical character width ratio)\n const sentimentText = labelCallback('sentiment').toUpperCase();\n const priceText = labelCallback('price').toUpperCase();\n const sentimentEstimatedWidth = 10 * sentimentText.length * 0.65;\n const priceEstimatedWidth = 10 * priceText.length * 0.65;\n const sentimentVerticalOffset = sentimentEstimatedWidth / 2;\n const priceVerticalOffset = priceEstimatedWidth / 2;\n\n const topMargin = isDesktop\n ? CHART_CONFIG.TOP_MARGIN_DESKTOP\n : CHART_CONFIG.TOP_MARGIN_MOBILE;\n\n return [\n {\n type: 'group',\n left: `${ySentimentLabelSize + 5}px'`,\n top: `${topMargin + 5}px`,\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n right: 'center',\n top: 'middle',\n shape: {\n width: 50,\n height: 24,\n },\n style: {\n fill: labelBackgroundColor,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: shadowColor,\n },\n },\n {\n type: 'text',\n z: 100,\n right: 'center',\n top: 'middle',\n style: {\n fontSize: 11,\n fontFamily: 'Sofia W03',\n fontWeight: 500,\n fill: textColor,\n width: 70,\n height: 30,\n text: labelCallback('short'),\n },\n },\n ],\n },\n {\n type: 'group',\n left: `${ySentimentLabelSize + 5}px'`,\n top: `${CHART_CONFIG.MAIN_HEIGHT - 24 - 5}px`,\n silent: true,\n children: [\n {\n type: 'rect',\n z: 100,\n right: 'center',\n top: 'middle',\n shape: {\n width: 50,\n height: 24,\n },\n style: {\n fill: labelBackgroundColor,\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n shadowColor: shadowColor,\n },\n },\n {\n type: 'text',\n z: 100,\n right: 'center',\n top: 'middle',\n style: {\n fontSize: 11,\n fontFamily: 'Sofia W03',\n fontWeight: 500,\n fill: textColor,\n width: 70,\n height: 30,\n text: labelCallback('long'),\n },\n },\n ],\n },\n\n {\n type: 'text',\n z: 30,\n rotation: isDesktop ? Math.PI / 2 : 0,\n left: `5px`,\n top: isDesktop\n ? `${topMargin + CHART_CONFIG.MAIN_HEIGHT / 2 - sentimentVerticalOffset}px`\n : `${topMargin - 18}px`,\n silent: true,\n style: {\n fontSize: 10,\n fontFamily: 'Sofia W03',\n fontWeight: 300,\n fill: textColor,\n text: sentimentText,\n },\n },\n {\n type: 'text',\n z: 30,\n rotation: isDesktop ? -Math.PI / 2 : 0,\n right: `5px`,\n top: isDesktop\n ? `${topMargin + CHART_CONFIG.MAIN_HEIGHT / 2 - priceVerticalOffset}px`\n : `${topMargin - 18}px`,\n silent: true,\n style: {\n fontSize: 10,\n fontFamily: 'Sofia W03',\n fontWeight: 300,\n fill: textColor,\n text: priceText,\n },\n },\n {\n type: 'rect',\n z: 20,\n right: '0px',\n top: '0px',\n shape: {\n width: yMainLabelSize,\n height: CHART_CONFIG.MAIN_HEIGHT,\n },\n silent: true,\n style: {\n fill: backgroundColor,\n },\n },\n {\n type: 'rect',\n z: 20,\n left: '0px',\n top: '0px',\n shape: {\n width: ySentimentLabelSize,\n height: CHART_CONFIG.MAIN_HEIGHT,\n },\n silent: true,\n style: {\n fill: backgroundColor,\n },\n },\n ];\n};\n"],"mappings":"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","ignoreList":[]}