mdt-charts 1.28.2 → 1.29.0

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 (255) hide show
  1. package/lib/config/config.d.ts +164 -165
  2. package/lib/designer/designerConfig.d.ts +62 -59
  3. package/lib/engine/block/block.d.ts +22 -16
  4. package/lib/engine/block/block.js +51 -51
  5. package/lib/engine/block/blockHelper.d.ts +6 -6
  6. package/lib/engine/block/blockHelper.js +16 -16
  7. package/lib/engine/block/blockHtml.d.ts +8 -8
  8. package/lib/engine/block/blockHtml.js +15 -15
  9. package/lib/engine/block/blockSvg.d.ts +20 -20
  10. package/lib/engine/block/blockSvg.js +65 -66
  11. package/lib/engine/block/defs/LinearGradientDef.d.ts +2 -2
  12. package/lib/engine/block/defs/LinearGradientDef.js +27 -27
  13. package/lib/engine/block/defs/hatchPattern.d.ts +4 -4
  14. package/lib/engine/block/defs/hatchPattern.js +9 -9
  15. package/lib/engine/colorReader/colorReader.d.ts +5 -5
  16. package/lib/engine/colorReader/colorReader.js +18 -18
  17. package/lib/engine/contentManager/contentManager.d.ts +6 -6
  18. package/lib/engine/contentManager/contentManager.js +15 -15
  19. package/lib/engine/contentManager/contentManagerFactory.d.ts +6 -6
  20. package/lib/engine/contentManager/contentManagerFactory.js +12 -12
  21. package/lib/engine/elementHighlighter/elementHighlighter.d.ts +70 -22
  22. package/lib/engine/elementHighlighter/elementHighlighter.js +230 -181
  23. package/lib/engine/elementHighlighter/selectHighlighter.d.ts +29 -4
  24. package/lib/engine/elementHighlighter/selectHighlighter.js +189 -87
  25. package/lib/engine/engine.d.ts +16 -16
  26. package/lib/engine/engine.js +87 -62
  27. package/lib/engine/features/aggregator/aggregator.d.ts +24 -17
  28. package/lib/engine/features/aggregator/aggregator.js +113 -102
  29. package/lib/engine/features/axis/axis.d.ts +22 -9
  30. package/lib/engine/features/axis/axis.js +159 -150
  31. package/lib/engine/features/axis/axisDomHelper.d.ts +7 -2
  32. package/lib/engine/features/axis/axisDomHelper.js +19 -20
  33. package/lib/engine/features/axis/axisHelper.d.ts +9 -5
  34. package/lib/engine/features/axis/axisHelper.js +28 -33
  35. package/lib/engine/features/axis/axisLabelDomHelper.d.ts +26 -11
  36. package/lib/engine/features/axis/axisLabelDomHelper.js +156 -152
  37. package/lib/engine/features/axis/axisLabelsEventManager.d.ts +2 -2
  38. package/lib/engine/features/axis/axisLabelsEventManager.js +32 -32
  39. package/lib/engine/features/embeddedLabels/embeddedLabels.d.ts +51 -16
  40. package/lib/engine/features/embeddedLabels/embeddedLabels.js +234 -134
  41. package/lib/engine/features/embeddedLabels/embeddedLabelsDomHelper.d.ts +13 -2
  42. package/lib/engine/features/embeddedLabels/embeddedLabelsDomHelper.js +20 -23
  43. package/lib/engine/features/embeddedLabels/embeddedLabelsHelper.d.ts +32 -15
  44. package/lib/engine/features/embeddedLabels/embeddedLabelsHelper.js +56 -63
  45. package/lib/engine/features/gridLine/gidLineHelper.d.ts +13 -7
  46. package/lib/engine/features/gridLine/gidLineHelper.js +42 -49
  47. package/lib/engine/features/gridLine/gridLine.d.ts +19 -5
  48. package/lib/engine/features/gridLine/gridLine.js +35 -36
  49. package/lib/engine/features/legend/legend.d.ts +38 -29
  50. package/lib/engine/features/legend/legend.js +117 -92
  51. package/lib/engine/features/legend/legendDomHelper.d.ts +13 -6
  52. package/lib/engine/features/legend/legendDomHelper.js +63 -62
  53. package/lib/engine/features/legend/legendEventsManager.d.ts +13 -8
  54. package/lib/engine/features/legend/legendEventsManager.js +48 -47
  55. package/lib/engine/features/legend/legendHelper.d.ts +39 -14
  56. package/lib/engine/features/legend/legendHelper.js +98 -93
  57. package/lib/engine/features/legend/legendHelperService.d.ts +13 -6
  58. package/lib/engine/features/legend/legendHelperService.js +24 -25
  59. package/lib/engine/features/legend/legendMarkerCreator.d.ts +18 -9
  60. package/lib/engine/features/legend/legendMarkerCreator.js +79 -76
  61. package/lib/engine/features/legend/legendWidthCalculator.d.ts +7 -7
  62. package/lib/engine/features/legend/legendWidthCalculator.js +126 -122
  63. package/lib/engine/features/markDots/markDot.d.ts +42 -15
  64. package/lib/engine/features/markDots/markDot.js +101 -70
  65. package/lib/engine/features/markDots/markDotsHelper.d.ts +8 -1
  66. package/lib/engine/features/markDots/markDotsHelper.js +13 -12
  67. package/lib/engine/features/recordOverflowAlert/recordOverflowAlertCore.d.ts +17 -17
  68. package/lib/engine/features/recordOverflowAlert/recordOverflowAlertCore.js +42 -47
  69. package/lib/engine/features/scale/scale.d.ts +17 -12
  70. package/lib/engine/features/scale/scale.js +76 -69
  71. package/lib/engine/features/tipBox/tipBox.d.ts +9 -5
  72. package/lib/engine/features/tipBox/tipBox.js +24 -24
  73. package/lib/engine/features/tipBox/tipBoxHelper.d.ts +16 -9
  74. package/lib/engine/features/tipBox/tipBoxHelper.js +60 -45
  75. package/lib/engine/features/title/title.d.ts +6 -6
  76. package/lib/engine/features/title/title.js +34 -35
  77. package/lib/engine/features/tolltip/newTooltip/newTooltip.d.ts +15 -11
  78. package/lib/engine/features/tolltip/newTooltip/newTooltip.js +21 -21
  79. package/lib/engine/features/tolltip/newTooltip/newTooltipService.d.ts +13 -8
  80. package/lib/engine/features/tolltip/newTooltip/newTooltipService.js +26 -23
  81. package/lib/engine/features/tolltip/tooltip.d.ts +17 -11
  82. package/lib/engine/features/tolltip/tooltip.js +296 -142
  83. package/lib/engine/features/tolltip/tooltipComponentsManager.d.ts +21 -10
  84. package/lib/engine/features/tolltip/tooltipComponentsManager.js +113 -114
  85. package/lib/engine/features/tolltip/tooltipDomHelper.d.ts +43 -21
  86. package/lib/engine/features/tolltip/tooltipDomHelper.js +144 -120
  87. package/lib/engine/features/tolltip/tooltipHelper.d.ts +39 -9
  88. package/lib/engine/features/tolltip/tooltipHelper.js +114 -91
  89. package/lib/engine/features/valueLabels/valueLabels.d.ts +58 -38
  90. package/lib/engine/features/valueLabels/valueLabels.js +205 -169
  91. package/lib/engine/features/valueLabels/valueLabelsHelper.d.ts +7 -1
  92. package/lib/engine/features/valueLabels/valueLabelsHelper.js +23 -18
  93. package/lib/engine/features/valueLabelsCollision/valueLabelsCollision.d.ts +18 -15
  94. package/lib/engine/features/valueLabelsCollision/valueLabelsCollision.js +46 -47
  95. package/lib/engine/features/valueLabelsCollision/valueLabelsCollisionHelper.d.ts +6 -3
  96. package/lib/engine/features/valueLabelsCollision/valueLabelsCollisionHelper.js +49 -45
  97. package/lib/engine/filterManager/filterEventManager.d.ts +37 -26
  98. package/lib/engine/filterManager/filterEventManager.js +174 -129
  99. package/lib/engine/helpers/domHelper.d.ts +45 -20
  100. package/lib/engine/helpers/domHelper.js +62 -61
  101. package/lib/engine/helpers/fontResizer/fontResizer.d.ts +10 -10
  102. package/lib/engine/helpers/fontResizer/fontResizer.js +21 -16
  103. package/lib/engine/helpers/fontResizer/fontResizerService.d.ts +1 -1
  104. package/lib/engine/helpers/fontResizer/fontResizerService.js +9 -10
  105. package/lib/engine/helpers/helper.d.ts +27 -27
  106. package/lib/engine/helpers/helper.js +91 -92
  107. package/lib/engine/helpers/namesHelper.d.ts +3 -3
  108. package/lib/engine/helpers/namesHelper.js +6 -6
  109. package/lib/engine/helpers/pipeline/Pipeline.d.ts +5 -5
  110. package/lib/engine/helpers/pipeline/Pipeline.js +33 -33
  111. package/lib/engine/polarNotation/donut/DonutHelper.d.ts +25 -11
  112. package/lib/engine/polarNotation/donut/DonutHelper.js +71 -70
  113. package/lib/engine/polarNotation/donut/donut.d.ts +38 -23
  114. package/lib/engine/polarNotation/donut/donut.js +109 -99
  115. package/lib/engine/polarNotation/extenders/polarRecordOverflowAlert.d.ts +7 -7
  116. package/lib/engine/polarNotation/extenders/polarRecordOverflowAlert.js +36 -36
  117. package/lib/engine/polarNotation/polarManager.d.ts +5 -5
  118. package/lib/engine/polarNotation/polarManager.js +66 -52
  119. package/lib/engine/transitionManager.d.ts +13 -14
  120. package/lib/engine/transitionManager.js +48 -49
  121. package/lib/engine/twoDimensionalNotation/area/area.d.ts +44 -28
  122. package/lib/engine/twoDimensionalNotation/area/area.js +272 -238
  123. package/lib/engine/twoDimensionalNotation/area/areaGenerator.d.ts +13 -5
  124. package/lib/engine/twoDimensionalNotation/area/areaGenerator.js +13 -13
  125. package/lib/engine/twoDimensionalNotation/area/areaHelper.d.ts +4 -4
  126. package/lib/engine/twoDimensionalNotation/area/areaHelper.js +57 -41
  127. package/lib/engine/twoDimensionalNotation/bar/bar.d.ts +54 -29
  128. package/lib/engine/twoDimensionalNotation/bar/bar.js +362 -224
  129. package/lib/engine/twoDimensionalNotation/bar/barHelper.d.ts +71 -32
  130. package/lib/engine/twoDimensionalNotation/bar/barHelper.js +162 -126
  131. package/lib/engine/twoDimensionalNotation/bar/stackedData/dataStacker.d.ts +6 -6
  132. package/lib/engine/twoDimensionalNotation/bar/stackedData/dataStacker.js +24 -24
  133. package/lib/engine/twoDimensionalNotation/bar/stackedData/dataStackerService.d.ts +2 -2
  134. package/lib/engine/twoDimensionalNotation/bar/stackedData/dataStackerService.js +16 -17
  135. package/lib/engine/twoDimensionalNotation/dot/dotChart.d.ts +23 -23
  136. package/lib/engine/twoDimensionalNotation/dot/dotChart.js +135 -114
  137. package/lib/engine/twoDimensionalNotation/extenders/twoDimRecordOverflowAlert.d.ts +7 -7
  138. package/lib/engine/twoDimensionalNotation/extenders/twoDimRecordOverflowAlert.js +28 -28
  139. package/lib/engine/twoDimensionalNotation/line/line.d.ts +37 -16
  140. package/lib/engine/twoDimensionalNotation/line/line.js +162 -132
  141. package/lib/engine/twoDimensionalNotation/line/lineBuilder.d.ts +14 -11
  142. package/lib/engine/twoDimensionalNotation/line/lineBuilder.js +47 -48
  143. package/lib/engine/twoDimensionalNotation/line/lineGenerator.d.ts +4 -4
  144. package/lib/engine/twoDimensionalNotation/line/lineGenerator.js +8 -8
  145. package/lib/engine/twoDimensionalNotation/line/lineHelper.d.ts +12 -6
  146. package/lib/engine/twoDimensionalNotation/line/lineHelper.js +76 -60
  147. package/lib/engine/twoDimensionalNotation/lineLike/generatorFactory/lineLikeGeneratorFactory.d.ts +6 -6
  148. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorCurveMiddleware.d.ts +5 -5
  149. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorCurveMiddleware.js +16 -17
  150. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorDefineMiddleware.d.ts +11 -10
  151. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorDefineMiddleware.js +9 -7
  152. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorMiddleware.d.ts +3 -1
  153. package/lib/engine/twoDimensionalNotation/twoDimensionalManager.d.ts +9 -9
  154. package/lib/engine/twoDimensionalNotation/twoDimensionalManager.js +252 -143
  155. package/lib/engine/valueFormatter.d.ts +3 -3
  156. package/lib/engine/valueFormatter.js +6 -6
  157. package/lib/main.d.ts +82 -75
  158. package/lib/main.js +79 -84
  159. package/lib/model/EventEmitter.d.ts +8 -8
  160. package/lib/model/EventEmitter.js +24 -24
  161. package/lib/model/chartStyleModel/chartStyleModel.d.ts +5 -5
  162. package/lib/model/chartStyleModel/chartStyleModel.js +27 -25
  163. package/lib/model/chartStyleModel/colorRange.d.ts +3 -3
  164. package/lib/model/chartStyleModel/colorRange.js +19 -24
  165. package/lib/model/chartStyleModel/twoDimensionalChartStyleModel.d.ts +22 -12
  166. package/lib/model/chartStyleModel/twoDimensionalChartStyleModel.js +69 -60
  167. package/lib/model/configsValidator/configValidator.d.ts +1 -1
  168. package/lib/model/configsValidator/configValidator.js +4 -4
  169. package/lib/model/dataManagerModel/dataManagerModel.d.ts +36 -26
  170. package/lib/model/dataManagerModel/dataManagerModel.js +179 -128
  171. package/lib/model/dataManagerModel/dataManagerModelService.d.ts +2 -2
  172. package/lib/model/dataManagerModel/dataManagerModelService.js +25 -26
  173. package/lib/model/featuresModel/axisModel.d.ts +69 -18
  174. package/lib/model/featuresModel/axisModel.js +224 -169
  175. package/lib/model/featuresModel/axisModelService.d.ts +10 -6
  176. package/lib/model/featuresModel/axisModelService.js +27 -27
  177. package/lib/model/featuresModel/legendModel/legendCanvasModel.d.ts +16 -11
  178. package/lib/model/featuresModel/legendModel/legendCanvasModel.js +55 -59
  179. package/lib/model/featuresModel/legendModel/legendModel.d.ts +7 -3
  180. package/lib/model/featuresModel/legendModel/legendModel.js +59 -41
  181. package/lib/model/featuresModel/legendModel/polarMarginCalculator.d.ts +8 -3
  182. package/lib/model/featuresModel/legendModel/polarMarginCalculator.js +18 -20
  183. package/lib/model/featuresModel/legendModel/twoDimLegendModel.d.ts +8 -4
  184. package/lib/model/featuresModel/legendModel/twoDimLegendModel.js +40 -27
  185. package/lib/model/featuresModel/otherComponents.d.ts +7 -4
  186. package/lib/model/featuresModel/otherComponents.js +9 -9
  187. package/lib/model/featuresModel/scaleModel/scaleAxisRecalcer.d.ts +6 -6
  188. package/lib/model/featuresModel/scaleModel/scaleAxisRecalcer.js +27 -23
  189. package/lib/model/featuresModel/scaleModel/scaleDomainService.d.ts +19 -5
  190. package/lib/model/featuresModel/scaleModel/scaleDomainService.js +44 -55
  191. package/lib/model/featuresModel/scaleModel/scaleModel.d.ts +10 -10
  192. package/lib/model/featuresModel/scaleModel/scaleModel.js +61 -50
  193. package/lib/model/featuresModel/scaleModel/scaleModelServices.js +15 -22
  194. package/lib/model/featuresModel/titleModel.d.ts +1 -1
  195. package/lib/model/featuresModel/titleModel.js +14 -14
  196. package/lib/model/featuresModel/tooltipModel.d.ts +1 -1
  197. package/lib/model/featuresModel/tooltipModel.js +5 -5
  198. package/lib/model/featuresModel/valueLabelsModel/valueLabelsModel.d.ts +23 -11
  199. package/lib/model/featuresModel/valueLabelsModel/valueLabelsModel.js +53 -51
  200. package/lib/model/helpers/modelHelper.d.ts +7 -7
  201. package/lib/model/helpers/modelHelper.js +38 -42
  202. package/lib/model/helpers/twoDimensionalModelHelper.d.ts +37 -9
  203. package/lib/model/helpers/twoDimensionalModelHelper.js +147 -125
  204. package/lib/model/helpers/unitsFromConfigReader.js +4 -4
  205. package/lib/model/helpers/unitsReader.d.ts +2 -2
  206. package/lib/model/helpers/unitsReader.js +11 -13
  207. package/lib/model/margin/marginModel.d.ts +7 -7
  208. package/lib/model/margin/marginModel.js +23 -20
  209. package/lib/model/margin/twoDim/twoDimMarginModel.d.ts +13 -13
  210. package/lib/model/margin/twoDim/twoDimMarginModel.js +184 -113
  211. package/lib/model/model.d.ts +308 -280
  212. package/lib/model/model.js +4 -4
  213. package/lib/model/modelBuilder.d.ts +27 -18
  214. package/lib/model/modelBuilder.js +85 -79
  215. package/lib/model/modelInstance/canvasModel/canvasModel.d.ts +17 -17
  216. package/lib/model/modelInstance/canvasModel/canvasModel.js +42 -43
  217. package/lib/model/modelInstance/canvasModel/canvasSizesModel/canvasMarginModel.d.ts +7 -7
  218. package/lib/model/modelInstance/canvasModel/canvasSizesModel/canvasSizeModel.d.ts +2 -2
  219. package/lib/model/modelInstance/canvasModel/canvasSizesModel/marginModelService.d.ts +6 -6
  220. package/lib/model/modelInstance/canvasModel/canvasSizesModel/marginModelService.js +24 -24
  221. package/lib/model/modelInstance/canvasModel/legendCanvasModel.d.ts +4 -4
  222. package/lib/model/modelInstance/canvasModel/legendCanvasModel.js +11 -11
  223. package/lib/model/modelInstance/canvasModel/titleCanvas.d.ts +4 -4
  224. package/lib/model/modelInstance/canvasModel/titleCanvas.js +9 -9
  225. package/lib/model/modelInstance/chartBlockVersion/chartBlockVersion.d.ts +3 -3
  226. package/lib/model/modelInstance/chartBlockVersion/chartBlockVersion.js +6 -6
  227. package/lib/model/modelInstance/configReader.d.ts +32 -23
  228. package/lib/model/modelInstance/configReader.js +125 -94
  229. package/lib/model/modelInstance/dataModel/dataModel.d.ts +9 -9
  230. package/lib/model/modelInstance/dataModel/dataModel.js +24 -24
  231. package/lib/model/modelInstance/dataModel/dataRepository.d.ts +14 -14
  232. package/lib/model/modelInstance/dataModel/dataRepository.js +42 -42
  233. package/lib/model/modelInstance/modelInstance.d.ts +11 -6
  234. package/lib/model/modelInstance/modelInstance.js +16 -16
  235. package/lib/model/modelInstance/titleConfigReader.d.ts +8 -8
  236. package/lib/model/modelInstance/titleConfigReader.js +37 -30
  237. package/lib/model/notations/polar/donut/donutAggregatorService.d.ts +9 -6
  238. package/lib/model/notations/polar/donut/donutAggregatorService.js +40 -37
  239. package/lib/model/notations/polar/donut/donutModel.d.ts +9 -5
  240. package/lib/model/notations/polar/donut/donutModel.js +28 -28
  241. package/lib/model/notations/polar/donut/donutThicknessService.d.ts +3 -3
  242. package/lib/model/notations/polar/donut/donutThicknessService.js +13 -15
  243. package/lib/model/notations/polar/polarModel.d.ts +18 -7
  244. package/lib/model/notations/polar/polarModel.js +79 -65
  245. package/lib/model/notations/twoDimensional/styles.d.ts +44 -7
  246. package/lib/model/notations/twoDimensional/styles.js +234 -125
  247. package/lib/model/notations/twoDimensionalModel.d.ts +23 -13
  248. package/lib/model/notations/twoDimensionalModel.js +330 -162
  249. package/lib/optionsServices/publicOptionsService.d.ts +1 -1
  250. package/lib/optionsServices/publicOptionsService.js +4 -4
  251. package/lib/optionsServices/validators/sizeValidator.d.ts +2 -2
  252. package/lib/optionsServices/validators/sizeValidator.js +10 -11
  253. package/lib/style/charts-main.css +150 -151
  254. package/lib/style/charts-main.less +150 -151
  255. package/package.json +1 -1
@@ -4,14 +4,25 @@ import { TooltipLineAttributes } from "./tooltipDomHelper";
4
4
  import { ChartOrientation } from "../../../config/config";
5
5
  import { NewTooltip, TooltipCoordinate } from "./newTooltip/newTooltip";
6
6
  export declare class TooltipComponentsManager {
7
- static showComponent(tooltipBlock: Selection<BaseType, unknown, HTMLElement, any>): void;
8
- static hideComponent(tooltipBlock: Selection<BaseType, unknown, HTMLElement, any>): void;
9
- static renderTooltipWrapper(block: Block): void;
10
- static renderTooltipBlock(block: Block, translateX?: number, translateY?: number): NewTooltip;
11
- static renderTooltipContentBlock(tooltipBlock: NewTooltip): Selection<HTMLDivElement, unknown, HTMLElement, any>;
12
- static renderTooltipLine(block: Block): Selection<SVGLineElement, unknown, HTMLElement, any>;
13
- static setTooltipLineAttributes(tooltipLine: Selection<SVGLineElement, unknown, HTMLElement, any>, attributes: TooltipLineAttributes, transition: number): void;
14
- static getLineWidth(tooltipLine: Selection<BaseType, any, BaseType, any>): number;
15
- static renderTooltipArrow(tooltipBlock: Selection<BaseType, unknown, HTMLElement, any>): Selection<BaseType, unknown, HTMLElement, any>;
16
- static setLineTooltipCoordinate(tooltip: NewTooltip, tooltipCoordinate: TooltipCoordinate, chartOrientation: ChartOrientation, transition?: number): void;
7
+ static showComponent(tooltipBlock: Selection<BaseType, unknown, HTMLElement, any>): void;
8
+ static hideComponent(tooltipBlock: Selection<BaseType, unknown, HTMLElement, any>): void;
9
+ static renderTooltipWrapper(block: Block): void;
10
+ static renderTooltipBlock(block: Block, translateX?: number, translateY?: number): NewTooltip;
11
+ static renderTooltipContentBlock(tooltipBlock: NewTooltip): Selection<HTMLDivElement, unknown, HTMLElement, any>;
12
+ static renderTooltipLine(block: Block): Selection<SVGLineElement, unknown, HTMLElement, any>;
13
+ static setTooltipLineAttributes(
14
+ tooltipLine: Selection<SVGLineElement, unknown, HTMLElement, any>,
15
+ attributes: TooltipLineAttributes,
16
+ transition: number
17
+ ): void;
18
+ static getLineWidth(tooltipLine: Selection<BaseType, any, BaseType, any>): number;
19
+ static renderTooltipArrow(
20
+ tooltipBlock: Selection<BaseType, unknown, HTMLElement, any>
21
+ ): Selection<BaseType, unknown, HTMLElement, any>;
22
+ static setLineTooltipCoordinate(
23
+ tooltip: NewTooltip,
24
+ tooltipCoordinate: TooltipCoordinate,
25
+ chartOrientation: ChartOrientation,
26
+ transition?: number
27
+ ): void;
17
28
  }
@@ -5,118 +5,117 @@ import { interrupt } from "d3-transition";
5
5
  import { Tooltip } from "./tooltip";
6
6
  import { NewTooltip } from "./newTooltip/newTooltip";
7
7
  export class TooltipComponentsManager {
8
- static showComponent(tooltipBlock) {
9
- tooltipBlock.style("display", "block");
10
- }
11
- static hideComponent(tooltipBlock) {
12
- tooltipBlock.style("display", "none");
13
- }
14
- static renderTooltipWrapper(block) {
15
- let tooltipWrapper = block.getWrapper().select(`.${Tooltip.tooltipWrapperClass}`);
16
- if (tooltipWrapper.empty())
17
- block.getWrapper().append("div").attr("class", Tooltip.tooltipWrapperClass);
18
- }
19
- static renderTooltipBlock(block, translateX = 0, translateY = 0) {
20
- const wrapper = block.getWrapper().select(`.${Tooltip.tooltipWrapperClass}`);
21
- const tooltipService = new NewTooltip();
22
- let tooltipBlock = tooltipService.findInWrapper(wrapper);
23
- if (tooltipBlock.empty()) {
24
- tooltipBlock = tooltipService.render(wrapper);
25
- tooltipBlock.style("position", "absolute").style("display", "none");
26
- }
27
- if (translateX !== 0 || translateY !== 0)
28
- tooltipBlock.style("transform", `translate(${translateX}px, ${translateY}px)`);
29
- return tooltipService;
30
- }
31
- static renderTooltipContentBlock(tooltipBlock) {
32
- let tooltipContentBlock = tooltipBlock.getEl().select(`.${Tooltip.tooltipContentClass}`);
33
- if (tooltipContentBlock.empty()) {
34
- tooltipContentBlock = select(document.createElement("div")).attr("class", Tooltip.tooltipContentClass);
35
- tooltipBlock.appendContent(tooltipContentBlock.node());
36
- }
37
- return tooltipContentBlock;
38
- }
39
- static renderTooltipLine(block) {
40
- let tooltipLine = block.svg.getChartBlock().select(`.${Tooltip.tooltipLineClass}`);
41
- if (tooltipLine.empty())
42
- tooltipLine = block.svg.getChartBlock().append("line").attr("class", Tooltip.tooltipLineClass).lower();
43
- return tooltipLine;
44
- }
45
- static setTooltipLineAttributes(tooltipLine, attributes, transition) {
46
- interrupt(tooltipLine.node());
47
- if (transition > 0 && tooltipLine.style("display") === "block") {
48
- tooltipLine
49
- .interrupt()
50
- .transition()
51
- .duration(transition)
52
- .ease(easeLinear)
53
- .attr("x1", attributes.x1)
54
- .attr("x2", attributes.x2)
55
- .attr("y1", attributes.y1)
56
- .attr("y2", attributes.y2);
57
- }
58
- else {
59
- tooltipLine
60
- .attr("x1", attributes.x1)
61
- .attr("x2", attributes.x2)
62
- .attr("y1", attributes.y1)
63
- .attr("y2", attributes.y2);
64
- }
65
- }
66
- static getLineWidth(tooltipLine) {
67
- return parseFloat(tooltipLine.style("stroke-width"));
68
- }
69
- static renderTooltipArrow(tooltipBlock) {
70
- let arrowSize = ARROW_SIZE / 2;
71
- let tooltipArrow = tooltipBlock.select(`.${Tooltip.tooltipArrowClass}`);
72
- if (tooltipArrow.empty())
73
- tooltipArrow = tooltipBlock
74
- .append("div")
75
- .attr("class", Tooltip.tooltipArrowClass)
76
- .style("position", "absolute")
77
- .style("left", `${ARROW_DEFAULT_POSITION}px`)
78
- .style("border-top-width", `${arrowSize}px`)
79
- .style("border-right-width", `${arrowSize}px`)
80
- .style("border-bottom-width", `0px`)
81
- .style("border-left-width", `${arrowSize}px`);
82
- return tooltipArrow;
83
- }
84
- static setLineTooltipCoordinate(tooltip, tooltipCoordinate, chartOrientation, transition = null) {
85
- const tooltipBlock = tooltip.getEl();
86
- interrupt(tooltipBlock.node());
87
- if (!transition || transition <= 0)
88
- tooltip.setCoordinate(tooltipCoordinate);
89
- if (chartOrientation === "vertical" &&
90
- tooltipBlock.style("left") !== "0px" &&
91
- tooltipBlock.style("right") !== "0px" &&
92
- tooltipCoordinate.right !== "0px" &&
93
- tooltipCoordinate.left !== null) {
94
- tooltipBlock
95
- .style("right", tooltipCoordinate.right)
96
- .style("bottom", tooltipCoordinate.bottom)
97
- .style("top", tooltipCoordinate.top)
98
- .interrupt()
99
- .transition()
100
- .duration(transition)
101
- .ease(easeLinear)
102
- .style("left", tooltipCoordinate.left);
103
- }
104
- else if (chartOrientation === "horizontal" &&
105
- tooltipBlock.style("top") !== "0px" &&
106
- parseInt(tooltipBlock.style("bottom")) > 0 &&
107
- tooltipCoordinate.bottom === null) {
108
- tooltipBlock
109
- .style("right", tooltipCoordinate.right)
110
- .style("bottom", tooltipCoordinate.bottom)
111
- .style("left", tooltipCoordinate.left)
112
- .interrupt()
113
- .transition()
114
- .duration(transition)
115
- .ease(easeLinear)
116
- .style("top", tooltipCoordinate.top);
117
- }
118
- else {
119
- tooltip.setCoordinate(tooltipCoordinate);
120
- }
121
- }
8
+ static showComponent(tooltipBlock) {
9
+ tooltipBlock.style("display", "block");
10
+ }
11
+ static hideComponent(tooltipBlock) {
12
+ tooltipBlock.style("display", "none");
13
+ }
14
+ static renderTooltipWrapper(block) {
15
+ let tooltipWrapper = block.getWrapper().select(`.${Tooltip.tooltipWrapperClass}`);
16
+ if (tooltipWrapper.empty()) block.getWrapper().append("div").attr("class", Tooltip.tooltipWrapperClass);
17
+ }
18
+ static renderTooltipBlock(block, translateX = 0, translateY = 0) {
19
+ const wrapper = block.getWrapper().select(`.${Tooltip.tooltipWrapperClass}`);
20
+ const tooltipService = new NewTooltip();
21
+ let tooltipBlock = tooltipService.findInWrapper(wrapper);
22
+ if (tooltipBlock.empty()) {
23
+ tooltipBlock = tooltipService.render(wrapper);
24
+ tooltipBlock.style("position", "absolute").style("display", "none");
25
+ }
26
+ if (translateX !== 0 || translateY !== 0)
27
+ tooltipBlock.style("transform", `translate(${translateX}px, ${translateY}px)`);
28
+ return tooltipService;
29
+ }
30
+ static renderTooltipContentBlock(tooltipBlock) {
31
+ let tooltipContentBlock = tooltipBlock.getEl().select(`.${Tooltip.tooltipContentClass}`);
32
+ if (tooltipContentBlock.empty()) {
33
+ tooltipContentBlock = select(document.createElement("div")).attr("class", Tooltip.tooltipContentClass);
34
+ tooltipBlock.appendContent(tooltipContentBlock.node());
35
+ }
36
+ return tooltipContentBlock;
37
+ }
38
+ static renderTooltipLine(block) {
39
+ let tooltipLine = block.svg.getChartBlock().select(`.${Tooltip.tooltipLineClass}`);
40
+ if (tooltipLine.empty())
41
+ tooltipLine = block.svg.getChartBlock().append("line").attr("class", Tooltip.tooltipLineClass).lower();
42
+ return tooltipLine;
43
+ }
44
+ static setTooltipLineAttributes(tooltipLine, attributes, transition) {
45
+ interrupt(tooltipLine.node());
46
+ if (transition > 0 && tooltipLine.style("display") === "block") {
47
+ tooltipLine
48
+ .interrupt()
49
+ .transition()
50
+ .duration(transition)
51
+ .ease(easeLinear)
52
+ .attr("x1", attributes.x1)
53
+ .attr("x2", attributes.x2)
54
+ .attr("y1", attributes.y1)
55
+ .attr("y2", attributes.y2);
56
+ } else {
57
+ tooltipLine
58
+ .attr("x1", attributes.x1)
59
+ .attr("x2", attributes.x2)
60
+ .attr("y1", attributes.y1)
61
+ .attr("y2", attributes.y2);
62
+ }
63
+ }
64
+ static getLineWidth(tooltipLine) {
65
+ return parseFloat(tooltipLine.style("stroke-width"));
66
+ }
67
+ static renderTooltipArrow(tooltipBlock) {
68
+ let arrowSize = ARROW_SIZE / 2;
69
+ let tooltipArrow = tooltipBlock.select(`.${Tooltip.tooltipArrowClass}`);
70
+ if (tooltipArrow.empty())
71
+ tooltipArrow = tooltipBlock
72
+ .append("div")
73
+ .attr("class", Tooltip.tooltipArrowClass)
74
+ .style("position", "absolute")
75
+ .style("left", `${ARROW_DEFAULT_POSITION}px`)
76
+ .style("border-top-width", `${arrowSize}px`)
77
+ .style("border-right-width", `${arrowSize}px`)
78
+ .style("border-bottom-width", `0px`)
79
+ .style("border-left-width", `${arrowSize}px`);
80
+ return tooltipArrow;
81
+ }
82
+ static setLineTooltipCoordinate(tooltip, tooltipCoordinate, chartOrientation, transition = null) {
83
+ const tooltipBlock = tooltip.getEl();
84
+ interrupt(tooltipBlock.node());
85
+ if (!transition || transition <= 0) tooltip.setCoordinate(tooltipCoordinate);
86
+ if (
87
+ chartOrientation === "vertical" &&
88
+ tooltipBlock.style("left") !== "0px" &&
89
+ tooltipBlock.style("right") !== "0px" &&
90
+ tooltipCoordinate.right !== "0px" &&
91
+ tooltipCoordinate.left !== null
92
+ ) {
93
+ tooltipBlock
94
+ .style("right", tooltipCoordinate.right)
95
+ .style("bottom", tooltipCoordinate.bottom)
96
+ .style("top", tooltipCoordinate.top)
97
+ .interrupt()
98
+ .transition()
99
+ .duration(transition)
100
+ .ease(easeLinear)
101
+ .style("left", tooltipCoordinate.left);
102
+ } else if (
103
+ chartOrientation === "horizontal" &&
104
+ tooltipBlock.style("top") !== "0px" &&
105
+ parseInt(tooltipBlock.style("bottom")) > 0 &&
106
+ tooltipCoordinate.bottom === null
107
+ ) {
108
+ tooltipBlock
109
+ .style("right", tooltipCoordinate.right)
110
+ .style("bottom", tooltipCoordinate.bottom)
111
+ .style("left", tooltipCoordinate.left)
112
+ .interrupt()
113
+ .transition()
114
+ .duration(transition)
115
+ .ease(easeLinear)
116
+ .style("top", tooltipCoordinate.top);
117
+ } else {
118
+ tooltip.setCoordinate(tooltipCoordinate);
119
+ }
120
+ }
122
121
  }
@@ -3,31 +3,53 @@ import { MdtChartsDataSource, TooltipOptions } from "../../../config/config";
3
3
  import { OptionsModelData, PolarChartModel, TwoDimensionalChartModel } from "../../../model/model";
4
4
  import { Size } from "../../../config/config";
5
5
  export interface TooltipLineAttributes {
6
- x1: number;
7
- x2: number;
8
- y1: number;
9
- y2: number;
6
+ x1: number;
7
+ x2: number;
8
+ y1: number;
9
+ y2: number;
10
10
  }
11
11
  export declare const ARROW_SIZE = 20;
12
12
  export declare const ARROW_DEFAULT_POSITION = 9;
13
13
  export declare const TOOLTIP_ARROW_PADDING_X: number;
14
14
  export declare const TOOLTIP_ARROW_PADDING_Y = 13;
15
15
  export declare class TooltipDomHelper {
16
- private static readonly groupClass;
17
- private static readonly headClass;
18
- private static readonly textItemClass;
19
- private static readonly tooltipLegendDefaultMarker;
20
- static fillForMulti2DCharts(contentBlock: Selection<HTMLElement, unknown, BaseType, unknown>, charts: TwoDimensionalChartModel[], data: MdtChartsDataSource, dataOptions: OptionsModelData, keyValue: string, tooltipOptions?: TooltipOptions): void;
21
- static fillForPolarChart(contentBlock: Selection<HTMLElement, unknown, BaseType, unknown>, chart: PolarChartModel, data: MdtChartsDataSource, dataOptions: OptionsModelData, keyValue: string, markColor: string, tooltipOptions?: TooltipOptions): void;
22
- static getRecalcedCoordinateByArrow(coordinate: [number, number], tooltipBlock: Selection<HTMLElement, unknown, HTMLElement, any>, blockSize: Size, tooltipArrow: Selection<BaseType, unknown, HTMLElement, any>, translateX?: number, translateY?: number): [number, number];
23
- private static renderHead;
24
- private static fillValuesContent;
25
- private static getTooltipItemHtml;
26
- private static getTooltipContentItemHtml;
27
- private static setTooltipArrowCoordinate;
28
- private static fillContentByFunction;
29
- private static setWhiteSpaceForTextBlocks;
30
- private static getMarkerCreator;
31
- private static addAggregatorTooltipItem;
32
- private static fillCharts;
16
+ private static readonly groupClass;
17
+ private static readonly headClass;
18
+ private static readonly textItemClass;
19
+ private static readonly tooltipLegendDefaultMarker;
20
+ static fillForMulti2DCharts(
21
+ contentBlock: Selection<HTMLElement, unknown, BaseType, unknown>,
22
+ charts: TwoDimensionalChartModel[],
23
+ data: MdtChartsDataSource,
24
+ dataOptions: OptionsModelData,
25
+ keyValue: string,
26
+ tooltipOptions?: TooltipOptions
27
+ ): void;
28
+ static fillForPolarChart(
29
+ contentBlock: Selection<HTMLElement, unknown, BaseType, unknown>,
30
+ chart: PolarChartModel,
31
+ data: MdtChartsDataSource,
32
+ dataOptions: OptionsModelData,
33
+ keyValue: string,
34
+ markColor: string,
35
+ tooltipOptions?: TooltipOptions
36
+ ): void;
37
+ static getRecalcedCoordinateByArrow(
38
+ coordinate: [number, number],
39
+ tooltipBlock: Selection<HTMLElement, unknown, HTMLElement, any>,
40
+ blockSize: Size,
41
+ tooltipArrow: Selection<BaseType, unknown, HTMLElement, any>,
42
+ translateX?: number,
43
+ translateY?: number
44
+ ): [number, number];
45
+ private static renderHead;
46
+ private static fillValuesContent;
47
+ private static getTooltipItemHtml;
48
+ private static getTooltipContentItemHtml;
49
+ private static setTooltipArrowCoordinate;
50
+ private static fillContentByFunction;
51
+ private static setWhiteSpaceForTextBlocks;
52
+ private static getMarkerCreator;
53
+ private static addAggregatorTooltipItem;
54
+ private static fillCharts;
33
55
  }
@@ -7,127 +7,151 @@ export const ARROW_DEFAULT_POSITION = 9;
7
7
  export const TOOLTIP_ARROW_PADDING_X = ARROW_DEFAULT_POSITION - (ARROW_SIZE * Math.sqrt(2) - ARROW_SIZE) / 2 + 14;
8
8
  export const TOOLTIP_ARROW_PADDING_Y = 13;
9
9
  export class TooltipDomHelper {
10
- static fillForMulti2DCharts(contentBlock, charts, data, dataOptions, keyValue, tooltipOptions) {
11
- const chartDataRows = [];
12
- charts.forEach((chart) => {
13
- chart.data.valueFields.forEach((field, index) => {
14
- chartDataRows.push({
15
- field,
16
- markColor: chart.style.elementColors[index % chart.style.elementColors.length],
17
- markerCreator: this.getMarkerCreator(chart.legend)
18
- });
19
- });
20
- });
21
- this.fillCharts(contentBlock, chartDataRows, data, dataOptions, keyValue, tooltipOptions);
22
- }
23
- static fillForPolarChart(contentBlock, chart, data, dataOptions, keyValue, markColor, tooltipOptions) {
24
- const chartDataRows = [
25
- {
26
- field: chart.data.valueField,
27
- markColor,
28
- markerCreator: this.getMarkerCreator(chart.legend)
29
- }
30
- ];
31
- this.fillCharts(contentBlock, chartDataRows, data, dataOptions, keyValue, tooltipOptions);
32
- }
33
- static getRecalcedCoordinateByArrow(coordinate, tooltipBlock, blockSize, tooltipArrow, translateX = 0, translateY = 0) {
34
- const tooltipBlockNode = tooltipBlock.node();
35
- const horizontalPad = TooltipHelper.getHorizontalPad(coordinate[0], tooltipBlockNode.getBoundingClientRect().width, blockSize, translateX);
36
- const verticalPad = TooltipHelper.getVerticalPad(coordinate[1], tooltipBlockNode.getBoundingClientRect().height, translateY);
37
- this.setTooltipArrowCoordinate(tooltipArrow, TooltipHelper.getTooltipArrowPadding(tooltipBlockNode.getBoundingClientRect().width, horizontalPad));
38
- return [
39
- coordinate[0] - TOOLTIP_ARROW_PADDING_X - horizontalPad,
40
- coordinate[1] - TOOLTIP_ARROW_PADDING_Y - tooltipBlockNode.getBoundingClientRect().height - verticalPad
41
- ];
42
- }
43
- static renderHead(contentBlock, keyValue) {
44
- contentBlock.append("div").attr("class", `${this.groupClass} ${this.headClass}`).text(keyValue);
45
- }
46
- static fillValuesContent(contentBlock, { markColor, tooltipHtml, markerCreator }) {
47
- const group = contentBlock.append("div").attr("class", this.groupClass);
48
- if (markColor) {
49
- const colorBlock = group.append("div").attr("class", "tooltip-color");
50
- markerCreator === null || markerCreator === void 0 ? void 0 : markerCreator.renderMarker(colorBlock, markColor);
51
- }
52
- group
53
- .append("div")
54
- .attr("class", "tooltip-texts")
55
- .append("div")
56
- .attr("class", this.textItemClass)
57
- .html(tooltipHtml);
58
- }
59
- static getTooltipItemHtml(row, valueField, tooltipOptions) {
60
- const formattedValueByDefault = ValueFormatter.formatField(valueField.format, row[valueField.name]);
61
- const formattedValue = (tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.formatValue) ? tooltipOptions.formatValue({
62
- rawValue: row[valueField.name],
63
- autoFormattedValue: formattedValueByDefault
64
- })
65
- : formattedValueByDefault;
66
- const text = this.getTooltipContentItemHtml(valueField.title, formattedValue);
67
- return text;
68
- }
69
- static getTooltipContentItemHtml(fieldTitle, fieldValue) {
70
- return `<span class="tooltip-field-title">${fieldTitle}</span>
10
+ static fillForMulti2DCharts(contentBlock, charts, data, dataOptions, keyValue, tooltipOptions) {
11
+ const chartDataRows = [];
12
+ charts.forEach((chart) => {
13
+ chart.data.valueFields.forEach((field, index) => {
14
+ chartDataRows.push({
15
+ field,
16
+ markColor: chart.style.elementColors[index % chart.style.elementColors.length],
17
+ markerCreator: this.getMarkerCreator(chart.legend)
18
+ });
19
+ });
20
+ });
21
+ this.fillCharts(contentBlock, chartDataRows, data, dataOptions, keyValue, tooltipOptions);
22
+ }
23
+ static fillForPolarChart(contentBlock, chart, data, dataOptions, keyValue, markColor, tooltipOptions) {
24
+ const chartDataRows = [
25
+ {
26
+ field: chart.data.valueField,
27
+ markColor,
28
+ markerCreator: this.getMarkerCreator(chart.legend)
29
+ }
30
+ ];
31
+ this.fillCharts(contentBlock, chartDataRows, data, dataOptions, keyValue, tooltipOptions);
32
+ }
33
+ static getRecalcedCoordinateByArrow(
34
+ coordinate,
35
+ tooltipBlock,
36
+ blockSize,
37
+ tooltipArrow,
38
+ translateX = 0,
39
+ translateY = 0
40
+ ) {
41
+ const tooltipBlockNode = tooltipBlock.node();
42
+ const horizontalPad = TooltipHelper.getHorizontalPad(
43
+ coordinate[0],
44
+ tooltipBlockNode.getBoundingClientRect().width,
45
+ blockSize,
46
+ translateX
47
+ );
48
+ const verticalPad = TooltipHelper.getVerticalPad(
49
+ coordinate[1],
50
+ tooltipBlockNode.getBoundingClientRect().height,
51
+ translateY
52
+ );
53
+ this.setTooltipArrowCoordinate(
54
+ tooltipArrow,
55
+ TooltipHelper.getTooltipArrowPadding(tooltipBlockNode.getBoundingClientRect().width, horizontalPad)
56
+ );
57
+ return [
58
+ coordinate[0] - TOOLTIP_ARROW_PADDING_X - horizontalPad,
59
+ coordinate[1] - TOOLTIP_ARROW_PADDING_Y - tooltipBlockNode.getBoundingClientRect().height - verticalPad
60
+ ];
61
+ }
62
+ static renderHead(contentBlock, keyValue) {
63
+ contentBlock.append("div").attr("class", `${this.groupClass} ${this.headClass}`).text(keyValue);
64
+ }
65
+ static fillValuesContent(contentBlock, { markColor, tooltipHtml, markerCreator }) {
66
+ const group = contentBlock.append("div").attr("class", this.groupClass);
67
+ if (markColor) {
68
+ const colorBlock = group.append("div").attr("class", "tooltip-color");
69
+ markerCreator === null || markerCreator === void 0
70
+ ? void 0
71
+ : markerCreator.renderMarker(colorBlock, markColor);
72
+ }
73
+ group
74
+ .append("div")
75
+ .attr("class", "tooltip-texts")
76
+ .append("div")
77
+ .attr("class", this.textItemClass)
78
+ .html(tooltipHtml);
79
+ }
80
+ static getTooltipItemHtml(row, valueField, tooltipOptions) {
81
+ const formattedValueByDefault = ValueFormatter.formatField(valueField.format, row[valueField.name]);
82
+ const formattedValue = (
83
+ tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.formatValue
84
+ )
85
+ ? tooltipOptions.formatValue({
86
+ rawValue: row[valueField.name],
87
+ autoFormattedValue: formattedValueByDefault
88
+ })
89
+ : formattedValueByDefault;
90
+ const text = this.getTooltipContentItemHtml(valueField.title, formattedValue);
91
+ return text;
92
+ }
93
+ static getTooltipContentItemHtml(fieldTitle, fieldValue) {
94
+ return `<span class="tooltip-field-title">${fieldTitle}</span>
71
95
  <span class="tooltip-field-value">${fieldValue}</span>`;
72
- }
73
- static setTooltipArrowCoordinate(tooltipArrow, horizontalPad) {
74
- if (horizontalPad !== 0)
75
- tooltipArrow.style("left", `${ARROW_DEFAULT_POSITION + Math.floor(horizontalPad)}px`);
76
- else
77
- tooltipArrow.style("left", `${ARROW_DEFAULT_POSITION}px`);
78
- }
79
- static fillContentByFunction(contentBlock, data, dataOptions, keyValue, htmlHandler) {
80
- const row = Helper.getRowsByKeys([keyValue], dataOptions.keyField.name, data[dataOptions.dataSource])[0];
81
- contentBlock.html(htmlHandler(row));
82
- this.setWhiteSpaceForTextBlocks(contentBlock);
83
- contentBlock.selectAll(".tooltip-text-item").style("display", "block");
84
- }
85
- static setWhiteSpaceForTextBlocks(contentBlock) {
86
- contentBlock.selectAll(`.${this.textItemClass}`).style("white-space", "pre-wrap");
87
- }
88
- static getMarkerCreator(options) {
89
- return getMarkerCreator(options, { default: { cssClass: TooltipDomHelper.tooltipLegendDefaultMarker } });
90
- }
91
- static addAggregatorTooltipItem(tooltipOptions, data, tooltipItems) {
92
- if (tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.aggregator) {
93
- const aggregatorContent = tooltipOptions.aggregator.content({ row: data });
94
- const aggregatorHtml = aggregatorContent.type === "plainText"
95
- ? aggregatorContent.textContent
96
- : this.getTooltipContentItemHtml(aggregatorContent.caption, aggregatorContent.value);
97
- const tooltipAggregatorItem = {
98
- markColor: undefined,
99
- tooltipHtml: aggregatorHtml,
100
- markerCreator: undefined
101
- };
102
- if (tooltipOptions.aggregator.position === "underValues")
103
- tooltipItems.push(tooltipAggregatorItem);
104
- else
105
- tooltipItems.unshift(tooltipAggregatorItem);
106
- }
107
- }
108
- static fillCharts(contentBlock, chartDataRows, data, dataOptions, keyValue, tooltipOptions) {
109
- const row = data[dataOptions.dataSource].find((d) => d[dataOptions.keyField.name] === keyValue);
110
- contentBlock.html("");
111
- if (!(tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.html)) {
112
- const tooltipItems = [];
113
- this.renderHead(contentBlock, keyValue);
114
- chartDataRows.forEach((dataRow) => {
115
- const html = this.getTooltipItemHtml(row, dataRow.field, tooltipOptions);
116
- tooltipItems.push({
117
- markColor: dataRow.markColor,
118
- tooltipHtml: html,
119
- markerCreator: dataRow.markerCreator
120
- });
121
- });
122
- this.addAggregatorTooltipItem(tooltipOptions, row, tooltipItems);
123
- tooltipItems.forEach((item) => {
124
- this.fillValuesContent(contentBlock, item);
125
- });
126
- }
127
- else {
128
- this.fillContentByFunction(contentBlock, data, dataOptions, keyValue, tooltipOptions.html);
129
- }
130
- }
96
+ }
97
+ static setTooltipArrowCoordinate(tooltipArrow, horizontalPad) {
98
+ if (horizontalPad !== 0) tooltipArrow.style("left", `${ARROW_DEFAULT_POSITION + Math.floor(horizontalPad)}px`);
99
+ else tooltipArrow.style("left", `${ARROW_DEFAULT_POSITION}px`);
100
+ }
101
+ static fillContentByFunction(contentBlock, data, dataOptions, keyValue, htmlHandler) {
102
+ const row = Helper.getRowsByKeys([keyValue], dataOptions.keyField.name, data[dataOptions.dataSource])[0];
103
+ contentBlock.html(htmlHandler(row));
104
+ this.setWhiteSpaceForTextBlocks(contentBlock);
105
+ contentBlock.selectAll(".tooltip-text-item").style("display", "block");
106
+ }
107
+ static setWhiteSpaceForTextBlocks(contentBlock) {
108
+ contentBlock.selectAll(`.${this.textItemClass}`).style("white-space", "pre-wrap");
109
+ }
110
+ static getMarkerCreator(options) {
111
+ return getMarkerCreator(options, {
112
+ default: { cssClass: TooltipDomHelper.tooltipLegendDefaultMarker }
113
+ });
114
+ }
115
+ static addAggregatorTooltipItem(tooltipOptions, data, tooltipItems) {
116
+ if (tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.aggregator) {
117
+ const aggregatorContent = tooltipOptions.aggregator.content({
118
+ row: data
119
+ });
120
+ const aggregatorHtml =
121
+ aggregatorContent.type === "plainText"
122
+ ? aggregatorContent.textContent
123
+ : this.getTooltipContentItemHtml(aggregatorContent.caption, aggregatorContent.value);
124
+ const tooltipAggregatorItem = {
125
+ markColor: undefined,
126
+ tooltipHtml: aggregatorHtml,
127
+ markerCreator: undefined
128
+ };
129
+ if (tooltipOptions.aggregator.position === "underValues") tooltipItems.push(tooltipAggregatorItem);
130
+ else tooltipItems.unshift(tooltipAggregatorItem);
131
+ }
132
+ }
133
+ static fillCharts(contentBlock, chartDataRows, data, dataOptions, keyValue, tooltipOptions) {
134
+ const row = data[dataOptions.dataSource].find((d) => d[dataOptions.keyField.name] === keyValue);
135
+ contentBlock.html("");
136
+ if (!(tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.html)) {
137
+ const tooltipItems = [];
138
+ this.renderHead(contentBlock, keyValue);
139
+ chartDataRows.forEach((dataRow) => {
140
+ const html = this.getTooltipItemHtml(row, dataRow.field, tooltipOptions);
141
+ tooltipItems.push({
142
+ markColor: dataRow.markColor,
143
+ tooltipHtml: html,
144
+ markerCreator: dataRow.markerCreator
145
+ });
146
+ });
147
+ this.addAggregatorTooltipItem(tooltipOptions, row, tooltipItems);
148
+ tooltipItems.forEach((item) => {
149
+ this.fillValuesContent(contentBlock, item);
150
+ });
151
+ } else {
152
+ this.fillContentByFunction(contentBlock, data, dataOptions, keyValue, tooltipOptions.html);
153
+ }
154
+ }
131
155
  }
132
156
  TooltipDomHelper.groupClass = "tooltip-group";
133
157
  TooltipDomHelper.headClass = "tooltip-head";