@amcharts/amcharts5 5.9.2 → 5.9.4

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 (207) hide show
  1. package/.internal/charts/hierarchy/HierarchyLink.d.ts +8 -0
  2. package/.internal/charts/hierarchy/HierarchyLink.d.ts.map +1 -1
  3. package/.internal/charts/hierarchy/HierarchyLink.js +69 -2
  4. package/.internal/charts/hierarchy/HierarchyLink.js.map +1 -1
  5. package/.internal/charts/hierarchy/LinkedHierarchy.d.ts +4 -0
  6. package/.internal/charts/hierarchy/LinkedHierarchy.d.ts.map +1 -1
  7. package/.internal/charts/hierarchy/LinkedHierarchy.js +14 -0
  8. package/.internal/charts/hierarchy/LinkedHierarchy.js.map +1 -1
  9. package/.internal/charts/pie/PieChart.d.ts +1 -0
  10. package/.internal/charts/pie/PieChart.d.ts.map +1 -1
  11. package/.internal/charts/pie/PieChart.js +4 -0
  12. package/.internal/charts/pie/PieChart.js.map +1 -1
  13. package/.internal/charts/stock/drawing/DrawingSeries.d.ts +0 -2
  14. package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
  15. package/.internal/charts/stock/drawing/DrawingSeries.js +21 -20
  16. package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
  17. package/.internal/charts/stock/drawing/EllipseSeries.d.ts.map +1 -1
  18. package/.internal/charts/stock/drawing/EllipseSeries.js +3 -1
  19. package/.internal/charts/stock/drawing/EllipseSeries.js.map +1 -1
  20. package/.internal/charts/stock/drawing/FibonacciSeries.d.ts +0 -3
  21. package/.internal/charts/stock/drawing/FibonacciSeries.d.ts.map +1 -1
  22. package/.internal/charts/stock/drawing/FibonacciSeries.js +8 -4
  23. package/.internal/charts/stock/drawing/FibonacciSeries.js.map +1 -1
  24. package/.internal/charts/stock/drawing/SimpleLineSeries.js +2 -2
  25. package/.internal/charts/stock/drawing/SimpleLineSeries.js.map +1 -1
  26. package/.internal/charts/stock/indicators/Indicator.d.ts.map +1 -1
  27. package/.internal/charts/stock/indicators/Indicator.js +4 -0
  28. package/.internal/charts/stock/indicators/Indicator.js.map +1 -1
  29. package/.internal/charts/stock/toolbar/DrawingControl.d.ts.map +1 -1
  30. package/.internal/charts/stock/toolbar/DrawingControl.js +1 -0
  31. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  32. package/.internal/charts/stock/toolbar/IndicatorControl.d.ts +6 -0
  33. package/.internal/charts/stock/toolbar/IndicatorControl.d.ts.map +1 -1
  34. package/.internal/charts/stock/toolbar/IndicatorControl.js +11 -0
  35. package/.internal/charts/stock/toolbar/IndicatorControl.js.map +1 -1
  36. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  37. package/.internal/charts/xy/XYChart.js +7 -6
  38. package/.internal/charts/xy/XYChart.js.map +1 -1
  39. package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
  40. package/.internal/charts/xy/XYChartDefaultTheme.js +5 -0
  41. package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
  42. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  43. package/.internal/charts/xy/axes/Axis.js +0 -5
  44. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  45. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  46. package/.internal/charts/xy/axes/ValueAxis.js +2 -2
  47. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  48. package/.internal/charts/xy/series/XYSeries.js +1 -1
  49. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  50. package/.internal/core/Registry.js +1 -1
  51. package/.internal/core/Registry.js.map +1 -1
  52. package/.internal/core/Root.js +1 -1
  53. package/.internal/core/Root.js.map +1 -1
  54. package/.internal/core/render/Label.d.ts.map +1 -1
  55. package/.internal/core/render/Label.js +19 -19
  56. package/.internal/core/render/Label.js.map +1 -1
  57. package/.internal/core/render/gradients/LinearGradient.d.ts.map +1 -1
  58. package/.internal/core/render/gradients/LinearGradient.js +6 -0
  59. package/.internal/core/render/gradients/LinearGradient.js.map +1 -1
  60. package/CHANGELOG.md +30 -0
  61. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  62. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  63. package/examples/javascript/flow-chord/package.json +1 -1
  64. package/examples/javascript/flow-chord-directed/package.json +1 -1
  65. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  66. package/examples/javascript/flow-sankey/package.json +1 -1
  67. package/examples/javascript/gauge/package.json +1 -1
  68. package/examples/javascript/gauge-bands/package.json +1 -1
  69. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  70. package/examples/javascript/hierarchy-pack/package.json +1 -1
  71. package/examples/javascript/hierarchy-partition/package.json +1 -1
  72. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  73. package/examples/javascript/hierarchy-tree/package.json +1 -1
  74. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  75. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  76. package/examples/javascript/jest/package.json +1 -1
  77. package/examples/javascript/json-pie/package.json +1 -1
  78. package/examples/javascript/json-xy/package.json +1 -1
  79. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  80. package/examples/javascript/map-clustered-points/package.json +1 -1
  81. package/examples/javascript/map-day-and-night/package.json +1 -1
  82. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  83. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  84. package/examples/javascript/map-with-bubbles/package.json +1 -1
  85. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  86. package/examples/javascript/misc-40-charts/package.json +1 -1
  87. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  88. package/examples/javascript/pie-chart/package.json +1 -1
  89. package/examples/javascript/pie-donut-chart/package.json +1 -1
  90. package/examples/javascript/pie-variable-radius/package.json +1 -1
  91. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  92. package/examples/javascript/radar-heat-map/package.json +1 -1
  93. package/examples/javascript/radar-line/package.json +1 -1
  94. package/examples/javascript/radar-time-line/package.json +1 -1
  95. package/examples/javascript/sliced-funnel/package.json +1 -1
  96. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  97. package/examples/javascript/sliced-pyramid/package.json +1 -1
  98. package/examples/javascript/stock-chart/package.json +1 -1
  99. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  100. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  101. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  102. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  103. package/examples/javascript/stock-chart-live/package.json +1 -1
  104. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  105. package/examples/javascript/venn-diagram/package.json +1 -1
  106. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  107. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  108. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  109. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  110. package/examples/javascript/xy-bubble/package.json +1 -1
  111. package/examples/javascript/xy-candlestick/package.json +1 -1
  112. package/examples/javascript/xy-clustered-column/package.json +1 -1
  113. package/examples/javascript/xy-column/package.json +1 -1
  114. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  115. package/examples/javascript/xy-data-grouping/package.json +1 -1
  116. package/examples/javascript/xy-draggable-range/package.json +1 -1
  117. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  118. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  119. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  120. package/examples/javascript/xy-line/package.json +1 -1
  121. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  122. package/examples/javascript/xy-live-data/package.json +1 -1
  123. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  124. package/examples/javascript/xy-ohlc/package.json +1 -1
  125. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  126. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  127. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  128. package/examples/javascript/xy-stacked-column/package.json +1 -1
  129. package/examples/javascript/xy-stacked-step/package.json +1 -1
  130. package/examples/javascript/xy-stock/package.json +1 -1
  131. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  132. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  133. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  134. package/examples/typescript/flow-chord/package.json +1 -1
  135. package/examples/typescript/flow-chord-directed/package.json +1 -1
  136. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  137. package/examples/typescript/flow-sankey/package.json +1 -1
  138. package/examples/typescript/gauge/package.json +1 -1
  139. package/examples/typescript/gauge-bands/package.json +1 -1
  140. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  141. package/examples/typescript/hierarchy-pack/package.json +1 -1
  142. package/examples/typescript/hierarchy-partition/package.json +1 -1
  143. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  144. package/examples/typescript/hierarchy-tree/package.json +1 -1
  145. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  146. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  147. package/examples/typescript/jest/package.json +1 -1
  148. package/examples/typescript/json-pie/package.json +1 -1
  149. package/examples/typescript/json-xy/package.json +1 -1
  150. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  151. package/examples/typescript/map-clustered-points/package.json +1 -1
  152. package/examples/typescript/map-day-and-night/package.json +1 -1
  153. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  154. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  155. package/examples/typescript/map-with-bubbles/package.json +1 -1
  156. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  157. package/examples/typescript/misc-40-charts/package.json +1 -1
  158. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  159. package/examples/typescript/pie-chart/package.json +1 -1
  160. package/examples/typescript/pie-donut-chart/package.json +1 -1
  161. package/examples/typescript/pie-variable-radius/package.json +1 -1
  162. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  163. package/examples/typescript/radar-heat-map/package.json +1 -1
  164. package/examples/typescript/radar-line/package.json +1 -1
  165. package/examples/typescript/radar-time-line/package.json +1 -1
  166. package/examples/typescript/sliced-funnel/package.json +1 -1
  167. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  168. package/examples/typescript/sliced-pyramid/package.json +1 -1
  169. package/examples/typescript/stock-chart/package.json +1 -1
  170. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  171. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  172. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  173. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  174. package/examples/typescript/stock-chart-live/package.json +1 -1
  175. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  176. package/examples/typescript/venn-diagram/package.json +1 -1
  177. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  178. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  179. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  180. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  181. package/examples/typescript/xy-bubble/package.json +1 -1
  182. package/examples/typescript/xy-candlestick/package.json +1 -1
  183. package/examples/typescript/xy-clustered-column/package.json +1 -1
  184. package/examples/typescript/xy-column/package.json +1 -1
  185. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  186. package/examples/typescript/xy-data-grouping/package.json +1 -1
  187. package/examples/typescript/xy-draggable-range/package.json +1 -1
  188. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  189. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  190. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  191. package/examples/typescript/xy-line/package.json +1 -1
  192. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  193. package/examples/typescript/xy-live-data/package.json +1 -1
  194. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  195. package/examples/typescript/xy-ohlc/package.json +1 -1
  196. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  197. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  198. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  199. package/examples/typescript/xy-stacked-column/package.json +1 -1
  200. package/examples/typescript/xy-stacked-step/package.json +1 -1
  201. package/examples/typescript/xy-stock/package.json +1 -1
  202. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  203. package/index.d.ts +1 -0
  204. package/index.d.ts.map +1 -1
  205. package/index.js +1 -0
  206. package/index.js.map +1 -1
  207. package/package.json +1 -1
@@ -91,24 +91,19 @@ export class Label extends Container {
91
91
  }
92
92
  _updateChildren() {
93
93
  super._updateChildren();
94
+ const text = this._text;
94
95
  $array.each(this._textKeys, (property) => {
95
96
  this._text.set(property, this.get(property));
96
97
  });
97
- if (this.isDirty("maxWidth")) {
98
- this._setMaxDimentions();
99
- }
100
- if (this.isDirty("maxHeight")) {
101
- this._setMaxDimentions();
102
- }
103
- if (this.isDirty("rotation")) {
98
+ if (this.isDirty("maxWidth") || this.isDirty("maxHeight") || this.isDirty("rotation")) {
104
99
  this._setMaxDimentions();
105
100
  }
106
101
  // Do not show regular text if HTML is used
107
102
  if (this.get("html", "") !== "") {
108
- this._text.set("text", "");
103
+ text.set("text", "");
109
104
  }
110
105
  else {
111
- this._text.set("text", this.get("text"));
106
+ text.set("text", this.get("text"));
112
107
  this._maybeUpdateHTMLColor();
113
108
  }
114
109
  if (this.isDirty("fill")) {
@@ -130,17 +125,17 @@ export class Label extends Container {
130
125
  }
131
126
  else {
132
127
  if (textAlign == "left" || textAlign == "start") {
133
- x = this.get("paddingLeft");
128
+ x = this.get("paddingLeft", 0);
134
129
  }
135
130
  else if (textAlign == "right" || textAlign == "end") {
136
- x = -this.get("paddingRight");
131
+ x = -this.get("paddingRight", 0);
137
132
  }
138
133
  }
139
- this.text.set("x", x);
134
+ text.set("x", x);
140
135
  }
141
136
  const background = this.get("background");
142
137
  if (background) {
143
- background.setPrivate("visible", this.text._display.textVisible);
138
+ background.setPrivate("visible", text._display.textVisible);
144
139
  }
145
140
  }
146
141
  _maybeUpdateHTMLColor() {
@@ -152,26 +147,31 @@ export class Label extends Container {
152
147
  _setMaxDimentions() {
153
148
  const rotation = this.get("rotation");
154
149
  const vertical = rotation == 90 || rotation == 270 || rotation == -90;
150
+ const text = this._text;
155
151
  const maxWidth = this.get("maxWidth", this.getPrivate("maxWidth", Infinity));
156
152
  if ($type.isNumber(maxWidth)) {
157
- this.text.set(vertical ? "maxHeight" : "maxWidth", maxWidth - this.get("paddingLeft", 0) - this.get("paddingRight", 0));
153
+ text.set(vertical ? "maxHeight" : "maxWidth", maxWidth - this.get("paddingLeft", 0) - this.get("paddingRight", 0));
158
154
  }
159
155
  else {
160
- this.text.set(vertical ? "maxHeight" : "maxWidth", undefined);
156
+ text.set(vertical ? "maxHeight" : "maxWidth", undefined);
161
157
  }
162
158
  const maxHeight = this.get("maxHeight", this.getPrivate("maxHeight", Infinity));
163
159
  if ($type.isNumber(maxHeight)) {
164
- this.text.set(vertical ? "maxWidth" : "maxHeight", maxHeight - this.get("paddingTop", 0) - this.get("paddingBottom", 0));
160
+ text.set(vertical ? "maxWidth" : "maxHeight", maxHeight - this.get("paddingTop", 0) - this.get("paddingBottom", 0));
165
161
  }
166
162
  else {
167
- this.text.set(vertical ? "maxWidth" : "maxHeight", undefined);
163
+ text.set(vertical ? "maxWidth" : "maxHeight", undefined);
168
164
  }
165
+ this.root.events.once("frameended", () => {
166
+ text.markDirtyBounds();
167
+ });
169
168
  }
170
169
  _setDataItem(dataItem) {
171
170
  super._setDataItem(dataItem);
172
171
  this._markDirtyKey("text");
173
- if (this.text.get("populateText")) {
174
- this.text.markDirtyText();
172
+ const text = this._text;
173
+ if (text.get("populateText")) {
174
+ text.markDirtyText();
175
175
  }
176
176
  const html = this.get("html");
177
177
  if (html && html !== "") {
@@ -1 +1 @@
1
- {"version":3,"file":"Label.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Label.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Color } from \"../util/Color\";\nimport type { Percent } from \"../util/Percent\";\nimport type { DataItem, IComponentDataItem } from \"./Component\";\n\nimport { Text } from \"../render/Text\";\nimport { p50, p100 } from \"../util/Percent\";\nimport { Container, IContainerPrivate, IContainerSettings } from \"./Container\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $type from \"../../core/util/Type\";\n\n\nexport interface ILabelSettings extends IContainerSettings {\n\n\t/**\n\t * Labels' text.\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/text-styling/} for text styling info\n\t * \n\t */\n\ttext?: string;\n\n\t/**\n\t * Text color.\n\t */\n\tfill?: Color;\n\n\t/**\n\t * Text opacity.\n\t *\n\t * @default 1\n\t * @ince 5.2.39\n\t */\n\tfillOpacity?: number;\n\n\t/**\n\t * Alignment.\n\t */\n\ttextAlign?: \"start\" | \"end\" | \"left\" | \"right\" | \"center\";\n\n\t/**\n\t * Font family to use for the label.\n\t *\n\t * Multiple fonts can be separated by commas.\n\t */\n\tfontFamily?: string;\n\n\t/**\n\t * Font size in misc any supported CSS format (pixel, point, em, etc.).\n\t */\n\tfontSize?: string | number;\n\n\t/**\n\t * Font weight.\n\t */\n\tfontWeight?: \"normal\" | \"bold\" | \"bolder\" | \"lighter\" | \"100\" | \"200\" | \"300\" | \"400\" | \"500\" | \"600\" | \"700\" | \"800\" | \"900\";\n\n\t/**\n\t * Font style.\n\t */\n\tfontStyle?: \"normal\" | \"italic\" | \"oblique\";\n\n\t/**\n\t * Font variant.\n\t */\n\tfontVariant?: \"normal\" | \"small-caps\";\n\n\t/**\n\t * Text decoration.\n\t *\n\t * Supported options `\"underline\"`, `\"line-through\"`.\n\t *\n\t * @since 5.0.15\n\t */\n\ttextDecoration?: \"underline\" | \"line-through\";\n\n\t/**\n\t * Line height in percent or absolute pixels.\n\t */\n\tlineHeight?: Percent | number;\n\n\t/**\n\t * How mouch of the height should be considered to go below baseline.\n\t *\n\t * @default 0.19\n\t */\n\tbaselineRatio?: number;\n\n\t/**\n\t * Opacity of the label.\n\t *\n\t * 0 - fully transparent; 1 - fully opaque.\n\t */\n\topacity?: number;\n\n\t/**\n\t * Text direction.\n\t *\n\t * @default \"ltr\"\n\t */\n\tdirection?: \"ltr\" | \"rtl\";\n\n\t/**\n\t * A base line to use when aligning text chunks vertically.\n\t */\n\ttextBaseline?: \"top\" | \"hanging\" | \"middle\" | \"alphabetic\" | \"ideographic\" | \"bottom\";\n\n\t/**\n\t * How to handle labels that do not fit into its designated space.\n\t *\n\t * LIMITATIONS: on circular labels, the only values supported are `\"hide\"` and\n\t * `\"truncate\"`. The latter will ignore `breakWords` setting.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/labels/#Oversized_text} for more info\n\t */\n\toversizedBehavior?: \"none\" | \"hide\" | \"fit\" | \"wrap\" | \"wrap-no-break\" | \"truncate\";\n\n\t/**\n\t * Whether words can be broken when truncating or wrapping text.\n\t *\n\t * @default false\n\t */\n\tbreakWords?: boolean;\n\n\t/**\n\t * Ellipsis characters to use when truncating text.\n\t *\n\t * Will use Unicode ellipsis symbol (`\"…\"`) by default, which might not be\n\t * available in all fonts. If ellipsis looks broken, use different\n\t * characters. E.g.:\n\t *\n\t * ```TypeScript\n\t * label.set(\"ellipsis\", \"...\");\n\t * ```\n\t * ```JavaScript\n\t * label.set(\"ellipsis\", \"...\");\n\t * ```\n\t *\n\t *\n\t * @default \"…\"\n\t */\n\tellipsis?: string;\n\n\t/**\n\t * Minimum relative scale allowed for label when scaling down\n\t * when `oversizedBehavior` is set to `\"fit\"`.\n\t *\n\t * If fitting the label would require it to scale beyond `minScale` it would\n\t * be hidden instead.\n\t */\n\tminScale?: number;\n\n\t/**\n\t * If set to `true` the label will parse `text` for data placeholders and\n\t * will try to populate them with actual data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/labels/#Data_placeholders} for more info\n\t */\n\tpopulateText?: boolean;\n\n\t/**\n\t * If set to `true`, will ignore in-line formatting blocks and will display\n\t * text exactly as it is.\n\t *\n\t * @default false\n\t */\n\tignoreFormatting?: boolean;\n\n\t/**\n\t * Color of the element's shadow.\n\t *\n\t * For this to work at least one of the following needs to be set as well:\n\t * `shadowBlur`, `shadowOffsetX`, `shadowOffsetY`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowColor?: Color | null;\n\n\t/**\n\t * Blurriness of the the shadow.\n\t *\n\t * The bigger the number, the more blurry shadow will be.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowBlur?: number;\n\n\t/**\n\t * Horizontal shadow offset in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOffsetX?: number;\n\n\t/**\n\t * Vertical shadow offset in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOffsetY?: number;\n\n\t/**\n\t * Opacity of the shadow (0-1).\n\t *\n\t * If not set, will use the same as `fillOpacity` of the element.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOpacity?: number;\n\n\t/**\n\t * Maximum number of characters to allow in label.\n\t *\n\t * If the `text` is longer than `maxChars`, the text will be truncated\n\t * using the `breakWords` and `ellipsis` settings.\n\t * \n\t * @since 5.7.2\n\t */\n\tmaxChars?: number;\n\n\t// The following migh be supported some day:\n\t// padding?: number;\n\t// stroke?: number;\n\t// strokeThickness?: number;\n\t// trim?: number;\n\t// wordWrap?: boolean;\n\t// leading?: number;\n\t// letterSpacing?: number;\n}\n\nexport interface ILabelPrivate extends IContainerPrivate {\n}\n\n/**\n * Creates a label with support for in-line styling and data bindings.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/labels/} for more info\n */\nexport class Label extends Container {\n\n\tdeclare public _settings: ILabelSettings;\n\tdeclare public _privateSettings: ILabelPrivate;\n\n\tprotected _text!: Text;\n\n\tprotected _textKeys: Array<string> = [\n\t\t\"text\",\n\t\t\"fill\",\n\t\t\"fillOpacity\",\n\t\t\"textAlign\",\n\t\t\"fontFamily\",\n\t\t\"fontSize\",\n\t\t\"fontStyle\",\n\t\t\"fontWeight\",\n\t\t\"fontStyle\",\n\t\t\"fontVariant\",\n\t\t\"textDecoration\",\n\t\t\"shadowColor\",\n\t\t\"shadowBlur\",\n\t\t\"shadowOffsetX\",\n\t\t\"shadowOffsetY\",\n\t\t\"shadowOpacity\",\n\t\t// \"leading\",\n\t\t// \"letterSpacing\",\n\t\t\"lineHeight\",\n\t\t\"baselineRatio\",\n\t\t//\"padding\",\n\t\t// \"stroke\",\n\t\t// \"strokeThickness\",\n\t\t// \"trim\",\n\t\t// \"wordWrap\",\n\t\t\"direction\",\n\t\t\"textBaseline\",\n\t\t\"oversizedBehavior\",\n\t\t\"breakWords\",\n\t\t\"ellipsis\",\n\t\t\"minScale\",\n\t\t\"populateText\",\n\t\t\"role\",\n\t\t\"ignoreFormatting\",\n\t\t\"maxChars\",\n\t\t\"ariaLabel\"\n\t];\n\n\tpublic static className: string = \"Label\";\n\tpublic static classNames: Array<string> = Container.classNames.concat([Label.className]);\n\n\t/**\n\t * @ignore Text is not to be used directly\n\t */\n\tpublic get text(): Text {\n\t\treturn this._text;\n\t}\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\n\t\tthis._makeText();\n\n\t\t$array.each(this._textKeys, (property) => {\n\t\t\tconst propValue = this.get(property as any);\n\t\t\tif (propValue != undefined) {\n\t\t\t\tthis._text.set(property as any, propValue);\n\t\t\t}\n\t\t});\n\n\t\tif (this.get(\"html\", \"\") !== \"\") {\n\t\t\tthis._text.set(\"text\", \"\");\n\t\t}\n\n\t\tthis.onPrivate(\"maxWidth\", () => {\n\t\t\tthis._setMaxDimentions();\n\t\t});\n\n\t\tthis.onPrivate(\"maxHeight\", () => {\n\t\t\tthis._setMaxDimentions();\n\t\t});\n\t}\n\n\tpublic _makeText() {\n\t\tthis._text = this.children.push(Text.new(this._root, {}));\n\t}\n\n\tpublic _updateChildren() {\n\t\tsuper._updateChildren();\n\n\t\t$array.each(this._textKeys, (property) => {\n\t\t\tthis._text.set(property as any, this.get(property as any));\n\t\t})\n\n\t\tif (this.isDirty(\"maxWidth\")) {\n\t\t\tthis._setMaxDimentions();\n\t\t}\n\n\t\tif (this.isDirty(\"maxHeight\")) {\n\t\t\tthis._setMaxDimentions();\n\t\t}\n\n\t\tif (this.isDirty(\"rotation\")) {\n\t\t\tthis._setMaxDimentions();\n\t\t}\n\n\t\t// Do not show regular text if HTML is used\n\t\tif (this.get(\"html\", \"\") !== \"\") {\n\t\t\tthis._text.set(\"text\", \"\");\n\t\t}\n\t\telse {\n\t\t\tthis._text.set(\"text\", this.get(\"text\"));\n\t\t\tthis._maybeUpdateHTMLColor();\n\t\t}\n\n\t\tif (this.isDirty(\"fill\")) {\n\t\t\tthis._maybeUpdateHTMLColor();\n\t\t}\n\n\t\tif (this.isDirty(\"textAlign\") || this.isDirty(\"width\")) {\n\t\t\tconst textAlign = this.get(\"textAlign\");\n\t\t\tlet x: number | Percent | undefined;\n\t\t\tif (this.get(\"width\") != null) {\n\t\t\t\tif (textAlign == \"right\") {\n\t\t\t\t\tx = p100;\n\t\t\t\t}\n\t\t\t\telse if (textAlign == \"center\") {\n\t\t\t\t\tx = p50;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tx = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (textAlign == \"left\" || textAlign == \"start\") {\n\t\t\t\t\tx = this.get(\"paddingLeft\");\n\t\t\t\t}\n\t\t\t\telse if (textAlign == \"right\" || textAlign == \"end\") {\n\t\t\t\t\tx = -this.get(\"paddingRight\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.text.set(\"x\", x);\n\t\t}\n\n\t\tconst background = this.get(\"background\");\n\t\tif (background) {\n\t\t\tbackground.setPrivate(\"visible\", this.text._display.textVisible);\n\t\t}\n\t}\n\n\tprotected _maybeUpdateHTMLColor() {\n\t\tconst htmlElement = this.getPrivate(\"htmlElement\");\n\t\tif (htmlElement && this.get(\"fill\")) {\n\t\t\thtmlElement.style.color = this.get(\"fill\")!.toCSSHex();\n\t\t}\n\t}\n\n\tprotected _setMaxDimentions() {\n\t\tconst rotation = this.get(\"rotation\");\n\t\tconst vertical = rotation == 90 || rotation == 270 || rotation == -90;\n\n\t\tconst maxWidth = this.get(\"maxWidth\", this.getPrivate(\"maxWidth\", Infinity));\n\t\tif ($type.isNumber(maxWidth)) {\n\t\t\tthis.text.set(vertical ? \"maxHeight\" : \"maxWidth\", maxWidth - this.get(\"paddingLeft\", 0) - this.get(\"paddingRight\", 0));\n\t\t}\n\t\telse {\n\t\t\tthis.text.set(vertical ? \"maxHeight\" : \"maxWidth\", undefined);\n\t\t}\n\n\t\tconst maxHeight = this.get(\"maxHeight\", this.getPrivate(\"maxHeight\", Infinity));\n\t\tif ($type.isNumber(maxHeight)) {\n\t\t\tthis.text.set(vertical ? \"maxWidth\" : \"maxHeight\", maxHeight - this.get(\"paddingTop\", 0) - this.get(\"paddingBottom\", 0));\n\t\t}\n\t\telse {\n\t\t\tthis.text.set(vertical ? \"maxWidth\" : \"maxHeight\", undefined);\n\t\t}\n\t}\n\n\tpublic _setDataItem(dataItem?: DataItem<IComponentDataItem>): void {\n\t\tsuper._setDataItem(dataItem);\n\t\tthis._markDirtyKey(\"text\")\n\t\tif (this.text.get(\"populateText\")) {\n\t\t\tthis.text.markDirtyText();\n\t\t}\n\t\tconst html = this.get(\"html\");\n\t\tif (html && html !== \"\") {\n\t\t\tthis._updateHTMLContent();\n\t\t}\n\t}\n\n\t/**\n\t * Returns text with populated placeholders and formatting if `populateText` is\n\t * set to `true`.\n\t *\n\t * @return Populated text\n\t */\n\tpublic getText(): string {\n\t\treturn this._text._getText();\n\t}\n\n\t/**\n\t * Returns \"aria-label\" text with populated placeholders and formatting\n\t * if `populateText` is set to `true`.\n\t *\n\t * @return Populated text\n\t */\n\tpublic getAccessibleText(): string {\n\t\treturn this._text._getAccessibleText();\n\t}\n}\n"]}
1
+ {"version":3,"file":"Label.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Label.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Color } from \"../util/Color\";\nimport type { Percent } from \"../util/Percent\";\nimport type { DataItem, IComponentDataItem } from \"./Component\";\n\nimport { Text } from \"../render/Text\";\nimport { p50, p100 } from \"../util/Percent\";\nimport { Container, IContainerPrivate, IContainerSettings } from \"./Container\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $type from \"../../core/util/Type\";\n\n\nexport interface ILabelSettings extends IContainerSettings {\n\n\t/**\n\t * Labels' text.\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/text-styling/} for text styling info\n\t * \n\t */\n\ttext?: string;\n\n\t/**\n\t * Text color.\n\t */\n\tfill?: Color;\n\n\t/**\n\t * Text opacity.\n\t *\n\t * @default 1\n\t * @ince 5.2.39\n\t */\n\tfillOpacity?: number;\n\n\t/**\n\t * Alignment.\n\t */\n\ttextAlign?: \"start\" | \"end\" | \"left\" | \"right\" | \"center\";\n\n\t/**\n\t * Font family to use for the label.\n\t *\n\t * Multiple fonts can be separated by commas.\n\t */\n\tfontFamily?: string;\n\n\t/**\n\t * Font size in misc any supported CSS format (pixel, point, em, etc.).\n\t */\n\tfontSize?: string | number;\n\n\t/**\n\t * Font weight.\n\t */\n\tfontWeight?: \"normal\" | \"bold\" | \"bolder\" | \"lighter\" | \"100\" | \"200\" | \"300\" | \"400\" | \"500\" | \"600\" | \"700\" | \"800\" | \"900\";\n\n\t/**\n\t * Font style.\n\t */\n\tfontStyle?: \"normal\" | \"italic\" | \"oblique\";\n\n\t/**\n\t * Font variant.\n\t */\n\tfontVariant?: \"normal\" | \"small-caps\";\n\n\t/**\n\t * Text decoration.\n\t *\n\t * Supported options `\"underline\"`, `\"line-through\"`.\n\t *\n\t * @since 5.0.15\n\t */\n\ttextDecoration?: \"underline\" | \"line-through\";\n\n\t/**\n\t * Line height in percent or absolute pixels.\n\t */\n\tlineHeight?: Percent | number;\n\n\t/**\n\t * How mouch of the height should be considered to go below baseline.\n\t *\n\t * @default 0.19\n\t */\n\tbaselineRatio?: number;\n\n\t/**\n\t * Opacity of the label.\n\t *\n\t * 0 - fully transparent; 1 - fully opaque.\n\t */\n\topacity?: number;\n\n\t/**\n\t * Text direction.\n\t *\n\t * @default \"ltr\"\n\t */\n\tdirection?: \"ltr\" | \"rtl\";\n\n\t/**\n\t * A base line to use when aligning text chunks vertically.\n\t */\n\ttextBaseline?: \"top\" | \"hanging\" | \"middle\" | \"alphabetic\" | \"ideographic\" | \"bottom\";\n\n\t/**\n\t * How to handle labels that do not fit into its designated space.\n\t *\n\t * LIMITATIONS: on circular labels, the only values supported are `\"hide\"` and\n\t * `\"truncate\"`. The latter will ignore `breakWords` setting.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/labels/#Oversized_text} for more info\n\t */\n\toversizedBehavior?: \"none\" | \"hide\" | \"fit\" | \"wrap\" | \"wrap-no-break\" | \"truncate\";\n\n\t/**\n\t * Whether words can be broken when truncating or wrapping text.\n\t *\n\t * @default false\n\t */\n\tbreakWords?: boolean;\n\n\t/**\n\t * Ellipsis characters to use when truncating text.\n\t *\n\t * Will use Unicode ellipsis symbol (`\"…\"`) by default, which might not be\n\t * available in all fonts. If ellipsis looks broken, use different\n\t * characters. E.g.:\n\t *\n\t * ```TypeScript\n\t * label.set(\"ellipsis\", \"...\");\n\t * ```\n\t * ```JavaScript\n\t * label.set(\"ellipsis\", \"...\");\n\t * ```\n\t *\n\t *\n\t * @default \"…\"\n\t */\n\tellipsis?: string;\n\n\t/**\n\t * Minimum relative scale allowed for label when scaling down\n\t * when `oversizedBehavior` is set to `\"fit\"`.\n\t *\n\t * If fitting the label would require it to scale beyond `minScale` it would\n\t * be hidden instead.\n\t */\n\tminScale?: number;\n\n\t/**\n\t * If set to `true` the label will parse `text` for data placeholders and\n\t * will try to populate them with actual data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/labels/#Data_placeholders} for more info\n\t */\n\tpopulateText?: boolean;\n\n\t/**\n\t * If set to `true`, will ignore in-line formatting blocks and will display\n\t * text exactly as it is.\n\t *\n\t * @default false\n\t */\n\tignoreFormatting?: boolean;\n\n\t/**\n\t * Color of the element's shadow.\n\t *\n\t * For this to work at least one of the following needs to be set as well:\n\t * `shadowBlur`, `shadowOffsetX`, `shadowOffsetY`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowColor?: Color | null;\n\n\t/**\n\t * Blurriness of the the shadow.\n\t *\n\t * The bigger the number, the more blurry shadow will be.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowBlur?: number;\n\n\t/**\n\t * Horizontal shadow offset in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOffsetX?: number;\n\n\t/**\n\t * Vertical shadow offset in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOffsetY?: number;\n\n\t/**\n\t * Opacity of the shadow (0-1).\n\t *\n\t * If not set, will use the same as `fillOpacity` of the element.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/shadows/} for more info\n\t */\n\tshadowOpacity?: number;\n\n\t/**\n\t * Maximum number of characters to allow in label.\n\t *\n\t * If the `text` is longer than `maxChars`, the text will be truncated\n\t * using the `breakWords` and `ellipsis` settings.\n\t * \n\t * @since 5.7.2\n\t */\n\tmaxChars?: number;\n\n\t// The following migh be supported some day:\n\t// padding?: number;\n\t// stroke?: number;\n\t// strokeThickness?: number;\n\t// trim?: number;\n\t// wordWrap?: boolean;\n\t// leading?: number;\n\t// letterSpacing?: number;\n}\n\nexport interface ILabelPrivate extends IContainerPrivate {\n}\n\n/**\n * Creates a label with support for in-line styling and data bindings.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/labels/} for more info\n */\nexport class Label extends Container {\n\n\tdeclare public _settings: ILabelSettings;\n\tdeclare public _privateSettings: ILabelPrivate;\n\n\tprotected _text!: Text;\n\n\tprotected _textKeys: Array<string> = [\n\t\t\"text\",\n\t\t\"fill\",\n\t\t\"fillOpacity\",\n\t\t\"textAlign\",\n\t\t\"fontFamily\",\n\t\t\"fontSize\",\n\t\t\"fontStyle\",\n\t\t\"fontWeight\",\n\t\t\"fontStyle\",\n\t\t\"fontVariant\",\n\t\t\"textDecoration\",\n\t\t\"shadowColor\",\n\t\t\"shadowBlur\",\n\t\t\"shadowOffsetX\",\n\t\t\"shadowOffsetY\",\n\t\t\"shadowOpacity\",\n\t\t// \"leading\",\n\t\t// \"letterSpacing\",\n\t\t\"lineHeight\",\n\t\t\"baselineRatio\",\n\t\t//\"padding\",\n\t\t// \"stroke\",\n\t\t// \"strokeThickness\",\n\t\t// \"trim\",\n\t\t// \"wordWrap\",\n\t\t\"direction\",\n\t\t\"textBaseline\",\n\t\t\"oversizedBehavior\",\n\t\t\"breakWords\",\n\t\t\"ellipsis\",\n\t\t\"minScale\",\n\t\t\"populateText\",\n\t\t\"role\",\n\t\t\"ignoreFormatting\",\n\t\t\"maxChars\",\n\t\t\"ariaLabel\"\n\t];\n\n\tpublic static className: string = \"Label\";\n\tpublic static classNames: Array<string> = Container.classNames.concat([Label.className]);\n\n\t/**\n\t * @ignore Text is not to be used directly\n\t */\n\tpublic get text(): Text {\n\t\treturn this._text;\n\t}\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\n\t\tthis._makeText();\n\n\t\t$array.each(this._textKeys, (property) => {\n\t\t\tconst propValue = this.get(property as any);\n\t\t\tif (propValue != undefined) {\n\t\t\t\tthis._text.set(property as any, propValue);\n\t\t\t}\n\t\t});\n\n\t\tif (this.get(\"html\", \"\") !== \"\") {\n\t\t\tthis._text.set(\"text\", \"\");\n\t\t}\n\n\t\tthis.onPrivate(\"maxWidth\", () => {\n\t\t\tthis._setMaxDimentions();\n\t\t});\n\n\t\tthis.onPrivate(\"maxHeight\", () => {\n\t\t\tthis._setMaxDimentions();\n\t\t});\n\t}\n\n\tpublic _makeText() {\n\t\tthis._text = this.children.push(Text.new(this._root, {}));\n\t}\n\n\tpublic _updateChildren() {\n\t\tsuper._updateChildren();\n\n\t\tconst text = this._text;\n\n\t\t$array.each(this._textKeys, (property) => {\n\t\t\tthis._text.set(property as any, this.get(property as any));\n\t\t})\n\n\t\tif (this.isDirty(\"maxWidth\") || this.isDirty(\"maxHeight\") || this.isDirty(\"rotation\")) {\n\t\t\tthis._setMaxDimentions();\n\t\t}\n\n\t\t// Do not show regular text if HTML is used\n\t\tif (this.get(\"html\", \"\") !== \"\") {\n\t\t\ttext.set(\"text\", \"\");\n\t\t}\n\t\telse {\n\t\t\ttext.set(\"text\", this.get(\"text\"));\n\t\t\tthis._maybeUpdateHTMLColor();\n\t\t}\n\n\t\tif (this.isDirty(\"fill\")) {\n\t\t\tthis._maybeUpdateHTMLColor();\n\t\t}\n\n\t\tif (this.isDirty(\"textAlign\") || this.isDirty(\"width\")) {\n\t\t\tconst textAlign = this.get(\"textAlign\");\n\t\t\tlet x: number | Percent | undefined;\n\t\t\tif (this.get(\"width\") != null) {\n\t\t\t\tif (textAlign == \"right\") {\n\t\t\t\t\tx = p100;\n\t\t\t\t}\n\t\t\t\telse if (textAlign == \"center\") {\n\t\t\t\t\tx = p50;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tx = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (textAlign == \"left\" || textAlign == \"start\") {\n\t\t\t\t\tx = this.get(\"paddingLeft\", 0);\n\t\t\t\t}\n\t\t\t\telse if (textAlign == \"right\" || textAlign == \"end\") {\n\t\t\t\t\tx = -this.get(\"paddingRight\", 0);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttext.set(\"x\", x);\n\t\t}\n\n\t\tconst background = this.get(\"background\");\n\t\tif (background) {\n\t\t\tbackground.setPrivate(\"visible\", text._display.textVisible);\n\t\t}\n\t}\n\n\tprotected _maybeUpdateHTMLColor() {\n\t\tconst htmlElement = this.getPrivate(\"htmlElement\");\n\t\tif (htmlElement && this.get(\"fill\")) {\n\t\t\thtmlElement.style.color = this.get(\"fill\")!.toCSSHex();\n\t\t}\n\t}\n\n\tprotected _setMaxDimentions() {\n\t\tconst rotation = this.get(\"rotation\");\n\t\tconst vertical = rotation == 90 || rotation == 270 || rotation == -90;\n\t\tconst text = this._text;\n\n\t\tconst maxWidth = this.get(\"maxWidth\", this.getPrivate(\"maxWidth\", Infinity));\n\t\tif ($type.isNumber(maxWidth)) {\n\t\t\ttext.set(vertical ? \"maxHeight\" : \"maxWidth\", maxWidth - this.get(\"paddingLeft\", 0) - this.get(\"paddingRight\", 0));\n\t\t}\n\t\telse {\n\t\t\ttext.set(vertical ? \"maxHeight\" : \"maxWidth\", undefined);\n\t\t}\n\n\t\tconst maxHeight = this.get(\"maxHeight\", this.getPrivate(\"maxHeight\", Infinity));\n\t\tif ($type.isNumber(maxHeight)) {\n\t\t\ttext.set(vertical ? \"maxWidth\" : \"maxHeight\", maxHeight - this.get(\"paddingTop\", 0) - this.get(\"paddingBottom\", 0));\n\t\t}\n\t\telse {\n\t\t\ttext.set(vertical ? \"maxWidth\" : \"maxHeight\", undefined);\n\t\t}\n\n\t\tthis.root.events.once(\"frameended\", () => {\n\t\t\ttext.markDirtyBounds();\n\t\t})\n\t}\n\n\tpublic _setDataItem(dataItem?: DataItem<IComponentDataItem>): void {\n\t\tsuper._setDataItem(dataItem);\n\t\tthis._markDirtyKey(\"text\")\n\t\tconst text = this._text;\n\t\tif (text.get(\"populateText\")) {\n\t\t\ttext.markDirtyText();\n\t\t}\n\t\tconst html = this.get(\"html\");\n\t\tif (html && html !== \"\") {\n\t\t\tthis._updateHTMLContent();\n\t\t}\n\t}\n\n\t/**\n\t * Returns text with populated placeholders and formatting if `populateText` is\n\t * set to `true`.\n\t *\n\t * @return Populated text\n\t */\n\tpublic getText(): string {\n\t\treturn this._text._getText();\n\t}\n\n\t/**\n\t * Returns \"aria-label\" text with populated placeholders and formatting\n\t * if `populateText` is set to `true`.\n\t *\n\t * @return Populated text\n\t */\n\tpublic getAccessibleText(): string {\n\t\treturn this._text._getAccessibleText();\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"LinearGradient.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/core/render/gradients/LinearGradient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAQ3E,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAEjE;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAElB;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;CAC/D;AAED;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAE5B,SAAS,EAAE,uBAAuB,CAAC;IACnC,gBAAgB,EAAE,sBAAsB,CAAC;IAExD,OAAc,SAAS,EAAE,MAAM,CAAoB;IACnD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA0D;IAEjG;;OAEG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;CA8DzC"}
1
+ {"version":3,"file":"LinearGradient.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/core/render/gradients/LinearGradient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAQ3E,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAEjE;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAElB;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;CAC/D;AAED;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAE5B,SAAS,EAAE,uBAAuB,CAAC;IACnC,gBAAgB,EAAE,sBAAsB,CAAC;IAExD,OAAc,SAAS,EAAE,MAAM,CAAoB;IACnD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA0D;IAEjG;;OAEG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;CAwEzC"}
@@ -23,6 +23,12 @@ export class LinearGradient extends Gradient {
23
23
  let sin = $math.sin(rotation);
24
24
  let w = cos * (r - l);
25
25
  let h = sin * (b - t);
26
+ if (w == 0) {
27
+ w = 1;
28
+ }
29
+ if (h == 0) {
30
+ h = 1;
31
+ }
26
32
  let longer = Math.max(w, h);
27
33
  const gradient = this._root._renderer.createLinearGradient(l, t, l + longer * cos, t + longer * sin);
28
34
  const stops = this.get("stops");
@@ -1 +1 @@
1
- {"version":3,"file":"LinearGradient.js","sourceRoot":"","sources":["../../../../../../src/.internal/core/render/gradients/LinearGradient.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IGradient } from \"../backend/Renderer\";\nimport type { Sprite } from \"../Sprite\";\n\nimport { Gradient, IGradientSettings, IGradientPrivate } from \"./Gradient\";\nimport { Color } from \"../../util/Color\";\n\nimport * as $array from \"../../util/Array\";\nimport * as $type from \"../../util/Type\";\nimport * as $math from \"../../util/Math\";\n\n\nexport interface ILinearGradientSettings extends IGradientSettings {\n\n\t/**\n\t * Gradient rotation, in degrees.\n\t *\n\t * @default 90\n\t */\n\trotation?: number;\n\n}\n\nexport interface ILinearGradientPrivate extends IGradientPrivate {\n}\n\n/**\n * Linear gradient.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/gradients/} for more info\n */\nexport class LinearGradient extends Gradient {\n\n\tdeclare public _settings: ILinearGradientSettings;\n\tdeclare public _privateSettings: ILinearGradientPrivate;\n\n\tpublic static className: string = \"LinearGradient\";\n\tpublic static classNames: Array<string> = Gradient.classNames.concat([LinearGradient.className]);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getFill(target: Sprite): IGradient {\n\t\tconst rotation = this.get(\"rotation\", 0);\n\t\tlet bounds = this.getBounds(target);\n\n\t\tlet l = bounds.left || 0;\n\t\tlet r = bounds.right || 0;\n\t\tlet t = bounds.top || 0;\n\t\tlet b = bounds.bottom || 0;\n\n\t\tlet cos = $math.cos(rotation);\n\t\tlet sin = $math.sin(rotation);\n\n\t\tlet w = cos * (r - l);\n\t\tlet h = sin * (b - t);\n\n\t\tlet longer = Math.max(w, h);\n\n\t\tconst gradient = this._root._renderer.createLinearGradient(\n\t\t\tl,\n\t\t\tt,\n\t\t\tl + longer * cos,\n\t\t\tt + longer * sin\n\t\t);\n\n\t\tconst stops = this.get(\"stops\")!;\n\t\tif (stops) {\n\t\t\tlet i = 0;\n\t\t\t$array.each(stops, (stop) => {\n\n\t\t\t\tlet offset = stop.offset;\n\n\t\t\t\tif (!$type.isNumber(offset)) {\n\t\t\t\t\toffset = i / (stops.length - 1);\n\t\t\t\t}\n\n\t\t\t\tlet opacity = stop.opacity;\n\n\t\t\t\tif (!$type.isNumber(opacity)) {\n\t\t\t\t\topacity = 1;\n\t\t\t\t}\n\n\t\t\t\tlet color = stop.color;\n\n\t\t\t\tif (color) {\n\n\t\t\t\t\tconst lighten = stop.lighten;\n\t\t\t\t\tif (lighten) {\n\t\t\t\t\t\tcolor = Color.lighten(color, lighten)\n\t\t\t\t\t}\n\n\t\t\t\t\tconst brighten = stop.brighten;\n\t\t\t\t\tif (brighten) {\n\t\t\t\t\t\tcolor = Color.brighten(color, brighten)\n\t\t\t\t\t}\n\n\t\t\t\t\tgradient.addColorStop(offset, 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',' + opacity + ')');\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t})\n\t\t}\n\t\treturn gradient;\n\t}\n}\n"]}
1
+ {"version":3,"file":"LinearGradient.js","sourceRoot":"","sources":["../../../../../../src/.internal/core/render/gradients/LinearGradient.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IGradient } from \"../backend/Renderer\";\nimport type { Sprite } from \"../Sprite\";\n\nimport { Gradient, IGradientSettings, IGradientPrivate } from \"./Gradient\";\nimport { Color } from \"../../util/Color\";\n\nimport * as $array from \"../../util/Array\";\nimport * as $type from \"../../util/Type\";\nimport * as $math from \"../../util/Math\";\n\n\nexport interface ILinearGradientSettings extends IGradientSettings {\n\n\t/**\n\t * Gradient rotation, in degrees.\n\t *\n\t * @default 90\n\t */\n\trotation?: number;\n\n}\n\nexport interface ILinearGradientPrivate extends IGradientPrivate {\n}\n\n/**\n * Linear gradient.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/gradients/} for more info\n */\nexport class LinearGradient extends Gradient {\n\n\tdeclare public _settings: ILinearGradientSettings;\n\tdeclare public _privateSettings: ILinearGradientPrivate;\n\n\tpublic static className: string = \"LinearGradient\";\n\tpublic static classNames: Array<string> = Gradient.classNames.concat([LinearGradient.className]);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getFill(target: Sprite): IGradient {\n\t\tconst rotation = this.get(\"rotation\", 0);\n\t\tlet bounds = this.getBounds(target);\n\n\t\tlet l = bounds.left || 0;\n\t\tlet r = bounds.right || 0;\n\t\tlet t = bounds.top || 0;\n\t\tlet b = bounds.bottom || 0;\n\n\t\tlet cos = $math.cos(rotation);\n\t\tlet sin = $math.sin(rotation);\n\n\t\tlet w = cos * (r - l);\n\t\tlet h = sin * (b - t);\n\n\t\tif(w == 0){\n\t\t\tw = 1;\n\t\t}\n\n\t\tif(h == 0){\n\t\t\th = 1;\n\t\t}\t\t\n\n\t\tlet longer = Math.max(w, h);\n\n\t\tconst gradient = this._root._renderer.createLinearGradient(\n\t\t\tl,\n\t\t\tt,\n\t\t\tl + longer * cos,\n\t\t\tt + longer * sin\n\t\t);\n\n\t\t\n\n\t\tconst stops = this.get(\"stops\")!;\n\t\tif (stops) {\n\t\t\tlet i = 0;\n\t\t\t$array.each(stops, (stop) => {\n\n\t\t\t\tlet offset = stop.offset;\n\n\t\t\t\tif (!$type.isNumber(offset)) {\n\t\t\t\t\toffset = i / (stops.length - 1);\n\t\t\t\t}\n\n\t\t\t\tlet opacity = stop.opacity;\n\n\t\t\t\tif (!$type.isNumber(opacity)) {\n\t\t\t\t\topacity = 1;\n\t\t\t\t}\n\n\t\t\t\tlet color = stop.color;\n\n\t\t\t\tif (color) {\n\n\t\t\t\t\tconst lighten = stop.lighten;\n\t\t\t\t\tif (lighten) {\n\t\t\t\t\t\tcolor = Color.lighten(color, lighten)\n\t\t\t\t\t}\n\n\t\t\t\t\tconst brighten = stop.brighten;\n\t\t\t\t\tif (brighten) {\n\t\t\t\t\t\tcolor = Color.brighten(color, brighten)\n\t\t\t\t\t}\n\n\t\t\t\t\tgradient.addColorStop(offset, 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',' + opacity + ')');\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t})\n\t\t}\n\t\treturn gradient;\n\t}\n}\n"]}
package/CHANGELOG.md CHANGED
@@ -5,6 +5,36 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
5
5
  Please note, that this project, while following numbering syntax, it DOES NOT
6
6
  adhere to [Semantic Versioning](http://semver.org/spec/v2.0.0.html) rules.
7
7
 
8
+ ## [5.9.4] - 2024-04-26
9
+
10
+ ### Fixed
11
+ - `StockChart` with `VolumeProfile` indicator was snapping scrollbar's left grip to the start.
12
+ - Logarithmic axis was not showing labels less than 10e-5.
13
+ - `Treemap`'s labels would sometimes not adjust its size (usually with a lot of data).
14
+
15
+
16
+ ## [5.9.3] - 2024-04-23
17
+
18
+ ### Added
19
+ - Added possibility to add bullets to links in a linked hierarchy charts, like Force-directed and Tree. [More info](https://www.amcharts.com/docs/v5/charts/hierarchy/hierarchy-link-bullets/).
20
+ - New `IndicatorControl` method: `clearIndicators()`. Allows clearing all indicators from the chart at once.
21
+
22
+ ### Changed
23
+ - `StockChart` will now automatically disable select mode when exitting drawing mode.
24
+ - `XYChart` background fill color and opacity have been moved to a default theme, so that it can be overridden by custom themes.
25
+
26
+ ### Fixed
27
+ - Resize bubbles on `StockChart`'s drawings were sometimes disabled when switching and drawing with another drawing tool.
28
+ - Resize bubbles on `StockChart`'s were not shown after Eraser was turned on and off.
29
+ - Resize bubbles on `StockChart`'s were not shown when drawing mode was toggled off and then back on.
30
+ - `PieChart` was not updating radius if resized very quickly.
31
+ - If an `XYSeries` was initially hidden, its tooltip was still visible on an `XYChart` with cursor.
32
+ - Clicking on a selected icon drawing in a `SockChart` would not unselect it.
33
+ - A perfectly vertical or horizontal line with `strokeGradient` set was invisible.
34
+ - Removing an indicator from `StockChart` could cause Y-axis to be auto-zoomed incorrectly.
35
+ - The centering of a scaled HTML content was not taking `centerX`/`centerY` into account.
36
+
37
+
8
38
  ## [5.9.2] - 2024-04-17
9
39
 
10
40
  ### Added
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-arc-horizontal",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-arc-vertical",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-chord",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-chord-directed",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-chord-non-ribbon",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-sankey",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-gauge",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-gauge-bands",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-force-directed",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-pack",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-partition",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-sunburst",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-tree",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-treemap",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-hierarchy-voronoi-treemap",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-jest",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-json-pie",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-json-xy",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-animating-along-lines",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-clustered-points",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-day-and-night",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-globe-rotate-to-country",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-globe-with-projected-circles",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-with-bubbles",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-map-zoom-to-country",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-misc-40-charts",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-misc-microchart-grid",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-pie-chart",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-pie-donut-chart",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-pie-variable-radius",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-radar-column-iwatch-style",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-radar-heat-map",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-radar-line",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-radar-time-line",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.9.2",
6
+ "@amcharts/amcharts5": "^5.9.4",
7
7
  "source-map-loader": "^4.0.1",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^5.1.1",