@oanda/labs-crowd-view-widget 1.0.70 → 1.0.72

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 (132) hide show
  1. package/CHANGELOG.md +461 -5399
  2. package/dist/main/translations/sources/ja.json +1 -1
  3. package/dist/module/CrowdViewWidget/CrowdViewWidget.js +19 -12
  4. package/dist/module/CrowdViewWidget/CrowdViewWidget.js.map +1 -1
  5. package/dist/module/CrowdViewWidget/Main.js +37 -30
  6. package/dist/module/CrowdViewWidget/Main.js.map +1 -1
  7. package/dist/module/CrowdViewWidget/components/Chart/Chart.js +36 -29
  8. package/dist/module/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
  9. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js +30 -23
  10. package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
  11. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.js +11 -4
  12. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getDataZoomConfig.js.map +1 -1
  13. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js +10 -3
  14. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridConfig.js.map +1 -1
  15. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js +21 -14
  16. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getGridLines.js.map +1 -1
  17. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js +23 -15
  18. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getLabelsConfig.js.map +1 -1
  19. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js +16 -8
  20. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesCandlestickConfig.js.map +1 -1
  21. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.js +10 -3
  22. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesHeatmapConfig.js.map +1 -1
  23. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.js +10 -3
  24. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getSeriesSentimentConfig.js.map +1 -1
  25. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js +12 -5
  26. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getTooltipConfig.js.map +1 -1
  27. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.js +13 -6
  28. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getVisualMapConfig.js.map +1 -1
  29. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js +13 -6
  30. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getXAxisConfig.js.map +1 -1
  31. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js +14 -7
  32. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/getYAxisConfig.js.map +1 -1
  33. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/index.js +126 -11
  34. package/dist/module/CrowdViewWidget/components/Chart/chartOptions/index.js.map +1 -1
  35. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.js +8 -1
  36. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatFullDate.js.map +1 -1
  37. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js +8 -1
  38. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisAdditionalLabel.js.map +1 -1
  39. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js +11 -4
  40. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatXAxisLabel.js.map +1 -1
  41. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatYAxisLabel.js +10 -3
  42. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/formatYAxisLabel.js.map +1 -1
  43. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getChartStyles.js +15 -8
  44. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getChartStyles.js.map +1 -1
  45. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.js +11 -3
  46. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getGradientColor.js.map +1 -1
  47. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getLabelData.js +8 -1
  48. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getLabelData.js.map +1 -1
  49. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getRectColor.js +12 -5
  50. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getRectColor.js.map +1 -1
  51. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js +17 -10
  52. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/getTooltipFormatter.js.map +1 -1
  53. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js +16 -9
  54. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleLabelUpdate.js.map +1 -1
  55. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleTooltipUpdate.js +8 -1
  56. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/handleTooltipUpdate.js.map +1 -1
  57. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js +148 -13
  58. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/index.js.map +1 -1
  59. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.js +10 -3
  60. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.js.map +1 -1
  61. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js +8 -1
  62. package/dist/module/CrowdViewWidget/components/Chart/chartUtils/normalizeLocale.js.map +1 -1
  63. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.js +11 -4
  64. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.js.map +1 -1
  65. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfig.js +14 -7
  66. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfig.js.map +1 -1
  67. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.js +14 -7
  68. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/getTimeSpanForGranularity.js.map +1 -1
  69. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/index.js +82 -7
  70. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/index.js.map +1 -1
  71. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processOrderPositionBooks.js +8 -1
  72. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processOrderPositionBooks.js.map +1 -1
  73. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js +8 -1
  74. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processPriceCandles.js.map +1 -1
  75. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processSentiments.js +8 -1
  76. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/processSentiments.js.map +1 -1
  77. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/validateData.js +8 -1
  78. package/dist/module/CrowdViewWidget/components/Chart/dataUtils/validateData.js.map +1 -1
  79. package/dist/module/CrowdViewWidget/components/Chart/getOption.js +27 -20
  80. package/dist/module/CrowdViewWidget/components/Chart/getOption.js.map +1 -1
  81. package/dist/module/CrowdViewWidget/components/Chart/index.js +71 -6
  82. package/dist/module/CrowdViewWidget/components/Chart/index.js.map +1 -1
  83. package/dist/module/CrowdViewWidget/components/Chart/types.js +5 -1
  84. package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js +35 -28
  85. package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -1
  86. package/dist/module/CrowdViewWidget/components/Chart/useResizeObserver.js +13 -6
  87. package/dist/module/CrowdViewWidget/components/Chart/useResizeObserver.js.map +1 -1
  88. package/dist/module/CrowdViewWidget/components/Legend/Legend.js +23 -15
  89. package/dist/module/CrowdViewWidget/components/Legend/Legend.js.map +1 -1
  90. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js +17 -9
  91. package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
  92. package/dist/module/CrowdViewWidget/components/Legend/index.js +27 -2
  93. package/dist/module/CrowdViewWidget/components/Legend/index.js.map +1 -1
  94. package/dist/module/CrowdViewWidget/components/index.js +27 -2
  95. package/dist/module/CrowdViewWidget/components/index.js.map +1 -1
  96. package/dist/module/CrowdViewWidget/constants.js +38 -31
  97. package/dist/module/CrowdViewWidget/constants.js.map +1 -1
  98. package/dist/module/CrowdViewWidget/index.js +27 -2
  99. package/dist/module/CrowdViewWidget/index.js.map +1 -1
  100. package/dist/module/CrowdViewWidget/render.js +13 -10
  101. package/dist/module/CrowdViewWidget/render.js.map +1 -1
  102. package/dist/module/CrowdViewWidget/selectConfig.js +49 -43
  103. package/dist/module/CrowdViewWidget/selectConfig.js.map +1 -1
  104. package/dist/module/CrowdViewWidget/types.js +7 -1
  105. package/dist/module/CrowdViewWidget/types.js.map +1 -1
  106. package/dist/module/gql/getOrderPositionBooks.js +8 -3
  107. package/dist/module/gql/getOrderPositionBooks.js.map +1 -1
  108. package/dist/module/gql/getPriceCandles.js +8 -3
  109. package/dist/module/gql/getPriceCandles.js.map +1 -1
  110. package/dist/module/gql/getSentiments.js +8 -3
  111. package/dist/module/gql/getSentiments.js.map +1 -1
  112. package/dist/module/gql/types/fragment-masking.js +11 -3
  113. package/dist/module/gql/types/fragment-masking.js.map +1 -1
  114. package/dist/module/gql/types/gql.js +9 -2
  115. package/dist/module/gql/types/gql.js.map +1 -1
  116. package/dist/module/gql/types/graphql.js +27 -21
  117. package/dist/module/gql/types/graphql.js.map +1 -1
  118. package/dist/module/gql/types/index.js +27 -2
  119. package/dist/module/gql/types/index.js.map +1 -1
  120. package/dist/module/index.js +16 -1
  121. package/dist/module/index.js.map +1 -1
  122. package/dist/module/translations/index.js +15 -8
  123. package/dist/module/translations/index.js.map +1 -1
  124. package/dist/module/translations/sources/ja.json +1 -1
  125. package/dist/module/translations/translations.js +7 -1
  126. package/dist/module/translations/translations.js.map +1 -1
  127. package/dist/types/gql/getOrderPositionBooks.d.ts +1 -1
  128. package/dist/types/gql/getPriceCandles.d.ts +1 -1
  129. package/dist/types/gql/getSentiments.d.ts +1 -1
  130. package/package.json +8 -4
  131. package/src/translations/sources/ja.json +1 -1
  132. package/tsconfig.types.json +2 -4
@@ -1,6 +1,12 @@
1
- import { colorPalette } from '@oanda/labs-widget-common';
2
- import { BookType } from '../../../../gql/types/graphql';
3
- import { formatFullDate } from './formatFullDate';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getTooltipFormatter = void 0;
7
+ var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
+ var _graphql = require("../../../../gql/types/graphql");
9
+ var _formatFullDate = require("./formatFullDate");
4
10
  const SENTIMENT_DISPLAY_PRECISION = 2;
5
11
  const TOOLTIP_STYLES = {
6
12
  MOBILE_COLUMN_WIDTH: '33.3%',
@@ -22,9 +28,9 @@ const findSentimentSeriesParam = (params, sentimentLongs, sentimentShorts) => {
22
28
  };
23
29
  const getSentimentOverbalanceLabel = (sentiment, bookType) => {
24
30
  if (sentiment < 0) {
25
- return bookType === BookType.Order ? 'sell_overbalance' : 'short_overbalance';
31
+ return bookType === _graphql.BookType.Order ? 'sell_overbalance' : 'short_overbalance';
26
32
  }
27
- return bookType === BookType.Order ? 'buy_overbalance' : 'long_overbalance';
33
+ return bookType === _graphql.BookType.Order ? 'buy_overbalance' : 'long_overbalance';
28
34
  };
29
35
  const formatCandleData = (candleData, labelCallback, isDesktop) => {
30
36
  const [, open, close, low, high] = candleData;
@@ -55,7 +61,7 @@ const formatBookData = _ref => {
55
61
  labelCallback,
56
62
  isDesktop
57
63
  } = _ref;
58
- const bookLabelKey = bookType === BookType.Order ? 'orders' : 'trades';
64
+ const bookLabelKey = bookType === _graphql.BookType.Order ? 'orders' : 'trades';
59
65
  const priceRangeStart = matchedBucket.price.toFixed(bucketDisplayPrecision);
60
66
  const priceRangeEnd = (matchedBucket.price + bucketWidth).toFixed(bucketDisplayPrecision);
61
67
  const sentimentLabel = getSentimentOverbalanceLabel(matchedBucket.sentiment, bookType);
@@ -89,7 +95,7 @@ const findMatchingBucket = (buckets, bucketsIndex, selectedPrice, bucketWidth) =
89
95
  return selectedPrice >= price && selectedPrice < price + bucketWidth;
90
96
  });
91
97
  };
92
- export const getTooltipFormatter = _ref3 => {
98
+ const getTooltipFormatter = _ref3 => {
93
99
  let {
94
100
  params,
95
101
  buckets,
@@ -126,7 +132,7 @@ export const getTooltipFormatter = _ref3 => {
126
132
  if (!showCandles && !matchedBucket) {
127
133
  return '';
128
134
  }
129
- const timeFormatted = formatFullDate(time, locale);
135
+ const timeFormatted = (0, _formatFullDate.formatFullDate)(time, locale);
130
136
  const candleSection = showCandles ? formatCandleData(candleData, labelCallback, isDesktop) : '';
131
137
  const bookSection = matchedBucket ? formatBookData({
132
138
  matchedBucket,
@@ -155,6 +161,7 @@ export const getTooltipFormatter = _ref3 => {
155
161
  isDark
156
162
  });
157
163
  };
164
+ exports.getTooltipFormatter = getTooltipFormatter;
158
165
  const buildDesktopTooltip = _ref4 => {
159
166
  let {
160
167
  candleSection,
@@ -163,7 +170,7 @@ const buildDesktopTooltip = _ref4 => {
163
170
  isDark,
164
171
  isJapanese
165
172
  } = _ref4;
166
- const backgroundColor = isDark ? colorPalette.black : colorPalette.white;
173
+ const backgroundColor = isDark ? _labsWidgetCommon.colorPalette.black : _labsWidgetCommon.colorPalette.white;
167
174
  const fullWidth = TOOLTIP_STYLES.FULL_WIDTH;
168
175
  return `<div style="width: ${fullWidth}; background-color: ${backgroundColor};">
169
176
  <div style="width: ${fullWidth}; display: flex; justify-content: space-between;">
@@ -187,7 +194,7 @@ const buildMobileTooltip = _ref5 => {
187
194
  bookSection,
188
195
  isDark
189
196
  } = _ref5;
190
- const backgroundColor = isDark ? colorPalette.black : colorPalette.white;
197
+ const backgroundColor = isDark ? _labsWidgetCommon.colorPalette.black : _labsWidgetCommon.colorPalette.white;
191
198
  const columnWidth = TOOLTIP_STYLES.MOBILE_COLUMN_WIDTH;
192
199
  const fullWidth = TOOLTIP_STYLES.FULL_WIDTH;
193
200
  const padding = TOOLTIP_STYLES.PADDING_BOTTOM;
@@ -1 +1 @@
1
- {"version":3,"file":"getTooltipFormatter.js","names":["colorPalette","BookType","formatFullDate","SENTIMENT_DISPLAY_PRECISION","TOOLTIP_STYLES","MOBILE_COLUMN_WIDTH","PADDING_BOTTOM","FULL_WIDTH","calculateBucketDisplayPrecision","bucketWidth","toString","split","length","findSeriesParam","params","seriesId","find","series","findSentimentSeriesParam","sentimentLongs","sentimentShorts","index","dataIndex","sentimentLong","sentimentShort","getSentimentOverbalanceLabel","sentiment","bookType","Order","formatCandleData","candleData","labelCallback","isDesktop","open","close","low","high","candleLabel","openLabel","closeLabel","lowLabel","highLabel","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","locale","isDark","isJapanese","Array","isArray","candleParam","booksParam","time","Date","axisValue","value","showCandles","showSentiment","timeFormatted","candleSection","bookSection","sentimentSection","buildDesktopTooltip","buildMobileTooltip","_ref4","backgroundColor","black","white","fullWidth","_ref5","columnWidth","padding"],"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';\nimport { formatFullDate } from './formatFullDate';\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 isDesktop: boolean\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 isDesktop\n ? `<div><b>${candleLabel}:</b></div>\n<div style=\"display: flex; gap: 4px; margin-right: 4px;\">\n<div>${openLabel}: ${open} </div>\n<div>${highLabel}: ${high} </div>\n<div>${lowLabel}: ${low} </div>\n<div>${closeLabel}: ${close} </div>\n</div>`\n : `<div><b>${candleLabel}:</b></div>\n<div>${openLabel}: ${open} </div>\n<div>${highLabel}: ${high} </div>\n<div>${lowLabel}: ${low} </div>\n<div>${closeLabel}: ${close} </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<span style=\"margin-right: 4px;\">${labelCallback('price_range')}: ${priceRangeStart} - ${priceRangeEnd} </span>\n<span style=\"margin-right: 4px;\">${labelCallback(sentimentLabel)}: ${sentimentValue}% </span>`\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 isDesktop: boolean\n): string => {\n return isDesktop\n ? `<div><b>${labelCallback('sentiment')}:</b></div>\n <span style=\"margin-right: 4px;\">${labelCallback('long')}: ${sentimentLong.toFixed(SENTIMENT_DISPLAY_PRECISION)}% </span>\n <span style=\"margin-right: 4px;\">${labelCallback('short')}: ${sentimentShort.toFixed(SENTIMENT_DISPLAY_PRECISION)}% </span>`\n : `<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 isJapanese,\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 isJapanese: 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 = formatFullDate(time, locale);\n const candleSection = showCandles\n ? formatCandleData(candleData, labelCallback, isDesktop)\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(\n sentimentLong,\n sentimentShort,\n labelCallback,\n isDesktop\n )\n : '';\n\n if (isDesktop) {\n return buildDesktopTooltip({\n timeFormatted,\n candleSection,\n sentimentSection,\n bookSection,\n isDark,\n isJapanese,\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 candleSection,\n sentimentSection,\n bookSection,\n isDark,\n isJapanese,\n}: TooltipSections & {\n isDark: boolean;\n isJapanese: boolean;\n}): string => {\n const backgroundColor = isDark ? colorPalette.black : colorPalette.white;\n const fullWidth = TOOLTIP_STYLES.FULL_WIDTH;\n\n return `<div style=\"width: ${fullWidth}; background-color: ${backgroundColor};\">\n <div style=\"width: ${fullWidth}; display: flex; justify-content: space-between;\">\n <div style=\"${isJapanese ? 'width: 45%;' : 'width: 40%;'}\">\n${candleSection}\n</div>\n<div style=\"${isJapanese ? 'width: 24%;' : 'width: 20%;'}\">\n${sentimentSection}\n</div>\n<div style=\"${isJapanese ? 'width: 31%;' : 'width: 40%;'}\">\n${bookSection}\n</div>\n</div>\n</div>`;\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":[]}
1
+ {"version":3,"file":"getTooltipFormatter.js","names":["_labsWidgetCommon","require","_graphql","_formatFullDate","SENTIMENT_DISPLAY_PRECISION","TOOLTIP_STYLES","MOBILE_COLUMN_WIDTH","PADDING_BOTTOM","FULL_WIDTH","calculateBucketDisplayPrecision","bucketWidth","toString","split","length","findSeriesParam","params","seriesId","find","series","findSentimentSeriesParam","sentimentLongs","sentimentShorts","index","dataIndex","sentimentLong","sentimentShort","getSentimentOverbalanceLabel","sentiment","bookType","BookType","Order","formatCandleData","candleData","labelCallback","isDesktop","open","close","low","high","candleLabel","openLabel","closeLabel","lowLabel","highLabel","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","locale","isDark","isJapanese","Array","isArray","candleParam","booksParam","time","Date","axisValue","value","showCandles","showSentiment","timeFormatted","formatFullDate","candleSection","bookSection","sentimentSection","buildDesktopTooltip","buildMobileTooltip","exports","_ref4","backgroundColor","colorPalette","black","white","fullWidth","_ref5","columnWidth","padding"],"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';\nimport { formatFullDate } from './formatFullDate';\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 isDesktop: boolean\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 isDesktop\n ? `<div><b>${candleLabel}:</b></div>\n<div style=\"display: flex; gap: 4px; margin-right: 4px;\">\n<div>${openLabel}: ${open} </div>\n<div>${highLabel}: ${high} </div>\n<div>${lowLabel}: ${low} </div>\n<div>${closeLabel}: ${close} </div>\n</div>`\n : `<div><b>${candleLabel}:</b></div>\n<div>${openLabel}: ${open} </div>\n<div>${highLabel}: ${high} </div>\n<div>${lowLabel}: ${low} </div>\n<div>${closeLabel}: ${close} </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<span style=\"margin-right: 4px;\">${labelCallback('price_range')}: ${priceRangeStart} - ${priceRangeEnd} </span>\n<span style=\"margin-right: 4px;\">${labelCallback(sentimentLabel)}: ${sentimentValue}% </span>`\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 isDesktop: boolean\n): string => {\n return isDesktop\n ? `<div><b>${labelCallback('sentiment')}:</b></div>\n <span style=\"margin-right: 4px;\">${labelCallback('long')}: ${sentimentLong.toFixed(SENTIMENT_DISPLAY_PRECISION)}% </span>\n <span style=\"margin-right: 4px;\">${labelCallback('short')}: ${sentimentShort.toFixed(SENTIMENT_DISPLAY_PRECISION)}% </span>`\n : `<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 isJapanese,\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 isJapanese: 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 = formatFullDate(time, locale);\n const candleSection = showCandles\n ? formatCandleData(candleData, labelCallback, isDesktop)\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(\n sentimentLong,\n sentimentShort,\n labelCallback,\n isDesktop\n )\n : '';\n\n if (isDesktop) {\n return buildDesktopTooltip({\n timeFormatted,\n candleSection,\n sentimentSection,\n bookSection,\n isDark,\n isJapanese,\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 candleSection,\n sentimentSection,\n bookSection,\n isDark,\n isJapanese,\n}: TooltipSections & {\n isDark: boolean;\n isJapanese: boolean;\n}): string => {\n const backgroundColor = isDark ? colorPalette.black : colorPalette.white;\n const fullWidth = TOOLTIP_STYLES.FULL_WIDTH;\n\n return `<div style=\"width: ${fullWidth}; background-color: ${backgroundColor};\">\n <div style=\"width: ${fullWidth}; display: flex; justify-content: space-between;\">\n <div style=\"${isJapanese ? 'width: 45%;' : 'width: 40%;'}\">\n${candleSection}\n</div>\n<div style=\"${isJapanese ? 'width: 24%;' : 'width: 20%;'}\">\n${sentimentSection}\n</div>\n<div style=\"${isJapanese ? 'width: 31%;' : 'width: 40%;'}\">\n${bookSection}\n</div>\n</div>\n</div>`;\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":[]}
@@ -1,8 +1,14 @@
1
- import { formatXAxisAdditionalLabel } from './formatXAxisAdditionalLabel';
2
- import { formatXAxisLabel } from './formatXAxisLabel';
3
- import { getLabelData } from './getLabelData';
4
- import { isDifferenceGreaterThanTwoWeeks } from './isDifferenceGreaterThanTwoWeeks';
5
- export const handleLabelUpdate = (instance, mainData, labelTimerRef, isGreaterThanTwoWeeksRef, locale) => {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.handleLabelUpdate = void 0;
7
+ var _formatXAxisAdditionalLabel = require("./formatXAxisAdditionalLabel");
8
+ var _formatXAxisLabel = require("./formatXAxisLabel");
9
+ var _getLabelData = require("./getLabelData");
10
+ var _isDifferenceGreaterThanTwoWeeks = require("./isDifferenceGreaterThanTwoWeeks");
11
+ const handleLabelUpdate = (instance, mainData, labelTimerRef, isGreaterThanTwoWeeksRef, locale) => {
6
12
  if (labelTimerRef.current) {
7
13
  clearTimeout(labelTimerRef.current);
8
14
  }
@@ -23,10 +29,10 @@ export const handleLabelUpdate = (instance, mainData, labelTimerRef, isGreaterTh
23
29
  if (!dates[startValue] || !dates[endValue]) {
24
30
  return;
25
31
  }
26
- const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(dates[startValue], dates[endValue]);
32
+ const isGreaterThanTwoWeeks = (0, _isDifferenceGreaterThanTwoWeeks.isDifferenceGreaterThanTwoWeeks)(dates[startValue], dates[endValue]);
27
33
  const wasGreaterThanTwoWeeks = isGreaterThanTwoWeeksRef.current ?? false;
28
34
  if (isGreaterThanTwoWeeks !== wasGreaterThanTwoWeeks) {
29
- const labelsData = getLabelData({
35
+ const labelsData = (0, _getLabelData.getLabelData)({
30
36
  dates,
31
37
  isGreaterThanTwoWeeks
32
38
  });
@@ -34,13 +40,13 @@ export const handleLabelUpdate = (instance, mainData, labelTimerRef, isGreaterTh
34
40
  xAxis: [{
35
41
  id: 'main-xAxis',
36
42
  axisLabel: {
37
- formatter: value => formatXAxisLabel(value, isGreaterThanTwoWeeks, locale)
43
+ formatter: value => (0, _formatXAxisLabel.formatXAxisLabel)(value, isGreaterThanTwoWeeks, locale)
38
44
  }
39
45
  }, {
40
46
  id: 'additional-xAxis',
41
47
  axisLabel: {
42
48
  customValues: labelsData,
43
- formatter: value => formatXAxisAdditionalLabel(value, isGreaterThanTwoWeeks, locale)
49
+ formatter: value => (0, _formatXAxisAdditionalLabel.formatXAxisAdditionalLabel)(value, isGreaterThanTwoWeeks, locale)
44
50
  }
45
51
  }]
46
52
  });
@@ -48,4 +54,5 @@ export const handleLabelUpdate = (instance, mainData, labelTimerRef, isGreaterTh
48
54
  }
49
55
  }, 50);
50
56
  };
57
+ exports.handleLabelUpdate = handleLabelUpdate;
51
58
  //# sourceMappingURL=handleLabelUpdate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleLabelUpdate.js","names":["formatXAxisAdditionalLabel","formatXAxisLabel","getLabelData","isDifferenceGreaterThanTwoWeeks","handleLabelUpdate","instance","mainData","labelTimerRef","isGreaterThanTwoWeeksRef","locale","current","clearTimeout","setTimeout","dates","dataZoom","getOption","Array","isArray","length","startValue","endValue","isGreaterThanTwoWeeks","wasGreaterThanTwoWeeks","labelsData","setOption","xAxis","id","axisLabel","formatter","value","customValues"],"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,SAASA,0BAA0B,QAAQ,8BAA8B;AACzE,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,+BAA+B,QAAQ,mCAAmC;AAEnF,OAAO,MAAMC,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;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,GAAGlB,+BAA+B,CAC3DU,KAAK,CAACM,UAAU,CAAC,EACjBN,KAAK,CAACO,QAAQ,CAChB,CAAC;IAED,MAAME,sBAAsB,GAAGd,wBAAwB,CAACE,OAAO,IAAI,KAAK;IAExE,IAAIW,qBAAqB,KAAKC,sBAAsB,EAAE;MACpD,MAAMC,UAAU,GAAGrB,YAAY,CAAC;QAC9BW,KAAK;QACLQ;MACF,CAAC,CAAC;MAEFhB,QAAQ,CAACmB,SAAS,CAAC;QACjBC,KAAK,EAAE,CACL;UACEC,EAAE,EAAE,YAAY;UAChBC,SAAS,EAAE;YACTC,SAAS,EAAGC,KAAa,IACvB5B,gBAAgB,CAAC4B,KAAK,EAAER,qBAAqB,EAAEZ,MAAM;UACzD;QACF,CAAC,EACD;UACEiB,EAAE,EAAE,kBAAkB;UACtBC,SAAS,EAAE;YACTG,YAAY,EAAEP,UAAU;YACxBK,SAAS,EAAGC,KAAc,IACxB7B,0BAA0B,CACxB6B,KAAK,EACLR,qBAAqB,EACrBZ,MACF;UACJ;QACF,CAAC;MAEL,CAAC,CAAC;MAEFD,wBAAwB,CAACE,OAAO,GAAGW,qBAAqB;IAC1D;EACF,CAAC,EAAE,EAAE,CAAC;AACR,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"handleLabelUpdate.js","names":["_formatXAxisAdditionalLabel","require","_formatXAxisLabel","_getLabelData","_isDifferenceGreaterThanTwoWeeks","handleLabelUpdate","instance","mainData","labelTimerRef","isGreaterThanTwoWeeksRef","locale","current","clearTimeout","setTimeout","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;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,GAAGf,wBAAwB,CAACE,OAAO,IAAI,KAAK;IAExE,IAAIW,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,EAAEZ,MAAM;UACzD;QACF,CAAC,EACD;UACEmB,EAAE,EAAE,kBAAkB;UACtBC,SAAS,EAAE;YACTI,YAAY,EAAET,UAAU;YACxBM,SAAS,EAAGC,KAAc,IACxB,IAAAG,sDAA0B,EACxBH,KAAK,EACLV,qBAAqB,EACrBZ,MACF;UACJ;QACF,CAAC;MAEL,CAAC,CAAC;MAEFD,wBAAwB,CAACE,OAAO,GAAGW,qBAAqB;IAC1D;EACF,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAACc,OAAA,CAAA/B,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -1,4 +1,10 @@
1
- export const handleTooltipUpdate = (instance, zoomTimerRef, tooltipVisibleRef, canHover) => {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.handleTooltipUpdate = void 0;
7
+ const handleTooltipUpdate = (instance, zoomTimerRef, tooltipVisibleRef, canHover) => {
2
8
  if (!canHover) {
3
9
  return;
4
10
  }
@@ -24,4 +30,5 @@ export const handleTooltipUpdate = (instance, zoomTimerRef, tooltipVisibleRef, c
24
30
  }
25
31
  }, 100);
26
32
  };
33
+ exports.handleTooltipUpdate = handleTooltipUpdate;
27
34
  //# sourceMappingURL=handleTooltipUpdate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleTooltipUpdate.js","names":["handleTooltipUpdate","instance","zoomTimerRef","tooltipVisibleRef","canHover","current","setOption","tooltip","show","clearTimeout","setTimeout"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/handleTooltipUpdate.ts"],"sourcesContent":["import type { EChartsType } from 'echarts';\nimport type { MutableRefObject } from 'react';\n\nexport const handleTooltipUpdate = (\n instance: EChartsType,\n zoomTimerRef: MutableRefObject<NodeJS.Timeout | null>,\n tooltipVisibleRef: MutableRefObject<boolean>,\n canHover: boolean\n): void => {\n if (!canHover) {\n return;\n }\n\n if (tooltipVisibleRef.current) {\n instance.setOption({\n tooltip: {\n show: false,\n },\n });\n tooltipVisibleRef.current = false;\n }\n\n if (zoomTimerRef.current) {\n clearTimeout(zoomTimerRef.current);\n }\n\n zoomTimerRef.current = setTimeout(() => {\n if (!tooltipVisibleRef.current) {\n instance.setOption({\n tooltip: {\n show: true,\n },\n });\n tooltipVisibleRef.current = true;\n }\n }, 100);\n};\n"],"mappings":"AAGA,OAAO,MAAMA,mBAAmB,GAAGA,CACjCC,QAAqB,EACrBC,YAAqD,EACrDC,iBAA4C,EAC5CC,QAAiB,KACR;EACT,IAAI,CAACA,QAAQ,EAAE;IACb;EACF;EAEA,IAAID,iBAAiB,CAACE,OAAO,EAAE;IAC7BJ,QAAQ,CAACK,SAAS,CAAC;MACjBC,OAAO,EAAE;QACPC,IAAI,EAAE;MACR;IACF,CAAC,CAAC;IACFL,iBAAiB,CAACE,OAAO,GAAG,KAAK;EACnC;EAEA,IAAIH,YAAY,CAACG,OAAO,EAAE;IACxBI,YAAY,CAACP,YAAY,CAACG,OAAO,CAAC;EACpC;EAEAH,YAAY,CAACG,OAAO,GAAGK,UAAU,CAAC,MAAM;IACtC,IAAI,CAACP,iBAAiB,CAACE,OAAO,EAAE;MAC9BJ,QAAQ,CAACK,SAAS,CAAC;QACjBC,OAAO,EAAE;UACPC,IAAI,EAAE;QACR;MACF,CAAC,CAAC;MACFL,iBAAiB,CAACE,OAAO,GAAG,IAAI;IAClC;EACF,CAAC,EAAE,GAAG,CAAC;AACT,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"handleTooltipUpdate.js","names":["handleTooltipUpdate","instance","zoomTimerRef","tooltipVisibleRef","canHover","current","setOption","tooltip","show","clearTimeout","setTimeout","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/handleTooltipUpdate.ts"],"sourcesContent":["import type { EChartsType } from 'echarts';\nimport type { MutableRefObject } from 'react';\n\nexport const handleTooltipUpdate = (\n instance: EChartsType,\n zoomTimerRef: MutableRefObject<NodeJS.Timeout | null>,\n tooltipVisibleRef: MutableRefObject<boolean>,\n canHover: boolean\n): void => {\n if (!canHover) {\n return;\n }\n\n if (tooltipVisibleRef.current) {\n instance.setOption({\n tooltip: {\n show: false,\n },\n });\n tooltipVisibleRef.current = false;\n }\n\n if (zoomTimerRef.current) {\n clearTimeout(zoomTimerRef.current);\n }\n\n zoomTimerRef.current = setTimeout(() => {\n if (!tooltipVisibleRef.current) {\n instance.setOption({\n tooltip: {\n show: true,\n },\n });\n tooltipVisibleRef.current = true;\n }\n }, 100);\n};\n"],"mappings":";;;;;;AAGO,MAAMA,mBAAmB,GAAGA,CACjCC,QAAqB,EACrBC,YAAqD,EACrDC,iBAA4C,EAC5CC,QAAiB,KACR;EACT,IAAI,CAACA,QAAQ,EAAE;IACb;EACF;EAEA,IAAID,iBAAiB,CAACE,OAAO,EAAE;IAC7BJ,QAAQ,CAACK,SAAS,CAAC;MACjBC,OAAO,EAAE;QACPC,IAAI,EAAE;MACR;IACF,CAAC,CAAC;IACFL,iBAAiB,CAACE,OAAO,GAAG,KAAK;EACnC;EAEA,IAAIH,YAAY,CAACG,OAAO,EAAE;IACxBI,YAAY,CAACP,YAAY,CAACG,OAAO,CAAC;EACpC;EAEAH,YAAY,CAACG,OAAO,GAAGK,UAAU,CAAC,MAAM;IACtC,IAAI,CAACP,iBAAiB,CAACE,OAAO,EAAE;MAC9BJ,QAAQ,CAACK,SAAS,CAAC;QACjBC,OAAO,EAAE;UACPC,IAAI,EAAE;QACR;MACF,CAAC,CAAC;MACFL,iBAAiB,CAACE,OAAO,GAAG,IAAI;IAClC;EACF,CAAC,EAAE,GAAG,CAAC;AACT,CAAC;AAACM,OAAA,CAAAX,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -1,14 +1,149 @@
1
- export * from './formatFullDate';
2
- export * from './formatXAxisAdditionalLabel';
3
- export * from './formatXAxisLabel';
4
- export * from './formatYAxisLabel';
5
- export * from './getChartStyles';
6
- export * from './getGradientColor';
7
- export * from './getLabelData';
8
- export * from './getRectColor';
9
- export * from './getTooltipFormatter';
10
- export * from './handleLabelUpdate';
11
- export * from './handleTooltipUpdate';
12
- export * from './isDifferenceGreaterThanTwoWeeks';
13
- export * from './normalizeLocale';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _formatFullDate = require("./formatFullDate");
7
+ Object.keys(_formatFullDate).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _formatFullDate[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _formatFullDate[key];
14
+ }
15
+ });
16
+ });
17
+ var _formatXAxisAdditionalLabel = require("./formatXAxisAdditionalLabel");
18
+ Object.keys(_formatXAxisAdditionalLabel).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _formatXAxisAdditionalLabel[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _formatXAxisAdditionalLabel[key];
25
+ }
26
+ });
27
+ });
28
+ var _formatXAxisLabel = require("./formatXAxisLabel");
29
+ Object.keys(_formatXAxisLabel).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _formatXAxisLabel[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _formatXAxisLabel[key];
36
+ }
37
+ });
38
+ });
39
+ var _formatYAxisLabel = require("./formatYAxisLabel");
40
+ Object.keys(_formatYAxisLabel).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _formatYAxisLabel[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _formatYAxisLabel[key];
47
+ }
48
+ });
49
+ });
50
+ var _getChartStyles = require("./getChartStyles");
51
+ Object.keys(_getChartStyles).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _getChartStyles[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _getChartStyles[key];
58
+ }
59
+ });
60
+ });
61
+ var _getGradientColor = require("./getGradientColor");
62
+ Object.keys(_getGradientColor).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _getGradientColor[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function () {
68
+ return _getGradientColor[key];
69
+ }
70
+ });
71
+ });
72
+ var _getLabelData = require("./getLabelData");
73
+ Object.keys(_getLabelData).forEach(function (key) {
74
+ if (key === "default" || key === "__esModule") return;
75
+ if (key in exports && exports[key] === _getLabelData[key]) return;
76
+ Object.defineProperty(exports, key, {
77
+ enumerable: true,
78
+ get: function () {
79
+ return _getLabelData[key];
80
+ }
81
+ });
82
+ });
83
+ var _getRectColor = require("./getRectColor");
84
+ Object.keys(_getRectColor).forEach(function (key) {
85
+ if (key === "default" || key === "__esModule") return;
86
+ if (key in exports && exports[key] === _getRectColor[key]) return;
87
+ Object.defineProperty(exports, key, {
88
+ enumerable: true,
89
+ get: function () {
90
+ return _getRectColor[key];
91
+ }
92
+ });
93
+ });
94
+ var _getTooltipFormatter = require("./getTooltipFormatter");
95
+ Object.keys(_getTooltipFormatter).forEach(function (key) {
96
+ if (key === "default" || key === "__esModule") return;
97
+ if (key in exports && exports[key] === _getTooltipFormatter[key]) return;
98
+ Object.defineProperty(exports, key, {
99
+ enumerable: true,
100
+ get: function () {
101
+ return _getTooltipFormatter[key];
102
+ }
103
+ });
104
+ });
105
+ var _handleLabelUpdate = require("./handleLabelUpdate");
106
+ Object.keys(_handleLabelUpdate).forEach(function (key) {
107
+ if (key === "default" || key === "__esModule") return;
108
+ if (key in exports && exports[key] === _handleLabelUpdate[key]) return;
109
+ Object.defineProperty(exports, key, {
110
+ enumerable: true,
111
+ get: function () {
112
+ return _handleLabelUpdate[key];
113
+ }
114
+ });
115
+ });
116
+ var _handleTooltipUpdate = require("./handleTooltipUpdate");
117
+ Object.keys(_handleTooltipUpdate).forEach(function (key) {
118
+ if (key === "default" || key === "__esModule") return;
119
+ if (key in exports && exports[key] === _handleTooltipUpdate[key]) return;
120
+ Object.defineProperty(exports, key, {
121
+ enumerable: true,
122
+ get: function () {
123
+ return _handleTooltipUpdate[key];
124
+ }
125
+ });
126
+ });
127
+ var _isDifferenceGreaterThanTwoWeeks = require("./isDifferenceGreaterThanTwoWeeks");
128
+ Object.keys(_isDifferenceGreaterThanTwoWeeks).forEach(function (key) {
129
+ if (key === "default" || key === "__esModule") return;
130
+ if (key in exports && exports[key] === _isDifferenceGreaterThanTwoWeeks[key]) return;
131
+ Object.defineProperty(exports, key, {
132
+ enumerable: true,
133
+ get: function () {
134
+ return _isDifferenceGreaterThanTwoWeeks[key];
135
+ }
136
+ });
137
+ });
138
+ var _normalizeLocale = require("./normalizeLocale");
139
+ Object.keys(_normalizeLocale).forEach(function (key) {
140
+ if (key === "default" || key === "__esModule") return;
141
+ if (key in exports && exports[key] === _normalizeLocale[key]) return;
142
+ Object.defineProperty(exports, key, {
143
+ enumerable: true,
144
+ get: function () {
145
+ return _normalizeLocale[key];
146
+ }
147
+ });
148
+ });
14
149
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/index.ts"],"sourcesContent":["export * from './formatFullDate';\nexport * from './formatXAxisAdditionalLabel';\nexport * from './formatXAxisLabel';\nexport * from './formatYAxisLabel';\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,cAAc,kBAAkB;AAChC,cAAc,8BAA8B;AAC5C,cAAc,oBAAoB;AAClC,cAAc,oBAAoB;AAClC,cAAc,kBAAkB;AAChC,cAAc,oBAAoB;AAClC,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,uBAAuB;AACrC,cAAc,qBAAqB;AACnC,cAAc,uBAAuB;AACrC,cAAc,mCAAmC;AACjD,cAAc,mBAAmB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_formatFullDate","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_formatXAxisAdditionalLabel","_formatXAxisLabel","_formatYAxisLabel","_getChartStyles","_getGradientColor","_getLabelData","_getRectColor","_getTooltipFormatter","_handleLabelUpdate","_handleTooltipUpdate","_isDifferenceGreaterThanTwoWeeks","_normalizeLocale"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/index.ts"],"sourcesContent":["export * from './formatFullDate';\nexport * from './formatXAxisAdditionalLabel';\nexport * from './formatXAxisLabel';\nexport * from './formatYAxisLabel';\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":"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","ignoreList":[]}
@@ -1,8 +1,15 @@
1
- import { TIME_THRESHOLDS } from '../../../constants';
2
- export const isDifferenceGreaterThanTwoWeeks = (startDate, endDate) => {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isDifferenceGreaterThanTwoWeeks = void 0;
7
+ var _constants = require("../../../constants");
8
+ const isDifferenceGreaterThanTwoWeeks = (startDate, endDate) => {
3
9
  const date1 = new Date(startDate);
4
10
  const date2 = new Date(endDate);
5
11
  const differenceInMs = Math.abs(date2.getTime() - date1.getTime());
6
- return differenceInMs < TIME_THRESHOLDS.TWO_WEEKS_MS;
12
+ return differenceInMs < _constants.TIME_THRESHOLDS.TWO_WEEKS_MS;
7
13
  };
14
+ exports.isDifferenceGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks;
8
15
  //# sourceMappingURL=isDifferenceGreaterThanTwoWeeks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isDifferenceGreaterThanTwoWeeks.js","names":["TIME_THRESHOLDS","isDifferenceGreaterThanTwoWeeks","startDate","endDate","date1","Date","date2","differenceInMs","Math","abs","getTime","TWO_WEEKS_MS"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.ts"],"sourcesContent":["import { TIME_THRESHOLDS } from '../../../constants';\n\nexport const isDifferenceGreaterThanTwoWeeks = (\n startDate: string,\n endDate: string\n) => {\n const date1 = new Date(startDate);\n const date2 = new Date(endDate);\n\n const differenceInMs = Math.abs(date2.getTime() - date1.getTime());\n\n return differenceInMs < TIME_THRESHOLDS.TWO_WEEKS_MS;\n};\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,oBAAoB;AAEpD,OAAO,MAAMC,+BAA+B,GAAGA,CAC7CC,SAAiB,EACjBC,OAAe,KACZ;EACH,MAAMC,KAAK,GAAG,IAAIC,IAAI,CAACH,SAAS,CAAC;EACjC,MAAMI,KAAK,GAAG,IAAID,IAAI,CAACF,OAAO,CAAC;EAE/B,MAAMI,cAAc,GAAGC,IAAI,CAACC,GAAG,CAACH,KAAK,CAACI,OAAO,CAAC,CAAC,GAAGN,KAAK,CAACM,OAAO,CAAC,CAAC,CAAC;EAElE,OAAOH,cAAc,GAAGP,eAAe,CAACW,YAAY;AACtD,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"isDifferenceGreaterThanTwoWeeks.js","names":["_constants","require","isDifferenceGreaterThanTwoWeeks","startDate","endDate","date1","Date","date2","differenceInMs","Math","abs","getTime","TIME_THRESHOLDS","TWO_WEEKS_MS","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/chartUtils/isDifferenceGreaterThanTwoWeeks.ts"],"sourcesContent":["import { TIME_THRESHOLDS } from '../../../constants';\n\nexport const isDifferenceGreaterThanTwoWeeks = (\n startDate: string,\n endDate: string\n) => {\n const date1 = new Date(startDate);\n const date2 = new Date(endDate);\n\n const differenceInMs = Math.abs(date2.getTime() - date1.getTime());\n\n return differenceInMs < TIME_THRESHOLDS.TWO_WEEKS_MS;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEO,MAAMC,+BAA+B,GAAGA,CAC7CC,SAAiB,EACjBC,OAAe,KACZ;EACH,MAAMC,KAAK,GAAG,IAAIC,IAAI,CAACH,SAAS,CAAC;EACjC,MAAMI,KAAK,GAAG,IAAID,IAAI,CAACF,OAAO,CAAC;EAE/B,MAAMI,cAAc,GAAGC,IAAI,CAACC,GAAG,CAACH,KAAK,CAACI,OAAO,CAAC,CAAC,GAAGN,KAAK,CAACM,OAAO,CAAC,CAAC,CAAC;EAElE,OAAOH,cAAc,GAAGI,0BAAe,CAACC,YAAY;AACtD,CAAC;AAACC,OAAA,CAAAZ,+BAAA,GAAAA,+BAAA","ignoreList":[]}
@@ -1,4 +1,11 @@
1
- export const normalizeLocale = locale => {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.normalizeLocale = void 0;
7
+ const normalizeLocale = locale => {
2
8
  return locale === 'en' ? 'en-GB' : locale;
3
9
  };
10
+ exports.normalizeLocale = normalizeLocale;
4
11
  //# sourceMappingURL=normalizeLocale.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeLocale.js","names":["normalizeLocale","locale"],"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":"AAAA,OAAO,MAAMA,eAAe,GAAIC,MAAc,IAAa;EACzD,OAAOA,MAAM,KAAK,IAAI,GAAG,OAAO,GAAGA,MAAM;AAC3C,CAAC","ignoreList":[]}
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":[]}
@@ -1,4 +1,10 @@
1
- import { DISPLAYED_BUCKETS_COUNT, INSTRUMENTS_CONFIG } from '../../../constants';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getBucketWidthMultiplayer = void 0;
7
+ var _constants = require("../../../constants");
2
8
  const roundToClosest = (value, options) => {
3
9
  return options.reduce((closest, option) => {
4
10
  const distanceToOption = Math.abs(value - option);
@@ -12,7 +18,7 @@ const roundToClosest = (value, options) => {
12
18
  const getRoundingValues = base => {
13
19
  return [base, 2 * base, 4 * base, 5 * base, 10 * base];
14
20
  };
15
- export const getBucketWidthMultiplayer = _ref => {
21
+ const getBucketWidthMultiplayer = _ref => {
16
22
  let {
17
23
  minPrice,
18
24
  maxPrice,
@@ -20,9 +26,9 @@ export const getBucketWidthMultiplayer = _ref => {
20
26
  } = _ref;
21
27
  const {
22
28
  defaultBucketWidth
23
- } = INSTRUMENTS_CONFIG[instrument];
29
+ } = _constants.INSTRUMENTS_CONFIG[instrument];
24
30
  const priceRange = maxPrice - minPrice;
25
- const calculatedMultiplier = priceRange / (defaultBucketWidth * DISPLAYED_BUCKETS_COUNT);
31
+ const calculatedMultiplier = priceRange / (defaultBucketWidth * _constants.DISPLAYED_BUCKETS_COUNT);
26
32
  if (calculatedMultiplier <= 1) {
27
33
  return 1;
28
34
  }
@@ -31,4 +37,5 @@ export const getBucketWidthMultiplayer = _ref => {
31
37
  const roundingValues = getRoundingValues(base);
32
38
  return roundToClosest(calculatedMultiplier, roundingValues);
33
39
  };
40
+ exports.getBucketWidthMultiplayer = getBucketWidthMultiplayer;
34
41
  //# sourceMappingURL=getBucketWidthMultiplayer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getBucketWidthMultiplayer.js","names":["DISPLAYED_BUCKETS_COUNT","INSTRUMENTS_CONFIG","roundToClosest","value","options","reduce","closest","option","distanceToOption","Math","abs","distanceToClosest","getRoundingValues","base","getBucketWidthMultiplayer","_ref","minPrice","maxPrice","instrument","defaultBucketWidth","priceRange","calculatedMultiplier","powerOf10","floor","log10","pow","roundingValues"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.ts"],"sourcesContent":["import {\n DISPLAYED_BUCKETS_COUNT,\n INSTRUMENTS_CONFIG,\n} from '../../../constants';\nimport type { InstrumentId } from '../../../types';\n\ninterface GetBucketWidthMultiplayerParams {\n minPrice: number;\n maxPrice: number;\n instrument: InstrumentId;\n}\n\nconst roundToClosest = (value: number, options: number[]): number => {\n return options.reduce((closest, option) => {\n const distanceToOption = Math.abs(value - option);\n const distanceToClosest = Math.abs(value - closest);\n\n if (distanceToOption === distanceToClosest) {\n return option > closest ? option : closest;\n }\n\n return distanceToOption < distanceToClosest ? option : closest;\n });\n};\n\nconst getRoundingValues = (base: number): number[] => {\n return [base, 2 * base, 4 * base, 5 * base, 10 * base];\n};\n\nexport const getBucketWidthMultiplayer = ({\n minPrice,\n maxPrice,\n instrument,\n}: GetBucketWidthMultiplayerParams): number => {\n const { defaultBucketWidth } = INSTRUMENTS_CONFIG[instrument];\n const priceRange = maxPrice - minPrice;\n\n const calculatedMultiplier =\n priceRange / (defaultBucketWidth * DISPLAYED_BUCKETS_COUNT);\n\n if (calculatedMultiplier <= 1) {\n return 1;\n }\n\n const powerOf10 = Math.floor(Math.log10(calculatedMultiplier));\n const base = Math.pow(10, powerOf10);\n const roundingValues = getRoundingValues(base);\n\n return roundToClosest(calculatedMultiplier, roundingValues);\n};\n"],"mappings":"AAAA,SACEA,uBAAuB,EACvBC,kBAAkB,QACb,oBAAoB;AAS3B,MAAMC,cAAc,GAAGA,CAACC,KAAa,EAAEC,OAAiB,KAAa;EACnE,OAAOA,OAAO,CAACC,MAAM,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACzC,MAAMC,gBAAgB,GAAGC,IAAI,CAACC,GAAG,CAACP,KAAK,GAAGI,MAAM,CAAC;IACjD,MAAMI,iBAAiB,GAAGF,IAAI,CAACC,GAAG,CAACP,KAAK,GAAGG,OAAO,CAAC;IAEnD,IAAIE,gBAAgB,KAAKG,iBAAiB,EAAE;MAC1C,OAAOJ,MAAM,GAAGD,OAAO,GAAGC,MAAM,GAAGD,OAAO;IAC5C;IAEA,OAAOE,gBAAgB,GAAGG,iBAAiB,GAAGJ,MAAM,GAAGD,OAAO;EAChE,CAAC,CAAC;AACJ,CAAC;AAED,MAAMM,iBAAiB,GAAIC,IAAY,IAAe;EACpD,OAAO,CAACA,IAAI,EAAE,CAAC,GAAGA,IAAI,EAAE,CAAC,GAAGA,IAAI,EAAE,CAAC,GAAGA,IAAI,EAAE,EAAE,GAAGA,IAAI,CAAC;AACxD,CAAC;AAED,OAAO,MAAMC,yBAAyB,GAAGC,IAAA,IAIM;EAAA,IAJL;IACxCC,QAAQ;IACRC,QAAQ;IACRC;EAC+B,CAAC,GAAAH,IAAA;EAChC,MAAM;IAAEI;EAAmB,CAAC,GAAGlB,kBAAkB,CAACiB,UAAU,CAAC;EAC7D,MAAME,UAAU,GAAGH,QAAQ,GAAGD,QAAQ;EAEtC,MAAMK,oBAAoB,GACxBD,UAAU,IAAID,kBAAkB,GAAGnB,uBAAuB,CAAC;EAE7D,IAAIqB,oBAAoB,IAAI,CAAC,EAAE;IAC7B,OAAO,CAAC;EACV;EAEA,MAAMC,SAAS,GAAGb,IAAI,CAACc,KAAK,CAACd,IAAI,CAACe,KAAK,CAACH,oBAAoB,CAAC,CAAC;EAC9D,MAAMR,IAAI,GAAGJ,IAAI,CAACgB,GAAG,CAAC,EAAE,EAAEH,SAAS,CAAC;EACpC,MAAMI,cAAc,GAAGd,iBAAiB,CAACC,IAAI,CAAC;EAE9C,OAAOX,cAAc,CAACmB,oBAAoB,EAAEK,cAAc,CAAC;AAC7D,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"getBucketWidthMultiplayer.js","names":["_constants","require","roundToClosest","value","options","reduce","closest","option","distanceToOption","Math","abs","distanceToClosest","getRoundingValues","base","getBucketWidthMultiplayer","_ref","minPrice","maxPrice","instrument","defaultBucketWidth","INSTRUMENTS_CONFIG","priceRange","calculatedMultiplier","DISPLAYED_BUCKETS_COUNT","powerOf10","floor","log10","pow","roundingValues","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/dataUtils/getBucketWidthMultiplayer.ts"],"sourcesContent":["import {\n DISPLAYED_BUCKETS_COUNT,\n INSTRUMENTS_CONFIG,\n} from '../../../constants';\nimport type { InstrumentId } from '../../../types';\n\ninterface GetBucketWidthMultiplayerParams {\n minPrice: number;\n maxPrice: number;\n instrument: InstrumentId;\n}\n\nconst roundToClosest = (value: number, options: number[]): number => {\n return options.reduce((closest, option) => {\n const distanceToOption = Math.abs(value - option);\n const distanceToClosest = Math.abs(value - closest);\n\n if (distanceToOption === distanceToClosest) {\n return option > closest ? option : closest;\n }\n\n return distanceToOption < distanceToClosest ? option : closest;\n });\n};\n\nconst getRoundingValues = (base: number): number[] => {\n return [base, 2 * base, 4 * base, 5 * base, 10 * base];\n};\n\nexport const getBucketWidthMultiplayer = ({\n minPrice,\n maxPrice,\n instrument,\n}: GetBucketWidthMultiplayerParams): number => {\n const { defaultBucketWidth } = INSTRUMENTS_CONFIG[instrument];\n const priceRange = maxPrice - minPrice;\n\n const calculatedMultiplier =\n priceRange / (defaultBucketWidth * DISPLAYED_BUCKETS_COUNT);\n\n if (calculatedMultiplier <= 1) {\n return 1;\n }\n\n const powerOf10 = Math.floor(Math.log10(calculatedMultiplier));\n const base = Math.pow(10, powerOf10);\n const roundingValues = getRoundingValues(base);\n\n return roundToClosest(calculatedMultiplier, roundingValues);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAYA,MAAMC,cAAc,GAAGA,CAACC,KAAa,EAAEC,OAAiB,KAAa;EACnE,OAAOA,OAAO,CAACC,MAAM,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACzC,MAAMC,gBAAgB,GAAGC,IAAI,CAACC,GAAG,CAACP,KAAK,GAAGI,MAAM,CAAC;IACjD,MAAMI,iBAAiB,GAAGF,IAAI,CAACC,GAAG,CAACP,KAAK,GAAGG,OAAO,CAAC;IAEnD,IAAIE,gBAAgB,KAAKG,iBAAiB,EAAE;MAC1C,OAAOJ,MAAM,GAAGD,OAAO,GAAGC,MAAM,GAAGD,OAAO;IAC5C;IAEA,OAAOE,gBAAgB,GAAGG,iBAAiB,GAAGJ,MAAM,GAAGD,OAAO;EAChE,CAAC,CAAC;AACJ,CAAC;AAED,MAAMM,iBAAiB,GAAIC,IAAY,IAAe;EACpD,OAAO,CAACA,IAAI,EAAE,CAAC,GAAGA,IAAI,EAAE,CAAC,GAAGA,IAAI,EAAE,CAAC,GAAGA,IAAI,EAAE,EAAE,GAAGA,IAAI,CAAC;AACxD,CAAC;AAEM,MAAMC,yBAAyB,GAAGC,IAAA,IAIM;EAAA,IAJL;IACxCC,QAAQ;IACRC,QAAQ;IACRC;EAC+B,CAAC,GAAAH,IAAA;EAChC,MAAM;IAAEI;EAAmB,CAAC,GAAGC,6BAAkB,CAACF,UAAU,CAAC;EAC7D,MAAMG,UAAU,GAAGJ,QAAQ,GAAGD,QAAQ;EAEtC,MAAMM,oBAAoB,GACxBD,UAAU,IAAIF,kBAAkB,GAAGI,kCAAuB,CAAC;EAE7D,IAAID,oBAAoB,IAAI,CAAC,EAAE;IAC7B,OAAO,CAAC;EACV;EAEA,MAAME,SAAS,GAAGf,IAAI,CAACgB,KAAK,CAAChB,IAAI,CAACiB,KAAK,CAACJ,oBAAoB,CAAC,CAAC;EAC9D,MAAMT,IAAI,GAAGJ,IAAI,CAACkB,GAAG,CAAC,EAAE,EAAEH,SAAS,CAAC;EACpC,MAAMI,cAAc,GAAGhB,iBAAiB,CAACC,IAAI,CAAC;EAE9C,OAAOX,cAAc,CAACoB,oBAAoB,EAAEM,cAAc,CAAC;AAC7D,CAAC;AAACC,OAAA,CAAAf,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -1,12 +1,19 @@
1
- import { Division } from '../../../../gql/types/graphql';
2
- import { instrumentSelectConfig, instrumentSelectConfigJa, instrumentSelectConfigOC } from '../../../selectConfig';
3
- export const getInstrumentConfig = (division, isJapanese) => {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getInstrumentConfig = void 0;
7
+ var _graphql = require("../../../../gql/types/graphql");
8
+ var _selectConfig = require("../../../selectConfig");
9
+ const getInstrumentConfig = (division, isJapanese) => {
4
10
  if (isJapanese) {
5
- return instrumentSelectConfigJa;
11
+ return _selectConfig.instrumentSelectConfigJa;
6
12
  }
7
- if (division === Division.Oc) {
8
- return instrumentSelectConfigOC;
13
+ if (division === _graphql.Division.Oc) {
14
+ return _selectConfig.instrumentSelectConfigOC;
9
15
  }
10
- return instrumentSelectConfig;
16
+ return _selectConfig.instrumentSelectConfig;
11
17
  };
18
+ exports.getInstrumentConfig = getInstrumentConfig;
12
19
  //# sourceMappingURL=getInstrumentConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getInstrumentConfig.js","names":["Division","instrumentSelectConfig","instrumentSelectConfigJa","instrumentSelectConfigOC","getInstrumentConfig","division","isJapanese","Oc"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfig.ts"],"sourcesContent":["import { Division } from '../../../../gql/types/graphql';\nimport {\n instrumentSelectConfig,\n instrumentSelectConfigJa,\n instrumentSelectConfigOC,\n} from '../../../selectConfig';\n\nexport const getInstrumentConfig = (\n division: Division,\n isJapanese: boolean\n) => {\n if (isJapanese) {\n return instrumentSelectConfigJa;\n }\n\n if (division === Division.Oc) {\n return instrumentSelectConfigOC;\n }\n return instrumentSelectConfig;\n};\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,+BAA+B;AACxD,SACEC,sBAAsB,EACtBC,wBAAwB,EACxBC,wBAAwB,QACnB,uBAAuB;AAE9B,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,QAAkB,EAClBC,UAAmB,KAChB;EACH,IAAIA,UAAU,EAAE;IACd,OAAOJ,wBAAwB;EACjC;EAEA,IAAIG,QAAQ,KAAKL,QAAQ,CAACO,EAAE,EAAE;IAC5B,OAAOJ,wBAAwB;EACjC;EACA,OAAOF,sBAAsB;AAC/B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"getInstrumentConfig.js","names":["_graphql","require","_selectConfig","getInstrumentConfig","division","isJapanese","instrumentSelectConfigJa","Division","Oc","instrumentSelectConfigOC","instrumentSelectConfig","exports"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/dataUtils/getInstrumentConfig.ts"],"sourcesContent":["import { Division } from '../../../../gql/types/graphql';\nimport {\n instrumentSelectConfig,\n instrumentSelectConfigJa,\n instrumentSelectConfigOC,\n} from '../../../selectConfig';\n\nexport const getInstrumentConfig = (\n division: Division,\n isJapanese: boolean\n) => {\n if (isJapanese) {\n return instrumentSelectConfigJa;\n }\n\n if (division === Division.Oc) {\n return instrumentSelectConfigOC;\n }\n return instrumentSelectConfig;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAMO,MAAME,mBAAmB,GAAGA,CACjCC,QAAkB,EAClBC,UAAmB,KAChB;EACH,IAAIA,UAAU,EAAE;IACd,OAAOC,sCAAwB;EACjC;EAEA,IAAIF,QAAQ,KAAKG,iBAAQ,CAACC,EAAE,EAAE;IAC5B,OAAOC,sCAAwB;EACjC;EACA,OAAOC,oCAAsB;AAC/B,CAAC;AAACC,OAAA,CAAAR,mBAAA,GAAAA,mBAAA","ignoreList":[]}