mdt-charts 1.28.2 → 1.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/lib/config/config.d.ts +164 -165
  2. package/lib/designer/designerConfig.d.ts +62 -59
  3. package/lib/engine/block/block.d.ts +22 -16
  4. package/lib/engine/block/block.js +51 -51
  5. package/lib/engine/block/blockHelper.d.ts +6 -6
  6. package/lib/engine/block/blockHelper.js +16 -16
  7. package/lib/engine/block/blockHtml.d.ts +8 -8
  8. package/lib/engine/block/blockHtml.js +15 -15
  9. package/lib/engine/block/blockSvg.d.ts +20 -20
  10. package/lib/engine/block/blockSvg.js +65 -66
  11. package/lib/engine/block/defs/LinearGradientDef.d.ts +2 -2
  12. package/lib/engine/block/defs/LinearGradientDef.js +27 -27
  13. package/lib/engine/block/defs/hatchPattern.d.ts +4 -4
  14. package/lib/engine/block/defs/hatchPattern.js +9 -9
  15. package/lib/engine/colorReader/colorReader.d.ts +5 -5
  16. package/lib/engine/colorReader/colorReader.js +18 -18
  17. package/lib/engine/contentManager/contentManager.d.ts +6 -6
  18. package/lib/engine/contentManager/contentManager.js +15 -15
  19. package/lib/engine/contentManager/contentManagerFactory.d.ts +6 -6
  20. package/lib/engine/contentManager/contentManagerFactory.js +12 -12
  21. package/lib/engine/elementHighlighter/elementHighlighter.d.ts +70 -22
  22. package/lib/engine/elementHighlighter/elementHighlighter.js +230 -181
  23. package/lib/engine/elementHighlighter/selectHighlighter.d.ts +29 -4
  24. package/lib/engine/elementHighlighter/selectHighlighter.js +189 -87
  25. package/lib/engine/engine.d.ts +16 -16
  26. package/lib/engine/engine.js +87 -62
  27. package/lib/engine/features/aggregator/aggregator.d.ts +24 -17
  28. package/lib/engine/features/aggregator/aggregator.js +113 -102
  29. package/lib/engine/features/axis/axis.d.ts +22 -9
  30. package/lib/engine/features/axis/axis.js +159 -150
  31. package/lib/engine/features/axis/axisDomHelper.d.ts +7 -2
  32. package/lib/engine/features/axis/axisDomHelper.js +19 -20
  33. package/lib/engine/features/axis/axisHelper.d.ts +9 -5
  34. package/lib/engine/features/axis/axisHelper.js +28 -33
  35. package/lib/engine/features/axis/axisLabelDomHelper.d.ts +26 -11
  36. package/lib/engine/features/axis/axisLabelDomHelper.js +156 -152
  37. package/lib/engine/features/axis/axisLabelsEventManager.d.ts +2 -2
  38. package/lib/engine/features/axis/axisLabelsEventManager.js +32 -32
  39. package/lib/engine/features/embeddedLabels/embeddedLabels.d.ts +51 -16
  40. package/lib/engine/features/embeddedLabels/embeddedLabels.js +234 -134
  41. package/lib/engine/features/embeddedLabels/embeddedLabelsDomHelper.d.ts +13 -2
  42. package/lib/engine/features/embeddedLabels/embeddedLabelsDomHelper.js +20 -23
  43. package/lib/engine/features/embeddedLabels/embeddedLabelsHelper.d.ts +32 -15
  44. package/lib/engine/features/embeddedLabels/embeddedLabelsHelper.js +56 -63
  45. package/lib/engine/features/gridLine/gidLineHelper.d.ts +13 -7
  46. package/lib/engine/features/gridLine/gidLineHelper.js +42 -49
  47. package/lib/engine/features/gridLine/gridLine.d.ts +19 -5
  48. package/lib/engine/features/gridLine/gridLine.js +35 -36
  49. package/lib/engine/features/legend/legend.d.ts +38 -29
  50. package/lib/engine/features/legend/legend.js +117 -92
  51. package/lib/engine/features/legend/legendDomHelper.d.ts +13 -6
  52. package/lib/engine/features/legend/legendDomHelper.js +63 -62
  53. package/lib/engine/features/legend/legendEventsManager.d.ts +13 -8
  54. package/lib/engine/features/legend/legendEventsManager.js +48 -47
  55. package/lib/engine/features/legend/legendHelper.d.ts +39 -14
  56. package/lib/engine/features/legend/legendHelper.js +98 -93
  57. package/lib/engine/features/legend/legendHelperService.d.ts +13 -6
  58. package/lib/engine/features/legend/legendHelperService.js +24 -25
  59. package/lib/engine/features/legend/legendMarkerCreator.d.ts +18 -9
  60. package/lib/engine/features/legend/legendMarkerCreator.js +79 -76
  61. package/lib/engine/features/legend/legendWidthCalculator.d.ts +7 -7
  62. package/lib/engine/features/legend/legendWidthCalculator.js +126 -122
  63. package/lib/engine/features/markDots/markDot.d.ts +42 -15
  64. package/lib/engine/features/markDots/markDot.js +101 -70
  65. package/lib/engine/features/markDots/markDotsHelper.d.ts +8 -1
  66. package/lib/engine/features/markDots/markDotsHelper.js +13 -12
  67. package/lib/engine/features/recordOverflowAlert/recordOverflowAlertCore.d.ts +17 -17
  68. package/lib/engine/features/recordOverflowAlert/recordOverflowAlertCore.js +42 -47
  69. package/lib/engine/features/scale/scale.d.ts +17 -12
  70. package/lib/engine/features/scale/scale.js +76 -69
  71. package/lib/engine/features/tipBox/tipBox.d.ts +9 -5
  72. package/lib/engine/features/tipBox/tipBox.js +24 -24
  73. package/lib/engine/features/tipBox/tipBoxHelper.d.ts +16 -9
  74. package/lib/engine/features/tipBox/tipBoxHelper.js +60 -45
  75. package/lib/engine/features/title/title.d.ts +6 -6
  76. package/lib/engine/features/title/title.js +34 -35
  77. package/lib/engine/features/tolltip/newTooltip/newTooltip.d.ts +15 -11
  78. package/lib/engine/features/tolltip/newTooltip/newTooltip.js +21 -21
  79. package/lib/engine/features/tolltip/newTooltip/newTooltipService.d.ts +13 -8
  80. package/lib/engine/features/tolltip/newTooltip/newTooltipService.js +26 -23
  81. package/lib/engine/features/tolltip/tooltip.d.ts +17 -11
  82. package/lib/engine/features/tolltip/tooltip.js +296 -142
  83. package/lib/engine/features/tolltip/tooltipComponentsManager.d.ts +21 -10
  84. package/lib/engine/features/tolltip/tooltipComponentsManager.js +113 -114
  85. package/lib/engine/features/tolltip/tooltipDomHelper.d.ts +43 -21
  86. package/lib/engine/features/tolltip/tooltipDomHelper.js +144 -120
  87. package/lib/engine/features/tolltip/tooltipHelper.d.ts +39 -9
  88. package/lib/engine/features/tolltip/tooltipHelper.js +114 -91
  89. package/lib/engine/features/valueLabels/valueLabels.d.ts +58 -38
  90. package/lib/engine/features/valueLabels/valueLabels.js +205 -169
  91. package/lib/engine/features/valueLabels/valueLabelsHelper.d.ts +7 -1
  92. package/lib/engine/features/valueLabels/valueLabelsHelper.js +23 -18
  93. package/lib/engine/features/valueLabelsCollision/valueLabelsCollision.d.ts +18 -15
  94. package/lib/engine/features/valueLabelsCollision/valueLabelsCollision.js +46 -47
  95. package/lib/engine/features/valueLabelsCollision/valueLabelsCollisionHelper.d.ts +6 -3
  96. package/lib/engine/features/valueLabelsCollision/valueLabelsCollisionHelper.js +49 -45
  97. package/lib/engine/filterManager/filterEventManager.d.ts +37 -26
  98. package/lib/engine/filterManager/filterEventManager.js +174 -129
  99. package/lib/engine/helpers/domHelper.d.ts +45 -20
  100. package/lib/engine/helpers/domHelper.js +62 -61
  101. package/lib/engine/helpers/fontResizer/fontResizer.d.ts +10 -10
  102. package/lib/engine/helpers/fontResizer/fontResizer.js +21 -16
  103. package/lib/engine/helpers/fontResizer/fontResizerService.d.ts +1 -1
  104. package/lib/engine/helpers/fontResizer/fontResizerService.js +9 -10
  105. package/lib/engine/helpers/helper.d.ts +27 -27
  106. package/lib/engine/helpers/helper.js +91 -92
  107. package/lib/engine/helpers/namesHelper.d.ts +3 -3
  108. package/lib/engine/helpers/namesHelper.js +6 -6
  109. package/lib/engine/helpers/pipeline/Pipeline.d.ts +5 -5
  110. package/lib/engine/helpers/pipeline/Pipeline.js +33 -33
  111. package/lib/engine/polarNotation/donut/DonutHelper.d.ts +25 -11
  112. package/lib/engine/polarNotation/donut/DonutHelper.js +71 -70
  113. package/lib/engine/polarNotation/donut/donut.d.ts +38 -23
  114. package/lib/engine/polarNotation/donut/donut.js +109 -99
  115. package/lib/engine/polarNotation/extenders/polarRecordOverflowAlert.d.ts +7 -7
  116. package/lib/engine/polarNotation/extenders/polarRecordOverflowAlert.js +36 -36
  117. package/lib/engine/polarNotation/polarManager.d.ts +5 -5
  118. package/lib/engine/polarNotation/polarManager.js +66 -52
  119. package/lib/engine/transitionManager.d.ts +13 -14
  120. package/lib/engine/transitionManager.js +48 -49
  121. package/lib/engine/twoDimensionalNotation/area/area.d.ts +44 -28
  122. package/lib/engine/twoDimensionalNotation/area/area.js +272 -238
  123. package/lib/engine/twoDimensionalNotation/area/areaGenerator.d.ts +13 -5
  124. package/lib/engine/twoDimensionalNotation/area/areaGenerator.js +13 -13
  125. package/lib/engine/twoDimensionalNotation/area/areaHelper.d.ts +4 -4
  126. package/lib/engine/twoDimensionalNotation/area/areaHelper.js +57 -41
  127. package/lib/engine/twoDimensionalNotation/bar/bar.d.ts +54 -29
  128. package/lib/engine/twoDimensionalNotation/bar/bar.js +362 -224
  129. package/lib/engine/twoDimensionalNotation/bar/barHelper.d.ts +71 -32
  130. package/lib/engine/twoDimensionalNotation/bar/barHelper.js +162 -126
  131. package/lib/engine/twoDimensionalNotation/bar/stackedData/dataStacker.d.ts +6 -6
  132. package/lib/engine/twoDimensionalNotation/bar/stackedData/dataStacker.js +24 -24
  133. package/lib/engine/twoDimensionalNotation/bar/stackedData/dataStackerService.d.ts +2 -2
  134. package/lib/engine/twoDimensionalNotation/bar/stackedData/dataStackerService.js +16 -17
  135. package/lib/engine/twoDimensionalNotation/dot/dotChart.d.ts +23 -23
  136. package/lib/engine/twoDimensionalNotation/dot/dotChart.js +135 -114
  137. package/lib/engine/twoDimensionalNotation/extenders/twoDimRecordOverflowAlert.d.ts +7 -7
  138. package/lib/engine/twoDimensionalNotation/extenders/twoDimRecordOverflowAlert.js +28 -28
  139. package/lib/engine/twoDimensionalNotation/line/line.d.ts +37 -16
  140. package/lib/engine/twoDimensionalNotation/line/line.js +162 -132
  141. package/lib/engine/twoDimensionalNotation/line/lineBuilder.d.ts +14 -11
  142. package/lib/engine/twoDimensionalNotation/line/lineBuilder.js +47 -48
  143. package/lib/engine/twoDimensionalNotation/line/lineGenerator.d.ts +4 -4
  144. package/lib/engine/twoDimensionalNotation/line/lineGenerator.js +8 -8
  145. package/lib/engine/twoDimensionalNotation/line/lineHelper.d.ts +12 -6
  146. package/lib/engine/twoDimensionalNotation/line/lineHelper.js +76 -60
  147. package/lib/engine/twoDimensionalNotation/lineLike/generatorFactory/lineLikeGeneratorFactory.d.ts +6 -6
  148. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorCurveMiddleware.d.ts +5 -5
  149. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorCurveMiddleware.js +16 -17
  150. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorDefineMiddleware.d.ts +11 -10
  151. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorDefineMiddleware.js +9 -7
  152. package/lib/engine/twoDimensionalNotation/lineLike/generatorMiddleware/lineLikeGeneratorMiddleware.d.ts +3 -1
  153. package/lib/engine/twoDimensionalNotation/twoDimensionalManager.d.ts +9 -9
  154. package/lib/engine/twoDimensionalNotation/twoDimensionalManager.js +252 -143
  155. package/lib/engine/valueFormatter.d.ts +3 -3
  156. package/lib/engine/valueFormatter.js +6 -6
  157. package/lib/main.d.ts +82 -75
  158. package/lib/main.js +79 -84
  159. package/lib/model/EventEmitter.d.ts +8 -8
  160. package/lib/model/EventEmitter.js +24 -24
  161. package/lib/model/chartStyleModel/chartStyleModel.d.ts +5 -5
  162. package/lib/model/chartStyleModel/chartStyleModel.js +27 -25
  163. package/lib/model/chartStyleModel/colorRange.d.ts +3 -3
  164. package/lib/model/chartStyleModel/colorRange.js +19 -24
  165. package/lib/model/chartStyleModel/twoDimensionalChartStyleModel.d.ts +22 -12
  166. package/lib/model/chartStyleModel/twoDimensionalChartStyleModel.js +69 -60
  167. package/lib/model/configsValidator/configValidator.d.ts +1 -1
  168. package/lib/model/configsValidator/configValidator.js +4 -4
  169. package/lib/model/dataManagerModel/dataManagerModel.d.ts +36 -26
  170. package/lib/model/dataManagerModel/dataManagerModel.js +179 -128
  171. package/lib/model/dataManagerModel/dataManagerModelService.d.ts +2 -2
  172. package/lib/model/dataManagerModel/dataManagerModelService.js +25 -26
  173. package/lib/model/featuresModel/axisModel.d.ts +69 -18
  174. package/lib/model/featuresModel/axisModel.js +224 -169
  175. package/lib/model/featuresModel/axisModelService.d.ts +10 -6
  176. package/lib/model/featuresModel/axisModelService.js +27 -27
  177. package/lib/model/featuresModel/legendModel/legendCanvasModel.d.ts +16 -11
  178. package/lib/model/featuresModel/legendModel/legendCanvasModel.js +55 -59
  179. package/lib/model/featuresModel/legendModel/legendModel.d.ts +7 -3
  180. package/lib/model/featuresModel/legendModel/legendModel.js +59 -41
  181. package/lib/model/featuresModel/legendModel/polarMarginCalculator.d.ts +8 -3
  182. package/lib/model/featuresModel/legendModel/polarMarginCalculator.js +18 -20
  183. package/lib/model/featuresModel/legendModel/twoDimLegendModel.d.ts +8 -4
  184. package/lib/model/featuresModel/legendModel/twoDimLegendModel.js +40 -27
  185. package/lib/model/featuresModel/otherComponents.d.ts +7 -4
  186. package/lib/model/featuresModel/otherComponents.js +9 -9
  187. package/lib/model/featuresModel/scaleModel/scaleAxisRecalcer.d.ts +6 -6
  188. package/lib/model/featuresModel/scaleModel/scaleAxisRecalcer.js +27 -23
  189. package/lib/model/featuresModel/scaleModel/scaleDomainService.d.ts +19 -5
  190. package/lib/model/featuresModel/scaleModel/scaleDomainService.js +44 -55
  191. package/lib/model/featuresModel/scaleModel/scaleModel.d.ts +10 -10
  192. package/lib/model/featuresModel/scaleModel/scaleModel.js +61 -50
  193. package/lib/model/featuresModel/scaleModel/scaleModelServices.js +15 -22
  194. package/lib/model/featuresModel/titleModel.d.ts +1 -1
  195. package/lib/model/featuresModel/titleModel.js +14 -14
  196. package/lib/model/featuresModel/tooltipModel.d.ts +1 -1
  197. package/lib/model/featuresModel/tooltipModel.js +5 -5
  198. package/lib/model/featuresModel/valueLabelsModel/valueLabelsModel.d.ts +23 -11
  199. package/lib/model/featuresModel/valueLabelsModel/valueLabelsModel.js +53 -51
  200. package/lib/model/helpers/modelHelper.d.ts +7 -7
  201. package/lib/model/helpers/modelHelper.js +38 -42
  202. package/lib/model/helpers/twoDimensionalModelHelper.d.ts +37 -9
  203. package/lib/model/helpers/twoDimensionalModelHelper.js +147 -125
  204. package/lib/model/helpers/unitsFromConfigReader.js +4 -4
  205. package/lib/model/helpers/unitsReader.d.ts +2 -2
  206. package/lib/model/helpers/unitsReader.js +11 -13
  207. package/lib/model/margin/marginModel.d.ts +7 -7
  208. package/lib/model/margin/marginModel.js +23 -20
  209. package/lib/model/margin/twoDim/twoDimMarginModel.d.ts +13 -13
  210. package/lib/model/margin/twoDim/twoDimMarginModel.js +184 -113
  211. package/lib/model/model.d.ts +308 -280
  212. package/lib/model/model.js +4 -4
  213. package/lib/model/modelBuilder.d.ts +27 -18
  214. package/lib/model/modelBuilder.js +85 -79
  215. package/lib/model/modelInstance/canvasModel/canvasModel.d.ts +17 -17
  216. package/lib/model/modelInstance/canvasModel/canvasModel.js +42 -43
  217. package/lib/model/modelInstance/canvasModel/canvasSizesModel/canvasMarginModel.d.ts +7 -7
  218. package/lib/model/modelInstance/canvasModel/canvasSizesModel/canvasSizeModel.d.ts +2 -2
  219. package/lib/model/modelInstance/canvasModel/canvasSizesModel/marginModelService.d.ts +6 -6
  220. package/lib/model/modelInstance/canvasModel/canvasSizesModel/marginModelService.js +24 -24
  221. package/lib/model/modelInstance/canvasModel/legendCanvasModel.d.ts +4 -4
  222. package/lib/model/modelInstance/canvasModel/legendCanvasModel.js +11 -11
  223. package/lib/model/modelInstance/canvasModel/titleCanvas.d.ts +4 -4
  224. package/lib/model/modelInstance/canvasModel/titleCanvas.js +9 -9
  225. package/lib/model/modelInstance/chartBlockVersion/chartBlockVersion.d.ts +3 -3
  226. package/lib/model/modelInstance/chartBlockVersion/chartBlockVersion.js +6 -6
  227. package/lib/model/modelInstance/configReader.d.ts +32 -23
  228. package/lib/model/modelInstance/configReader.js +125 -94
  229. package/lib/model/modelInstance/dataModel/dataModel.d.ts +9 -9
  230. package/lib/model/modelInstance/dataModel/dataModel.js +24 -24
  231. package/lib/model/modelInstance/dataModel/dataRepository.d.ts +14 -14
  232. package/lib/model/modelInstance/dataModel/dataRepository.js +42 -42
  233. package/lib/model/modelInstance/modelInstance.d.ts +11 -6
  234. package/lib/model/modelInstance/modelInstance.js +16 -16
  235. package/lib/model/modelInstance/titleConfigReader.d.ts +8 -8
  236. package/lib/model/modelInstance/titleConfigReader.js +37 -30
  237. package/lib/model/notations/polar/donut/donutAggregatorService.d.ts +9 -6
  238. package/lib/model/notations/polar/donut/donutAggregatorService.js +40 -37
  239. package/lib/model/notations/polar/donut/donutModel.d.ts +9 -5
  240. package/lib/model/notations/polar/donut/donutModel.js +28 -28
  241. package/lib/model/notations/polar/donut/donutThicknessService.d.ts +3 -3
  242. package/lib/model/notations/polar/donut/donutThicknessService.js +13 -15
  243. package/lib/model/notations/polar/polarModel.d.ts +18 -7
  244. package/lib/model/notations/polar/polarModel.js +79 -65
  245. package/lib/model/notations/twoDimensional/styles.d.ts +44 -7
  246. package/lib/model/notations/twoDimensional/styles.js +234 -125
  247. package/lib/model/notations/twoDimensionalModel.d.ts +23 -13
  248. package/lib/model/notations/twoDimensionalModel.js +330 -162
  249. package/lib/optionsServices/publicOptionsService.d.ts +1 -1
  250. package/lib/optionsServices/publicOptionsService.js +4 -4
  251. package/lib/optionsServices/validators/sizeValidator.d.ts +2 -2
  252. package/lib/optionsServices/validators/sizeValidator.js +10 -11
  253. package/lib/style/charts-main.css +150 -151
  254. package/lib/style/charts-main.less +150 -151
  255. package/package.json +1 -1
@@ -8,244 +8,278 @@ import { getStackedData, LineGeneratorFactory } from "../../../engine/twoDimensi
8
8
  import { Line } from "../../../engine/twoDimensionalNotation/line/line";
9
9
  import { LineBuilder } from "../../../engine/twoDimensionalNotation/line/lineBuilder";
10
10
  export class Area {
11
- constructor(options) {
12
- this.options = options;
13
- }
14
- static get(options) {
15
- return new Area(options);
16
- }
17
- render(block, scales, data, keyField, margin, keyAxisOrient, chart) {
18
- if (chart.isSegmented)
19
- this.renderSegmented(block, scales, data, keyField, margin, keyAxisOrient, chart);
20
- else
21
- this.renderGrouped(block, scales, data, keyField, margin, keyAxisOrient, chart);
22
- }
23
- update(block, scales, newData, keyField, margin, chart, keyAxisOrient) {
24
- let promises;
25
- if (chart.isSegmented) {
26
- promises = this.updateSegmented(block, scales, newData, keyField, margin, chart, keyAxisOrient);
27
- }
28
- else {
29
- promises = this.updateGrouped(block, scales, newData, keyField, margin, chart, keyAxisOrient);
30
- }
31
- return promises;
32
- }
33
- updateColors(block, chart) {
34
- chart.data.valueFields.forEach((_vf, valueIndex) => {
35
- const chartGroup = block.svg.getChartGroup(chart.index);
36
- const areaPath = chartGroup.select(`.${Area.areaChartClass}${Helper.getCssClassesLine(chart.cssClasses)}.chart-element-${valueIndex}`);
37
- this.setChartFillStyle(chart, areaPath, valueIndex);
38
- if (chart.areaViewOptions.borderLine.on) {
39
- const borderLinePath = chartGroup.select(`.${Area.areaBorderLineClass}${Helper.getCssClassesLine(chart.cssClasses)}.chart-element-${valueIndex}`);
40
- DomHelper.setChartElementColor(borderLinePath, chart.style.elementColors, valueIndex, "stroke");
41
- }
42
- MarkDot.updateColors(block, chart, valueIndex);
43
- });
44
- }
45
- renderGrouped(block, scales, data, keyField, margin, keyAxisOrient, chart) {
46
- const areaGeneratorFactory = this.createAreaGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
47
- const lineGeneratorFactory = this.getLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
48
- chart.data.valueFields.forEach((field, valueIndex) => {
49
- this.renderArea(areaGeneratorFactory, block, chart, data, field, valueIndex);
50
- if (lineGeneratorFactory)
51
- this.renderBorderLine(lineGeneratorFactory, block, chart, data, field, valueIndex);
52
- MarkDot.render(block, data, keyAxisOrient, scales, margin, keyField.name, valueIndex, field.name, chart);
53
- });
54
- }
55
- renderSegmented(block, scales, data, keyField, margin, keyAxisOrient, chart) {
56
- const areaGeneratorFactory = this.createAreaGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
57
- const lineGeneratorFactory = this.getLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
58
- this.renderAreaSegmented(areaGeneratorFactory, block, scales, data, keyField, margin, keyAxisOrient, chart);
59
- if (lineGeneratorFactory)
60
- this.renderBorderLineSegmented(lineGeneratorFactory, block, data, chart);
61
- }
62
- updateGrouped(block, scales, newData, keyField, margin, chart, keyAxisOrient) {
63
- const promises = [];
64
- const areaGeneratorFactory = this.createAreaGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
65
- const lineGeneratorFactory = this.getLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
66
- chart.data.valueFields.forEach((field, valueIndex) => {
67
- const chartGroup = block.svg.getChartGroup(chart.index);
68
- const areaProm = this.updateArea(areaGeneratorFactory, chartGroup, block, field, chart, newData, valueIndex);
69
- promises.push(areaProm);
70
- if (lineGeneratorFactory) {
71
- const lineProm = this.updateBorderLine(lineGeneratorFactory, chartGroup, block, field, chart, newData, valueIndex);
72
- promises.push(lineProm);
73
- }
74
- MarkDot.update(block, newData, keyAxisOrient, scales, margin, keyField.name, valueIndex, field.name, chart);
75
- });
76
- return promises;
77
- }
78
- updateSegmented(block, scales, newData, keyField, margin, chart, keyAxisOrient) {
79
- return [
80
- this.updateAreaSegmented(block, scales, newData, keyField, margin, chart, keyAxisOrient),
81
- this.updateBorderLineSegmented(block, scales, newData, keyField, margin, keyAxisOrient, chart)
82
- ];
83
- }
84
- updateGroupedPath(block, areaObject, areaGenerator, newData) {
85
- return new Promise((resolve) => {
86
- if (areaObject.size() === 0) {
87
- resolve("");
88
- return;
89
- }
90
- let areaHandler = areaObject;
91
- if (block.transitionManager.durations.chartUpdate > 0)
92
- areaHandler = areaHandler
93
- .interrupt()
94
- .transition()
95
- .duration(block.transitionManager.durations.chartUpdate)
96
- .on("end", () => resolve(""));
97
- areaHandler.attr("d", areaGenerator(newData));
98
- if (block.transitionManager.durations.chartUpdate <= 0)
99
- resolve("");
100
- });
101
- }
102
- updateSegmentedPath(block, areasObjects, areaGenerator) {
103
- return new Promise((resolve) => {
104
- if (areasObjects.size() === 0) {
105
- resolve("");
106
- return;
107
- }
108
- let areaHandler = areasObjects;
109
- if (block.transitionManager.durations.chartUpdate > 0)
110
- areaHandler = areaHandler
111
- .interrupt()
112
- .transition()
113
- .duration(block.transitionManager.durations.chartUpdate)
114
- .on("end", () => resolve(""));
115
- areaHandler.attr("d", (d) => areaGenerator(d));
116
- if (block.transitionManager.durations.chartUpdate <= 0)
117
- resolve("");
118
- });
119
- }
120
- setChartFillStyle(chart, path, valueIndex) {
121
- if (chart.areaViewOptions.fill.type === "gradient") {
122
- path.style("fill", `url(#${chart.areaViewOptions.fill.ids[valueIndex]})`);
123
- }
124
- else
125
- DomHelper.setChartStyle(path, chart.style, valueIndex, "fill");
126
- }
127
- createAreaGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField) {
128
- return new AreaGeneratorFactory({
129
- keyAxisOrient,
130
- scales,
131
- keyFieldName: keyField.name,
132
- margin,
133
- shouldRender: chart.lineLikeViewOptions.renderForKey,
134
- curve: this.options.staticSettings.shape.curve.type
135
- });
136
- }
137
- createLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField) {
138
- return new LineGeneratorFactory({
139
- keyAxisOrient,
140
- scales,
141
- keyFieldName: keyField.name,
142
- margin,
143
- shouldRender: chart.lineLikeViewOptions.renderForKey,
144
- curve: this.options.staticSettings.shape.curve.type
145
- });
146
- }
147
- renderArea(areaGeneratorFactory, block, chart, data, field, valueIndex) {
148
- const area = areaGeneratorFactory.getAreaGenerator(field.name);
149
- const path = block.svg
150
- .getChartGroup(chart.index)
151
- .append("path")
152
- .attr("d", area(data))
153
- .attr("class", Area.areaChartClass)
154
- .style("clip-path", `url(#${block.svg.getClipPathId()})`)
155
- .style("pointer-events", "none");
156
- DomHelper.setCssClasses(path, Helper.getCssClassesWithElementIndex(chart.cssClasses, valueIndex));
157
- this.setChartFillStyle(chart, path, valueIndex);
158
- }
159
- renderBorderLine(lineGeneratorFactory, block, chart, data, field, valueIndex) {
160
- const lineGenerator = lineGeneratorFactory.getLineGenerator(field.name);
161
- const linePath = block.svg
162
- .getChartGroup(chart.index)
163
- .append("path")
164
- .attr("d", lineGenerator(data))
165
- .attr("class", `${Area.areaBorderLineClass}`)
166
- .style("fill", "none")
167
- .style("clip-path", `url(#${block.svg.getClipPathId()})`)
168
- .style("pointer-events", "none");
169
- DomHelper.setCssClasses(linePath, Helper.getCssClassesWithElementIndex(chart.cssClasses, valueIndex));
170
- DomHelper.setChartStyle(linePath, chart.areaViewOptions.borderLine.colorStyle, valueIndex, "stroke");
171
- }
172
- renderAreaSegmented(areaGeneratorFactory, block, scales, data, keyField, margin, keyAxisOrient, chart) {
173
- const stackedData = getStackedDataWithOwn(data, chart.data.valueFields.map((field) => field.name));
174
- const areaGenerator = areaGeneratorFactory.getSegmentedAreaGenerator();
175
- const areas = block.svg
176
- .getChartGroup(chart.index)
177
- .selectAll(`.${Area.areaChartClass}${Helper.getCssClassesLine(chart.cssClasses)}`)
178
- .data(stackedData)
179
- .enter()
180
- .append("path")
181
- .attr("d", (d) => areaGenerator(d))
182
- .attr("class", Area.areaChartClass)
183
- .style("clip-path", `url(#${block.svg.getClipPathId()})`)
184
- .style("pointer-events", "none");
185
- const thisClass = this;
186
- areas.each(function (_, i) {
187
- thisClass.setChartFillStyle(chart, select(this), i);
188
- DomHelper.setCssClasses(select(this), Helper.getCssClassesWithElementIndex(chart.cssClasses, i));
189
- });
190
- stackedData.forEach((dataset, index) => {
191
- MarkDot.render(block, dataset, keyAxisOrient, scales, margin, keyField.name, index, "1", chart);
192
- });
193
- }
194
- renderBorderLineSegmented(generatorFactory, block, data, chart) {
195
- let stackedData = getStackedData(data, chart);
196
- const lineGenerator = generatorFactory.getSegmentedLineGenerator();
197
- const lineBuilder = new LineBuilder({
198
- elementAccessors: { getBlock: () => block }
199
- }, chart, lineGenerator);
200
- let lines = lineBuilder.renderSegmented(stackedData, Area.areaBorderLineClass);
201
- lineBuilder.setSegmentColor(lines, chart.style.elementColors);
202
- lines.each(function (_, i) {
203
- DomHelper.setCssClasses(select(this), Helper.getCssClassesWithElementIndex(chart.cssClasses, i));
204
- });
205
- }
206
- updateAreaSegmented(block, scales, newData, keyField, margin, chart, keyAxisOrient) {
207
- const stackedData = getStackedDataWithOwn(newData, chart.data.valueFields.map((field) => field.name));
208
- const generatorFactory = this.createAreaGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
209
- const areaGenerator = generatorFactory.getSegmentedAreaGenerator();
210
- const areas = this.getAllAreasWithNewData(stackedData, block, chart, Area.areaChartClass);
211
- const prom = this.updateSegmentedPath(block, areas, areaGenerator);
212
- areas.each(function (dataset, index) {
213
- // '1' - атрибут, показывающий координаты согласно полю значения
214
- MarkDot.update(block, dataset, keyAxisOrient, scales, margin, keyField.name, index, "1", chart);
215
- });
216
- return prom;
217
- }
218
- updateBorderLineSegmented(block, scales, newData, keyField, margin, keyAxisOrient, chart) {
219
- let stackedData = getStackedData(newData, chart);
220
- const generatorFactory = this.createLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
221
- const lineGenerator = generatorFactory.getSegmentedLineGenerator();
222
- const lineBuilder = new LineBuilder({
223
- elementAccessors: { getBlock: () => block }
224
- }, chart, lineGenerator);
225
- let lines = lineBuilder.getAllLinesWithNewData(stackedData, Area.areaBorderLineClass);
226
- let prom = lineBuilder.updateSegmentedPath(lines);
227
- return prom;
228
- }
229
- updateArea(areaGeneratorFactory, chartGroup, block, field, chart, newData, valueIndex) {
230
- const areaGenerator = areaGeneratorFactory.getAreaGenerator(field.name);
231
- const areaObject = chartGroup.select(`.${Area.areaChartClass}${Helper.getCssClassesLine(chart.cssClasses)}.chart-element-${valueIndex}`);
232
- return this.updateGroupedPath(block, areaObject, areaGenerator, newData);
233
- }
234
- updateBorderLine(lineGeneratorFactory, chartGroup, block, field, chart, newData, valueIndex) {
235
- const borderLineGenerator = lineGeneratorFactory.getLineGenerator(field.name);
236
- const borderLineObject = chartGroup.select(`.${Area.areaBorderLineClass}${Helper.getCssClassesLine(chart.cssClasses)}.chart-element-${valueIndex}`);
237
- return Line.updateGroupedPath(block, borderLineObject, borderLineGenerator, newData);
238
- }
239
- getAllAreasWithNewData(stackedData, block, chart, lineClass) {
240
- return block.svg
241
- .getChartGroup(chart.index)
242
- .selectAll(`path.${lineClass}${Helper.getCssClassesLine(chart.cssClasses)}`)
243
- .data(stackedData);
244
- }
245
- getLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField) {
246
- return (chart.areaViewOptions.borderLine.on &&
247
- this.createLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField));
248
- }
11
+ constructor(options) {
12
+ this.options = options;
13
+ }
14
+ static get(options) {
15
+ return new Area(options);
16
+ }
17
+ render(block, scales, data, keyField, margin, keyAxisOrient, chart) {
18
+ if (chart.isSegmented) this.renderSegmented(block, scales, data, keyField, margin, keyAxisOrient, chart);
19
+ else this.renderGrouped(block, scales, data, keyField, margin, keyAxisOrient, chart);
20
+ }
21
+ update(block, scales, newData, keyField, margin, chart, keyAxisOrient) {
22
+ let promises;
23
+ if (chart.isSegmented) {
24
+ promises = this.updateSegmented(block, scales, newData, keyField, margin, chart, keyAxisOrient);
25
+ } else {
26
+ promises = this.updateGrouped(block, scales, newData, keyField, margin, chart, keyAxisOrient);
27
+ }
28
+ return promises;
29
+ }
30
+ updateColors(block, chart) {
31
+ chart.data.valueFields.forEach((_vf, valueIndex) => {
32
+ const chartGroup = block.svg.getChartGroup(chart.index);
33
+ const areaPath = chartGroup.select(
34
+ `.${Area.areaChartClass}${Helper.getCssClassesLine(chart.cssClasses)}.chart-element-${valueIndex}`
35
+ );
36
+ this.setChartFillStyle(chart, areaPath, valueIndex);
37
+ if (chart.areaViewOptions.borderLine.on) {
38
+ const borderLinePath = chartGroup.select(
39
+ `.${Area.areaBorderLineClass}${Helper.getCssClassesLine(
40
+ chart.cssClasses
41
+ )}.chart-element-${valueIndex}`
42
+ );
43
+ DomHelper.setChartElementColor(borderLinePath, chart.style.elementColors, valueIndex, "stroke");
44
+ }
45
+ MarkDot.updateColors(block, chart, valueIndex);
46
+ });
47
+ }
48
+ renderGrouped(block, scales, data, keyField, margin, keyAxisOrient, chart) {
49
+ const areaGeneratorFactory = this.createAreaGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
50
+ const lineGeneratorFactory = this.getLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
51
+ chart.data.valueFields.forEach((field, valueIndex) => {
52
+ this.renderArea(areaGeneratorFactory, block, chart, data, field, valueIndex);
53
+ if (lineGeneratorFactory)
54
+ this.renderBorderLine(lineGeneratorFactory, block, chart, data, field, valueIndex);
55
+ MarkDot.render(block, data, keyAxisOrient, scales, margin, keyField.name, valueIndex, field.name, chart);
56
+ });
57
+ }
58
+ renderSegmented(block, scales, data, keyField, margin, keyAxisOrient, chart) {
59
+ const areaGeneratorFactory = this.createAreaGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
60
+ const lineGeneratorFactory = this.getLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
61
+ this.renderAreaSegmented(areaGeneratorFactory, block, scales, data, keyField, margin, keyAxisOrient, chart);
62
+ if (lineGeneratorFactory) this.renderBorderLineSegmented(lineGeneratorFactory, block, data, chart);
63
+ }
64
+ updateGrouped(block, scales, newData, keyField, margin, chart, keyAxisOrient) {
65
+ const promises = [];
66
+ const areaGeneratorFactory = this.createAreaGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
67
+ const lineGeneratorFactory = this.getLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
68
+ chart.data.valueFields.forEach((field, valueIndex) => {
69
+ const chartGroup = block.svg.getChartGroup(chart.index);
70
+ const areaProm = this.updateArea(
71
+ areaGeneratorFactory,
72
+ chartGroup,
73
+ block,
74
+ field,
75
+ chart,
76
+ newData,
77
+ valueIndex
78
+ );
79
+ promises.push(areaProm);
80
+ if (lineGeneratorFactory) {
81
+ const lineProm = this.updateBorderLine(
82
+ lineGeneratorFactory,
83
+ chartGroup,
84
+ block,
85
+ field,
86
+ chart,
87
+ newData,
88
+ valueIndex
89
+ );
90
+ promises.push(lineProm);
91
+ }
92
+ MarkDot.update(block, newData, keyAxisOrient, scales, margin, keyField.name, valueIndex, field.name, chart);
93
+ });
94
+ return promises;
95
+ }
96
+ updateSegmented(block, scales, newData, keyField, margin, chart, keyAxisOrient) {
97
+ return [
98
+ this.updateAreaSegmented(block, scales, newData, keyField, margin, chart, keyAxisOrient),
99
+ this.updateBorderLineSegmented(block, scales, newData, keyField, margin, keyAxisOrient, chart)
100
+ ];
101
+ }
102
+ updateGroupedPath(block, areaObject, areaGenerator, newData) {
103
+ return new Promise((resolve) => {
104
+ if (areaObject.size() === 0) {
105
+ resolve("");
106
+ return;
107
+ }
108
+ let areaHandler = areaObject;
109
+ if (block.transitionManager.durations.chartUpdate > 0)
110
+ areaHandler = areaHandler
111
+ .interrupt()
112
+ .transition()
113
+ .duration(block.transitionManager.durations.chartUpdate)
114
+ .on("end", () => resolve(""));
115
+ areaHandler.attr("d", areaGenerator(newData));
116
+ if (block.transitionManager.durations.chartUpdate <= 0) resolve("");
117
+ });
118
+ }
119
+ updateSegmentedPath(block, areasObjects, areaGenerator) {
120
+ return new Promise((resolve) => {
121
+ if (areasObjects.size() === 0) {
122
+ resolve("");
123
+ return;
124
+ }
125
+ let areaHandler = areasObjects;
126
+ if (block.transitionManager.durations.chartUpdate > 0)
127
+ areaHandler = areaHandler
128
+ .interrupt()
129
+ .transition()
130
+ .duration(block.transitionManager.durations.chartUpdate)
131
+ .on("end", () => resolve(""));
132
+ areaHandler.attr("d", (d) => areaGenerator(d));
133
+ if (block.transitionManager.durations.chartUpdate <= 0) resolve("");
134
+ });
135
+ }
136
+ setChartFillStyle(chart, path, valueIndex) {
137
+ if (chart.areaViewOptions.fill.type === "gradient") {
138
+ path.style("fill", `url(#${chart.areaViewOptions.fill.ids[valueIndex]})`);
139
+ } else DomHelper.setChartStyle(path, chart.style, valueIndex, "fill");
140
+ }
141
+ createAreaGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField) {
142
+ return new AreaGeneratorFactory({
143
+ keyAxisOrient,
144
+ scales,
145
+ keyFieldName: keyField.name,
146
+ margin,
147
+ shouldRender: chart.lineLikeViewOptions.renderForKey,
148
+ curve: this.options.staticSettings.shape.curve.type
149
+ });
150
+ }
151
+ createLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField) {
152
+ return new LineGeneratorFactory({
153
+ keyAxisOrient,
154
+ scales,
155
+ keyFieldName: keyField.name,
156
+ margin,
157
+ shouldRender: chart.lineLikeViewOptions.renderForKey,
158
+ curve: this.options.staticSettings.shape.curve.type
159
+ });
160
+ }
161
+ renderArea(areaGeneratorFactory, block, chart, data, field, valueIndex) {
162
+ const area = areaGeneratorFactory.getAreaGenerator(field.name);
163
+ const path = block.svg
164
+ .getChartGroup(chart.index)
165
+ .append("path")
166
+ .attr("d", area(data))
167
+ .attr("class", Area.areaChartClass)
168
+ .style("clip-path", `url(#${block.svg.getClipPathId()})`)
169
+ .style("pointer-events", "none");
170
+ DomHelper.setCssClasses(path, Helper.getCssClassesWithElementIndex(chart.cssClasses, valueIndex));
171
+ this.setChartFillStyle(chart, path, valueIndex);
172
+ }
173
+ renderBorderLine(lineGeneratorFactory, block, chart, data, field, valueIndex) {
174
+ const lineGenerator = lineGeneratorFactory.getLineGenerator(field.name);
175
+ const linePath = block.svg
176
+ .getChartGroup(chart.index)
177
+ .append("path")
178
+ .attr("d", lineGenerator(data))
179
+ .attr("class", `${Area.areaBorderLineClass}`)
180
+ .style("fill", "none")
181
+ .style("clip-path", `url(#${block.svg.getClipPathId()})`)
182
+ .style("pointer-events", "none");
183
+ DomHelper.setCssClasses(linePath, Helper.getCssClassesWithElementIndex(chart.cssClasses, valueIndex));
184
+ DomHelper.setChartStyle(linePath, chart.areaViewOptions.borderLine.colorStyle, valueIndex, "stroke");
185
+ }
186
+ renderAreaSegmented(areaGeneratorFactory, block, scales, data, keyField, margin, keyAxisOrient, chart) {
187
+ const stackedData = getStackedDataWithOwn(
188
+ data,
189
+ chart.data.valueFields.map((field) => field.name)
190
+ );
191
+ const areaGenerator = areaGeneratorFactory.getSegmentedAreaGenerator();
192
+ const areas = block.svg
193
+ .getChartGroup(chart.index)
194
+ .selectAll(`.${Area.areaChartClass}${Helper.getCssClassesLine(chart.cssClasses)}`)
195
+ .data(stackedData)
196
+ .enter()
197
+ .append("path")
198
+ .attr("d", (d) => areaGenerator(d))
199
+ .attr("class", Area.areaChartClass)
200
+ .style("clip-path", `url(#${block.svg.getClipPathId()})`)
201
+ .style("pointer-events", "none");
202
+ const thisClass = this;
203
+ areas.each(function (_, i) {
204
+ thisClass.setChartFillStyle(chart, select(this), i);
205
+ DomHelper.setCssClasses(select(this), Helper.getCssClassesWithElementIndex(chart.cssClasses, i));
206
+ });
207
+ stackedData.forEach((dataset, index) => {
208
+ MarkDot.render(block, dataset, keyAxisOrient, scales, margin, keyField.name, index, "1", chart);
209
+ });
210
+ }
211
+ renderBorderLineSegmented(generatorFactory, block, data, chart) {
212
+ let stackedData = getStackedData(data, chart);
213
+ const lineGenerator = generatorFactory.getSegmentedLineGenerator();
214
+ const lineBuilder = new LineBuilder(
215
+ {
216
+ elementAccessors: { getBlock: () => block }
217
+ },
218
+ chart,
219
+ lineGenerator
220
+ );
221
+ let lines = lineBuilder.renderSegmented(stackedData, Area.areaBorderLineClass);
222
+ lineBuilder.setSegmentColor(lines, chart.style.elementColors);
223
+ lines.each(function (_, i) {
224
+ DomHelper.setCssClasses(select(this), Helper.getCssClassesWithElementIndex(chart.cssClasses, i));
225
+ });
226
+ }
227
+ updateAreaSegmented(block, scales, newData, keyField, margin, chart, keyAxisOrient) {
228
+ const stackedData = getStackedDataWithOwn(
229
+ newData,
230
+ chart.data.valueFields.map((field) => field.name)
231
+ );
232
+ const generatorFactory = this.createAreaGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
233
+ const areaGenerator = generatorFactory.getSegmentedAreaGenerator();
234
+ const areas = this.getAllAreasWithNewData(stackedData, block, chart, Area.areaChartClass);
235
+ const prom = this.updateSegmentedPath(block, areas, areaGenerator);
236
+ areas.each(function (dataset, index) {
237
+ // '1' - атрибут, показывающий координаты согласно полю значения
238
+ MarkDot.update(block, dataset, keyAxisOrient, scales, margin, keyField.name, index, "1", chart);
239
+ });
240
+ return prom;
241
+ }
242
+ updateBorderLineSegmented(block, scales, newData, keyField, margin, keyAxisOrient, chart) {
243
+ let stackedData = getStackedData(newData, chart);
244
+ const generatorFactory = this.createLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField);
245
+ const lineGenerator = generatorFactory.getSegmentedLineGenerator();
246
+ const lineBuilder = new LineBuilder(
247
+ {
248
+ elementAccessors: { getBlock: () => block }
249
+ },
250
+ chart,
251
+ lineGenerator
252
+ );
253
+ let lines = lineBuilder.getAllLinesWithNewData(stackedData, Area.areaBorderLineClass);
254
+ let prom = lineBuilder.updateSegmentedPath(lines);
255
+ return prom;
256
+ }
257
+ updateArea(areaGeneratorFactory, chartGroup, block, field, chart, newData, valueIndex) {
258
+ const areaGenerator = areaGeneratorFactory.getAreaGenerator(field.name);
259
+ const areaObject = chartGroup.select(
260
+ `.${Area.areaChartClass}${Helper.getCssClassesLine(chart.cssClasses)}.chart-element-${valueIndex}`
261
+ );
262
+ return this.updateGroupedPath(block, areaObject, areaGenerator, newData);
263
+ }
264
+ updateBorderLine(lineGeneratorFactory, chartGroup, block, field, chart, newData, valueIndex) {
265
+ const borderLineGenerator = lineGeneratorFactory.getLineGenerator(field.name);
266
+ const borderLineObject = chartGroup.select(
267
+ `.${Area.areaBorderLineClass}${Helper.getCssClassesLine(chart.cssClasses)}.chart-element-${valueIndex}`
268
+ );
269
+ return Line.updateGroupedPath(block, borderLineObject, borderLineGenerator, newData);
270
+ }
271
+ getAllAreasWithNewData(stackedData, block, chart, lineClass) {
272
+ return block.svg
273
+ .getChartGroup(chart.index)
274
+ .selectAll(`path.${lineClass}${Helper.getCssClassesLine(chart.cssClasses)}`)
275
+ .data(stackedData);
276
+ }
277
+ getLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField) {
278
+ return (
279
+ chart.areaViewOptions.borderLine.on &&
280
+ this.createLineGeneratorFactory(chart, scales, margin, keyAxisOrient, keyField)
281
+ );
282
+ }
249
283
  }
250
284
  Area.areaChartClass = "area";
251
285
  Area.areaBorderLineClass = "area-border-line";
@@ -3,12 +3,20 @@ import { LineLikeGeneratorMiddleware } from "../lineLike/generatorMiddleware/lin
3
3
  import { MdtChartsDataRow } from "../../../config/config";
4
4
  import { CoordinateGetter } from "../lineLike/generatorFactory/lineLikeGeneratorFactory";
5
5
  interface AreaGeneratorOptions {
6
- middlewares: LineLikeGeneratorMiddleware[];
6
+ middlewares: LineLikeGeneratorMiddleware[];
7
7
  }
8
8
  export declare class AreaGenerator {
9
- private readonly options;
10
- constructor(options: AreaGeneratorOptions);
11
- getVertical(xValue: CoordinateGetter, y0Value: CoordinateGetter, y1Value: CoordinateGetter): IArea<MdtChartsDataRow>;
12
- getHorizontal(x0Value: CoordinateGetter, x1Value: CoordinateGetter, yValue: CoordinateGetter): IArea<MdtChartsDataRow>;
9
+ private readonly options;
10
+ constructor(options: AreaGeneratorOptions);
11
+ getVertical(
12
+ xValue: CoordinateGetter,
13
+ y0Value: CoordinateGetter,
14
+ y1Value: CoordinateGetter
15
+ ): IArea<MdtChartsDataRow>;
16
+ getHorizontal(
17
+ x0Value: CoordinateGetter,
18
+ x1Value: CoordinateGetter,
19
+ yValue: CoordinateGetter
20
+ ): IArea<MdtChartsDataRow>;
13
21
  }
14
22
  export {};
@@ -1,16 +1,16 @@
1
1
  import { area } from "d3-shape";
2
2
  export class AreaGenerator {
3
- constructor(options) {
4
- this.options = options;
5
- }
6
- getVertical(xValue, y0Value, y1Value) {
7
- const generator = area().x(xValue).y0(y0Value).y1(y1Value);
8
- this.options.middlewares.forEach((middleware) => middleware.handle(generator));
9
- return generator;
10
- }
11
- getHorizontal(x0Value, x1Value, yValue) {
12
- const generator = area().x0(x0Value).x1(x1Value).y(yValue);
13
- this.options.middlewares.forEach((middleware) => middleware.handle(generator));
14
- return generator;
15
- }
3
+ constructor(options) {
4
+ this.options = options;
5
+ }
6
+ getVertical(xValue, y0Value, y1Value) {
7
+ const generator = area().x(xValue).y0(y0Value).y1(y1Value);
8
+ this.options.middlewares.forEach((middleware) => middleware.handle(generator));
9
+ return generator;
10
+ }
11
+ getHorizontal(x0Value, x1Value, yValue) {
12
+ const generator = area().x0(x0Value).x1(x1Value).y(yValue);
13
+ this.options.middlewares.forEach((middleware) => middleware.handle(generator));
14
+ return generator;
15
+ }
16
16
  }
@@ -2,8 +2,8 @@ import { Area as IArea } from "d3-shape";
2
2
  import { MdtChartsDataRow } from "../../../config/config";
3
3
  import { LineLikeGeneratorFactoryOptions } from "../lineLike/generatorFactory/lineLikeGeneratorFactory";
4
4
  export declare class AreaGeneratorFactory {
5
- private readonly options;
6
- constructor(options: LineLikeGeneratorFactoryOptions);
7
- getAreaGenerator(valueFieldName: string): IArea<MdtChartsDataRow>;
8
- getSegmentedAreaGenerator(): IArea<MdtChartsDataRow>;
5
+ private readonly options;
6
+ constructor(options: LineLikeGeneratorFactoryOptions);
7
+ getAreaGenerator(valueFieldName: string): IArea<MdtChartsDataRow>;
8
+ getSegmentedAreaGenerator(): IArea<MdtChartsDataRow>;
9
9
  }