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
@@ -1,62 +1,58 @@
1
1
  import { CLASSES } from "../../modelBuilder";
2
2
  export class LegendCanvasModel {
3
- //TODO: find better solution
4
- static findElementsAmountByLegendSize(items, position, legendBlockWidth, legendBlockHeight) {
5
- const legendWrapper = this.getLegendWrapperEl(legendBlockWidth, position === "right" ? "column" : "row");
6
- document.body.append(legendWrapper);
7
- let amount = 0;
8
- for (let i = 0; i < items.length; i++) {
9
- const itemWrapper = document.createElement("div");
10
- const colorBlock = document.createElement("span");
11
- const textBlock = document.createElement("span");
12
- itemWrapper.classList.add("legend-item");
13
- if (position === "bottom" || position === "top") {
14
- itemWrapper.classList.add("legend-item-inline");
15
- textBlock.classList.add("legend-label-nowrap");
16
- }
17
- else {
18
- itemWrapper.classList.add("legend-item-row");
19
- }
20
- // colorBlock.classList.add(CLASSES.legendColor);
21
- colorBlock.style.display = "inline-block";
22
- colorBlock.style.width = `${items[i].markerSize.widthPx}px`;
23
- colorBlock.style.height = `${items[i].markerSize.heightPx}px`;
24
- colorBlock.style.marginRight = `${items[i].markerSize.marginRightPx}px`;
25
- textBlock.classList.add(CLASSES.legendLabel);
26
- textBlock.textContent = items[i].text;
27
- itemWrapper.style.marginRight = `${items[i].wrapperSize.marginRightPx}px`;
28
- itemWrapper.append(colorBlock, textBlock);
29
- legendWrapper.append(itemWrapper);
30
- amount++;
31
- if (legendWrapper.offsetHeight > legendBlockHeight) {
32
- itemWrapper.remove();
33
- if (legendBlockHeight - legendWrapper.offsetHeight >= 15 && position !== "bottom" && position !== "top")
34
- amount = amount; //TODO: remove
35
- else
36
- amount -= 1;
37
- break;
38
- }
39
- }
40
- const size = {
41
- width: legendWrapper.offsetWidth,
42
- height: legendWrapper.offsetHeight
43
- };
44
- legendWrapper.remove();
45
- return {
46
- amount: amount < 0 ? 0 : amount,
47
- size
48
- };
49
- }
50
- static getLegendWrapperEl(legendBlockWidth, itemsDirection) {
51
- const legendWrapper = document.createElement("div");
52
- legendWrapper.style.opacity = "0";
53
- legendWrapper.style.position = "absolute";
54
- legendWrapper.style.display = "flex";
55
- if (itemsDirection === "column")
56
- legendWrapper.classList.add("legend-block-column");
57
- else
58
- legendWrapper.classList.add("legend-block-row", "legend-wrapper-with-wrap");
59
- legendWrapper.style.maxWidth = legendBlockWidth + "px";
60
- return legendWrapper;
61
- }
3
+ //TODO: find better solution
4
+ static findElementsAmountByLegendSize(items, position, legendBlockWidth, legendBlockHeight) {
5
+ const legendWrapper = this.getLegendWrapperEl(legendBlockWidth, position === "right" ? "column" : "row");
6
+ document.body.append(legendWrapper);
7
+ let amount = 0;
8
+ for (let i = 0; i < items.length; i++) {
9
+ const itemWrapper = document.createElement("div");
10
+ const colorBlock = document.createElement("span");
11
+ const textBlock = document.createElement("span");
12
+ itemWrapper.classList.add("legend-item");
13
+ if (position === "bottom" || position === "top") {
14
+ itemWrapper.classList.add("legend-item-inline");
15
+ textBlock.classList.add("legend-label-nowrap");
16
+ } else {
17
+ itemWrapper.classList.add("legend-item-row");
18
+ }
19
+ // colorBlock.classList.add(CLASSES.legendColor);
20
+ colorBlock.style.display = "inline-block";
21
+ colorBlock.style.width = `${items[i].markerSize.widthPx}px`;
22
+ colorBlock.style.height = `${items[i].markerSize.heightPx}px`;
23
+ colorBlock.style.marginRight = `${items[i].markerSize.marginRightPx}px`;
24
+ textBlock.classList.add(CLASSES.legendLabel);
25
+ textBlock.textContent = items[i].text;
26
+ itemWrapper.style.marginRight = `${items[i].wrapperSize.marginRightPx}px`;
27
+ itemWrapper.append(colorBlock, textBlock);
28
+ legendWrapper.append(itemWrapper);
29
+ amount++;
30
+ if (legendWrapper.offsetHeight > legendBlockHeight) {
31
+ itemWrapper.remove();
32
+ if (legendBlockHeight - legendWrapper.offsetHeight >= 15 && position !== "bottom" && position !== "top")
33
+ amount = amount; //TODO: remove
34
+ else amount -= 1;
35
+ break;
36
+ }
37
+ }
38
+ const size = {
39
+ width: legendWrapper.offsetWidth,
40
+ height: legendWrapper.offsetHeight
41
+ };
42
+ legendWrapper.remove();
43
+ return {
44
+ amount: amount < 0 ? 0 : amount,
45
+ size
46
+ };
47
+ }
48
+ static getLegendWrapperEl(legendBlockWidth, itemsDirection) {
49
+ const legendWrapper = document.createElement("div");
50
+ legendWrapper.style.opacity = "0";
51
+ legendWrapper.style.position = "absolute";
52
+ legendWrapper.style.display = "flex";
53
+ if (itemsDirection === "column") legendWrapper.classList.add("legend-block-column");
54
+ else legendWrapper.classList.add("legend-block-row", "legend-wrapper-with-wrap");
55
+ legendWrapper.style.maxWidth = legendBlockWidth + "px";
56
+ return legendWrapper;
57
+ }
62
58
  }
@@ -3,7 +3,11 @@ import { LegendBlockModel, Orient } from "../../model";
3
3
  import { CanvasModel } from "../../modelInstance/canvasModel/canvasModel";
4
4
  import { LegendItemsDirection } from "./legendCanvasModel";
5
5
  export declare class LegendModel {
6
- static getBaseLegendBlockModel(canvasModel: CanvasModel, legendConfig: LegendBlockCanvas): LegendBlockModel;
7
- static getLegendItemClass(itemsPosition: LegendItemsDirection): string;
8
- static appendToGlobalMarginValuesLegendMargin(canvasModel: CanvasModel, position: Orient, legendBlockModel: LegendBlockModel): void;
6
+ static getBaseLegendBlockModel(canvasModel: CanvasModel, legendConfig: LegendBlockCanvas): LegendBlockModel;
7
+ static getLegendItemClass(itemsPosition: LegendItemsDirection): string;
8
+ static appendToGlobalMarginValuesLegendMargin(
9
+ canvasModel: CanvasModel,
10
+ position: Orient,
11
+ legendBlockModel: LegendBlockModel
12
+ ): void;
9
13
  }
@@ -1,43 +1,61 @@
1
1
  export class LegendModel {
2
- static getBaseLegendBlockModel(canvasModel, legendConfig) {
3
- var _a, _b;
4
- const mt = 20, mb = 20, ml = 20, mr = 20;
5
- return {
6
- coordinate: {
7
- left: {
8
- size: 0,
9
- margin: { top: mt, bottom: mb, left: ml, right: 0 },
10
- pad: 0
11
- },
12
- bottom: {
13
- size: 0,
14
- margin: { top: 2, bottom: 0, left: 0, right: 0 },
15
- pad: 0
16
- },
17
- right: {
18
- size: 0,
19
- margin: { top: canvasModel.titleCanvas.getAllNeededSpace(), bottom: mb, left: 15, right: 0 },
20
- pad: 0
21
- },
22
- top: {
23
- size: 0,
24
- margin: { top: 0, bottom: 10, left: 0, right: 0 },
25
- pad: canvasModel.titleCanvas.getAllNeededSpace()
26
- }
27
- },
28
- static: {
29
- maxLinesAmount: (_b = (_a = legendConfig.static) === null || _a === void 0 ? void 0 : _a.maxLinesAmount) !== null && _b !== void 0 ? _b : 3
30
- }
31
- };
32
- }
33
- static getLegendItemClass(itemsPosition) {
34
- return itemsPosition === "column" ? "legend-item-row" : "legend-item-inline";
35
- }
36
- static appendToGlobalMarginValuesLegendMargin(canvasModel, position, legendBlockModel) {
37
- const legendCoordinate = legendBlockModel.coordinate;
38
- if (position === "left" || position === "right")
39
- canvasModel.increaseMarginSide(position, legendCoordinate[position].margin.left + legendCoordinate[position].margin.right);
40
- else
41
- canvasModel.increaseMarginSide(position, legendCoordinate[position].margin.top + legendCoordinate[position].margin.bottom);
42
- }
2
+ static getBaseLegendBlockModel(canvasModel, legendConfig) {
3
+ var _a, _b;
4
+ const mt = 20,
5
+ mb = 20,
6
+ ml = 20,
7
+ mr = 20;
8
+ return {
9
+ coordinate: {
10
+ left: {
11
+ size: 0,
12
+ margin: { top: mt, bottom: mb, left: ml, right: 0 },
13
+ pad: 0
14
+ },
15
+ bottom: {
16
+ size: 0,
17
+ margin: { top: 2, bottom: 0, left: 0, right: 0 },
18
+ pad: 0
19
+ },
20
+ right: {
21
+ size: 0,
22
+ margin: {
23
+ top: canvasModel.titleCanvas.getAllNeededSpace(),
24
+ bottom: mb,
25
+ left: 15,
26
+ right: 0
27
+ },
28
+ pad: 0
29
+ },
30
+ top: {
31
+ size: 0,
32
+ margin: { top: 0, bottom: 10, left: 0, right: 0 },
33
+ pad: canvasModel.titleCanvas.getAllNeededSpace()
34
+ }
35
+ },
36
+ static: {
37
+ maxLinesAmount:
38
+ (_b = (_a = legendConfig.static) === null || _a === void 0 ? void 0 : _a.maxLinesAmount) !== null &&
39
+ _b !== void 0
40
+ ? _b
41
+ : 3
42
+ }
43
+ };
44
+ }
45
+ static getLegendItemClass(itemsPosition) {
46
+ return itemsPosition === "column" ? "legend-item-row" : "legend-item-inline";
47
+ }
48
+ static appendToGlobalMarginValuesLegendMargin(canvasModel, position, legendBlockModel) {
49
+ const legendCoordinate = legendBlockModel.coordinate;
50
+ if (position === "left" || position === "right")
51
+ canvasModel.increaseMarginSide(
52
+ position,
53
+ legendCoordinate[position].margin.left + legendCoordinate[position].margin.right
54
+ );
55
+ else
56
+ canvasModel.increaseMarginSide(
57
+ position,
58
+ legendCoordinate[position].margin.top + legendCoordinate[position].margin.bottom
59
+ );
60
+ }
43
61
  }
@@ -2,7 +2,12 @@ import { LegendBlockCanvas } from "../../../designer/designerConfig";
2
2
  import { LegendBlockModel } from "../../model";
3
3
  import { CanvasModel } from "../../modelInstance/canvasModel/canvasModel";
4
4
  export declare class LegendPolarMarginCalculator {
5
- updateMargin(legendPosition: "right" | "bottom", canvasModel: CanvasModel, legendBlockModel: LegendBlockModel, size: number): void;
6
- getMaxLegendWidth(legendCanvas: LegendBlockCanvas, blockWidth: number): number;
7
- private updateMarginObj;
5
+ updateMargin(
6
+ legendPosition: "right" | "bottom",
7
+ canvasModel: CanvasModel,
8
+ legendBlockModel: LegendBlockModel,
9
+ size: number
10
+ ): void;
11
+ getMaxLegendWidth(legendCanvas: LegendBlockCanvas, blockWidth: number): number;
12
+ private updateMarginObj;
8
13
  }
@@ -1,24 +1,22 @@
1
1
  import { getPxPercentUnitByValue } from "../../helpers/unitsFromConfigReader";
2
2
  import { LegendModel } from "./legendModel";
3
3
  export class LegendPolarMarginCalculator {
4
- updateMargin(legendPosition, canvasModel, legendBlockModel, size) {
5
- this.updateMarginObj(legendBlockModel, legendPosition, size, canvasModel);
6
- }
7
- getMaxLegendWidth(legendCanvas, blockWidth) {
8
- const maxWidth = legendCanvas.maxWidth;
9
- if (typeof maxWidth === "number")
10
- return maxWidth;
11
- const unit = getPxPercentUnitByValue(maxWidth);
12
- const maxWidthNumber = parseInt(maxWidth);
13
- if (unit === "px")
14
- return maxWidthNumber;
15
- return (maxWidthNumber / 100) * blockWidth;
16
- }
17
- updateMarginObj(legendBlockModel, legendPosition, legendSize, canvasModel) {
18
- if (legendSize !== 0) {
19
- canvasModel.increaseMarginSide(legendPosition, legendSize);
20
- LegendModel.appendToGlobalMarginValuesLegendMargin(canvasModel, legendPosition, legendBlockModel);
21
- }
22
- legendBlockModel.coordinate[legendPosition].size = legendSize;
23
- }
4
+ updateMargin(legendPosition, canvasModel, legendBlockModel, size) {
5
+ this.updateMarginObj(legendBlockModel, legendPosition, size, canvasModel);
6
+ }
7
+ getMaxLegendWidth(legendCanvas, blockWidth) {
8
+ const maxWidth = legendCanvas.maxWidth;
9
+ if (typeof maxWidth === "number") return maxWidth;
10
+ const unit = getPxPercentUnitByValue(maxWidth);
11
+ const maxWidthNumber = parseInt(maxWidth);
12
+ if (unit === "px") return maxWidthNumber;
13
+ return (maxWidthNumber / 100) * blockWidth;
14
+ }
15
+ updateMarginObj(legendBlockModel, legendPosition, legendSize, canvasModel) {
16
+ if (legendSize !== 0) {
17
+ canvasModel.increaseMarginSide(legendPosition, legendSize);
18
+ LegendModel.appendToGlobalMarginValuesLegendMargin(canvasModel, legendPosition, legendBlockModel);
19
+ }
20
+ legendBlockModel.coordinate[legendPosition].size = legendSize;
21
+ }
24
22
  }
@@ -3,8 +3,12 @@ import { LegendBlockModel } from "../../model";
3
3
  import { TwoDimConfigReader } from "../../modelInstance/configReader";
4
4
  import { ModelInstance } from "../../modelInstance/modelInstance";
5
5
  export declare class TwoDimLegendModel {
6
- private configReader;
7
- constructor(configReader: TwoDimConfigReader);
8
- recalcMarginWith2DLegend(modelInstance: ModelInstance, legendBlockModel: LegendBlockModel, legendOptions: MdtChartsTwoDimLegend): void;
9
- private getLegendModel;
6
+ private configReader;
7
+ constructor(configReader: TwoDimConfigReader);
8
+ recalcMarginWith2DLegend(
9
+ modelInstance: ModelInstance,
10
+ legendBlockModel: LegendBlockModel,
11
+ legendOptions: MdtChartsTwoDimLegend
12
+ ): void;
13
+ private getLegendModel;
10
14
  }
@@ -3,31 +3,44 @@ import { getWidthOfLegendMarkerByType } from "../../notations/twoDimensional/sty
3
3
  import { LegendCanvasModel } from "./legendCanvasModel";
4
4
  import { LegendModel } from "./legendModel";
5
5
  export class TwoDimLegendModel {
6
- constructor(configReader) {
7
- this.configReader = configReader;
8
- }
9
- recalcMarginWith2DLegend(modelInstance, legendBlockModel, legendOptions) {
10
- const canvasModel = modelInstance.canvasModel;
11
- const legendPosition = this.getLegendModel(legendOptions).position;
12
- modelInstance.canvasModel.legendCanvas.setPosition(legendPosition);
13
- if (legendPosition !== "off") {
14
- const legendItemInfo = this.configReader.getLegendItemInfo();
15
- const legendSize = LegendCanvasModel.findElementsAmountByLegendSize(legendItemInfo.map((i) => ({
16
- text: i.text,
17
- markerSize: Object.assign(Object.assign({}, styledElementValues.defaultLegendMarkerSizes), { widthPx: getWidthOfLegendMarkerByType(i.chartType) }),
18
- wrapperSize: { marginRightPx: styledElementValues.legend.inlineItemWrapperMarginRightPx }
19
- })), "top", modelInstance.canvasModel.getBlockSize().width, legendBlockModel.static.maxLinesAmount * styledElementValues.legend.inlineLegendOneLineHeightPx).size.height;
20
- canvasModel.increaseMarginSide(legendPosition, legendSize);
21
- if (legendSize !== 0)
22
- LegendModel.appendToGlobalMarginValuesLegendMargin(canvasModel, legendPosition, legendBlockModel);
23
- legendBlockModel.coordinate[legendPosition].size = legendSize;
24
- }
25
- }
26
- getLegendModel(legendOptions) {
27
- var _a;
28
- const position = legendOptions.show ? (_a = legendOptions.position) !== null && _a !== void 0 ? _a : "top" : "off";
29
- return {
30
- position
31
- };
32
- }
6
+ constructor(configReader) {
7
+ this.configReader = configReader;
8
+ }
9
+ recalcMarginWith2DLegend(modelInstance, legendBlockModel, legendOptions) {
10
+ const canvasModel = modelInstance.canvasModel;
11
+ const legendPosition = this.getLegendModel(legendOptions).position;
12
+ modelInstance.canvasModel.legendCanvas.setPosition(legendPosition);
13
+ if (legendPosition !== "off") {
14
+ const legendItemInfo = this.configReader.getLegendItemInfo();
15
+ const legendSize = LegendCanvasModel.findElementsAmountByLegendSize(
16
+ legendItemInfo.map((i) => ({
17
+ text: i.text,
18
+ markerSize: Object.assign(Object.assign({}, styledElementValues.defaultLegendMarkerSizes), {
19
+ widthPx: getWidthOfLegendMarkerByType(i.chartType)
20
+ }),
21
+ wrapperSize: {
22
+ marginRightPx: styledElementValues.legend.inlineItemWrapperMarginRightPx
23
+ }
24
+ })),
25
+ "top",
26
+ modelInstance.canvasModel.getBlockSize().width,
27
+ legendBlockModel.static.maxLinesAmount * styledElementValues.legend.inlineLegendOneLineHeightPx
28
+ ).size.height;
29
+ canvasModel.increaseMarginSide(legendPosition, legendSize);
30
+ if (legendSize !== 0)
31
+ LegendModel.appendToGlobalMarginValuesLegendMargin(canvasModel, legendPosition, legendBlockModel);
32
+ legendBlockModel.coordinate[legendPosition].size = legendSize;
33
+ }
34
+ }
35
+ getLegendModel(legendOptions) {
36
+ var _a;
37
+ const position = legendOptions.show
38
+ ? (_a = legendOptions.position) !== null && _a !== void 0
39
+ ? _a
40
+ : "top"
41
+ : "off";
42
+ return {
43
+ position
44
+ };
45
+ }
33
46
  }
@@ -3,11 +3,14 @@ import { ElementsOptions, LegendBlockCanvas } from "../../designer/designerConfi
3
3
  import { ModelInstance } from "../modelInstance/modelInstance";
4
4
  import { TitleConfigReader } from "../modelInstance/titleConfigReader";
5
5
  interface OtherComponentsModelDependencies {
6
- elementsOptions: ElementsOptions;
7
- legendConfig: LegendBlockCanvas;
8
- titleConfig: TitleConfigReader;
6
+ elementsOptions: ElementsOptions;
7
+ legendConfig: LegendBlockCanvas;
8
+ titleConfig: TitleConfigReader;
9
9
  }
10
10
  export declare class OtherComponentsModel {
11
- static getOtherComponentsModel(dependencies: OtherComponentsModelDependencies, modelInstance: ModelInstance): OtherCommonComponents;
11
+ static getOtherComponentsModel(
12
+ dependencies: OtherComponentsModelDependencies,
13
+ modelInstance: ModelInstance
14
+ ): OtherCommonComponents;
12
15
  }
13
16
  export {};
@@ -2,13 +2,13 @@ import { LegendModel } from "./legendModel/legendModel";
2
2
  import { TitleModel } from "./titleModel";
3
3
  import { TooltipModel } from "./tooltipModel";
4
4
  export class OtherComponentsModel {
5
- static getOtherComponentsModel(dependencies, modelInstance) {
6
- const canvasModel = modelInstance.canvasModel;
7
- canvasModel.titleCanvas.init(TitleModel.getTitleModel(dependencies.titleConfig));
8
- return {
9
- legendBlock: LegendModel.getBaseLegendBlockModel(canvasModel, dependencies.legendConfig),
10
- titleBlock: canvasModel.titleCanvas.getModel(),
11
- tooltipBlock: TooltipModel.getTooltipModel(dependencies.elementsOptions.tooltip)
12
- };
13
- }
5
+ static getOtherComponentsModel(dependencies, modelInstance) {
6
+ const canvasModel = modelInstance.canvasModel;
7
+ canvasModel.titleCanvas.init(TitleModel.getTitleModel(dependencies.titleConfig));
8
+ return {
9
+ legendBlock: LegendModel.getBaseLegendBlockModel(canvasModel, dependencies.legendConfig),
10
+ titleBlock: canvasModel.titleCanvas.getModel(),
11
+ tooltipBlock: TooltipModel.getTooltipModel(dependencies.elementsOptions.tooltip)
12
+ };
13
+ }
14
14
  }
@@ -5,15 +5,15 @@ import { CanvasModel } from "../../modelInstance/canvasModel/canvasModel";
5
5
  export declare const keyAxisLabelVerticalLog = "keyAxisLabel_vertical_margin_log";
6
6
  export declare const keyAxisLabelHorizontalLog = "keyAxisLabel_horizontal_margin_log";
7
7
  export interface ScaleValueCalculatedInfo {
8
- scale: ScaleValueModel;
9
- scaleFn: ScaleLinear<number, number, never>;
8
+ scale: ScaleValueModel;
9
+ scaleFn: ScaleLinear<number, number, never>;
10
10
  }
11
11
  /**
12
12
  * Предназначен для получения нового scaleValue и уменьшения globalMargin, если ось ключей находится где-то внутри chartBlock, а не на его границе
13
13
  */
14
14
  export declare class ScaleAxisRecalcer {
15
- private generateScaleLinear;
16
- constructor(generateScaleLinear: () => ScaleValueModel);
17
- recalculateMargin(canvasModel: CanvasModel, chartOrientation: ChartOrientation, keyAxis: DiscreteAxisOptions): void;
18
- getScaleValue(): ScaleValueCalculatedInfo;
15
+ private generateScaleLinear;
16
+ constructor(generateScaleLinear: () => ScaleValueModel);
17
+ recalculateMargin(canvasModel: CanvasModel, chartOrientation: ChartOrientation, keyAxis: DiscreteAxisOptions): void;
18
+ getScaleValue(): ScaleValueCalculatedInfo;
19
19
  }
@@ -5,27 +5,31 @@ export const keyAxisLabelHorizontalLog = "keyAxisLabel_horizontal_margin_log";
5
5
  * Предназначен для получения нового scaleValue и уменьшения globalMargin, если ось ключей находится где-то внутри chartBlock, а не на его границе
6
6
  */
7
7
  export class ScaleAxisRecalcer {
8
- constructor(generateScaleLinear) {
9
- this.generateScaleLinear = generateScaleLinear;
10
- }
11
- recalculateMargin(canvasModel, chartOrientation, keyAxis) {
12
- const { scaleFn: scaleValueFn } = this.getScaleValue();
13
- const coordinateOnChartBlock = keyAxis.position === "start"
14
- ? scaleValueFn(0)
15
- : (chartOrientation === "vertical"
16
- ? canvasModel.getChartBlockHeight()
17
- : canvasModel.getChartBlockWidth()) - scaleValueFn(0);
18
- const key = chartOrientation === "vertical" ? keyAxisLabelVerticalLog : keyAxisLabelHorizontalLog;
19
- const logInfo = canvasModel.marginService.getDataByKey(key);
20
- if (logInfo) {
21
- canvasModel.decreaseMarginSide(logInfo.side, logInfo.byValue - coordinateOnChartBlock < 0 ? logInfo.byValue : coordinateOnChartBlock);
22
- }
23
- }
24
- getScaleValue() {
25
- const scale = this.generateScaleLinear();
26
- return {
27
- scale,
28
- scaleFn: Scale.getScaleValue(scale)
29
- };
30
- }
8
+ constructor(generateScaleLinear) {
9
+ this.generateScaleLinear = generateScaleLinear;
10
+ }
11
+ recalculateMargin(canvasModel, chartOrientation, keyAxis) {
12
+ const { scaleFn: scaleValueFn } = this.getScaleValue();
13
+ const coordinateOnChartBlock =
14
+ keyAxis.position === "start"
15
+ ? scaleValueFn(0)
16
+ : (chartOrientation === "vertical"
17
+ ? canvasModel.getChartBlockHeight()
18
+ : canvasModel.getChartBlockWidth()) - scaleValueFn(0);
19
+ const key = chartOrientation === "vertical" ? keyAxisLabelVerticalLog : keyAxisLabelHorizontalLog;
20
+ const logInfo = canvasModel.marginService.getDataByKey(key);
21
+ if (logInfo) {
22
+ canvasModel.decreaseMarginSide(
23
+ logInfo.side,
24
+ logInfo.byValue - coordinateOnChartBlock < 0 ? logInfo.byValue : coordinateOnChartBlock
25
+ );
26
+ }
27
+ }
28
+ getScaleValue() {
29
+ const scale = this.generateScaleLinear();
30
+ return {
31
+ scale,
32
+ scaleFn: Scale.getScaleValue(scale)
33
+ };
34
+ }
31
35
  }
@@ -1,7 +1,21 @@
1
- import { AxisNumberDomain, MdtChartsDataRow, MdtChartsTwoDimensionalChart, MdtChartsTwoDimensionalOptions, TwoDimensionalValueGroup } from "../../../config/config";
2
- export declare function getResolvedDomain(domain: AxisNumberDomain, dataRows: MdtChartsDataRow[]): import("../../../config/config").NumberDomain;
3
- export declare function getScaleLinearDomain(configDomain: AxisNumberDomain, dataRows: MdtChartsDataRow[], configOptions: MdtChartsTwoDimensionalOptions, valueGroup?: TwoDimensionalValueGroup): number[];
1
+ import {
2
+ AxisNumberDomain,
3
+ MdtChartsDataRow,
4
+ MdtChartsTwoDimensionalChart,
5
+ MdtChartsTwoDimensionalOptions,
6
+ TwoDimensionalValueGroup
7
+ } from "../../../config/config";
8
+ export declare function getResolvedDomain(
9
+ domain: AxisNumberDomain,
10
+ dataRows: MdtChartsDataRow[]
11
+ ): import("../../../config/config").NumberDomain;
12
+ export declare function getScaleLinearDomain(
13
+ configDomain: AxisNumberDomain,
14
+ dataRows: MdtChartsDataRow[],
15
+ configOptions: MdtChartsTwoDimensionalOptions,
16
+ valueGroup?: TwoDimensionalValueGroup
17
+ ): number[];
4
18
  export declare class ScaleDomainCalculator {
5
- getScaleMinValue(charts: MdtChartsTwoDimensionalChart[], dataRows: MdtChartsDataRow[]): number;
6
- getScaleMaxValue(charts: MdtChartsTwoDimensionalChart[], dataRows: MdtChartsDataRow[]): number;
19
+ getScaleMinValue(charts: MdtChartsTwoDimensionalChart[], dataRows: MdtChartsDataRow[]): number;
20
+ getScaleMaxValue(charts: MdtChartsTwoDimensionalChart[], dataRows: MdtChartsDataRow[]): number;
7
21
  }