@techie_doubts/tui.chart.2026 4.6.1

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 (284) hide show
  1. package/README.md +165 -0
  2. package/dist/esm/animator.d.ts +32 -0
  3. package/dist/esm/animator.js +102 -0
  4. package/dist/esm/brushes/axis.d.ts +3 -0
  5. package/dist/esm/brushes/axis.js +21 -0
  6. package/dist/esm/brushes/basic.d.ts +9 -0
  7. package/dist/esm/brushes/basic.js +95 -0
  8. package/dist/esm/brushes/boxPlot.d.ts +2 -0
  9. package/dist/esm/brushes/boxPlot.js +22 -0
  10. package/dist/esm/brushes/circleLegend.d.ts +2 -0
  11. package/dist/esm/brushes/circleLegend.js +26 -0
  12. package/dist/esm/brushes/dataLabel.d.ts +6 -0
  13. package/dist/esm/brushes/dataLabel.js +176 -0
  14. package/dist/esm/brushes/exportMenu.d.ts +2 -0
  15. package/dist/esm/brushes/exportMenu.js +55 -0
  16. package/dist/esm/brushes/gauge.d.ts +2 -0
  17. package/dist/esm/brushes/gauge.js +39 -0
  18. package/dist/esm/brushes/label.d.ts +34 -0
  19. package/dist/esm/brushes/label.js +165 -0
  20. package/dist/esm/brushes/legend.d.ts +7 -0
  21. package/dist/esm/brushes/legend.js +162 -0
  22. package/dist/esm/brushes/lineSeries.d.ts +5 -0
  23. package/dist/esm/brushes/lineSeries.js +41 -0
  24. package/dist/esm/brushes/polygon.d.ts +2 -0
  25. package/dist/esm/brushes/polygon.js +24 -0
  26. package/dist/esm/brushes/resetButton.d.ts +3 -0
  27. package/dist/esm/brushes/resetButton.js +112 -0
  28. package/dist/esm/brushes/scatterSeries.d.ts +2 -0
  29. package/dist/esm/brushes/scatterSeries.js +125 -0
  30. package/dist/esm/brushes/sector.d.ts +2 -0
  31. package/dist/esm/brushes/sector.js +54 -0
  32. package/dist/esm/brushes/spectrumLegend.d.ts +14 -0
  33. package/dist/esm/brushes/spectrumLegend.js +199 -0
  34. package/dist/esm/charts/areaChart.d.ts +254 -0
  35. package/dist/esm/charts/areaChart.js +358 -0
  36. package/dist/esm/charts/barChart.d.ts +203 -0
  37. package/dist/esm/charts/barChart.js +300 -0
  38. package/dist/esm/charts/boxPlotChart.d.ts +209 -0
  39. package/dist/esm/charts/boxPlotChart.js +288 -0
  40. package/dist/esm/charts/bubbleChart.d.ts +188 -0
  41. package/dist/esm/charts/bubbleChart.js +263 -0
  42. package/dist/esm/charts/bulletChart.d.ts +199 -0
  43. package/dist/esm/charts/bulletChart.js +278 -0
  44. package/dist/esm/charts/chart.d.ts +133 -0
  45. package/dist/esm/charts/chart.js +484 -0
  46. package/dist/esm/charts/columnChart.d.ts +205 -0
  47. package/dist/esm/charts/columnChart.js +299 -0
  48. package/dist/esm/charts/columnLineChart.d.ts +271 -0
  49. package/dist/esm/charts/columnLineChart.js +386 -0
  50. package/dist/esm/charts/gaugeChart.d.ts +191 -0
  51. package/dist/esm/charts/gaugeChart.js +279 -0
  52. package/dist/esm/charts/heatmapChart.d.ts +199 -0
  53. package/dist/esm/charts/heatmapChart.js +292 -0
  54. package/dist/esm/charts/lineAreaChart.d.ts +271 -0
  55. package/dist/esm/charts/lineAreaChart.js +374 -0
  56. package/dist/esm/charts/lineChart.d.ts +253 -0
  57. package/dist/esm/charts/lineChart.js +360 -0
  58. package/dist/esm/charts/lineScatterChart.d.ts +200 -0
  59. package/dist/esm/charts/lineScatterChart.js +285 -0
  60. package/dist/esm/charts/nestedPieChart.d.ts +192 -0
  61. package/dist/esm/charts/nestedPieChart.js +268 -0
  62. package/dist/esm/charts/pieChart.d.ts +156 -0
  63. package/dist/esm/charts/pieChart.js +224 -0
  64. package/dist/esm/charts/radarChart.d.ts +169 -0
  65. package/dist/esm/charts/radarChart.js +240 -0
  66. package/dist/esm/charts/radialBarChart.d.ts +172 -0
  67. package/dist/esm/charts/radialBarChart.js +251 -0
  68. package/dist/esm/charts/scatterChart.d.ts +184 -0
  69. package/dist/esm/charts/scatterChart.js +279 -0
  70. package/dist/esm/charts/treemapChart.d.ts +166 -0
  71. package/dist/esm/charts/treemapChart.js +239 -0
  72. package/dist/esm/component/areaSeries.d.ts +96 -0
  73. package/dist/esm/component/areaSeries.js +474 -0
  74. package/dist/esm/component/axis.d.ts +40 -0
  75. package/dist/esm/component/axis.js +176 -0
  76. package/dist/esm/component/axisTitle.d.ts +25 -0
  77. package/dist/esm/component/axisTitle.js +67 -0
  78. package/dist/esm/component/axisUsingCenterY.d.ts +32 -0
  79. package/dist/esm/component/axisUsingCenterY.js +175 -0
  80. package/dist/esm/component/backButton.d.ts +13 -0
  81. package/dist/esm/component/backButton.js +26 -0
  82. package/dist/esm/component/background.d.ts +10 -0
  83. package/dist/esm/component/background.js +15 -0
  84. package/dist/esm/component/boxPlotSeries.d.ts +126 -0
  85. package/dist/esm/component/boxPlotSeries.js +410 -0
  86. package/dist/esm/component/boxSeries.d.ts +211 -0
  87. package/dist/esm/component/boxSeries.js +603 -0
  88. package/dist/esm/component/boxStackSeries.d.ts +62 -0
  89. package/dist/esm/component/boxStackSeries.js +447 -0
  90. package/dist/esm/component/bubbleSeries.d.ts +35 -0
  91. package/dist/esm/component/bubbleSeries.js +174 -0
  92. package/dist/esm/component/bulletSeries.d.ts +89 -0
  93. package/dist/esm/component/bulletSeries.js +392 -0
  94. package/dist/esm/component/circleLegend.d.ts +10 -0
  95. package/dist/esm/component/circleLegend.js +37 -0
  96. package/dist/esm/component/component.d.ts +64 -0
  97. package/dist/esm/component/component.js +170 -0
  98. package/dist/esm/component/componentManager.d.ts +23 -0
  99. package/dist/esm/component/componentManager.js +45 -0
  100. package/dist/esm/component/dataLabels.d.ts +23 -0
  101. package/dist/esm/component/dataLabels.js +134 -0
  102. package/dist/esm/component/exportMenu.d.ts +38 -0
  103. package/dist/esm/component/exportMenu.js +147 -0
  104. package/dist/esm/component/gaugeSeries.d.ts +160 -0
  105. package/dist/esm/component/gaugeSeries.js +447 -0
  106. package/dist/esm/component/heatmapSeries.d.ts +64 -0
  107. package/dist/esm/component/heatmapSeries.js +152 -0
  108. package/dist/esm/component/hoveredSeries.d.ts +27 -0
  109. package/dist/esm/component/hoveredSeries.js +95 -0
  110. package/dist/esm/component/legend.d.ts +26 -0
  111. package/dist/esm/component/legend.js +149 -0
  112. package/dist/esm/component/lineSeries.d.ts +69 -0
  113. package/dist/esm/component/lineSeries.js +319 -0
  114. package/dist/esm/component/noDataText.d.ts +9 -0
  115. package/dist/esm/component/noDataText.js +31 -0
  116. package/dist/esm/component/pieSeries.d.ts +137 -0
  117. package/dist/esm/component/pieSeries.js +390 -0
  118. package/dist/esm/component/plot.d.ts +37 -0
  119. package/dist/esm/component/plot.js +163 -0
  120. package/dist/esm/component/radarSeries.d.ts +85 -0
  121. package/dist/esm/component/radarSeries.js +222 -0
  122. package/dist/esm/component/radialAxis.d.ts +26 -0
  123. package/dist/esm/component/radialAxis.js +210 -0
  124. package/dist/esm/component/radialBarSeries.d.ts +111 -0
  125. package/dist/esm/component/radialBarSeries.js +349 -0
  126. package/dist/esm/component/radialPlot.d.ts +55 -0
  127. package/dist/esm/component/radialPlot.js +188 -0
  128. package/dist/esm/component/rangeSelection.d.ts +61 -0
  129. package/dist/esm/component/rangeSelection.js +150 -0
  130. package/dist/esm/component/resetButton.d.ts +13 -0
  131. package/dist/esm/component/resetButton.js +26 -0
  132. package/dist/esm/component/scatterSeries.d.ts +34 -0
  133. package/dist/esm/component/scatterSeries.js +159 -0
  134. package/dist/esm/component/selectedSeries.d.ts +26 -0
  135. package/dist/esm/component/selectedSeries.js +109 -0
  136. package/dist/esm/component/spectrumLegend.d.ts +15 -0
  137. package/dist/esm/component/spectrumLegend.js +76 -0
  138. package/dist/esm/component/title.d.ts +12 -0
  139. package/dist/esm/component/title.js +53 -0
  140. package/dist/esm/component/tooltip.d.ts +41 -0
  141. package/dist/esm/component/tooltip.js +131 -0
  142. package/dist/esm/component/treemapSeries.d.ts +57 -0
  143. package/dist/esm/component/treemapSeries.js +191 -0
  144. package/dist/esm/component/zeroAxis.d.ts +9 -0
  145. package/dist/esm/component/zeroAxis.js +49 -0
  146. package/dist/esm/eventEmitter.d.ts +8 -0
  147. package/dist/esm/eventEmitter.js +15 -0
  148. package/dist/esm/helpers/arrayUtil.d.ts +10 -0
  149. package/dist/esm/helpers/arrayUtil.js +54 -0
  150. package/dist/esm/helpers/axes.d.ts +67 -0
  151. package/dist/esm/helpers/axes.js +345 -0
  152. package/dist/esm/helpers/boxSeries.d.ts +5 -0
  153. package/dist/esm/helpers/boxSeries.js +71 -0
  154. package/dist/esm/helpers/calculator.d.ts +19 -0
  155. package/dist/esm/helpers/calculator.js +153 -0
  156. package/dist/esm/helpers/color.d.ts +153 -0
  157. package/dist/esm/helpers/color.js +218 -0
  158. package/dist/esm/helpers/colorSpectrum.d.ts +5 -0
  159. package/dist/esm/helpers/colorSpectrum.js +17 -0
  160. package/dist/esm/helpers/coordinate.d.ts +9 -0
  161. package/dist/esm/helpers/coordinate.js +51 -0
  162. package/dist/esm/helpers/dataLabels.d.ts +36 -0
  163. package/dist/esm/helpers/dataLabels.js +405 -0
  164. package/dist/esm/helpers/dom.d.ts +2 -0
  165. package/dist/esm/helpers/dom.js +8 -0
  166. package/dist/esm/helpers/downloader.d.ts +7 -0
  167. package/dist/esm/helpers/downloader.js +287 -0
  168. package/dist/esm/helpers/formatDate.d.ts +16 -0
  169. package/dist/esm/helpers/formatDate.js +140 -0
  170. package/dist/esm/helpers/geometric.d.ts +3 -0
  171. package/dist/esm/helpers/geometric.js +35 -0
  172. package/dist/esm/helpers/googleAnalytics.d.ts +1 -0
  173. package/dist/esm/helpers/googleAnalytics.js +39 -0
  174. package/dist/esm/helpers/htmlSanitizer.d.ts +1 -0
  175. package/dist/esm/helpers/htmlSanitizer.js +86 -0
  176. package/dist/esm/helpers/legend.d.ts +9 -0
  177. package/dist/esm/helpers/legend.js +47 -0
  178. package/dist/esm/helpers/pieSeries.d.ts +15 -0
  179. package/dist/esm/helpers/pieSeries.js +72 -0
  180. package/dist/esm/helpers/plot.d.ts +2 -0
  181. package/dist/esm/helpers/plot.js +4 -0
  182. package/dist/esm/helpers/radarSeries.d.ts +1 -0
  183. package/dist/esm/helpers/radarSeries.js +7 -0
  184. package/dist/esm/helpers/range.d.ts +6 -0
  185. package/dist/esm/helpers/range.js +16 -0
  186. package/dist/esm/helpers/responders.d.ts +37 -0
  187. package/dist/esm/helpers/responders.js +197 -0
  188. package/dist/esm/helpers/sector.d.ts +55 -0
  189. package/dist/esm/helpers/sector.js +117 -0
  190. package/dist/esm/helpers/squarifier.d.ts +8 -0
  191. package/dist/esm/helpers/squarifier.js +110 -0
  192. package/dist/esm/helpers/style.d.ts +14 -0
  193. package/dist/esm/helpers/style.js +48 -0
  194. package/dist/esm/helpers/theme.d.ts +58 -0
  195. package/dist/esm/helpers/theme.js +557 -0
  196. package/dist/esm/helpers/tooltip.d.ts +2 -0
  197. package/dist/esm/helpers/tooltip.js +18 -0
  198. package/dist/esm/helpers/tooltipTemplate.d.ts +21 -0
  199. package/dist/esm/helpers/tooltipTemplate.js +147 -0
  200. package/dist/esm/helpers/utils.d.ts +42 -0
  201. package/dist/esm/helpers/utils.js +268 -0
  202. package/dist/esm/helpers/validation.d.ts +6 -0
  203. package/dist/esm/helpers/validation.js +16 -0
  204. package/dist/esm/index.d.ts +40 -0
  205. package/dist/esm/index.js +75 -0
  206. package/dist/esm/message.d.ts +11 -0
  207. package/dist/esm/message.js +11 -0
  208. package/dist/esm/painter.d.ts +27 -0
  209. package/dist/esm/painter.js +88 -0
  210. package/dist/esm/responderDetectors.d.ts +6 -0
  211. package/dist/esm/responderDetectors.js +124 -0
  212. package/dist/esm/scale/coordinateScaleCalculator.d.ts +24 -0
  213. package/dist/esm/scale/coordinateScaleCalculator.js +174 -0
  214. package/dist/esm/scale/datetimeScaleCalculator.d.ts +20 -0
  215. package/dist/esm/scale/datetimeScaleCalculator.js +59 -0
  216. package/dist/esm/store/axes.d.ts +30 -0
  217. package/dist/esm/store/axes.js +282 -0
  218. package/dist/esm/store/category.d.ts +4 -0
  219. package/dist/esm/store/category.js +73 -0
  220. package/dist/esm/store/colorValueScale.d.ts +3 -0
  221. package/dist/esm/store/colorValueScale.js +56 -0
  222. package/dist/esm/store/dataRange.d.ts +4 -0
  223. package/dist/esm/store/dataRange.js +170 -0
  224. package/dist/esm/store/gaugeAxes.d.ts +4 -0
  225. package/dist/esm/store/gaugeAxes.js +175 -0
  226. package/dist/esm/store/heatmapAxes.d.ts +3 -0
  227. package/dist/esm/store/heatmapAxes.js +98 -0
  228. package/dist/esm/store/heatmapSeriesData.d.ts +3 -0
  229. package/dist/esm/store/heatmapSeriesData.js +34 -0
  230. package/dist/esm/store/layout.d.ts +12 -0
  231. package/dist/esm/store/layout.js +487 -0
  232. package/dist/esm/store/legend.d.ts +3 -0
  233. package/dist/esm/store/legend.js +435 -0
  234. package/dist/esm/store/nestedPieSeriesData.d.ts +3 -0
  235. package/dist/esm/store/nestedPieSeriesData.js +49 -0
  236. package/dist/esm/store/options.d.ts +3 -0
  237. package/dist/esm/store/options.js +62 -0
  238. package/dist/esm/store/plot.d.ts +3 -0
  239. package/dist/esm/store/plot.js +102 -0
  240. package/dist/esm/store/radialAxes.d.ts +8 -0
  241. package/dist/esm/store/radialAxes.js +199 -0
  242. package/dist/esm/store/reactive.d.ts +11 -0
  243. package/dist/esm/store/reactive.js +196 -0
  244. package/dist/esm/store/root.d.ts +3 -0
  245. package/dist/esm/store/root.js +46 -0
  246. package/dist/esm/store/scale.d.ts +3 -0
  247. package/dist/esm/store/scale.js +102 -0
  248. package/dist/esm/store/seriesData.d.ts +3 -0
  249. package/dist/esm/store/seriesData.js +299 -0
  250. package/dist/esm/store/stackSeriesData.d.ts +8 -0
  251. package/dist/esm/store/stackSeriesData.js +192 -0
  252. package/dist/esm/store/store.d.ts +20 -0
  253. package/dist/esm/store/store.js +112 -0
  254. package/dist/esm/store/theme.d.ts +3 -0
  255. package/dist/esm/store/theme.js +139 -0
  256. package/dist/esm/store/treemapSeriesData.d.ts +4 -0
  257. package/dist/esm/store/treemapSeriesData.js +93 -0
  258. package/dist/td-chart.css +127 -0
  259. package/dist/td-chart.js +41463 -0
  260. package/dist/td-chart.min.css +6 -0
  261. package/dist/td-chart.min.js +9 -0
  262. package/package.json +112 -0
  263. package/types/brushes.d.ts +30 -0
  264. package/types/charts.d.ts +152 -0
  265. package/types/components/axis.d.ts +71 -0
  266. package/types/components/circleLegend.d.ts +9 -0
  267. package/types/components/dataLabels.d.ts +119 -0
  268. package/types/components/exportMenu.d.ts +14 -0
  269. package/types/components/legend.d.ts +27 -0
  270. package/types/components/plot.d.ts +8 -0
  271. package/types/components/radialAxis.d.ts +22 -0
  272. package/types/components/radialPlot.d.ts +11 -0
  273. package/types/components/rangeSelection.d.ts +3 -0
  274. package/types/components/resetButton.d.ts +13 -0
  275. package/types/components/series.d.ts +386 -0
  276. package/types/components/spectrumLegend.d.ts +25 -0
  277. package/types/components/tooltip.d.ts +58 -0
  278. package/types/components/zoom.d.ts +3 -0
  279. package/types/eventEmitter.d.ts +12 -0
  280. package/types/index.d.ts +615 -0
  281. package/types/options.d.ts +833 -0
  282. package/types/resizeObserver.d.ts +54 -0
  283. package/types/store/store.d.ts +564 -0
  284. package/types/theme.d.ts +670 -0
@@ -0,0 +1,410 @@
1
+ import Component from "./component";
2
+ import { getActiveSeriesMap } from "../helpers/legend";
3
+ import { getRGBA } from "../helpers/color";
4
+ import { getBoxTypeSeriesPadding } from "../helpers/style";
5
+ import { isNumber, calculateSizeWithPercentString, isNull } from "../helpers/utils";
6
+ import { crispPixel } from "../helpers/calculator";
7
+ import { message } from "../message";
8
+ const MIN_BAR_WIDTH = 5;
9
+ function getPadding(tickDistance, barWidth, seriesLength) {
10
+ return (tickDistance - barWidth * seriesLength) / (seriesLength + 1);
11
+ }
12
+ function getDefaultColor(defaultColor, color) {
13
+ return (color !== null && color !== void 0 ? color : defaultColor);
14
+ }
15
+ export default class BoxPlotSeries extends Component {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.models = { rect: [], line: [], circle: [] };
19
+ this.activatedResponders = [];
20
+ this.eventDetectType = 'point';
21
+ this.onMouseoutComponent = () => {
22
+ this.eventBus.emit('seriesPointHovered', { models: [], name: this.name });
23
+ this.eventBus.emit('renderHoveredSeries', {
24
+ models: [],
25
+ name: this.name,
26
+ eventDetectType: this.eventDetectType,
27
+ });
28
+ this.eventBus.emit('needDraw');
29
+ };
30
+ this.selectSeries = ({ index, seriesIndex, state, }) => {
31
+ if (!isNumber(index) || !isNumber(seriesIndex)) {
32
+ return;
33
+ }
34
+ const { name } = state.series.boxPlot[seriesIndex];
35
+ const models = this.getRespondersWithTheme(this.tooltipRectMap[`${name}-${index}`], 'select');
36
+ this.eventBus.emit('renderSelectedSeries', {
37
+ models,
38
+ name: this.name,
39
+ eventDetectType: this.eventDetectType,
40
+ });
41
+ this.eventBus.emit('needDraw');
42
+ };
43
+ this.showTooltip = ({ index, seriesIndex, state }) => {
44
+ if (!isNumber(index) || !isNumber(seriesIndex)) {
45
+ return;
46
+ }
47
+ const { name } = state.series.boxPlot[seriesIndex];
48
+ const models = this.getRespondersWithTheme(this.tooltipRectMap[`${name}-${index}`], 'hover');
49
+ this.eventBus.emit('renderHoveredSeries', {
50
+ models,
51
+ name: this.name,
52
+ eventDetectType: this.eventDetectType,
53
+ });
54
+ this.activatedResponders = models;
55
+ this.eventBus.emit('seriesPointHovered', { models: this.activatedResponders, name: this.name });
56
+ this.eventBus.emit('needDraw');
57
+ };
58
+ }
59
+ initialize() {
60
+ this.type = 'series';
61
+ this.name = 'boxPlot';
62
+ this.eventBus.on('selectSeries', this.selectSeries);
63
+ this.eventBus.on('showTooltip', this.showTooltip);
64
+ this.eventBus.on('hideTooltip', this.onMouseoutComponent);
65
+ }
66
+ render(state) {
67
+ var _a, _b;
68
+ const { layout, axes, series, scale, legend, options, theme } = state;
69
+ if (!series.boxPlot) {
70
+ throw new Error(message.noDataError(this.name));
71
+ }
72
+ if ((_b = (_a = options) === null || _a === void 0 ? void 0 : _a.series) === null || _b === void 0 ? void 0 : _b.eventDetectType) {
73
+ this.eventDetectType = options.series.eventDetectType;
74
+ }
75
+ this.theme = theme.series.boxPlot;
76
+ this.rect = layout.plot;
77
+ this.activeSeriesMap = getActiveSeriesMap(legend);
78
+ this.selectable = this.getSelectableOption(options);
79
+ const categories = state.categories;
80
+ const { tickDistance } = axes.xAxis;
81
+ const { min, max } = scale.yAxis.limit;
82
+ const boxPlotData = series.boxPlot.data;
83
+ const seriesLength = boxPlotData.length;
84
+ const renderOptions = Object.assign({ ratio: this.rect.height / (max - min), tickDistance }, this.getBarWidths(tickDistance, seriesLength));
85
+ const boxPlotModelData = this.makeBoxPlots(boxPlotData, renderOptions);
86
+ const seriesModels = this.renderSeriesModels(boxPlotModelData);
87
+ this.models = seriesModels;
88
+ if (!this.drawModels) {
89
+ this.drawModels = {
90
+ rect: seriesModels.rect.map((m) => (Object.assign(Object.assign({}, m), { y: m.y + m.height, height: 0 }))),
91
+ line: seriesModels.line,
92
+ circle: seriesModels.circle,
93
+ };
94
+ }
95
+ const tooltipData = this.makeTooltipModel(boxPlotData, categories);
96
+ this.tooltipRectMap = this.makeTooltipRectMap(boxPlotModelData, tooltipData);
97
+ this.responders =
98
+ this.eventDetectType === 'grouped'
99
+ ? this.makeGroupedResponderModel(boxPlotModelData)
100
+ : this.makeDefaultResponderModel(boxPlotModelData, tooltipData);
101
+ }
102
+ makeTooltipRectMap(boxPlotModelData, tooltipData) {
103
+ const result = {};
104
+ boxPlotModelData.forEach((m, tooltipIndex) => {
105
+ if (!isNull(m)) {
106
+ const propName = `${m.name}-${m.index}`;
107
+ if (!result[propName]) {
108
+ result[propName] = [];
109
+ }
110
+ result[propName].push(Object.assign(Object.assign({}, this.makeHoveredModel(m)), { data: tooltipData[tooltipIndex] }));
111
+ }
112
+ });
113
+ return result;
114
+ }
115
+ makeGroupedResponderModel(boxPlotModelData) {
116
+ const result = [];
117
+ boxPlotModelData.forEach((m) => {
118
+ const { type, index, name } = m;
119
+ const propName = `${name}-${index}`;
120
+ if (type === 'boxPlot' && !result[propName]) {
121
+ const { boxPlotDetection } = m;
122
+ result.push(Object.assign(Object.assign({ type: 'rect', name: propName }, boxPlotDetection), { y: 0, height: this.rect.height }));
123
+ }
124
+ });
125
+ return result;
126
+ }
127
+ makeDefaultResponderModel(boxPlotModelData, tooltipDataArr) {
128
+ return boxPlotModelData.map((m, index) => (Object.assign(Object.assign({}, this.makeHoveredModel(m)), { data: tooltipDataArr[index], color: getRGBA(m.color, 1) })));
129
+ }
130
+ makeHoveredModel(model) {
131
+ const point = model.type === 'boxPlot' && model.rect
132
+ ? { x: model.rect.x, y: model.rect.y }
133
+ : { x: model.x, y: model.y };
134
+ const hoveredModel = Object.assign({}, model);
135
+ if (model.type === 'boxPlot') {
136
+ ['lowerWhisker', 'upperWhisker', 'maximum', 'minimum', 'median'].forEach((prop) => {
137
+ if (model[prop]) {
138
+ model[prop].detectionSize = 3;
139
+ }
140
+ });
141
+ model.color = getRGBA(hoveredModel.color, 1);
142
+ }
143
+ return Object.assign(Object.assign({}, hoveredModel), point);
144
+ }
145
+ getResponderModelFromMap(responders) {
146
+ if (!responders.length) {
147
+ return [];
148
+ }
149
+ const propName = responders[0].name;
150
+ return this.tooltipRectMap[propName];
151
+ }
152
+ onMousemove({ responders }) {
153
+ if (this.eventDetectType === 'grouped') {
154
+ const models = this.getResponderModelFromMap(responders);
155
+ this.eventBus.emit('renderHoveredSeries', {
156
+ models: this.getRespondersWithTheme(models, 'select'),
157
+ name: this.name,
158
+ eventDetectType: this.eventDetectType,
159
+ });
160
+ this.activatedResponders = models;
161
+ }
162
+ else {
163
+ this.eventBus.emit('renderHoveredSeries', {
164
+ models: this.getRespondersWithTheme(responders, 'hover'),
165
+ name: this.name,
166
+ eventDetectType: this.eventDetectType,
167
+ });
168
+ this.activatedResponders = responders;
169
+ }
170
+ this.eventBus.emit('seriesPointHovered', { models: this.activatedResponders, name: this.name });
171
+ this.eventBus.emit('needDraw');
172
+ }
173
+ onClick({ responders }) {
174
+ if (this.selectable) {
175
+ let models;
176
+ if (this.eventDetectType === 'grouped') {
177
+ models = this.getRespondersWithTheme(this.getResponderModelFromMap(responders), 'select');
178
+ }
179
+ else {
180
+ models = this.getRespondersWithTheme(responders, 'select');
181
+ }
182
+ this.eventBus.emit('renderSelectedSeries', {
183
+ models,
184
+ name: this.name,
185
+ eventDetectType: this.eventDetectType,
186
+ });
187
+ this.eventBus.emit('needDraw');
188
+ }
189
+ }
190
+ renderSeriesModels(boxPlots) {
191
+ return boxPlots.reduce((acc, cur) => {
192
+ const { type, name } = cur;
193
+ if (type === 'boxPlot') {
194
+ acc.rect.push(Object.assign({ name }, cur.rect));
195
+ ['maximum', 'minimum', 'median', 'upperWhisker', 'lowerWhisker'].forEach((prop) => {
196
+ acc.line.push(Object.assign({ name }, cur[prop]));
197
+ });
198
+ }
199
+ else {
200
+ acc.circle.push(Object.assign({}, cur));
201
+ }
202
+ return acc;
203
+ }, { rect: [], line: [], circle: [] });
204
+ }
205
+ makeBoxPlots(seriesData, renderOptions) {
206
+ const { ratio, barWidth } = renderOptions;
207
+ const boxPlotModels = [];
208
+ const seriesLength = seriesData.length;
209
+ const { dot } = this.theme;
210
+ seriesData.forEach(({ outliers, data, name, color }, seriesIndex) => {
211
+ const seriesColor = this.getSeriesColor(name, color);
212
+ ((data !== null && data !== void 0 ? data : [])).forEach((datum, dataIndex) => {
213
+ if (!isNull(datum)) {
214
+ const startX = this.getStartX(seriesIndex, dataIndex, renderOptions, seriesLength);
215
+ const rect = this.getRect(datum, startX, seriesColor, renderOptions);
216
+ boxPlotModels.push(Object.assign(Object.assign({ type: 'boxPlot', color: seriesColor, name,
217
+ rect, median: this.getMedian(datum, startX, seriesColor, renderOptions), minimum: this.getMinimum(datum, startX, seriesColor, renderOptions), maximum: this.getMaximum(datum, startX, seriesColor, renderOptions) }, this.getWhisker(datum, startX, seriesColor, renderOptions, rect)), { index: dataIndex, boxPlotDetection: {
218
+ x: startX,
219
+ width: barWidth,
220
+ } }));
221
+ }
222
+ });
223
+ const { color: dotColor, radius, borderColor, borderWidth, useSeriesColor, } = dot;
224
+ ((outliers !== null && outliers !== void 0 ? outliers : [])).forEach((datum) => {
225
+ const [dataIndex, value] = datum;
226
+ const startX = this.getStartX(seriesIndex, dataIndex, renderOptions, seriesLength);
227
+ boxPlotModels.push({
228
+ type: 'circle',
229
+ name,
230
+ x: startX + barWidth / 2,
231
+ y: this.getYPos(value, ratio),
232
+ radius: radius,
233
+ style: [{ strokeStyle: (borderColor !== null && borderColor !== void 0 ? borderColor : seriesColor), lineWidth: borderWidth }],
234
+ color: useSeriesColor ? seriesColor : dotColor,
235
+ index: dataIndex,
236
+ });
237
+ });
238
+ });
239
+ return boxPlotModels;
240
+ }
241
+ makeTooltipModel(seriesData, categories) {
242
+ const tooltipData = [];
243
+ seriesData.forEach(({ outliers, data, name, color }) => {
244
+ ((data !== null && data !== void 0 ? data : [])).forEach((datum, dataIndex) => {
245
+ if (!isNull(datum)) {
246
+ const boxPlotData = [...datum].reverse();
247
+ tooltipData.push({
248
+ label: name,
249
+ color: color,
250
+ value: [
251
+ 'Maximum',
252
+ 'Upper Quartile',
253
+ 'Median',
254
+ 'Lower Quartile',
255
+ 'Minimum',
256
+ ].reduce((acc, title, index) => {
257
+ const value = boxPlotData[index];
258
+ return isNull(value) ? acc : [...acc, { title, value }];
259
+ }, []),
260
+ category: categories[dataIndex],
261
+ templateType: 'boxPlot',
262
+ });
263
+ }
264
+ });
265
+ ((outliers !== null && outliers !== void 0 ? outliers : [])).forEach((datum) => {
266
+ if (!isNull(datum)) {
267
+ const [dataIndex, dataValue] = datum;
268
+ tooltipData.push({
269
+ label: name,
270
+ color: color,
271
+ value: [{ title: 'Outlier', value: dataValue }],
272
+ category: categories[dataIndex],
273
+ templateType: 'boxPlot',
274
+ });
275
+ }
276
+ });
277
+ });
278
+ return tooltipData;
279
+ }
280
+ getStartX(seriesIndex, dataIndex, renderOptions, seriesLength) {
281
+ const { tickDistance, barWidth } = renderOptions;
282
+ const padding = getPadding(tickDistance, barWidth, seriesLength);
283
+ return dataIndex * tickDistance + (seriesIndex + 1) * padding + barWidth * seriesIndex;
284
+ }
285
+ getYPos(value, ratio, lineWidth) {
286
+ return isNumber(lineWidth)
287
+ ? crispPixel(this.rect.height - value * ratio, lineWidth)
288
+ : this.rect.height - value * ratio;
289
+ }
290
+ getBarWidths(tickDistance, seriesLength) {
291
+ const { barWidth: barThemeWidth, barWidthRatios } = this.theme;
292
+ const { barRatio, minMaxBarRatio } = barWidthRatios;
293
+ const defaultBarWidth = Math.max((tickDistance - getBoxTypeSeriesPadding(tickDistance) * (2 + (seriesLength - 1))) /
294
+ seriesLength, MIN_BAR_WIDTH);
295
+ const barWidth = barThemeWidth
296
+ ? calculateSizeWithPercentString(tickDistance / seriesLength, barThemeWidth)
297
+ : defaultBarWidth;
298
+ return {
299
+ barWidth: barWidth * barRatio,
300
+ minMaxBarWidth: barWidth * minMaxBarRatio,
301
+ };
302
+ }
303
+ getRespondersWithTheme(responders, type) {
304
+ const { color, rect, dot, line, shadowColor, shadowOffsetX, shadowOffsetY, shadowBlur, } = this.theme[type];
305
+ const { whisker, median, maximum, minimum } = line;
306
+ const { color: dotColor, radius, borderColor, borderWidth, useSeriesColor, } = dot;
307
+ return responders.map((m) => {
308
+ const { type: modelType, data } = m;
309
+ let seriesColor = m.color;
310
+ let model;
311
+ if (modelType === 'circle') {
312
+ seriesColor = data.color;
313
+ model = Object.assign(Object.assign({}, m), { radius, color: useSeriesColor ? seriesColor : dotColor, style: [
314
+ { strokeStyle: getDefaultColor(seriesColor, borderColor), lineWidth: borderWidth },
315
+ ] });
316
+ }
317
+ else {
318
+ const { rect: seriesRect, upperWhisker, lowerWhisker, median: seriesMedian, maximum: seriesMaximum, minimum: seriesMinimum, } = m;
319
+ model = Object.assign(Object.assign({}, m), { rect: Object.assign(Object.assign({}, seriesRect), { color: (color !== null && color !== void 0 ? color : getRGBA(seriesColor, 1)), thickness: rect.borderWidth, borderColor: rect.borderColor, style: [{ shadowColor, shadowOffsetX, shadowOffsetY, shadowBlur }] }), upperWhisker: Object.assign(Object.assign({}, upperWhisker), { strokeStyle: getDefaultColor(seriesColor, whisker.color), lineWidth: whisker.lineWidth }), lowerWhisker: Object.assign(Object.assign({}, lowerWhisker), { strokeStyle: getDefaultColor(seriesColor, whisker.color), lineWidth: whisker.lineWidth }), median: Object.assign(Object.assign({}, seriesMedian), { strokeStyle: getDefaultColor(seriesColor, median.color), lineWidth: median.lineWidth }), maximum: Object.assign(Object.assign({}, seriesMaximum), { strokeStyle: getDefaultColor(seriesColor, maximum.color), lineWidth: maximum.lineWidth }), minimum: Object.assign(Object.assign({}, seriesMinimum), { strokeStyle: getDefaultColor(seriesColor, minimum.color), lineWidth: minimum.lineWidth }) });
320
+ }
321
+ return model;
322
+ });
323
+ }
324
+ getRect(datum, startX, seriesColor, { barWidth, ratio }) {
325
+ const { rect } = this.theme;
326
+ const [, lowerQuartile, , highQuartile] = datum;
327
+ return {
328
+ type: 'rect',
329
+ x: startX,
330
+ y: this.getYPos(highQuartile, ratio),
331
+ width: barWidth,
332
+ height: (highQuartile - lowerQuartile) * ratio,
333
+ thickness: rect.borderWidth,
334
+ borderColor: rect.borderColor,
335
+ color: seriesColor,
336
+ };
337
+ }
338
+ getWhisker(datum, startX, seriesColor, { barWidth, ratio }, rect) {
339
+ const [minimum, , , , maximum] = datum;
340
+ const { lineWidth, color } = this.theme.line.whisker;
341
+ const x = crispPixel(startX + barWidth / 2, lineWidth);
342
+ return {
343
+ upperWhisker: {
344
+ type: 'line',
345
+ x,
346
+ y: this.getYPos(maximum, ratio, lineWidth),
347
+ x2: x,
348
+ y2: rect.y,
349
+ strokeStyle: (color !== null && color !== void 0 ? color : seriesColor),
350
+ lineWidth,
351
+ },
352
+ lowerWhisker: {
353
+ type: 'line',
354
+ x,
355
+ y: this.getYPos(minimum, ratio, lineWidth),
356
+ x2: x,
357
+ y2: crispPixel(rect.y + rect.height, lineWidth),
358
+ strokeStyle: (color !== null && color !== void 0 ? color : seriesColor),
359
+ lineWidth,
360
+ },
361
+ };
362
+ }
363
+ getMedian(datum, startX, seriesColor, { barWidth, ratio }) {
364
+ const median = datum[2];
365
+ const { lineWidth, color } = this.theme.line.median;
366
+ return {
367
+ type: 'line',
368
+ x: crispPixel(startX, lineWidth),
369
+ y: this.getYPos(median, ratio, lineWidth),
370
+ x2: crispPixel(startX + barWidth, lineWidth),
371
+ y2: this.getYPos(median, ratio, lineWidth),
372
+ strokeStyle: (color !== null && color !== void 0 ? color : seriesColor),
373
+ lineWidth: lineWidth,
374
+ };
375
+ }
376
+ getMinimum(datum, startX, seriesColor, { barWidth, ratio, minMaxBarWidth }) {
377
+ const minimum = datum[0];
378
+ const { lineWidth, color } = this.theme.line.minimum;
379
+ return {
380
+ type: 'line',
381
+ x: crispPixel(startX + (barWidth - minMaxBarWidth) / 2, lineWidth),
382
+ y: this.getYPos(minimum, ratio, lineWidth),
383
+ x2: crispPixel(startX + (barWidth - minMaxBarWidth) / 2 + minMaxBarWidth, lineWidth),
384
+ y2: this.getYPos(minimum, ratio, lineWidth),
385
+ strokeStyle: (color !== null && color !== void 0 ? color : seriesColor),
386
+ lineWidth: lineWidth,
387
+ };
388
+ }
389
+ getMaximum(datum, startX, seriesColor, { barWidth, ratio, minMaxBarWidth }) {
390
+ const maximum = datum[4];
391
+ const { lineWidth, color } = this.theme.line.maximum;
392
+ return {
393
+ type: 'line',
394
+ x: crispPixel(startX + (barWidth - minMaxBarWidth) / 2, lineWidth),
395
+ y: this.getYPos(maximum, ratio, lineWidth),
396
+ x2: crispPixel(startX + (barWidth - minMaxBarWidth) / 2 + minMaxBarWidth, lineWidth),
397
+ y2: this.getYPos(maximum, ratio, lineWidth),
398
+ strokeStyle: (color !== null && color !== void 0 ? color : seriesColor),
399
+ lineWidth: lineWidth,
400
+ };
401
+ }
402
+ getSeriesColor(seriesName, seriesColor) {
403
+ const { select, areaOpacity } = this.theme;
404
+ const active = this.activeSeriesMap[seriesName];
405
+ const selected = Object.values(this.activeSeriesMap).some((elem) => !elem);
406
+ const selectedOpacity = active ? select.areaOpacity : select.restSeries.areaOpacity;
407
+ const opacity = selected ? selectedOpacity : areaOpacity;
408
+ return getRGBA(seriesColor, opacity);
409
+ }
410
+ }
@@ -0,0 +1,211 @@
1
+ import Component from "./component";
2
+ import { RectModel, ClipRectAreaModel, BoxSeriesModels, StackTotalModel, RectResponderModel, MouseEventType } from "../../types/components/series";
3
+ import { ChartState, BoxType, ValueAxisData, CenterYAxisData, Series, Axes, Scale } from "../../types/store/store";
4
+ import { BoxSeriesType, BoxSeriesDataType, BarChartOptions, ColumnChartOptions, Rect, RangeDataType, BoxTypeEventDetectType, ColumnLineChartOptions, ColumnLineChartSeriesOptions, BoxSeriesOptions } from "../../types/options";
5
+ import { TooltipData } from "../../types/components/tooltip";
6
+ import { RespondersThemeType } from "../helpers/responders";
7
+ import { RectDirection, RectDataLabel } from "../../types/components/dataLabels";
8
+ import { BoxChartSeriesTheme } from "../../types/theme";
9
+ import { SelectSeriesHandlerParams } from "../charts/chart";
10
+ import { SelectSeriesInfo } from "../../types/charts";
11
+ export declare enum SeriesDirection {
12
+ POSITIVE = 0,
13
+ NEGATIVE = 1,
14
+ BOTH = 2
15
+ }
16
+ declare type RenderOptions = {
17
+ tickDistance: number;
18
+ min: number;
19
+ max: number;
20
+ diverging: boolean;
21
+ ratio?: number;
22
+ hasNegativeValue: boolean;
23
+ seriesDirection: SeriesDirection;
24
+ defaultPadding: number;
25
+ };
26
+ export declare function isLeftBottomSide(seriesIndex: number): boolean;
27
+ export default class BoxSeries extends Component {
28
+ models: BoxSeriesModels;
29
+ drawModels: BoxSeriesModels;
30
+ responders: RectResponderModel[];
31
+ activatedResponders: RectResponderModel[];
32
+ isBar: boolean;
33
+ valueAxis: string;
34
+ labelAxis: string;
35
+ anchorSizeKey: string;
36
+ offsetSizeKey: string;
37
+ basePosition: number;
38
+ leftBasePosition: number;
39
+ rightBasePosition: number;
40
+ isRangeData: boolean;
41
+ offsetKey: string;
42
+ eventDetectType: BoxTypeEventDetectType;
43
+ tooltipRectMap: RectResponderModel[][];
44
+ theme: Required<BoxChartSeriesTheme>;
45
+ initialize({ name, stackChart }: {
46
+ name: BoxType;
47
+ stackChart: boolean;
48
+ }): void;
49
+ initializeFields(name: BoxType): void;
50
+ initUpdate(delta: number): void;
51
+ initUpdateRangeData(delta: number): void;
52
+ initUpdateClipRect(delta: number): void;
53
+ initUpdateConnector(delta: number): void;
54
+ protected setEventDetectType(series: Series, options?: BarChartOptions | ColumnChartOptions): void;
55
+ protected getOptions(chartOptions: BarChartOptions | ColumnChartOptions | ColumnLineChartOptions): {
56
+ series?: BoxSeriesOptions | undefined;
57
+ yAxis?: import("../../types/options").BarTypeYAxisOption | import("../../types/options").BarTypeYAxisOption[] | undefined;
58
+ plot?: import("../../types/options").PlotOptions | undefined;
59
+ legend?: import("../../types/options").NormalLegendOptions | undefined;
60
+ theme?: import("../../types/theme").BoxChartThemeOptions | undefined;
61
+ chart?: import("../../types/options").BaseChartOptions | undefined;
62
+ lang?: import("../../types/options").LangOptions | undefined;
63
+ xAxis?: import("../../types/options").BaseXAxisOptions | undefined;
64
+ exportMenu?: import("../../types/options").ExportMenuOptions | undefined;
65
+ tooltip?: import("../../types/options").BaseTooltipOptions | undefined;
66
+ responsive?: import("../../types/options").ResponsiveOptions | undefined;
67
+ usageStatistics?: boolean | undefined;
68
+ } | {
69
+ series?: import("../../types/options").ColumnChartBoxSeriesOptions | undefined;
70
+ yAxis?: import("../../types/options").YAxisOptions | import("../../types/options").YAxisOptions[] | undefined;
71
+ plot?: import("../../types/options").PlotOptions | undefined;
72
+ legend?: import("../../types/options").NormalLegendOptions | undefined;
73
+ theme?: import("../../types/theme").BoxChartThemeOptions | undefined;
74
+ chart?: import("../../types/options").BaseChartOptions | undefined;
75
+ lang?: import("../../types/options").LangOptions | undefined;
76
+ xAxis?: import("../../types/options").BaseXAxisOptions | undefined;
77
+ exportMenu?: import("../../types/options").ExportMenuOptions | undefined;
78
+ tooltip?: import("../../types/options").BaseTooltipOptions | undefined;
79
+ responsive?: import("../../types/options").ResponsiveOptions | undefined;
80
+ usageStatistics?: boolean | undefined;
81
+ } | {
82
+ series?: ColumnLineChartSeriesOptions | undefined;
83
+ plot?: import("../../types/options").LineTypePlotOptions | undefined;
84
+ yAxis?: import("../../types/options").YAxisOptions | import("../../types/options").YAxisOptions[] | undefined;
85
+ legend?: import("../../types/options").NormalLegendOptions | undefined;
86
+ theme?: import("../../types/theme").ColumnLineChartThemeOptions | undefined;
87
+ chart?: import("../../types/options").BaseChartOptions | undefined;
88
+ lang?: import("../../types/options").LangOptions | undefined;
89
+ xAxis?: import("../../types/options").BaseXAxisOptions | undefined;
90
+ exportMenu?: import("../../types/options").ExportMenuOptions | undefined;
91
+ tooltip?: import("../../types/options").BaseTooltipOptions | undefined;
92
+ responsive?: import("../../types/options").ResponsiveOptions | undefined;
93
+ usageStatistics?: boolean | undefined;
94
+ };
95
+ render<T extends BarChartOptions | ColumnChartOptions | ColumnLineChartOptions>(chartState: ChartState<T>, computed: any): void;
96
+ protected getScaleData(scale: Scale): any;
97
+ protected getBoxSeriesResponders(seriesModels: RectModel[], tooltipData: TooltipData[], axes: Axes, categories: string[]): RectResponderModel[] | {
98
+ data: TooltipData;
99
+ type: "rect";
100
+ color: string;
101
+ borderColor?: string | undefined;
102
+ style?: import("../../types/components/series").StyleProp<import("../../types/components/series").RectStyle, "shadow"> | undefined;
103
+ thickness?: number | undefined;
104
+ value?: number | RangeDataType<number> | null | undefined;
105
+ name?: string | undefined;
106
+ index?: number | undefined;
107
+ x: number;
108
+ y: number;
109
+ width: number;
110
+ height: number;
111
+ }[];
112
+ protected makeTooltipRectMap(seriesModels: RectModel[], tooltipDataArr: TooltipData[]): RectResponderModel[][];
113
+ protected renderClipRectAreaModel(): ClipRectAreaModel;
114
+ protected initClipRect(clipRect: ClipRectAreaModel): ClipRectAreaModel;
115
+ renderSeriesModel(seriesData: BoxSeriesType<number | (RangeDataType<number> & number)>[], renderOptions: RenderOptions): RectModel[];
116
+ protected renderHoveredSeriesModel(seriesModel: RectModel[]): RectModel[];
117
+ makeHoveredSeriesModel(data: RectModel): RectModel;
118
+ getRectModelsFromRectResponders(responders: RectResponderModel[]): RectResponderModel[];
119
+ protected getGroupedRect(responders: RectResponderModel[], type: 'hover' | 'select'): {
120
+ color: string;
121
+ type: "rect";
122
+ borderColor?: string | undefined;
123
+ style?: import("../../types/components/series").StyleProp<import("../../types/components/series").RectStyle, "shadow"> | undefined;
124
+ thickness?: number | undefined;
125
+ value?: number | RangeDataType<number> | null | undefined;
126
+ name?: string | undefined;
127
+ index?: number | undefined;
128
+ x: number;
129
+ y: number;
130
+ width: number;
131
+ height: number;
132
+ data?: ({
133
+ name?: string | undefined;
134
+ } & Partial<TooltipData>) | undefined;
135
+ label?: string | undefined;
136
+ viewLabel?: string | undefined;
137
+ checked?: boolean | undefined;
138
+ active?: boolean | undefined;
139
+ chartType?: "line" | "bar" | "column" | "area" | "bubble" | "radar" | "pie" | "boxPlot" | "bullet" | "scatter" | "heatmap" | "radialBar" | "gauge" | "treemap" | undefined;
140
+ iconType?: "line" | "rect" | "spectrum" | "circle" | "triangle" | "pentagon" | "star" | "diamond" | "cross" | "hexagon" | undefined;
141
+ useScatterChartIcon?: boolean | undefined;
142
+ rowIndex?: number | undefined;
143
+ columnIndex?: number | undefined;
144
+ colorIndex?: number | undefined;
145
+ colorByCategories?: boolean | undefined;
146
+ }[];
147
+ onMousemoveGroupedType(responders: RectResponderModel[]): void;
148
+ onMousemove({ responders }: {
149
+ responders: RectModel[];
150
+ }): void;
151
+ private makeTooltipData;
152
+ private getTooltipValue;
153
+ protected getBasePosition({ labels, tickCount, zeroPosition }: ValueAxisData): number;
154
+ getDivergingBasePosition(centerYAxis: CenterYAxisData): number[];
155
+ protected getOffsetSize(): number;
156
+ getValueRatio(min: number, max: number, size: number): number;
157
+ makeBarLength(value: BoxSeriesDataType, renderOptions: Pick<RenderOptions, 'min' | 'max' | 'ratio'>): number | null;
158
+ protected getBarLength(value: number, ratio: number): number;
159
+ getStartPositionWithRangeValue(value: RangeDataType<number>, barLength: number, renderOptions: RenderOptions): number;
160
+ getStartPosition(barLength: number, value: Exclude<BoxSeriesDataType, null>, renderOptions: RenderOptions, isLBSideWithDiverging: boolean): number;
161
+ private getStartPosOnRightTopSide;
162
+ private getStartPosOnLeftBottomSide;
163
+ protected getAdjustedRect(seriesPosition: number, dataPosition: number, barLength: number, columnWidth: number): Rect;
164
+ getColumnWidth(renderOptions: RenderOptions, seriesLength: number, validDiverging?: boolean): number;
165
+ protected getSeriesDirection(labels: string[]): SeriesDirection;
166
+ protected getTickPositionIfNotZero(tickPositions: number[], direction: SeriesDirection): number;
167
+ makeDataLabel(rect: RectModel, centerYAxis?: CenterYAxisData): RectDataLabel;
168
+ makeDataLabelRangeData(rect: RectModel): RectDataLabel[];
169
+ getDataLabelRangeDataDirection(isEven: boolean): import("../../types/components/axis").ArrowDirection;
170
+ getDataLabelDirection(rect: RectModel | StackTotalModel, centerYAxis?: CenterYAxisData): RectDirection;
171
+ getOffsetSizeWithDiverging(centerYAxis: CenterYAxisData): number;
172
+ onClick({ responders }: MouseEventType): void;
173
+ onMouseoutComponent: () => void;
174
+ getRespondersWithTheme(responders: RectResponderModel[], type: RespondersThemeType): {
175
+ color: string | undefined;
176
+ thickness: number | undefined;
177
+ borderColor: string | undefined;
178
+ style: {
179
+ shadowBlur: number | undefined;
180
+ shadowColor: string | undefined;
181
+ shadowOffsetX: number | undefined;
182
+ shadowOffsetY: number | undefined;
183
+ }[];
184
+ type: "rect";
185
+ value?: number | RangeDataType<number> | null | undefined;
186
+ name?: string | undefined;
187
+ index?: number | undefined;
188
+ x: number;
189
+ y: number;
190
+ width: number;
191
+ height: number;
192
+ data?: ({
193
+ name?: string | undefined;
194
+ } & Partial<TooltipData>) | undefined;
195
+ label?: string | undefined;
196
+ viewLabel?: string | undefined;
197
+ checked?: boolean | undefined;
198
+ active?: boolean | undefined;
199
+ chartType?: "line" | "bar" | "column" | "area" | "bubble" | "radar" | "pie" | "boxPlot" | "bullet" | "scatter" | "heatmap" | "radialBar" | "gauge" | "treemap" | undefined;
200
+ iconType?: "line" | "rect" | "spectrum" | "circle" | "triangle" | "pentagon" | "star" | "diamond" | "cross" | "hexagon" | undefined;
201
+ useScatterChartIcon?: boolean | undefined;
202
+ rowIndex?: number | undefined;
203
+ columnIndex?: number | undefined;
204
+ colorIndex?: number | undefined;
205
+ colorByCategories?: boolean | undefined;
206
+ }[];
207
+ getSeriesColor(name: string, color: string): string;
208
+ selectSeries: (info: SelectSeriesHandlerParams<BarChartOptions | ColumnChartOptions>) => void;
209
+ showTooltip: (info: SelectSeriesInfo) => void;
210
+ }
211
+ export {};