mdt-charts 1.28.1 → 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
@@ -17,147 +17,256 @@ import { CanvasValueLabels } from "../../engine/features/valueLabels/valueLabels
17
17
  import { LinearGradientDef } from "../../engine/block/defs/LinearGradientDef";
18
18
  import { CanvasDotChart } from "./dot/dotChart";
19
19
  export class TwoDimensionalManager {
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
- TwoDimRecordOverflowAlert.render(engine.block, {
50
- hidedRecordsAmount: model.dataSettings.scope.hidedRecordsAmount,
51
- chartOrientation: options.orient
52
- });
53
- engine.block.getSvg().on("click", (e) => {
54
- if (e.target === engine.block.getSvg().node())
55
- this.clearSelection(engine.block.filterEventManager, model);
56
- });
57
- this.canvasValueLabels = new CanvasValueLabels({
58
- elementAccessors: {
59
- getBlock: () => engine.block
60
- },
61
- data: {
62
- keyFieldName: options.data.keyField.name
63
- },
64
- canvas: {
65
- keyAxisOrient: options.axis.key.orient,
66
- valueLabels: options.valueLabels,
67
- style: options.valueLabels.style
68
- }
69
- });
70
- this.canvasValueLabels.render(scales, options.charts, engine.data, options.data);
71
- if (options.defs) {
72
- this.linearGradientDef = new LinearGradientDef();
73
- this.linearGradientDef.render(engine.block.svg.ensureDefsRendered(), options.defs.gradients);
74
- }
75
- }
76
- updateData(block, model, data) {
77
- block.transitionManager.interruptTransitions();
78
- block.filterEventManager.updateData(data[model.options.data.dataSource]);
79
- Title.updateData(block, model.options.title);
80
- TipBox.clearEvents(block);
81
- Tooltip.hide(block);
82
- const options = model.options;
83
- ElementHighlighter.remove2DChartsFullHighlighting(block, options.charts);
84
- const scales = Scale.getScalesWithSecondary(options.scale.key, options.scale.value, options.scale.valueSecondary, options.chartSettings.bar);
85
- const keyDomainEquality = Helper.checkDomainsEquality(block.scales.key.domain(), scales.key.domain());
86
- block.scales = scales;
87
- Axis.update(block, scales, options.scale, options.axis, model.blockCanvas.size, keyDomainEquality);
88
- GridLine.update(block, options.additionalElements.gridLine, options.axis, model.blockCanvas.size, model.chartBlock.margin, scales);
89
- const promises = this.updateCharts(block, options.charts, scales, data, model.options.data, model.chartBlock.margin, options.axis.key.orient, model.blockCanvas.size, options.chartSettings);
90
- Promise.all(promises).then(() => {
91
- block.filterEventManager.event2DUpdate(options);
92
- block.filterEventManager.registerEventFor2D(scales.key, model.chartBlock.margin, model.blockCanvas.size, options);
93
- Tooltip.render(block, model, data, model.otherComponents.tooltipBlock, scales);
94
- });
95
- TwoDimRecordOverflowAlert.update(block, {
96
- hidedRecordsAmount: model.dataSettings.scope.hidedRecordsAmount,
97
- chartOrientation: options.orient
98
- });
99
- if (this.canvasValueLabels)
100
- this.canvasValueLabels.update(scales, options.charts, data, model.options.data);
101
- }
102
- updateColors(block, model) {
103
- var _a;
104
- Legend.get().updateColors(block, model.options);
105
- (_a = this.linearGradientDef) === null || _a === void 0 ? void 0 : _a.updateColors(block.svg.ensureDefsRendered(), model.options.defs.gradients);
106
- model.options.charts.forEach((chart) => {
107
- if (chart.type === "bar")
108
- Bar.get().updateColors(block, chart);
109
- else if (chart.type === "line")
110
- Line.get({ staticSettings: model.options.chartSettings.lineLike }).updateColors(block, chart);
111
- else if (chart.type === "area")
112
- Area.get({ staticSettings: model.options.chartSettings.lineLike }).updateColors(block, chart);
113
- });
114
- }
115
- clearSelection(filterEventManager, model) {
116
- filterEventManager.clearKeysFor2D(model.options);
117
- }
118
- renderCharts(block, charts, scales, data, dataOptions, margin, keyAxisOrient, chartSettings, blockSize) {
119
- block.svg.renderChartClipPath(margin, blockSize);
120
- block.svg.renderBarHatchPattern();
121
- block.svg.renderChartsBlock();
122
- charts.forEach((chart) => {
123
- const chartScales = {
124
- key: scales.key,
125
- value: chart.data.valueGroup === "secondary" ? scales.valueSecondary : scales.value
126
- };
127
- if (chart.type === "bar")
128
- Bar.get().render(block, chartScales, data[dataOptions.dataSource], dataOptions.keyField, margin, keyAxisOrient, chart, blockSize, chartSettings.bar, BarHelper.getBarsInGroupAmount(charts));
129
- else if (chart.type === "line")
130
- Line.get({ staticSettings: chartSettings.lineLike }).render(block, chartScales, data[dataOptions.dataSource], dataOptions.keyField, margin, keyAxisOrient, chart);
131
- else if (chart.type === "area")
132
- Area.get({ staticSettings: chartSettings.lineLike }).render(block, chartScales, data[dataOptions.dataSource], dataOptions.keyField, margin, keyAxisOrient, chart);
133
- else if (chart.type === "dot")
134
- this.dotChart.render(chartScales, chart, data[dataOptions.dataSource], margin);
135
- });
136
- EmbeddedLabels.raiseGroups(block);
137
- }
138
- updateCharts(block, charts, scales, data, dataOptions, margin, keyAxisOrient, blockSize, chartSettings) {
139
- block.svg.updateChartClipPath(margin, blockSize);
140
- let promises = [];
141
- charts.forEach((chart) => {
142
- const chartScales = {
143
- key: scales.key,
144
- value: chart.data.valueGroup === "secondary" ? scales.valueSecondary : scales.value
145
- };
146
- let proms;
147
- if (chart.type === "bar") {
148
- proms = Bar.get().update(block, data[dataOptions.dataSource], chartScales, margin, keyAxisOrient, chart, blockSize, BarHelper.getBarsInGroupAmount(charts), dataOptions.keyField, chartSettings.bar);
149
- }
150
- else if (chart.type === "line") {
151
- proms = Line.get({ staticSettings: chartSettings.lineLike }).update(block, chartScales, data[dataOptions.dataSource], dataOptions.keyField, margin, keyAxisOrient, chart);
152
- }
153
- else if (chart.type === "area") {
154
- proms = Area.get({ staticSettings: chartSettings.lineLike }).update(block, chartScales, data[dataOptions.dataSource], dataOptions.keyField, margin, chart, keyAxisOrient);
155
- }
156
- else if (chart.type === "dot") {
157
- proms = this.dotChart.update(chartScales, data[dataOptions.dataSource], margin);
158
- }
159
- promises.push(...proms);
160
- });
161
- return promises;
162
- }
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
+ }
163
272
  }
@@ -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
@@ -2,83 +2,90 @@ import { MdtChartsConfig, MdtChartsDataSource, NewSize, Size } from "./config/co
2
2
  import { DesignerConfig } from "./designer/designerConfig";
3
3
  import { FilterCallback } from "./engine/filterManager/filterEventManager";
4
4
  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;
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;
33
33
  }
34
34
  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(config: MdtChartsConfig, designerConfig: DesignerConfig, data: MdtChartsDataSource, isResizable?: boolean, filterCallback?: FilterCallback, selectedIds?: number[]);
54
- /**
55
- * Рендер графика
56
- * @param parentElement родительский элемент для графика
57
- */
58
- render(parentElement: HTMLElement): void;
59
- /**
60
- * Удаление графика со страницы
61
- */
62
- destroy(): void;
63
- /**
64
- * Обновление графика для новых данных
65
- * @param data Новые данные
66
- */
67
- updateData(data: MdtChartsDataSource): void;
68
- /**
69
- * Изменение размера блока с графиком
70
- * @param newSize Новый размер
71
- */
72
- updateSize(newSize: Partial<NewSize>): void;
73
- /**
74
- * Обновление цветов графиков на основе новых базовых цветов
75
- * @param newColors Новые базовые цвета
76
- */
77
- updateColors(newColors: string[]): void;
78
- clearSelection(): void;
79
- private registerResizeEvent;
80
- private removeResizeEvent;
81
- private resizeListener;
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;
82
89
  }
83
90
  export * from "./config/config";
84
91
  export * from "./designer/designerConfig";