@oanda/labs-crowd-view-widget 1.0.52 → 1.0.54
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.
- package/CHANGELOG.md +436 -0
- package/dist/main/CrowdViewWidget/Main.js +4 -6
- package/dist/main/CrowdViewWidget/Main.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/Chart.js +18 -31
- package/dist/main/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js +7 -5
- package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.js +18 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js +30 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/{utils → chartOptions}/getGridLines.js +5 -52
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js +54 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.js +65 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.js +60 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js +53 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.js +31 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js +42 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js +75 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/index.js +116 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions/index.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js +18 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/{utils → chartUtils}/getChartStyles.js +4 -4
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getChartStyles.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.js +14 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getLabelData.js +42 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getLabelData.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getRectColor.js +14 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getRectColor.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js +108 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/index.js +83 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/index.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.js +15 -0
- package/dist/main/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.js.map +1 -0
- package/dist/main/CrowdViewWidget/{utils/instrumentUtils.js → components/Chart/dataUtils/getInstrumentConfigForDivision.js} +3 -3
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfigForDivision.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.js +18 -0
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/{utils → dataUtils}/index.js +8 -41
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/index.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processOrderPositionBooks.js +65 -0
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processOrderPositionBooks.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js +65 -0
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processSentiments.js +43 -0
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processSentiments.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/{utils → dataUtils}/validateData.js +8 -2
- package/dist/main/CrowdViewWidget/components/Chart/dataUtils/validateData.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/getOption.js +103 -0
- package/dist/main/CrowdViewWidget/components/Chart/getOption.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/index.js +11 -11
- package/dist/main/CrowdViewWidget/components/Chart/index.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/types.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js +53 -30
- package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Legend/Legend.js +15 -13
- package/dist/main/CrowdViewWidget/components/Legend/Legend.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js +5 -16
- package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
- package/dist/main/CrowdViewWidget/constants.js +12 -18
- package/dist/main/CrowdViewWidget/constants.js.map +1 -1
- package/dist/main/gql/getOrderPositionBooks.js +1 -1
- package/dist/main/gql/getOrderPositionBooks.js.map +1 -1
- package/dist/main/gql/getPriceCandles.js +1 -1
- package/dist/main/gql/getPriceCandles.js.map +1 -1
- package/dist/main/gql/types/gql.js +2 -2
- package/dist/main/gql/types/gql.js.map +1 -1
- package/dist/main/gql/types/graphql.js +111 -18
- package/dist/main/gql/types/graphql.js.map +1 -1
- package/dist/main/translations/sources/en.json +2 -1
- package/dist/module/CrowdViewWidget/Main.js +3 -5
- package/dist/module/CrowdViewWidget/Main.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/Chart.js +20 -33
- package/dist/module/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js +7 -5
- package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.js +11 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js +23 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/{utils → chartOptions}/getGridLines.js +5 -52
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js +46 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.js +58 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.js +53 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js +46 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.js +24 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js +35 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js +68 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/index.js +11 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions/index.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js +11 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/{utils → chartUtils}/getChartStyles.js +4 -4
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getChartStyles.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.js +6 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getLabelData.js +35 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getLabelData.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getRectColor.js +7 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getRectColor.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js +101 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js +8 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.js +8 -0
- package/dist/module/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.js.map +1 -0
- package/dist/module/CrowdViewWidget/{utils/instrumentUtils.js → components/Chart/dataUtils/getInstrumentConfigForDivision.js} +3 -3
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfigForDivision.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.js +11 -0
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/index.js +7 -0
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/index.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processOrderPositionBooks.js +58 -0
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processOrderPositionBooks.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js +58 -0
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processSentiments.js +36 -0
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processSentiments.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/{utils → dataUtils}/validateData.js +8 -2
- package/dist/module/CrowdViewWidget/components/Chart/dataUtils/validateData.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/getOption.js +96 -0
- package/dist/module/CrowdViewWidget/components/Chart/getOption.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/index.js +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/index.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/types.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js +50 -27
- package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Legend/Legend.js +15 -13
- package/dist/module/CrowdViewWidget/components/Legend/Legend.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js +5 -16
- package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
- package/dist/module/CrowdViewWidget/constants.js +10 -17
- package/dist/module/CrowdViewWidget/constants.js.map +1 -1
- package/dist/module/gql/getOrderPositionBooks.js +1 -1
- package/dist/module/gql/getOrderPositionBooks.js.map +1 -1
- package/dist/module/gql/getPriceCandles.js +1 -1
- package/dist/module/gql/getPriceCandles.js.map +1 -1
- package/dist/module/gql/types/gql.js +2 -2
- package/dist/module/gql/types/gql.js.map +1 -1
- package/dist/module/gql/types/graphql.js +111 -18
- package/dist/module/gql/types/graphql.js.map +1 -1
- package/dist/module/translations/sources/en.json +2 -1
- package/dist/types/CrowdViewWidget/components/Chart/Chart.d.ts +1 -1
- package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.d.ts +2 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.d.ts +6 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getGridLines.d.ts +6 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.d.ts +9 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.d.ts +11 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.d.ts +7 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.d.ts +16 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.d.ts +7 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.d.ts +7 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.d.ts +9 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartOptions/index.d.ts +10 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.d.ts +1 -0
- package/dist/types/CrowdViewWidget/components/Chart/{utils → chartUtils}/getChartStyles.d.ts +2 -2
- package/dist/types/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.d.ts +1 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartUtils/getLabelData.d.ts +17 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartUtils/getRectColor.d.ts +1 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.d.ts +10 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartUtils/index.d.ts +7 -0
- package/dist/types/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.d.ts +1 -0
- package/dist/types/CrowdViewWidget/{utils/instrumentUtils.d.ts → components/Chart/dataUtils/getInstrumentConfigForDivision.d.ts} +2 -2
- package/dist/types/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.d.ts +2 -0
- package/dist/types/CrowdViewWidget/components/Chart/dataUtils/index.d.ts +6 -0
- package/dist/types/CrowdViewWidget/components/Chart/dataUtils/processOrderPositionBooks.d.ts +11 -0
- package/dist/types/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.d.ts +12 -0
- package/dist/types/CrowdViewWidget/components/Chart/dataUtils/processSentiments.d.ts +6 -0
- package/dist/types/CrowdViewWidget/components/Chart/{utils → dataUtils}/validateData.d.ts +1 -1
- package/dist/types/CrowdViewWidget/components/Chart/index.d.ts +1 -1
- package/dist/types/CrowdViewWidget/components/Chart/types.d.ts +28 -11
- package/dist/types/CrowdViewWidget/components/Legend/Legend.d.ts +1 -4
- package/dist/types/CrowdViewWidget/components/Legend/LegendBar.d.ts +1 -3
- package/dist/types/CrowdViewWidget/constants.d.ts +4 -12
- package/dist/types/gql/types/gql.d.ts +6 -4
- package/dist/types/gql/types/graphql.d.ts +30 -11
- package/package.json +3 -3
- package/src/CrowdViewWidget/Main.tsx +3 -4
- package/src/CrowdViewWidget/components/Chart/Chart.tsx +25 -40
- package/src/CrowdViewWidget/components/Chart/ChartWithData.tsx +8 -4
- package/src/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.ts +13 -0
- package/src/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.ts +29 -0
- package/src/CrowdViewWidget/components/Chart/chartOptions/getGridLines.ts +84 -0
- package/src/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.ts +52 -0
- package/src/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.ts +82 -0
- package/src/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.ts +63 -0
- package/src/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.ts +63 -0
- package/src/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.ts +32 -0
- package/src/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.ts +43 -0
- package/src/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.ts +77 -0
- package/src/CrowdViewWidget/components/Chart/chartOptions/index.ts +10 -0
- package/src/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.ts +16 -0
- package/src/CrowdViewWidget/components/Chart/{utils → chartUtils}/getChartStyles.ts +9 -6
- package/src/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.ts +16 -0
- package/src/CrowdViewWidget/components/Chart/chartUtils/getLabelData.ts +42 -0
- package/src/CrowdViewWidget/components/Chart/chartUtils/getRectColor.ts +27 -0
- package/src/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.ts +183 -0
- package/src/CrowdViewWidget/components/Chart/chartUtils/index.ts +7 -0
- package/src/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.ts +13 -0
- package/src/CrowdViewWidget/{utils/instrumentUtils.ts → components/Chart/dataUtils/getInstrumentConfigForDivision.ts} +2 -2
- package/src/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.ts +14 -0
- package/src/CrowdViewWidget/components/Chart/dataUtils/index.ts +6 -0
- package/src/CrowdViewWidget/components/Chart/dataUtils/processOrderPositionBooks.ts +92 -0
- package/src/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.ts +67 -0
- package/src/CrowdViewWidget/components/Chart/dataUtils/processSentiments.ts +55 -0
- package/src/CrowdViewWidget/components/Chart/{utils → dataUtils}/validateData.ts +10 -2
- package/src/CrowdViewWidget/components/Chart/getOption.ts +114 -0
- package/src/CrowdViewWidget/components/Chart/index.ts +1 -1
- package/src/CrowdViewWidget/components/Chart/types.ts +30 -19
- package/src/CrowdViewWidget/components/Chart/useCrowdViewData.ts +84 -67
- package/src/CrowdViewWidget/components/Legend/Legend.tsx +24 -23
- package/src/CrowdViewWidget/components/Legend/LegendBar.tsx +13 -26
- package/src/CrowdViewWidget/constants.ts +21 -23
- package/src/gql/getOrderPositionBooks.ts +13 -5
- package/src/gql/getPriceCandles.ts +1 -0
- package/src/gql/types/gql.ts +6 -6
- package/src/gql/types/graphql.ts +98 -16
- package/src/translations/sources/en.json +2 -1
- package/test/components/Chart/utils/chartUtils.test.ts +39 -21
- package/test/components/Chart/utils/getChartStyles.test.ts +10 -10
- package/test/components/Chart/utils/processSentiments.test.ts +138 -30
- package/test/components/Legend.test.tsx +13 -21
- package/test/components/LegendBar.test.tsx +31 -51
- package/test/utils/instrumentUtils.test.ts +1 -1
- package/test/utils/processOrderPositionBooks.test.ts +201 -84
- package/test/utils/processPriceCandles.test.ts +93 -67
- package/test/utils/validateData.test.ts +136 -38
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions.js +0 -359
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js +0 -37
- package/dist/main/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/utils/chartUtils.js +0 -127
- package/dist/main/CrowdViewWidget/components/Chart/utils/chartUtils.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/utils/getChartStyles.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/utils/getGridLines.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js +0 -14
- package/dist/main/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/utils/index.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/utils/processBuckets.js +0 -29
- package/dist/main/CrowdViewWidget/components/Chart/utils/processBuckets.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js +0 -23
- package/dist/main/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/utils/processPriceCandles.js +0 -43
- package/dist/main/CrowdViewWidget/components/Chart/utils/processPriceCandles.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/utils/processSentiments.js +0 -28
- package/dist/main/CrowdViewWidget/components/Chart/utils/processSentiments.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/utils/validateData.js.map +0 -1
- package/dist/main/CrowdViewWidget/utils/instrumentUtils.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions.js +0 -351
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js +0 -29
- package/dist/module/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/utils/chartUtils.js +0 -114
- package/dist/module/CrowdViewWidget/components/Chart/utils/chartUtils.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/utils/getChartStyles.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/utils/getGridLines.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js +0 -7
- package/dist/module/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/utils/index.js +0 -10
- package/dist/module/CrowdViewWidget/components/Chart/utils/index.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/utils/processBuckets.js +0 -22
- package/dist/module/CrowdViewWidget/components/Chart/utils/processBuckets.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js +0 -16
- package/dist/module/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/utils/processPriceCandles.js +0 -36
- package/dist/module/CrowdViewWidget/components/Chart/utils/processPriceCandles.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/utils/processSentiments.js +0 -21
- package/dist/module/CrowdViewWidget/components/Chart/utils/processSentiments.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/utils/validateData.js.map +0 -1
- package/dist/module/CrowdViewWidget/utils/instrumentUtils.js.map +0 -1
- package/dist/types/CrowdViewWidget/components/Chart/utils/aggregateBuckets.d.ts +0 -2
- package/dist/types/CrowdViewWidget/components/Chart/utils/chartUtils.d.ts +0 -31
- package/dist/types/CrowdViewWidget/components/Chart/utils/getGridLines.d.ts +0 -97
- package/dist/types/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.d.ts +0 -3
- package/dist/types/CrowdViewWidget/components/Chart/utils/index.d.ts +0 -9
- package/dist/types/CrowdViewWidget/components/Chart/utils/processBuckets.d.ts +0 -3
- package/dist/types/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.d.ts +0 -8
- package/dist/types/CrowdViewWidget/components/Chart/utils/processPriceCandles.d.ts +0 -27
- package/dist/types/CrowdViewWidget/components/Chart/utils/processSentiments.d.ts +0 -3
- package/src/CrowdViewWidget/components/Chart/chartOptions.ts +0 -401
- package/src/CrowdViewWidget/components/Chart/utils/aggregateBuckets.ts +0 -44
- package/src/CrowdViewWidget/components/Chart/utils/chartUtils.ts +0 -216
- package/src/CrowdViewWidget/components/Chart/utils/getGridLines.ts +0 -148
- package/src/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.ts +0 -13
- package/src/CrowdViewWidget/components/Chart/utils/index.ts +0 -9
- package/src/CrowdViewWidget/components/Chart/utils/processBuckets.ts +0 -43
- package/src/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.ts +0 -30
- package/src/CrowdViewWidget/components/Chart/utils/processPriceCandles.ts +0 -53
- package/src/CrowdViewWidget/components/Chart/utils/processSentiments.ts +0 -42
- package/test/utils/aggregateBuckets.test.ts +0 -82
- package/test/utils/getTargetBucketWidth.test.ts +0 -37
- package/test/utils/processBuckets.test.ts +0 -153
- /package/dist/types/CrowdViewWidget/components/Chart/{chartOptions.d.ts → getOption.d.ts} +0 -0
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getTargetBucketWidth = void 0;
|
|
7
|
-
var _graphql = require("../../../../gql/types/graphql");
|
|
8
|
-
var _constants = require("../../../constants");
|
|
9
|
-
const getTargetBucketWidth = (granularity, instrument) => {
|
|
10
|
-
const bucketWidth = _constants.INSTRUMENTS_CONFIG[instrument].defaultBucketWidth;
|
|
11
|
-
return granularity === _graphql.Granularity.H1 || granularity === _graphql.Granularity.H4 ? bucketWidth * _constants.BUCKET_CONFIG.MULTIPLIER : bucketWidth;
|
|
12
|
-
};
|
|
13
|
-
exports.getTargetBucketWidth = getTargetBucketWidth;
|
|
14
|
-
//# sourceMappingURL=getTargetBucketWidth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getTargetBucketWidth.js","names":["_graphql","require","_constants","getTargetBucketWidth","granularity","instrument","bucketWidth","INSTRUMENTS_CONFIG","defaultBucketWidth","Granularity","H1","H4","BUCKET_CONFIG","MULTIPLIER","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.ts"],"sourcesContent":["import { Granularity } from '../../../../gql/types/graphql';\nimport { BUCKET_CONFIG, INSTRUMENTS_CONFIG } from '../../../constants';\nimport type { InstrumentId } from '../../../types';\n\nexport const getTargetBucketWidth = (\n granularity: Granularity,\n instrument: InstrumentId\n): number => {\n const bucketWidth = INSTRUMENTS_CONFIG[instrument].defaultBucketWidth;\n return granularity === Granularity.H1 || granularity === Granularity.H4\n ? bucketWidth * BUCKET_CONFIG.MULTIPLIER\n : bucketWidth;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAGO,MAAME,oBAAoB,GAAGA,CAClCC,WAAwB,EACxBC,UAAwB,KACb;EACX,MAAMC,WAAW,GAAGC,6BAAkB,CAACF,UAAU,CAAC,CAACG,kBAAkB;EACrE,OAAOJ,WAAW,KAAKK,oBAAW,CAACC,EAAE,IAAIN,WAAW,KAAKK,oBAAW,CAACE,EAAE,GACnEL,WAAW,GAAGM,wBAAa,CAACC,UAAU,GACtCP,WAAW;AACjB,CAAC;AAACQ,OAAA,CAAAX,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_aggregateBuckets","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_chartUtils","_getChartStyles","_getTargetBucketWidth","_processBuckets","_processOrderPositionBooks","_processPriceCandles","_processSentiments","_validateData"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/index.ts"],"sourcesContent":["export * from './aggregateBuckets';\nexport * from './chartUtils';\nexport * from './getChartStyles';\nexport * from './getTargetBucketWidth';\nexport * from './processBuckets';\nexport * from './processOrderPositionBooks';\nexport * from './processPriceCandles';\nexport * from './processSentiments';\nexport * from './validateData';\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.processBuckets = void 0;
|
|
7
|
-
var _constants = require("../../../constants");
|
|
8
|
-
var _aggregateBuckets = require("./aggregateBuckets");
|
|
9
|
-
const processBuckets = (orderPositionData, targetBucketWidth) => {
|
|
10
|
-
var _orderPositionData$or;
|
|
11
|
-
if (!(orderPositionData !== null && orderPositionData !== void 0 && (_orderPositionData$or = orderPositionData.orderPositionBooks) !== null && _orderPositionData$or !== void 0 && _orderPositionData$or.length)) {
|
|
12
|
-
return [];
|
|
13
|
-
}
|
|
14
|
-
return orderPositionData.orderPositionBooks.filter(book => {
|
|
15
|
-
var _book$buckets;
|
|
16
|
-
return book !== null && ((_book$buckets = book.buckets) === null || _book$buckets === void 0 ? void 0 : _book$buckets.length) > 0;
|
|
17
|
-
}).map(book => {
|
|
18
|
-
var _book$bucketWidth;
|
|
19
|
-
const validBuckets = book.buckets.filter(bucket => bucket !== null && bucket.price !== undefined && bucket.sentiment !== undefined && bucket.sentiment !== null).map(bucket => ({
|
|
20
|
-
price: bucket.price,
|
|
21
|
-
sentiment: bucket.sentiment
|
|
22
|
-
}));
|
|
23
|
-
const bucketsToFilter = targetBucketWidth > ((_book$bucketWidth = book.bucketWidth) !== null && _book$bucketWidth !== void 0 ? _book$bucketWidth : 0) ? (0, _aggregateBuckets.aggregateBuckets)(validBuckets, targetBucketWidth) : validBuckets;
|
|
24
|
-
const filteredBuckets = bucketsToFilter.filter(bucket => Math.abs(bucket.sentiment) >= _constants.BOOKS_THRESHOLDS.MIN);
|
|
25
|
-
return filteredBuckets;
|
|
26
|
-
});
|
|
27
|
-
};
|
|
28
|
-
exports.processBuckets = processBuckets;
|
|
29
|
-
//# sourceMappingURL=processBuckets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"processBuckets.js","names":["_constants","require","_aggregateBuckets","processBuckets","orderPositionData","targetBucketWidth","_orderPositionData$or","orderPositionBooks","length","filter","book","_book$buckets","buckets","map","_book$bucketWidth","validBuckets","bucket","price","undefined","sentiment","bucketsToFilter","bucketWidth","aggregateBuckets","filteredBuckets","Math","abs","BOOKS_THRESHOLDS","MIN","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/processBuckets.ts"],"sourcesContent":["import type { GetOrderPositionBooksQuery } from '../../../../gql/types/graphql';\nimport { BOOKS_THRESHOLDS } from '../../../constants';\nimport type { Bucket } from '../types';\nimport { aggregateBuckets } from './aggregateBuckets';\n\nexport const processBuckets = (\n orderPositionData: GetOrderPositionBooksQuery | undefined,\n targetBucketWidth: number\n): Bucket[][] => {\n if (!orderPositionData?.orderPositionBooks?.length) {\n return [];\n }\n\n return orderPositionData.orderPositionBooks\n .filter((book): book is NonNullable<typeof book> => {\n return book !== null && book.buckets?.length > 0;\n })\n .map((book) => {\n const validBuckets = book.buckets\n .filter(\n (bucket): bucket is NonNullable<typeof bucket> =>\n bucket !== null &&\n bucket.price !== undefined &&\n bucket.sentiment !== undefined &&\n bucket.sentiment !== null\n )\n .map((bucket) => ({\n price: bucket.price!,\n sentiment: bucket.sentiment!,\n }));\n\n const bucketsToFilter =\n targetBucketWidth > (book.bucketWidth ?? 0)\n ? aggregateBuckets(validBuckets, targetBucketWidth)\n : validBuckets;\n\n const filteredBuckets = bucketsToFilter.filter(\n (bucket: Bucket) => Math.abs(bucket.sentiment) >= BOOKS_THRESHOLDS.MIN\n );\n\n return filteredBuckets;\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAD,OAAA;AAEO,MAAME,cAAc,GAAGA,CAC5BC,iBAAyD,EACzDC,iBAAyB,KACV;EAAA,IAAAC,qBAAA;EACf,IAAI,EAACF,iBAAiB,aAAjBA,iBAAiB,gBAAAE,qBAAA,GAAjBF,iBAAiB,CAAEG,kBAAkB,cAAAD,qBAAA,eAArCA,qBAAA,CAAuCE,MAAM,GAAE;IAClD,OAAO,EAAE;EACX;EAEA,OAAOJ,iBAAiB,CAACG,kBAAkB,CACxCE,MAAM,CAAEC,IAAI,IAAuC;IAAA,IAAAC,aAAA;IAClD,OAAOD,IAAI,KAAK,IAAI,IAAI,EAAAC,aAAA,GAAAD,IAAI,CAACE,OAAO,cAAAD,aAAA,uBAAZA,aAAA,CAAcH,MAAM,IAAG,CAAC;EAClD,CAAC,CAAC,CACDK,GAAG,CAAEH,IAAI,IAAK;IAAA,IAAAI,iBAAA;IACb,MAAMC,YAAY,GAAGL,IAAI,CAACE,OAAO,CAC9BH,MAAM,CACJO,MAAM,IACLA,MAAM,KAAK,IAAI,IACfA,MAAM,CAACC,KAAK,KAAKC,SAAS,IAC1BF,MAAM,CAACG,SAAS,KAAKD,SAAS,IAC9BF,MAAM,CAACG,SAAS,KAAK,IACzB,CAAC,CACAN,GAAG,CAAEG,MAAM,KAAM;MAChBC,KAAK,EAAED,MAAM,CAACC,KAAM;MACpBE,SAAS,EAAEH,MAAM,CAACG;IACpB,CAAC,CAAC,CAAC;IAEL,MAAMC,eAAe,GACnBf,iBAAiB,KAAAS,iBAAA,GAAIJ,IAAI,CAACW,WAAW,cAAAP,iBAAA,cAAAA,iBAAA,GAAI,CAAC,CAAC,GACvC,IAAAQ,kCAAgB,EAACP,YAAY,EAAEV,iBAAiB,CAAC,GACjDU,YAAY;IAElB,MAAMQ,eAAe,GAAGH,eAAe,CAACX,MAAM,CAC3CO,MAAc,IAAKQ,IAAI,CAACC,GAAG,CAACT,MAAM,CAACG,SAAS,CAAC,IAAIO,2BAAgB,CAACC,GACrE,CAAC;IAED,OAAOJ,eAAe;EACxB,CAAC,CAAC;AACN,CAAC;AAACK,OAAA,CAAAzB,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.processOrderPositionBooks = void 0;
|
|
7
|
-
const processOrderPositionBooks = (orderPositionData, candleMap) => {
|
|
8
|
-
var _orderPositionData$or;
|
|
9
|
-
if (!(orderPositionData !== null && orderPositionData !== void 0 && (_orderPositionData$or = orderPositionData.orderPositionBooks) !== null && _orderPositionData$or !== void 0 && _orderPositionData$or.length)) {
|
|
10
|
-
return [];
|
|
11
|
-
}
|
|
12
|
-
return orderPositionData.orderPositionBooks.filter(book => {
|
|
13
|
-
var _book$buckets;
|
|
14
|
-
return book !== null && ((_book$buckets = book.buckets) === null || _book$buckets === void 0 ? void 0 : _book$buckets.length) > 0;
|
|
15
|
-
}).map((book, index) => {
|
|
16
|
-
var _candle$high;
|
|
17
|
-
const candle = candleMap.get(book.time);
|
|
18
|
-
const price = (_candle$high = candle === null || candle === void 0 ? void 0 : candle.high) !== null && _candle$high !== void 0 ? _candle$high : null;
|
|
19
|
-
return [book.time, price, index];
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
exports.processOrderPositionBooks = processOrderPositionBooks;
|
|
23
|
-
//# sourceMappingURL=processOrderPositionBooks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"processOrderPositionBooks.js","names":["processOrderPositionBooks","orderPositionData","candleMap","_orderPositionData$or","orderPositionBooks","length","filter","book","_book$buckets","buckets","map","index","_candle$high","candle","get","time","price","high","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.ts"],"sourcesContent":["import type { GetOrderPositionBooksQuery } from '../../../../gql/types/graphql';\n\nexport const processOrderPositionBooks = (\n orderPositionData: GetOrderPositionBooksQuery | undefined,\n candleMap: Map<\n string,\n {\n point?: string;\n high?: number;\n low?: number;\n open?: number;\n close?: number;\n }\n >\n): [string, number | null, number][] => {\n if (!orderPositionData?.orderPositionBooks?.length) {\n return [];\n }\n\n return orderPositionData.orderPositionBooks\n .filter((book): book is NonNullable<typeof book> => {\n return book !== null && book.buckets?.length > 0;\n })\n .map((book, index) => {\n const candle = candleMap.get(book.time);\n const price = candle?.high ?? null;\n\n return [book.time, price, index] as [string, number | null, number];\n });\n};\n"],"mappings":";;;;;;AAEO,MAAMA,yBAAyB,GAAGA,CACvCC,iBAAyD,EACzDC,SASC,KACqC;EAAA,IAAAC,qBAAA;EACtC,IAAI,EAACF,iBAAiB,aAAjBA,iBAAiB,gBAAAE,qBAAA,GAAjBF,iBAAiB,CAAEG,kBAAkB,cAAAD,qBAAA,eAArCA,qBAAA,CAAuCE,MAAM,GAAE;IAClD,OAAO,EAAE;EACX;EAEA,OAAOJ,iBAAiB,CAACG,kBAAkB,CACxCE,MAAM,CAAEC,IAAI,IAAuC;IAAA,IAAAC,aAAA;IAClD,OAAOD,IAAI,KAAK,IAAI,IAAI,EAAAC,aAAA,GAAAD,IAAI,CAACE,OAAO,cAAAD,aAAA,uBAAZA,aAAA,CAAcH,MAAM,IAAG,CAAC;EAClD,CAAC,CAAC,CACDK,GAAG,CAAC,CAACH,IAAI,EAAEI,KAAK,KAAK;IAAA,IAAAC,YAAA;IACpB,MAAMC,MAAM,GAAGX,SAAS,CAACY,GAAG,CAACP,IAAI,CAACQ,IAAI,CAAC;IACvC,MAAMC,KAAK,IAAAJ,YAAA,GAAGC,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEI,IAAI,cAAAL,YAAA,cAAAA,YAAA,GAAI,IAAI;IAElC,OAAO,CAACL,IAAI,CAACQ,IAAI,EAAEC,KAAK,EAAEL,KAAK,CAAC;EAClC,CAAC,CAAC;AACN,CAAC;AAACO,OAAA,CAAAlB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.processPriceCandles = void 0;
|
|
7
|
-
const processPriceCandles = priceCandlesData => {
|
|
8
|
-
var _priceCandlesData$pri;
|
|
9
|
-
if (!(priceCandlesData !== null && priceCandlesData !== void 0 && (_priceCandlesData$pri = priceCandlesData.priceCandles) !== null && _priceCandlesData$pri !== void 0 && (_priceCandlesData$pri = _priceCandlesData$pri.candle) !== null && _priceCandlesData$pri !== void 0 && _priceCandlesData$pri.length)) {
|
|
10
|
-
return {
|
|
11
|
-
minPrice: 0,
|
|
12
|
-
maxPrice: 0,
|
|
13
|
-
hasValidCandles: false,
|
|
14
|
-
candleMap: new Map(),
|
|
15
|
-
candles: []
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
const candles = priceCandlesData.priceCandles.candle;
|
|
19
|
-
let calculatedMinPrice = Number.MAX_VALUE;
|
|
20
|
-
let calculatedMaxPrice = Number.MIN_VALUE;
|
|
21
|
-
const candleMap = new Map();
|
|
22
|
-
candles.forEach(candle => {
|
|
23
|
-
if (!candle) return;
|
|
24
|
-
if (candle.high > calculatedMaxPrice) {
|
|
25
|
-
calculatedMaxPrice = candle.high;
|
|
26
|
-
}
|
|
27
|
-
if (candle.low < calculatedMinPrice) {
|
|
28
|
-
calculatedMinPrice = candle.low;
|
|
29
|
-
}
|
|
30
|
-
if (candle.point) {
|
|
31
|
-
candleMap.set(candle.point, candle);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
return {
|
|
35
|
-
minPrice: calculatedMinPrice,
|
|
36
|
-
maxPrice: calculatedMaxPrice,
|
|
37
|
-
hasValidCandles: true,
|
|
38
|
-
candleMap,
|
|
39
|
-
candles
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
exports.processPriceCandles = processPriceCandles;
|
|
43
|
-
//# sourceMappingURL=processPriceCandles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"processPriceCandles.js","names":["processPriceCandles","priceCandlesData","_priceCandlesData$pri","priceCandles","candle","length","minPrice","maxPrice","hasValidCandles","candleMap","Map","candles","calculatedMinPrice","Number","MAX_VALUE","calculatedMaxPrice","MIN_VALUE","forEach","high","low","point","set","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/processPriceCandles.ts"],"sourcesContent":["import type { GetPriceCandlesQuery } from '../../../../gql/types/graphql';\n\nexport const processPriceCandles = (\n priceCandlesData: GetPriceCandlesQuery | undefined\n) => {\n if (!priceCandlesData?.priceCandles?.candle?.length) {\n return {\n minPrice: 0,\n maxPrice: 0,\n hasValidCandles: false,\n candleMap: new Map(),\n candles: [],\n };\n }\n\n const candles = priceCandlesData.priceCandles.candle;\n let calculatedMinPrice = Number.MAX_VALUE;\n let calculatedMaxPrice = Number.MIN_VALUE;\n\n const candleMap = new Map<\n string,\n {\n point?: string;\n high?: number;\n low?: number;\n open?: number;\n close?: number;\n }\n >();\n\n candles.forEach((candle) => {\n if (!candle) return;\n\n if (candle.high > calculatedMaxPrice) {\n calculatedMaxPrice = candle.high;\n }\n if (candle.low < calculatedMinPrice) {\n calculatedMinPrice = candle.low;\n }\n\n if (candle.point) {\n candleMap.set(candle.point, candle);\n }\n });\n\n return {\n minPrice: calculatedMinPrice,\n maxPrice: calculatedMaxPrice,\n hasValidCandles: true,\n candleMap,\n candles,\n };\n};\n"],"mappings":";;;;;;AAEO,MAAMA,mBAAmB,GAC9BC,gBAAkD,IAC/C;EAAA,IAAAC,qBAAA;EACH,IAAI,EAACD,gBAAgB,aAAhBA,gBAAgB,gBAAAC,qBAAA,GAAhBD,gBAAgB,CAAEE,YAAY,cAAAD,qBAAA,gBAAAA,qBAAA,GAA9BA,qBAAA,CAAgCE,MAAM,cAAAF,qBAAA,eAAtCA,qBAAA,CAAwCG,MAAM,GAAE;IACnD,OAAO;MACLC,QAAQ,EAAE,CAAC;MACXC,QAAQ,EAAE,CAAC;MACXC,eAAe,EAAE,KAAK;MACtBC,SAAS,EAAE,IAAIC,GAAG,CAAC,CAAC;MACpBC,OAAO,EAAE;IACX,CAAC;EACH;EAEA,MAAMA,OAAO,GAAGV,gBAAgB,CAACE,YAAY,CAACC,MAAM;EACpD,IAAIQ,kBAAkB,GAAGC,MAAM,CAACC,SAAS;EACzC,IAAIC,kBAAkB,GAAGF,MAAM,CAACG,SAAS;EAEzC,MAAMP,SAAS,GAAG,IAAIC,GAAG,CASvB,CAAC;EAEHC,OAAO,CAACM,OAAO,CAAEb,MAAM,IAAK;IAC1B,IAAI,CAACA,MAAM,EAAE;IAEb,IAAIA,MAAM,CAACc,IAAI,GAAGH,kBAAkB,EAAE;MACpCA,kBAAkB,GAAGX,MAAM,CAACc,IAAI;IAClC;IACA,IAAId,MAAM,CAACe,GAAG,GAAGP,kBAAkB,EAAE;MACnCA,kBAAkB,GAAGR,MAAM,CAACe,GAAG;IACjC;IAEA,IAAIf,MAAM,CAACgB,KAAK,EAAE;MAChBX,SAAS,CAACY,GAAG,CAACjB,MAAM,CAACgB,KAAK,EAAEhB,MAAM,CAAC;IACrC;EACF,CAAC,CAAC;EAEF,OAAO;IACLE,QAAQ,EAAEM,kBAAkB;IAC5BL,QAAQ,EAAEQ,kBAAkB;IAC5BP,eAAe,EAAE,IAAI;IACrBC,SAAS;IACTE;EACF,CAAC;AACH,CAAC;AAACW,OAAA,CAAAtB,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.processSentiments = void 0;
|
|
7
|
-
const processSentiments = (sentimentsData, xAxisData) => {
|
|
8
|
-
var _sentimentsData$senti;
|
|
9
|
-
if (!(sentimentsData !== null && sentimentsData !== void 0 && (_sentimentsData$senti = sentimentsData.sentiments) !== null && _sentimentsData$senti !== void 0 && (_sentimentsData$senti = _sentimentsData$senti.sentiments) !== null && _sentimentsData$senti !== void 0 && _sentimentsData$senti.length)) {
|
|
10
|
-
return [];
|
|
11
|
-
}
|
|
12
|
-
const sentimentMap = new Map(sentimentsData.sentiments.sentiments.filter(item => {
|
|
13
|
-
var _item$sentiment, _item$sentiment2;
|
|
14
|
-
return (item === null || item === void 0 ? void 0 : item.time) != null && ((_item$sentiment = item.sentiment) === null || _item$sentiment === void 0 ? void 0 : _item$sentiment.shortPercent) != null && ((_item$sentiment2 = item.sentiment) === null || _item$sentiment2 === void 0 ? void 0 : _item$sentiment2.longPercent) != null;
|
|
15
|
-
}).map(item => [item.time, {
|
|
16
|
-
shortPercent: item.sentiment.shortPercent,
|
|
17
|
-
longPercent: item.sentiment.longPercent
|
|
18
|
-
}]));
|
|
19
|
-
return xAxisData.map(time => {
|
|
20
|
-
const sentiment = sentimentMap.get(time);
|
|
21
|
-
if (!sentiment) {
|
|
22
|
-
return undefined;
|
|
23
|
-
}
|
|
24
|
-
return [time, sentiment.shortPercent, sentiment.longPercent];
|
|
25
|
-
}).filter(item => item !== undefined);
|
|
26
|
-
};
|
|
27
|
-
exports.processSentiments = processSentiments;
|
|
28
|
-
//# sourceMappingURL=processSentiments.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"processSentiments.js","names":["processSentiments","sentimentsData","xAxisData","_sentimentsData$senti","sentiments","length","sentimentMap","Map","filter","item","_item$sentiment","_item$sentiment2","time","sentiment","shortPercent","longPercent","map","get","undefined","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/processSentiments.ts"],"sourcesContent":["import type { GetSentimentsQuery } from '../../../../gql/types/graphql';\nimport type { ProcessedSentiment } from '../types';\n\nexport const processSentiments = (\n sentimentsData: GetSentimentsQuery | undefined,\n xAxisData: string[]\n): ProcessedSentiment[] => {\n if (!sentimentsData?.sentiments?.sentiments?.length) {\n return [];\n }\n\n const sentimentMap = new Map(\n sentimentsData.sentiments.sentiments\n .filter(\n (item): item is NonNullable<typeof item> =>\n item?.time != null &&\n item.sentiment?.shortPercent != null &&\n item.sentiment?.longPercent != null\n )\n .map((item) => [\n item.time,\n {\n shortPercent: item.sentiment.shortPercent,\n longPercent: item.sentiment.longPercent,\n },\n ])\n );\n\n return xAxisData\n .map((time) => {\n const sentiment = sentimentMap.get(time);\n if (!sentiment) {\n return undefined;\n }\n return [\n time,\n sentiment.shortPercent,\n sentiment.longPercent,\n ] as ProcessedSentiment;\n })\n .filter((item): item is ProcessedSentiment => item !== undefined);\n};\n"],"mappings":";;;;;;AAGO,MAAMA,iBAAiB,GAAGA,CAC/BC,cAA8C,EAC9CC,SAAmB,KACM;EAAA,IAAAC,qBAAA;EACzB,IAAI,EAACF,cAAc,aAAdA,cAAc,gBAAAE,qBAAA,GAAdF,cAAc,CAAEG,UAAU,cAAAD,qBAAA,gBAAAA,qBAAA,GAA1BA,qBAAA,CAA4BC,UAAU,cAAAD,qBAAA,eAAtCA,qBAAA,CAAwCE,MAAM,GAAE;IACnD,OAAO,EAAE;EACX;EAEA,MAAMC,YAAY,GAAG,IAAIC,GAAG,CAC1BN,cAAc,CAACG,UAAU,CAACA,UAAU,CACjCI,MAAM,CACJC,IAAI;IAAA,IAAAC,eAAA,EAAAC,gBAAA;IAAA,OACH,CAAAF,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,IAAI,KAAI,IAAI,IAClB,EAAAF,eAAA,GAAAD,IAAI,CAACI,SAAS,cAAAH,eAAA,uBAAdA,eAAA,CAAgBI,YAAY,KAAI,IAAI,IACpC,EAAAH,gBAAA,GAAAF,IAAI,CAACI,SAAS,cAAAF,gBAAA,uBAAdA,gBAAA,CAAgBI,WAAW,KAAI,IAAI;EAAA,CACvC,CAAC,CACAC,GAAG,CAAEP,IAAI,IAAK,CACbA,IAAI,CAACG,IAAI,EACT;IACEE,YAAY,EAAEL,IAAI,CAACI,SAAS,CAACC,YAAY;IACzCC,WAAW,EAAEN,IAAI,CAACI,SAAS,CAACE;EAC9B,CAAC,CACF,CACL,CAAC;EAED,OAAOb,SAAS,CACbc,GAAG,CAAEJ,IAAI,IAAK;IACb,MAAMC,SAAS,GAAGP,YAAY,CAACW,GAAG,CAACL,IAAI,CAAC;IACxC,IAAI,CAACC,SAAS,EAAE;MACd,OAAOK,SAAS;IAClB;IACA,OAAO,CACLN,IAAI,EACJC,SAAS,CAACC,YAAY,EACtBD,SAAS,CAACE,WAAW,CACtB;EACH,CAAC,CAAC,CACDP,MAAM,CAAEC,IAAI,IAAiCA,IAAI,KAAKS,SAAS,CAAC;AACrE,CAAC;AAACC,OAAA,CAAAnB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validateData.js","names":["validateData","priceCandlesData","orderPositionData","hasValidCandles","_priceCandlesData$pri","_priceCandlesData$pri2","_orderPositionData$or","_orderPositionData$or2","hasValidPriceData","priceCandles","candle","length","hasValidOrderData","orderPositionBooks","Error","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/validateData.ts"],"sourcesContent":["import type {\n GetOrderPositionBooksQuery,\n GetPriceCandlesQuery,\n} from '../../../../gql/types/graphql';\n\nexport const validateData = (\n priceCandlesData: GetPriceCandlesQuery | undefined,\n orderPositionData: GetOrderPositionBooksQuery | undefined,\n hasValidCandles: boolean\n): Error | null => {\n const hasValidPriceData =\n (priceCandlesData?.priceCandles?.candle?.length ?? 0) >= 1;\n const hasValidOrderData =\n (orderPositionData?.orderPositionBooks?.length ?? 0) >= 1;\n\n if (!hasValidPriceData) {\n return new Error('Insufficient price candle data');\n }\n if (!hasValidOrderData) {\n return new Error('Insufficient order position data');\n }\n if (!hasValidCandles) {\n return new Error('Invalid candle data');\n }\n\n return null;\n};\n"],"mappings":";;;;;;AAKO,MAAMA,YAAY,GAAGA,CAC1BC,gBAAkD,EAClDC,iBAAyD,EACzDC,eAAwB,KACP;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,sBAAA;EACjB,MAAMC,iBAAiB,GACrB,EAAAJ,qBAAA,GAACH,gBAAgB,aAAhBA,gBAAgB,gBAAAI,sBAAA,GAAhBJ,gBAAgB,CAAEQ,YAAY,cAAAJ,sBAAA,gBAAAA,sBAAA,GAA9BA,sBAAA,CAAgCK,MAAM,cAAAL,sBAAA,uBAAtCA,sBAAA,CAAwCM,MAAM,cAAAP,qBAAA,cAAAA,qBAAA,GAAI,CAAC,KAAK,CAAC;EAC5D,MAAMQ,iBAAiB,GACrB,EAAAN,qBAAA,GAACJ,iBAAiB,aAAjBA,iBAAiB,gBAAAK,sBAAA,GAAjBL,iBAAiB,CAAEW,kBAAkB,cAAAN,sBAAA,uBAArCA,sBAAA,CAAuCI,MAAM,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,CAAC,KAAK,CAAC;EAE3D,IAAI,CAACE,iBAAiB,EAAE;IACtB,OAAO,IAAIM,KAAK,CAAC,gCAAgC,CAAC;EACpD;EACA,IAAI,CAACF,iBAAiB,EAAE;IACtB,OAAO,IAAIE,KAAK,CAAC,kCAAkC,CAAC;EACtD;EACA,IAAI,CAACX,eAAe,EAAE;IACpB,OAAO,IAAIW,KAAK,CAAC,qBAAqB,CAAC;EACzC;EAEA,OAAO,IAAI;AACb,CAAC;AAACC,OAAA,CAAAf,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentUtils.js","names":["_graphql","require","_selectConfig","getInstrumentConfigForDivision","division","Division","Oc","instrumentSelectConfigOC","instrumentSelectConfig","exports"],"sources":["../../../../src/CrowdViewWidget/utils/instrumentUtils.ts"],"sourcesContent":["import { Division } from '../../gql/types/graphql';\nimport {\n instrumentSelectConfig,\n instrumentSelectConfigOC,\n} from '../selectConfig';\n\nexport const getInstrumentConfigForDivision = (division: Division) => {\n return division === Division.Oc\n ? instrumentSelectConfigOC\n : instrumentSelectConfig;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAKO,MAAME,8BAA8B,GAAIC,QAAkB,IAAK;EACpE,OAAOA,QAAQ,KAAKC,iBAAQ,CAACC,EAAE,GAC3BC,sCAAwB,GACxBC,oCAAsB;AAC5B,CAAC;AAACC,OAAA,CAAAN,8BAAA,GAAAA,8BAAA","ignoreList":[]}
|
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
import chroma from 'chroma-js';
|
|
2
|
-
import { CHART_CONFIG, CHART_CONFIG_CALCULATED } from '../../constants';
|
|
3
|
-
import { formatXAxisLabel, getLabelData, getRectColor, getTooltipFormatter, isDifferenceGreaterThanTwoWeeks } from './utils/chartUtils';
|
|
4
|
-
import { getChartStyles } from './utils/getChartStyles';
|
|
5
|
-
import { getGridLines } from './utils/getGridLines';
|
|
6
|
-
export const getOption = (_ref, isDark, isDesktop, labelCallback) => {
|
|
7
|
-
let {
|
|
8
|
-
xAxisData,
|
|
9
|
-
candlesSeriesData,
|
|
10
|
-
orderPositionBooks,
|
|
11
|
-
bucketWidth,
|
|
12
|
-
buckets,
|
|
13
|
-
precision,
|
|
14
|
-
bookType,
|
|
15
|
-
sentiments
|
|
16
|
-
} = _ref;
|
|
17
|
-
let selectedPrice;
|
|
18
|
-
const {
|
|
19
|
-
sentimentLongColor,
|
|
20
|
-
sentimentShortColor,
|
|
21
|
-
candleLongColor,
|
|
22
|
-
candleShortColor,
|
|
23
|
-
sentimentAreaOpacity,
|
|
24
|
-
tooltipLinesColor,
|
|
25
|
-
sentimentLabelColor
|
|
26
|
-
} = getChartStyles(isDark);
|
|
27
|
-
const visibleXAxisData = xAxisData.slice(xAxisData.length * CHART_CONFIG.INITIAL_START_ZOOM / 100, xAxisData.length * CHART_CONFIG.INITIAL_END_ZOOM / 100);
|
|
28
|
-
const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(visibleXAxisData[0], visibleXAxisData[visibleXAxisData.length - 1]);
|
|
29
|
-
const labelsData = getLabelData({
|
|
30
|
-
xAxisData,
|
|
31
|
-
isGreaterThanTwoWeeks
|
|
32
|
-
});
|
|
33
|
-
const gridMainLines = getGridLines({
|
|
34
|
-
isDark,
|
|
35
|
-
isDesktop
|
|
36
|
-
});
|
|
37
|
-
return {
|
|
38
|
-
animation: false,
|
|
39
|
-
dataZoom: [{
|
|
40
|
-
id: 'main',
|
|
41
|
-
type: 'inside',
|
|
42
|
-
xAxisIndex: 0,
|
|
43
|
-
start: CHART_CONFIG.INITIAL_START_ZOOM,
|
|
44
|
-
end: CHART_CONFIG.INITIAL_END_ZOOM,
|
|
45
|
-
filterMode: 'filter'
|
|
46
|
-
}, {
|
|
47
|
-
id: 'sentiment',
|
|
48
|
-
type: 'inside',
|
|
49
|
-
xAxisIndex: 1,
|
|
50
|
-
start: CHART_CONFIG.INITIAL_START_ZOOM,
|
|
51
|
-
end: CHART_CONFIG.INITIAL_END_ZOOM,
|
|
52
|
-
filterMode: 'none'
|
|
53
|
-
}],
|
|
54
|
-
tooltip: {
|
|
55
|
-
trigger: 'axis',
|
|
56
|
-
axisPointer: {
|
|
57
|
-
type: 'cross',
|
|
58
|
-
axis: 'x',
|
|
59
|
-
lineStyle: {
|
|
60
|
-
color: tooltipLinesColor
|
|
61
|
-
},
|
|
62
|
-
crossStyle: {
|
|
63
|
-
color: tooltipLinesColor
|
|
64
|
-
},
|
|
65
|
-
label: {
|
|
66
|
-
padding: 0,
|
|
67
|
-
lineHeight: 24,
|
|
68
|
-
formatter: params => {
|
|
69
|
-
if (params.axisDimension === 'y' && params.axisIndex === 0) {
|
|
70
|
-
selectedPrice = Number(params.value);
|
|
71
|
-
return " ".concat(Number(params.value).toFixed(precision), " ");
|
|
72
|
-
}
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
confine: true,
|
|
78
|
-
formatter: params => getTooltipFormatter({
|
|
79
|
-
params,
|
|
80
|
-
buckets,
|
|
81
|
-
bucketWidth,
|
|
82
|
-
selectedPrice,
|
|
83
|
-
labelCallback,
|
|
84
|
-
precision,
|
|
85
|
-
bookType
|
|
86
|
-
})
|
|
87
|
-
},
|
|
88
|
-
xAxis: [{
|
|
89
|
-
type: 'category',
|
|
90
|
-
name: 'xAxis-less-than-two-weeks',
|
|
91
|
-
nameTextStyle: {
|
|
92
|
-
fontSize: 0
|
|
93
|
-
},
|
|
94
|
-
id: 'main-xAxis',
|
|
95
|
-
data: xAxisData,
|
|
96
|
-
splitNumber: 1,
|
|
97
|
-
axisTick: {
|
|
98
|
-
show: false
|
|
99
|
-
},
|
|
100
|
-
axisLabel: {
|
|
101
|
-
padding: [8, 16, 8, 16],
|
|
102
|
-
margin: 0,
|
|
103
|
-
formatter: value => formatXAxisLabel(value, isGreaterThanTwoWeeks)
|
|
104
|
-
}
|
|
105
|
-
}, {
|
|
106
|
-
type: 'category',
|
|
107
|
-
gridIndex: 1,
|
|
108
|
-
show: false,
|
|
109
|
-
data: xAxisData,
|
|
110
|
-
splitNumber: 1,
|
|
111
|
-
axisTick: {
|
|
112
|
-
show: false
|
|
113
|
-
},
|
|
114
|
-
axisLabel: {
|
|
115
|
-
show: false
|
|
116
|
-
}
|
|
117
|
-
}],
|
|
118
|
-
yAxis: [{
|
|
119
|
-
type: 'value',
|
|
120
|
-
gridIndex: 0,
|
|
121
|
-
position: 'right',
|
|
122
|
-
min: val => val.min - bucketWidth * 2,
|
|
123
|
-
max: val => val.max + bucketWidth * 2,
|
|
124
|
-
axisLine: {
|
|
125
|
-
show: false
|
|
126
|
-
},
|
|
127
|
-
axisTick: {
|
|
128
|
-
show: false
|
|
129
|
-
},
|
|
130
|
-
axisLabel: {
|
|
131
|
-
showMaxLabel: false,
|
|
132
|
-
showMinLabel: false,
|
|
133
|
-
margin: isDesktop ? 4 : 2,
|
|
134
|
-
formatter: value => value.toFixed(precision - 1)
|
|
135
|
-
}
|
|
136
|
-
}, {
|
|
137
|
-
type: 'value',
|
|
138
|
-
gridIndex: 1,
|
|
139
|
-
position: 'right',
|
|
140
|
-
min: CHART_CONFIG.SENTIMENT_MIN,
|
|
141
|
-
max: CHART_CONFIG.SENTIMENT_MAX,
|
|
142
|
-
interval: CHART_CONFIG.SENTIMENT_INTERVAL,
|
|
143
|
-
axisLine: {
|
|
144
|
-
show: false
|
|
145
|
-
},
|
|
146
|
-
axisTick: {
|
|
147
|
-
show: false
|
|
148
|
-
},
|
|
149
|
-
axisLabel: {
|
|
150
|
-
verticalAlignMaxLabel: 'top',
|
|
151
|
-
verticalAlignMinLabel: 'bottom',
|
|
152
|
-
lineHeight: 20,
|
|
153
|
-
margin: isDesktop ? 4 : 2,
|
|
154
|
-
rich: {
|
|
155
|
-
shortRect: {
|
|
156
|
-
backgroundColor: chroma(sentimentShortColor).alpha(0.3).css(),
|
|
157
|
-
borderColor: sentimentShortColor,
|
|
158
|
-
borderWidth: 1,
|
|
159
|
-
width: 8,
|
|
160
|
-
height: 8
|
|
161
|
-
},
|
|
162
|
-
longRect: {
|
|
163
|
-
backgroundColor: chroma(sentimentLongColor).alpha(0.3).css(),
|
|
164
|
-
borderColor: sentimentLongColor,
|
|
165
|
-
borderWidth: 1,
|
|
166
|
-
width: 8,
|
|
167
|
-
height: 8
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
formatter: value => {
|
|
171
|
-
if (value === CHART_CONFIG.SENTIMENT_MIN) {
|
|
172
|
-
return "{shortRect| } ".concat(labelCallback('short'));
|
|
173
|
-
}
|
|
174
|
-
if (value === CHART_CONFIG.SENTIMENT_MAX) {
|
|
175
|
-
return "{longRect| } ".concat(labelCallback('long'));
|
|
176
|
-
}
|
|
177
|
-
if (value === CHART_CONFIG.SENTIMENT_MAX / 2) {
|
|
178
|
-
return '50%';
|
|
179
|
-
}
|
|
180
|
-
return undefined;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}],
|
|
184
|
-
axisPointer: {
|
|
185
|
-
link: [{
|
|
186
|
-
xAxisIndex: 'all'
|
|
187
|
-
}]
|
|
188
|
-
},
|
|
189
|
-
visualMap: {
|
|
190
|
-
show: false,
|
|
191
|
-
seriesId: 'sentiment',
|
|
192
|
-
dimension: 1,
|
|
193
|
-
pieces: [{
|
|
194
|
-
lt: CHART_CONFIG.SENTIMENT_MAX / 2,
|
|
195
|
-
color: sentimentShortColor
|
|
196
|
-
}, {
|
|
197
|
-
gte: CHART_CONFIG.SENTIMENT_MAX / 2,
|
|
198
|
-
lte: CHART_CONFIG.SENTIMENT_MAX,
|
|
199
|
-
color: sentimentLongColor
|
|
200
|
-
}, {
|
|
201
|
-
gt: CHART_CONFIG.SENTIMENT_MAX,
|
|
202
|
-
color: sentimentLongColor
|
|
203
|
-
}]
|
|
204
|
-
},
|
|
205
|
-
series: [{
|
|
206
|
-
type: 'candlestick',
|
|
207
|
-
id: 'candlestick',
|
|
208
|
-
gridIndex: 0,
|
|
209
|
-
xAxisIndex: 0,
|
|
210
|
-
yAxisIndex: 0,
|
|
211
|
-
data: candlesSeriesData,
|
|
212
|
-
itemStyle: {
|
|
213
|
-
color: chroma(candleShortColor).desaturate().css(),
|
|
214
|
-
color0: chroma(candleLongColor).desaturate().css(),
|
|
215
|
-
borderColor: candleShortColor,
|
|
216
|
-
borderColor0: candleLongColor
|
|
217
|
-
},
|
|
218
|
-
emphasis: {
|
|
219
|
-
itemStyle: {
|
|
220
|
-
color: candleShortColor,
|
|
221
|
-
color0: candleLongColor
|
|
222
|
-
}
|
|
223
|
-
},
|
|
224
|
-
markPoint: {
|
|
225
|
-
symbol: 'circle',
|
|
226
|
-
symbolSize: 0,
|
|
227
|
-
data: labelsData
|
|
228
|
-
}
|
|
229
|
-
}, {
|
|
230
|
-
type: 'custom',
|
|
231
|
-
gridIndex: 0,
|
|
232
|
-
name: 'heatmap',
|
|
233
|
-
id: 'heatmap',
|
|
234
|
-
xAxisIndex: 0,
|
|
235
|
-
yAxisIndex: 0,
|
|
236
|
-
silent: true,
|
|
237
|
-
clip: true,
|
|
238
|
-
renderItem: (_params, api) => {
|
|
239
|
-
const xVal = api.value(0);
|
|
240
|
-
const bucketIndex = api.value(2);
|
|
241
|
-
const metaValues = buckets[bucketIndex];
|
|
242
|
-
const [rectWidth, rectHeight] = api.size([0, bucketWidth]);
|
|
243
|
-
const items = metaValues.map(_ref2 => {
|
|
244
|
-
let {
|
|
245
|
-
price,
|
|
246
|
-
sentiment
|
|
247
|
-
} = _ref2;
|
|
248
|
-
const start = api.coord([xVal, price]);
|
|
249
|
-
return {
|
|
250
|
-
type: 'rect',
|
|
251
|
-
shape: {
|
|
252
|
-
x: start[0] - rectWidth / 2,
|
|
253
|
-
y: start[1] - rectHeight,
|
|
254
|
-
width: rectWidth + 1,
|
|
255
|
-
height: rectHeight
|
|
256
|
-
},
|
|
257
|
-
style: {
|
|
258
|
-
fill: getRectColor(sentiment, isDark)
|
|
259
|
-
},
|
|
260
|
-
silent: true,
|
|
261
|
-
emphasisDisabled: true
|
|
262
|
-
};
|
|
263
|
-
});
|
|
264
|
-
return {
|
|
265
|
-
type: 'group',
|
|
266
|
-
children: items,
|
|
267
|
-
silent: true,
|
|
268
|
-
emphasisDisabled: true
|
|
269
|
-
};
|
|
270
|
-
},
|
|
271
|
-
data: orderPositionBooks
|
|
272
|
-
}, {
|
|
273
|
-
type: 'line',
|
|
274
|
-
name: 'sentiment-short',
|
|
275
|
-
id: 'sentiment',
|
|
276
|
-
xAxisIndex: 1,
|
|
277
|
-
yAxisIndex: 1,
|
|
278
|
-
data: sentiments,
|
|
279
|
-
showSymbol: false,
|
|
280
|
-
symbol: 'none',
|
|
281
|
-
lineStyle: {
|
|
282
|
-
width: 3,
|
|
283
|
-
opacity: 1
|
|
284
|
-
},
|
|
285
|
-
areaStyle: {
|
|
286
|
-
color: sentimentShortColor,
|
|
287
|
-
opacity: sentimentAreaOpacity
|
|
288
|
-
},
|
|
289
|
-
emphasis: {
|
|
290
|
-
areaStyle: {
|
|
291
|
-
opacity: 0
|
|
292
|
-
}
|
|
293
|
-
},
|
|
294
|
-
stack: 'sentiment'
|
|
295
|
-
}, {
|
|
296
|
-
type: 'line',
|
|
297
|
-
name: 'sentiment-long',
|
|
298
|
-
id: 'sentiment-long',
|
|
299
|
-
xAxisIndex: 1,
|
|
300
|
-
yAxisIndex: 1,
|
|
301
|
-
data: sentiments.map(sentiment => [sentiment[0], sentiment[2]]),
|
|
302
|
-
symbol: 'none',
|
|
303
|
-
lineStyle: {
|
|
304
|
-
color: 'transparent',
|
|
305
|
-
width: 0
|
|
306
|
-
},
|
|
307
|
-
areaStyle: {
|
|
308
|
-
color: sentimentLongColor,
|
|
309
|
-
opacity: sentimentAreaOpacity
|
|
310
|
-
},
|
|
311
|
-
stack: 'sentiment',
|
|
312
|
-
emphasis: {
|
|
313
|
-
disabled: true
|
|
314
|
-
},
|
|
315
|
-
tooltip: {
|
|
316
|
-
show: false
|
|
317
|
-
}
|
|
318
|
-
}],
|
|
319
|
-
grid: [{
|
|
320
|
-
name: 'main-grid',
|
|
321
|
-
id: 'main-grid',
|
|
322
|
-
height: "".concat(CHART_CONFIG.MAIN_HEIGHT, "px"),
|
|
323
|
-
top: '0px',
|
|
324
|
-
left: '0px',
|
|
325
|
-
right: "".concat(isDesktop ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : CHART_CONFIG.Y_LABEL_SIZE_MOBILE, "px"),
|
|
326
|
-
bottom: "".concat(CHART_CONFIG.X_LABEL_SIZE, "px")
|
|
327
|
-
}, {
|
|
328
|
-
name: 'sentiment-grid',
|
|
329
|
-
id: 'sentiment-grid',
|
|
330
|
-
height: "".concat(CHART_CONFIG.SENTIMENT_HEIGHT, "px"),
|
|
331
|
-
bottom: "0px",
|
|
332
|
-
left: '0px',
|
|
333
|
-
right: "".concat(isDesktop ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : CHART_CONFIG.Y_LABEL_SIZE_MOBILE, "px")
|
|
334
|
-
}],
|
|
335
|
-
graphic: [...gridMainLines, {
|
|
336
|
-
type: 'text',
|
|
337
|
-
silent: true,
|
|
338
|
-
z: 1,
|
|
339
|
-
left: 4,
|
|
340
|
-
bottom: CHART_CONFIG_CALCULATED.SENTIMENT_TEXT_POSITION,
|
|
341
|
-
style: {
|
|
342
|
-
text: "".concat(labelCallback('sentiment'), ":"),
|
|
343
|
-
fontFamily: 'Sofia W03',
|
|
344
|
-
fontSize: 14,
|
|
345
|
-
fontWeight: 'bold',
|
|
346
|
-
fill: sentimentLabelColor
|
|
347
|
-
}
|
|
348
|
-
}]
|
|
349
|
-
};
|
|
350
|
-
};
|
|
351
|
-
//# sourceMappingURL=chartOptions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chartOptions.js","names":["chroma","CHART_CONFIG","CHART_CONFIG_CALCULATED","formatXAxisLabel","getLabelData","getRectColor","getTooltipFormatter","isDifferenceGreaterThanTwoWeeks","getChartStyles","getGridLines","getOption","_ref","isDark","isDesktop","labelCallback","xAxisData","candlesSeriesData","orderPositionBooks","bucketWidth","buckets","precision","bookType","sentiments","selectedPrice","sentimentLongColor","sentimentShortColor","candleLongColor","candleShortColor","sentimentAreaOpacity","tooltipLinesColor","sentimentLabelColor","visibleXAxisData","slice","length","INITIAL_START_ZOOM","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","labelsData","gridMainLines","animation","dataZoom","id","type","xAxisIndex","start","end","filterMode","tooltip","trigger","axisPointer","axis","lineStyle","color","crossStyle","label","padding","lineHeight","formatter","params","axisDimension","axisIndex","Number","value","concat","toFixed","confine","xAxis","name","nameTextStyle","fontSize","data","splitNumber","axisTick","show","axisLabel","margin","gridIndex","yAxis","position","min","val","max","axisLine","showMaxLabel","showMinLabel","SENTIMENT_MIN","SENTIMENT_MAX","interval","SENTIMENT_INTERVAL","verticalAlignMaxLabel","verticalAlignMinLabel","rich","shortRect","backgroundColor","alpha","css","borderColor","borderWidth","width","height","longRect","undefined","link","visualMap","seriesId","dimension","pieces","lt","gte","lte","gt","series","yAxisIndex","itemStyle","desaturate","color0","borderColor0","emphasis","markPoint","symbol","symbolSize","silent","clip","renderItem","_params","api","xVal","bucketIndex","metaValues","rectWidth","rectHeight","size","items","map","_ref2","price","sentiment","coord","shape","x","y","style","fill","emphasisDisabled","children","showSymbol","opacity","areaStyle","stack","disabled","grid","MAIN_HEIGHT","top","left","right","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","bottom","X_LABEL_SIZE","SENTIMENT_HEIGHT","graphic","z","SENTIMENT_TEXT_POSITION","text","fontFamily","fontWeight"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/chartOptions.ts"],"sourcesContent":["import chroma from 'chroma-js';\n\nimport { CHART_CONFIG, CHART_CONFIG_CALCULATED } from '../../constants';\nimport type { Bucket, GetOptionType, TooltipParam } from './types';\nimport {\n formatXAxisLabel,\n getLabelData,\n getRectColor,\n getTooltipFormatter,\n isDifferenceGreaterThanTwoWeeks,\n} from './utils/chartUtils';\nimport { getChartStyles } from './utils/getChartStyles';\nimport { getGridLines } from './utils/getGridLines';\n\n// @ts-expect-error\nexport const getOption: GetOptionType = (\n {\n xAxisData,\n candlesSeriesData,\n orderPositionBooks,\n bucketWidth,\n buckets,\n precision,\n bookType,\n sentiments,\n },\n isDark,\n isDesktop,\n labelCallback\n) => {\n let selectedPrice: number;\n const {\n sentimentLongColor,\n sentimentShortColor,\n candleLongColor,\n candleShortColor,\n sentimentAreaOpacity,\n tooltipLinesColor,\n sentimentLabelColor,\n } = getChartStyles(isDark);\n\n const visibleXAxisData = xAxisData.slice(\n (xAxisData.length * CHART_CONFIG.INITIAL_START_ZOOM) / 100,\n (xAxisData.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const labelsData = getLabelData({\n xAxisData,\n isGreaterThanTwoWeeks,\n });\n\n const gridMainLines = getGridLines({\n isDark,\n isDesktop,\n });\n\n return {\n animation: false,\n dataZoom: [\n {\n id: 'main',\n type: 'inside',\n xAxisIndex: 0,\n start: CHART_CONFIG.INITIAL_START_ZOOM,\n end: CHART_CONFIG.INITIAL_END_ZOOM,\n filterMode: 'filter',\n },\n {\n id: 'sentiment',\n type: 'inside',\n xAxisIndex: 1,\n start: CHART_CONFIG.INITIAL_START_ZOOM,\n end: CHART_CONFIG.INITIAL_END_ZOOM,\n filterMode: 'none',\n },\n ],\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n axis: 'x',\n lineStyle: {\n color: tooltipLinesColor,\n },\n crossStyle: {\n color: tooltipLinesColor,\n },\n label: {\n padding: 0,\n lineHeight: 24,\n formatter: (params) => {\n if (params.axisDimension === 'y' && params.axisIndex === 0) {\n selectedPrice = Number(params.value);\n return ` ${Number(params.value).toFixed(precision)} `;\n }\n\n return null;\n },\n },\n },\n confine: true,\n formatter: (params: TooltipParam[]) =>\n getTooltipFormatter({\n params,\n buckets,\n bucketWidth,\n selectedPrice,\n labelCallback,\n precision,\n bookType,\n }),\n },\n xAxis: [\n {\n type: 'category',\n name: 'xAxis-less-than-two-weeks',\n nameTextStyle: {\n fontSize: 0,\n },\n id: 'main-xAxis',\n data: xAxisData,\n splitNumber: 1,\n axisTick: {\n show: false,\n },\n axisLabel: {\n padding: [8, 16, 8, 16],\n margin: 0,\n formatter: (value) => formatXAxisLabel(value, isGreaterThanTwoWeeks),\n },\n },\n {\n type: 'category',\n gridIndex: 1,\n show: false,\n data: xAxisData,\n splitNumber: 1,\n axisTick: {\n show: false,\n },\n axisLabel: {\n show: false,\n },\n },\n ],\n yAxis: [\n {\n type: 'value',\n gridIndex: 0,\n position: 'right',\n min: (val) => val.min - bucketWidth * 2,\n max: (val) => val.max + bucketWidth * 2,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n showMaxLabel: false,\n showMinLabel: false,\n margin: isDesktop ? 4 : 2,\n formatter: (value: number) => value.toFixed(precision - 1),\n },\n },\n {\n type: 'value',\n gridIndex: 1,\n position: 'right',\n min: CHART_CONFIG.SENTIMENT_MIN,\n max: CHART_CONFIG.SENTIMENT_MAX,\n interval: CHART_CONFIG.SENTIMENT_INTERVAL,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n verticalAlignMaxLabel: 'top',\n verticalAlignMinLabel: 'bottom',\n lineHeight: 20,\n margin: isDesktop ? 4 : 2,\n rich: {\n shortRect: {\n backgroundColor: chroma(sentimentShortColor).alpha(0.3).css(),\n borderColor: sentimentShortColor,\n borderWidth: 1,\n width: 8,\n height: 8,\n },\n longRect: {\n backgroundColor: chroma(sentimentLongColor).alpha(0.3).css(),\n borderColor: sentimentLongColor,\n borderWidth: 1,\n width: 8,\n height: 8,\n },\n },\n formatter: (value: number) => {\n if (value === CHART_CONFIG.SENTIMENT_MIN) {\n return `{shortRect| } ${labelCallback('short')}`;\n }\n\n if (value === CHART_CONFIG.SENTIMENT_MAX) {\n return `{longRect| } ${labelCallback('long')}`;\n }\n\n if (value === CHART_CONFIG.SENTIMENT_MAX / 2) {\n return '50%';\n }\n\n return undefined;\n },\n },\n },\n ],\n axisPointer: {\n link: [\n {\n xAxisIndex: 'all',\n },\n ],\n },\n visualMap: {\n show: false,\n seriesId: 'sentiment',\n dimension: 1,\n pieces: [\n {\n lt: CHART_CONFIG.SENTIMENT_MAX / 2,\n color: sentimentShortColor,\n },\n {\n gte: CHART_CONFIG.SENTIMENT_MAX / 2,\n lte: CHART_CONFIG.SENTIMENT_MAX,\n color: sentimentLongColor,\n },\n {\n gt: CHART_CONFIG.SENTIMENT_MAX,\n color: sentimentLongColor,\n },\n ],\n },\n series: [\n {\n type: 'candlestick',\n id: 'candlestick',\n gridIndex: 0,\n xAxisIndex: 0,\n yAxisIndex: 0,\n data: candlesSeriesData,\n itemStyle: {\n color: chroma(candleShortColor).desaturate().css(),\n color0: chroma(candleLongColor).desaturate().css(),\n borderColor: candleShortColor,\n borderColor0: candleLongColor,\n },\n emphasis: {\n itemStyle: {\n color: candleShortColor,\n color0: candleLongColor,\n },\n },\n markPoint: {\n symbol: 'circle',\n symbolSize: 0,\n data: labelsData,\n },\n },\n {\n type: 'custom',\n gridIndex: 0,\n name: 'heatmap',\n id: 'heatmap',\n xAxisIndex: 0,\n yAxisIndex: 0,\n silent: true,\n clip: true,\n renderItem: (_params, api) => {\n const xVal = api.value(0);\n const bucketIndex = api.value(2) as number;\n const metaValues = buckets[bucketIndex];\n\n const [rectWidth, rectHeight] = api.size!([\n 0,\n bucketWidth,\n ]) as number[];\n\n const items = metaValues.map(({ price, sentiment }: Bucket) => {\n const start = api.coord([xVal, price]);\n\n return {\n type: 'rect',\n shape: {\n x: start[0] - rectWidth / 2,\n y: start[1] - rectHeight,\n width: rectWidth + 1,\n height: rectHeight,\n },\n style: {\n fill: getRectColor(sentiment, isDark),\n },\n silent: true,\n emphasisDisabled: true,\n };\n });\n\n return {\n type: 'group',\n children: items,\n silent: true,\n emphasisDisabled: true,\n };\n },\n data: orderPositionBooks,\n },\n {\n type: 'line',\n name: 'sentiment-short',\n id: 'sentiment',\n xAxisIndex: 1,\n yAxisIndex: 1,\n data: sentiments,\n showSymbol: false,\n symbol: 'none',\n lineStyle: {\n width: 3,\n opacity: 1,\n },\n areaStyle: {\n color: sentimentShortColor,\n opacity: sentimentAreaOpacity,\n },\n emphasis: {\n areaStyle: {\n opacity: 0,\n },\n },\n stack: 'sentiment',\n },\n {\n type: 'line',\n name: 'sentiment-long',\n id: 'sentiment-long',\n xAxisIndex: 1,\n yAxisIndex: 1,\n data: sentiments.map((sentiment) => [sentiment[0], sentiment[2]]),\n symbol: 'none',\n lineStyle: {\n color: 'transparent',\n width: 0,\n },\n areaStyle: {\n color: sentimentLongColor,\n opacity: sentimentAreaOpacity,\n },\n stack: 'sentiment',\n emphasis: {\n disabled: true,\n },\n tooltip: {\n show: false,\n },\n },\n ],\n grid: [\n {\n name: 'main-grid',\n id: 'main-grid',\n height: `${CHART_CONFIG.MAIN_HEIGHT}px`,\n top: '0px',\n left: '0px',\n right: `${isDesktop ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : CHART_CONFIG.Y_LABEL_SIZE_MOBILE}px`,\n bottom: `${CHART_CONFIG.X_LABEL_SIZE}px`,\n },\n {\n name: 'sentiment-grid',\n id: 'sentiment-grid',\n height: `${CHART_CONFIG.SENTIMENT_HEIGHT}px`,\n bottom: `0px`,\n left: '0px',\n right: `${isDesktop ? CHART_CONFIG.Y_LABEL_SIZE_DESKTOP : CHART_CONFIG.Y_LABEL_SIZE_MOBILE}px`,\n },\n ],\n graphic: [\n ...gridMainLines,\n {\n type: 'text',\n silent: true,\n z: 1,\n left: 4,\n bottom: CHART_CONFIG_CALCULATED.SENTIMENT_TEXT_POSITION,\n style: {\n text: `${labelCallback('sentiment')}:`,\n fontFamily: 'Sofia W03',\n fontSize: 14,\n fontWeight: 'bold',\n fill: sentimentLabelColor,\n },\n },\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import Decimal from 'decimal.js';
|
|
2
|
-
export const aggregateBuckets = (buckets, newBucketWidth) => {
|
|
3
|
-
if (!buckets.length) {
|
|
4
|
-
return [];
|
|
5
|
-
}
|
|
6
|
-
const bucketWidthDecimal = new Decimal(newBucketWidth);
|
|
7
|
-
const aggregatedMap = new Map();
|
|
8
|
-
for (const bucket of buckets) {
|
|
9
|
-
var _aggregatedMap$get;
|
|
10
|
-
const priceDecimal = new Decimal(bucket.price);
|
|
11
|
-
const sentimentDecimal = new Decimal(bucket.sentiment);
|
|
12
|
-
const bucketIndex = priceDecimal.div(bucketWidthDecimal).floor();
|
|
13
|
-
const groupingKey = bucketIndex.mul(bucketWidthDecimal);
|
|
14
|
-
const groupingKeyStr = groupingKey.toString();
|
|
15
|
-
const currentSentiment = (_aggregatedMap$get = aggregatedMap.get(groupingKeyStr)) !== null && _aggregatedMap$get !== void 0 ? _aggregatedMap$get : new Decimal(0);
|
|
16
|
-
aggregatedMap.set(groupingKeyStr, currentSentiment.add(sentimentDecimal));
|
|
17
|
-
}
|
|
18
|
-
const aggregatedBuckets = Array.from(aggregatedMap.entries()).map(_ref => {
|
|
19
|
-
let [priceStr, sentimentDecimal] = _ref;
|
|
20
|
-
const price = new Decimal(priceStr).toNumber();
|
|
21
|
-
const sentiment = sentimentDecimal.toNumber();
|
|
22
|
-
return {
|
|
23
|
-
price,
|
|
24
|
-
sentiment
|
|
25
|
-
};
|
|
26
|
-
});
|
|
27
|
-
return aggregatedBuckets;
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=aggregateBuckets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aggregateBuckets.js","names":["Decimal","aggregateBuckets","buckets","newBucketWidth","length","bucketWidthDecimal","aggregatedMap","Map","bucket","_aggregatedMap$get","priceDecimal","price","sentimentDecimal","sentiment","bucketIndex","div","floor","groupingKey","mul","groupingKeyStr","toString","currentSentiment","get","set","add","aggregatedBuckets","Array","from","entries","map","_ref","priceStr","toNumber"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/aggregateBuckets.ts"],"sourcesContent":["import Decimal from 'decimal.js';\n\nimport type { Bucket } from '../types';\n\nexport const aggregateBuckets = (\n buckets: Bucket[],\n newBucketWidth: number\n): Bucket[] => {\n if (!buckets.length) {\n return [];\n }\n\n const bucketWidthDecimal = new Decimal(newBucketWidth);\n\n const aggregatedMap = new Map<string, Decimal>();\n\n for (const bucket of buckets) {\n const priceDecimal = new Decimal(bucket.price);\n const sentimentDecimal = new Decimal(bucket.sentiment);\n\n const bucketIndex = priceDecimal.div(bucketWidthDecimal).floor();\n const groupingKey = bucketIndex.mul(bucketWidthDecimal);\n\n const groupingKeyStr = groupingKey.toString();\n\n const currentSentiment =\n aggregatedMap.get(groupingKeyStr) ?? new Decimal(0);\n aggregatedMap.set(groupingKeyStr, currentSentiment.add(sentimentDecimal));\n }\n\n const aggregatedBuckets = Array.from(aggregatedMap.entries()).map(\n ([priceStr, sentimentDecimal]) => {\n const price = new Decimal(priceStr).toNumber();\n const sentiment = sentimentDecimal.toNumber();\n\n return {\n price,\n sentiment,\n };\n }\n );\n\n return aggregatedBuckets;\n};\n"],"mappings":"AAAA,OAAOA,OAAO,MAAM,YAAY;AAIhC,OAAO,MAAMC,gBAAgB,GAAGA,CAC9BC,OAAiB,EACjBC,cAAsB,KACT;EACb,IAAI,CAACD,OAAO,CAACE,MAAM,EAAE;IACnB,OAAO,EAAE;EACX;EAEA,MAAMC,kBAAkB,GAAG,IAAIL,OAAO,CAACG,cAAc,CAAC;EAEtD,MAAMG,aAAa,GAAG,IAAIC,GAAG,CAAkB,CAAC;EAEhD,KAAK,MAAMC,MAAM,IAAIN,OAAO,EAAE;IAAA,IAAAO,kBAAA;IAC5B,MAAMC,YAAY,GAAG,IAAIV,OAAO,CAACQ,MAAM,CAACG,KAAK,CAAC;IAC9C,MAAMC,gBAAgB,GAAG,IAAIZ,OAAO,CAACQ,MAAM,CAACK,SAAS,CAAC;IAEtD,MAAMC,WAAW,GAAGJ,YAAY,CAACK,GAAG,CAACV,kBAAkB,CAAC,CAACW,KAAK,CAAC,CAAC;IAChE,MAAMC,WAAW,GAAGH,WAAW,CAACI,GAAG,CAACb,kBAAkB,CAAC;IAEvD,MAAMc,cAAc,GAAGF,WAAW,CAACG,QAAQ,CAAC,CAAC;IAE7C,MAAMC,gBAAgB,IAAAZ,kBAAA,GACpBH,aAAa,CAACgB,GAAG,CAACH,cAAc,CAAC,cAAAV,kBAAA,cAAAA,kBAAA,GAAI,IAAIT,OAAO,CAAC,CAAC,CAAC;IACrDM,aAAa,CAACiB,GAAG,CAACJ,cAAc,EAAEE,gBAAgB,CAACG,GAAG,CAACZ,gBAAgB,CAAC,CAAC;EAC3E;EAEA,MAAMa,iBAAiB,GAAGC,KAAK,CAACC,IAAI,CAACrB,aAAa,CAACsB,OAAO,CAAC,CAAC,CAAC,CAACC,GAAG,CAC/DC,IAAA,IAAkC;IAAA,IAAjC,CAACC,QAAQ,EAAEnB,gBAAgB,CAAC,GAAAkB,IAAA;IAC3B,MAAMnB,KAAK,GAAG,IAAIX,OAAO,CAAC+B,QAAQ,CAAC,CAACC,QAAQ,CAAC,CAAC;IAC9C,MAAMnB,SAAS,GAAGD,gBAAgB,CAACoB,QAAQ,CAAC,CAAC;IAE7C,OAAO;MACLrB,KAAK;MACLE;IACF,CAAC;EACH,CACF,CAAC;EAED,OAAOY,iBAAiB;AAC1B,CAAC","ignoreList":[]}
|