mdt-charts 1.29.0 → 1.30.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 (257) hide show
  1. package/lib/config/config.d.ts +170 -178
  2. package/lib/designer/designerConfig.d.ts +59 -62
  3. package/lib/engine/block/block.d.ts +16 -22
  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 +66 -65
  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 +7 -6
  18. package/lib/engine/contentManager/contentManager.js +15 -15
  19. package/lib/engine/contentManager/contentManagerFactory.d.ts +7 -7
  20. package/lib/engine/contentManager/contentManagerFactory.js +12 -12
  21. package/lib/engine/elementHighlighter/elementHighlighter.d.ts +22 -70
  22. package/lib/engine/elementHighlighter/elementHighlighter.js +181 -230
  23. package/lib/engine/elementHighlighter/selectHighlighter.d.ts +4 -29
  24. package/lib/engine/elementHighlighter/selectHighlighter.js +87 -189
  25. package/lib/engine/engine.d.ts +17 -17
  26. package/lib/engine/engine.js +62 -87
  27. package/lib/engine/features/aggregator/aggregator.d.ts +17 -24
  28. package/lib/engine/features/aggregator/aggregator.js +102 -113
  29. package/lib/engine/features/axis/axis.d.ts +9 -22
  30. package/lib/engine/features/axis/axis.js +150 -159
  31. package/lib/engine/features/axis/axisDomHelper.d.ts +2 -7
  32. package/lib/engine/features/axis/axisDomHelper.js +20 -19
  33. package/lib/engine/features/axis/axisHelper.d.ts +5 -9
  34. package/lib/engine/features/axis/axisHelper.js +33 -28
  35. package/lib/engine/features/axis/axisLabelDomHelper.d.ts +11 -26
  36. package/lib/engine/features/axis/axisLabelDomHelper.js +152 -156
  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 +16 -51
  40. package/lib/engine/features/embeddedLabels/embeddedLabels.js +134 -234
  41. package/lib/engine/features/embeddedLabels/embeddedLabelsDomHelper.d.ts +2 -13
  42. package/lib/engine/features/embeddedLabels/embeddedLabelsDomHelper.js +23 -20
  43. package/lib/engine/features/embeddedLabels/embeddedLabelsHelper.d.ts +15 -32
  44. package/lib/engine/features/embeddedLabels/embeddedLabelsHelper.js +63 -56
  45. package/lib/engine/features/gridLine/gidLineHelper.d.ts +7 -13
  46. package/lib/engine/features/gridLine/gidLineHelper.js +49 -42
  47. package/lib/engine/features/gridLine/gridLine.d.ts +5 -19
  48. package/lib/engine/features/gridLine/gridLine.js +36 -35
  49. package/lib/engine/features/legend/legend.d.ts +28 -38
  50. package/lib/engine/features/legend/legend.js +92 -118
  51. package/lib/engine/features/legend/legendDomHelper.d.ts +6 -13
  52. package/lib/engine/features/legend/legendDomHelper.js +62 -63
  53. package/lib/engine/features/legend/legendEventsManager.d.ts +8 -13
  54. package/lib/engine/features/legend/legendEventsManager.js +47 -48
  55. package/lib/engine/features/legend/legendHelper.d.ts +14 -39
  56. package/lib/engine/features/legend/legendHelper.js +92 -98
  57. package/lib/engine/features/legend/legendHelperService.d.ts +6 -13
  58. package/lib/engine/features/legend/legendHelperService.js +25 -24
  59. package/lib/engine/features/legend/legendMarkerCreator.d.ts +9 -18
  60. package/lib/engine/features/legend/legendMarkerCreator.js +76 -79
  61. package/lib/engine/features/legend/legendWidthCalculator.d.ts +7 -7
  62. package/lib/engine/features/legend/legendWidthCalculator.js +122 -126
  63. package/lib/engine/features/markDots/markDot.d.ts +15 -42
  64. package/lib/engine/features/markDots/markDot.js +70 -101
  65. package/lib/engine/features/markDots/markDotsHelper.d.ts +1 -8
  66. package/lib/engine/features/markDots/markDotsHelper.js +12 -13
  67. package/lib/engine/features/recordOverflowAlert/recordOverflowAlertCore.d.ts +5 -23
  68. package/lib/engine/features/recordOverflowAlert/recordOverflowAlertCore.js +34 -42
  69. package/lib/engine/features/scale/scale.d.ts +12 -17
  70. package/lib/engine/features/scale/scale.js +69 -76
  71. package/lib/engine/features/tipBox/tipBox.d.ts +5 -9
  72. package/lib/engine/features/tipBox/tipBox.js +24 -24
  73. package/lib/engine/features/tipBox/tipBoxHelper.d.ts +9 -16
  74. package/lib/engine/features/tipBox/tipBoxHelper.js +45 -60
  75. package/lib/engine/features/title/title.d.ts +6 -6
  76. package/lib/engine/features/title/title.js +35 -34
  77. package/lib/engine/features/tolltip/newTooltip/newTooltip.d.ts +11 -15
  78. package/lib/engine/features/tolltip/newTooltip/newTooltip.js +21 -21
  79. package/lib/engine/features/tolltip/newTooltip/newTooltipService.d.ts +8 -13
  80. package/lib/engine/features/tolltip/newTooltip/newTooltipService.js +23 -26
  81. package/lib/engine/features/tolltip/tooltip.d.ts +11 -17
  82. package/lib/engine/features/tolltip/tooltip.js +142 -296
  83. package/lib/engine/features/tolltip/tooltipComponentsManager.d.ts +10 -21
  84. package/lib/engine/features/tolltip/tooltipComponentsManager.js +114 -113
  85. package/lib/engine/features/tolltip/tooltipDomHelper.d.ts +21 -43
  86. package/lib/engine/features/tolltip/tooltipDomHelper.js +120 -144
  87. package/lib/engine/features/tolltip/tooltipHelper.d.ts +9 -39
  88. package/lib/engine/features/tolltip/tooltipHelper.js +91 -114
  89. package/lib/engine/features/valueLabels/valueLabels.d.ts +38 -58
  90. package/lib/engine/features/valueLabels/valueLabels.js +170 -205
  91. package/lib/engine/features/valueLabels/valueLabelsHelper.d.ts +1 -7
  92. package/lib/engine/features/valueLabels/valueLabelsHelper.js +18 -23
  93. package/lib/engine/features/valueLabelsCollision/valueLabelsCollision.d.ts +15 -18
  94. package/lib/engine/features/valueLabelsCollision/valueLabelsCollision.js +47 -46
  95. package/lib/engine/features/valueLabelsCollision/valueLabelsCollisionHelper.d.ts +3 -6
  96. package/lib/engine/features/valueLabelsCollision/valueLabelsCollisionHelper.js +45 -49
  97. package/lib/engine/filterManager/filterEventManager.d.ts +30 -37
  98. package/lib/engine/filterManager/filterEventManager.js +131 -174
  99. package/lib/engine/helpers/domHelper.d.ts +20 -45
  100. package/lib/engine/helpers/domHelper.js +61 -62
  101. package/lib/engine/helpers/fontResizer/fontResizer.d.ts +10 -10
  102. package/lib/engine/helpers/fontResizer/fontResizer.js +16 -21
  103. package/lib/engine/helpers/fontResizer/fontResizerService.d.ts +1 -1
  104. package/lib/engine/helpers/fontResizer/fontResizerService.js +10 -9
  105. package/lib/engine/helpers/helper.d.ts +27 -27
  106. package/lib/engine/helpers/helper.js +92 -91
  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 +11 -25
  112. package/lib/engine/polarNotation/donut/DonutHelper.js +70 -71
  113. package/lib/engine/polarNotation/donut/donut.d.ts +23 -38
  114. package/lib/engine/polarNotation/donut/donut.js +99 -109
  115. package/lib/engine/polarNotation/polarManager.d.ts +6 -6
  116. package/lib/engine/polarNotation/polarManager.js +47 -67
  117. package/lib/engine/transitionManager.d.ts +14 -13
  118. package/lib/engine/transitionManager.js +49 -48
  119. package/lib/engine/twoDimensionalNotation/area/area.d.ts +28 -44
  120. package/lib/engine/twoDimensionalNotation/area/area.js +238 -272
  121. package/lib/engine/twoDimensionalNotation/area/areaGenerator.d.ts +5 -13
  122. package/lib/engine/twoDimensionalNotation/area/areaGenerator.js +13 -13
  123. package/lib/engine/twoDimensionalNotation/area/areaHelper.d.ts +4 -4
  124. package/lib/engine/twoDimensionalNotation/area/areaHelper.js +41 -57
  125. package/lib/engine/twoDimensionalNotation/bar/bar.d.ts +29 -54
  126. package/lib/engine/twoDimensionalNotation/bar/bar.js +224 -362
  127. package/lib/engine/twoDimensionalNotation/bar/barHelper.d.ts +32 -71
  128. package/lib/engine/twoDimensionalNotation/bar/barHelper.js +126 -162
  129. package/lib/engine/twoDimensionalNotation/bar/stackedData/dataStacker.d.ts +6 -6
  130. package/lib/engine/twoDimensionalNotation/bar/stackedData/dataStacker.js +24 -24
  131. package/lib/engine/twoDimensionalNotation/bar/stackedData/dataStackerService.d.ts +2 -2
  132. package/lib/engine/twoDimensionalNotation/bar/stackedData/dataStackerService.js +17 -16
  133. package/lib/engine/twoDimensionalNotation/dot/dotChart.d.ts +23 -23
  134. package/lib/engine/twoDimensionalNotation/dot/dotChart.js +114 -135
  135. package/lib/engine/twoDimensionalNotation/line/line.d.ts +16 -37
  136. package/lib/engine/twoDimensionalNotation/line/line.js +132 -162
  137. package/lib/engine/twoDimensionalNotation/line/lineBuilder.d.ts +11 -14
  138. package/lib/engine/twoDimensionalNotation/line/lineBuilder.js +48 -47
  139. package/lib/engine/twoDimensionalNotation/line/lineGenerator.d.ts +4 -4
  140. package/lib/engine/twoDimensionalNotation/line/lineGenerator.js +8 -8
  141. package/lib/engine/twoDimensionalNotation/line/lineHelper.d.ts +6 -12
  142. package/lib/engine/twoDimensionalNotation/line/lineHelper.js +60 -76
  143. package/lib/engine/twoDimensionalNotation/lineLike/generatorFactory/lineLikeGeneratorFactory.d.ts +6 -6
  144. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorCurveMiddleware.d.ts +5 -5
  145. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorCurveMiddleware.js +17 -16
  146. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorDefineMiddleware.d.ts +10 -11
  147. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorDefineMiddleware.js +7 -9
  148. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorMiddleware.d.ts +1 -3
  149. package/lib/engine/twoDimensionalNotation/twoDimensionalManager.d.ts +10 -10
  150. package/lib/engine/twoDimensionalNotation/twoDimensionalManager.js +138 -253
  151. package/lib/engine/valueFormatter.d.ts +3 -3
  152. package/lib/engine/valueFormatter.js +6 -6
  153. package/lib/main.d.ts +79 -82
  154. package/lib/main.js +84 -79
  155. package/lib/model/EventEmitter.d.ts +8 -8
  156. package/lib/model/EventEmitter.js +24 -24
  157. package/lib/model/chartStyleModel/chartStyleModel.d.ts +5 -5
  158. package/lib/model/chartStyleModel/chartStyleModel.js +25 -27
  159. package/lib/model/chartStyleModel/colorRange.d.ts +3 -3
  160. package/lib/model/chartStyleModel/colorRange.js +24 -19
  161. package/lib/model/chartStyleModel/twoDimensionalChartStyleModel.d.ts +12 -22
  162. package/lib/model/chartStyleModel/twoDimensionalChartStyleModel.js +60 -69
  163. package/lib/model/configsValidator/configValidator.d.ts +1 -1
  164. package/lib/model/configsValidator/configValidator.js +4 -4
  165. package/lib/model/dataManagerModel/dataManagerModel.d.ts +26 -36
  166. package/lib/model/dataManagerModel/dataManagerModel.js +128 -179
  167. package/lib/model/dataManagerModel/dataManagerModelService.d.ts +2 -2
  168. package/lib/model/dataManagerModel/dataManagerModelService.js +26 -25
  169. package/lib/model/featuresModel/axisModel.d.ts +18 -69
  170. package/lib/model/featuresModel/axisModel.js +169 -224
  171. package/lib/model/featuresModel/axisModelService.d.ts +6 -10
  172. package/lib/model/featuresModel/axisModelService.js +27 -27
  173. package/lib/model/featuresModel/legendModel/legendCanvasModel.d.ts +11 -16
  174. package/lib/model/featuresModel/legendModel/legendCanvasModel.js +59 -55
  175. package/lib/model/featuresModel/legendModel/legendModel.d.ts +3 -7
  176. package/lib/model/featuresModel/legendModel/legendModel.js +41 -59
  177. package/lib/model/featuresModel/legendModel/polarMarginCalculator.d.ts +3 -8
  178. package/lib/model/featuresModel/legendModel/polarMarginCalculator.js +20 -18
  179. package/lib/model/featuresModel/legendModel/twoDimLegendModel.d.ts +4 -8
  180. package/lib/model/featuresModel/legendModel/twoDimLegendModel.js +27 -40
  181. package/lib/model/featuresModel/otherComponents.d.ts +4 -7
  182. package/lib/model/featuresModel/otherComponents.js +9 -9
  183. package/lib/model/featuresModel/recordOverflowModel/recordOverflowModel.d.ts +4 -0
  184. package/lib/model/featuresModel/recordOverflowModel/recordOverflowModel.js +33 -0
  185. package/lib/model/featuresModel/scaleModel/scaleAxisRecalcer.d.ts +6 -6
  186. package/lib/model/featuresModel/scaleModel/scaleAxisRecalcer.js +23 -27
  187. package/lib/model/featuresModel/scaleModel/scaleDomainService.d.ts +5 -19
  188. package/lib/model/featuresModel/scaleModel/scaleDomainService.js +55 -44
  189. package/lib/model/featuresModel/scaleModel/scaleModel.d.ts +10 -10
  190. package/lib/model/featuresModel/scaleModel/scaleModel.js +50 -61
  191. package/lib/model/featuresModel/scaleModel/scaleModelServices.js +22 -15
  192. package/lib/model/featuresModel/titleModel.d.ts +1 -1
  193. package/lib/model/featuresModel/titleModel.js +14 -14
  194. package/lib/model/featuresModel/tooltipModel.d.ts +1 -1
  195. package/lib/model/featuresModel/tooltipModel.js +5 -5
  196. package/lib/model/featuresModel/valueLabelsModel/valueLabelsModel.d.ts +11 -23
  197. package/lib/model/featuresModel/valueLabelsModel/valueLabelsModel.js +51 -53
  198. package/lib/model/helpers/modelHelper.d.ts +7 -7
  199. package/lib/model/helpers/modelHelper.js +42 -38
  200. package/lib/model/helpers/twoDimensionalModelHelper.d.ts +9 -37
  201. package/lib/model/helpers/twoDimensionalModelHelper.js +125 -147
  202. package/lib/model/helpers/unitsFromConfigReader.js +4 -4
  203. package/lib/model/helpers/unitsReader.d.ts +2 -2
  204. package/lib/model/helpers/unitsReader.js +13 -11
  205. package/lib/model/margin/marginModel.d.ts +7 -7
  206. package/lib/model/margin/marginModel.js +20 -23
  207. package/lib/model/margin/twoDim/twoDimMarginModel.d.ts +13 -13
  208. package/lib/model/margin/twoDim/twoDimMarginModel.js +113 -184
  209. package/lib/model/model.d.ts +281 -315
  210. package/lib/model/model.js +4 -4
  211. package/lib/model/modelBuilder.d.ts +18 -27
  212. package/lib/model/modelBuilder.js +79 -85
  213. package/lib/model/modelInstance/canvasModel/canvasModel.d.ts +17 -17
  214. package/lib/model/modelInstance/canvasModel/canvasModel.js +43 -42
  215. package/lib/model/modelInstance/canvasModel/canvasSizesModel/canvasMarginModel.d.ts +7 -7
  216. package/lib/model/modelInstance/canvasModel/canvasSizesModel/canvasSizeModel.d.ts +2 -2
  217. package/lib/model/modelInstance/canvasModel/canvasSizesModel/marginModelService.d.ts +6 -6
  218. package/lib/model/modelInstance/canvasModel/canvasSizesModel/marginModelService.js +24 -24
  219. package/lib/model/modelInstance/canvasModel/legendCanvasModel.d.ts +4 -4
  220. package/lib/model/modelInstance/canvasModel/legendCanvasModel.js +11 -11
  221. package/lib/model/modelInstance/canvasModel/titleCanvas.d.ts +4 -4
  222. package/lib/model/modelInstance/canvasModel/titleCanvas.js +9 -9
  223. package/lib/model/modelInstance/chartBlockVersion/chartBlockVersion.d.ts +3 -3
  224. package/lib/model/modelInstance/chartBlockVersion/chartBlockVersion.js +6 -6
  225. package/lib/model/modelInstance/configReader.d.ts +23 -32
  226. package/lib/model/modelInstance/configReader.js +94 -125
  227. package/lib/model/modelInstance/dataModel/dataModel.d.ts +10 -10
  228. package/lib/model/modelInstance/dataModel/dataModel.js +25 -25
  229. package/lib/model/modelInstance/dataModel/dataRepository.d.ts +14 -14
  230. package/lib/model/modelInstance/dataModel/dataRepository.js +42 -42
  231. package/lib/model/modelInstance/modelInstance.d.ts +6 -11
  232. package/lib/model/modelInstance/modelInstance.js +16 -16
  233. package/lib/model/modelInstance/titleConfigReader.d.ts +8 -8
  234. package/lib/model/modelInstance/titleConfigReader.js +30 -37
  235. package/lib/model/notations/polar/donut/donutAggregatorService.d.ts +6 -9
  236. package/lib/model/notations/polar/donut/donutAggregatorService.js +37 -40
  237. package/lib/model/notations/polar/donut/donutModel.d.ts +5 -9
  238. package/lib/model/notations/polar/donut/donutModel.js +28 -28
  239. package/lib/model/notations/polar/donut/donutThicknessService.d.ts +3 -3
  240. package/lib/model/notations/polar/donut/donutThicknessService.js +15 -13
  241. package/lib/model/notations/polar/polarModel.d.ts +7 -18
  242. package/lib/model/notations/polar/polarModel.js +72 -79
  243. package/lib/model/notations/twoDimensional/styles.d.ts +7 -44
  244. package/lib/model/notations/twoDimensional/styles.js +125 -234
  245. package/lib/model/notations/twoDimensionalModel.d.ts +13 -23
  246. package/lib/model/notations/twoDimensionalModel.js +170 -330
  247. package/lib/optionsServices/publicOptionsService.d.ts +1 -1
  248. package/lib/optionsServices/publicOptionsService.js +4 -4
  249. package/lib/optionsServices/validators/sizeValidator.d.ts +2 -2
  250. package/lib/optionsServices/validators/sizeValidator.js +11 -10
  251. package/lib/style/charts-main.css +151 -150
  252. package/lib/style/charts-main.less +151 -150
  253. package/package.json +5 -5
  254. package/lib/engine/polarNotation/extenders/polarRecordOverflowAlert.d.ts +0 -15
  255. package/lib/engine/polarNotation/extenders/polarRecordOverflowAlert.js +0 -40
  256. package/lib/engine/twoDimensionalNotation/extenders/twoDimRecordOverflowAlert.d.ts +0 -15
  257. package/lib/engine/twoDimensionalNotation/extenders/twoDimRecordOverflowAlert.js +0 -32
@@ -1,24 +1,24 @@
1
1
  export class NewTooltip {
2
- getEl() {
3
- return this.elSelection;
4
- }
5
- findInWrapper(wrapper) {
6
- this.elSelection = wrapper.select(`.${NewTooltip.tooltipBlockClass}`);
7
- return this.elSelection;
8
- }
9
- render(wrapper) {
10
- this.elSelection = wrapper.append("div").attr("class", NewTooltip.tooltipBlockClass);
11
- return this.elSelection;
12
- }
13
- appendContent(content) {
14
- this.elSelection.node().appendChild(content);
15
- }
16
- setCoordinate(coordinate) {
17
- this.elSelection
18
- .style("right", coordinate.right)
19
- .style("bottom", coordinate.bottom)
20
- .style("left", coordinate.left)
21
- .style("top", coordinate.top);
22
- }
2
+ getEl() {
3
+ return this.elSelection;
4
+ }
5
+ findInWrapper(wrapper) {
6
+ this.elSelection = wrapper.select(`.${NewTooltip.tooltipBlockClass}`);
7
+ return this.elSelection;
8
+ }
9
+ render(wrapper) {
10
+ this.elSelection = wrapper.append("div").attr("class", NewTooltip.tooltipBlockClass);
11
+ return this.elSelection;
12
+ }
13
+ appendContent(content) {
14
+ this.elSelection.node().appendChild(content);
15
+ }
16
+ setCoordinate(coordinate) {
17
+ this.elSelection
18
+ .style("right", coordinate.right)
19
+ .style("bottom", coordinate.bottom)
20
+ .style("left", coordinate.left)
21
+ .style("top", coordinate.top);
22
+ }
23
23
  }
24
24
  NewTooltip.tooltipBlockClass = "mdt-charts-tooltip-block";
@@ -1,22 +1,17 @@
1
1
  export interface TooltipPreCoordinate {
2
- top: number;
3
- left: number;
2
+ top: number;
3
+ left: number;
4
4
  }
5
5
  export interface Sizable {
6
- width: number;
7
- height: number;
6
+ width: number;
7
+ height: number;
8
8
  }
9
9
  export interface ElBounding extends Sizable {
10
- left: number;
11
- top: number;
12
- bottom: number;
10
+ left: number;
11
+ top: number;
12
+ bottom: number;
13
13
  }
14
14
  export declare class NewTooltipServiceClass {
15
- getTooltipByWindow(
16
- tooltipBounding: Sizable,
17
- preCoordinate: TooltipPreCoordinate,
18
- windowSize: Sizable,
19
- parentBounding?: ElBounding
20
- ): TooltipPreCoordinate;
15
+ getTooltipByWindow(tooltipBounding: Sizable, preCoordinate: TooltipPreCoordinate, windowSize: Sizable, parentBounding?: ElBounding): TooltipPreCoordinate;
21
16
  }
22
17
  export declare const TooltipService: NewTooltipServiceClass;
@@ -1,29 +1,26 @@
1
1
  export class NewTooltipServiceClass {
2
- getTooltipByWindow(tooltipBounding, preCoordinate, windowSize, parentBounding) {
3
- const scrollPad = 18;
4
- const coordinate = {
5
- top: preCoordinate.top,
6
- left: preCoordinate.left
7
- };
8
- const blockBounding =
9
- parentBounding !== null && parentBounding !== void 0
10
- ? parentBounding
11
- : {
12
- top: 0,
13
- left: 0,
14
- height: windowSize.height,
15
- width: windowSize.width,
16
- bottom: windowSize.height
17
- };
18
- if (preCoordinate.left < 0 && Math.abs(preCoordinate.left) > blockBounding.left)
19
- coordinate.left = -blockBounding.left;
20
- if (blockBounding.left + preCoordinate.left + tooltipBounding.width > windowSize.width - scrollPad)
21
- coordinate.left = windowSize.width - blockBounding.left - tooltipBounding.width - scrollPad;
22
- if (preCoordinate.top + blockBounding.top < 0 && -preCoordinate.top > blockBounding.top)
23
- coordinate.top = -blockBounding.top;
24
- if (blockBounding.top + preCoordinate.top + tooltipBounding.height > windowSize.height)
25
- coordinate.top = blockBounding.height - tooltipBounding.height - (blockBounding.bottom - windowSize.height);
26
- return coordinate;
27
- }
2
+ getTooltipByWindow(tooltipBounding, preCoordinate, windowSize, parentBounding) {
3
+ const scrollPad = 18;
4
+ const coordinate = {
5
+ top: preCoordinate.top,
6
+ left: preCoordinate.left
7
+ };
8
+ const blockBounding = parentBounding !== null && parentBounding !== void 0 ? parentBounding : {
9
+ top: 0,
10
+ left: 0,
11
+ height: windowSize.height,
12
+ width: windowSize.width,
13
+ bottom: windowSize.height
14
+ };
15
+ if (preCoordinate.left < 0 && Math.abs(preCoordinate.left) > blockBounding.left)
16
+ coordinate.left = -blockBounding.left;
17
+ if (blockBounding.left + preCoordinate.left + tooltipBounding.width > windowSize.width - scrollPad)
18
+ coordinate.left = windowSize.width - blockBounding.left - tooltipBounding.width - scrollPad;
19
+ if (preCoordinate.top + blockBounding.top < 0 && -preCoordinate.top > blockBounding.top)
20
+ coordinate.top = -blockBounding.top;
21
+ if (blockBounding.top + preCoordinate.top + tooltipBounding.height > windowSize.height)
22
+ coordinate.top = blockBounding.height - tooltipBounding.height - (blockBounding.bottom - windowSize.height);
23
+ return coordinate;
24
+ }
28
25
  }
29
26
  export const TooltipService = new NewTooltipServiceClass();
@@ -4,21 +4,15 @@ import { MdtChartsDataSource } from "../../../config/config";
4
4
  import { Scales } from "../scale/scale";
5
5
  import { TooltipSettings } from "../../../designer/designerConfig";
6
6
  export declare class Tooltip {
7
- static readonly tooltipBlockClass: string;
8
- static readonly tooltipLineClass = "mdt-charts-tooltip-line";
9
- static readonly tooltipWrapperClass = "mdt-charts-tooltip-wrapper";
10
- static readonly tooltipContentClass = "mdt-charts-tooltip-content";
11
- static readonly tooltipArrowClass = "mdt-charts-tooltip-arrow";
12
- static render(
13
- block: Block,
14
- model: Model<TwoDimensionalOptionsModel | PolarOptionsModel>,
15
- data: MdtChartsDataSource,
16
- tooltipOptions: TooltipSettings,
17
- scales?: Scales
18
- ): void;
19
- static hide(block: Block): void;
20
- private static renderTooltipFor2DCharts;
21
- private static renderTooltipForPolar;
22
- private static renderLineTooltip;
23
- private static renderTooltipForDonut;
7
+ static readonly tooltipBlockClass: string;
8
+ static readonly tooltipLineClass = "mdt-charts-tooltip-line";
9
+ static readonly tooltipWrapperClass = "mdt-charts-tooltip-wrapper";
10
+ static readonly tooltipContentClass = "mdt-charts-tooltip-content";
11
+ static readonly tooltipArrowClass = "mdt-charts-tooltip-arrow";
12
+ static render(block: Block, model: Model<TwoDimensionalOptionsModel | PolarOptionsModel>, data: MdtChartsDataSource, tooltipOptions: TooltipSettings, scales?: Scales): void;
13
+ static hide(block: Block): void;
14
+ private static renderTooltipFor2DCharts;
15
+ private static renderTooltipForPolar;
16
+ private static renderLineTooltip;
17
+ private static renderTooltipForDonut;
24
18
  }
@@ -12,302 +12,148 @@ import { DomHelper } from "../../helpers/domHelper";
12
12
  import { NewTooltip } from "./newTooltip/newTooltip";
13
13
  import { MarkDot } from "../../../engine/features/markDots/markDot";
14
14
  export class Tooltip {
15
- static render(block, model, data, tooltipOptions, scales) {
16
- TooltipComponentsManager.renderTooltipWrapper(block);
17
- const withTooltipIndex = model.options.charts.findIndex((chart) => chart.tooltip.show);
18
- if (withTooltipIndex !== -1) {
19
- if (model.options.type === "2d") {
20
- this.renderTooltipFor2DCharts(
21
- block,
22
- data,
23
- model.blockCanvas.size,
24
- model.chartBlock.margin,
25
- scales,
26
- model.options,
27
- tooltipOptions
28
- );
29
- } else if (model.options.type === "polar") {
30
- this.renderTooltipForPolar(
31
- block,
32
- model.options,
33
- data,
34
- model.blockCanvas.size,
35
- model.chartBlock.margin,
36
- DonutHelper.getThickness(
37
- model.options.chartCanvas,
38
- model.blockCanvas.size,
39
- model.chartBlock.margin
40
- ),
41
- model.otherComponents.tooltipBlock
42
- );
43
- }
44
- }
45
- }
46
- static hide(block) {
47
- TooltipComponentsManager.hideComponent(block.getWrapper().select(`.${this.tooltipBlockClass}`));
48
- TooltipComponentsManager.hideComponent(block.getSvg().select(`.${this.tooltipLineClass}`));
49
- }
50
- static renderTooltipFor2DCharts(block, data, blockSize, margin, scales, options, tooltipOptions) {
51
- if (scales.key.domain().length === 0) return;
52
- const tooltipParams = {
53
- type: "2d",
54
- scales,
55
- margin,
56
- blockSize,
57
- charts: options.charts,
58
- chartOrientation: options.orient,
59
- keyAxisOrient: options.axis.key.orient,
60
- dataOptions: options.data,
61
- scaleKeyModel: options.scale.key,
62
- tooltipSettings: tooltipOptions,
63
- tooltipOptions: options.tooltip
64
- };
65
- this.renderLineTooltip(block, data, tooltipParams);
66
- }
67
- static renderTooltipForPolar(block, options, data, blockSize, margin, chartThickness, tooltipOptions) {
68
- const attrTransform = block.getSvg().select(`.${Donut.donutBlockClass}`).attr("transform");
69
- const translateNums = Helper.getTranslateNumbers(attrTransform);
70
- const arcItems = Donut.getAllArcGroups(block);
71
- this.renderTooltipForDonut(
72
- block,
73
- arcItems,
74
- data,
75
- options.data,
76
- options.charts[0],
77
- blockSize,
78
- margin,
79
- chartThickness,
80
- tooltipOptions,
81
- options.tooltip,
82
- { x: translateNums[0], y: translateNums[1] }
83
- );
84
- }
85
- static renderLineTooltip(block, data, args) {
86
- const tooltipBlock = TooltipComponentsManager.renderTooltipBlock(block);
87
- const tooltipContent = TooltipComponentsManager.renderTooltipContentBlock(tooltipBlock);
88
- const tooltipLine = TooltipComponentsManager.renderTooltipLine(block);
89
- const tipBox = TipBox.renderOrGet(block, args.margin, args.blockSize);
90
- let currentKey = null;
91
- tipBox.on("mousemove", function (e) {
92
- const keyValue =
93
- e.detail.keyValue ||
94
- TipBoxHelper.getKeyValueByPointer(
95
- pointer(e, this),
96
- args.chartOrientation,
97
- args.margin,
98
- args.blockSize,
99
- args.scales.key,
100
- args.scaleKeyModel.type
101
- );
102
- if (args.tooltipSettings.position === "followCursor") {
103
- const tooltipCoordinate = TooltipHelper.getTooltipCursorCoordinate(
104
- e.detail.pointer || pointer(e, this),
105
- block.getSvg().node().getBoundingClientRect(),
106
- tooltipBlock.getEl().node().getBoundingClientRect()
107
- );
108
- TooltipComponentsManager.setLineTooltipCoordinate(
109
- tooltipBlock,
110
- tooltipCoordinate,
111
- args.chartOrientation,
112
- 0
113
- );
114
- }
115
- if (!currentKey || currentKey !== keyValue) {
116
- TooltipComponentsManager.showComponent(tooltipBlock.getEl());
117
- if (args.type === "2d")
118
- TooltipDomHelper.fillForMulti2DCharts(
119
- tooltipContent,
120
- args.charts.filter((ch) => ch.tooltip.show),
121
- data,
122
- args.dataOptions,
123
- keyValue,
124
- args.tooltipOptions
125
- );
126
- if (args.tooltipSettings.position === "fixed") {
127
- const tooltipCoordinate = TooltipHelper.getTooltipFixedCoordinate(
128
- args.scales.key,
129
- args.margin,
130
- keyValue,
131
- block.getSvg().node().getBoundingClientRect(),
132
- tooltipContent.node().getBoundingClientRect(),
133
- args.keyAxisOrient,
134
- window.innerWidth,
135
- window.innerHeight
136
- );
137
- TooltipComponentsManager.setLineTooltipCoordinate(
138
- tooltipBlock,
139
- tooltipCoordinate,
140
- args.chartOrientation,
141
- block.transitionManager.durations.tooltipSlide
142
- );
143
- }
144
- const tooltipLineAttributes = TooltipHelper.getTooltipLineAttributes(
145
- args.scales.key,
146
- args.margin,
147
- keyValue,
148
- args.chartOrientation,
149
- args.blockSize
150
- );
151
- TooltipComponentsManager.setTooltipLineAttributes(
152
- tooltipLine,
153
- tooltipLineAttributes,
154
- block.transitionManager.durations.tooltipSlide
155
- );
156
- TooltipComponentsManager.showComponent(tooltipLine);
157
- if (args.type === "2d") {
158
- args.charts.forEach((chart) => {
159
- const elements = DomHelper.get2DChartElements(block, chart);
160
- if (!block.filterEventManager.isSelected(currentKey)) {
161
- const oldElements = DomHelper.getChartElementsByKeys(
162
- elements,
163
- chart.isSegmented,
164
- args.dataOptions.keyField.name,
165
- [currentKey]
166
- );
167
- if (chart.type !== "bar")
168
- MarkDot.tryMakeMarkDotVisible(oldElements, chart.markersOptions, false);
169
- ElementHighlighter.toggle2DElements(
170
- oldElements,
171
- false,
172
- chart,
173
- block.transitionManager.durations.markerHover
174
- );
175
- if (block.filterEventManager.getSelectedKeys().length > 0) {
176
- ElementHighlighter.toggleActivityStyle(oldElements, false);
177
- }
178
- }
179
- const selectedElements = DomHelper.getChartElementsByKeys(
180
- elements,
181
- chart.isSegmented,
182
- args.dataOptions.keyField.name,
183
- [keyValue]
184
- );
185
- if (chart.type !== "bar")
186
- MarkDot.tryMakeMarkDotVisible(selectedElements, chart.markersOptions, true);
187
- ElementHighlighter.toggleActivityStyle(selectedElements, true);
188
- if (
189
- block.filterEventManager.getSelectedKeys().length === 0 ||
190
- block.filterEventManager.isSelected(keyValue)
191
- ) {
192
- ElementHighlighter.toggle2DElements(
193
- selectedElements,
194
- true,
195
- chart,
196
- block.transitionManager.durations.markerHover
197
- );
198
- }
199
- });
200
- }
201
- currentKey = keyValue;
202
- }
203
- });
204
- tipBox.on("mouseleave", function () {
205
- TooltipComponentsManager.hideComponent(tooltipBlock.getEl());
206
- TooltipComponentsManager.hideComponent(tooltipLine);
207
- if (args.type === "2d")
208
- ElementHighlighter.removeUnselected2DHighlight(
209
- block,
210
- args.dataOptions.keyField.name,
211
- args.charts,
212
- block.transitionManager.durations.markerHover
213
- );
214
- currentKey = null;
215
- });
216
- }
217
- static renderTooltipForDonut(
218
- block,
219
- elements,
220
- data,
221
- dataOptions,
222
- chart,
223
- blockSize,
224
- margin,
225
- donutThickness,
226
- tooltipSettings,
227
- tooltipOptions,
228
- translate
229
- ) {
230
- const tooltipBlock = TooltipComponentsManager.renderTooltipBlock(block);
231
- const tooltipContent = TooltipComponentsManager.renderTooltipContentBlock(tooltipBlock);
232
- let tooltipArrow;
233
- if (tooltipSettings.position === "fixed")
234
- tooltipArrow = TooltipComponentsManager.renderTooltipArrow(tooltipBlock.getEl());
235
- if (tooltipSettings.position === "followCursor") {
236
- elements.on("mousemove", function (e) {
237
- const pointerCoordinate = !pointer(e, block.getSvg().node())[0]
238
- ? e.detail.pointer
239
- : pointer(e, block.getSvg().node());
240
- const tooltipCoordinate = TooltipHelper.getTooltipCursorCoordinate(
241
- pointerCoordinate,
242
- block.getSvg().node().getBoundingClientRect(),
243
- tooltipBlock.getEl().node().getBoundingClientRect()
244
- );
245
- tooltipBlock.setCoordinate(tooltipCoordinate);
246
- });
247
- }
248
- elements.on("mouseover", function (e, dataRow) {
249
- TooltipComponentsManager.showComponent(tooltipBlock.getEl());
250
- TooltipDomHelper.fillForPolarChart(
251
- tooltipContent,
252
- chart,
253
- data,
254
- dataOptions,
255
- dataRow.data[dataOptions.keyField.name],
256
- select(this).select("path").style("fill"),
257
- tooltipOptions
258
- );
259
- if (tooltipSettings.position === "fixed") {
260
- const coordinatePointer = TooltipDomHelper.getRecalcedCoordinateByArrow(
261
- DonutHelper.getArcCentroid(blockSize, margin, dataRow, donutThickness),
262
- tooltipBlock.getEl(),
263
- blockSize,
264
- tooltipArrow,
265
- translate.x,
266
- translate.y
267
- );
268
- coordinatePointer[0] = coordinatePointer[0] + translate.x;
269
- coordinatePointer[1] = coordinatePointer[1] + translate.y;
270
- const tooltipCoordinate = TooltipHelper.getCoordinateByPointer(coordinatePointer);
271
- tooltipBlock.setCoordinate(tooltipCoordinate);
272
- }
273
- ElementHighlighter.toggleActivityStyle(select(this), true);
274
- const clones = Donut.getAllArcClones(block).filter(
275
- (d) => d.data[dataOptions.keyField.name] === dataRow.data[dataOptions.keyField.name]
276
- );
277
- if (
278
- clones.nodes().length === 0 &&
279
- (block.filterEventManager.getSelectedKeys().length === 0 ||
280
- block.filterEventManager.isSelected(dataRow.data[dataOptions.keyField.name]))
281
- ) {
282
- ElementHighlighter.renderArcCloneAndHighlight(block, margin, select(this), blockSize, donutThickness);
283
- }
284
- });
285
- elements.on("mouseleave", function (e, dataRow) {
286
- TooltipComponentsManager.hideComponent(tooltipBlock.getEl());
287
- if (!block.filterEventManager.isSelected(dataRow.data[dataOptions.keyField.name])) {
288
- ElementHighlighter.removeCloneForElem(block, dataOptions.keyField.name, select(this));
289
- ElementHighlighter.removeShadowClone(
290
- block,
291
- dataOptions.keyField.name,
292
- select(this),
293
- margin,
294
- blockSize,
295
- donutThickness
296
- );
297
- ElementHighlighter.toggleDonutHighlightState(
298
- select(this),
299
- margin,
300
- blockSize,
301
- donutThickness,
302
- block.transitionManager.durations.higlightedScale,
303
- false
304
- );
305
- if (block.filterEventManager.getSelectedKeys().length > 0) {
306
- ElementHighlighter.toggleActivityStyle(select(this), false);
307
- }
308
- }
309
- });
310
- }
15
+ static render(block, model, data, tooltipOptions, scales) {
16
+ TooltipComponentsManager.renderTooltipWrapper(block);
17
+ const withTooltipIndex = model.options.charts.findIndex((chart) => chart.tooltip.show);
18
+ if (withTooltipIndex !== -1) {
19
+ if (model.options.type === "2d") {
20
+ this.renderTooltipFor2DCharts(block, data, model.blockCanvas.size, model.chartBlock.margin, scales, model.options, tooltipOptions);
21
+ }
22
+ else if (model.options.type === "polar") {
23
+ this.renderTooltipForPolar(block, model.options, data, model.blockCanvas.size, model.chartBlock.margin, DonutHelper.getThickness(model.options.chartCanvas, model.blockCanvas.size, model.chartBlock.margin), model.otherComponents.tooltipBlock);
24
+ }
25
+ }
26
+ }
27
+ static hide(block) {
28
+ TooltipComponentsManager.hideComponent(block.getWrapper().select(`.${this.tooltipBlockClass}`));
29
+ TooltipComponentsManager.hideComponent(block.getSvg().select(`.${this.tooltipLineClass}`));
30
+ }
31
+ static renderTooltipFor2DCharts(block, data, blockSize, margin, scales, options, tooltipOptions) {
32
+ if (scales.key.domain().length === 0)
33
+ return;
34
+ const tooltipParams = {
35
+ type: "2d",
36
+ scales,
37
+ margin,
38
+ blockSize,
39
+ charts: options.charts,
40
+ chartOrientation: options.orient,
41
+ keyAxisOrient: options.axis.key.orient,
42
+ dataOptions: options.data,
43
+ scaleKeyModel: options.scale.key,
44
+ tooltipSettings: tooltipOptions,
45
+ tooltipOptions: options.tooltip
46
+ };
47
+ this.renderLineTooltip(block, data, tooltipParams);
48
+ }
49
+ static renderTooltipForPolar(block, options, data, blockSize, margin, chartThickness, tooltipOptions) {
50
+ const attrTransform = block.getSvg().select(`.${Donut.donutBlockClass}`).attr("transform");
51
+ const translateNums = Helper.getTranslateNumbers(attrTransform);
52
+ const arcItems = Donut.getAllArcGroups(block);
53
+ this.renderTooltipForDonut(block, arcItems, data, options.data, options.charts[0], blockSize, margin, chartThickness, tooltipOptions, options.tooltip, { x: translateNums[0], y: translateNums[1] });
54
+ }
55
+ static renderLineTooltip(block, data, args) {
56
+ const tooltipBlock = TooltipComponentsManager.renderTooltipBlock(block);
57
+ const tooltipContent = TooltipComponentsManager.renderTooltipContentBlock(tooltipBlock);
58
+ const tooltipLine = TooltipComponentsManager.renderTooltipLine(block);
59
+ const tipBox = TipBox.renderOrGet(block, args.margin, args.blockSize);
60
+ let currentKey = null;
61
+ tipBox.on("mousemove", function (e) {
62
+ const keyValue = e.detail.keyValue ||
63
+ TipBoxHelper.getKeyValueByPointer(pointer(e, this), args.chartOrientation, args.margin, args.blockSize, args.scales.key, args.scaleKeyModel.type);
64
+ if (args.tooltipSettings.position === "followCursor") {
65
+ const tooltipCoordinate = TooltipHelper.getTooltipCursorCoordinate(e.detail.pointer || pointer(e, this), block.getSvg().node().getBoundingClientRect(), tooltipBlock.getEl().node().getBoundingClientRect());
66
+ TooltipComponentsManager.setLineTooltipCoordinate(tooltipBlock, tooltipCoordinate, args.chartOrientation, 0);
67
+ }
68
+ if (!currentKey || currentKey !== keyValue) {
69
+ TooltipComponentsManager.showComponent(tooltipBlock.getEl());
70
+ if (args.type === "2d")
71
+ TooltipDomHelper.fillForMulti2DCharts(tooltipContent, args.charts.filter((ch) => ch.tooltip.show), data, args.dataOptions, keyValue, args.tooltipOptions);
72
+ if (args.tooltipSettings.position === "fixed") {
73
+ const tooltipCoordinate = TooltipHelper.getTooltipFixedCoordinate(args.scales.key, args.margin, keyValue, block.getSvg().node().getBoundingClientRect(), tooltipContent.node().getBoundingClientRect(), args.keyAxisOrient, window.innerWidth, window.innerHeight);
74
+ TooltipComponentsManager.setLineTooltipCoordinate(tooltipBlock, tooltipCoordinate, args.chartOrientation, block.transitionManager.durations.tooltipSlide);
75
+ }
76
+ const tooltipLineAttributes = TooltipHelper.getTooltipLineAttributes(args.scales.key, args.margin, keyValue, args.chartOrientation, args.blockSize);
77
+ TooltipComponentsManager.setTooltipLineAttributes(tooltipLine, tooltipLineAttributes, block.transitionManager.durations.tooltipSlide);
78
+ TooltipComponentsManager.showComponent(tooltipLine);
79
+ if (args.type === "2d") {
80
+ args.charts.forEach((chart) => {
81
+ const elements = DomHelper.get2DChartElements(block, chart);
82
+ if (!block.filterEventManager.isSelected(currentKey)) {
83
+ const oldElements = DomHelper.getChartElementsByKeys(elements, chart.isSegmented, args.dataOptions.keyField.name, [currentKey]);
84
+ if (chart.type !== "bar")
85
+ MarkDot.tryMakeMarkDotVisible(oldElements, chart.markersOptions, false);
86
+ ElementHighlighter.toggle2DElements(oldElements, false, chart, block.transitionManager.durations.markerHover);
87
+ if (block.filterEventManager.getSelectedKeys().length > 0) {
88
+ ElementHighlighter.toggleActivityStyle(oldElements, false);
89
+ }
90
+ }
91
+ const selectedElements = DomHelper.getChartElementsByKeys(elements, chart.isSegmented, args.dataOptions.keyField.name, [keyValue]);
92
+ if (chart.type !== "bar")
93
+ MarkDot.tryMakeMarkDotVisible(selectedElements, chart.markersOptions, true);
94
+ ElementHighlighter.toggleActivityStyle(selectedElements, true);
95
+ if (block.filterEventManager.getSelectedKeys().length === 0 ||
96
+ block.filterEventManager.isSelected(keyValue)) {
97
+ ElementHighlighter.toggle2DElements(selectedElements, true, chart, block.transitionManager.durations.markerHover);
98
+ }
99
+ });
100
+ }
101
+ currentKey = keyValue;
102
+ }
103
+ });
104
+ tipBox.on("mouseleave", function () {
105
+ TooltipComponentsManager.hideComponent(tooltipBlock.getEl());
106
+ TooltipComponentsManager.hideComponent(tooltipLine);
107
+ if (args.type === "2d")
108
+ ElementHighlighter.removeUnselected2DHighlight(block, args.dataOptions.keyField.name, args.charts, block.transitionManager.durations.markerHover);
109
+ currentKey = null;
110
+ });
111
+ }
112
+ static renderTooltipForDonut(block, elements, data, dataOptions, chart, blockSize, margin, donutThickness, tooltipSettings, tooltipOptions, translate) {
113
+ const tooltipBlock = TooltipComponentsManager.renderTooltipBlock(block);
114
+ const tooltipContent = TooltipComponentsManager.renderTooltipContentBlock(tooltipBlock);
115
+ let tooltipArrow;
116
+ if (tooltipSettings.position === "fixed")
117
+ tooltipArrow = TooltipComponentsManager.renderTooltipArrow(tooltipBlock.getEl());
118
+ if (tooltipSettings.position === "followCursor") {
119
+ elements.on("mousemove", function (e) {
120
+ const pointerCoordinate = !pointer(e, block.getSvg().node())[0]
121
+ ? e.detail.pointer
122
+ : pointer(e, block.getSvg().node());
123
+ const tooltipCoordinate = TooltipHelper.getTooltipCursorCoordinate(pointerCoordinate, block.getSvg().node().getBoundingClientRect(), tooltipBlock.getEl().node().getBoundingClientRect());
124
+ tooltipBlock.setCoordinate(tooltipCoordinate);
125
+ });
126
+ }
127
+ elements.on("mouseover", function (e, dataRow) {
128
+ TooltipComponentsManager.showComponent(tooltipBlock.getEl());
129
+ TooltipDomHelper.fillForPolarChart(tooltipContent, chart, data, dataOptions, dataRow.data[dataOptions.keyField.name], select(this).select("path").style("fill"), tooltipOptions);
130
+ if (tooltipSettings.position === "fixed") {
131
+ const coordinatePointer = TooltipDomHelper.getRecalcedCoordinateByArrow(DonutHelper.getArcCentroid(blockSize, margin, dataRow, donutThickness), tooltipBlock.getEl(), blockSize, tooltipArrow, translate.x, translate.y);
132
+ coordinatePointer[0] = coordinatePointer[0] + translate.x;
133
+ coordinatePointer[1] = coordinatePointer[1] + translate.y;
134
+ const tooltipCoordinate = TooltipHelper.getCoordinateByPointer(coordinatePointer);
135
+ tooltipBlock.setCoordinate(tooltipCoordinate);
136
+ }
137
+ ElementHighlighter.toggleActivityStyle(select(this), true);
138
+ const clones = Donut.getAllArcClones(block).filter((d) => d.data[dataOptions.keyField.name] === dataRow.data[dataOptions.keyField.name]);
139
+ if (clones.nodes().length === 0 &&
140
+ (block.filterEventManager.getSelectedKeys().length === 0 ||
141
+ block.filterEventManager.isSelected(dataRow.data[dataOptions.keyField.name]))) {
142
+ ElementHighlighter.renderArcCloneAndHighlight(block, margin, select(this), blockSize, donutThickness);
143
+ }
144
+ });
145
+ elements.on("mouseleave", function (e, dataRow) {
146
+ TooltipComponentsManager.hideComponent(tooltipBlock.getEl());
147
+ if (!block.filterEventManager.isSelected(dataRow.data[dataOptions.keyField.name])) {
148
+ ElementHighlighter.removeCloneForElem(block, dataOptions.keyField.name, select(this));
149
+ ElementHighlighter.removeShadowClone(block, dataOptions.keyField.name, select(this), margin, blockSize, donutThickness);
150
+ ElementHighlighter.toggleDonutHighlightState(select(this), margin, blockSize, donutThickness, block.transitionManager.durations.higlightedScale, false);
151
+ if (block.filterEventManager.getSelectedKeys().length > 0) {
152
+ ElementHighlighter.toggleActivityStyle(select(this), false);
153
+ }
154
+ }
155
+ });
156
+ }
311
157
  }
312
158
  Tooltip.tooltipBlockClass = NewTooltip.tooltipBlockClass;
313
159
  Tooltip.tooltipLineClass = "mdt-charts-tooltip-line";