mdt-charts 1.29.0 → 1.29.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 (257) hide show
  1. package/lib/config/config.d.ts +167 -177
  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 +169 -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 +284 -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 +1 -1
  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
@@ -11,262 +11,147 @@ import { Helper } from "../helpers/helper";
11
11
  import { Area } from "./area/area";
12
12
  import { Bar } from "./bar/bar";
13
13
  import { BarHelper } from "./bar/barHelper";
14
- import { TwoDimRecordOverflowAlert } from "./extenders/twoDimRecordOverflowAlert";
15
14
  import { Line } from "./line/line";
16
15
  import { CanvasValueLabels } from "../../engine/features/valueLabels/valueLabels";
17
16
  import { LinearGradientDef } from "../../engine/block/defs/LinearGradientDef";
18
17
  import { CanvasDotChart } from "./dot/dotChart";
18
+ import { RecordOverflowAlertCore } from "../features/recordOverflowAlert/recordOverflowAlertCore";
19
19
  export class TwoDimensionalManager {
20
- render(engine, model) {
21
- const options = model.options;
22
- const scales = Scale.getScalesWithSecondary(
23
- options.scale.key,
24
- options.scale.value,
25
- options.scale.valueSecondary,
26
- options.chartSettings.bar
27
- );
28
- engine.block.scales = scales;
29
- engine.block.svg.render(model.blockCanvas.size);
30
- Axis.render(engine.block, scales, options.scale, options.axis, model.blockCanvas.size);
31
- GridLine.render(
32
- engine.block,
33
- options.additionalElements.gridLine,
34
- options.axis,
35
- model.blockCanvas.size,
36
- model.chartBlock.margin,
37
- scales
38
- );
39
- this.dotChart = new CanvasDotChart({
40
- elementAccessors: {
41
- getBlock: () => engine.block
42
- },
43
- canvas: {
44
- keyAxisOrient: options.axis.key.orient
45
- },
46
- dataOptions: {
47
- keyFieldName: options.data.keyField.name
48
- },
49
- bandOptions: {
50
- settings: options.chartSettings.bar
51
- }
52
- });
53
- this.renderCharts(
54
- engine.block,
55
- options.charts,
56
- scales,
57
- engine.data,
58
- options.data,
59
- model.chartBlock.margin,
60
- options.axis.key.orient,
61
- options.chartSettings,
62
- model.blockCanvas.size
63
- );
64
- Axis.raiseKeyAxis(engine.block, options.axis.key);
65
- engine.block.filterEventManager.registerEventFor2D(
66
- scales.key,
67
- model.chartBlock.margin,
68
- model.blockCanvas.size,
69
- options
70
- );
71
- engine.block.filterEventManager.event2DUpdate(options);
72
- Title.render(engine.block, options.title, model.otherComponents.titleBlock, model.blockCanvas.size);
73
- Legend.get().render(engine.block, engine.data, options, model);
74
- Tooltip.render(engine.block, model, engine.data, model.otherComponents.tooltipBlock, scales);
75
- if (model.dataSettings.scope.hidedRecordsAmount !== 0)
76
- TwoDimRecordOverflowAlert.render(engine.block, {
77
- hidedRecordsAmount: model.dataSettings.scope.hidedRecordsAmount,
78
- chartOrientation: options.orient
79
- });
80
- engine.block.getSvg().on("click", (e) => {
81
- if (e.target === engine.block.getSvg().node()) this.clearSelection(engine.block.filterEventManager, model);
82
- });
83
- this.canvasValueLabels = new CanvasValueLabels({
84
- elementAccessors: {
85
- getBlock: () => engine.block
86
- },
87
- data: {
88
- keyFieldName: options.data.keyField.name
89
- },
90
- canvas: {
91
- keyAxisOrient: options.axis.key.orient,
92
- valueLabels: options.valueLabels,
93
- style: options.valueLabels.style
94
- }
95
- });
96
- this.canvasValueLabels.render(scales, options.charts, engine.data, options.data);
97
- if (options.defs) {
98
- this.linearGradientDef = new LinearGradientDef();
99
- this.linearGradientDef.render(engine.block.svg.ensureDefsRendered(), options.defs.gradients);
100
- }
101
- }
102
- updateData(block, model, data) {
103
- block.transitionManager.interruptTransitions();
104
- block.filterEventManager.updateData(data[model.options.data.dataSource]);
105
- Title.updateData(block, model.options.title);
106
- TipBox.clearEvents(block);
107
- Tooltip.hide(block);
108
- const options = model.options;
109
- ElementHighlighter.remove2DChartsFullHighlighting(block, options.charts);
110
- const scales = Scale.getScalesWithSecondary(
111
- options.scale.key,
112
- options.scale.value,
113
- options.scale.valueSecondary,
114
- options.chartSettings.bar
115
- );
116
- const keyDomainEquality = Helper.checkDomainsEquality(block.scales.key.domain(), scales.key.domain());
117
- block.scales = scales;
118
- Axis.update(block, scales, options.scale, options.axis, model.blockCanvas.size, keyDomainEquality);
119
- GridLine.update(
120
- block,
121
- options.additionalElements.gridLine,
122
- options.axis,
123
- model.blockCanvas.size,
124
- model.chartBlock.margin,
125
- scales
126
- );
127
- const promises = this.updateCharts(
128
- block,
129
- options.charts,
130
- scales,
131
- data,
132
- model.options.data,
133
- model.chartBlock.margin,
134
- options.axis.key.orient,
135
- model.blockCanvas.size,
136
- options.chartSettings
137
- );
138
- Promise.all(promises).then(() => {
139
- block.filterEventManager.event2DUpdate(options);
140
- block.filterEventManager.registerEventFor2D(
141
- scales.key,
142
- model.chartBlock.margin,
143
- model.blockCanvas.size,
144
- options
145
- );
146
- Tooltip.render(block, model, data, model.otherComponents.tooltipBlock, scales);
147
- });
148
- TwoDimRecordOverflowAlert.update(block, {
149
- hidedRecordsAmount: model.dataSettings.scope.hidedRecordsAmount,
150
- chartOrientation: options.orient
151
- });
152
- if (this.canvasValueLabels)
153
- this.canvasValueLabels.update(scales, options.charts, data, model.options.data, options.valueLabels);
154
- }
155
- updateColors(block, model) {
156
- var _a;
157
- Legend.get().updateColors(block, model.options);
158
- (_a = this.linearGradientDef) === null || _a === void 0
159
- ? void 0
160
- : _a.updateColors(block.svg.ensureDefsRendered(), model.options.defs.gradients);
161
- model.options.charts.forEach((chart) => {
162
- if (chart.type === "bar") Bar.get().updateColors(block, chart);
163
- else if (chart.type === "line")
164
- Line.get({
165
- staticSettings: model.options.chartSettings.lineLike
166
- }).updateColors(block, chart);
167
- else if (chart.type === "area")
168
- Area.get({
169
- staticSettings: model.options.chartSettings.lineLike
170
- }).updateColors(block, chart);
171
- });
172
- }
173
- clearSelection(filterEventManager, model) {
174
- filterEventManager.clearKeysFor2D(model.options);
175
- }
176
- renderCharts(block, charts, scales, data, dataOptions, margin, keyAxisOrient, chartSettings, blockSize) {
177
- block.svg.renderChartClipPath(margin, blockSize);
178
- block.svg.renderBarHatchPattern();
179
- block.svg.renderChartsBlock();
180
- charts.forEach((chart) => {
181
- const chartScales = {
182
- key: scales.key,
183
- value: chart.data.valueGroup === "secondary" ? scales.valueSecondary : scales.value
184
- };
185
- if (chart.type === "bar")
186
- Bar.get().render(
187
- block,
188
- chartScales,
189
- data[dataOptions.dataSource],
190
- dataOptions.keyField,
191
- margin,
192
- keyAxisOrient,
193
- chart,
194
- blockSize,
195
- chartSettings.bar,
196
- BarHelper.getBarsInGroupAmount(charts)
197
- );
198
- else if (chart.type === "line")
199
- Line.get({ staticSettings: chartSettings.lineLike }).render(
200
- block,
201
- chartScales,
202
- data[dataOptions.dataSource],
203
- dataOptions.keyField,
204
- margin,
205
- keyAxisOrient,
206
- chart
207
- );
208
- else if (chart.type === "area")
209
- Area.get({ staticSettings: chartSettings.lineLike }).render(
210
- block,
211
- chartScales,
212
- data[dataOptions.dataSource],
213
- dataOptions.keyField,
214
- margin,
215
- keyAxisOrient,
216
- chart
217
- );
218
- else if (chart.type === "dot")
219
- this.dotChart.render(chartScales, chart, data[dataOptions.dataSource], margin);
220
- });
221
- EmbeddedLabels.raiseGroups(block);
222
- }
223
- updateCharts(block, charts, scales, data, dataOptions, margin, keyAxisOrient, blockSize, chartSettings) {
224
- block.svg.updateChartClipPath(margin, blockSize);
225
- let promises = [];
226
- charts.forEach((chart) => {
227
- const chartScales = {
228
- key: scales.key,
229
- value: chart.data.valueGroup === "secondary" ? scales.valueSecondary : scales.value
230
- };
231
- let proms;
232
- if (chart.type === "bar") {
233
- proms = Bar.get().update(
234
- block,
235
- data[dataOptions.dataSource],
236
- chartScales,
237
- margin,
238
- keyAxisOrient,
239
- chart,
240
- blockSize,
241
- BarHelper.getBarsInGroupAmount(charts),
242
- dataOptions.keyField,
243
- chartSettings.bar
244
- );
245
- } else if (chart.type === "line") {
246
- proms = Line.get({ staticSettings: chartSettings.lineLike }).update(
247
- block,
248
- chartScales,
249
- data[dataOptions.dataSource],
250
- dataOptions.keyField,
251
- margin,
252
- keyAxisOrient,
253
- chart
254
- );
255
- } else if (chart.type === "area") {
256
- proms = Area.get({ staticSettings: chartSettings.lineLike }).update(
257
- block,
258
- chartScales,
259
- data[dataOptions.dataSource],
260
- dataOptions.keyField,
261
- margin,
262
- chart,
263
- keyAxisOrient
264
- );
265
- } else if (chart.type === "dot") {
266
- proms = this.dotChart.update(chartScales, data[dataOptions.dataSource], margin);
267
- }
268
- promises.push(...proms);
269
- });
270
- return promises;
271
- }
20
+ render(engine, model) {
21
+ const options = model.options;
22
+ const scales = Scale.getScalesWithSecondary(options.scale.key, options.scale.value, options.scale.valueSecondary, options.chartSettings.bar);
23
+ engine.block.scales = scales;
24
+ engine.block.svg.render(model.blockCanvas.size);
25
+ Axis.render(engine.block, scales, options.scale, options.axis, model.blockCanvas.size);
26
+ GridLine.render(engine.block, options.additionalElements.gridLine, options.axis, model.blockCanvas.size, model.chartBlock.margin, scales);
27
+ this.dotChart = new CanvasDotChart({
28
+ elementAccessors: {
29
+ getBlock: () => engine.block
30
+ },
31
+ canvas: {
32
+ keyAxisOrient: options.axis.key.orient
33
+ },
34
+ dataOptions: {
35
+ keyFieldName: options.data.keyField.name
36
+ },
37
+ bandOptions: {
38
+ settings: options.chartSettings.bar
39
+ }
40
+ });
41
+ this.renderCharts(engine.block, options.charts, scales, engine.data, options.data, model.chartBlock.margin, options.axis.key.orient, options.chartSettings, model.blockCanvas.size);
42
+ Axis.raiseKeyAxis(engine.block, options.axis.key);
43
+ engine.block.filterEventManager.registerEventFor2D(scales.key, model.chartBlock.margin, model.blockCanvas.size, options);
44
+ engine.block.filterEventManager.event2DUpdate(options);
45
+ Title.render(engine.block, options.title, model.otherComponents.titleBlock, model.blockCanvas.size);
46
+ Legend.get().render(engine.block, engine.data, options, model);
47
+ Tooltip.render(engine.block, model, engine.data, model.otherComponents.tooltipBlock, scales);
48
+ if (model.dataSettings.scope.hidedRecordsAmount !== 0)
49
+ RecordOverflowAlertCore.render(engine.block, options.recordOverflowAlert);
50
+ engine.block.getSvg().on("click", (e) => {
51
+ if (e.target === engine.block.getSvg().node())
52
+ this.clearSelection(engine.block.filterEventManager, model);
53
+ });
54
+ this.canvasValueLabels = new CanvasValueLabels({
55
+ elementAccessors: {
56
+ getBlock: () => engine.block
57
+ },
58
+ data: {
59
+ keyFieldName: options.data.keyField.name
60
+ },
61
+ canvas: {
62
+ keyAxisOrient: options.axis.key.orient,
63
+ valueLabels: options.valueLabels,
64
+ style: options.valueLabels.style
65
+ }
66
+ });
67
+ this.canvasValueLabels.render(scales, options.charts, engine.data, options.data);
68
+ if (options.defs) {
69
+ this.linearGradientDef = new LinearGradientDef();
70
+ this.linearGradientDef.render(engine.block.svg.ensureDefsRendered(), options.defs.gradients);
71
+ }
72
+ }
73
+ updateData(block, model, data) {
74
+ block.transitionManager.interruptTransitions();
75
+ block.filterEventManager.updateData(data[model.options.data.dataSource]);
76
+ Title.updateData(block, model.options.title);
77
+ TipBox.clearEvents(block);
78
+ Tooltip.hide(block);
79
+ const options = model.options;
80
+ ElementHighlighter.remove2DChartsFullHighlighting(block, options.charts);
81
+ const scales = Scale.getScalesWithSecondary(options.scale.key, options.scale.value, options.scale.valueSecondary, options.chartSettings.bar);
82
+ const keyDomainEquality = Helper.checkDomainsEquality(block.scales.key.domain(), scales.key.domain());
83
+ block.scales = scales;
84
+ Axis.update(block, scales, options.scale, options.axis, model.blockCanvas.size, keyDomainEquality);
85
+ GridLine.update(block, options.additionalElements.gridLine, options.axis, model.blockCanvas.size, model.chartBlock.margin, scales);
86
+ const promises = this.updateCharts(block, options.charts, scales, data, model.options.data, model.chartBlock.margin, options.axis.key.orient, model.blockCanvas.size, options.chartSettings);
87
+ Promise.all(promises).then(() => {
88
+ block.filterEventManager.event2DUpdate(options);
89
+ block.filterEventManager.registerEventFor2D(scales.key, model.chartBlock.margin, model.blockCanvas.size, options);
90
+ Tooltip.render(block, model, data, model.otherComponents.tooltipBlock, scales);
91
+ });
92
+ RecordOverflowAlertCore.update(block, options.recordOverflowAlert);
93
+ if (this.canvasValueLabels)
94
+ this.canvasValueLabels.update(scales, options.charts, data, model.options.data, options.valueLabels);
95
+ }
96
+ updateColors(block, model) {
97
+ var _a;
98
+ Legend.get().updateColors(block, model.options);
99
+ (_a = this.linearGradientDef) === null || _a === void 0 ? void 0 : _a.updateColors(block.svg.ensureDefsRendered(), model.options.defs.gradients);
100
+ model.options.charts.forEach((chart) => {
101
+ if (chart.type === "bar")
102
+ Bar.get().updateColors(block, chart);
103
+ else if (chart.type === "line")
104
+ Line.get({ staticSettings: model.options.chartSettings.lineLike }).updateColors(block, chart);
105
+ else if (chart.type === "area")
106
+ Area.get({ staticSettings: model.options.chartSettings.lineLike }).updateColors(block, chart);
107
+ });
108
+ }
109
+ clearSelection(filterEventManager, model, options) {
110
+ filterEventManager.clearKeysFor2D(model.options, options);
111
+ }
112
+ renderCharts(block, charts, scales, data, dataOptions, margin, keyAxisOrient, chartSettings, blockSize) {
113
+ block.svg.renderChartClipPath(margin, blockSize);
114
+ block.svg.renderBarHatchPattern();
115
+ block.svg.renderChartsBlock();
116
+ charts.forEach((chart) => {
117
+ const chartScales = {
118
+ key: scales.key,
119
+ value: chart.data.valueGroup === "secondary" ? scales.valueSecondary : scales.value
120
+ };
121
+ if (chart.type === "bar")
122
+ Bar.get().render(block, chartScales, data[dataOptions.dataSource], dataOptions.keyField, margin, keyAxisOrient, chart, blockSize, chartSettings.bar, BarHelper.getBarsInGroupAmount(charts));
123
+ else if (chart.type === "line")
124
+ Line.get({ staticSettings: chartSettings.lineLike }).render(block, chartScales, data[dataOptions.dataSource], dataOptions.keyField, margin, keyAxisOrient, chart);
125
+ else if (chart.type === "area")
126
+ Area.get({ staticSettings: chartSettings.lineLike }).render(block, chartScales, data[dataOptions.dataSource], dataOptions.keyField, margin, keyAxisOrient, chart);
127
+ else if (chart.type === "dot")
128
+ this.dotChart.render(chartScales, chart, data[dataOptions.dataSource], margin);
129
+ });
130
+ EmbeddedLabels.raiseGroups(block);
131
+ }
132
+ updateCharts(block, charts, scales, data, dataOptions, margin, keyAxisOrient, blockSize, chartSettings) {
133
+ block.svg.updateChartClipPath(margin, blockSize);
134
+ let promises = [];
135
+ charts.forEach((chart) => {
136
+ const chartScales = {
137
+ key: scales.key,
138
+ value: chart.data.valueGroup === "secondary" ? scales.valueSecondary : scales.value
139
+ };
140
+ let proms;
141
+ if (chart.type === "bar") {
142
+ proms = Bar.get().update(block, data[dataOptions.dataSource], chartScales, margin, keyAxisOrient, chart, blockSize, BarHelper.getBarsInGroupAmount(charts), dataOptions.keyField, chartSettings.bar);
143
+ }
144
+ else if (chart.type === "line") {
145
+ proms = Line.get({ staticSettings: chartSettings.lineLike }).update(block, chartScales, data[dataOptions.dataSource], dataOptions.keyField, margin, keyAxisOrient, chart);
146
+ }
147
+ else if (chart.type === "area") {
148
+ proms = Area.get({ staticSettings: chartSettings.lineLike }).update(block, chartScales, data[dataOptions.dataSource], dataOptions.keyField, margin, chart, keyAxisOrient);
149
+ }
150
+ else if (chart.type === "dot") {
151
+ proms = this.dotChart.update(chartScales, data[dataOptions.dataSource], margin);
152
+ }
153
+ promises.push(...proms);
154
+ });
155
+ return promises;
156
+ }
272
157
  }
@@ -1,6 +1,6 @@
1
1
  import { Formatter } from "../designer/designerConfig";
2
2
  export declare class ValueFormatter {
3
- private static format;
4
- static formatField(fieldFormat: string, value: any): string;
5
- static setFormatFunction(formatFunction: Formatter): void;
3
+ private static format;
4
+ static formatField(fieldFormat: string, value: any): string;
5
+ static setFormatFunction(formatFunction: Formatter): void;
6
6
  }
@@ -1,8 +1,8 @@
1
1
  export class ValueFormatter {
2
- static formatField(fieldFormat, value) {
3
- return this.format(value, { type: fieldFormat });
4
- }
5
- static setFormatFunction(formatFunction) {
6
- this.format = formatFunction;
7
- }
2
+ static formatField(fieldFormat, value) {
3
+ return this.format(value, { type: fieldFormat });
4
+ }
5
+ static setFormatFunction(formatFunction) {
6
+ this.format = formatFunction;
7
+ }
8
8
  }
package/lib/main.d.ts CHANGED
@@ -1,91 +1,88 @@
1
1
  import { MdtChartsConfig, MdtChartsDataSource, NewSize, Size } from "./config/config";
2
2
  import { DesignerConfig } from "./designer/designerConfig";
3
3
  import { FilterCallback } from "./engine/filterManager/filterEventManager";
4
+ interface ChartClearSelectionPublicOptions {
5
+ /** @default true */
6
+ fireEvent?: boolean;
7
+ }
4
8
  export interface IChart {
5
- /**
6
- * Рендер графика
7
- * @param parentElement родительский элемент для графика
8
- */
9
- render(parentElement: HTMLElement): void;
10
- /**
11
- * Удаление графика со страницы
12
- */
13
- destroy(): void;
14
- /**
15
- * Обновление графика для новых данных
16
- * @param data Новые данные
17
- */
18
- updateData(data: MdtChartsDataSource): void;
19
- /**
20
- * Изменение размера блока с графиком
21
- * @param newSize Новый размер
22
- */
23
- updateSize(newSize: Size): void;
24
- /**
25
- * Обновление цветов графиков на основе новых базовых цветов
26
- * @param newColors Новые базовые цвета
27
- */
28
- updateColors(newColors: string[]): void;
29
- /**
30
- * Сброс выделения ключей
31
- */
32
- clearSelection(): void;
9
+ /**
10
+ * Рендер графика
11
+ * @param parentElement родительский элемент для графика
12
+ */
13
+ render(parentElement: HTMLElement): void;
14
+ /**
15
+ * Удаление графика со страницы
16
+ */
17
+ destroy(): void;
18
+ /**
19
+ * Обновление графика для новых данных
20
+ * @param data Новые данные
21
+ */
22
+ updateData(data: MdtChartsDataSource): void;
23
+ /**
24
+ * Изменение размера блока с графиком
25
+ * @param newSize Новый размер
26
+ */
27
+ updateSize(newSize: Size): void;
28
+ /**
29
+ * Обновление цветов графиков на основе новых базовых цветов
30
+ * @param newColors Новые базовые цвета
31
+ */
32
+ updateColors(newColors: string[]): void;
33
+ /**
34
+ * Сброс выделения ключей
35
+ */
36
+ clearSelection(options?: ChartClearSelectionPublicOptions): void;
33
37
  }
34
38
  export declare class Chart implements IChart {
35
- static chartCounter: number;
36
- private config;
37
- private designerConfig;
38
- private model;
39
- private data;
40
- private parentElement;
41
- private isResizable;
42
- private readonly id;
43
- private engine;
44
- private resizeHandler;
45
- /**
46
- * @param config Объект конфигуратора
47
- * @param designerConfig Объект конфигуратора дизайнера
48
- * @param data Данные
49
- * @param isResizable Флаг подстройки размера блока графика под родительский элемент
50
- * @param filterCallback Функция коллбэк, вызываемая во время клика на элемент графика. Предназначена для обеспечения кросс-фильтрации
51
- * @param selectedIds Id выделенных записей
52
- */
53
- constructor(
54
- config: MdtChartsConfig,
55
- designerConfig: DesignerConfig,
56
- data: MdtChartsDataSource,
57
- isResizable?: boolean,
58
- filterCallback?: FilterCallback,
59
- selectedIds?: number[]
60
- );
61
- /**
62
- * Рендер графика
63
- * @param parentElement родительский элемент для графика
64
- */
65
- render(parentElement: HTMLElement): void;
66
- /**
67
- * Удаление графика со страницы
68
- */
69
- destroy(): void;
70
- /**
71
- * Обновление графика для новых данных
72
- * @param data Новые данные
73
- */
74
- updateData(data: MdtChartsDataSource): void;
75
- /**
76
- * Изменение размера блока с графиком
77
- * @param newSize Новый размер
78
- */
79
- updateSize(newSize: Partial<NewSize>): void;
80
- /**
81
- * Обновление цветов графиков на основе новых базовых цветов
82
- * @param newColors Новые базовые цвета
83
- */
84
- updateColors(newColors: string[]): void;
85
- clearSelection(): void;
86
- private registerResizeEvent;
87
- private removeResizeEvent;
88
- private resizeListener;
39
+ static chartCounter: number;
40
+ private config;
41
+ private designerConfig;
42
+ private model;
43
+ private data;
44
+ private parentElement;
45
+ private isResizable;
46
+ private readonly id;
47
+ private engine;
48
+ private resizeHandler;
49
+ /**
50
+ * @param config Объект конфигуратора
51
+ * @param designerConfig Объект конфигуратора дизайнера
52
+ * @param data Данные
53
+ * @param isResizable Флаг подстройки размера блока графика под родительский элемент
54
+ * @param filterCallback Функция коллбэк, вызываемая во время клика на элемент графика. Предназначена для обеспечения кросс-фильтрации
55
+ * @param selectedIds Id выделенных записей
56
+ */
57
+ constructor(config: MdtChartsConfig, designerConfig: DesignerConfig, data: MdtChartsDataSource, isResizable?: boolean, filterCallback?: FilterCallback, selectedIds?: number[]);
58
+ /**
59
+ * Рендер графика
60
+ * @param parentElement родительский элемент для графика
61
+ */
62
+ render(parentElement: HTMLElement): void;
63
+ /**
64
+ * Удаление графика со страницы
65
+ */
66
+ destroy(): void;
67
+ /**
68
+ * Обновление графика для новых данных
69
+ * @param data Новые данные
70
+ */
71
+ updateData(data: MdtChartsDataSource): void;
72
+ /**
73
+ * Изменение размера блока с графиком
74
+ * @param newSize Новый размер
75
+ */
76
+ updateSize(newSize: Partial<NewSize>): void;
77
+ /**
78
+ * Обновление цветов графиков на основе новых базовых цветов
79
+ * @param newColors Новые базовые цвета
80
+ */
81
+ updateColors(newColors: string[]): void;
82
+ clearSelection(options?: ChartClearSelectionPublicOptions): void;
83
+ private registerResizeEvent;
84
+ private removeResizeEvent;
85
+ private resizeListener;
89
86
  }
90
87
  export * from "./config/config";
91
88
  export * from "./designer/designerConfig";