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

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 (134) hide show
  1. package/CHANGELOG.md +216 -0
  2. package/dist/main/CrowdViewWidget/Main.js +1 -5
  3. package/dist/main/CrowdViewWidget/Main.js.map +1 -1
  4. package/dist/main/CrowdViewWidget/components/Chart/Chart.js +16 -6
  5. package/dist/main/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  6. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js +15 -6
  7. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  8. package/dist/main/CrowdViewWidget/components/Chart/chartOptions.js +69 -29
  9. package/dist/main/CrowdViewWidget/components/Chart/chartOptions.js.map +1 -1
  10. package/dist/main/CrowdViewWidget/components/Chart/types.js.map +1 -1
  11. package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js +49 -26
  12. package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -1
  13. package/dist/main/CrowdViewWidget/components/Chart/utils/chartUtils.js +9 -10
  14. package/dist/main/CrowdViewWidget/components/Chart/utils/chartUtils.js.map +1 -1
  15. package/dist/main/CrowdViewWidget/components/Chart/utils/index.js +0 -33
  16. package/dist/main/CrowdViewWidget/components/Chart/utils/index.js.map +1 -1
  17. package/dist/main/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js +54 -12
  18. package/dist/main/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js.map +1 -1
  19. package/dist/main/CrowdViewWidget/components/Chart/utils/processPriceCandles.js +49 -27
  20. package/dist/main/CrowdViewWidget/components/Chart/utils/processPriceCandles.js.map +1 -1
  21. package/dist/main/CrowdViewWidget/components/Chart/utils/processSentiments.js +32 -17
  22. package/dist/main/CrowdViewWidget/components/Chart/utils/processSentiments.js.map +1 -1
  23. package/dist/main/CrowdViewWidget/components/Chart/utils/validateData.js +8 -2
  24. package/dist/main/CrowdViewWidget/components/Chart/utils/validateData.js.map +1 -1
  25. package/dist/main/CrowdViewWidget/components/Legend/Legend.js +2 -3
  26. package/dist/main/CrowdViewWidget/components/Legend/Legend.js.map +1 -1
  27. package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js +2 -2
  28. package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
  29. package/dist/main/CrowdViewWidget/constants.js +2 -6
  30. package/dist/main/CrowdViewWidget/constants.js.map +1 -1
  31. package/dist/main/gql/getOrderPositionBooks.js +1 -1
  32. package/dist/main/gql/getOrderPositionBooks.js.map +1 -1
  33. package/dist/main/gql/getPriceCandles.js +1 -1
  34. package/dist/main/gql/getPriceCandles.js.map +1 -1
  35. package/dist/main/gql/types/gql.js +2 -2
  36. package/dist/main/gql/types/gql.js.map +1 -1
  37. package/dist/main/gql/types/graphql.js +111 -18
  38. package/dist/main/gql/types/graphql.js.map +1 -1
  39. package/dist/module/CrowdViewWidget/Main.js +2 -6
  40. package/dist/module/CrowdViewWidget/Main.js.map +1 -1
  41. package/dist/module/CrowdViewWidget/components/Chart/Chart.js +17 -7
  42. package/dist/module/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  43. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js +15 -6
  44. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  45. package/dist/module/CrowdViewWidget/components/Chart/chartOptions.js +70 -30
  46. package/dist/module/CrowdViewWidget/components/Chart/chartOptions.js.map +1 -1
  47. package/dist/module/CrowdViewWidget/components/Chart/types.js.map +1 -1
  48. package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js +50 -27
  49. package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -1
  50. package/dist/module/CrowdViewWidget/components/Chart/utils/chartUtils.js +10 -11
  51. package/dist/module/CrowdViewWidget/components/Chart/utils/chartUtils.js.map +1 -1
  52. package/dist/module/CrowdViewWidget/components/Chart/utils/index.js +0 -3
  53. package/dist/module/CrowdViewWidget/components/Chart/utils/index.js.map +1 -1
  54. package/dist/module/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js +54 -12
  55. package/dist/module/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js.map +1 -1
  56. package/dist/module/CrowdViewWidget/components/Chart/utils/processPriceCandles.js +49 -27
  57. package/dist/module/CrowdViewWidget/components/Chart/utils/processPriceCandles.js.map +1 -1
  58. package/dist/module/CrowdViewWidget/components/Chart/utils/processSentiments.js +32 -17
  59. package/dist/module/CrowdViewWidget/components/Chart/utils/processSentiments.js.map +1 -1
  60. package/dist/module/CrowdViewWidget/components/Chart/utils/validateData.js +8 -2
  61. package/dist/module/CrowdViewWidget/components/Chart/utils/validateData.js.map +1 -1
  62. package/dist/module/CrowdViewWidget/components/Legend/Legend.js +2 -3
  63. package/dist/module/CrowdViewWidget/components/Legend/Legend.js.map +1 -1
  64. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js +2 -2
  65. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
  66. package/dist/module/CrowdViewWidget/constants.js +1 -5
  67. package/dist/module/CrowdViewWidget/constants.js.map +1 -1
  68. package/dist/module/gql/getOrderPositionBooks.js +1 -1
  69. package/dist/module/gql/getOrderPositionBooks.js.map +1 -1
  70. package/dist/module/gql/getPriceCandles.js +1 -1
  71. package/dist/module/gql/getPriceCandles.js.map +1 -1
  72. package/dist/module/gql/types/gql.js +2 -2
  73. package/dist/module/gql/types/gql.js.map +1 -1
  74. package/dist/module/gql/types/graphql.js +111 -18
  75. package/dist/module/gql/types/graphql.js.map +1 -1
  76. package/dist/types/CrowdViewWidget/components/Chart/Chart.d.ts +1 -1
  77. package/dist/types/CrowdViewWidget/components/Chart/types.d.ts +28 -11
  78. package/dist/types/CrowdViewWidget/components/Chart/utils/chartUtils.d.ts +3 -4
  79. package/dist/types/CrowdViewWidget/components/Chart/utils/index.d.ts +0 -3
  80. package/dist/types/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.d.ts +10 -7
  81. package/dist/types/CrowdViewWidget/components/Chart/utils/processPriceCandles.d.ts +6 -21
  82. package/dist/types/CrowdViewWidget/components/Chart/utils/processSentiments.d.ts +5 -2
  83. package/dist/types/CrowdViewWidget/components/Chart/utils/validateData.d.ts +1 -1
  84. package/dist/types/CrowdViewWidget/components/Legend/Legend.d.ts +2 -2
  85. package/dist/types/CrowdViewWidget/components/Legend/LegendBar.d.ts +1 -1
  86. package/dist/types/CrowdViewWidget/constants.d.ts +1 -5
  87. package/dist/types/gql/types/gql.d.ts +6 -4
  88. package/dist/types/gql/types/graphql.d.ts +30 -11
  89. package/package.json +3 -3
  90. package/src/CrowdViewWidget/Main.tsx +2 -4
  91. package/src/CrowdViewWidget/components/Chart/Chart.tsx +15 -6
  92. package/src/CrowdViewWidget/components/Chart/ChartWithData.tsx +21 -4
  93. package/src/CrowdViewWidget/components/Chart/chartOptions.ts +78 -30
  94. package/src/CrowdViewWidget/components/Chart/types.ts +30 -19
  95. package/src/CrowdViewWidget/components/Chart/useCrowdViewData.ts +82 -65
  96. package/src/CrowdViewWidget/components/Chart/utils/chartUtils.ts +32 -20
  97. package/src/CrowdViewWidget/components/Chart/utils/index.ts +0 -3
  98. package/src/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.ts +84 -22
  99. package/src/CrowdViewWidget/components/Chart/utils/processPriceCandles.ts +52 -38
  100. package/src/CrowdViewWidget/components/Chart/utils/processSentiments.ts +45 -32
  101. package/src/CrowdViewWidget/components/Chart/utils/validateData.ts +10 -2
  102. package/src/CrowdViewWidget/components/Legend/Legend.tsx +4 -5
  103. package/src/CrowdViewWidget/components/Legend/LegendBar.tsx +3 -3
  104. package/src/CrowdViewWidget/constants.ts +1 -6
  105. package/src/gql/getOrderPositionBooks.ts +13 -5
  106. package/src/gql/getPriceCandles.ts +1 -0
  107. package/src/gql/types/gql.ts +6 -6
  108. package/src/gql/types/graphql.ts +98 -16
  109. package/test/components/Chart/utils/chartUtils.test.ts +32 -14
  110. package/test/components/Chart/utils/processSentiments.test.ts +137 -29
  111. package/test/utils/processOrderPositionBooks.test.ts +201 -84
  112. package/test/utils/processPriceCandles.test.ts +93 -67
  113. package/test/utils/validateData.test.ts +136 -38
  114. package/dist/main/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js +0 -37
  115. package/dist/main/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js.map +0 -1
  116. package/dist/main/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js +0 -14
  117. package/dist/main/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js.map +0 -1
  118. package/dist/main/CrowdViewWidget/components/Chart/utils/processBuckets.js +0 -29
  119. package/dist/main/CrowdViewWidget/components/Chart/utils/processBuckets.js.map +0 -1
  120. package/dist/module/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js +0 -29
  121. package/dist/module/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js.map +0 -1
  122. package/dist/module/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js +0 -7
  123. package/dist/module/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js.map +0 -1
  124. package/dist/module/CrowdViewWidget/components/Chart/utils/processBuckets.js +0 -22
  125. package/dist/module/CrowdViewWidget/components/Chart/utils/processBuckets.js.map +0 -1
  126. package/dist/types/CrowdViewWidget/components/Chart/utils/aggregateBuckets.d.ts +0 -2
  127. package/dist/types/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.d.ts +0 -3
  128. package/dist/types/CrowdViewWidget/components/Chart/utils/processBuckets.d.ts +0 -3
  129. package/src/CrowdViewWidget/components/Chart/utils/aggregateBuckets.ts +0 -44
  130. package/src/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.ts +0 -13
  131. package/src/CrowdViewWidget/components/Chart/utils/processBuckets.ts +0 -43
  132. package/test/utils/aggregateBuckets.test.ts +0 -82
  133. package/test/utils/getTargetBucketWidth.test.ts +0 -37
  134. package/test/utils/processBuckets.test.ts +0 -153
@@ -1 +1 @@
1
- {"version":3,"file":"chartUtils.js","names":["_chromaJs","_interopRequireDefault","require","_graphql","_constants","e","__esModule","default","getLabelData","_ref","xAxisData","isGreaterThanTwoWeeks","filter","record","index","arr","previousTimestamp","currentDate","Date","previousDate","getDate","getMonth","map","item","name","toLocaleDateString","undefined","month","day","xAxis","y","CHART_CONFIG","MAIN_HEIGHT","X_LABEL_SIZE","silent","emphasis","disabled","label","fontFamily","fontSize","position","align","formatter","exports","isDifferenceGreaterThanTwoWeeks","startDate","endDate","date1","date2","differenceInMs","Math","abs","getTime","TIME_THRESHOLDS","TWO_WEEKS_MS","getTimeSpanForGranularity","granularity","granularityTimeSpanMap","Granularity","M5","TimeSpan","TwoDays","M15","FiveDays","H1","TwentyDays","H4","NinetyDays","getGradientColor","value","startColor","targetColor","startThreshold","BOOKS_THRESHOLDS","MIN","endThreshold","MAX","colorScale","chroma","scale","domain","mode","hex","getRectColor","sentiment","isDark","colorPalette","COLOR_MAP","dark","light","short","long","getTooltipFormatter","_ref2","params","buckets","bucketWidth","selectedPrice","precision","bookType","labelCallback","Array","isArray","length","candleParam","find","series","seriesId","booksParam","sentimentParam","time","axisValue","candleData","bucketsIndex","selectedBuckets","matchedBucket","_ref3","price","showCandles","showSentiment","concat","toLocaleString","hour","minute","year","timeZoneName","BookType","Order","toFixed","Number","formatXAxisLabel","date","toLocaleTimeString","X_AXIS_DATE_PADDING"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/chartUtils.ts"],"sourcesContent":["import chroma from 'chroma-js';\n\nimport { BookType, Granularity, TimeSpan } from '../../../../gql/types/graphql';\nimport {\n BOOKS_THRESHOLDS,\n CHART_CONFIG,\n COLOR_MAP,\n TIME_THRESHOLDS,\n} from '../../../constants';\nimport type { Bucket, GetLabelsDataProps, TooltipParam } from '../types';\n\nexport const getLabelData = ({\n xAxisData,\n isGreaterThanTwoWeeks,\n}: GetLabelsDataProps) =>\n xAxisData\n .filter((record, index, arr) => {\n if (index === 0) {\n return false;\n }\n const previousTimestamp = arr[index - 1];\n const currentDate = new Date(record);\n const previousDate = new Date(previousTimestamp);\n\n return isGreaterThanTwoWeeks\n ? currentDate.getDate() !== previousDate.getDate()\n : currentDate.getMonth() !== previousDate.getMonth();\n })\n .map((item) => ({\n name: new Date(item).toLocaleDateString(undefined, {\n month: isGreaterThanTwoWeeks ? 'short' : 'long',\n day: isGreaterThanTwoWeeks ? 'numeric' : undefined,\n }),\n xAxis: item,\n y: CHART_CONFIG.MAIN_HEIGHT + CHART_CONFIG.X_LABEL_SIZE - 22,\n silent: true,\n emphasis: {\n disabled: true,\n },\n label: {\n fontFamily: 'Sofia W03',\n fontSize: 10,\n position: 'bottom',\n align: 'center',\n formatter: '{b}',\n },\n }));\n\nexport const isDifferenceGreaterThanTwoWeeks = (\n startDate: string,\n endDate: string\n) => {\n const date1 = new Date(startDate);\n const date2 = new Date(endDate);\n\n const differenceInMs = Math.abs(date2.getTime() - date1.getTime());\n\n return differenceInMs < TIME_THRESHOLDS.TWO_WEEKS_MS;\n};\n\nexport const getTimeSpanForGranularity = (\n granularity: Granularity\n): TimeSpan => {\n const granularityTimeSpanMap: Record<Granularity, TimeSpan> = {\n [Granularity.M5]: TimeSpan.TwoDays,\n [Granularity.M15]: TimeSpan.FiveDays,\n [Granularity.H1]: TimeSpan.TwentyDays,\n [Granularity.H4]: TimeSpan.NinetyDays,\n };\n\n return granularityTimeSpanMap[granularity] || TimeSpan.TwoDays;\n};\n\nconst getGradientColor = (\n value: number,\n startColor: string,\n targetColor: string\n): string => {\n const startThreshold = BOOKS_THRESHOLDS.MIN;\n const endThreshold = BOOKS_THRESHOLDS.MAX;\n\n const colorScale = chroma\n .scale([startColor, targetColor])\n .domain([startThreshold, endThreshold])\n .mode('rgb');\n\n return colorScale(value).hex();\n};\n\nexport const getRectColor = (sentiment: number, isDark: boolean) => {\n const colorPalette = isDark ? COLOR_MAP.dark : COLOR_MAP.light;\n\n return sentiment < 0\n ? getGradientColor(\n sentiment * -1,\n colorPalette.short[0],\n colorPalette.short[1]\n )\n : getGradientColor(sentiment, colorPalette.long[0], colorPalette.long[1]);\n};\n\nexport const getTooltipFormatter = ({\n params,\n buckets,\n bucketWidth,\n selectedPrice,\n precision,\n bookType,\n labelCallback,\n}: {\n params: TooltipParam[];\n buckets: Bucket[][];\n bucketWidth: number;\n selectedPrice: number;\n precision: number;\n bookType: BookType;\n labelCallback: (key: string) => string;\n}) => {\n if (!params || !Array.isArray(params) || params.length === 0) {\n return undefined;\n }\n const candleParam = params.find(\n (series): series is Extract<TooltipParam, { seriesId: 'candlestick' }> =>\n series.seriesId === 'candlestick'\n );\n const booksParam = params.find(\n (series): series is Extract<TooltipParam, { seriesId: 'heatmap' }> =>\n series.seriesId === 'heatmap'\n );\n const sentimentParam = params.find(\n (series): series is Extract<TooltipParam, { seriesId: 'sentiment' }> =>\n series.seriesId === 'sentiment'\n );\n\n if (!candleParam) {\n return undefined;\n }\n const time = new Date(candleParam.axisValue as string);\n\n const candleData = candleParam.value;\n const bucketsIndex = booksParam?.value[2];\n const selectedBuckets =\n bucketsIndex !== undefined ? buckets[bucketsIndex] : undefined;\n\n const matchedBucket = selectedBuckets?.find(\n ({ price }) => selectedPrice >= price && selectedPrice < price + bucketWidth\n );\n const showCandles =\n !!candleData[1] && !!candleData[2] && !!candleData[3] && !!candleData[4];\n\n if (!showCandles && !matchedBucket) {\n return undefined;\n }\n\n const showSentiment =\n !!sentimentParam?.value[1] && !!sentimentParam?.value[2];\n\n return `<p>${time.toLocaleString(undefined, {\n hour: '2-digit',\n minute: '2-digit',\n year: 'numeric',\n day: 'numeric',\n month: 'numeric',\n timeZoneName: 'short',\n })}</p><br />\n${\n showCandles\n ? `<p><b>${labelCallback('candle')}:</b></p>\n<p>${labelCallback('open_price')}: ${candleData[1]} </p>\n<p>${labelCallback('close_price')}: ${candleData[2]} </p>\n<p>${labelCallback('low')}: ${candleData[3]} </p>\n<p>${labelCallback('high')}: ${candleData[4]} </p>\n`\n : ''\n}\n${\n matchedBucket\n ? `<br /><p><b>${labelCallback(bookType === BookType.Order ? 'orders' : 'positions')}:</b></p>\n<p>${labelCallback('price_range')}: ${matchedBucket.price.toFixed(precision - 1)} - ${Number(matchedBucket.price + bucketWidth).toFixed(precision - 1)} </p>\n<p>${\n matchedBucket.sentiment < 0\n ? labelCallback(\n bookType === BookType.Order\n ? 'sell_overbalance'\n : 'short_overbalance'\n )\n : labelCallback(\n bookType === BookType.Order\n ? 'buy_overbalance'\n : 'long_overbalance'\n )\n }: ${Math.abs(matchedBucket.sentiment)}% </p>`\n : ''\n}${\n showSentiment && sentimentParam\n ? `<br /><p><b>${labelCallback('sentiment')}:</b></p>\n<p>${labelCallback('long')}: ${sentimentParam.value[2].toFixed(2)}% </p>\n<p>${labelCallback('short')}: ${sentimentParam.value[1].toFixed(2)}% </p>`\n : ''\n }`;\n};\n\nexport const formatXAxisLabel = (\n value: unknown,\n isGreaterThanTwoWeeks: boolean\n) => {\n const date = new Date(value as string);\n return isGreaterThanTwoWeeks\n ? `${date.toLocaleTimeString(undefined, {\n hour: '2-digit',\n minute: '2-digit',\n })}`\n : `${CHART_CONFIG.X_AXIS_DATE_PADDING}${date.toLocaleDateString(undefined, {\n day: 'numeric',\n })}${CHART_CONFIG.X_AXIS_DATE_PADDING}`;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"chartUtils.js","names":["_chromaJs","_interopRequireDefault","require","_graphql","_constants","e","__esModule","default","getLabelData","_ref","dates","isGreaterThanTwoWeeks","filter","record","index","arr","previousTimestamp","currentDate","Date","previousDate","getDate","getMonth","map","item","name","toLocaleDateString","undefined","month","day","xAxis","y","CHART_CONFIG","MAIN_HEIGHT","X_LABEL_SIZE","silent","emphasis","disabled","label","fontFamily","fontSize","position","align","formatter","exports","isDifferenceGreaterThanTwoWeeks","startDate","endDate","date1","date2","differenceInMs","Math","abs","getTime","TIME_THRESHOLDS","TWO_WEEKS_MS","getTimeSpanForGranularity","granularity","granularityTimeSpanMap","Granularity","M5","TimeSpan","TwoDays","M15","FiveDays","H1","TwentyDays","H4","NinetyDays","getGradientColor","value","startColor","targetColor","minThreshold","maxThreshold","colorScale","chroma","scale","domain","mode","hex","getRectColor","sentiment","isDark","colorPalette","COLOR_MAP","dark","light","short","long","getTooltipFormatter","_ref2","_bucketWidth$toString","params","buckets","bucketWidth","selectedPrice","bookType","labelCallback","bucketDisplayPrecision","toString","split","length","Array","isArray","candleParam","find","series","seriesId","booksParam","sentimentParam","time","axisValue","candleData","bucketsIndex","selectedBuckets","matchedBucket","_ref3","price","showCandles","showSentiment","concat","toLocaleString","hour","minute","year","timeZoneName","BookType","Order","toFixed","Number","formatXAxisLabel","date","toLocaleTimeString","X_AXIS_DATE_PADDING"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/chartUtils.ts"],"sourcesContent":["import chroma from 'chroma-js';\n\nimport { BookType, Granularity, TimeSpan } from '../../../../gql/types/graphql';\nimport { CHART_CONFIG, COLOR_MAP, TIME_THRESHOLDS } from '../../../constants';\nimport type { Bucket, GetLabelsDataProps, TooltipParam } from '../types';\n\nexport const getLabelData = ({\n dates,\n isGreaterThanTwoWeeks,\n}: GetLabelsDataProps) =>\n dates\n .filter((record, index, arr) => {\n if (index === 0) {\n return false;\n }\n const previousTimestamp = arr[index - 1];\n const currentDate = new Date(record);\n const previousDate = new Date(previousTimestamp);\n\n return isGreaterThanTwoWeeks\n ? currentDate.getDate() !== previousDate.getDate()\n : currentDate.getMonth() !== previousDate.getMonth();\n })\n .map((item) => ({\n name: new Date(item).toLocaleDateString(undefined, {\n month: isGreaterThanTwoWeeks ? 'short' : 'long',\n day: isGreaterThanTwoWeeks ? 'numeric' : undefined,\n }),\n xAxis: item,\n y: CHART_CONFIG.MAIN_HEIGHT + CHART_CONFIG.X_LABEL_SIZE - 22,\n silent: true,\n emphasis: {\n disabled: true,\n },\n label: {\n fontFamily: 'Sofia W03',\n fontSize: 10,\n position: 'bottom',\n align: 'center',\n formatter: '{b}',\n },\n }));\n\nexport const isDifferenceGreaterThanTwoWeeks = (\n startDate: string,\n endDate: string\n) => {\n const date1 = new Date(startDate);\n const date2 = new Date(endDate);\n\n const differenceInMs = Math.abs(date2.getTime() - date1.getTime());\n\n return differenceInMs < TIME_THRESHOLDS.TWO_WEEKS_MS;\n};\n\nexport const getTimeSpanForGranularity = (\n granularity: Granularity\n): TimeSpan => {\n const granularityTimeSpanMap: Record<Granularity, TimeSpan> = {\n [Granularity.M5]: TimeSpan.TwoDays,\n [Granularity.M15]: TimeSpan.FiveDays,\n [Granularity.H1]: TimeSpan.TwentyDays,\n [Granularity.H4]: TimeSpan.NinetyDays,\n };\n\n return granularityTimeSpanMap[granularity] || TimeSpan.TwoDays;\n};\n\nconst getGradientColor = (\n value: number,\n startColor: string,\n targetColor: string,\n minThreshold: number,\n maxThreshold: number\n): string => {\n const colorScale = chroma\n .scale([startColor, targetColor])\n .domain([minThreshold, maxThreshold])\n .mode('rgb');\n\n return colorScale(value).hex();\n};\n\nexport const getRectColor = (\n sentiment: number,\n isDark: boolean,\n minThreshold: number,\n maxThreshold: number\n) => {\n const colorPalette = isDark ? COLOR_MAP.dark : COLOR_MAP.light;\n\n return sentiment < 0\n ? getGradientColor(\n sentiment * -1,\n colorPalette.short[0],\n colorPalette.short[1],\n minThreshold,\n maxThreshold\n )\n : getGradientColor(\n sentiment,\n colorPalette.long[0],\n colorPalette.long[1],\n minThreshold,\n maxThreshold\n );\n};\n\nexport const getTooltipFormatter = ({\n params,\n buckets,\n bucketWidth,\n selectedPrice,\n bookType,\n labelCallback,\n}: {\n params: TooltipParam[];\n buckets: Bucket[][];\n bucketWidth: number;\n selectedPrice: number;\n bookType: BookType;\n labelCallback: (key: string) => string;\n}) => {\n const bucketDisplayPrecision =\n bucketWidth.toString().split('.')[1]?.length || 0;\n\n if (!params || !Array.isArray(params) || params.length === 0) {\n return undefined;\n }\n const candleParam = params.find(\n (series): series is Extract<TooltipParam, { seriesId: 'candlestick' }> =>\n series.seriesId === 'candlestick'\n );\n const booksParam = params.find(\n (series): series is Extract<TooltipParam, { seriesId: 'heatmap' }> =>\n series.seriesId === 'heatmap'\n );\n const sentimentParam = params.find(\n (series): series is Extract<TooltipParam, { seriesId: 'sentiment' }> =>\n series.seriesId === 'sentiment'\n );\n\n if (!candleParam) {\n return undefined;\n }\n const time = new Date(candleParam.axisValue as string);\n\n const candleData = candleParam.value;\n const bucketsIndex = booksParam?.value[2];\n const selectedBuckets =\n bucketsIndex !== undefined ? buckets[bucketsIndex] : undefined;\n\n const matchedBucket = selectedBuckets?.find(\n ({ price }) => selectedPrice >= price && selectedPrice < price + bucketWidth\n );\n const showCandles =\n !!candleData[1] && !!candleData[2] && !!candleData[3] && !!candleData[4];\n\n if (!showCandles && !matchedBucket) {\n return undefined;\n }\n\n const showSentiment =\n !!sentimentParam?.value[1] && !!sentimentParam?.value[2];\n\n return `<p>${time.toLocaleString(undefined, {\n hour: '2-digit',\n minute: '2-digit',\n year: 'numeric',\n day: 'numeric',\n month: 'numeric',\n timeZoneName: 'short',\n })}</p><br />\n${\n showCandles\n ? `<p><b>${labelCallback('candle')}:</b></p>\n<p>${labelCallback('open_price')}: ${candleData[1]} </p>\n<p>${labelCallback('close_price')}: ${candleData[2]} </p>\n<p>${labelCallback('low')}: ${candleData[3]} </p>\n<p>${labelCallback('high')}: ${candleData[4]} </p>\n`\n : ''\n}\n${\n matchedBucket\n ? `<br /><p><b>${labelCallback(bookType === BookType.Order ? 'orders' : 'positions')}:</b></p>\n<p>${labelCallback('price_range')}: ${matchedBucket.price.toFixed(\n bucketDisplayPrecision\n )} - ${Number(matchedBucket.price + bucketWidth).toFixed(\n bucketDisplayPrecision\n )} </p>\n<p>${\n matchedBucket.sentiment < 0\n ? labelCallback(\n bookType === BookType.Order\n ? 'sell_overbalance'\n : 'short_overbalance'\n )\n : labelCallback(\n bookType === BookType.Order\n ? 'buy_overbalance'\n : 'long_overbalance'\n )\n }: ${Math.abs(Number(matchedBucket.sentiment.toFixed(bucketDisplayPrecision)))}% </p>`\n : ''\n}${\n showSentiment && sentimentParam\n ? `<br /><p><b>${labelCallback('sentiment')}:</b></p>\n<p>${labelCallback('long')}: ${sentimentParam.value[2].toFixed(2)}% </p>\n<p>${labelCallback('short')}: ${sentimentParam.value[1].toFixed(2)}% </p>`\n : ''\n }`;\n};\n\nexport const formatXAxisLabel = (\n value: unknown,\n isGreaterThanTwoWeeks: boolean\n) => {\n const date = new Date(value as string);\n return isGreaterThanTwoWeeks\n ? `${date.toLocaleTimeString(undefined, {\n hour: '2-digit',\n minute: '2-digit',\n })}`\n : `${CHART_CONFIG.X_AXIS_DATE_PADDING}${date.toLocaleDateString(undefined, {\n day: 'numeric',\n })}${CHART_CONFIG.X_AXIS_DATE_PADDING}`;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -3,17 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _aggregateBuckets = require("./aggregateBuckets");
7
- Object.keys(_aggregateBuckets).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _aggregateBuckets[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _aggregateBuckets[key];
14
- }
15
- });
16
- });
17
6
  var _chartUtils = require("./chartUtils");
18
7
  Object.keys(_chartUtils).forEach(function (key) {
19
8
  if (key === "default" || key === "__esModule") return;
@@ -36,28 +25,6 @@ Object.keys(_getChartStyles).forEach(function (key) {
36
25
  }
37
26
  });
38
27
  });
39
- var _getTargetBucketWidth = require("./getTargetBucketWidth");
40
- Object.keys(_getTargetBucketWidth).forEach(function (key) {
41
- if (key === "default" || key === "__esModule") return;
42
- if (key in exports && exports[key] === _getTargetBucketWidth[key]) return;
43
- Object.defineProperty(exports, key, {
44
- enumerable: true,
45
- get: function () {
46
- return _getTargetBucketWidth[key];
47
- }
48
- });
49
- });
50
- var _processBuckets = require("./processBuckets");
51
- Object.keys(_processBuckets).forEach(function (key) {
52
- if (key === "default" || key === "__esModule") return;
53
- if (key in exports && exports[key] === _processBuckets[key]) return;
54
- Object.defineProperty(exports, key, {
55
- enumerable: true,
56
- get: function () {
57
- return _processBuckets[key];
58
- }
59
- });
60
- });
61
28
  var _processOrderPositionBooks = require("./processOrderPositionBooks");
62
29
  Object.keys(_processOrderPositionBooks).forEach(function (key) {
63
30
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
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
+ {"version":3,"file":"index.js","names":["_chartUtils","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getChartStyles","_processOrderPositionBooks","_processPriceCandles","_processSentiments","_validateData"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/index.ts"],"sourcesContent":["export * from './chartUtils';\nexport * from './getChartStyles';\nexport * from './processOrderPositionBooks';\nexport * from './processPriceCandles';\nexport * from './processSentiments';\nexport * from './validateData';\n"],"mappings":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,eAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,eAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,eAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,eAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,0BAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,0BAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,0BAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,0BAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,oBAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,oBAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,oBAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,oBAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,kBAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,kBAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,kBAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,kBAAA,CAAAR,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,aAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,aAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAS,aAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAK,aAAA,CAAAT,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -4,20 +4,62 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
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 [];
7
+ const processOrderPositionBooks = (orderPositionData, dates) => {
8
+ var _orderPositionData$or, _orderPositionData$or2, _orderPositionData$or3, _orderPositionData$or4;
9
+ if (!Array.isArray(dates) || dates.length === 0) {
10
+ return {
11
+ bookPrices: [],
12
+ bookIndexes: [],
13
+ buckets: [],
14
+ bucketWidth: 0,
15
+ sentimentThresholdMin: 0,
16
+ sentimentThresholdMax: 0,
17
+ hasValidBooks: false
18
+ };
11
19
  }
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
+ if (!(orderPositionData !== null && orderPositionData !== void 0 && (_orderPositionData$or = orderPositionData.orderPositionBooks) !== null && _orderPositionData$or !== void 0 && (_orderPositionData$or = _orderPositionData$or.books) !== null && _orderPositionData$or !== void 0 && _orderPositionData$or.length) || !(orderPositionData !== null && orderPositionData !== void 0 && (_orderPositionData$or2 = orderPositionData.orderPositionBooks) !== null && _orderPositionData$or2 !== void 0 && _orderPositionData$or2.sentimentThresholdMin) || !(orderPositionData !== null && orderPositionData !== void 0 && (_orderPositionData$or3 = orderPositionData.orderPositionBooks) !== null && _orderPositionData$or3 !== void 0 && _orderPositionData$or3.sentimentThresholdMax) || !(orderPositionData !== null && orderPositionData !== void 0 && (_orderPositionData$or4 = orderPositionData.orderPositionBooks) !== null && _orderPositionData$or4 !== void 0 && _orderPositionData$or4.bucketWidth)) {
21
+ return {
22
+ bookPrices: [],
23
+ bookIndexes: [],
24
+ buckets: [],
25
+ bucketWidth: 0,
26
+ sentimentThresholdMin: 0,
27
+ sentimentThresholdMax: 0,
28
+ hasValidBooks: false
29
+ };
30
+ }
31
+ const {
32
+ bucketWidth,
33
+ sentimentThresholdMin,
34
+ sentimentThresholdMax
35
+ } = orderPositionData.orderPositionBooks;
36
+ const booksDataMap = new Map(orderPositionData.orderPositionBooks.books.map(item => [item.time, {
37
+ price: item.price,
38
+ buckets: item.buckets
39
+ }]));
40
+ const bookPrices = [];
41
+ const bookIndexes = [];
42
+ const buckets = [];
43
+ dates.forEach((date, index) => {
44
+ var _book$price;
45
+ const book = booksDataMap.get(date);
46
+ const currentBuckets = (book === null || book === void 0 ? void 0 : book.buckets.filter(bucket => bucket !== null && typeof bucket.price === 'number' && typeof bucket.sentiment === 'number' && Math.abs(bucket.sentiment) >= sentimentThresholdMin).map(bucket => ({
47
+ price: bucket.price,
48
+ sentiment: bucket.sentiment
49
+ }))) || [];
50
+ bookPrices.push((_book$price = book === null || book === void 0 ? void 0 : book.price) !== null && _book$price !== void 0 ? _book$price : null);
51
+ bookIndexes.push(index);
52
+ buckets.push(currentBuckets);
20
53
  });
54
+ return {
55
+ bookPrices,
56
+ bookIndexes,
57
+ buckets,
58
+ bucketWidth,
59
+ sentimentThresholdMin,
60
+ sentimentThresholdMax,
61
+ hasValidBooks: true
62
+ };
21
63
  };
22
64
  exports.processOrderPositionBooks = processOrderPositionBooks;
23
65
  //# sourceMappingURL=processOrderPositionBooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processOrderPositionBooks.js","names":["processOrderPositionBooks","orderPositionData","candleMap","_orderPositionData$or","orderPositionBooks","length","filter","book","_book$buckets","buckets","map","index","_candle$high","candle","get","time","price","high","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.ts"],"sourcesContent":["import type { GetOrderPositionBooksQuery } from '../../../../gql/types/graphql';\n\nexport const processOrderPositionBooks = (\n orderPositionData: GetOrderPositionBooksQuery | undefined,\n candleMap: Map<\n string,\n {\n point?: string;\n high?: number;\n low?: number;\n open?: number;\n close?: number;\n }\n >\n): [string, number | null, number][] => {\n if (!orderPositionData?.orderPositionBooks?.length) {\n return [];\n }\n\n return orderPositionData.orderPositionBooks\n .filter((book): book is NonNullable<typeof book> => {\n return book !== null && book.buckets?.length > 0;\n })\n .map((book, index) => {\n const candle = candleMap.get(book.time);\n const price = candle?.high ?? null;\n\n return [book.time, price, index] as [string, number | null, number];\n });\n};\n"],"mappings":";;;;;;AAEO,MAAMA,yBAAyB,GAAGA,CACvCC,iBAAyD,EACzDC,SASC,KACqC;EAAA,IAAAC,qBAAA;EACtC,IAAI,EAACF,iBAAiB,aAAjBA,iBAAiB,gBAAAE,qBAAA,GAAjBF,iBAAiB,CAAEG,kBAAkB,cAAAD,qBAAA,eAArCA,qBAAA,CAAuCE,MAAM,GAAE;IAClD,OAAO,EAAE;EACX;EAEA,OAAOJ,iBAAiB,CAACG,kBAAkB,CACxCE,MAAM,CAAEC,IAAI,IAAuC;IAAA,IAAAC,aAAA;IAClD,OAAOD,IAAI,KAAK,IAAI,IAAI,EAAAC,aAAA,GAAAD,IAAI,CAACE,OAAO,cAAAD,aAAA,uBAAZA,aAAA,CAAcH,MAAM,IAAG,CAAC;EAClD,CAAC,CAAC,CACDK,GAAG,CAAC,CAACH,IAAI,EAAEI,KAAK,KAAK;IAAA,IAAAC,YAAA;IACpB,MAAMC,MAAM,GAAGX,SAAS,CAACY,GAAG,CAACP,IAAI,CAACQ,IAAI,CAAC;IACvC,MAAMC,KAAK,IAAAJ,YAAA,GAAGC,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEI,IAAI,cAAAL,YAAA,cAAAA,YAAA,GAAI,IAAI;IAElC,OAAO,CAACL,IAAI,CAACQ,IAAI,EAAEC,KAAK,EAAEL,KAAK,CAAC;EAClC,CAAC,CAAC;AACN,CAAC;AAACO,OAAA,CAAAlB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
1
+ {"version":3,"file":"processOrderPositionBooks.js","names":["processOrderPositionBooks","orderPositionData","dates","_orderPositionData$or","_orderPositionData$or2","_orderPositionData$or3","_orderPositionData$or4","Array","isArray","length","bookPrices","bookIndexes","buckets","bucketWidth","sentimentThresholdMin","sentimentThresholdMax","hasValidBooks","orderPositionBooks","books","booksDataMap","Map","map","item","time","price","forEach","date","index","_book$price","book","get","currentBuckets","filter","bucket","sentiment","Math","abs","push","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.ts"],"sourcesContent":["import type { GetOrderPositionBooksQuery } from '../../../../gql/types/graphql';\nimport type { Bucket } from '../types';\n\nexport const processOrderPositionBooks = (\n orderPositionData: GetOrderPositionBooksQuery | undefined,\n dates: string[]\n) => {\n // Input validation\n if (!Array.isArray(dates) || dates.length === 0) {\n return {\n bookPrices: [],\n bookIndexes: [],\n buckets: [],\n bucketWidth: 0,\n sentimentThresholdMin: 0,\n sentimentThresholdMax: 0,\n hasValidBooks: false,\n };\n }\n\n if (\n !orderPositionData?.orderPositionBooks?.books?.length ||\n !orderPositionData?.orderPositionBooks?.sentimentThresholdMin ||\n !orderPositionData?.orderPositionBooks?.sentimentThresholdMax ||\n !orderPositionData?.orderPositionBooks?.bucketWidth\n ) {\n return {\n bookPrices: [],\n bookIndexes: [],\n buckets: [],\n bucketWidth: 0,\n sentimentThresholdMin: 0,\n sentimentThresholdMax: 0,\n hasValidBooks: false,\n };\n }\n\n const { bucketWidth, sentimentThresholdMin, sentimentThresholdMax } =\n orderPositionData.orderPositionBooks;\n\n const booksDataMap = new Map(\n orderPositionData.orderPositionBooks.books.map((item) => [\n item.time,\n {\n price: item.price,\n buckets: item.buckets,\n },\n ])\n );\n\n // Use forEach + push for O(n) performance instead of reduce with spreads (O(n²))\n const bookPrices: (number | null)[] = [];\n const bookIndexes: number[] = [];\n const buckets: Bucket[][] = [];\n\n dates.forEach((date, index) => {\n const book = booksDataMap.get(date);\n\n const currentBuckets =\n book?.buckets\n .filter(\n (\n bucket\n ): bucket is {\n price: number;\n sentiment: number;\n } =>\n bucket !== null &&\n typeof bucket.price === 'number' &&\n typeof bucket.sentiment === 'number' &&\n Math.abs(bucket.sentiment) >= sentimentThresholdMin\n )\n .map((bucket) => ({\n price: bucket.price,\n sentiment: bucket.sentiment,\n })) || [];\n\n bookPrices.push(book?.price ?? null);\n bookIndexes.push(index);\n buckets.push(currentBuckets);\n });\n\n return {\n bookPrices,\n bookIndexes,\n buckets,\n bucketWidth,\n sentimentThresholdMin,\n sentimentThresholdMax,\n hasValidBooks: true,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -5,38 +5,60 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.processPriceCandles = void 0;
7
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
- };
8
+ var _priceCandlesData$pri, _priceCandlesData$pri2;
9
+ const errorResult = {
10
+ minPrice: 0,
11
+ maxPrice: 0,
12
+ pipsLocation: 0,
13
+ hasValidCandles: false,
14
+ candlesOpen: [],
15
+ candlesClose: [],
16
+ candlesLow: [],
17
+ candlesHigh: [],
18
+ dates: []
19
+ };
20
+ 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) || !(priceCandlesData !== null && priceCandlesData !== void 0 && (_priceCandlesData$pri2 = priceCandlesData.priceCandles) !== null && _priceCandlesData$pri2 !== void 0 && _priceCandlesData$pri2.pipsLocation)) {
21
+ return errorResult;
17
22
  }
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);
23
+ const {
24
+ dates,
25
+ candlesOpen,
26
+ candlesClose,
27
+ candlesLow,
28
+ candlesHigh
29
+ } = priceCandlesData.priceCandles.candle.reduce((acc, candle) => {
30
+ if (!candle) {
31
+ return acc;
32
32
  }
33
+ return {
34
+ dates: [...acc.dates, candle.point],
35
+ candlesOpen: [...acc.candlesOpen, candle.open],
36
+ candlesClose: [...acc.candlesClose, candle.close],
37
+ candlesLow: [...acc.candlesLow, candle.low],
38
+ candlesHigh: [...acc.candlesHigh, candle.high]
39
+ };
40
+ }, {
41
+ dates: [],
42
+ candlesOpen: [],
43
+ candlesClose: [],
44
+ candlesLow: [],
45
+ candlesHigh: []
33
46
  });
47
+ if (dates.length === 0) {
48
+ return errorResult;
49
+ }
50
+ const minPrice = Math.min(...candlesLow);
51
+ const maxPrice = Math.max(...candlesHigh);
34
52
  return {
35
- minPrice: calculatedMinPrice,
36
- maxPrice: calculatedMaxPrice,
53
+ minPrice,
54
+ maxPrice,
55
+ candlesOpen,
56
+ candlesClose,
57
+ candlesLow,
58
+ candlesHigh,
59
+ dates,
37
60
  hasValidCandles: true,
38
- candleMap,
39
- candles
61
+ pipsLocation: priceCandlesData.priceCandles.pipsLocation
40
62
  };
41
63
  };
42
64
  exports.processPriceCandles = processPriceCandles;
@@ -1 +1 @@
1
- {"version":3,"file":"processPriceCandles.js","names":["processPriceCandles","priceCandlesData","_priceCandlesData$pri","priceCandles","candle","length","minPrice","maxPrice","hasValidCandles","candleMap","Map","candles","calculatedMinPrice","Number","MAX_VALUE","calculatedMaxPrice","MIN_VALUE","forEach","high","low","point","set","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/processPriceCandles.ts"],"sourcesContent":["import type { GetPriceCandlesQuery } from '../../../../gql/types/graphql';\n\nexport const processPriceCandles = (\n priceCandlesData: GetPriceCandlesQuery | undefined\n) => {\n if (!priceCandlesData?.priceCandles?.candle?.length) {\n return {\n minPrice: 0,\n maxPrice: 0,\n hasValidCandles: false,\n candleMap: new Map(),\n candles: [],\n };\n }\n\n const candles = priceCandlesData.priceCandles.candle;\n let calculatedMinPrice = Number.MAX_VALUE;\n let calculatedMaxPrice = Number.MIN_VALUE;\n\n const candleMap = new Map<\n string,\n {\n point?: string;\n high?: number;\n low?: number;\n open?: number;\n close?: number;\n }\n >();\n\n candles.forEach((candle) => {\n if (!candle) return;\n\n if (candle.high > calculatedMaxPrice) {\n calculatedMaxPrice = candle.high;\n }\n if (candle.low < calculatedMinPrice) {\n calculatedMinPrice = candle.low;\n }\n\n if (candle.point) {\n candleMap.set(candle.point, candle);\n }\n });\n\n return {\n minPrice: calculatedMinPrice,\n maxPrice: calculatedMaxPrice,\n hasValidCandles: true,\n candleMap,\n candles,\n };\n};\n"],"mappings":";;;;;;AAEO,MAAMA,mBAAmB,GAC9BC,gBAAkD,IAC/C;EAAA,IAAAC,qBAAA;EACH,IAAI,EAACD,gBAAgB,aAAhBA,gBAAgB,gBAAAC,qBAAA,GAAhBD,gBAAgB,CAAEE,YAAY,cAAAD,qBAAA,gBAAAA,qBAAA,GAA9BA,qBAAA,CAAgCE,MAAM,cAAAF,qBAAA,eAAtCA,qBAAA,CAAwCG,MAAM,GAAE;IACnD,OAAO;MACLC,QAAQ,EAAE,CAAC;MACXC,QAAQ,EAAE,CAAC;MACXC,eAAe,EAAE,KAAK;MACtBC,SAAS,EAAE,IAAIC,GAAG,CAAC,CAAC;MACpBC,OAAO,EAAE;IACX,CAAC;EACH;EAEA,MAAMA,OAAO,GAAGV,gBAAgB,CAACE,YAAY,CAACC,MAAM;EACpD,IAAIQ,kBAAkB,GAAGC,MAAM,CAACC,SAAS;EACzC,IAAIC,kBAAkB,GAAGF,MAAM,CAACG,SAAS;EAEzC,MAAMP,SAAS,GAAG,IAAIC,GAAG,CASvB,CAAC;EAEHC,OAAO,CAACM,OAAO,CAAEb,MAAM,IAAK;IAC1B,IAAI,CAACA,MAAM,EAAE;IAEb,IAAIA,MAAM,CAACc,IAAI,GAAGH,kBAAkB,EAAE;MACpCA,kBAAkB,GAAGX,MAAM,CAACc,IAAI;IAClC;IACA,IAAId,MAAM,CAACe,GAAG,GAAGP,kBAAkB,EAAE;MACnCA,kBAAkB,GAAGR,MAAM,CAACe,GAAG;IACjC;IAEA,IAAIf,MAAM,CAACgB,KAAK,EAAE;MAChBX,SAAS,CAACY,GAAG,CAACjB,MAAM,CAACgB,KAAK,EAAEhB,MAAM,CAAC;IACrC;EACF,CAAC,CAAC;EAEF,OAAO;IACLE,QAAQ,EAAEM,kBAAkB;IAC5BL,QAAQ,EAAEQ,kBAAkB;IAC5BP,eAAe,EAAE,IAAI;IACrBC,SAAS;IACTE;EACF,CAAC;AACH,CAAC;AAACW,OAAA,CAAAtB,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"file":"processPriceCandles.js","names":["processPriceCandles","priceCandlesData","_priceCandlesData$pri","_priceCandlesData$pri2","errorResult","minPrice","maxPrice","pipsLocation","hasValidCandles","candlesOpen","candlesClose","candlesLow","candlesHigh","dates","priceCandles","candle","length","reduce","acc","point","open","close","low","high","Math","min","max","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 const errorResult = {\n minPrice: 0,\n maxPrice: 0,\n pipsLocation: 0,\n hasValidCandles: false,\n candlesOpen: [],\n candlesClose: [],\n candlesLow: [],\n candlesHigh: [],\n dates: [],\n };\n\n if (\n !priceCandlesData?.priceCandles?.candle?.length ||\n !priceCandlesData?.priceCandles?.pipsLocation\n ) {\n return errorResult;\n }\n\n const { dates, candlesOpen, candlesClose, candlesLow, candlesHigh } =\n priceCandlesData.priceCandles.candle.reduce(\n (acc, candle) => {\n if (!candle) {\n return acc;\n }\n\n return {\n dates: [...acc.dates, candle.point],\n candlesOpen: [...acc.candlesOpen, candle.open],\n candlesClose: [...acc.candlesClose, candle.close],\n candlesLow: [...acc.candlesLow, candle.low],\n candlesHigh: [...acc.candlesHigh, candle.high],\n };\n },\n {\n dates: [] as string[],\n candlesOpen: [] as number[],\n candlesClose: [] as number[],\n candlesLow: [] as number[],\n candlesHigh: [] as number[],\n }\n );\n\n if (dates.length === 0) {\n return errorResult;\n }\n\n const minPrice = Math.min(...candlesLow);\n const maxPrice = Math.max(...candlesHigh);\n\n return {\n minPrice,\n maxPrice,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n dates,\n hasValidCandles: true,\n pipsLocation: priceCandlesData.priceCandles.pipsLocation,\n };\n};\n"],"mappings":";;;;;;AAEO,MAAMA,mBAAmB,GAC9BC,gBAAkD,IAC/C;EAAA,IAAAC,qBAAA,EAAAC,sBAAA;EACH,MAAMC,WAAW,GAAG;IAClBC,QAAQ,EAAE,CAAC;IACXC,QAAQ,EAAE,CAAC;IACXC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE,KAAK;IACtBC,WAAW,EAAE,EAAE;IACfC,YAAY,EAAE,EAAE;IAChBC,UAAU,EAAE,EAAE;IACdC,WAAW,EAAE,EAAE;IACfC,KAAK,EAAE;EACT,CAAC;EAED,IACE,EAACZ,gBAAgB,aAAhBA,gBAAgB,gBAAAC,qBAAA,GAAhBD,gBAAgB,CAAEa,YAAY,cAAAZ,qBAAA,gBAAAA,qBAAA,GAA9BA,qBAAA,CAAgCa,MAAM,cAAAb,qBAAA,eAAtCA,qBAAA,CAAwCc,MAAM,KAC/C,EAACf,gBAAgB,aAAhBA,gBAAgB,gBAAAE,sBAAA,GAAhBF,gBAAgB,CAAEa,YAAY,cAAAX,sBAAA,eAA9BA,sBAAA,CAAgCI,YAAY,GAC7C;IACA,OAAOH,WAAW;EACpB;EAEA,MAAM;IAAES,KAAK;IAAEJ,WAAW;IAAEC,YAAY;IAAEC,UAAU;IAAEC;EAAY,CAAC,GACjEX,gBAAgB,CAACa,YAAY,CAACC,MAAM,CAACE,MAAM,CACzC,CAACC,GAAG,EAAEH,MAAM,KAAK;IACf,IAAI,CAACA,MAAM,EAAE;MACX,OAAOG,GAAG;IACZ;IAEA,OAAO;MACLL,KAAK,EAAE,CAAC,GAAGK,GAAG,CAACL,KAAK,EAAEE,MAAM,CAACI,KAAK,CAAC;MACnCV,WAAW,EAAE,CAAC,GAAGS,GAAG,CAACT,WAAW,EAAEM,MAAM,CAACK,IAAI,CAAC;MAC9CV,YAAY,EAAE,CAAC,GAAGQ,GAAG,CAACR,YAAY,EAAEK,MAAM,CAACM,KAAK,CAAC;MACjDV,UAAU,EAAE,CAAC,GAAGO,GAAG,CAACP,UAAU,EAAEI,MAAM,CAACO,GAAG,CAAC;MAC3CV,WAAW,EAAE,CAAC,GAAGM,GAAG,CAACN,WAAW,EAAEG,MAAM,CAACQ,IAAI;IAC/C,CAAC;EACH,CAAC,EACD;IACEV,KAAK,EAAE,EAAc;IACrBJ,WAAW,EAAE,EAAc;IAC3BC,YAAY,EAAE,EAAc;IAC5BC,UAAU,EAAE,EAAc;IAC1BC,WAAW,EAAE;EACf,CACF,CAAC;EAEH,IAAIC,KAAK,CAACG,MAAM,KAAK,CAAC,EAAE;IACtB,OAAOZ,WAAW;EACpB;EAEA,MAAMC,QAAQ,GAAGmB,IAAI,CAACC,GAAG,CAAC,GAAGd,UAAU,CAAC;EACxC,MAAML,QAAQ,GAAGkB,IAAI,CAACE,GAAG,CAAC,GAAGd,WAAW,CAAC;EAEzC,OAAO;IACLP,QAAQ;IACRC,QAAQ;IACRG,WAAW;IACXC,YAAY;IACZC,UAAU;IACVC,WAAW;IACXC,KAAK;IACLL,eAAe,EAAE,IAAI;IACrBD,YAAY,EAAEN,gBAAgB,CAACa,YAAY,CAACP;EAC9C,CAAC;AACH,CAAC;AAACoB,OAAA,CAAA3B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -4,25 +4,40 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.processSentiments = void 0;
7
- const processSentiments = (sentimentsData, xAxisData) => {
7
+ const processSentiments = (sentimentsData, dates) => {
8
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 [];
9
+ if (!Array.isArray(dates) || dates.length === 0 || !(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
+ sentimentLongs: [],
12
+ sentimentShorts: [],
13
+ hasValidSentiments: false
14
+ };
11
15
  }
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);
16
+ const sentimentMap = new Map(sentimentsData.sentiments.sentiments.map(item => {
17
+ var _item$sentiment$short, _item$sentiment, _item$sentiment$longP, _item$sentiment2;
18
+ return [item === null || item === void 0 ? void 0 : item.time, {
19
+ sentimentShorts: (_item$sentiment$short = item === null || item === void 0 || (_item$sentiment = item.sentiment) === null || _item$sentiment === void 0 ? void 0 : _item$sentiment.shortPercent) !== null && _item$sentiment$short !== void 0 ? _item$sentiment$short : null,
20
+ sentimentLongs: (_item$sentiment$longP = item === null || item === void 0 || (_item$sentiment2 = item.sentiment) === null || _item$sentiment2 === void 0 ? void 0 : _item$sentiment2.longPercent) !== null && _item$sentiment$longP !== void 0 ? _item$sentiment$longP : null
21
+ }];
22
+ }));
23
+ const {
24
+ sentimentLongs,
25
+ sentimentShorts
26
+ } = dates.reduce((acc, date) => {
27
+ const sentiment = sentimentMap.get(date);
28
+ return {
29
+ sentimentLongs: [...acc.sentimentLongs, (sentiment === null || sentiment === void 0 ? void 0 : sentiment.sentimentLongs) || null],
30
+ sentimentShorts: [...acc.sentimentShorts, (sentiment === null || sentiment === void 0 ? void 0 : sentiment.sentimentShorts) || null]
31
+ };
32
+ }, {
33
+ sentimentLongs: [],
34
+ sentimentShorts: []
35
+ });
36
+ return {
37
+ sentimentLongs,
38
+ sentimentShorts,
39
+ hasValidSentiments: true
40
+ };
26
41
  };
27
42
  exports.processSentiments = processSentiments;
28
43
  //# sourceMappingURL=processSentiments.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"processSentiments.js","names":["processSentiments","sentimentsData","dates","_sentimentsData$senti","Array","isArray","length","sentiments","sentimentLongs","sentimentShorts","hasValidSentiments","sentimentMap","Map","map","item","_item$sentiment$short","_item$sentiment","_item$sentiment$longP","_item$sentiment2","time","sentiment","shortPercent","longPercent","reduce","acc","date","get","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/processSentiments.ts"],"sourcesContent":["import type { GetSentimentsQuery } from '../../../../gql/types/graphql';\n\nexport const processSentiments = (\n sentimentsData: GetSentimentsQuery | undefined,\n dates: string[]\n) => {\n if (\n !Array.isArray(dates) ||\n dates.length === 0 ||\n !sentimentsData?.sentiments?.sentiments?.length\n ) {\n return {\n sentimentLongs: [],\n sentimentShorts: [],\n hasValidSentiments: false,\n };\n }\n\n const sentimentMap = new Map(\n sentimentsData.sentiments.sentiments.map((item) => [\n item?.time,\n {\n sentimentShorts: item?.sentiment?.shortPercent ?? null,\n sentimentLongs: item?.sentiment?.longPercent ?? null,\n },\n ])\n );\n\n const { sentimentLongs, sentimentShorts } = dates.reduce(\n (acc, date) => {\n const sentiment = sentimentMap.get(date);\n\n return {\n sentimentLongs: [\n ...acc.sentimentLongs,\n sentiment?.sentimentLongs || null,\n ],\n sentimentShorts: [\n ...acc.sentimentShorts,\n sentiment?.sentimentShorts || null,\n ],\n };\n },\n {\n sentimentLongs: [] as (number | null)[],\n sentimentShorts: [] as (number | null)[],\n }\n );\n\n return {\n sentimentLongs,\n sentimentShorts,\n hasValidSentiments: true,\n };\n};\n"],"mappings":";;;;;;AAEO,MAAMA,iBAAiB,GAAGA,CAC/BC,cAA8C,EAC9CC,KAAe,KACZ;EAAA,IAAAC,qBAAA;EACH,IACE,CAACC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,IACrBA,KAAK,CAACI,MAAM,KAAK,CAAC,IAClB,EAACL,cAAc,aAAdA,cAAc,gBAAAE,qBAAA,GAAdF,cAAc,CAAEM,UAAU,cAAAJ,qBAAA,gBAAAA,qBAAA,GAA1BA,qBAAA,CAA4BI,UAAU,cAAAJ,qBAAA,eAAtCA,qBAAA,CAAwCG,MAAM,GAC/C;IACA,OAAO;MACLE,cAAc,EAAE,EAAE;MAClBC,eAAe,EAAE,EAAE;MACnBC,kBAAkB,EAAE;IACtB,CAAC;EACH;EAEA,MAAMC,YAAY,GAAG,IAAIC,GAAG,CAC1BX,cAAc,CAACM,UAAU,CAACA,UAAU,CAACM,GAAG,CAAEC,IAAI;IAAA,IAAAC,qBAAA,EAAAC,eAAA,EAAAC,qBAAA,EAAAC,gBAAA;IAAA,OAAK,CACjDJ,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEK,IAAI,EACV;MACEV,eAAe,GAAAM,qBAAA,GAAED,IAAI,aAAJA,IAAI,gBAAAE,eAAA,GAAJF,IAAI,CAAEM,SAAS,cAAAJ,eAAA,uBAAfA,eAAA,CAAiBK,YAAY,cAAAN,qBAAA,cAAAA,qBAAA,GAAI,IAAI;MACtDP,cAAc,GAAAS,qBAAA,GAAEH,IAAI,aAAJA,IAAI,gBAAAI,gBAAA,GAAJJ,IAAI,CAAEM,SAAS,cAAAF,gBAAA,uBAAfA,gBAAA,CAAiBI,WAAW,cAAAL,qBAAA,cAAAA,qBAAA,GAAI;IAClD,CAAC,CACF;EAAA,EACH,CAAC;EAED,MAAM;IAAET,cAAc;IAAEC;EAAgB,CAAC,GAAGP,KAAK,CAACqB,MAAM,CACtD,CAACC,GAAG,EAAEC,IAAI,KAAK;IACb,MAAML,SAAS,GAAGT,YAAY,CAACe,GAAG,CAACD,IAAI,CAAC;IAExC,OAAO;MACLjB,cAAc,EAAE,CACd,GAAGgB,GAAG,CAAChB,cAAc,EACrB,CAAAY,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEZ,cAAc,KAAI,IAAI,CAClC;MACDC,eAAe,EAAE,CACf,GAAGe,GAAG,CAACf,eAAe,EACtB,CAAAW,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEX,eAAe,KAAI,IAAI;IAEtC,CAAC;EACH,CAAC,EACD;IACED,cAAc,EAAE,EAAuB;IACvCC,eAAe,EAAE;EACnB,CACF,CAAC;EAED,OAAO;IACLD,cAAc;IACdC,eAAe;IACfC,kBAAkB,EAAE;EACtB,CAAC;AACH,CAAC;AAACiB,OAAA,CAAA3B,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.validateData = void 0;
7
- const validateData = (priceCandlesData, orderPositionData, hasValidCandles) => {
7
+ const validateData = (priceCandlesData, orderPositionData, hasValidCandles, hasValidBooks, hasValidSentiments) => {
8
8
  var _priceCandlesData$pri, _priceCandlesData$pri2, _orderPositionData$or, _orderPositionData$or2;
9
9
  const hasValidPriceData = ((_priceCandlesData$pri = priceCandlesData === null || priceCandlesData === void 0 || (_priceCandlesData$pri2 = priceCandlesData.priceCandles) === null || _priceCandlesData$pri2 === void 0 || (_priceCandlesData$pri2 = _priceCandlesData$pri2.candle) === null || _priceCandlesData$pri2 === void 0 ? void 0 : _priceCandlesData$pri2.length) !== null && _priceCandlesData$pri !== void 0 ? _priceCandlesData$pri : 0) >= 1;
10
- const hasValidOrderData = ((_orderPositionData$or = orderPositionData === null || orderPositionData === void 0 || (_orderPositionData$or2 = orderPositionData.orderPositionBooks) === null || _orderPositionData$or2 === void 0 ? void 0 : _orderPositionData$or2.length) !== null && _orderPositionData$or !== void 0 ? _orderPositionData$or : 0) >= 1;
10
+ const hasValidOrderData = ((_orderPositionData$or = orderPositionData === null || orderPositionData === void 0 || (_orderPositionData$or2 = orderPositionData.orderPositionBooks) === null || _orderPositionData$or2 === void 0 || (_orderPositionData$or2 = _orderPositionData$or2.books) === null || _orderPositionData$or2 === void 0 ? void 0 : _orderPositionData$or2.length) !== null && _orderPositionData$or !== void 0 ? _orderPositionData$or : 0) >= 1;
11
11
  if (!hasValidPriceData) {
12
12
  return new Error('Insufficient price candle data');
13
13
  }
@@ -17,6 +17,12 @@ const validateData = (priceCandlesData, orderPositionData, hasValidCandles) => {
17
17
  if (!hasValidCandles) {
18
18
  return new Error('Invalid candle data');
19
19
  }
20
+ if (!hasValidBooks) {
21
+ return new Error('Invalid book data');
22
+ }
23
+ if (!hasValidSentiments) {
24
+ return new Error('Invalid sentiment data');
25
+ }
20
26
  return null;
21
27
  };
22
28
  exports.validateData = validateData;
@@ -1 +1 @@
1
- {"version":3,"file":"validateData.js","names":["validateData","priceCandlesData","orderPositionData","hasValidCandles","_priceCandlesData$pri","_priceCandlesData$pri2","_orderPositionData$or","_orderPositionData$or2","hasValidPriceData","priceCandles","candle","length","hasValidOrderData","orderPositionBooks","Error","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/validateData.ts"],"sourcesContent":["import type {\n GetOrderPositionBooksQuery,\n GetPriceCandlesQuery,\n} from '../../../../gql/types/graphql';\n\nexport const validateData = (\n priceCandlesData: GetPriceCandlesQuery | undefined,\n orderPositionData: GetOrderPositionBooksQuery | undefined,\n hasValidCandles: boolean\n): Error | null => {\n const hasValidPriceData =\n (priceCandlesData?.priceCandles?.candle?.length ?? 0) >= 1;\n const hasValidOrderData =\n (orderPositionData?.orderPositionBooks?.length ?? 0) >= 1;\n\n if (!hasValidPriceData) {\n return new Error('Insufficient price candle data');\n }\n if (!hasValidOrderData) {\n return new Error('Insufficient order position data');\n }\n if (!hasValidCandles) {\n return new Error('Invalid candle data');\n }\n\n return null;\n};\n"],"mappings":";;;;;;AAKO,MAAMA,YAAY,GAAGA,CAC1BC,gBAAkD,EAClDC,iBAAyD,EACzDC,eAAwB,KACP;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,sBAAA;EACjB,MAAMC,iBAAiB,GACrB,EAAAJ,qBAAA,GAACH,gBAAgB,aAAhBA,gBAAgB,gBAAAI,sBAAA,GAAhBJ,gBAAgB,CAAEQ,YAAY,cAAAJ,sBAAA,gBAAAA,sBAAA,GAA9BA,sBAAA,CAAgCK,MAAM,cAAAL,sBAAA,uBAAtCA,sBAAA,CAAwCM,MAAM,cAAAP,qBAAA,cAAAA,qBAAA,GAAI,CAAC,KAAK,CAAC;EAC5D,MAAMQ,iBAAiB,GACrB,EAAAN,qBAAA,GAACJ,iBAAiB,aAAjBA,iBAAiB,gBAAAK,sBAAA,GAAjBL,iBAAiB,CAAEW,kBAAkB,cAAAN,sBAAA,uBAArCA,sBAAA,CAAuCI,MAAM,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,CAAC,KAAK,CAAC;EAE3D,IAAI,CAACE,iBAAiB,EAAE;IACtB,OAAO,IAAIM,KAAK,CAAC,gCAAgC,CAAC;EACpD;EACA,IAAI,CAACF,iBAAiB,EAAE;IACtB,OAAO,IAAIE,KAAK,CAAC,kCAAkC,CAAC;EACtD;EACA,IAAI,CAACX,eAAe,EAAE;IACpB,OAAO,IAAIW,KAAK,CAAC,qBAAqB,CAAC;EACzC;EAEA,OAAO,IAAI;AACb,CAAC;AAACC,OAAA,CAAAf,YAAA,GAAAA,YAAA","ignoreList":[]}
1
+ {"version":3,"file":"validateData.js","names":["validateData","priceCandlesData","orderPositionData","hasValidCandles","hasValidBooks","hasValidSentiments","_priceCandlesData$pri","_priceCandlesData$pri2","_orderPositionData$or","_orderPositionData$or2","hasValidPriceData","priceCandles","candle","length","hasValidOrderData","orderPositionBooks","books","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 hasValidBooks: boolean,\n hasValidSentiments: boolean\n): Error | null => {\n const hasValidPriceData =\n (priceCandlesData?.priceCandles?.candle?.length ?? 0) >= 1;\n const hasValidOrderData =\n (orderPositionData?.orderPositionBooks?.books?.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 if (!hasValidBooks) {\n return new Error('Invalid book data');\n }\n if (!hasValidSentiments) {\n return new Error('Invalid sentiment data');\n }\n\n return null;\n};\n"],"mappings":";;;;;;AAKO,MAAMA,YAAY,GAAGA,CAC1BC,gBAAkD,EAClDC,iBAAyD,EACzDC,eAAwB,EACxBC,aAAsB,EACtBC,kBAA2B,KACV;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,sBAAA;EACjB,MAAMC,iBAAiB,GACrB,EAAAJ,qBAAA,GAACL,gBAAgB,aAAhBA,gBAAgB,gBAAAM,sBAAA,GAAhBN,gBAAgB,CAAEU,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,GAACN,iBAAiB,aAAjBA,iBAAiB,gBAAAO,sBAAA,GAAjBP,iBAAiB,CAAEa,kBAAkB,cAAAN,sBAAA,gBAAAA,sBAAA,GAArCA,sBAAA,CAAuCO,KAAK,cAAAP,sBAAA,uBAA5CA,sBAAA,CAA8CI,MAAM,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,CAAC,KAAK,CAAC;EAElE,IAAI,CAACE,iBAAiB,EAAE;IACtB,OAAO,IAAIO,KAAK,CAAC,gCAAgC,CAAC;EACpD;EACA,IAAI,CAACH,iBAAiB,EAAE;IACtB,OAAO,IAAIG,KAAK,CAAC,kCAAkC,CAAC;EACtD;EACA,IAAI,CAACd,eAAe,EAAE;IACpB,OAAO,IAAIc,KAAK,CAAC,qBAAqB,CAAC;EACzC;EACA,IAAI,CAACb,aAAa,EAAE;IAClB,OAAO,IAAIa,KAAK,CAAC,mBAAmB,CAAC;EACvC;EACA,IAAI,CAACZ,kBAAkB,EAAE;IACvB,OAAO,IAAIY,KAAK,CAAC,wBAAwB,CAAC;EAC5C;EAEA,OAAO,IAAI;AACb,CAAC;AAACC,OAAA,CAAAlB,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -7,13 +7,12 @@ exports.Legend = void 0;
7
7
  var _monoI18n = require("@oanda/mono-i18n");
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _graphql = require("../../../gql/types/graphql");
10
- var _constants = require("../../constants");
11
10
  var _LegendBar = require("./LegendBar");
12
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
12
  const Legend = _ref => {
14
13
  let {
15
- longValues = [_constants.BOOKS_THRESHOLDS.MIN, _constants.BOOKS_THRESHOLDS.MAX],
16
- shortValues = [_constants.BOOKS_THRESHOLDS.MIN, _constants.BOOKS_THRESHOLDS.MAX],
14
+ longValues,
15
+ shortValues,
17
16
  bookType,
18
17
  isDark
19
18
  } = _ref;
@@ -1 +1 @@
1
- {"version":3,"file":"Legend.js","names":["_monoI18n","require","_react","_interopRequireDefault","_graphql","_constants","_LegendBar","e","__esModule","default","Legend","_ref","longValues","BOOKS_THRESHOLDS","MIN","MAX","shortValues","bookType","isDark","lang","useLocale","createElement","className","LegendBar","label","BookType","Order","type","values","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/Legend.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport React from 'react';\n\nimport { BookType } from '../../../gql/types/graphql';\nimport { BOOKS_THRESHOLDS } from '../../constants';\nimport { LegendBar } from './LegendBar';\n\ninterface LegendProps {\n longValues?: [number, number];\n shortValues?: [number, number];\n bookType: BookType;\n isDark: boolean;\n}\n\nexport const Legend = ({\n longValues = [BOOKS_THRESHOLDS.MIN, BOOKS_THRESHOLDS.MAX],\n shortValues = [BOOKS_THRESHOLDS.MIN, BOOKS_THRESHOLDS.MAX],\n bookType,\n isDark,\n}: LegendProps) => {\n const { lang } = useLocale();\n\n return (\n <div className=\"lw-mx-auto lw-mt-4 lw-flex lw-w-full lw-flex-col lw-items-center lw-space-y-4 lw-pb-6 lw-pt-0 sm:lw-max-w-md lg:lw-max-w-xl\">\n <LegendBar\n isDark={isDark}\n label={lang(bookType === BookType.Order ? 'buy' : 'long')}\n type=\"long\"\n values={longValues}\n />\n <LegendBar\n isDark={isDark}\n label={lang(bookType === BookType.Order ? 'sell' : 'short')}\n type=\"short\"\n values={shortValues}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAAwC,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AASjC,MAAMG,MAAM,GAAGC,IAAA,IAKH;EAAA,IALI;IACrBC,UAAU,GAAG,CAACC,2BAAgB,CAACC,GAAG,EAAED,2BAAgB,CAACE,GAAG,CAAC;IACzDC,WAAW,GAAG,CAACH,2BAAgB,CAACC,GAAG,EAAED,2BAAgB,CAACE,GAAG,CAAC;IAC1DE,QAAQ;IACRC;EACW,CAAC,GAAAP,IAAA;EACZ,MAAM;IAAEQ;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAE5B,OACElB,MAAA,CAAAO,OAAA,CAAAY,aAAA;IAAKC,SAAS,EAAC;EAA6H,GAC1IpB,MAAA,CAAAO,OAAA,CAAAY,aAAA,CAACf,UAAA,CAAAiB,SAAS;IACRL,MAAM,EAAEA,MAAO;IACfM,KAAK,EAAEL,IAAI,CAACF,QAAQ,KAAKQ,iBAAQ,CAACC,KAAK,GAAG,KAAK,GAAG,MAAM,CAAE;IAC1DC,IAAI,EAAC,MAAM;IACXC,MAAM,EAAEhB;EAAW,CACpB,CAAC,EACFV,MAAA,CAAAO,OAAA,CAAAY,aAAA,CAACf,UAAA,CAAAiB,SAAS;IACRL,MAAM,EAAEA,MAAO;IACfM,KAAK,EAAEL,IAAI,CAACF,QAAQ,KAAKQ,iBAAQ,CAACC,KAAK,GAAG,MAAM,GAAG,OAAO,CAAE;IAC5DC,IAAI,EAAC,OAAO;IACZC,MAAM,EAAEZ;EAAY,CACrB,CACE,CAAC;AAEV,CAAC;AAACa,OAAA,CAAAnB,MAAA,GAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"file":"Legend.js","names":["_monoI18n","require","_react","_interopRequireDefault","_graphql","_LegendBar","e","__esModule","default","Legend","_ref","longValues","shortValues","bookType","isDark","lang","useLocale","createElement","className","LegendBar","label","BookType","Order","type","values","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/Legend.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport React from 'react';\n\nimport { BookType } from '../../../gql/types/graphql';\nimport { LegendBar } from './LegendBar';\n\ninterface LegendProps {\n longValues: (number | undefined)[];\n shortValues: (number | undefined)[];\n bookType: BookType;\n isDark: boolean;\n}\n\nexport const Legend = ({\n longValues,\n shortValues,\n bookType,\n isDark,\n}: LegendProps) => {\n const { lang } = useLocale();\n\n return (\n <div className=\"lw-mx-auto lw-mt-4 lw-flex lw-w-full lw-flex-col lw-items-center lw-space-y-4 lw-pb-6 lw-pt-0 sm:lw-max-w-md lg:lw-max-w-xl\">\n <LegendBar\n isDark={isDark}\n label={lang(bookType === BookType.Order ? 'buy' : 'long')}\n type=\"long\"\n values={longValues}\n />\n <LegendBar\n isDark={isDark}\n label={lang(bookType === BookType.Order ? 'sell' : 'short')}\n type=\"short\"\n values={shortValues}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAAwC,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AASjC,MAAMG,MAAM,GAAGC,IAAA,IAKH;EAAA,IALI;IACrBC,UAAU;IACVC,WAAW;IACXC,QAAQ;IACRC;EACW,CAAC,GAAAJ,IAAA;EACZ,MAAM;IAAEK;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAE5B,OACEd,MAAA,CAAAM,OAAA,CAAAS,aAAA;IAAKC,SAAS,EAAC;EAA6H,GAC1IhB,MAAA,CAAAM,OAAA,CAAAS,aAAA,CAACZ,UAAA,CAAAc,SAAS;IACRL,MAAM,EAAEA,MAAO;IACfM,KAAK,EAAEL,IAAI,CAACF,QAAQ,KAAKQ,iBAAQ,CAACC,KAAK,GAAG,KAAK,GAAG,MAAM,CAAE;IAC1DC,IAAI,EAAC,MAAM;IACXC,MAAM,EAAEb;EAAW,CACpB,CAAC,EACFT,MAAA,CAAAM,OAAA,CAAAS,aAAA,CAACZ,UAAA,CAAAc,SAAS;IACRL,MAAM,EAAEA,MAAO;IACfM,KAAK,EAAEL,IAAI,CAACF,QAAQ,KAAKQ,iBAAQ,CAACC,KAAK,GAAG,MAAM,GAAG,OAAO,CAAE;IAC5DC,IAAI,EAAC,OAAO;IACZC,MAAM,EAAEZ;EAAY,CACrB,CACE,CAAC;AAEV,CAAC;AAACa,OAAA,CAAAhB,MAAA,GAAAA,MAAA","ignoreList":[]}
@@ -32,9 +32,9 @@ const LegendBar = _ref => {
32
32
  className: "lw-flex lw-w-full lw-justify-between"
33
33
  }, _react.default.createElement("span", {
34
34
  className: "lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary"
35
- }, values[0].toFixed(2), "%"), _react.default.createElement("span", {
35
+ }, values[0] ? "".concat(values[0].toFixed(2), "%") : '—'), _react.default.createElement("span", {
36
36
  className: "lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary"
37
- }, "\u2264 ".concat(values[1].toFixed(2)), "%")));
37
+ }, values[1] ? "\u2264 ".concat(values[1].toFixed(2), "%") : '—')));
38
38
  };
39
39
  exports.LegendBar = LegendBar;
40
40
  //# sourceMappingURL=LegendBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LegendBar.js","names":["_react","_interopRequireDefault","require","_constants","e","__esModule","default","LegendBar","_ref","values","type","label","isDark","colorPalette","COLOR_MAP","dark","light","colors","long","short","createElement","className","style","background","concat","toFixed","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/LegendBar.tsx"],"sourcesContent":["import React from 'react';\n\nimport { COLOR_MAP } from '../../constants';\n\nexport type LegendType = 'long' | 'short';\n\ninterface LegendBarProps {\n values: number[];\n type: LegendType;\n label: string;\n isDark: boolean;\n}\n\nexport const LegendBar = ({ values, type, label, isDark }: LegendBarProps) => {\n const colorPalette = isDark ? COLOR_MAP.dark : COLOR_MAP.light;\n const colors = type === 'long' ? colorPalette.long : colorPalette.short;\n\n return (\n <div className=\"lw-flex lw-w-full lw-flex-col lw-space-y-1 lw-border-border-primary\">\n <span className=\"lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary\">\n {label}\n </span>\n <div className=\"lw-flex lw-h-2 lw-w-full lw-overflow-hidden lw-border lw-border-border-primary\">\n <div\n className=\"lw-h-full lw-flex-1\"\n data-testid=\"legend-bar-segment\"\n style={{\n background: `linear-gradient(90deg,${colors[0]} 0%, ${colors[1]} 100%)`,\n }}\n />\n </div>\n\n <div className=\"lw-flex lw-w-full lw-justify-between\">\n <span className=\"lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary\">\n {values[0].toFixed(2)}%\n </span>\n <span className=\"lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary\">\n {`≤ ${values[1].toFixed(2)}`}%\n </span>\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAA4C,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAWrC,MAAMG,SAAS,GAAGC,IAAA,IAAqD;EAAA,IAApD;IAAEC,MAAM;IAAEC,IAAI;IAAEC,KAAK;IAAEC;EAAuB,CAAC,GAAAJ,IAAA;EACvE,MAAMK,YAAY,GAAGD,MAAM,GAAGE,oBAAS,CAACC,IAAI,GAAGD,oBAAS,CAACE,KAAK;EAC9D,MAAMC,MAAM,GAAGP,IAAI,KAAK,MAAM,GAAGG,YAAY,CAACK,IAAI,GAAGL,YAAY,CAACM,KAAK;EAEvE,OACEnB,MAAA,CAAAM,OAAA,CAAAc,aAAA;IAAKC,SAAS,EAAC;EAAqE,GAClFrB,MAAA,CAAAM,OAAA,CAAAc,aAAA;IAAMC,SAAS,EAAC;EAAmE,GAChFV,KACG,CAAC,EACPX,MAAA,CAAAM,OAAA,CAAAc,aAAA;IAAKC,SAAS,EAAC;EAAgF,GAC7FrB,MAAA,CAAAM,OAAA,CAAAc,aAAA;IACEC,SAAS,EAAC,qBAAqB;IAC/B,eAAY,oBAAoB;IAChCC,KAAK,EAAE;MACLC,UAAU,2BAAAC,MAAA,CAA2BP,MAAM,CAAC,CAAC,CAAC,WAAAO,MAAA,CAAQP,MAAM,CAAC,CAAC,CAAC;IACjE;EAAE,CACH,CACE,CAAC,EAENjB,MAAA,CAAAM,OAAA,CAAAc,aAAA;IAAKC,SAAS,EAAC;EAAsC,GACnDrB,MAAA,CAAAM,OAAA,CAAAc,aAAA;IAAMC,SAAS,EAAC;EAAmE,GAChFZ,MAAM,CAAC,CAAC,CAAC,CAACgB,OAAO,CAAC,CAAC,CAAC,EAAC,GAClB,CAAC,EACPzB,MAAA,CAAAM,OAAA,CAAAc,aAAA;IAAMC,SAAS,EAAC;EAAmE,aAAAG,MAAA,CAC3Ef,MAAM,CAAC,CAAC,CAAC,CAACgB,OAAO,CAAC,CAAC,CAAC,GAAG,GACzB,CACH,CACF,CAAC;AAEV,CAAC;AAACC,OAAA,CAAAnB,SAAA,GAAAA,SAAA","ignoreList":[]}
1
+ {"version":3,"file":"LegendBar.js","names":["_react","_interopRequireDefault","require","_constants","e","__esModule","default","LegendBar","_ref","values","type","label","isDark","colorPalette","COLOR_MAP","dark","light","colors","long","short","createElement","className","style","background","concat","toFixed","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/LegendBar.tsx"],"sourcesContent":["import React from 'react';\n\nimport { COLOR_MAP } from '../../constants';\n\nexport type LegendType = 'long' | 'short';\n\ninterface LegendBarProps {\n values: (number | undefined)[];\n type: LegendType;\n label: string;\n isDark: boolean;\n}\n\nexport const LegendBar = ({ values, type, label, isDark }: LegendBarProps) => {\n const colorPalette = isDark ? COLOR_MAP.dark : COLOR_MAP.light;\n const colors = type === 'long' ? colorPalette.long : colorPalette.short;\n\n return (\n <div className=\"lw-flex lw-w-full lw-flex-col lw-space-y-1 lw-border-border-primary\">\n <span className=\"lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary\">\n {label}\n </span>\n <div className=\"lw-flex lw-h-2 lw-w-full lw-overflow-hidden lw-border lw-border-border-primary\">\n <div\n className=\"lw-h-full lw-flex-1\"\n data-testid=\"legend-bar-segment\"\n style={{\n background: `linear-gradient(90deg,${colors[0]} 0%, ${colors[1]} 100%)`,\n }}\n />\n </div>\n\n <div className=\"lw-flex lw-w-full lw-justify-between\">\n <span className=\"lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary\">\n {values[0] ? `${values[0].toFixed(2)}%` : '—'}\n </span>\n <span className=\"lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary\">\n {values[1] ? `≤ ${values[1].toFixed(2)}%` : '—'}\n </span>\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAA4C,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAWrC,MAAMG,SAAS,GAAGC,IAAA,IAAqD;EAAA,IAApD;IAAEC,MAAM;IAAEC,IAAI;IAAEC,KAAK;IAAEC;EAAuB,CAAC,GAAAJ,IAAA;EACvE,MAAMK,YAAY,GAAGD,MAAM,GAAGE,oBAAS,CAACC,IAAI,GAAGD,oBAAS,CAACE,KAAK;EAC9D,MAAMC,MAAM,GAAGP,IAAI,KAAK,MAAM,GAAGG,YAAY,CAACK,IAAI,GAAGL,YAAY,CAACM,KAAK;EAEvE,OACEnB,MAAA,CAAAM,OAAA,CAAAc,aAAA;IAAKC,SAAS,EAAC;EAAqE,GAClFrB,MAAA,CAAAM,OAAA,CAAAc,aAAA;IAAMC,SAAS,EAAC;EAAmE,GAChFV,KACG,CAAC,EACPX,MAAA,CAAAM,OAAA,CAAAc,aAAA;IAAKC,SAAS,EAAC;EAAgF,GAC7FrB,MAAA,CAAAM,OAAA,CAAAc,aAAA;IACEC,SAAS,EAAC,qBAAqB;IAC/B,eAAY,oBAAoB;IAChCC,KAAK,EAAE;MACLC,UAAU,2BAAAC,MAAA,CAA2BP,MAAM,CAAC,CAAC,CAAC,WAAAO,MAAA,CAAQP,MAAM,CAAC,CAAC,CAAC;IACjE;EAAE,CACH,CACE,CAAC,EAENjB,MAAA,CAAAM,OAAA,CAAAc,aAAA;IAAKC,SAAS,EAAC;EAAsC,GACnDrB,MAAA,CAAAM,OAAA,CAAAc,aAAA;IAAMC,SAAS,EAAC;EAAmE,GAChFZ,MAAM,CAAC,CAAC,CAAC,MAAAe,MAAA,CAAMf,MAAM,CAAC,CAAC,CAAC,CAACgB,OAAO,CAAC,CAAC,CAAC,SAAM,GACtC,CAAC,EACPzB,MAAA,CAAAM,OAAA,CAAAc,aAAA;IAAMC,SAAS,EAAC;EAAmE,GAChFZ,MAAM,CAAC,CAAC,CAAC,aAAAe,MAAA,CAAQf,MAAM,CAAC,CAAC,CAAC,CAACgB,OAAO,CAAC,CAAC,CAAC,SAAM,GACxC,CACH,CACF,CAAC;AAEV,CAAC;AAACC,OAAA,CAAAnB,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -3,16 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TIME_THRESHOLDS = exports.INSTRUMENTS_CONFIG = exports.COLOR_MAP = exports.CHART_CONFIG_CALCULATED = exports.CHART_CONFIG = exports.BUCKET_CONFIG = exports.BOOKS_THRESHOLDS = void 0;
6
+ exports.TIME_THRESHOLDS = exports.INSTRUMENTS_CONFIG = exports.COLOR_MAP = exports.CHART_CONFIG_CALCULATED = exports.CHART_CONFIG = exports.BUCKET_CONFIG = void 0;
7
7
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
8
  var _types = require("./types");
9
- const BOOKS_THRESHOLDS = exports.BOOKS_THRESHOLDS = {
10
- MIN: 0.15,
11
- MAX: 0.55
12
- };
13
9
  const BUCKET_CONFIG = exports.BUCKET_CONFIG = {
14
10
  MULTIPLIER: 4,
15
- PRICE_PADDING_MULTIPLIER: 2
11
+ PRICE_MARGIN_MULTIPLIER: 2
16
12
  };
17
13
  const TIME_THRESHOLDS = exports.TIME_THRESHOLDS = {
18
14
  TWO_WEEKS_MS: 14 * 24 * 60 * 60 * 1000