@amcharts/amcharts5 5.1.6 → 5.1.9

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 (278) hide show
  1. package/.internal/charts/flow/ChordLink.d.ts +12 -0
  2. package/.internal/charts/flow/ChordLink.d.ts.map +1 -1
  3. package/.internal/charts/flow/ChordLink.js.map +1 -1
  4. package/.internal/charts/flow/Flow.d.ts +2 -0
  5. package/.internal/charts/flow/Flow.d.ts.map +1 -1
  6. package/.internal/charts/flow/Flow.js +17 -0
  7. package/.internal/charts/flow/Flow.js.map +1 -1
  8. package/.internal/charts/flow/FlowNodes.d.ts +7 -0
  9. package/.internal/charts/flow/FlowNodes.d.ts.map +1 -1
  10. package/.internal/charts/flow/FlowNodes.js +7 -0
  11. package/.internal/charts/flow/FlowNodes.js.map +1 -1
  12. package/.internal/charts/flow/Sankey.d.ts.map +1 -1
  13. package/.internal/charts/flow/Sankey.js +59 -57
  14. package/.internal/charts/flow/Sankey.js.map +1 -1
  15. package/.internal/charts/funnel/FunnelSeries.d.ts +9 -0
  16. package/.internal/charts/funnel/FunnelSeries.d.ts.map +1 -1
  17. package/.internal/charts/funnel/FunnelSeries.js.map +1 -1
  18. package/.internal/charts/hierarchy/Hierarchy.d.ts +36 -0
  19. package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
  20. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  21. package/.internal/charts/map/MapChart.d.ts +2 -0
  22. package/.internal/charts/map/MapChart.d.ts.map +1 -1
  23. package/.internal/charts/map/MapChart.js +30 -3
  24. package/.internal/charts/map/MapChart.js.map +1 -1
  25. package/.internal/charts/map/MapPointSeries.d.ts +6 -0
  26. package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
  27. package/.internal/charts/map/MapPointSeries.js.map +1 -1
  28. package/.internal/charts/percent/PercentSeries.d.ts +18 -0
  29. package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
  30. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  31. package/.internal/charts/pie/PieSeries.d.ts +3 -0
  32. package/.internal/charts/pie/PieSeries.d.ts.map +1 -1
  33. package/.internal/charts/pie/PieSeries.js.map +1 -1
  34. package/.internal/charts/radar/AxisRendererCircular.d.ts +12 -0
  35. package/.internal/charts/radar/AxisRendererCircular.d.ts.map +1 -1
  36. package/.internal/charts/radar/AxisRendererCircular.js.map +1 -1
  37. package/.internal/charts/radar/AxisRendererRadial.d.ts +12 -0
  38. package/.internal/charts/radar/AxisRendererRadial.d.ts.map +1 -1
  39. package/.internal/charts/radar/AxisRendererRadial.js.map +1 -1
  40. package/.internal/charts/radar/RadarChart.d.ts +2 -0
  41. package/.internal/charts/radar/RadarChart.d.ts.map +1 -1
  42. package/.internal/charts/radar/RadarChart.js +16 -0
  43. package/.internal/charts/radar/RadarChart.js.map +1 -1
  44. package/.internal/charts/radar/RadarColumnSeries.d.ts +15 -0
  45. package/.internal/charts/radar/RadarColumnSeries.d.ts.map +1 -1
  46. package/.internal/charts/radar/RadarColumnSeries.js.map +1 -1
  47. package/.internal/charts/radar/RadarCursor.d.ts +12 -0
  48. package/.internal/charts/radar/RadarCursor.d.ts.map +1 -1
  49. package/.internal/charts/radar/RadarCursor.js.map +1 -1
  50. package/.internal/charts/wordcloud/WordCloud.d.ts +3 -0
  51. package/.internal/charts/wordcloud/WordCloud.d.ts.map +1 -1
  52. package/.internal/charts/wordcloud/WordCloud.js.map +1 -1
  53. package/.internal/charts/xy/XYChart.d.ts +45 -0
  54. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  55. package/.internal/charts/xy/XYChart.js +222 -43
  56. package/.internal/charts/xy/XYChart.js.map +1 -1
  57. package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
  58. package/.internal/charts/xy/XYChartDefaultTheme.js +3 -1
  59. package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
  60. package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
  61. package/.internal/charts/xy/XYCursor.js +8 -1
  62. package/.internal/charts/xy/XYCursor.js.map +1 -1
  63. package/.internal/charts/xy/axes/Axis.d.ts +2 -0
  64. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  65. package/.internal/charts/xy/axes/Axis.js +7 -0
  66. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  67. package/.internal/charts/xy/axes/AxisLabel.d.ts.map +1 -1
  68. package/.internal/charts/xy/axes/AxisLabel.js.map +1 -1
  69. package/.internal/charts/xy/axes/AxisRenderer.d.ts +3 -0
  70. package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
  71. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  72. package/.internal/charts/xy/axes/AxisRendererX.d.ts.map +1 -1
  73. package/.internal/charts/xy/axes/AxisRendererX.js +6 -2
  74. package/.internal/charts/xy/axes/AxisRendererX.js.map +1 -1
  75. package/.internal/charts/xy/axes/AxisRendererY.js +2 -2
  76. package/.internal/charts/xy/axes/AxisRendererY.js.map +1 -1
  77. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  78. package/.internal/charts/xy/axes/DateAxis.js +11 -3
  79. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  80. package/.internal/charts/xy/axes/DurationAxis.d.ts +5 -0
  81. package/.internal/charts/xy/axes/DurationAxis.d.ts.map +1 -1
  82. package/.internal/charts/xy/axes/DurationAxis.js.map +1 -1
  83. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts +3 -0
  84. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  85. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  86. package/.internal/charts/xy/axes/ValueAxis.d.ts +74 -0
  87. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  88. package/.internal/charts/xy/axes/ValueAxis.js +1 -0
  89. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  90. package/.internal/charts/xy/series/Candlestick.d.ts +27 -0
  91. package/.internal/charts/xy/series/Candlestick.d.ts.map +1 -1
  92. package/.internal/charts/xy/series/Candlestick.js.map +1 -1
  93. package/.internal/charts/xy/series/CandlestickSeries.d.ts +6 -1
  94. package/.internal/charts/xy/series/CandlestickSeries.d.ts.map +1 -1
  95. package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
  96. package/.internal/charts/xy/series/ColumnSeries.d.ts +3 -0
  97. package/.internal/charts/xy/series/ColumnSeries.d.ts.map +1 -1
  98. package/.internal/charts/xy/series/ColumnSeries.js.map +1 -1
  99. package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
  100. package/.internal/charts/xy/series/LineSeries.js +3 -0
  101. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  102. package/.internal/charts/xy/series/OHLCSeries.d.ts +3 -0
  103. package/.internal/charts/xy/series/OHLCSeries.d.ts.map +1 -1
  104. package/.internal/charts/xy/series/OHLCSeries.js.map +1 -1
  105. package/.internal/core/Classes.d.ts +14 -8
  106. package/.internal/core/Classes.d.ts.map +1 -1
  107. package/.internal/core/Classes.js.map +1 -1
  108. package/.internal/core/render/Graphics.d.ts +2 -0
  109. package/.internal/core/render/Graphics.d.ts.map +1 -1
  110. package/.internal/core/render/Graphics.js +1 -1
  111. package/.internal/core/render/Graphics.js.map +1 -1
  112. package/.internal/core/render/Sprite.d.ts.map +1 -1
  113. package/.internal/core/render/Sprite.js +15 -1
  114. package/.internal/core/render/Sprite.js.map +1 -1
  115. package/.internal/core/render/Tooltip.d.ts.map +1 -1
  116. package/.internal/core/render/Tooltip.js +14 -4
  117. package/.internal/core/render/Tooltip.js.map +1 -1
  118. package/.internal/core/render/VerticalLayout.js +1 -1
  119. package/.internal/core/render/VerticalLayout.js.map +1 -1
  120. package/.internal/core/render/backend/CanvasRenderer.d.ts +3 -5
  121. package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
  122. package/.internal/core/render/backend/CanvasRenderer.js +49 -34
  123. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  124. package/.internal/core/util/Benchmark.js +1 -1
  125. package/.internal/core/util/Benchmark.js.map +1 -1
  126. package/.internal/core/util/Entity.d.ts +1 -1
  127. package/.internal/core/util/Entity.d.ts.map +1 -1
  128. package/.internal/core/util/Entity.js +1 -1
  129. package/.internal/core/util/Entity.js.map +1 -1
  130. package/.internal/core/util/Language.js +3 -3
  131. package/.internal/core/util/Language.js.map +1 -1
  132. package/.internal/core/util/ResizeSensor.d.ts.map +1 -1
  133. package/.internal/core/util/ResizeSensor.js +2 -3
  134. package/.internal/core/util/ResizeSensor.js.map +1 -1
  135. package/.internal/core/util/Template.d.ts +1 -1
  136. package/.internal/core/util/Template.d.ts.map +1 -1
  137. package/.internal/core/util/Template.js.map +1 -1
  138. package/.internal/core/util/Time.d.ts +1 -0
  139. package/.internal/core/util/Time.d.ts.map +1 -1
  140. package/.internal/core/util/Time.js +12 -0
  141. package/.internal/core/util/Time.js.map +1 -1
  142. package/.internal/core/util/Utils.js +1 -1
  143. package/.internal/core/util/Utils.js.map +1 -1
  144. package/.internal/plugins/exporting/Exporting.d.ts +0 -4
  145. package/.internal/plugins/exporting/Exporting.d.ts.map +1 -1
  146. package/.internal/plugins/exporting/Exporting.js +4 -49
  147. package/.internal/plugins/exporting/Exporting.js.map +1 -1
  148. package/.internal/plugins/json/Classes.d.ts +271 -0
  149. package/.internal/plugins/json/Classes.d.ts.map +1 -0
  150. package/.internal/plugins/json/Classes.js +270 -0
  151. package/.internal/plugins/json/Classes.js.map +1 -0
  152. package/.internal/plugins/json/Json.d.ts +7 -0
  153. package/.internal/plugins/json/Json.d.ts.map +1 -0
  154. package/.internal/plugins/json/Json.js +61 -0
  155. package/.internal/plugins/json/Json.js.map +1 -0
  156. package/CHANGELOG.md +41 -0
  157. package/LICENSE +1 -1
  158. package/examples/javascript/flow-chord/package.json +1 -1
  159. package/examples/javascript/flow-chord-directed/package.json +1 -1
  160. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  161. package/examples/javascript/flow-sankey/package.json +1 -1
  162. package/examples/javascript/gauge/package.json +1 -1
  163. package/examples/javascript/gauge-bands/package.json +1 -1
  164. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  165. package/examples/javascript/hierarchy-pack/package.json +1 -1
  166. package/examples/javascript/hierarchy-partition/package.json +1 -1
  167. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  168. package/examples/javascript/hierarchy-tree/package.json +1 -1
  169. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  170. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  171. package/examples/javascript/map-day-and-night/package.json +1 -1
  172. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  173. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  174. package/examples/javascript/map-with-bubbles/package.json +1 -1
  175. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  176. package/examples/javascript/misc-40-charts/package.json +1 -1
  177. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  178. package/examples/javascript/pie-chart/package.json +1 -1
  179. package/examples/javascript/pie-donut-chart/package.json +1 -1
  180. package/examples/javascript/pie-variable-radius/package.json +1 -1
  181. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  182. package/examples/javascript/radar-heat-map/package.json +1 -1
  183. package/examples/javascript/radar-line/package.json +1 -1
  184. package/examples/javascript/radar-time-line/package.json +1 -1
  185. package/examples/javascript/sliced-funnel/package.json +1 -1
  186. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  187. package/examples/javascript/sliced-pyramid/package.json +1 -1
  188. package/examples/javascript/venn-diagram/package.json +1 -1
  189. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  190. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  191. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  192. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  193. package/examples/javascript/xy-bubble/package.json +1 -1
  194. package/examples/javascript/xy-candlestick/package.json +1 -1
  195. package/examples/javascript/xy-clustered-column/package.json +1 -1
  196. package/examples/javascript/xy-column/package.json +1 -1
  197. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  198. package/examples/javascript/xy-data-grouping/package.json +1 -1
  199. package/examples/javascript/xy-draggable-range/package.json +1 -1
  200. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  201. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  202. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  203. package/examples/javascript/xy-line/package.json +1 -1
  204. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  205. package/examples/javascript/xy-live-data/package.json +1 -1
  206. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  207. package/examples/javascript/xy-ohlc/package.json +1 -1
  208. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  209. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  210. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  211. package/examples/javascript/xy-stacked-column/package.json +1 -1
  212. package/examples/javascript/xy-stacked-step/package.json +1 -1
  213. package/examples/javascript/xy-stock/package.json +1 -1
  214. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  215. package/examples/typescript/flow-chord/package.json +1 -1
  216. package/examples/typescript/flow-chord-directed/package.json +1 -1
  217. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  218. package/examples/typescript/flow-sankey/package.json +1 -1
  219. package/examples/typescript/gauge/package.json +1 -1
  220. package/examples/typescript/gauge-bands/package.json +1 -1
  221. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  222. package/examples/typescript/hierarchy-pack/package.json +1 -1
  223. package/examples/typescript/hierarchy-partition/package.json +1 -1
  224. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  225. package/examples/typescript/hierarchy-tree/package.json +1 -1
  226. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  227. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  228. package/examples/typescript/map-day-and-night/package.json +1 -1
  229. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  230. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  231. package/examples/typescript/map-with-bubbles/package.json +1 -1
  232. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  233. package/examples/typescript/misc-40-charts/package.json +1 -1
  234. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  235. package/examples/typescript/pie-chart/package.json +1 -1
  236. package/examples/typescript/pie-donut-chart/package.json +1 -1
  237. package/examples/typescript/pie-variable-radius/package.json +1 -1
  238. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  239. package/examples/typescript/radar-heat-map/package.json +1 -1
  240. package/examples/typescript/radar-line/package.json +1 -1
  241. package/examples/typescript/radar-time-line/package.json +1 -1
  242. package/examples/typescript/sliced-funnel/package.json +1 -1
  243. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  244. package/examples/typescript/sliced-pyramid/package.json +1 -1
  245. package/examples/typescript/venn-diagram/package.json +1 -1
  246. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  247. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  248. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  249. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  250. package/examples/typescript/xy-bubble/package.json +1 -1
  251. package/examples/typescript/xy-candlestick/package.json +1 -1
  252. package/examples/typescript/xy-clustered-column/package.json +1 -1
  253. package/examples/typescript/xy-column/package.json +1 -1
  254. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  255. package/examples/typescript/xy-data-grouping/package.json +1 -1
  256. package/examples/typescript/xy-draggable-range/package.json +1 -1
  257. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  258. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  259. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  260. package/examples/typescript/xy-line/package.json +1 -1
  261. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  262. package/examples/typescript/xy-live-data/package.json +1 -1
  263. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  264. package/examples/typescript/xy-ohlc/package.json +1 -1
  265. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  266. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  267. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  268. package/examples/typescript/xy-stacked-column/package.json +1 -1
  269. package/examples/typescript/xy-stacked-step/package.json +1 -1
  270. package/examples/typescript/xy-stock/package.json +1 -1
  271. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  272. package/locales/nb_NO.js +6 -6
  273. package/locales/nb_NO.js.map +1 -1
  274. package/package.json +2 -1
  275. package/plugins/json.d.ts +2 -0
  276. package/plugins/json.d.ts.map +1 -0
  277. package/plugins/json.js +2 -0
  278. package/plugins/json.js.map +1 -0
@@ -11,6 +11,8 @@ import { Graphics } from "../../core/render/Graphics";
11
11
  import { Percent } from "../../core/util/Percent";
12
12
  import * as $array from "../../core/util/Array";
13
13
  import * as $type from "../../core/util/Type";
14
+ import * as $order from "../../core/util/Order";
15
+ import * as $object from "../../core/util/Object";
14
16
  /**
15
17
  * Creates an XY chart.
16
18
  *
@@ -108,6 +110,19 @@ var XYChart = /** @class */ (function (_super) {
108
110
  writable: true,
109
111
  value: _this.yAxesAndPlotContainer.children.push(Container.new(_this._root, { width: p100, height: p100, maskContent: false }))
110
112
  });
113
+ /**
114
+ * A [[Container]] used for any elements that need to be displayed over
115
+ * regular `plotContainer`.
116
+ *
117
+ * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/xy-chart-containers/} for more info
118
+ * @default Container.new()
119
+ */
120
+ Object.defineProperty(_this, "topPlotContainer", {
121
+ enumerable: true,
122
+ configurable: true,
123
+ writable: true,
124
+ value: _this.yAxesAndPlotContainer.children.push(Container.new(_this._root, { width: p100, height: p100, isMeasured: false, position: "absolute" }))
125
+ });
111
126
  /**
112
127
  * A [[Container]] axis grid elements are stored in.
113
128
  *
@@ -192,6 +207,36 @@ var XYChart = /** @class */ (function (_super) {
192
207
  writable: true,
193
208
  value: void 0
194
209
  });
210
+ Object.defineProperty(_this, "_movePoints", {
211
+ enumerable: true,
212
+ configurable: true,
213
+ writable: true,
214
+ value: {}
215
+ });
216
+ Object.defineProperty(_this, "_downStartX", {
217
+ enumerable: true,
218
+ configurable: true,
219
+ writable: true,
220
+ value: void 0
221
+ });
222
+ Object.defineProperty(_this, "_downEndX", {
223
+ enumerable: true,
224
+ configurable: true,
225
+ writable: true,
226
+ value: void 0
227
+ });
228
+ Object.defineProperty(_this, "_downStartY", {
229
+ enumerable: true,
230
+ configurable: true,
231
+ writable: true,
232
+ value: void 0
233
+ });
234
+ Object.defineProperty(_this, "_downEndY", {
235
+ enumerable: true,
236
+ configurable: true,
237
+ writable: true,
238
+ value: void 0
239
+ });
195
240
  return _this;
196
241
  }
197
242
  Object.defineProperty(XYChart.prototype, "_afterNew", {
@@ -238,6 +283,16 @@ var XYChart = /** @class */ (function (_super) {
238
283
  this._disposers.push(plotContainer.events.on("globalpointermove", function (event) {
239
284
  _this._handlePlotMove(event.originalEvent);
240
285
  }));
286
+ this._maskGrid();
287
+ }
288
+ });
289
+ Object.defineProperty(XYChart.prototype, "_maskGrid", {
290
+ enumerable: false,
291
+ configurable: true,
292
+ writable: true,
293
+ value: function () {
294
+ this.gridContainer.set("maskContent", true);
295
+ this.topGridContainer.set("maskContent", true);
241
296
  }
242
297
  });
243
298
  Object.defineProperty(XYChart.prototype, "_removeSeries", {
@@ -334,10 +389,12 @@ var XYChart = /** @class */ (function (_super) {
334
389
  if (axis.get("panX")) {
335
390
  var start = axis.get("start");
336
391
  var end = axis.get("end");
337
- var position = axis.fixPosition(plotPoint.x / plotContainer.width());
338
- var delta = wheelStep * (end - start) * shiftX * position;
392
+ var delta = _this._getWheelSign(axis) * wheelStep * (end - start) * shiftX;
339
393
  var newStart = start + delta;
340
394
  var newEnd = end + delta;
395
+ var se = _this._fixWheel(newStart, newEnd);
396
+ newStart = se[0];
397
+ newEnd = se[1];
341
398
  _this._handleWheelAnimation(axis.zoom(newStart, newEnd));
342
399
  }
343
400
  });
@@ -347,10 +404,12 @@ var XYChart = /** @class */ (function (_super) {
347
404
  if (axis.get("panX")) {
348
405
  var start = axis.get("start");
349
406
  var end = axis.get("end");
350
- var position = axis.fixPosition(plotPoint.x / plotContainer.width());
351
- var delta = wheelStep * (end - start) * shiftY * position;
407
+ var delta = _this._getWheelSign(axis) * wheelStep * (end - start) * shiftY;
352
408
  var newStart = start + delta;
353
409
  var newEnd = end + delta;
410
+ var se = _this._fixWheel(newStart, newEnd);
411
+ newStart = se[0];
412
+ newEnd = se[1];
354
413
  _this._handleWheelAnimation(axis.zoom(newStart, newEnd));
355
414
  }
356
415
  });
@@ -360,10 +419,12 @@ var XYChart = /** @class */ (function (_super) {
360
419
  if (axis.get("panY")) {
361
420
  var start = axis.get("start");
362
421
  var end = axis.get("end");
363
- var position = axis.fixPosition(plotPoint.y / plotContainer.height());
364
- var delta = wheelStep * (end - start) * shiftX * position;
422
+ var delta = _this._getWheelSign(axis) * wheelStep * (end - start) * shiftX;
365
423
  var newStart = start + delta;
366
424
  var newEnd = end + delta;
425
+ var se = _this._fixWheel(newStart, newEnd);
426
+ newStart = se[0];
427
+ newEnd = se[1];
367
428
  _this._handleWheelAnimation(axis.zoom(newStart, newEnd));
368
429
  }
369
430
  });
@@ -373,10 +434,12 @@ var XYChart = /** @class */ (function (_super) {
373
434
  if (axis.get("panY")) {
374
435
  var start = axis.get("start");
375
436
  var end = axis.get("end");
376
- var position = axis.fixPosition(plotPoint.y / plotContainer.height());
377
- var delta = wheelStep * (end - start) * shiftY * position;
437
+ var delta = _this._getWheelSign(axis) * wheelStep * (end - start) * shiftY;
378
438
  var newStart = start - delta;
379
439
  var newEnd = end - delta;
440
+ var se = _this._fixWheel(newStart, newEnd);
441
+ newStart = se[0];
442
+ newEnd = se[1];
380
443
  _this._handleWheelAnimation(axis.zoom(newStart, newEnd));
381
444
  }
382
445
  });
@@ -391,15 +454,61 @@ var XYChart = /** @class */ (function (_super) {
391
454
  }
392
455
  }
393
456
  });
457
+ Object.defineProperty(XYChart.prototype, "_getWheelSign", {
458
+ enumerable: false,
459
+ configurable: true,
460
+ writable: true,
461
+ value: function (axis) {
462
+ var sign = 1;
463
+ if (axis.get("renderer").get("inversed")) {
464
+ sign = -1;
465
+ }
466
+ return sign;
467
+ }
468
+ });
469
+ Object.defineProperty(XYChart.prototype, "_fixWheel", {
470
+ enumerable: false,
471
+ configurable: true,
472
+ writable: true,
473
+ value: function (start, end) {
474
+ var diff = end - start;
475
+ if (start < 0) {
476
+ start = 0;
477
+ end = start + diff;
478
+ }
479
+ if (end > 1) {
480
+ end = 1;
481
+ start = end - diff;
482
+ }
483
+ return [start, end];
484
+ }
485
+ });
394
486
  Object.defineProperty(XYChart.prototype, "_handlePlotDown", {
395
487
  enumerable: false,
396
488
  configurable: true,
397
489
  writable: true,
398
490
  value: function (event) {
399
- // TODO: handle multitouch
491
+ var plotContainer = this.plotContainer;
492
+ var local = plotContainer.toLocal(this._root.documentPointToRoot({ x: event.clientX, y: event.clientY }));
493
+ if (this.get("pinchZoomX") || this.get("pinchZoomY")) {
494
+ var touchEvent = event;
495
+ var pointerId = touchEvent.pointerId;
496
+ if (pointerId) {
497
+ if ($object.keys(plotContainer._downPoints).length > 0) {
498
+ var xAxis = this.xAxes.getIndex(0);
499
+ var yAxis = this.yAxes.getIndex(0);
500
+ if (xAxis) {
501
+ this._downStartX = xAxis.get("start", 0);
502
+ this._downEndX = xAxis.get("end", 1);
503
+ }
504
+ if (yAxis) {
505
+ this._downStartY = yAxis.get("start", 0);
506
+ this._downEndY = yAxis.get("end", 1);
507
+ }
508
+ }
509
+ }
510
+ }
400
511
  if (this.get("panX") || this.get("panY")) {
401
- var plotContainer = this.plotContainer;
402
- var local = plotContainer.toLocal(this._root.documentPointToRoot({ x: event.clientX, y: event.clientY }));
403
512
  if (local.x >= 0 && local.y >= 0 && local.x <= plotContainer.width() && local.y <= this.height()) {
404
513
  this._downPoint = local;
405
514
  var panX = this.get("panX");
@@ -479,11 +588,21 @@ var XYChart = /** @class */ (function (_super) {
479
588
  configurable: true,
480
589
  writable: true,
481
590
  value: function (event) {
482
- // TODO: handle multitouch
591
+ var plotContainer = this.plotContainer;
592
+ if (this.get("pinchZoomX") || this.get("pinchZoomY")) {
593
+ var touchEvent = event;
594
+ var pointerId = touchEvent.pointerId;
595
+ if (pointerId) {
596
+ this._movePoints[pointerId] = this._root.documentPointToRoot({ x: event.clientX, y: event.clientY });
597
+ if ($object.keys(plotContainer._downPoints).length > 1) {
598
+ this._handlePinch();
599
+ return;
600
+ }
601
+ }
602
+ }
483
603
  var downPoint = this._downPoint;
484
604
  if (downPoint) {
485
- var plotContainer_1 = this.plotContainer;
486
- var local_1 = plotContainer_1.toLocal(this._root.documentPointToRoot({ x: event.clientX, y: event.clientY }));
605
+ var local_1 = plotContainer.toLocal(this._root.documentPointToRoot({ x: event.clientX, y: event.clientY }));
487
606
  var panX = this.get("panX");
488
607
  var panY = this.get("panY");
489
608
  if (panX) {
@@ -498,7 +617,7 @@ var XYChart = /** @class */ (function (_super) {
498
617
  var panStart = axis._panStart;
499
618
  var panEnd = axis._panEnd;
500
619
  var difference = (panEnd - panStart);
501
- var deltaX = difference * (downPoint.x - local_1.x) / plotContainer_1.width();
620
+ var deltaX = difference * (downPoint.x - local_1.x) / plotContainer.width();
502
621
  if (axis.get("renderer").get("inversed")) {
503
622
  deltaX *= -1;
504
623
  }
@@ -526,7 +645,7 @@ var XYChart = /** @class */ (function (_super) {
526
645
  var panStart = axis._panStart;
527
646
  var panEnd = axis._panEnd;
528
647
  var difference = (panEnd - panStart);
529
- var deltaY = difference * (downPoint.y - local_1.y) / plotContainer_1.height();
648
+ var deltaY = difference * (downPoint.y - local_1.y) / plotContainer.height();
530
649
  if (axis.get("renderer").get("inversed")) {
531
650
  deltaY *= -1;
532
651
  }
@@ -545,6 +664,89 @@ var XYChart = /** @class */ (function (_super) {
545
664
  }
546
665
  }
547
666
  });
667
+ Object.defineProperty(XYChart.prototype, "_handlePinch", {
668
+ enumerable: false,
669
+ configurable: true,
670
+ writable: true,
671
+ value: function () {
672
+ var _a, _b, _c, _d;
673
+ var _this = this;
674
+ var plotContainer = this.plotContainer;
675
+ var i = 0;
676
+ var downPoints = [];
677
+ var movePoints = [];
678
+ $object.each(plotContainer._downPoints, function (k, point) {
679
+ downPoints[i] = point;
680
+ var movePoint = _this._movePoints[k];
681
+ if (movePoint) {
682
+ movePoints[i] = movePoint;
683
+ }
684
+ i++;
685
+ });
686
+ if (downPoints.length > 1 && movePoints.length > 1) {
687
+ var w = plotContainer.width();
688
+ var h = plotContainer.height();
689
+ var downPoint0 = downPoints[0];
690
+ var downPoint1 = downPoints[1];
691
+ var movePoint0 = movePoints[0];
692
+ var movePoint1 = movePoints[1];
693
+ if (downPoint0 && downPoint1 && movePoint0 && movePoint1) {
694
+ movePoint0 = plotContainer.toLocal(movePoint0);
695
+ movePoint1 = plotContainer.toLocal(movePoint1);
696
+ downPoint0 = plotContainer.toLocal(downPoint0);
697
+ downPoint1 = plotContainer.toLocal(downPoint1);
698
+ if (this.get("pinchZoomX")) {
699
+ var downStartX = this._downStartX;
700
+ var downEndX = this._downEndX;
701
+ if (downStartX != null && downEndX != null) {
702
+ if (downPoint0.x > downPoint1.x) {
703
+ _a = __read([downPoint1, downPoint0], 2), downPoint0 = _a[0], downPoint1 = _a[1];
704
+ _b = __read([movePoint1, movePoint0], 2), movePoint0 = _b[0], movePoint1 = _b[1];
705
+ }
706
+ var downPos0 = downStartX + (downPoint0.x / w) * (downEndX - downStartX);
707
+ var downPos1 = downStartX + (downPoint1.x / w) * (downEndX - downStartX);
708
+ var movePos0 = downStartX + (movePoint0.x / w) * (downEndX - downStartX);
709
+ var movePos1 = downStartX + (movePoint1.x / w) * (downEndX - downStartX);
710
+ var initialDistance = Math.max(0.001, downPos1 - downPos0);
711
+ var currentDistance = Math.max(0.001, movePos1 - movePos0);
712
+ var d = initialDistance / currentDistance;
713
+ var s_1 = downStartX * d + downPos0 - movePos0 * d;
714
+ var e_1 = downEndX * d + downPos1 - movePos1 * d;
715
+ this.xAxes.each(function (xAxis) {
716
+ var sa = xAxis.fixPosition(s_1);
717
+ var ea = xAxis.fixPosition(e_1);
718
+ xAxis.zoom(sa, ea, 0);
719
+ });
720
+ }
721
+ }
722
+ if (this.get("pinchZoomY")) {
723
+ var downStartY = this._downStartY;
724
+ var downEndY = this._downEndY;
725
+ if (downStartY != null && downEndY != null) {
726
+ if (downPoint0.y < downPoint1.y) {
727
+ _c = __read([downPoint1, downPoint0], 2), downPoint0 = _c[0], downPoint1 = _c[1];
728
+ _d = __read([movePoint1, movePoint0], 2), movePoint0 = _d[0], movePoint1 = _d[1];
729
+ }
730
+ var downPos0 = downStartY + (1 - downPoint0.y / h) * (downEndY - downStartY);
731
+ var downPos1 = downStartY + (1 - downPoint1.y / h) * (downEndY - downStartY);
732
+ var movePos0 = downStartY + (1 - movePoint0.y / h) * (downEndY - downStartY);
733
+ var movePos1 = downStartY + (1 - movePoint1.y / h) * (downEndY - downStartY);
734
+ var initialDistance = Math.max(0.001, downPos1 - downPos0);
735
+ var currentDistance = Math.max(0.001, movePos1 - movePos0);
736
+ var d = initialDistance / currentDistance;
737
+ var s_2 = downStartY * d + downPos0 - movePos0 * d;
738
+ var e_2 = downEndY * d + downPos1 - movePos1 * d;
739
+ this.yAxes.each(function (yAxis) {
740
+ var sa = yAxis.fixPosition(s_2);
741
+ var ea = yAxis.fixPosition(e_2);
742
+ yAxis.zoom(sa, ea, 0);
743
+ });
744
+ }
745
+ }
746
+ }
747
+ }
748
+ }
749
+ });
548
750
  Object.defineProperty(XYChart.prototype, "_handleCursorPosition", {
549
751
  enumerable: false,
550
752
  configurable: true,
@@ -953,7 +1155,7 @@ var XYChart = /** @class */ (function (_super) {
953
1155
  writable: true,
954
1156
  value: function (point) {
955
1157
  var plotContainer = this.plotContainer;
956
- var otherCharts = this._otherCharts;
1158
+ var otherCharts = this.getPrivate("otherCharts", this._otherCharts);
957
1159
  var global = plotContainer.toGlobal(point);
958
1160
  if (point.x >= -0.1 && point.y >= -0.1 && point.x <= plotContainer.width() + 0.1 && point.y <= plotContainer.height() + 0.1) {
959
1161
  return true;
@@ -1060,19 +1262,7 @@ var XYChart = /** @class */ (function (_super) {
1060
1262
  var count = tooltips.length;
1061
1263
  var average = sum / count;
1062
1264
  if (average > h / 2 + plotT.y) {
1063
- tooltips.sort(function (a, b) {
1064
- var ya = a.get("pointTo").y;
1065
- var yb = b.get("pointTo").y;
1066
- if (ya < yb) {
1067
- return 1;
1068
- }
1069
- else if (ya > yb) {
1070
- return -1;
1071
- }
1072
- else {
1073
- return 1;
1074
- }
1075
- });
1265
+ tooltips.sort(function (a, b) { return $order.compareNumber(b.get("pointTo").y, a.get("pointTo").y); });
1076
1266
  var prevY_1 = plotB.y;
1077
1267
  $array.each(tooltips, function (tooltip) {
1078
1268
  var height = tooltip.height();
@@ -1087,19 +1277,8 @@ var XYChart = /** @class */ (function (_super) {
1087
1277
  });
1088
1278
  }
1089
1279
  else {
1090
- tooltips.sort(function (a, b) {
1091
- var ya = a.get("pointTo").y;
1092
- var yb = b.get("pointTo").y;
1093
- if (ya < yb) {
1094
- return -1;
1095
- }
1096
- else if (ya > yb) {
1097
- return 1;
1098
- }
1099
- else {
1100
- return -1;
1101
- }
1102
- });
1280
+ tooltips.reverse();
1281
+ tooltips.sort(function (a, b) { return $order.compareNumber(a.get("pointTo").y, b.get("pointTo").y); });
1103
1282
  var prevY_2 = 0;
1104
1283
  $array.each(tooltips, function (tooltip) {
1105
1284
  var height = tooltip.height();