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

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 (123) hide show
  1. package/CHANGELOG.md +228 -0
  2. package/dist/main/CrowdViewWidget/components/Chart/Chart.js +8 -5
  3. package/dist/main/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  4. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js +15 -3
  5. package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  6. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js +28 -14
  7. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js.map +1 -1
  8. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js +19 -7
  9. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js.map +1 -1
  10. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js +20 -8
  11. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js.map +1 -1
  12. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js +44 -5
  13. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js.map +1 -1
  14. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js +14 -6
  15. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js.map +1 -1
  16. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js +11 -4
  17. package/dist/main/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js.map +1 -1
  18. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js +2 -2
  19. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js.map +1 -1
  20. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js +6 -5
  21. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js.map +1 -1
  22. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js +72 -14
  23. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js.map +1 -1
  24. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js +3 -3
  25. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js.map +1 -1
  26. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/index.js +11 -0
  27. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/index.js.map +1 -1
  28. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js +11 -0
  29. package/dist/main/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js.map +1 -0
  30. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js +1 -1
  31. package/dist/main/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js.map +1 -1
  32. package/dist/main/CrowdViewWidget/components/Chart/getOption.js +9 -3
  33. package/dist/main/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
  34. package/dist/main/CrowdViewWidget/components/Chart/types.js.map +1 -1
  35. package/dist/main/CrowdViewWidget/components/Chart/useResizeObserver.js +47 -0
  36. package/dist/main/CrowdViewWidget/components/Chart/useResizeObserver.js.map +1 -0
  37. package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js +1 -1
  38. package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
  39. package/dist/main/CrowdViewWidget/constants.js +20 -7
  40. package/dist/main/CrowdViewWidget/constants.js.map +1 -1
  41. package/dist/main/CrowdViewWidget/selectConfig.js +3 -3
  42. package/dist/main/CrowdViewWidget/selectConfig.js.map +1 -1
  43. package/dist/main/translations/sources/en.json +10 -9
  44. package/dist/module/CrowdViewWidget/components/Chart/Chart.js +9 -6
  45. package/dist/module/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  46. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js +15 -3
  47. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  48. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js +28 -14
  49. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js.map +1 -1
  50. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js +19 -7
  51. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js.map +1 -1
  52. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js +20 -8
  53. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js.map +1 -1
  54. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js +43 -5
  55. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js.map +1 -1
  56. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js +14 -6
  57. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js.map +1 -1
  58. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js +12 -5
  59. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js.map +1 -1
  60. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js +2 -2
  61. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js.map +1 -1
  62. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js +6 -5
  63. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js.map +1 -1
  64. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js +72 -14
  65. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js.map +1 -1
  66. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js +3 -3
  67. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js.map +1 -1
  68. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js +1 -0
  69. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js.map +1 -1
  70. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js +4 -0
  71. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js.map +1 -0
  72. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js +1 -1
  73. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js.map +1 -1
  74. package/dist/module/CrowdViewWidget/components/Chart/getOption.js +9 -3
  75. package/dist/module/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
  76. package/dist/module/CrowdViewWidget/components/Chart/types.js.map +1 -1
  77. package/dist/module/CrowdViewWidget/components/Chart/useResizeObserver.js +40 -0
  78. package/dist/module/CrowdViewWidget/components/Chart/useResizeObserver.js.map +1 -0
  79. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js +1 -1
  80. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
  81. package/dist/module/CrowdViewWidget/constants.js +20 -7
  82. package/dist/module/CrowdViewWidget/constants.js.map +1 -1
  83. package/dist/module/CrowdViewWidget/selectConfig.js +3 -3
  84. package/dist/module/CrowdViewWidget/selectConfig.js.map +1 -1
  85. package/dist/module/translations/sources/en.json +10 -9
  86. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.d.ts +4 -1
  87. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.d.ts +2 -1
  88. package/dist/types/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.d.ts +2 -1
  89. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.d.ts +1 -1
  90. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.d.ts +1 -1
  91. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.d.ts +4 -1
  92. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.d.ts +1 -1
  93. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/index.d.ts +1 -0
  94. package/dist/types/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.d.ts +1 -0
  95. package/dist/types/CrowdViewWidget/components/Chart/types.d.ts +1 -0
  96. package/dist/types/CrowdViewWidget/components/Chart/useResizeObserver.d.ts +5 -0
  97. package/dist/types/CrowdViewWidget/constants.d.ts +24 -19
  98. package/package.json +3 -3
  99. package/src/CrowdViewWidget/components/Chart/Chart.tsx +12 -5
  100. package/src/CrowdViewWidget/components/Chart/ChartWithData.tsx +22 -3
  101. package/src/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.ts +34 -19
  102. package/src/CrowdViewWidget/components/Chart/chartOptions/getGridLines.ts +27 -6
  103. package/src/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.ts +26 -10
  104. package/src/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.ts +86 -43
  105. package/src/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.ts +12 -5
  106. package/src/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.ts +12 -6
  107. package/src/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.ts +3 -2
  108. package/src/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.ts +6 -4
  109. package/src/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.ts +119 -22
  110. package/src/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.ts +8 -3
  111. package/src/CrowdViewWidget/components/Chart/chartUtils/index.ts +1 -0
  112. package/src/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.ts +3 -0
  113. package/src/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.ts +1 -1
  114. package/src/CrowdViewWidget/components/Chart/getOption.ts +6 -0
  115. package/src/CrowdViewWidget/components/Chart/types.ts +1 -0
  116. package/src/CrowdViewWidget/components/Chart/useResizeObserver.ts +51 -0
  117. package/src/CrowdViewWidget/components/Legend/LegendBar.tsx +3 -2
  118. package/src/CrowdViewWidget/constants.ts +24 -5
  119. package/src/CrowdViewWidget/selectConfig.ts +4 -4
  120. package/src/translations/sources/en.json +10 -9
  121. package/test/components/Chart/utils/chartUtils.test.ts +16 -4
  122. package/test/components/Chart/utils/handleLabelUpdate.test.ts +32 -16
  123. package/test/utils/processPriceCandles.test.ts +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"getTooltipFormatter.js","names":["_graphql","require","DATE_FORMAT_OPTIONS","hour","minute","year","day","month","timeZoneName","SENTIMENT_DISPLAY_PRECISION","calculateBucketDisplayPrecision","bucketWidth","_bucketWidth$toString","toString","split","length","findSeriesParam","params","seriesId","find","series","findSentimentSeriesParam","sentimentLongs","sentimentShorts","_sentimentLongs$index","_sentimentShorts$inde","index","dataIndex","sentimentLong","sentimentShort","getSentimentOverbalanceLabel","sentiment","bookType","BookType","Order","formatCandleData","candleData","labelCallback","open","close","low","high","concat","formatBookData","_ref","matchedBucket","bucketDisplayPrecision","bookLabelKey","priceRangeStart","price","toFixed","priceRangeEnd","sentimentLabel","sentimentValue","Math","abs","formatSentimentData","hasValidCandleData","hasValidSentimentData","findMatchingBucket","buckets","bucketsIndex","selectedPrice","undefined","selectedBuckets","_ref2","getTooltipFormatter","_ref3","Array","isArray","candleParam","booksParam","time","Date","axisValue","value","showCandles","showSentiment","timeFormatted","toLocaleString","candleSection","bookSection","sentimentSection","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.ts"],"sourcesContent":["import { BookType } from '../../../../gql/types/graphql';\nimport type { Bucket, TooltipParam } from '../types';\n\nconst DATE_FORMAT_OPTIONS: Intl.DateTimeFormatOptions = {\n hour: '2-digit',\n minute: '2-digit',\n year: 'numeric',\n day: 'numeric',\n month: 'numeric',\n timeZoneName: 'short',\n};\n\nconst SENTIMENT_DISPLAY_PRECISION = 2;\n\nconst calculateBucketDisplayPrecision = (bucketWidth: number): number => {\n return bucketWidth.toString().split('.')[1]?.length || 0;\n};\n\nconst findSeriesParam = <T extends TooltipParam['seriesId']>(\n params: TooltipParam[],\n seriesId: T\n): Extract<TooltipParam, { seriesId: T }> | undefined => {\n return params.find(\n (series): series is Extract<TooltipParam, { seriesId: T }> =>\n series.seriesId === seriesId\n );\n};\n\nconst findSentimentSeriesParam = (\n params: TooltipParam[],\n sentimentLongs: (number | null)[],\n sentimentShorts: (number | null)[]\n): {\n sentimentLong: number | null;\n sentimentShort: number | null;\n} => {\n const index = params[0].dataIndex as number;\n\n return {\n sentimentLong: sentimentLongs[index] ?? null,\n sentimentShort: sentimentShorts[index] ?? null,\n };\n};\n\nconst getSentimentOverbalanceLabel = (\n sentiment: number,\n bookType: BookType\n): string => {\n if (sentiment < 0) {\n return bookType === BookType.Order\n ? 'sell_overbalance'\n : 'short_overbalance';\n }\n return bookType === BookType.Order ? 'buy_overbalance' : 'long_overbalance';\n};\n\nconst formatCandleData = (\n candleData: [number, number, number, number, number],\n labelCallback: (key: string) => string\n): string => {\n const [, open, close, low, high] = candleData;\n return `<p><b>${labelCallback('candle')}:</b></p>\n<p>${labelCallback('open_price')}: ${open} </p>\n<p>${labelCallback('close_price')}: ${close} </p>\n<p>${labelCallback('low')}: ${low} </p>\n<p>${labelCallback('high')}: ${high} </p>\n`;\n};\n\nconst formatBookData = ({\n matchedBucket,\n bucketWidth,\n bucketDisplayPrecision,\n bookType,\n labelCallback,\n}: {\n matchedBucket: Bucket;\n bucketWidth: number;\n bucketDisplayPrecision: number;\n bookType: BookType;\n labelCallback: (key: string) => string;\n}): string => {\n const bookLabelKey = bookType === BookType.Order ? 'orders' : 'positions';\n const priceRangeStart = matchedBucket.price.toFixed(bucketDisplayPrecision);\n const priceRangeEnd = (matchedBucket.price + bucketWidth).toFixed(\n bucketDisplayPrecision\n );\n const sentimentLabel = getSentimentOverbalanceLabel(\n matchedBucket.sentiment,\n bookType\n );\n const sentimentValue = Math.abs(matchedBucket.sentiment).toFixed(\n bucketDisplayPrecision\n );\n\n return `<br /><p><b>${labelCallback(bookLabelKey)}:</b></p>\n<p>${labelCallback('price_range')}: ${priceRangeStart} - ${priceRangeEnd} </p>\n<p>${labelCallback(sentimentLabel)}: ${sentimentValue}% </p>`;\n};\n\nconst formatSentimentData = (\n sentimentLong: number,\n sentimentShort: number,\n labelCallback: (key: string) => string\n): string => {\n return `<br /><p><b>${labelCallback('sentiment')}:</b></p>\n<p>${labelCallback('long')}: ${sentimentLong.toFixed(SENTIMENT_DISPLAY_PRECISION)}% </p>\n<p>${labelCallback('short')}: ${sentimentShort.toFixed(SENTIMENT_DISPLAY_PRECISION)}% </p>`;\n};\n\nconst hasValidCandleData = (\n candleData: [number, number, number, number, number]\n): boolean =>\n !!candleData[1] && !!candleData[2] && !!candleData[3] && !!candleData[4];\n\nconst hasValidSentimentData = (\n sentimentLong: number | null,\n sentimentShort: number | null\n): boolean => sentimentLong !== null && sentimentShort !== null;\n\nconst findMatchingBucket = (\n buckets: Bucket[][],\n bucketsIndex: number | undefined,\n selectedPrice: number,\n bucketWidth: number\n): Bucket | undefined => {\n if (bucketsIndex === undefined) {\n return undefined;\n }\n const selectedBuckets = buckets[bucketsIndex];\n return selectedBuckets?.find(\n ({ price }) => selectedPrice >= price && selectedPrice < price + bucketWidth\n );\n};\n\nexport const getTooltipFormatter = ({\n params,\n buckets,\n bucketWidth,\n selectedPrice,\n bookType,\n labelCallback,\n sentimentLongs,\n sentimentShorts,\n}: {\n params: TooltipParam[];\n buckets: Bucket[][];\n bucketWidth: number;\n selectedPrice: number;\n bookType: BookType;\n labelCallback: (key: string) => string;\n sentimentLongs: (number | null)[];\n sentimentShorts: (number | null)[];\n}) => {\n if (!params || !Array.isArray(params) || params.length === 0) {\n return '';\n }\n\n const candleParam = findSeriesParam(params, 'candlestick');\n const booksParam = findSeriesParam(params, 'heatmap');\n const { sentimentLong, sentimentShort } = findSentimentSeriesParam(\n params,\n sentimentLongs,\n sentimentShorts\n );\n\n if (!candleParam) {\n return '';\n }\n\n const bucketDisplayPrecision = calculateBucketDisplayPrecision(bucketWidth);\n const time = new Date(candleParam.axisValue as string);\n const candleData = candleParam.value;\n const bucketsIndex = booksParam?.value[2];\n const matchedBucket = findMatchingBucket(\n buckets,\n bucketsIndex,\n selectedPrice,\n bucketWidth\n );\n const showCandles = hasValidCandleData(candleData);\n const showSentiment = hasValidSentimentData(sentimentLong, sentimentShort);\n\n if (!showCandles && !matchedBucket) {\n return '';\n }\n\n const timeFormatted = time.toLocaleString(undefined, DATE_FORMAT_OPTIONS);\n const candleSection = showCandles\n ? formatCandleData(candleData, labelCallback)\n : '';\n\n const bookSection = matchedBucket\n ? formatBookData({\n matchedBucket,\n bucketWidth,\n bucketDisplayPrecision,\n bookType,\n labelCallback,\n })\n : '';\n\n const sentimentSection =\n showSentiment && sentimentLong && sentimentShort\n ? formatSentimentData(sentimentLong, sentimentShort, labelCallback)\n : '';\n\n return `<p>${timeFormatted}</p><br />\n${candleSection}\n${bookSection}\n${sentimentSection}`;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getTooltipFormatter.js","names":["_labsWidgetCommon","require","_graphql","DATE_FORMAT_OPTIONS","day","month","year","hour","minute","hour12","timeZoneName","SENTIMENT_DISPLAY_PRECISION","TOOLTIP_STYLES","MOBILE_COLUMN_WIDTH","PADDING_BOTTOM","FULL_WIDTH","calculateBucketDisplayPrecision","bucketWidth","_bucketWidth$toString","toString","split","length","findSeriesParam","params","seriesId","find","series","findSentimentSeriesParam","sentimentLongs","sentimentShorts","_sentimentLongs$index","_sentimentShorts$inde","index","dataIndex","sentimentLong","sentimentShort","getSentimentOverbalanceLabel","sentiment","bookType","BookType","Order","formatCandleData","candleData","labelCallback","open","close","low","high","candleLabel","openLabel","closeLabel","lowLabel","highLabel","concat","formatBookData","_ref","matchedBucket","bucketDisplayPrecision","isDesktop","bookLabelKey","priceRangeStart","price","toFixed","priceRangeEnd","sentimentLabel","sentimentValue","Math","abs","formatSentimentData","hasValidCandleData","hasValidSentimentData","findMatchingBucket","buckets","bucketsIndex","selectedPrice","undefined","selectedBuckets","_ref2","getTooltipFormatter","_ref3","locale","isDark","Array","isArray","candleParam","booksParam","time","Date","axisValue","value","showCandles","showSentiment","timeFormatted","toLocaleString","replace","candleSection","bookSection","sentimentSection","buildDesktopTooltip","hasMatchedBucket","buildMobileTooltip","exports","_ref4","padding","sentimentPadding","_ref5","backgroundColor","colorPalette","black","white","columnWidth","fullWidth"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.ts"],"sourcesContent":["import { colorPalette } from '@oanda/labs-widget-common';\n\nimport { BookType } from '../../../../gql/types/graphql';\nimport type { Bucket, TooltipParam } from '../types';\n\nconst DATE_FORMAT_OPTIONS: Intl.DateTimeFormatOptions = {\n day: 'numeric',\n month: 'numeric',\n year: 'numeric',\n\n hour: 'numeric',\n minute: '2-digit',\n hour12: false,\n\n timeZoneName: 'shortOffset',\n};\n\nconst SENTIMENT_DISPLAY_PRECISION = 2;\n\nconst TOOLTIP_STYLES = {\n MOBILE_COLUMN_WIDTH: '33.3%',\n PADDING_BOTTOM: '4px',\n FULL_WIDTH: '100%',\n} as const;\n\nconst calculateBucketDisplayPrecision = (bucketWidth: number): number => {\n return bucketWidth.toString().split('.')[1]?.length || 0;\n};\n\nconst findSeriesParam = <T extends TooltipParam['seriesId']>(\n params: TooltipParam[],\n seriesId: T\n): Extract<TooltipParam, { seriesId: T }> | undefined => {\n return params.find(\n (series): series is Extract<TooltipParam, { seriesId: T }> =>\n series.seriesId === seriesId\n );\n};\n\nconst findSentimentSeriesParam = (\n params: TooltipParam[],\n sentimentLongs: (number | null)[],\n sentimentShorts: (number | null)[]\n): {\n sentimentLong: number | null;\n sentimentShort: number | null;\n} => {\n const index = params[0].dataIndex as number;\n\n return {\n sentimentLong: sentimentLongs[index] ?? null,\n sentimentShort: sentimentShorts[index] ?? null,\n };\n};\n\nconst getSentimentOverbalanceLabel = (\n sentiment: number,\n bookType: BookType\n): string => {\n if (sentiment < 0) {\n return bookType === BookType.Order\n ? 'sell_overbalance'\n : 'short_overbalance';\n }\n return bookType === BookType.Order ? 'buy_overbalance' : 'long_overbalance';\n};\n\nconst formatCandleData = (\n candleData: [number, number, number, number, number],\n labelCallback: (key: string) => string\n): string => {\n const [, open, close, low, high] = candleData;\n const candleLabel = labelCallback('candle');\n const openLabel = labelCallback('open');\n const closeLabel = labelCallback('close');\n const lowLabel = labelCallback('low');\n const highLabel = labelCallback('high');\n\n return `<div><b>${candleLabel}:</b></div>\n<div>${openLabel}: ${open} </div>\n<div>${closeLabel}: ${close} </div>\n<div>${lowLabel}: ${low} </div>\n<div>${highLabel}: ${high} </div>\n`;\n};\n\nconst formatBookData = ({\n matchedBucket,\n bucketWidth,\n bucketDisplayPrecision,\n bookType,\n labelCallback,\n isDesktop,\n}: {\n matchedBucket: Bucket;\n bucketWidth: number;\n bucketDisplayPrecision: number;\n bookType: BookType;\n labelCallback: (key: string) => string;\n isDesktop: boolean;\n}): string => {\n const bookLabelKey = bookType === BookType.Order ? 'orders' : 'trades';\n const priceRangeStart = matchedBucket.price.toFixed(bucketDisplayPrecision);\n const priceRangeEnd = (matchedBucket.price + bucketWidth).toFixed(\n bucketDisplayPrecision\n );\n const sentimentLabel = getSentimentOverbalanceLabel(\n matchedBucket.sentiment,\n bookType\n );\n const sentimentValue = Math.abs(matchedBucket.sentiment);\n\n return isDesktop\n ? `<div><b>${labelCallback(bookLabelKey)}:</b></div>\n<div>${labelCallback('price_range')}: ${priceRangeStart} - ${priceRangeEnd} </div>\n<div>${labelCallback(sentimentLabel)}: ${sentimentValue}% </div>`\n : `<div><b>${labelCallback(bookLabelKey)}:</b></div>\n<div>${labelCallback('price_range')}:</div>\n<div>${priceRangeStart} - ${priceRangeEnd} </div>\n<div>${labelCallback(sentimentLabel)}:</div>\n<div>${sentimentValue}% </div>`;\n};\n\nconst formatSentimentData = (\n sentimentLong: number,\n sentimentShort: number,\n labelCallback: (key: string) => string\n): string => {\n return `<div><b>${labelCallback('sentiment')}:</b></div>\n<div>${labelCallback('long')}: ${sentimentLong.toFixed(SENTIMENT_DISPLAY_PRECISION)}% </div>\n<div>${labelCallback('short')}: ${sentimentShort.toFixed(SENTIMENT_DISPLAY_PRECISION)}% </div>`;\n};\n\nconst hasValidCandleData = (\n candleData: [number, number, number, number, number]\n): boolean =>\n !!candleData[1] && !!candleData[2] && !!candleData[3] && !!candleData[4];\n\nconst hasValidSentimentData = (\n sentimentLong: number | null,\n sentimentShort: number | null\n): boolean => sentimentLong !== null && sentimentShort !== null;\n\nconst findMatchingBucket = (\n buckets: Bucket[][],\n bucketsIndex: number | undefined,\n selectedPrice: number,\n bucketWidth: number\n): Bucket | undefined => {\n if (bucketsIndex === undefined) {\n return undefined;\n }\n const selectedBuckets = buckets[bucketsIndex];\n return selectedBuckets?.find(\n ({ price }) => selectedPrice >= price && selectedPrice < price + bucketWidth\n );\n};\n\nexport const getTooltipFormatter = ({\n params,\n buckets,\n bucketWidth,\n selectedPrice,\n bookType,\n labelCallback,\n sentimentLongs,\n sentimentShorts,\n isDesktop,\n locale,\n isDark,\n}: {\n params: TooltipParam[];\n buckets: Bucket[][];\n bucketWidth: number;\n selectedPrice: number;\n bookType: BookType;\n labelCallback: (key: string) => string;\n sentimentLongs: (number | null)[];\n sentimentShorts: (number | null)[];\n isDesktop: boolean;\n locale: string;\n isDark: boolean;\n}) => {\n if (!params || !Array.isArray(params) || params.length === 0) {\n return '';\n }\n\n const candleParam = findSeriesParam(params, 'candlestick');\n const booksParam = findSeriesParam(params, 'heatmap');\n const { sentimentLong, sentimentShort } = findSentimentSeriesParam(\n params,\n sentimentLongs,\n sentimentShorts\n );\n\n if (!candleParam) {\n return '';\n }\n\n const bucketDisplayPrecision = calculateBucketDisplayPrecision(bucketWidth);\n const time = new Date(candleParam.axisValue as string);\n const candleData = candleParam.value;\n const bucketsIndex = booksParam?.value[2];\n const matchedBucket = findMatchingBucket(\n buckets,\n bucketsIndex,\n selectedPrice,\n bucketWidth\n );\n const showCandles = hasValidCandleData(candleData);\n const showSentiment = hasValidSentimentData(sentimentLong, sentimentShort);\n\n if (!showCandles && !matchedBucket) {\n return '';\n }\n\n const timeFormatted = time\n .toLocaleString(locale, DATE_FORMAT_OPTIONS)\n .replace(/\\//g, '.');\n const candleSection = showCandles\n ? formatCandleData(candleData, labelCallback)\n : '';\n\n const bookSection = matchedBucket\n ? formatBookData({\n matchedBucket,\n bucketWidth,\n bucketDisplayPrecision,\n bookType,\n labelCallback,\n isDesktop,\n })\n : '';\n\n const sentimentSection =\n showSentiment && sentimentLong && sentimentShort\n ? formatSentimentData(sentimentLong, sentimentShort, labelCallback)\n : '';\n\n if (isDesktop) {\n return buildDesktopTooltip({\n timeFormatted,\n candleSection,\n sentimentSection,\n bookSection,\n hasMatchedBucket: !!matchedBucket,\n });\n }\n\n return buildMobileTooltip({\n timeFormatted,\n candleSection,\n sentimentSection,\n bookSection,\n isDark,\n });\n};\n\ninterface TooltipSections {\n timeFormatted: string;\n candleSection: string;\n sentimentSection: string;\n bookSection: string;\n}\n\nconst buildDesktopTooltip = ({\n timeFormatted,\n candleSection,\n sentimentSection,\n bookSection,\n hasMatchedBucket,\n}: TooltipSections & { hasMatchedBucket: boolean }): string => {\n const padding = TOOLTIP_STYLES.PADDING_BOTTOM;\n const sentimentPadding = hasMatchedBucket ? padding : '0px';\n\n return `<div style=\"padding-bottom: ${padding};\">${timeFormatted}</div>\n<div style=\"padding-bottom: ${padding};\">${candleSection}</div>\n<div style=\"padding-bottom: ${sentimentPadding};\">${sentimentSection}</div>\n<div>${bookSection}</div>\n`;\n};\n\nconst buildMobileTooltip = ({\n timeFormatted,\n candleSection,\n sentimentSection,\n bookSection,\n isDark,\n}: TooltipSections & { isDark: boolean }): string => {\n const backgroundColor = isDark ? colorPalette.black : colorPalette.white;\n const columnWidth = TOOLTIP_STYLES.MOBILE_COLUMN_WIDTH;\n const fullWidth = TOOLTIP_STYLES.FULL_WIDTH;\n const padding = TOOLTIP_STYLES.PADDING_BOTTOM;\n\n return `<div style=\"width: ${fullWidth}; background-color: ${backgroundColor};\">\n <div style=\"padding-bottom: ${padding};\">${timeFormatted}</div>\n <div style=\"width: ${fullWidth}; display: flex; justify-content: space-between;\">\n <div style=\"width: ${columnWidth};\">\n${candleSection}\n</div>\n<div style=\"width: ${columnWidth};\">\n${sentimentSection}\n</div>\n<div style=\"width: ${columnWidth};\">\n${bookSection}\n</div>\n</div>\n</div>`;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,7 @@ var _formatXAxisAdditionalLabel = require("./formatXAxisAdditionalLabel");
8
8
  var _formatXAxisLabel = require("./formatXAxisLabel");
9
9
  var _getLabelData = require("./getLabelData");
10
10
  var _isDifferenceGreaterThanTwoWeeks = require("./isDifferenceGreaterThanTwoWeeks");
11
- const handleLabelUpdate = (instance, mainData, labelTimerRef, isGreaterThanTwoWeeksRef) => {
11
+ const handleLabelUpdate = (instance, mainData, labelTimerRef, isGreaterThanTwoWeeksRef, locale) => {
12
12
  if (labelTimerRef.current) {
13
13
  clearTimeout(labelTimerRef.current);
14
14
  }
@@ -41,13 +41,13 @@ const handleLabelUpdate = (instance, mainData, labelTimerRef, isGreaterThanTwoWe
41
41
  xAxis: [{
42
42
  id: 'main-xAxis',
43
43
  axisLabel: {
44
- formatter: value => (0, _formatXAxisLabel.formatXAxisLabel)(value, isGreaterThanTwoWeeks)
44
+ formatter: value => (0, _formatXAxisLabel.formatXAxisLabel)(value, isGreaterThanTwoWeeks, locale)
45
45
  }
46
46
  }, {
47
47
  id: 'additional-xAxis',
48
48
  axisLabel: {
49
49
  customValues: labelsData,
50
- formatter: value => (0, _formatXAxisAdditionalLabel.formatXAxisAdditionalLabel)(value, isGreaterThanTwoWeeks)
50
+ formatter: value => (0, _formatXAxisAdditionalLabel.formatXAxisAdditionalLabel)(value, isGreaterThanTwoWeeks, locale)
51
51
  }
52
52
  }]
53
53
  });
@@ -1 +1 @@
1
- {"version":3,"file":"handleLabelUpdate.js","names":["_formatXAxisAdditionalLabel","require","_formatXAxisLabel","_getLabelData","_isDifferenceGreaterThanTwoWeeks","handleLabelUpdate","instance","mainData","labelTimerRef","isGreaterThanTwoWeeksRef","current","clearTimeout","setTimeout","_isGreaterThanTwoWeek","dates","dataZoom","getOption","Array","isArray","length","startValue","endValue","isGreaterThanTwoWeeks","isDifferenceGreaterThanTwoWeeks","wasGreaterThanTwoWeeks","labelsData","getLabelData","setOption","xAxis","id","axisLabel","formatter","value","formatXAxisLabel","customValues","formatXAxisAdditionalLabel","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.ts"],"sourcesContent":["import type { EChartsType } from 'echarts';\nimport type { MutableRefObject } from 'react';\n\nimport type { ChartProps, DataZoomArray } from '../types';\nimport { formatXAxisAdditionalLabel } from './formatXAxisAdditionalLabel';\nimport { formatXAxisLabel } from './formatXAxisLabel';\nimport { getLabelData } from './getLabelData';\nimport { isDifferenceGreaterThanTwoWeeks } from './isDifferenceGreaterThanTwoWeeks';\n\nexport const handleLabelUpdate = (\n instance: EChartsType,\n mainData: ChartProps['mainData'],\n labelTimerRef: MutableRefObject<NodeJS.Timeout | null>,\n isGreaterThanTwoWeeksRef: MutableRefObject<boolean | null>\n): void => {\n if (labelTimerRef.current) {\n clearTimeout(labelTimerRef.current);\n }\n labelTimerRef.current = setTimeout(() => {\n const { dates } = mainData;\n\n const { dataZoom } = instance.getOption();\n if (\n !Array.isArray(dataZoom) ||\n dataZoom.length === 0 ||\n !dataZoom[0] ||\n typeof dataZoom[0].startValue !== 'number' ||\n typeof dataZoom[0].endValue !== 'number'\n ) {\n return;\n }\n\n const { startValue, endValue } = dataZoom[0] as DataZoomArray[0];\n\n if (!dates[startValue] || !dates[endValue]) {\n return;\n }\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n dates[startValue],\n dates[endValue]\n );\n\n const wasGreaterThanTwoWeeks = isGreaterThanTwoWeeksRef.current ?? false;\n\n if (isGreaterThanTwoWeeks !== wasGreaterThanTwoWeeks) {\n const labelsData = getLabelData({\n dates,\n isGreaterThanTwoWeeks,\n });\n\n instance.setOption({\n xAxis: [\n {\n id: 'main-xAxis',\n axisLabel: {\n formatter: (value: string) =>\n formatXAxisLabel(value, isGreaterThanTwoWeeks),\n },\n },\n {\n id: 'additional-xAxis',\n axisLabel: {\n customValues: labelsData,\n formatter: (value: unknown) =>\n formatXAxisAdditionalLabel(value, isGreaterThanTwoWeeks),\n },\n },\n ],\n });\n\n isGreaterThanTwoWeeksRef.current = isGreaterThanTwoWeeks;\n }\n }, 50);\n};\n"],"mappings":";;;;;;AAIA,IAAAA,2BAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,gCAAA,GAAAH,OAAA;AAEO,MAAMI,iBAAiB,GAAGA,CAC/BC,QAAqB,EACrBC,QAAgC,EAChCC,aAAsD,EACtDC,wBAA0D,KACjD;EACT,IAAID,aAAa,CAACE,OAAO,EAAE;IACzBC,YAAY,CAACH,aAAa,CAACE,OAAO,CAAC;EACrC;EACAF,aAAa,CAACE,OAAO,GAAGE,UAAU,CAAC,MAAM;IAAA,IAAAC,qBAAA;IACvC,MAAM;MAAEC;IAAM,CAAC,GAAGP,QAAQ;IAE1B,MAAM;MAAEQ;IAAS,CAAC,GAAGT,QAAQ,CAACU,SAAS,CAAC,CAAC;IACzC,IACE,CAACC,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,IACxBA,QAAQ,CAACI,MAAM,KAAK,CAAC,IACrB,CAACJ,QAAQ,CAAC,CAAC,CAAC,IACZ,OAAOA,QAAQ,CAAC,CAAC,CAAC,CAACK,UAAU,KAAK,QAAQ,IAC1C,OAAOL,QAAQ,CAAC,CAAC,CAAC,CAACM,QAAQ,KAAK,QAAQ,EACxC;MACA;IACF;IAEA,MAAM;MAAED,UAAU;MAAEC;IAAS,CAAC,GAAGN,QAAQ,CAAC,CAAC,CAAqB;IAEhE,IAAI,CAACD,KAAK,CAACM,UAAU,CAAC,IAAI,CAACN,KAAK,CAACO,QAAQ,CAAC,EAAE;MAC1C;IACF;IAEA,MAAMC,qBAAqB,GAAG,IAAAC,gEAA+B,EAC3DT,KAAK,CAACM,UAAU,CAAC,EACjBN,KAAK,CAACO,QAAQ,CAChB,CAAC;IAED,MAAMG,sBAAsB,IAAAX,qBAAA,GAAGJ,wBAAwB,CAACC,OAAO,cAAAG,qBAAA,cAAAA,qBAAA,GAAI,KAAK;IAExE,IAAIS,qBAAqB,KAAKE,sBAAsB,EAAE;MACpD,MAAMC,UAAU,GAAG,IAAAC,0BAAY,EAAC;QAC9BZ,KAAK;QACLQ;MACF,CAAC,CAAC;MAEFhB,QAAQ,CAACqB,SAAS,CAAC;QACjBC,KAAK,EAAE,CACL;UACEC,EAAE,EAAE,YAAY;UAChBC,SAAS,EAAE;YACTC,SAAS,EAAGC,KAAa,IACvB,IAAAC,kCAAgB,EAACD,KAAK,EAAEV,qBAAqB;UACjD;QACF,CAAC,EACD;UACEO,EAAE,EAAE,kBAAkB;UACtBC,SAAS,EAAE;YACTI,YAAY,EAAET,UAAU;YACxBM,SAAS,EAAGC,KAAc,IACxB,IAAAG,sDAA0B,EAACH,KAAK,EAAEV,qBAAqB;UAC3D;QACF,CAAC;MAEL,CAAC,CAAC;MAEFb,wBAAwB,CAACC,OAAO,GAAGY,qBAAqB;IAC1D;EACF,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAACc,OAAA,CAAA/B,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"file":"handleLabelUpdate.js","names":["_formatXAxisAdditionalLabel","require","_formatXAxisLabel","_getLabelData","_isDifferenceGreaterThanTwoWeeks","handleLabelUpdate","instance","mainData","labelTimerRef","isGreaterThanTwoWeeksRef","locale","current","clearTimeout","setTimeout","_isGreaterThanTwoWeek","dates","dataZoom","getOption","Array","isArray","length","startValue","endValue","isGreaterThanTwoWeeks","isDifferenceGreaterThanTwoWeeks","wasGreaterThanTwoWeeks","labelsData","getLabelData","setOption","xAxis","id","axisLabel","formatter","value","formatXAxisLabel","customValues","formatXAxisAdditionalLabel","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.ts"],"sourcesContent":["import type { EChartsType } from 'echarts';\nimport type { MutableRefObject } from 'react';\n\nimport type { ChartProps, DataZoomArray } from '../types';\nimport { formatXAxisAdditionalLabel } from './formatXAxisAdditionalLabel';\nimport { formatXAxisLabel } from './formatXAxisLabel';\nimport { getLabelData } from './getLabelData';\nimport { isDifferenceGreaterThanTwoWeeks } from './isDifferenceGreaterThanTwoWeeks';\n\nexport const handleLabelUpdate = (\n instance: EChartsType,\n mainData: ChartProps['mainData'],\n labelTimerRef: MutableRefObject<NodeJS.Timeout | null>,\n isGreaterThanTwoWeeksRef: MutableRefObject<boolean | null>,\n locale: string\n): void => {\n if (labelTimerRef.current) {\n clearTimeout(labelTimerRef.current);\n }\n labelTimerRef.current = setTimeout(() => {\n const { dates } = mainData;\n\n const { dataZoom } = instance.getOption();\n if (\n !Array.isArray(dataZoom) ||\n dataZoom.length === 0 ||\n !dataZoom[0] ||\n typeof dataZoom[0].startValue !== 'number' ||\n typeof dataZoom[0].endValue !== 'number'\n ) {\n return;\n }\n\n const { startValue, endValue } = dataZoom[0] as DataZoomArray[0];\n\n if (!dates[startValue] || !dates[endValue]) {\n return;\n }\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n dates[startValue],\n dates[endValue]\n );\n\n const wasGreaterThanTwoWeeks = isGreaterThanTwoWeeksRef.current ?? false;\n\n if (isGreaterThanTwoWeeks !== wasGreaterThanTwoWeeks) {\n const labelsData = getLabelData({\n dates,\n isGreaterThanTwoWeeks,\n });\n\n instance.setOption({\n xAxis: [\n {\n id: 'main-xAxis',\n axisLabel: {\n formatter: (value: string) =>\n formatXAxisLabel(value, isGreaterThanTwoWeeks, locale),\n },\n },\n {\n id: 'additional-xAxis',\n axisLabel: {\n customValues: labelsData,\n formatter: (value: unknown) =>\n formatXAxisAdditionalLabel(\n value,\n isGreaterThanTwoWeeks,\n locale\n ),\n },\n },\n ],\n });\n\n isGreaterThanTwoWeeksRef.current = isGreaterThanTwoWeeks;\n }\n }, 50);\n};\n"],"mappings":";;;;;;AAIA,IAAAA,2BAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,gCAAA,GAAAH,OAAA;AAEO,MAAMI,iBAAiB,GAAGA,CAC/BC,QAAqB,EACrBC,QAAgC,EAChCC,aAAsD,EACtDC,wBAA0D,EAC1DC,MAAc,KACL;EACT,IAAIF,aAAa,CAACG,OAAO,EAAE;IACzBC,YAAY,CAACJ,aAAa,CAACG,OAAO,CAAC;EACrC;EACAH,aAAa,CAACG,OAAO,GAAGE,UAAU,CAAC,MAAM;IAAA,IAAAC,qBAAA;IACvC,MAAM;MAAEC;IAAM,CAAC,GAAGR,QAAQ;IAE1B,MAAM;MAAES;IAAS,CAAC,GAAGV,QAAQ,CAACW,SAAS,CAAC,CAAC;IACzC,IACE,CAACC,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,IACxBA,QAAQ,CAACI,MAAM,KAAK,CAAC,IACrB,CAACJ,QAAQ,CAAC,CAAC,CAAC,IACZ,OAAOA,QAAQ,CAAC,CAAC,CAAC,CAACK,UAAU,KAAK,QAAQ,IAC1C,OAAOL,QAAQ,CAAC,CAAC,CAAC,CAACM,QAAQ,KAAK,QAAQ,EACxC;MACA;IACF;IAEA,MAAM;MAAED,UAAU;MAAEC;IAAS,CAAC,GAAGN,QAAQ,CAAC,CAAC,CAAqB;IAEhE,IAAI,CAACD,KAAK,CAACM,UAAU,CAAC,IAAI,CAACN,KAAK,CAACO,QAAQ,CAAC,EAAE;MAC1C;IACF;IAEA,MAAMC,qBAAqB,GAAG,IAAAC,gEAA+B,EAC3DT,KAAK,CAACM,UAAU,CAAC,EACjBN,KAAK,CAACO,QAAQ,CAChB,CAAC;IAED,MAAMG,sBAAsB,IAAAX,qBAAA,GAAGL,wBAAwB,CAACE,OAAO,cAAAG,qBAAA,cAAAA,qBAAA,GAAI,KAAK;IAExE,IAAIS,qBAAqB,KAAKE,sBAAsB,EAAE;MACpD,MAAMC,UAAU,GAAG,IAAAC,0BAAY,EAAC;QAC9BZ,KAAK;QACLQ;MACF,CAAC,CAAC;MAEFjB,QAAQ,CAACsB,SAAS,CAAC;QACjBC,KAAK,EAAE,CACL;UACEC,EAAE,EAAE,YAAY;UAChBC,SAAS,EAAE;YACTC,SAAS,EAAGC,KAAa,IACvB,IAAAC,kCAAgB,EAACD,KAAK,EAAEV,qBAAqB,EAAEb,MAAM;UACzD;QACF,CAAC,EACD;UACEoB,EAAE,EAAE,kBAAkB;UACtBC,SAAS,EAAE;YACTI,YAAY,EAAET,UAAU;YACxBM,SAAS,EAAGC,KAAc,IACxB,IAAAG,sDAA0B,EACxBH,KAAK,EACLV,qBAAqB,EACrBb,MACF;UACJ;QACF,CAAC;MAEL,CAAC,CAAC;MAEFD,wBAAwB,CAACE,OAAO,GAAGY,qBAAqB;IAC1D;EACF,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAACc,OAAA,CAAAhC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -113,4 +113,15 @@ Object.keys(_isDifferenceGreaterThanTwoWeeks).forEach(function (key) {
113
113
  }
114
114
  });
115
115
  });
116
+ var _normalizeLocale = require("./normalizeLocale");
117
+ Object.keys(_normalizeLocale).forEach(function (key) {
118
+ if (key === "default" || key === "__esModule") return;
119
+ if (key in exports && exports[key] === _normalizeLocale[key]) return;
120
+ Object.defineProperty(exports, key, {
121
+ enumerable: true,
122
+ get: function () {
123
+ return _normalizeLocale[key];
124
+ }
125
+ });
126
+ });
116
127
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_formatXAxisAdditionalLabel","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_formatXAxisLabel","_getChartStyles","_getGradientColor","_getLabelData","_getRectColor","_getTooltipFormatter","_handleLabelUpdate","_handleTooltipUpdate","_isDifferenceGreaterThanTwoWeeks"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/index.ts"],"sourcesContent":["export * from './formatXAxisAdditionalLabel';\nexport * from './formatXAxisLabel';\nexport * from './getChartStyles';\nexport * from './getGradientColor';\nexport * from './getLabelData';\nexport * from './getRectColor';\nexport * from './getTooltipFormatter';\nexport * from './handleLabelUpdate';\nexport * from './handleTooltipUpdate';\nexport * from './isDifferenceGreaterThanTwoWeeks';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_formatXAxisAdditionalLabel","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_formatXAxisLabel","_getChartStyles","_getGradientColor","_getLabelData","_getRectColor","_getTooltipFormatter","_handleLabelUpdate","_handleTooltipUpdate","_isDifferenceGreaterThanTwoWeeks","_normalizeLocale"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/index.ts"],"sourcesContent":["export * from './formatXAxisAdditionalLabel';\nexport * from './formatXAxisLabel';\nexport * from './getChartStyles';\nexport * from './getGradientColor';\nexport * from './getLabelData';\nexport * from './getRectColor';\nexport * from './getTooltipFormatter';\nexport * from './handleLabelUpdate';\nexport * from './handleTooltipUpdate';\nexport * from './isDifferenceGreaterThanTwoWeeks';\nexport * from './normalizeLocale';\n"],"mappings":";;;;;AAAA,IAAAA,2BAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,2BAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,2BAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,2BAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,iBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,iBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,iBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,iBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,eAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,eAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,eAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,eAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,iBAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,iBAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,iBAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,iBAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,aAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,aAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,aAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,aAAA,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;AACA,IAAAU,oBAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,oBAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAU,oBAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAM,oBAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,kBAAA,GAAAf,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAa,kBAAA,EAAAZ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAW,kBAAA,CAAAX,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAO,kBAAA,CAAAX,GAAA;IAAA;EAAA;AAAA;AACA,IAAAY,oBAAA,GAAAhB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAc,oBAAA,EAAAb,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAY,oBAAA,CAAAZ,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAQ,oBAAA,CAAAZ,GAAA;IAAA;EAAA;AAAA;AACA,IAAAa,gCAAA,GAAAjB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAe,gCAAA,EAAAd,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAa,gCAAA,CAAAb,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAS,gCAAA,CAAAb,GAAA;IAAA;EAAA;AAAA;AACA,IAAAc,gBAAA,GAAAlB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAgB,gBAAA,EAAAf,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAc,gBAAA,CAAAd,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAU,gBAAA,CAAAd,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.normalizeLocale = void 0;
7
+ const normalizeLocale = locale => {
8
+ return locale === 'en' ? 'en-GB' : locale;
9
+ };
10
+ exports.normalizeLocale = normalizeLocale;
11
+ //# sourceMappingURL=normalizeLocale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeLocale.js","names":["normalizeLocale","locale","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.ts"],"sourcesContent":["export const normalizeLocale = (locale: string): string => {\n return locale === 'en' ? 'en-GB' : locale;\n};\n"],"mappings":";;;;;;AAAO,MAAMA,eAAe,GAAIC,MAAc,IAAa;EACzD,OAAOA,MAAM,KAAK,IAAI,GAAG,OAAO,GAAGA,MAAM;AAC3C,CAAC;AAACC,OAAA,CAAAF,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -56,7 +56,7 @@ const processPriceCandles = priceCandlesData => {
56
56
  candlesClose,
57
57
  candlesLow,
58
58
  candlesHigh,
59
- dates,
59
+ dates: [...dates, new Date().toISOString()],
60
60
  hasValidCandles: true,
61
61
  pipsLocation: priceCandlesData.priceCandles.pipsLocation
62
62
  };
@@ -1 +1 @@
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/dataUtils/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":[]}
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","Date","toISOString","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/dataUtils/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: [...dates, new Date().toISOString()],\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,EAAE,CAAC,GAAGA,KAAK,EAAE,IAAIc,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,CAAC;IAC3CpB,eAAe,EAAE,IAAI;IACrBD,YAAY,EAAEN,gBAAgB,CAACa,YAAY,CAACP;EAC9C,CAAC;AACH,CAAC;AAACsB,OAAA,CAAA7B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -32,7 +32,8 @@ const getOption = _ref => {
32
32
  isLoading,
33
33
  isDark,
34
34
  isDesktop,
35
- labelCallback
35
+ labelCallback,
36
+ locale
36
37
  } = _ref;
37
38
  const styles = (0, _getChartStyles.getChartStyles)(isDark);
38
39
  const selectedPriceRef = {
@@ -64,16 +65,21 @@ const getOption = _ref => {
64
65
  selectedPriceRef,
65
66
  tooltipLinesColor: styles.tooltipLinesColor,
66
67
  sentimentLongs,
67
- sentimentShorts
68
+ sentimentShorts,
69
+ isDesktop,
70
+ isDark,
71
+ locale
68
72
  }),
69
73
  grid: (0, _chartOptions.getGridConfig)({
70
74
  isDesktop
71
75
  }),
72
76
  xAxis: (0, _chartOptions.getXAxisConfig)({
73
77
  dates,
74
- isGreaterThanTwoWeeks
78
+ isGreaterThanTwoWeeks,
79
+ locale
75
80
  }),
76
81
  yAxis: (0, _chartOptions.getYAxisConfig)({
82
+ isDesktop,
77
83
  bucketWidth,
78
84
  displayPrecision
79
85
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"getOption.js","names":["_constants","require","_chartOptions","_chartUtils","_getChartStyles","getOption","_ref","mainData","dates","candlesOpen","candlesClose","candlesLow","candlesHigh","bookPrices","bookIndexes","sentimentShorts","sentimentLongs","additionalData","bucketWidth","buckets","displayPrecision","bookType","sentimentThresholdMin","sentimentThresholdMax","isLoading","isDark","isDesktop","labelCallback","styles","getChartStyles","selectedPriceRef","current","initialStartZoom","CHART_CONFIG","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","visibleXAxisData","slice","length","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","isDifferenceGreaterThanTwoWeeks","heatmapChart","getSeriesHeatmapConfig","sentimentChart","getSeriesSentimentConfig","animation","tooltip","getTooltipConfig","tooltipLinesColor","grid","getGridConfig","xAxis","getXAxisConfig","yAxis","getYAxisConfig","dataZoom","getDataZoomConfig","visualMap","getVisualMapConfig","sentimentLongColor","sentimentShortColor","graphic","getGridLines","getLabelsConfig","dataset","source","series","getSeriesCandlestickConfig","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/getOption.ts"],"sourcesContent":["import { CHART_CONFIG } from '../../constants';\nimport {\n getDataZoomConfig,\n getGridConfig,\n getGridLines,\n getLabelsConfig,\n getSeriesCandlestickConfig,\n getSeriesHeatmapConfig,\n getSeriesSentimentConfig,\n getTooltipConfig,\n getVisualMapConfig,\n getXAxisConfig,\n getYAxisConfig,\n} from './chartOptions';\nimport { isDifferenceGreaterThanTwoWeeks } from './chartUtils';\nimport { getChartStyles } from './chartUtils/getChartStyles';\nimport type { GetOptionType } from './types';\n\nexport const getOption: GetOptionType = ({\n mainData: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n },\n additionalData: {\n bucketWidth,\n buckets,\n displayPrecision,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n },\n isLoading,\n isDark,\n isDesktop,\n labelCallback,\n}) => {\n const styles = getChartStyles(isDark);\n const selectedPriceRef = { current: 0 };\n\n const initialStartZoom = isDesktop\n ? CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP\n : CHART_CONFIG.INITIAL_START_ZOOM_MOBILE;\n\n const visibleXAxisData = dates.slice(\n (dates.length * initialStartZoom) / 100,\n (dates.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const heatmapChart =\n bookPrices && bookPrices.length > 0\n ? [\n getSeriesHeatmapConfig({\n bucketWidth,\n buckets,\n isDark,\n sentimentThresholdMax,\n sentimentThresholdMin,\n isLoading,\n }),\n ]\n : [];\n\n const sentimentChart =\n sentimentLongs && sentimentLongs.length > 0\n ? [\n getSeriesSentimentConfig({\n styles,\n isLoading,\n }),\n ]\n : [];\n\n return {\n animation: false,\n tooltip: getTooltipConfig({\n bookType,\n bucketWidth,\n buckets,\n displayPrecision,\n labelCallback,\n selectedPriceRef,\n tooltipLinesColor: styles.tooltipLinesColor,\n sentimentLongs,\n sentimentShorts,\n }),\n grid: getGridConfig({ isDesktop }),\n xAxis: getXAxisConfig({\n dates,\n isGreaterThanTwoWeeks,\n }),\n yAxis: getYAxisConfig({\n bucketWidth,\n displayPrecision,\n }),\n dataZoom: getDataZoomConfig({ isDesktop }),\n visualMap: getVisualMapConfig({\n sentimentLongColor: styles.sentimentLongColor,\n sentimentShortColor: styles.sentimentShortColor,\n }),\n graphic: [\n ...getGridLines({ isDark, isDesktop }),\n ...getLabelsConfig({ isDark, isDesktop, labelCallback }),\n ],\n dataset: {\n source: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices: bookPrices ?? [],\n bookIndexes: bookIndexes ?? [],\n sentimentShorts,\n sentimentLongs,\n },\n },\n series: [\n getSeriesCandlestickConfig({\n styles,\n isLoading,\n }),\n ...heatmapChart,\n ...sentimentChart,\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getOption.js","names":["_constants","require","_chartOptions","_chartUtils","_getChartStyles","getOption","_ref","mainData","dates","candlesOpen","candlesClose","candlesLow","candlesHigh","bookPrices","bookIndexes","sentimentShorts","sentimentLongs","additionalData","bucketWidth","buckets","displayPrecision","bookType","sentimentThresholdMin","sentimentThresholdMax","isLoading","isDark","isDesktop","labelCallback","locale","styles","getChartStyles","selectedPriceRef","current","initialStartZoom","CHART_CONFIG","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","visibleXAxisData","slice","length","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","isDifferenceGreaterThanTwoWeeks","heatmapChart","getSeriesHeatmapConfig","sentimentChart","getSeriesSentimentConfig","animation","tooltip","getTooltipConfig","tooltipLinesColor","grid","getGridConfig","xAxis","getXAxisConfig","yAxis","getYAxisConfig","dataZoom","getDataZoomConfig","visualMap","getVisualMapConfig","sentimentLongColor","sentimentShortColor","graphic","getGridLines","getLabelsConfig","dataset","source","series","getSeriesCandlestickConfig","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/getOption.ts"],"sourcesContent":["import { CHART_CONFIG } from '../../constants';\nimport {\n getDataZoomConfig,\n getGridConfig,\n getGridLines,\n getLabelsConfig,\n getSeriesCandlestickConfig,\n getSeriesHeatmapConfig,\n getSeriesSentimentConfig,\n getTooltipConfig,\n getVisualMapConfig,\n getXAxisConfig,\n getYAxisConfig,\n} from './chartOptions';\nimport { isDifferenceGreaterThanTwoWeeks } from './chartUtils';\nimport { getChartStyles } from './chartUtils/getChartStyles';\nimport type { GetOptionType } from './types';\n\nexport const getOption: GetOptionType = ({\n mainData: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices,\n bookIndexes,\n sentimentShorts,\n sentimentLongs,\n },\n additionalData: {\n bucketWidth,\n buckets,\n displayPrecision,\n bookType,\n sentimentThresholdMin,\n sentimentThresholdMax,\n },\n isLoading,\n isDark,\n isDesktop,\n labelCallback,\n locale,\n}) => {\n const styles = getChartStyles(isDark);\n const selectedPriceRef = { current: 0 };\n\n const initialStartZoom = isDesktop\n ? CHART_CONFIG.INITIAL_START_ZOOM_DESKTOP\n : CHART_CONFIG.INITIAL_START_ZOOM_MOBILE;\n\n const visibleXAxisData = dates.slice(\n (dates.length * initialStartZoom) / 100,\n (dates.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const heatmapChart =\n bookPrices && bookPrices.length > 0\n ? [\n getSeriesHeatmapConfig({\n bucketWidth,\n buckets,\n isDark,\n sentimentThresholdMax,\n sentimentThresholdMin,\n isLoading,\n }),\n ]\n : [];\n\n const sentimentChart =\n sentimentLongs && sentimentLongs.length > 0\n ? [\n getSeriesSentimentConfig({\n styles,\n isLoading,\n }),\n ]\n : [];\n\n return {\n animation: false,\n tooltip: getTooltipConfig({\n bookType,\n bucketWidth,\n buckets,\n displayPrecision,\n labelCallback,\n selectedPriceRef,\n tooltipLinesColor: styles.tooltipLinesColor,\n sentimentLongs,\n sentimentShorts,\n isDesktop,\n isDark,\n locale,\n }),\n grid: getGridConfig({ isDesktop }),\n xAxis: getXAxisConfig({\n dates,\n isGreaterThanTwoWeeks,\n locale,\n }),\n yAxis: getYAxisConfig({\n isDesktop,\n bucketWidth,\n displayPrecision,\n }),\n dataZoom: getDataZoomConfig({ isDesktop }),\n visualMap: getVisualMapConfig({\n sentimentLongColor: styles.sentimentLongColor,\n sentimentShortColor: styles.sentimentShortColor,\n }),\n graphic: [\n ...getGridLines({ isDark, isDesktop }),\n ...getLabelsConfig({ isDark, isDesktop, labelCallback }),\n ],\n dataset: {\n source: {\n dates,\n candlesOpen,\n candlesClose,\n candlesLow,\n candlesHigh,\n bookPrices: bookPrices ?? [],\n bookIndexes: bookIndexes ?? [],\n sentimentShorts,\n sentimentLongs,\n },\n },\n series: [\n getSeriesCandlestickConfig({\n styles,\n isLoading,\n }),\n ...heatmapChart,\n ...sentimentChart,\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/CrowdViewWidget/components/Chart/types.ts"],"sourcesContent":["import type { EChartsOption } from 'echarts';\n\nimport type {\n BookType,\n Division,\n Granularity,\n} from '../../../gql/types/graphql';\nimport type { InstrumentId } from '../../types';\n\nexport interface Bucket {\n price: number;\n sentiment: number;\n}\n\nexport interface UseCrowdViewDataProps {\n instrument: InstrumentId;\n bookType: BookType;\n division: Division;\n granularity: Granularity;\n}\n\ninterface CrowdViewMainData {\n dates: string[];\n candlesOpen: number[];\n candlesClose: number[];\n candlesLow: number[];\n candlesHigh: number[];\n bookPrices?: (number | null)[];\n bookIndexes?: (number | null)[];\n sentimentShorts: (number | null)[];\n sentimentLongs: (number | null)[];\n}\n\ninterface CrowdViewAdditionalData {\n bucketWidth: number;\n buckets: Bucket[][];\n displayPrecision: number;\n bookType: BookType;\n sentimentThresholdMin: number;\n sentimentThresholdMax: number;\n}\n\nexport interface UseCrowdViewDataReturn {\n mainData?: CrowdViewMainData | null;\n additionalData?: CrowdViewAdditionalData | null;\n loading: boolean;\n priceCandlesLoading: boolean;\n orderPositionLoading: boolean;\n sentimentsLoading: boolean;\n error: boolean;\n}\n\ninterface GetOptionProps {\n mainData: CrowdViewMainData;\n additionalData: CrowdViewAdditionalData;\n isDark: boolean;\n isDesktop: boolean;\n isLoading: boolean;\n labelCallback: (key: string, params?: Record<string, unknown>) => string;\n}\n\nexport type GetOptionType = (props: GetOptionProps) => EChartsOption;\n\nexport interface ChartProps {\n mainData: CrowdViewMainData;\n additionalData: CrowdViewAdditionalData;\n isDesktop: boolean;\n isLoading: boolean;\n}\n\nexport interface ChartWithDataProps {\n bookType: BookType;\n division: Division;\n instrument: InstrumentId;\n granularity: Granularity;\n}\n\nexport interface GetLabelsDataProps {\n dates: string[];\n isGreaterThanTwoWeeks: boolean;\n}\n\ninterface BaseTooltipParam {\n [key: string]: unknown;\n seriesId?: string;\n seriesName?: string;\n seriesType?: string;\n axisValue?: string | number;\n axisValueLabel?: string;\n axisDimension?: string;\n axisIndex?: number;\n value: unknown;\n}\n\nexport type TooltipParam =\n | (BaseTooltipParam & {\n seriesId: 'candlestick';\n value: [number, number, number, number, number]; // [0, open, close, low, high]\n })\n | (BaseTooltipParam & {\n seriesId: 'heatmap';\n value: [string, number, number]; // [time, price, index]\n })\n | (BaseTooltipParam & {\n seriesId: 'sentiment';\n value: [string, number, number]; // [time, shortPercent, longPercent]\n });\n\nexport interface DataZoomBatchItem {\n [key: string]: unknown;\n start: number;\n end: number;\n dataZoomId?: string;\n}\n\nexport interface DataZoomEvent {\n [key: string]: unknown;\n type: 'datazoom';\n batch?: DataZoomBatchItem[];\n}\n\nexport interface DataZoomItem {\n startValue: number;\n endValue: number;\n}\n\nexport type DataZoomArray = Array<DataZoomItem>;\n\nexport interface XAxisItem {\n name?: string;\n}\n\nexport type XAxisArray = Array<XAxisItem>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/CrowdViewWidget/components/Chart/types.ts"],"sourcesContent":["import type { EChartsOption } from 'echarts';\n\nimport type {\n BookType,\n Division,\n Granularity,\n} from '../../../gql/types/graphql';\nimport type { InstrumentId } from '../../types';\n\nexport interface Bucket {\n price: number;\n sentiment: number;\n}\n\nexport interface UseCrowdViewDataProps {\n instrument: InstrumentId;\n bookType: BookType;\n division: Division;\n granularity: Granularity;\n}\n\ninterface CrowdViewMainData {\n dates: string[];\n candlesOpen: number[];\n candlesClose: number[];\n candlesLow: number[];\n candlesHigh: number[];\n bookPrices?: (number | null)[];\n bookIndexes?: (number | null)[];\n sentimentShorts: (number | null)[];\n sentimentLongs: (number | null)[];\n}\n\ninterface CrowdViewAdditionalData {\n bucketWidth: number;\n buckets: Bucket[][];\n displayPrecision: number;\n bookType: BookType;\n sentimentThresholdMin: number;\n sentimentThresholdMax: number;\n}\n\nexport interface UseCrowdViewDataReturn {\n mainData?: CrowdViewMainData | null;\n additionalData?: CrowdViewAdditionalData | null;\n loading: boolean;\n priceCandlesLoading: boolean;\n orderPositionLoading: boolean;\n sentimentsLoading: boolean;\n error: boolean;\n}\n\ninterface GetOptionProps {\n mainData: CrowdViewMainData;\n additionalData: CrowdViewAdditionalData;\n isDark: boolean;\n isDesktop: boolean;\n isLoading: boolean;\n labelCallback: (key: string, params?: Record<string, unknown>) => string;\n locale: string;\n}\n\nexport type GetOptionType = (props: GetOptionProps) => EChartsOption;\n\nexport interface ChartProps {\n mainData: CrowdViewMainData;\n additionalData: CrowdViewAdditionalData;\n isDesktop: boolean;\n isLoading: boolean;\n}\n\nexport interface ChartWithDataProps {\n bookType: BookType;\n division: Division;\n instrument: InstrumentId;\n granularity: Granularity;\n}\n\nexport interface GetLabelsDataProps {\n dates: string[];\n isGreaterThanTwoWeeks: boolean;\n}\n\ninterface BaseTooltipParam {\n [key: string]: unknown;\n seriesId?: string;\n seriesName?: string;\n seriesType?: string;\n axisValue?: string | number;\n axisValueLabel?: string;\n axisDimension?: string;\n axisIndex?: number;\n value: unknown;\n}\n\nexport type TooltipParam =\n | (BaseTooltipParam & {\n seriesId: 'candlestick';\n value: [number, number, number, number, number]; // [0, open, close, low, high]\n })\n | (BaseTooltipParam & {\n seriesId: 'heatmap';\n value: [string, number, number]; // [time, price, index]\n })\n | (BaseTooltipParam & {\n seriesId: 'sentiment';\n value: [string, number, number]; // [time, shortPercent, longPercent]\n });\n\nexport interface DataZoomBatchItem {\n [key: string]: unknown;\n start: number;\n end: number;\n dataZoomId?: string;\n}\n\nexport interface DataZoomEvent {\n [key: string]: unknown;\n type: 'datazoom';\n batch?: DataZoomBatchItem[];\n}\n\nexport interface DataZoomItem {\n startValue: number;\n endValue: number;\n}\n\nexport type DataZoomArray = Array<DataZoomItem>;\n\nexport interface XAxisItem {\n name?: string;\n}\n\nexport type XAxisArray = Array<XAxisItem>;\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useResizeObserver = void 0;
7
+ var _react = require("react");
8
+ const useResizeObserver = function () {
9
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10
+ const {
11
+ debounceDelay = 150
12
+ } = options;
13
+ const [isResizing, setIsResizing] = (0, _react.useState)(false);
14
+ const containerRef = (0, _react.useRef)(null);
15
+ const resizeTimeoutRef = (0, _react.useRef)(null);
16
+ (0, _react.useEffect)(() => {
17
+ const container = containerRef.current;
18
+ if (!container) {
19
+ return undefined;
20
+ }
21
+ if (typeof ResizeObserver === 'undefined') {
22
+ console.warn('ResizeObserver is not supported in this browser');
23
+ return undefined;
24
+ }
25
+ const resizeObserver = new ResizeObserver(() => {
26
+ setIsResizing(true);
27
+ if (resizeTimeoutRef.current) {
28
+ clearTimeout(resizeTimeoutRef.current);
29
+ }
30
+ resizeTimeoutRef.current = setTimeout(() => {
31
+ setIsResizing(false);
32
+ resizeTimeoutRef.current = null;
33
+ }, debounceDelay);
34
+ });
35
+ resizeObserver.observe(container);
36
+ return () => {
37
+ resizeObserver.disconnect();
38
+ if (resizeTimeoutRef.current) {
39
+ clearTimeout(resizeTimeoutRef.current);
40
+ resizeTimeoutRef.current = null;
41
+ }
42
+ };
43
+ }, [debounceDelay]);
44
+ return [containerRef, isResizing];
45
+ };
46
+ exports.useResizeObserver = useResizeObserver;
47
+ //# sourceMappingURL=useResizeObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResizeObserver.js","names":["_react","require","useResizeObserver","options","arguments","length","undefined","debounceDelay","isResizing","setIsResizing","useState","containerRef","useRef","resizeTimeoutRef","useEffect","container","current","ResizeObserver","console","warn","resizeObserver","clearTimeout","setTimeout","observe","disconnect","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/useResizeObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\ninterface UseResizeObserverOptions {\n debounceDelay?: number;\n}\n\nexport const useResizeObserver = (\n options: UseResizeObserverOptions = {}\n): [React.RefObject<HTMLDivElement>, boolean] => {\n const { debounceDelay = 150 } = options;\n const [isResizing, setIsResizing] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const resizeTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return undefined;\n }\n\n if (typeof ResizeObserver === 'undefined') {\n console.warn('ResizeObserver is not supported in this browser');\n return undefined;\n }\n\n const resizeObserver = new ResizeObserver(() => {\n setIsResizing(true);\n\n if (resizeTimeoutRef.current) {\n clearTimeout(resizeTimeoutRef.current);\n }\n\n resizeTimeoutRef.current = setTimeout(() => {\n setIsResizing(false);\n resizeTimeoutRef.current = null;\n }, debounceDelay);\n });\n\n resizeObserver.observe(container);\n\n return () => {\n resizeObserver.disconnect();\n if (resizeTimeoutRef.current) {\n clearTimeout(resizeTimeoutRef.current);\n resizeTimeoutRef.current = null;\n }\n };\n }, [debounceDelay]);\n\n return [containerRef, isResizing];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMO,MAAMC,iBAAiB,GAAG,SAAAA,CAAA,EAEgB;EAAA,IAD/CC,OAAiC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEtC,MAAM;IAAEG,aAAa,GAAG;EAAI,CAAC,GAAGJ,OAAO;EACvC,MAAM,CAACK,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACnD,MAAMC,YAAY,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EACjD,MAAMC,gBAAgB,GAAG,IAAAD,aAAM,EAAwB,IAAI,CAAC;EAE5D,IAAAE,gBAAS,EAAC,MAAM;IACd,MAAMC,SAAS,GAAGJ,YAAY,CAACK,OAAO;IACtC,IAAI,CAACD,SAAS,EAAE;MACd,OAAOT,SAAS;IAClB;IAEA,IAAI,OAAOW,cAAc,KAAK,WAAW,EAAE;MACzCC,OAAO,CAACC,IAAI,CAAC,iDAAiD,CAAC;MAC/D,OAAOb,SAAS;IAClB;IAEA,MAAMc,cAAc,GAAG,IAAIH,cAAc,CAAC,MAAM;MAC9CR,aAAa,CAAC,IAAI,CAAC;MAEnB,IAAII,gBAAgB,CAACG,OAAO,EAAE;QAC5BK,YAAY,CAACR,gBAAgB,CAACG,OAAO,CAAC;MACxC;MAEAH,gBAAgB,CAACG,OAAO,GAAGM,UAAU,CAAC,MAAM;QAC1Cb,aAAa,CAAC,KAAK,CAAC;QACpBI,gBAAgB,CAACG,OAAO,GAAG,IAAI;MACjC,CAAC,EAAET,aAAa,CAAC;IACnB,CAAC,CAAC;IAEFa,cAAc,CAACG,OAAO,CAACR,SAAS,CAAC;IAEjC,OAAO,MAAM;MACXK,cAAc,CAACI,UAAU,CAAC,CAAC;MAC3B,IAAIX,gBAAgB,CAACG,OAAO,EAAE;QAC5BK,YAAY,CAACR,gBAAgB,CAACG,OAAO,CAAC;QACtCH,gBAAgB,CAACG,OAAO,GAAG,IAAI;MACjC;IACF,CAAC;EACH,CAAC,EAAE,CAACT,aAAa,CAAC,CAAC;EAEnB,OAAO,CAACI,YAAY,EAAEH,UAAU,CAAC;AACnC,CAAC;AAACiB,OAAA,CAAAvB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -16,7 +16,7 @@ const LegendBar = _ref => {
16
16
  const colorPalette = isDark ? _constants.COLOR_MAP.dark : _constants.COLOR_MAP.light;
17
17
  const startColor = type === 'long' ? colorPalette.long[1] : colorPalette.short[0];
18
18
  const endColor = type === 'long' ? colorPalette.long[0] : colorPalette.short[1];
19
- const endGradient = type === 'long' ? "linear-gradient(90deg,".concat(endColor, " 0%, transparent 100%)") : "linear-gradient(270deg,".concat(startColor, " 0%, transparent 100%)");
19
+ const endGradient = type === 'long' ? "linear-gradient(90deg,".concat(endColor, " 0%, ").concat(colorPalette.backgroundColor, " 100%)") : "linear-gradient(270deg,".concat(startColor, " 0%, ").concat(colorPalette.backgroundColor, " 100%)");
20
20
  return _react.default.createElement("div", {
21
21
  className: (0, _labsWidgetCommon.cn)('lw-flex lw-h-2 lw-w-full lw-overflow-hidden', {
22
22
  'lw-flex-row-reverse': type === 'short'
@@ -1 +1 @@
1
- {"version":3,"file":"LegendBar.js","names":["_labsWidgetCommon","require","_react","_interopRequireDefault","_constants","e","__esModule","default","LegendBar","_ref","type","isDark","colorPalette","COLOR_MAP","dark","light","startColor","long","short","endColor","endGradient","concat","createElement","className","cn","style","background","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/LegendBar.tsx"],"sourcesContent":["import { cn } from '@oanda/labs-widget-common';\nimport React from 'react';\n\nimport { COLOR_MAP } from '../../constants';\n\nexport type LegendType = 'long' | 'short';\n\ninterface LegendBarProps {\n type: LegendType;\n isDark: boolean;\n}\n\nexport const LegendBar = ({ type, isDark }: LegendBarProps) => {\n const colorPalette = isDark ? COLOR_MAP.dark : COLOR_MAP.light;\n const startColor =\n type === 'long' ? colorPalette.long[1] : colorPalette.short[0];\n const endColor =\n type === 'long' ? colorPalette.long[0] : colorPalette.short[1];\n const endGradient =\n type === 'long'\n ? `linear-gradient(90deg,${endColor} 0%, transparent 100%)`\n : `linear-gradient(270deg,${startColor} 0%, transparent 100%)`;\n\n return (\n <div\n className={cn('lw-flex lw-h-2 lw-w-full lw-overflow-hidden', {\n 'lw-flex-row-reverse': type === 'short',\n })}\n >\n <div\n className=\"lw-h-full lw-flex-1\"\n data-testid=\"legend-bar-segment\"\n style={{\n background: `linear-gradient(90deg,${startColor} 0%, ${endColor} 100%)`,\n }}\n />\n <div\n className=\"lw-h-full lw-w-[10px]\"\n data-testid=\"legend-bar-segment\"\n style={{\n background: endGradient,\n }}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AAA4C,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AASrC,MAAMG,SAAS,GAAGC,IAAA,IAAsC;EAAA,IAArC;IAAEC,IAAI;IAAEC;EAAuB,CAAC,GAAAF,IAAA;EACxD,MAAMG,YAAY,GAAGD,MAAM,GAAGE,oBAAS,CAACC,IAAI,GAAGD,oBAAS,CAACE,KAAK;EAC9D,MAAMC,UAAU,GACdN,IAAI,KAAK,MAAM,GAAGE,YAAY,CAACK,IAAI,CAAC,CAAC,CAAC,GAAGL,YAAY,CAACM,KAAK,CAAC,CAAC,CAAC;EAChE,MAAMC,QAAQ,GACZT,IAAI,KAAK,MAAM,GAAGE,YAAY,CAACK,IAAI,CAAC,CAAC,CAAC,GAAGL,YAAY,CAACM,KAAK,CAAC,CAAC,CAAC;EAChE,MAAME,WAAW,GACfV,IAAI,KAAK,MAAM,4BAAAW,MAAA,CACcF,QAAQ,wDAAAE,MAAA,CACPL,UAAU,2BAAwB;EAElE,OACEd,MAAA,CAAAK,OAAA,CAAAe,aAAA;IACEC,SAAS,EAAE,IAAAC,oBAAE,EAAC,6CAA6C,EAAE;MAC3D,qBAAqB,EAAEd,IAAI,KAAK;IAClC,CAAC;EAAE,GAEHR,MAAA,CAAAK,OAAA,CAAAe,aAAA;IACEC,SAAS,EAAC,qBAAqB;IAC/B,eAAY,oBAAoB;IAChCE,KAAK,EAAE;MACLC,UAAU,2BAAAL,MAAA,CAA2BL,UAAU,WAAAK,MAAA,CAAQF,QAAQ;IACjE;EAAE,CACH,CAAC,EACFjB,MAAA,CAAAK,OAAA,CAAAe,aAAA;IACEC,SAAS,EAAC,uBAAuB;IACjC,eAAY,oBAAoB;IAChCE,KAAK,EAAE;MACLC,UAAU,EAAEN;IACd;EAAE,CACH,CACE,CAAC;AAEV,CAAC;AAACO,OAAA,CAAAnB,SAAA,GAAAA,SAAA","ignoreList":[]}
1
+ {"version":3,"file":"LegendBar.js","names":["_labsWidgetCommon","require","_react","_interopRequireDefault","_constants","e","__esModule","default","LegendBar","_ref","type","isDark","colorPalette","COLOR_MAP","dark","light","startColor","long","short","endColor","endGradient","concat","backgroundColor","createElement","className","cn","style","background","exports"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/LegendBar.tsx"],"sourcesContent":["import { cn } from '@oanda/labs-widget-common';\nimport React from 'react';\n\nimport { COLOR_MAP } from '../../constants';\n\nexport type LegendType = 'long' | 'short';\n\ninterface LegendBarProps {\n type: LegendType;\n isDark: boolean;\n}\n\nexport const LegendBar = ({ type, isDark }: LegendBarProps) => {\n const colorPalette = isDark ? COLOR_MAP.dark : COLOR_MAP.light;\n\n const startColor =\n type === 'long' ? colorPalette.long[1] : colorPalette.short[0];\n const endColor =\n type === 'long' ? colorPalette.long[0] : colorPalette.short[1];\n const endGradient =\n type === 'long'\n ? `linear-gradient(90deg,${endColor} 0%, ${colorPalette.backgroundColor} 100%)`\n : `linear-gradient(270deg,${startColor} 0%, ${colorPalette.backgroundColor} 100%)`;\n\n return (\n <div\n className={cn('lw-flex lw-h-2 lw-w-full lw-overflow-hidden', {\n 'lw-flex-row-reverse': type === 'short',\n })}\n >\n <div\n className=\"lw-h-full lw-flex-1\"\n data-testid=\"legend-bar-segment\"\n style={{\n background: `linear-gradient(90deg,${startColor} 0%, ${endColor} 100%)`,\n }}\n />\n <div\n className=\"lw-h-full lw-w-[10px]\"\n data-testid=\"legend-bar-segment\"\n style={{\n background: endGradient,\n }}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AAA4C,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AASrC,MAAMG,SAAS,GAAGC,IAAA,IAAsC;EAAA,IAArC;IAAEC,IAAI;IAAEC;EAAuB,CAAC,GAAAF,IAAA;EACxD,MAAMG,YAAY,GAAGD,MAAM,GAAGE,oBAAS,CAACC,IAAI,GAAGD,oBAAS,CAACE,KAAK;EAE9D,MAAMC,UAAU,GACdN,IAAI,KAAK,MAAM,GAAGE,YAAY,CAACK,IAAI,CAAC,CAAC,CAAC,GAAGL,YAAY,CAACM,KAAK,CAAC,CAAC,CAAC;EAChE,MAAMC,QAAQ,GACZT,IAAI,KAAK,MAAM,GAAGE,YAAY,CAACK,IAAI,CAAC,CAAC,CAAC,GAAGL,YAAY,CAACM,KAAK,CAAC,CAAC,CAAC;EAChE,MAAME,WAAW,GACfV,IAAI,KAAK,MAAM,4BAAAW,MAAA,CACcF,QAAQ,WAAAE,MAAA,CAAQT,YAAY,CAACU,eAAe,wCAAAD,MAAA,CAC3CL,UAAU,WAAAK,MAAA,CAAQT,YAAY,CAACU,eAAe,WAAQ;EAEtF,OACEpB,MAAA,CAAAK,OAAA,CAAAgB,aAAA;IACEC,SAAS,EAAE,IAAAC,oBAAE,EAAC,6CAA6C,EAAE;MAC3D,qBAAqB,EAAEf,IAAI,KAAK;IAClC,CAAC;EAAE,GAEHR,MAAA,CAAAK,OAAA,CAAAgB,aAAA;IACEC,SAAS,EAAC,qBAAqB;IAC/B,eAAY,oBAAoB;IAChCE,KAAK,EAAE;MACLC,UAAU,2BAAAN,MAAA,CAA2BL,UAAU,WAAAK,MAAA,CAAQF,QAAQ;IACjE;EAAE,CACH,CAAC,EACFjB,MAAA,CAAAK,OAAA,CAAAgB,aAAA;IACEC,SAAS,EAAC,uBAAuB;IACjC,eAAY,oBAAoB;IAChCE,KAAK,EAAE;MACLC,UAAU,EAAEP;IACd;EAAE,CACH,CACE,CAAC;AAEV,CAAC;AAACQ,OAAA,CAAApB,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -8,6 +8,11 @@ var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
8
  var _chromaJs = _interopRequireDefault(require("chroma-js"));
9
9
  var _types = require("./types");
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
15
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
16
  const BUCKET_CONFIG = exports.BUCKET_CONFIG = {
12
17
  MULTIPLIER_5M: 1,
13
18
  MULTIPLIER_15M: 1,
@@ -18,9 +23,9 @@ const BUCKET_CONFIG = exports.BUCKET_CONFIG = {
18
23
  const TIME_THRESHOLDS = exports.TIME_THRESHOLDS = {
19
24
  TWO_WEEKS_MS: 14 * 24 * 60 * 60 * 1000
20
25
  };
21
- const CHART_CONFIG = exports.CHART_CONFIG = {
22
- HEIGHT: 440,
23
- MAIN_HEIGHT: 400,
26
+ const CHART_CONFIG_STATIC = {
27
+ MAIN_HEIGHT_DESKTOP: 410,
28
+ MAIN_HEIGHT_MOBILE: 330,
24
29
  MARGIN_BETWEEN: 50,
25
30
  SENTIMENT_HEIGHT: 120,
26
31
  WIDTH: 9999,
@@ -36,17 +41,25 @@ const CHART_CONFIG = exports.CHART_CONFIG = {
36
41
  SENTIMENT_MIN: 0,
37
42
  SENTIMENT_MAX: 100,
38
43
  TOP_MARGIN_DESKTOP: 0,
39
- TOP_MARGIN_MOBILE: 30,
40
- TOOLTIP_OFFSET: 5
44
+ TOP_MARGIN_MOBILE: 24,
45
+ MOBILE_TOOLTIP_HEIGHT: 85,
46
+ TOOLTIP_OFFSET: 8
41
47
  };
48
+ const CHART_CONFIG_CALCULATED = {
49
+ HEIGHT_DESKTOP: CHART_CONFIG_STATIC.MAIN_HEIGHT_DESKTOP + CHART_CONFIG_STATIC.TOP_MARGIN_DESKTOP + CHART_CONFIG_STATIC.X_LABEL_SIZE,
50
+ HEIGHT_MOBILE: CHART_CONFIG_STATIC.MAIN_HEIGHT_MOBILE + CHART_CONFIG_STATIC.X_LABEL_SIZE + CHART_CONFIG_STATIC.TOP_MARGIN_MOBILE + CHART_CONFIG_STATIC.MOBILE_TOOLTIP_HEIGHT
51
+ };
52
+ const CHART_CONFIG = exports.CHART_CONFIG = _objectSpread(_objectSpread({}, CHART_CONFIG_STATIC), CHART_CONFIG_CALCULATED);
42
53
  const COLOR_MAP = exports.COLOR_MAP = {
43
54
  dark: {
44
55
  long: [(0, _chromaJs.default)(_labsWidgetCommon.colorPalette.darkBlue10).shade(0.5).hex(), (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.darkBlue90).shade(0.5).hex()],
45
- short: [(0, _chromaJs.default)(_labsWidgetCommon.colorPalette.darkYellow10).shade(0.5).hex(), (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.darkYellow90).shade(0.5).hex()]
56
+ short: [(0, _chromaJs.default)(_labsWidgetCommon.colorPalette.darkYellow10).shade(0.5).hex(), (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.darkYellow90).shade(0.5).hex()],
57
+ backgroundColor: _labsWidgetCommon.colorPalette.black
46
58
  },
47
59
  light: {
48
60
  long: [(0, _chromaJs.default)(_labsWidgetCommon.colorPalette.lightBlue10).tint(0.5).hex(), (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.lightBlue90).tint(0.5).hex()],
49
- short: [(0, _chromaJs.default)(_labsWidgetCommon.colorPalette.lightYellow10).tint(0.5).hex(), (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.lightYellow90).tint(0.5).hex()]
61
+ short: [(0, _chromaJs.default)(_labsWidgetCommon.colorPalette.lightYellow10).tint(0.5).hex(), (0, _chromaJs.default)(_labsWidgetCommon.colorPalette.lightYellow90).tint(0.5).hex()],
62
+ backgroundColor: _labsWidgetCommon.colorPalette.white
50
63
  }
51
64
  };
52
65
  const INSTRUMENTS_CONFIG = exports.INSTRUMENTS_CONFIG = {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["_labsWidgetCommon","require","_chromaJs","_interopRequireDefault","_types","e","__esModule","default","BUCKET_CONFIG","exports","MULTIPLIER_5M","MULTIPLIER_15M","MULTIPLIER_1H","MULTIPLIER_4H","PRICE_MARGIN_MULTIPLIER","TIME_THRESHOLDS","TWO_WEEKS_MS","CHART_CONFIG","HEIGHT","MAIN_HEIGHT","MARGIN_BETWEEN","SENTIMENT_HEIGHT","WIDTH","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","Y_SENTIMENT_LABEL_DESKTOP_SIZE","Y_SENTIMENT_LABEL_MOBILE_SIZE","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","INITIAL_END_ZOOM","X_AXIS_DATE_PADDING","SENTIMENT_MIN","SENTIMENT_MAX","TOP_MARGIN_DESKTOP","TOP_MARGIN_MOBILE","TOOLTIP_OFFSET","COLOR_MAP","dark","long","chroma","colorPalette","darkBlue10","shade","hex","darkBlue90","short","darkYellow10","darkYellow90","light","lightBlue10","tint","lightBlue90","lightYellow10","lightYellow90","INSTRUMENTS_CONFIG","InstrumentId","EUR_AUD","mt5name","v20name","precision","defaultBucketWidth","EUR_GBP","EUR_JPY","EUR_USD","EUR_CHF","USD_CHF","USD_JPY","USD_CAD","GBP_USD","GBP_JPY","GBP_CHF","AUD_JPY","AUD_USD","NZD_USD","XAU_USD","XAG_USD"],"sources":["../../../src/CrowdViewWidget/constants.ts"],"sourcesContent":["import { colorPalette } from '@oanda/labs-widget-common';\nimport chroma from 'chroma-js';\n\nimport { InstrumentId } from './types';\n\nexport const BUCKET_CONFIG = {\n MULTIPLIER_5M: 1,\n MULTIPLIER_15M: 1,\n MULTIPLIER_1H: 2,\n MULTIPLIER_4H: 4,\n PRICE_MARGIN_MULTIPLIER: 2,\n} as const;\n\nexport const TIME_THRESHOLDS = {\n TWO_WEEKS_MS: 14 * 24 * 60 * 60 * 1000,\n} as const;\n\nexport const CHART_CONFIG = {\n HEIGHT: 440,\n MAIN_HEIGHT: 400,\n MARGIN_BETWEEN: 50,\n SENTIMENT_HEIGHT: 120,\n WIDTH: 9999,\n X_LABEL_SIZE: 40,\n Y_LABEL_SIZE_DESKTOP: 50,\n Y_LABEL_SIZE_MOBILE: 40,\n Y_SENTIMENT_LABEL_DESKTOP_SIZE: 40,\n Y_SENTIMENT_LABEL_MOBILE_SIZE: 30,\n INITIAL_START_ZOOM_DESKTOP: 70,\n INITIAL_START_ZOOM_MOBILE: 85,\n INITIAL_END_ZOOM: 100,\n X_AXIS_DATE_PADDING: ' ',\n SENTIMENT_MIN: 0,\n SENTIMENT_MAX: 100,\n TOP_MARGIN_DESKTOP: 0,\n TOP_MARGIN_MOBILE: 30,\n TOOLTIP_OFFSET: 5,\n} as const;\n\nexport const COLOR_MAP = {\n dark: {\n long: [\n chroma(colorPalette.darkBlue10).shade(0.5).hex(),\n chroma(colorPalette.darkBlue90).shade(0.5).hex(),\n ],\n short: [\n chroma(colorPalette.darkYellow10).shade(0.5).hex(),\n chroma(colorPalette.darkYellow90).shade(0.5).hex(),\n ],\n },\n light: {\n long: [\n chroma(colorPalette.lightBlue10).tint(0.5).hex(),\n chroma(colorPalette.lightBlue90).tint(0.5).hex(),\n ],\n short: [\n chroma(colorPalette.lightYellow10).tint(0.5).hex(),\n chroma(colorPalette.lightYellow90).tint(0.5).hex(),\n ],\n },\n} as const;\n\nexport const INSTRUMENTS_CONFIG: Record<\n InstrumentId,\n {\n precision: number;\n defaultBucketWidth: number;\n v20name: string;\n mt5name: string;\n }\n> = {\n [InstrumentId.EUR_AUD]: {\n mt5name: 'EURAUD',\n v20name: 'EUR_AUD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.EUR_GBP]: {\n mt5name: 'EURGBP',\n v20name: 'EUR_GBP',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.EUR_JPY]: {\n mt5name: 'EURJPY',\n v20name: 'EUR_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.EUR_USD]: {\n mt5name: 'EURUSD',\n v20name: 'EUR_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.EUR_CHF]: {\n mt5name: 'EURCHF',\n v20name: 'EUR_CHF',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.USD_CHF]: {\n mt5name: 'USDCHF',\n v20name: 'USD_CHF',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.USD_JPY]: {\n mt5name: 'USDJPY',\n v20name: 'USD_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.USD_CAD]: {\n mt5name: 'USDCAD',\n v20name: 'USD_CAD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.GBP_USD]: {\n mt5name: 'GBPUSD',\n v20name: 'GBP_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.GBP_JPY]: {\n mt5name: 'GBPJPY',\n v20name: 'GBP_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.GBP_CHF]: {\n mt5name: 'GBPCHF',\n v20name: 'GBP_CHF',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.AUD_JPY]: {\n mt5name: 'AUDJPY',\n v20name: 'AUD_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.AUD_USD]: {\n mt5name: 'AUDUSD',\n v20name: 'AUD_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.NZD_USD]: {\n mt5name: 'NZDUSD',\n v20name: 'NZD_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.XAU_USD]: {\n mt5name: 'XAUUSD',\n v20name: 'XAU_USD',\n precision: 3,\n defaultBucketWidth: 0.5,\n },\n [InstrumentId.XAG_USD]: {\n mt5name: 'XAGUSD',\n v20name: 'XAG_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","names":["_labsWidgetCommon","require","_chromaJs","_interopRequireDefault","_types","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BUCKET_CONFIG","exports","MULTIPLIER_5M","MULTIPLIER_15M","MULTIPLIER_1H","MULTIPLIER_4H","PRICE_MARGIN_MULTIPLIER","TIME_THRESHOLDS","TWO_WEEKS_MS","CHART_CONFIG_STATIC","MAIN_HEIGHT_DESKTOP","MAIN_HEIGHT_MOBILE","MARGIN_BETWEEN","SENTIMENT_HEIGHT","WIDTH","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","Y_LABEL_SIZE_MOBILE","Y_SENTIMENT_LABEL_DESKTOP_SIZE","Y_SENTIMENT_LABEL_MOBILE_SIZE","INITIAL_START_ZOOM_DESKTOP","INITIAL_START_ZOOM_MOBILE","INITIAL_END_ZOOM","X_AXIS_DATE_PADDING","SENTIMENT_MIN","SENTIMENT_MAX","TOP_MARGIN_DESKTOP","TOP_MARGIN_MOBILE","MOBILE_TOOLTIP_HEIGHT","TOOLTIP_OFFSET","CHART_CONFIG_CALCULATED","HEIGHT_DESKTOP","HEIGHT_MOBILE","CHART_CONFIG","COLOR_MAP","dark","long","chroma","colorPalette","darkBlue10","shade","hex","darkBlue90","short","darkYellow10","darkYellow90","backgroundColor","black","light","lightBlue10","tint","lightBlue90","lightYellow10","lightYellow90","white","INSTRUMENTS_CONFIG","InstrumentId","EUR_AUD","mt5name","v20name","precision","defaultBucketWidth","EUR_GBP","EUR_JPY","EUR_USD","EUR_CHF","USD_CHF","USD_JPY","USD_CAD","GBP_USD","GBP_JPY","GBP_CHF","AUD_JPY","AUD_USD","NZD_USD","XAU_USD","XAG_USD"],"sources":["../../../src/CrowdViewWidget/constants.ts"],"sourcesContent":["import { colorPalette } from '@oanda/labs-widget-common';\nimport chroma from 'chroma-js';\n\nimport { InstrumentId } from './types';\n\nexport const BUCKET_CONFIG = {\n MULTIPLIER_5M: 1,\n MULTIPLIER_15M: 1,\n MULTIPLIER_1H: 2,\n MULTIPLIER_4H: 4,\n PRICE_MARGIN_MULTIPLIER: 2,\n} as const;\n\nexport const TIME_THRESHOLDS = {\n TWO_WEEKS_MS: 14 * 24 * 60 * 60 * 1000,\n} as const;\n\nconst CHART_CONFIG_STATIC = {\n MAIN_HEIGHT_DESKTOP: 410,\n MAIN_HEIGHT_MOBILE: 330,\n MARGIN_BETWEEN: 50,\n SENTIMENT_HEIGHT: 120,\n WIDTH: 9999,\n X_LABEL_SIZE: 40,\n Y_LABEL_SIZE_DESKTOP: 50,\n Y_LABEL_SIZE_MOBILE: 40,\n Y_SENTIMENT_LABEL_DESKTOP_SIZE: 40,\n Y_SENTIMENT_LABEL_MOBILE_SIZE: 30,\n INITIAL_START_ZOOM_DESKTOP: 70,\n INITIAL_START_ZOOM_MOBILE: 85,\n INITIAL_END_ZOOM: 100,\n X_AXIS_DATE_PADDING: ' ',\n SENTIMENT_MIN: 0,\n SENTIMENT_MAX: 100,\n TOP_MARGIN_DESKTOP: 0,\n TOP_MARGIN_MOBILE: 24,\n MOBILE_TOOLTIP_HEIGHT: 85,\n TOOLTIP_OFFSET: 8,\n};\n\nconst CHART_CONFIG_CALCULATED = {\n HEIGHT_DESKTOP:\n CHART_CONFIG_STATIC.MAIN_HEIGHT_DESKTOP +\n CHART_CONFIG_STATIC.TOP_MARGIN_DESKTOP +\n CHART_CONFIG_STATIC.X_LABEL_SIZE,\n HEIGHT_MOBILE:\n CHART_CONFIG_STATIC.MAIN_HEIGHT_MOBILE +\n CHART_CONFIG_STATIC.X_LABEL_SIZE +\n CHART_CONFIG_STATIC.TOP_MARGIN_MOBILE +\n CHART_CONFIG_STATIC.MOBILE_TOOLTIP_HEIGHT,\n};\nexport const CHART_CONFIG = {\n ...CHART_CONFIG_STATIC,\n ...CHART_CONFIG_CALCULATED,\n} as const;\n\nexport const COLOR_MAP = {\n dark: {\n long: [\n chroma(colorPalette.darkBlue10).shade(0.5).hex(),\n chroma(colorPalette.darkBlue90).shade(0.5).hex(),\n ],\n short: [\n chroma(colorPalette.darkYellow10).shade(0.5).hex(),\n chroma(colorPalette.darkYellow90).shade(0.5).hex(),\n ],\n backgroundColor: colorPalette.black,\n },\n light: {\n long: [\n chroma(colorPalette.lightBlue10).tint(0.5).hex(),\n chroma(colorPalette.lightBlue90).tint(0.5).hex(),\n ],\n short: [\n chroma(colorPalette.lightYellow10).tint(0.5).hex(),\n chroma(colorPalette.lightYellow90).tint(0.5).hex(),\n ],\n backgroundColor: colorPalette.white,\n },\n} as const;\n\nexport const INSTRUMENTS_CONFIG: Record<\n InstrumentId,\n {\n precision: number;\n defaultBucketWidth: number;\n v20name: string;\n mt5name: string;\n }\n> = {\n [InstrumentId.EUR_AUD]: {\n mt5name: 'EURAUD',\n v20name: 'EUR_AUD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.EUR_GBP]: {\n mt5name: 'EURGBP',\n v20name: 'EUR_GBP',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.EUR_JPY]: {\n mt5name: 'EURJPY',\n v20name: 'EUR_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.EUR_USD]: {\n mt5name: 'EURUSD',\n v20name: 'EUR_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.EUR_CHF]: {\n mt5name: 'EURCHF',\n v20name: 'EUR_CHF',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.USD_CHF]: {\n mt5name: 'USDCHF',\n v20name: 'USD_CHF',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.USD_JPY]: {\n mt5name: 'USDJPY',\n v20name: 'USD_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.USD_CAD]: {\n mt5name: 'USDCAD',\n v20name: 'USD_CAD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.GBP_USD]: {\n mt5name: 'GBPUSD',\n v20name: 'GBP_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.GBP_JPY]: {\n mt5name: 'GBPJPY',\n v20name: 'GBP_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.GBP_CHF]: {\n mt5name: 'GBPCHF',\n v20name: 'GBP_CHF',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.AUD_JPY]: {\n mt5name: 'AUDJPY',\n v20name: 'AUD_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.AUD_USD]: {\n mt5name: 'AUDUSD',\n v20name: 'AUD_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.NZD_USD]: {\n mt5name: 'NZDUSD',\n v20name: 'NZD_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.XAU_USD]: {\n mt5name: 'XAUUSD',\n v20name: 'XAU_USD',\n precision: 3,\n defaultBucketWidth: 0.5,\n },\n [InstrumentId.XAG_USD]: {\n mt5name: 'XAGUSD',\n v20name: 'XAG_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n};\n"],"mappings":"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","ignoreList":[]}
@@ -14,6 +14,9 @@ const navigationConfig = exports.navigationConfig = [{
14
14
  label: 'position_book'
15
15
  }];
16
16
  const instrumentSelectConfigOC = exports.instrumentSelectConfigOC = [{
17
+ id: _types.InstrumentId.EUR_USD,
18
+ label: 'EUR/USD'
19
+ }, {
17
20
  id: _types.InstrumentId.EUR_AUD,
18
21
  label: 'EUR/AUD'
19
22
  }, {
@@ -22,9 +25,6 @@ const instrumentSelectConfigOC = exports.instrumentSelectConfigOC = [{
22
25
  }, {
23
26
  id: _types.InstrumentId.EUR_JPY,
24
27
  label: 'EUR/JPY'
25
- }, {
26
- id: _types.InstrumentId.EUR_USD,
27
- label: 'EUR/USD'
28
28
  }, {
29
29
  id: _types.InstrumentId.EUR_CHF,
30
30
  label: 'EUR/CHF'
@@ -1 +1 @@
1
- {"version":3,"file":"selectConfig.js","names":["_graphql","require","_types","navigationConfig","exports","id","BookType","Order","label","Position","instrumentSelectConfigOC","InstrumentId","EUR_AUD","EUR_GBP","EUR_JPY","EUR_USD","EUR_CHF","USD_CHF","USD_JPY","USD_CAD","GBP_USD","GBP_JPY","GBP_CHF","AUD_JPY","AUD_USD","NZD_USD","instrumentSelectConfig","XAU_USD","XAG_USD","granularitySelectConfig","Granularity","H1","H4"],"sources":["../../../src/CrowdViewWidget/selectConfig.ts"],"sourcesContent":["import { BookType, Granularity } from '../gql/types/graphql';\nimport { InstrumentId } from './types';\n\nconst navigationConfig = [\n {\n id: BookType.Order,\n label: 'order_book',\n },\n {\n id: BookType.Position,\n label: 'position_book',\n },\n];\n\nconst instrumentSelectConfigOC = [\n {\n id: InstrumentId.EUR_AUD,\n label: 'EUR/AUD',\n },\n {\n id: InstrumentId.EUR_GBP,\n label: 'EUR/GBP',\n },\n {\n id: InstrumentId.EUR_JPY,\n label: 'EUR/JPY',\n },\n {\n id: InstrumentId.EUR_USD,\n label: 'EUR/USD',\n },\n {\n id: InstrumentId.EUR_CHF,\n label: 'EUR/CHF',\n },\n {\n id: InstrumentId.USD_CHF,\n label: 'USD/CHF',\n },\n {\n id: InstrumentId.USD_JPY,\n label: 'USD/JPY',\n },\n {\n id: InstrumentId.USD_CAD,\n label: 'USD/CAD',\n },\n {\n id: InstrumentId.GBP_USD,\n label: 'GBP/USD',\n },\n {\n id: InstrumentId.GBP_JPY,\n label: 'GBP/JPY',\n },\n {\n id: InstrumentId.GBP_CHF,\n label: 'GBP/CHF',\n },\n {\n id: InstrumentId.AUD_JPY,\n label: 'AUD/JPY',\n },\n {\n id: InstrumentId.AUD_USD,\n label: 'AUD/USD',\n },\n {\n id: InstrumentId.NZD_USD,\n label: 'NZD/USD',\n },\n];\n\nconst instrumentSelectConfig = [\n ...instrumentSelectConfigOC,\n {\n id: InstrumentId.XAU_USD,\n label: 'XAU/USD',\n },\n {\n id: InstrumentId.XAG_USD,\n label: 'XAG/USD',\n },\n];\n\nconst granularitySelectConfig = [\n {\n id: Granularity.H1,\n label: '1_hour',\n },\n {\n id: Granularity.H4,\n label: '4_hours',\n },\n];\n\nexport {\n granularitySelectConfig,\n instrumentSelectConfig,\n instrumentSelectConfigOC,\n navigationConfig,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,MAAME,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,CACvB;EACEE,EAAE,EAAEC,iBAAQ,CAACC,KAAK;EAClBC,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEC,iBAAQ,CAACG,QAAQ;EACrBD,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAME,wBAAwB,GAAAN,OAAA,CAAAM,wBAAA,GAAG,CAC/B;EACEL,EAAE,EAAEM,mBAAY,CAACC,OAAO;EACxBJ,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACE,OAAO;EACxBL,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACG,OAAO;EACxBN,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACI,OAAO;EACxBP,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACK,OAAO;EACxBR,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACM,OAAO;EACxBT,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACO,OAAO;EACxBV,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACQ,OAAO;EACxBX,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACS,OAAO;EACxBZ,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACU,OAAO;EACxBb,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACW,OAAO;EACxBd,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACY,OAAO;EACxBf,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACa,OAAO;EACxBhB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACc,OAAO;EACxBjB,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAMkB,sBAAsB,GAAAtB,OAAA,CAAAsB,sBAAA,GAAG,CAC7B,GAAGhB,wBAAwB,EAC3B;EACEL,EAAE,EAAEM,mBAAY,CAACgB,OAAO;EACxBnB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACiB,OAAO;EACxBpB,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAMqB,uBAAuB,GAAAzB,OAAA,CAAAyB,uBAAA,GAAG,CAC9B;EACExB,EAAE,EAAEyB,oBAAW,CAACC,EAAE;EAClBvB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEyB,oBAAW,CAACE,EAAE;EAClBxB,KAAK,EAAE;AACT,CAAC,CACF","ignoreList":[]}
1
+ {"version":3,"file":"selectConfig.js","names":["_graphql","require","_types","navigationConfig","exports","id","BookType","Order","label","Position","instrumentSelectConfigOC","InstrumentId","EUR_USD","EUR_AUD","EUR_GBP","EUR_JPY","EUR_CHF","USD_CHF","USD_JPY","USD_CAD","GBP_USD","GBP_JPY","GBP_CHF","AUD_JPY","AUD_USD","NZD_USD","instrumentSelectConfig","XAU_USD","XAG_USD","granularitySelectConfig","Granularity","H1","H4"],"sources":["../../../src/CrowdViewWidget/selectConfig.ts"],"sourcesContent":["import { BookType, Granularity } from '../gql/types/graphql';\nimport { InstrumentId } from './types';\n\nconst navigationConfig = [\n {\n id: BookType.Order,\n label: 'order_book',\n },\n {\n id: BookType.Position,\n label: 'position_book',\n },\n];\n\nconst instrumentSelectConfigOC = [\n {\n id: InstrumentId.EUR_USD,\n label: 'EUR/USD',\n },\n {\n id: InstrumentId.EUR_AUD,\n label: 'EUR/AUD',\n },\n {\n id: InstrumentId.EUR_GBP,\n label: 'EUR/GBP',\n },\n {\n id: InstrumentId.EUR_JPY,\n label: 'EUR/JPY',\n },\n {\n id: InstrumentId.EUR_CHF,\n label: 'EUR/CHF',\n },\n {\n id: InstrumentId.USD_CHF,\n label: 'USD/CHF',\n },\n {\n id: InstrumentId.USD_JPY,\n label: 'USD/JPY',\n },\n {\n id: InstrumentId.USD_CAD,\n label: 'USD/CAD',\n },\n {\n id: InstrumentId.GBP_USD,\n label: 'GBP/USD',\n },\n {\n id: InstrumentId.GBP_JPY,\n label: 'GBP/JPY',\n },\n {\n id: InstrumentId.GBP_CHF,\n label: 'GBP/CHF',\n },\n {\n id: InstrumentId.AUD_JPY,\n label: 'AUD/JPY',\n },\n {\n id: InstrumentId.AUD_USD,\n label: 'AUD/USD',\n },\n {\n id: InstrumentId.NZD_USD,\n label: 'NZD/USD',\n },\n];\n\nconst instrumentSelectConfig = [\n ...instrumentSelectConfigOC,\n {\n id: InstrumentId.XAU_USD,\n label: 'XAU/USD',\n },\n {\n id: InstrumentId.XAG_USD,\n label: 'XAG/USD',\n },\n];\n\nconst granularitySelectConfig = [\n {\n id: Granularity.H1,\n label: '1_hour',\n },\n {\n id: Granularity.H4,\n label: '4_hours',\n },\n];\n\nexport {\n granularitySelectConfig,\n instrumentSelectConfig,\n instrumentSelectConfigOC,\n navigationConfig,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,MAAME,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,CACvB;EACEE,EAAE,EAAEC,iBAAQ,CAACC,KAAK;EAClBC,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEC,iBAAQ,CAACG,QAAQ;EACrBD,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAME,wBAAwB,GAAAN,OAAA,CAAAM,wBAAA,GAAG,CAC/B;EACEL,EAAE,EAAEM,mBAAY,CAACC,OAAO;EACxBJ,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACE,OAAO;EACxBL,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACG,OAAO;EACxBN,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACI,OAAO;EACxBP,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACK,OAAO;EACxBR,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACM,OAAO;EACxBT,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACO,OAAO;EACxBV,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACQ,OAAO;EACxBX,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACS,OAAO;EACxBZ,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACU,OAAO;EACxBb,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACW,OAAO;EACxBd,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACY,OAAO;EACxBf,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACa,OAAO;EACxBhB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACc,OAAO;EACxBjB,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAMkB,sBAAsB,GAAAtB,OAAA,CAAAsB,sBAAA,GAAG,CAC7B,GAAGhB,wBAAwB,EAC3B;EACEL,EAAE,EAAEM,mBAAY,CAACgB,OAAO;EACxBnB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACiB,OAAO;EACxBpB,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAMqB,uBAAuB,GAAAzB,OAAA,CAAAyB,uBAAA,GAAG,CAC9B;EACExB,EAAE,EAAEyB,oBAAW,CAACC,EAAE;EAClBvB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEyB,oBAAW,CAACE,EAAE;EAClBxB,KAAK,EAAE;AACT,CAAC,CACF","ignoreList":[]}