@amcharts/amcharts5 5.2.2 → 5.2.5

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 (195) hide show
  1. package/.internal/charts/hierarchy/ForceDirected.d.ts +2 -2
  2. package/.internal/charts/hierarchy/ForceDirected.d.ts.map +1 -1
  3. package/.internal/charts/hierarchy/ForceDirected.js +6 -0
  4. package/.internal/charts/hierarchy/ForceDirected.js.map +1 -1
  5. package/.internal/charts/hierarchy/Tree.d.ts +7 -0
  6. package/.internal/charts/hierarchy/Tree.d.ts.map +1 -1
  7. package/.internal/charts/hierarchy/Tree.js +14 -3
  8. package/.internal/charts/hierarchy/Tree.js.map +1 -1
  9. package/.internal/charts/map/MapChart.d.ts +2 -1
  10. package/.internal/charts/map/MapChart.d.ts.map +1 -1
  11. package/.internal/charts/map/MapChart.js +2 -1
  12. package/.internal/charts/map/MapChart.js.map +1 -1
  13. package/.internal/charts/stock/StockChart.js +1 -1
  14. package/.internal/charts/stock/StockChart.js.map +1 -1
  15. package/.internal/charts/stock/drawing/LabelSeries.js +1 -1
  16. package/.internal/charts/stock/drawing/LabelSeries.js.map +1 -1
  17. package/.internal/charts/stock/toolbar/DateRangeSelector.d.ts +14 -0
  18. package/.internal/charts/stock/toolbar/DateRangeSelector.d.ts.map +1 -1
  19. package/.internal/charts/stock/toolbar/DateRangeSelector.js +6 -2
  20. package/.internal/charts/stock/toolbar/DateRangeSelector.js.map +1 -1
  21. package/.internal/charts/stock/toolbar/IconControl.d.ts +3 -1
  22. package/.internal/charts/stock/toolbar/IconControl.d.ts.map +1 -1
  23. package/.internal/charts/stock/toolbar/IconControl.js +3 -1
  24. package/.internal/charts/stock/toolbar/IconControl.js.map +1 -1
  25. package/.internal/charts/stock/toolbar/PeriodSelector.d.ts.map +1 -1
  26. package/.internal/charts/stock/toolbar/PeriodSelector.js +8 -0
  27. package/.internal/charts/stock/toolbar/PeriodSelector.js.map +1 -1
  28. package/.internal/charts/stock/toolbar/StockToolbarCSS.js +23 -24
  29. package/.internal/charts/stock/toolbar/StockToolbarCSS.js.map +1 -1
  30. package/.internal/charts/xy/XYChart.d.ts +12 -0
  31. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  32. package/.internal/charts/xy/XYChart.js +137 -118
  33. package/.internal/charts/xy/XYChart.js.map +1 -1
  34. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  35. package/.internal/charts/xy/axes/DateAxis.js +35 -16
  36. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  37. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  38. package/.internal/charts/xy/axes/GaplessDateAxis.js +15 -1
  39. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  40. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  41. package/.internal/charts/xy/series/XYSeries.js +4 -8
  42. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  43. package/.internal/core/util/EventDispatcher.d.ts +6 -0
  44. package/.internal/core/util/EventDispatcher.d.ts.map +1 -1
  45. package/.internal/core/util/EventDispatcher.js +20 -0
  46. package/.internal/core/util/EventDispatcher.js.map +1 -1
  47. package/.internal/core/util/Modal.d.ts.map +1 -1
  48. package/.internal/core/util/Modal.js +5 -2
  49. package/.internal/core/util/Modal.js.map +1 -1
  50. package/.internal/core/util/TextFormatter.d.ts.map +1 -1
  51. package/.internal/core/util/TextFormatter.js +1 -9
  52. package/.internal/core/util/TextFormatter.js.map +1 -1
  53. package/.internal/core/util/Time.js +8 -9
  54. package/.internal/core/util/Time.js.map +1 -1
  55. package/.internal/core/util/Timezone.d.ts +1 -0
  56. package/.internal/core/util/Timezone.d.ts.map +1 -1
  57. package/.internal/core/util/Timezone.js +28 -1
  58. package/.internal/core/util/Timezone.js.map +1 -1
  59. package/.internal/themes/DefaultTheme.d.ts.map +1 -1
  60. package/.internal/themes/DefaultTheme.js +1 -0
  61. package/.internal/themes/DefaultTheme.js.map +1 -1
  62. package/CHANGELOG.md +34 -0
  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/json/package.json +1 -1
  76. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  77. package/examples/javascript/map-day-and-night/package.json +1 -1
  78. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  79. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  80. package/examples/javascript/map-with-bubbles/package.json +1 -1
  81. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  82. package/examples/javascript/misc-40-charts/package.json +1 -1
  83. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  84. package/examples/javascript/pie-chart/package.json +1 -1
  85. package/examples/javascript/pie-donut-chart/package.json +1 -1
  86. package/examples/javascript/pie-variable-radius/package.json +1 -1
  87. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  88. package/examples/javascript/radar-heat-map/package.json +1 -1
  89. package/examples/javascript/radar-line/package.json +1 -1
  90. package/examples/javascript/radar-time-line/package.json +1 -1
  91. package/examples/javascript/sliced-funnel/package.json +1 -1
  92. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  93. package/examples/javascript/sliced-pyramid/package.json +1 -1
  94. package/examples/javascript/stock-chart/package.json +1 -1
  95. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  96. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  97. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  98. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  99. package/examples/javascript/stock-chart-live/index.js +155 -103
  100. package/examples/javascript/stock-chart-live/package.json +1 -1
  101. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  102. package/examples/javascript/venn-diagram/package.json +1 -1
  103. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  104. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  105. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  106. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  107. package/examples/javascript/xy-bubble/package.json +1 -1
  108. package/examples/javascript/xy-candlestick/package.json +1 -1
  109. package/examples/javascript/xy-clustered-column/package.json +1 -1
  110. package/examples/javascript/xy-column/package.json +1 -1
  111. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  112. package/examples/javascript/xy-data-grouping/package.json +1 -1
  113. package/examples/javascript/xy-draggable-range/package.json +1 -1
  114. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  115. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  116. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  117. package/examples/javascript/xy-line/package.json +1 -1
  118. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  119. package/examples/javascript/xy-live-data/package.json +1 -1
  120. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  121. package/examples/javascript/xy-ohlc/package.json +1 -1
  122. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  123. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  124. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  125. package/examples/javascript/xy-stacked-column/package.json +1 -1
  126. package/examples/javascript/xy-stacked-step/package.json +1 -1
  127. package/examples/javascript/xy-stock/package.json +1 -1
  128. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  129. package/examples/typescript/flow-chord/package.json +1 -1
  130. package/examples/typescript/flow-chord-directed/package.json +1 -1
  131. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  132. package/examples/typescript/flow-sankey/package.json +1 -1
  133. package/examples/typescript/gauge/package.json +1 -1
  134. package/examples/typescript/gauge-bands/package.json +1 -1
  135. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  136. package/examples/typescript/hierarchy-pack/package.json +1 -1
  137. package/examples/typescript/hierarchy-partition/package.json +1 -1
  138. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  139. package/examples/typescript/hierarchy-tree/package.json +1 -1
  140. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  141. package/examples/typescript/json/package.json +1 -1
  142. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  143. package/examples/typescript/map-day-and-night/package.json +1 -1
  144. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  145. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  146. package/examples/typescript/map-with-bubbles/package.json +1 -1
  147. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  148. package/examples/typescript/misc-40-charts/package.json +1 -1
  149. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  150. package/examples/typescript/pie-chart/package.json +1 -1
  151. package/examples/typescript/pie-donut-chart/package.json +1 -1
  152. package/examples/typescript/pie-variable-radius/package.json +1 -1
  153. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  154. package/examples/typescript/radar-heat-map/package.json +1 -1
  155. package/examples/typescript/radar-line/package.json +1 -1
  156. package/examples/typescript/radar-time-line/package.json +1 -1
  157. package/examples/typescript/sliced-funnel/package.json +1 -1
  158. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  159. package/examples/typescript/sliced-pyramid/package.json +1 -1
  160. package/examples/typescript/stock-chart/package.json +1 -1
  161. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  162. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  163. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  164. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  165. package/examples/typescript/stock-chart-live/index.ts +160 -108
  166. package/examples/typescript/stock-chart-live/package.json +1 -1
  167. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  168. package/examples/typescript/venn-diagram/package.json +1 -1
  169. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  170. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  171. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  172. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  173. package/examples/typescript/xy-bubble/package.json +1 -1
  174. package/examples/typescript/xy-candlestick/package.json +1 -1
  175. package/examples/typescript/xy-clustered-column/package.json +1 -1
  176. package/examples/typescript/xy-column/package.json +1 -1
  177. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  178. package/examples/typescript/xy-data-grouping/package.json +1 -1
  179. package/examples/typescript/xy-draggable-range/package.json +1 -1
  180. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  181. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  182. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  183. package/examples/typescript/xy-line/package.json +1 -1
  184. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  185. package/examples/typescript/xy-live-data/package.json +1 -1
  186. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  187. package/examples/typescript/xy-ohlc/package.json +1 -1
  188. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  189. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  190. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  191. package/examples/typescript/xy-stacked-column/package.json +1 -1
  192. package/examples/typescript/xy-stacked-step/package.json +1 -1
  193. package/examples/typescript/xy-stock/package.json +1 -1
  194. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  195. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"MapChart.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/MapChart.ts"],"names":[],"mappings":"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","sourcesContent":["import type { MapSeries } from \"./MapSeries\";\nimport type { GeoProjection, GeoPath } from \"d3-geo\";\nimport type { IPoint } from \"../../core/util/IPoint\";\nimport type { IGeoPoint } from \"../../core/util/IGeoPoint\";\nimport type { Time } from \"../../core/util/Animation\";\nimport type { ZoomControl } from \"./ZoomControl\";\nimport type { Animation } from \"../../core/util/Entity\";\n\nimport { MapChartDefaultTheme } from \"./MapChartDefaultTheme\";\nimport { SerialChart, ISerialChartPrivate, ISerialChartSettings, ISerialChartEvents } from \"../../core/render/SerialChart\";\nimport { Rectangle } from \"../../core/render/Rectangle\";\nimport { geoPath } from \"d3-geo\";\nimport { Color } from \"../../core/util/Color\";\nimport { registry } from \"../../core/Registry\";\n\nimport * as $math from \"../../core/util/Math\";\nimport * as $array from \"../../core/util/Array\";\nimport * as $type from \"../../core/util/Type\";\nimport * as $mapUtils from \"./MapUtils\";\nimport * as $object from \"../../core/util/Object\";\nimport * as $utils from \"../../core/util/Utils\";\n\nimport type { IDisposer } from \"../../core/util/Disposer\";\nimport type { ISpritePointerEvent } from \"../../core/render/Sprite\";\n\nexport interface IMapChartSettings extends ISerialChartSettings {\n\n\t/**\n\t * A projection to use when plotting the map.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/#Projections} for more info\n\t */\n\tprojection?: GeoProjection;\n\n\t/**\n\t * Current zoom level.\n\t */\n\tzoomLevel?: number;\n\n\t/**\n\t * @ignore\n\t */\n\ttranslateX?: number;\n\n\t/**\n\t * @ignore\n\t */\n\ttranslateY?: number;\n\n\t/**\n\t * Vertical centering of the map.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/#Centering_the_map} for more info\n\t */\n\trotationY?: number;\n\n\t/**\n\t * Horizontal centering of the map.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/#Centering_the_map} for more info\n\t */\n\trotationX?: number;\n\n\t/**\n\t * Depth centering of the map.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/#Centering_the_map} for more info\n\t */\n\trotationZ?: number;\n\n\t/**\n\t * Highest zoom level map is allowed to zoom in to.\n\t *\n\t * @deault 32\n\t */\n\tmaxZoomLevel?: number;\n\n\t/**\n\t * Lowest zoom level map is allowed to zoom in to.\n\t *\n\t * @deault 1\n\t */\n\tminZoomLevel?: number;\n\n\t/**\n\t * Increment zoom level by `zoomStep` when user zooms in via [[ZoomControl]] or\n\t * API.\n\t *\n\t * @default 2\n\t */\n\tzoomStep?: number;\n\n\t/**\n\t * Defines what happens when map is being dragged horizontally.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Panning} for more info\n\t * @default \"translateX\"\n\t */\n\tpanX?: \"none\" | \"rotateX\" | \"translateX\";\n\n\t/**\n\t * Defines what happens when map is being dragged vertically.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Panning} for more info\n\t * @default \"translateY\"\n\t */\n\tpanY?: \"none\" | \"rotateY\" | \"translateY\";\n\n\t/**\n\t * Enables pinch-zooming of the map on multi-touch devices.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Pinch_zoom} for more info\n\t * @default true\n\t */\n\tpinchZoom?: boolean;\n\n\t/**\n\t * Defines what happens when mouse wheel is turned horizontally.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Mouse_wheel_behavior} for more info\n\t * @default \"none\"\n\t */\n\twheelX?: \"none\" | \"zoom\" | \"rotateX\" | \"rotateY\";\n\n\t/**\n\t * Defines what happens when mouse wheel is turned vertically.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Mouse_wheel_behavior} for more info\n\t * @default \"zoom\"\n\t */\n\twheelY?: \"none\" | \"zoom\" | \"rotateX\" | \"rotateY\";\n\n\t/**\n\t * Sensitivity of a mouse wheel.\n\t *\n\t * @default 1\n\t */\n\twheelSensitivity?: number;\n\n\t/**\n\t * Duration of mouse-wheel action animation, in milliseconds.\n\t */\n\twheelDuration?: number;\n\n\t/**\n\t * An easing function to use for mouse wheel action animations.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Easing_functions} for more info\n\t * @default am5.ease.out($ease.cubic)\n\t */\n\twheelEasing?: (t: Time) => Time;\n\n\t/**\n\t * Duration of zoom/pan animations, in milliseconds.\n\t */\n\tanimationDuration?: number;\n\n\t/**\n\t * An easing function to use for zoom/pan animations.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Easing_functions} for more info\n\t * @default am5.ease.out($ease.cubic)\n\t */\n\tanimationEasing?: (t: Time) => Time;\n\n\n\t/**\n\t * A [[ZoomControl]] instance.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/#Zoom_control} for more info\n\t */\n\tzoomControl?: ZoomControl;\n\n\t/**\n\t * Initial/home zoom level.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Initial_position_and_zoom} for more info\n\t */\n\thomeZoomLevel?: number;\n\n\t/**\n\t * Initial coordinates to center map on load or `goHome()` call.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Initial_position_and_zoom} for more info\n\t */\n\thomeGeoPoint?: IGeoPoint;\n\n\t/**\n\t * How much of a map can go outside the viewport.\n\t *\n\t * @default 0.4\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Panning_outside_viewport} for more info\n\t */\n\tmaxPanOut?: number;\n\n\t/**\n\t * Setting `true` means that the map will automatically center itself (or go\n\t * to `homeGeoPoint` if set) when fully zoomed out.\n\t *\n\t * `false` would mean that zoom out will be centered around the mouse\n\t * cursor (when zooming using wheel), or current map position.\n\t * \n\t * @default true\n\t * @since 5.2.1\n\t */\n\tcenterMapOnZoomOut?: boolean;\n\n}\n\nexport interface IMapChartPrivate extends ISerialChartPrivate {\n\n\t/**\n\t * @ignore\n\t */\n\tgeoPath: GeoPath;\n\n\t/**\n\t * @ignore\n\t */\n\tmapScale: number;\n\n}\n\n\nexport interface IMapChartEvents extends ISerialChartEvents {\n\n\t/**\n\t * Invoked when geo bounds of the map change, usually after map is iniitalized\n\t */\n\tgeoboundschanged: {};\n\n}\n\n\nexport class MapChart extends SerialChart {\n\tpublic static className: string = \"MapChart\";\n\tpublic static classNames: Array<string> = SerialChart.classNames.concat([MapChart.className]);\n\n\tdeclare public _settings: IMapChartSettings;\n\tdeclare public _privateSettings: IMapChartPrivate;\n\tdeclare public _seriesType: MapSeries;\n\tdeclare public _events: IMapChartEvents;\n\n\tprotected _downTranslateX: number | undefined;\n\tprotected _downTranslateY: number | undefined;\n\tprotected _downRotationX: number | undefined;\n\tprotected _downRotationY: number | undefined;\n\tprotected _downRotationZ: number | undefined;\n\tprotected _pLat: number = 0;\n\tprotected _pLon: number = 0;\n\n\tprotected _movePoints: { [index: number]: IPoint } = {};\n\tprotected _downZoomLevel: number = 1;\n\tprotected _doubleDownDistance: number = 0;\n\n\tprotected _dirtyGeometries: boolean = false;\n\tprotected _geometryColection: GeoJSON.GeometryCollection = { type: \"GeometryCollection\", geometries: [] };\n\n\tprotected _centerLocation: [number, number] | null = null;\n\n\tprotected _za?: Animation<this[\"_settings\"][\"zoomLevel\"]>;\n\tprotected _rxa?: Animation<this[\"_settings\"][\"rotationX\"]>;\n\tprotected _rya?: Animation<this[\"_settings\"][\"rotationY\"]>;\n\tprotected _txa?: Animation<this[\"_settings\"][\"translateX\"]>;\n\tprotected _tya?: Animation<this[\"_settings\"][\"translateY\"]>;\n\n\tprotected _mapBounds = [[0, 0], [0, 0]];\n\n\tprotected _geoCentroid: IGeoPoint = { longitude: 0, latitude: 0 };\n\tprotected _geoBounds: { left: number, right: number, top: number, bottom: number } = { left: 0, right: 0, top: 0, bottom: 0 };\n\tprotected _prevGeoBounds: { left: number, right: number, top: number, bottom: number } = { left: 0, right: 0, top: 0, bottom: 0 };\n\n\tprotected _dispatchBounds: boolean = false;\n\n\tprotected _wheelDp: IDisposer | undefined;\n\n\tprotected _pw?: number;\n\tprotected _ph?: number;\n\n\tprotected _mapFitted: boolean = false;\n\n\tprotected _centerX: number = 0;\n\tprotected _centerY: number = 0;\n\n\tprotected _makeGeoPath() {\n\t\tconst projection = this.get(\"projection\")!;\n\t\tconst path = geoPath();\n\t\tpath.projection(projection);\n\t\tthis.setPrivateRaw(\"geoPath\", path);\n\t}\n\n\t/**\n\t * Returns coordinates to geographical center of the map.\n\t */\n\tpublic geoCentroid() {\n\t\treturn this._geoCentroid;\n\t}\n\n\t/**\n\t * Returns geographical bounds of the map.\n\t */\n\tpublic geoBounds() {\n\t\treturn this._geoBounds;\n\t}\n\n\tprotected _handleSetWheel() {\n\n\t\tconst wheelX = this.get(\"wheelX\");\n\t\tconst wheelY = this.get(\"wheelY\");\n\t\tconst chartContainer = this.chartContainer;\n\n\t\tif (wheelX != \"none\" || wheelY != \"none\") {\n\n\t\t\tthis._wheelDp = chartContainer.events.on(\"wheel\", (event) => {\n\t\t\t\tconst wheelEasing = this.get(\"wheelEasing\")!;\n\t\t\t\tconst wheelSensitivity = this.get(\"wheelSensitivity\", 1);\n\t\t\t\tconst wheelDuration = this.get(\"wheelDuration\", 0);\n\n\t\t\t\tconst wheelEvent = event.originalEvent;\n\n\t\t\t\twheelEvent.preventDefault();\n\n\t\t\t\tconst chartContainer = this.chartContainer;\n\t\t\t\tconst point = chartContainer._display.toLocal(event.point);\n\n\t\t\t\tif ((wheelY == \"zoom\")) {\n\t\t\t\t\tthis._handleWheelZoom(wheelEvent.deltaY, point);\n\t\t\t\t}\n\t\t\t\telse if (wheelY == \"rotateY\") {\n\t\t\t\t\tthis._handleWheelRotateY(wheelEvent.deltaY / 5 * wheelSensitivity, wheelDuration, wheelEasing);\n\t\t\t\t}\n\t\t\t\telse if (wheelY == \"rotateX\") {\n\t\t\t\t\tthis._handleWheelRotateX(wheelEvent.deltaY / 5 * wheelSensitivity, wheelDuration, wheelEasing);\n\t\t\t\t}\n\n\t\t\t\tif ((wheelX == \"zoom\")) {\n\t\t\t\t\tthis._handleWheelZoom(wheelEvent.deltaX, point);\n\t\t\t\t}\n\t\t\t\telse if (wheelX == \"rotateY\") {\n\t\t\t\t\tthis._handleWheelRotateY(wheelEvent.deltaX / 5 * wheelSensitivity, wheelDuration, wheelEasing);\n\t\t\t\t}\n\t\t\t\telse if (wheelX == \"rotateX\") {\n\t\t\t\t\tthis._handleWheelRotateX(wheelEvent.deltaX / 5 * wheelSensitivity, wheelDuration, wheelEasing);\n\t\t\t\t}\n\n\t\t\t});\n\n\t\t\tthis._disposers.push(this._wheelDp);\n\t\t}\n\t\telse {\n\t\t\tif (this._wheelDp) {\n\t\t\t\tthis._wheelDp.dispose();\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tconst projection = this.get(\"projection\")!;\n\t\tconst w = this.innerWidth();\n\t\tconst h = this.innerHeight();\n\n\t\tif (this.isDirty(\"projection\")) {\n\t\t\tthis._makeGeoPath();\n\t\t\tthis.markDirtyProjection();\n\t\t\tthis._fitMap();\n\n\t\t\tprojection.scale(this.getPrivate(\"mapScale\") * this.get(\"zoomLevel\", 1));\n\t\t\tif (projection.rotate) {\n\t\t\t\tprojection.rotate([this.get(\"rotationX\", 0), this.get(\"rotationY\", 0), this.get(\"rotationZ\", 0)])\n\t\t\t}\n\n\t\t\tlet prev = this._prevSettings.projection;\n\t\t\tif (prev && prev != projection) {\n\t\t\t\tlet hw = w / 2;\n\t\t\t\tlet hh = h / 2;\n\t\t\t\tif (prev.invert) {\n\t\t\t\t\tlet centerLocation = prev.invert([hw, hh]);\n\n\t\t\t\t\tif (centerLocation) {\n\n\t\t\t\t\t\tlet xy = projection(centerLocation);\n\t\t\t\t\t\tif (xy) {\n\t\t\t\t\t\t\tlet translate = projection.translate();\n\n\t\t\t\t\t\t\tlet xx = hw - ((xy[0] - translate[0]));\n\t\t\t\t\t\t\tlet yy = hh - ((xy[1] - translate[1]));\n\n\t\t\t\t\t\t\tprojection.translate([xx, yy])\n\n\t\t\t\t\t\t\tthis.setRaw(\"translateX\", xx);\n\t\t\t\t\t\t\tthis.setRaw(\"translateY\", yy);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"wheelX\") || this.isDirty(\"wheelY\")) {\n\t\t\tthis._handleSetWheel();\n\t\t}\n\t\tvar previousGeometries = this._geometryColection.geometries;\n\t\tif (this._dirtyGeometries) {\n\t\t\tthis._geometryColection.geometries = [];\n\n\t\t\tthis.series.each((series) => {\n\t\t\t\t$array.pushAll(this._geometryColection.geometries, series._geometries);\n\t\t\t})\n\n\t\t\tthis._fitMap();\n\t\t}\n\n\t\tif (previousGeometries.length != 0 && (w != this._pw || h != this._ph || this._dirtyGeometries)) {\n\t\t\tif (w > 0 && h > 0) {\n\t\t\t\tlet hw = w / 2;\n\t\t\t\tlet hh = h / 2;\n\n\t\t\t\tprojection.fitSize([w, h], this._geometryColection);\n\t\t\t\tconst newScale = projection.scale();\n\n\t\t\t\tthis.setPrivateRaw(\"mapScale\", newScale);\n\t\t\t\tprojection.scale(newScale * this.get(\"zoomLevel\", 1));\n\n\t\t\t\tif (this._centerLocation) {\n\t\t\t\t\tlet xy = projection(this._centerLocation);\n\t\t\t\t\tif (xy) {\n\t\t\t\t\t\tlet translate = projection.translate();\n\n\t\t\t\t\t\tlet xx = hw - ((xy[0] - translate[0]));\n\t\t\t\t\t\tlet yy = hh - ((xy[1] - translate[1]));\n\n\t\t\t\t\t\tprojection.translate([xx, yy])\n\n\t\t\t\t\t\tthis.setRaw(\"translateX\", xx);\n\t\t\t\t\t\tthis.setRaw(\"translateY\", yy);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.markDirtyProjection();\n\t\t\t}\n\t\t}\n\n\t\tthis._pw = w;\n\t\tthis._ph = h;\n\n\t\tif (this.isDirty(\"zoomControl\")) {\n\t\t\tconst previous = this._prevSettings.zoomControl;\n\t\t\tconst zoomControl = this.get(\"zoomControl\")!;\n\t\t\tif (zoomControl !== previous) {\n\t\t\t\tthis._disposeProperty(\"zoomControl\");\n\t\t\t\tif (previous) {\n\t\t\t\t\tprevious.dispose();\n\t\t\t\t}\n\t\t\t\tif (zoomControl) {\n\t\t\t\t\tzoomControl.setPrivate(\"chart\", this);\n\t\t\t\t\tthis.children.push(zoomControl);\n\t\t\t\t}\n\n\t\t\t\tthis.setRaw(\"zoomControl\", zoomControl);\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"zoomLevel\")) {\n\t\t\tprojection.scale(this.getPrivate(\"mapScale\") * this.get(\"zoomLevel\", 1));\n\t\t\tthis.markDirtyProjection();\n\t\t}\n\n\t\tif (this.isDirty(\"translateX\") || this.isDirty(\"translateY\")) {\n\t\t\tprojection.translate([this.get(\"translateX\", this.width() / 2), this.get(\"translateY\", this.height() / 2)])\n\t\t\tthis.markDirtyProjection();\n\t\t}\n\n\t\tif (projection.rotate) {\n\t\t\tif (this.isDirty(\"rotationX\") || this.isDirty(\"rotationY\") || this.isDirty(\"rotationZ\")) {\n\t\t\t\tprojection.rotate([this.get(\"rotationX\", 0), this.get(\"rotationY\", 0), this.get(\"rotationZ\", 0)])\n\t\t\t\tthis.markDirtyProjection();\n\t\t\t}\n\t\t}\n\t}\n\n\n\tprotected _fitMap() {\n\t\tconst projection = this.get(\"projection\")!;\n\n\t\tlet w = this.innerWidth();\n\t\tlet h = this.innerHeight();\n\n\t\tif (w > 0 && h > 0) {\n\t\t\tprojection.fitSize([w, h], this._geometryColection);\n\t\t\tthis.setPrivateRaw(\"mapScale\", projection.scale());\n\n\t\t\tconst translate = projection.translate();\n\n\t\t\tthis.setRaw(\"translateX\", translate[0]);\n\t\t\tthis.setRaw(\"translateY\", translate[1]);\n\n\t\t\tthis._centerX = translate[0];\n\t\t\tthis._centerY = translate[1];\n\n\t\t\tconst geoPath = this.getPrivate(\"geoPath\");\n\t\t\tthis._mapBounds = geoPath.bounds(this._geometryColection);\n\n\t\t\tthis._geoCentroid = $mapUtils.getGeoCentroid(this._geometryColection);\n\n\t\t\tconst bounds = $mapUtils.getGeoBounds(this._geometryColection);\n\t\t\tthis._geoBounds = bounds;\n\n\t\t\tif (this._geometryColection.geometries.length > 0) {\n\n\t\t\t\tbounds.left = $math.round(this._geoBounds.left, 3);\n\t\t\t\tbounds.right = $math.round(this._geoBounds.right, 3);\n\t\t\t\tbounds.top = $math.round(this._geoBounds.top, 3);\n\t\t\t\tbounds.bottom = $math.round(this._geoBounds.bottom, 3);\n\n\t\t\t\tconst prevGeoBounds = this._prevGeoBounds;\n\n\t\t\t\tif (prevGeoBounds && !$utils.sameBounds(bounds, prevGeoBounds)) {\n\t\t\t\t\tthis._dispatchBounds = true;\n\t\t\t\t\tthis._prevGeoBounds = bounds;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._mapFitted = true;\n\t\t}\n\t}\n\n\t/**\n\t * @todo review\n\t */\n\tpublic homeGeoPoint(): IGeoPoint {\n\t\tlet homeGeoPoint = this.get(\"homeGeoPoint\");\n\t\tif (!homeGeoPoint) {\n\t\t\tconst geoPath = this.getPrivate(\"geoPath\");\n\t\t\tconst bounds = geoPath.bounds(this._geometryColection);\n\n\t\t\tconst left = bounds[0][0];\n\t\t\tconst top = bounds[0][1];\n\n\t\t\tconst right = bounds[1][0];\n\t\t\tconst bottom = bounds[1][1];\n\n\t\t\thomeGeoPoint = this.invert({ x: left + (right - left) / 2, y: top + (bottom - top) / 2 });\n\t\t}\n\t\treturn homeGeoPoint;\n\t}\n\n\t/**\n\t * Repositions the map to the \"home\" zoom level and center coordinates.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Resetting_position_level} for more info\n\t * @param duration Animation duration in milliseconds\n\t */\n\tpublic goHome(duration?: number) {\n\t\tthis.zoomToGeoPoint(this.homeGeoPoint(), this.get(\"homeZoomLevel\", 1), true, duration);\n\t}\n\n\tpublic _updateChildren() {\n\t\tconst projection = this.get(\"projection\")!;\n\t\tif (projection.invert) {\n\t\t\tlet w = this.innerWidth();\n\t\t\tlet h = this.innerHeight();\n\t\t\tif (w > 0 && h > 0) {\n\t\t\t\tthis._centerLocation = projection.invert([this.innerWidth() / 2, this.innerHeight() / 2]);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _afterChanged() {\n\t\tsuper._afterChanged();\n\t\tif (this._dispatchBounds) {\n\t\t\tthis._dispatchBounds = false;\n\t\t\tconst type = \"geoboundschanged\";\n\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\tthis.events.dispatch(type, { type: type, target: this });\n\t\t\t}\n\t\t}\n\t}\n\n\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtyGeometries() {\n\t\tthis._dirtyGeometries = true;\n\t\tthis.markDirty();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtyProjection() {\n\t\tthis.series.each((series) => {\n\t\t\tseries.markDirtyProjection();\n\t\t})\n\t}\n\n\tprotected _afterNew() {\n\t\tthis._defaultThemes.push(MapChartDefaultTheme.new(this._root));\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"map\"]);\n\n\t\tsuper._afterNew();\n\n\t\tthis._makeGeoPath();\n\n\t\tthis.chartContainer.children.push(this.seriesContainer);\n\n\t\tif (this.get(\"translateX\") == null) {\n\t\t\tthis.set(\"translateX\", this.width() / 2);\n\t\t}\n\t\tif (this.get(\"translateY\") == null) {\n\t\t\tthis.set(\"translateY\", this.height() / 2);\n\t\t}\n\n\t\t// Setting trasnparent background so that full body of the plot container\n\t\t// is interactive\n\t\tthis.chartContainer.set(\"interactive\", true);\n\t\tthis.chartContainer.set(\"interactiveChildren\", false);\n\t\tthis.chartContainer.set(\"background\", Rectangle.new(this._root, {\n\t\t\tthemeTags: [\"map\", \"background\"],\n\t\t\tfill: Color.fromHex(0x000000),\n\t\t\tfillOpacity: 0\n\t\t}));\n\n\t\tthis._disposers.push(this.chartContainer.events.on(\"pointerdown\", (event) => {\n\t\t\tthis._handleChartDown(event);\n\t\t}));\n\n\t\tthis._disposers.push(this.chartContainer.events.on(\"globalpointerup\", (event) => {\n\t\t\tthis._handleChartUp(event);\n\t\t}));\n\n\t\tthis._disposers.push(this.chartContainer.events.on(\"globalpointermove\", (event) => {\n\t\t\tthis._handleChartMove(event);\n\t\t}));\n\n\t\tlet license = false;\n\t\tfor (let i = 0; i < registry.licenses.length; i++) {\n\t\t\tif (registry.licenses[i].match(/^AM5M.{5,}/i)) {\n\t\t\t\tlicense = true;\n\t\t\t}\n\t\t}\n\t\tif (!license) {\n\t\t\tthis._root._showBranding();\n\t\t}\n\n\t}\n\n\tprotected _handleChartDown(event: ISpritePointerEvent) {\n\n\t\tthis._downZoomLevel = this.get(\"zoomLevel\", 1);\n\n\n\t\tlet count = $object.keys(this.chartContainer._downPoints).length;\n\t\tif (count > 0) {\n\t\t\tthis._downTranslateX = this.get(\"translateX\");\n\t\t\tthis._downTranslateY = this.get(\"translateY\");\n\t\t\tthis._downRotationX = this.get(\"rotationX\");\n\t\t\tthis._downRotationY = this.get(\"rotationY\");\n\t\t\tthis._downRotationZ = this.get(\"rotationZ\");\n\n\t\t\tconst downId = this.chartContainer._getDownPointId();\n\t\t\tif (downId) {\n\t\t\t\tlet movePoint = this._movePoints[downId];\n\t\t\t\tif (movePoint) {\n\t\t\t\t\tthis.chartContainer._downPoints[downId] = movePoint;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (count == 0) {\n\n\t\t\tlet bg = this.chartContainer.get(\"background\");\n\t\t\tif (bg) {\n\t\t\t\tbg.events.enableType(\"click\");\n\t\t\t}\n\n\t\t\tif (this.get(\"panX\") || this.get(\"panY\")) {\n\n\t\t\t\tif (this._za) {\n\t\t\t\t\tthis._za.stop();\n\t\t\t\t}\n\t\t\t\tif (this._txa) {\n\t\t\t\t\tthis._txa.stop();\n\t\t\t\t}\n\t\t\t\tif (this._tya) {\n\t\t\t\t\tthis._tya.stop();\n\t\t\t\t}\n\t\t\t\tif (this._rxa) {\n\t\t\t\t\tthis._rxa.stop();\n\t\t\t\t}\n\t\t\t\tif (this._rya) {\n\t\t\t\t\tthis._rya.stop();\n\t\t\t\t}\n\n\t\t\t\tconst downPoint = this.chartContainer._display.toLocal(event.point);\n\t\t\t\tthis._downTranslateX = this.get(\"translateX\");\n\t\t\t\tthis._downTranslateY = this.get(\"translateY\");\n\t\t\t\tthis._downRotationX = this.get(\"rotationX\");\n\t\t\t\tthis._downRotationY = this.get(\"rotationY\");\n\t\t\t\tthis._downRotationZ = this.get(\"rotationZ\");\n\n\t\t\t\tlet projection = this.get(\"projection\")!;\n\n\t\t\t\tif (projection.invert) {\n\t\t\t\t\tlet l0 = projection.invert([downPoint.x, downPoint.y]);\n\t\t\t\t\tlet l1 = projection.invert([downPoint.x + 1, downPoint.y + 1]);\n\t\t\t\t\tif (l0 && l1) {\n\t\t\t\t\t\tthis._pLon = Math.abs(l1[0] - l0[0]);\n\t\t\t\t\t\tthis._pLat = Math.abs(l1[1] - l0[1]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Converts screen coordinates (X and Y) within chart to latitude and\n\t * longitude.\n\t * \n\t * @param point Screen coordinates\n\t * @return Geographical coordinates\n\t */\n\tpublic invert(point: IPoint): IGeoPoint {\n\t\tlet projection = this.get(\"projection\")!;\n\n\t\tif (projection.invert) {\n\t\t\tconst ll = projection.invert([point.x, point.y]);\n\t\t\tif (ll) {\n\t\t\t\treturn { longitude: ll[0], latitude: ll[1] };\n\t\t\t}\n\t\t}\n\n\t\treturn { longitude: 0, latitude: 0 };\n\t}\n\n\t/**\n\t * Converts latitude/longitude to screen coordinates (X and Y).\n\t * \n\t * @param point Geographical coordinates\n\t * @return Screen coordinates\n\t */\n\tpublic convert(point: IGeoPoint): IPoint {\n\t\tlet projection = this.get(\"projection\")!;\n\n\t\tconst xy = projection([point.longitude, point.latitude]);\n\n\t\tif (xy) {\n\t\t\treturn { x: xy[0], y: xy[1] };\n\t\t}\n\n\t\treturn { x: 0, y: 0 };\n\t}\n\n\tprotected _handleChartUp(_event: ISpritePointerEvent) {\n\t\tthis.chartContainer._downPoints = {}\n\t}\n\n\tprotected _handlePinch() {\n\t\tconst chartContainer = this.chartContainer;\n\t\tlet i = 0;\n\t\tlet downPoints: Array<IPoint> = [];\n\t\tlet movePoints: Array<IPoint> = [];\n\n\t\t$object.each(chartContainer._downPoints, (k, point) => {\n\t\t\tdownPoints[i] = point;\n\t\t\tlet movePoint = this._movePoints[k];\n\t\t\tif (movePoint) {\n\t\t\t\tmovePoints[i] = movePoint;\n\t\t\t}\n\t\t\ti++;\n\t\t});\n\n\t\tif (downPoints.length > 1 && movePoints.length > 1) {\n\t\t\tconst display = chartContainer._display;\n\n\t\t\tlet downPoint0 = downPoints[0];\n\t\t\tlet downPoint1 = downPoints[1];\n\n\t\t\tlet movePoint0 = movePoints[0];\n\t\t\tlet movePoint1 = movePoints[1];\n\n\t\t\tif (downPoint0 && downPoint1 && movePoint0 && movePoint1) {\n\n\t\t\t\tdownPoint0 = display.toLocal(downPoint0);\n\t\t\t\tdownPoint1 = display.toLocal(downPoint1);\n\n\t\t\t\tmovePoint0 = display.toLocal(movePoint0);\n\t\t\t\tmovePoint1 = display.toLocal(movePoint1);\n\n\t\t\t\tlet initialDistance = Math.hypot(downPoint1.x - downPoint0.x, downPoint1.y - downPoint0.y);\n\t\t\t\tlet currentDistance = Math.hypot(movePoint1.x - movePoint0.x, movePoint1.y - movePoint0.y);\n\n\t\t\t\tlet level = currentDistance / initialDistance * this._downZoomLevel;\n\t\t\t\tlevel = $math.fitToRange(level, this.get(\"minZoomLevel\", 1), this.get(\"maxZoomLevel\", 32));\n\n\t\t\t\tlet moveCenter = { x: movePoint0.x + (movePoint1.x - movePoint0.x) / 2, y: movePoint0.y + (movePoint1.y - movePoint0.y) / 2 };\n\t\t\t\tlet downCenter = { x: downPoint0.x + (downPoint1.x - downPoint0.x) / 2, y: downPoint0.y + (downPoint1.y - downPoint0.y) / 2 };\n\n\t\t\t\tlet tx = this._downTranslateX || 0;\n\t\t\t\tlet ty = this._downTranslateY || 0;\n\n\t\t\t\tlet zoomLevel = this._downZoomLevel;\n\n\t\t\t\tlet xx = moveCenter.x - (- tx + downCenter.x) / zoomLevel * level;\n\t\t\t\tlet yy = moveCenter.y - (- ty + downCenter.y) / zoomLevel * level;\n\n\t\t\t\tthis.set(\"zoomLevel\", level);\n\t\t\t\tthis.set(\"translateX\", xx);\n\t\t\t\tthis.set(\"translateY\", yy);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _handleChartMove(event: ISpritePointerEvent) {\n\t\tconst chartContainer = this.chartContainer;\n\t\tlet downPoint = chartContainer._getDownPoint();\n\t\tconst downPointId = chartContainer._getDownPointId();\n\t\tconst originalEvent = event.originalEvent as any;\n\n\t\tconst pointerId = originalEvent.pointerId;\n\n\t\tif (this.get(\"pinchZoom\")) {\n\t\t\tif (pointerId) {\n\t\t\t\tthis._movePoints[pointerId] = event.point;\n\n\t\t\t\tif ($object.keys(chartContainer._downPoints).length > 1) {\n\t\t\t\t\tthis._handlePinch();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (downPointId && pointerId && pointerId != downPointId) {\n\t\t\treturn;\n\t\t}\n\t\telse {\n\t\t\tif (downPoint) {\n\t\t\t\tconst panX = this.get(\"panX\");\n\t\t\t\tconst panY = this.get(\"panY\");\n\t\t\t\tif (panX != \"none\" || panY != \"none\") {\n\t\t\t\t\tconst display = chartContainer._display;\n\t\t\t\t\tlet local = display.toLocal(event.point);\n\t\t\t\t\tdownPoint = display.toLocal(downPoint);\n\n\t\t\t\t\tlet x = this._downTranslateX;\n\t\t\t\t\tlet y = this._downTranslateY;\n\n\t\t\t\t\tif (Math.hypot(downPoint.x - local.x, downPoint.y - local.y) > 5) {\n\t\t\t\t\t\tlet bg = chartContainer.get(\"background\");\n\t\t\t\t\t\tif (bg) {\n\t\t\t\t\t\t\tbg.events.disableType(\"click\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ($type.isNumber(x) && $type.isNumber(y)) {\n\t\t\t\t\t\t\tlet projection = this.get(\"projection\")!;\n\t\t\t\t\t\t\tconst zoomLevel = this.get(\"zoomLevel\", 1);\n\n\t\t\t\t\t\t\tconst maxPanOut = this.get(\"maxPanOut\", 0.4);\n\t\t\t\t\t\t\tconst bounds = this._mapBounds;\n\t\t\t\t\t\t\tconst w = this.width();\n\t\t\t\t\t\t\tconst h = this.height();\n\n\t\t\t\t\t\t\tconst ww = bounds[1][0] - bounds[0][0];\n\t\t\t\t\t\t\tconst hh = bounds[1][1] - bounds[0][1];\n\n\t\t\t\t\t\t\tif (panX == \"translateX\") {\n\t\t\t\t\t\t\t\tx += local.x - downPoint.x;\n\n\t\t\t\t\t\t\t\tconst cx = w / 2 - (w / 2 - this._centerX) * zoomLevel;\n\t\t\t\t\t\t\t\tx = Math.min(x, cx + ww * maxPanOut * zoomLevel);\n\t\t\t\t\t\t\t\tx = Math.max(x, cx - ww * maxPanOut * zoomLevel);\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (panY == \"translateY\") {\n\t\t\t\t\t\t\t\ty += local.y - downPoint.y;\n\t\t\t\t\t\t\t\tconst cy = h / 2 - (h / 2 - this._centerY) * zoomLevel;\n\t\t\t\t\t\t\t\ty = Math.min(y, cy + hh * maxPanOut * zoomLevel);\n\t\t\t\t\t\t\t\ty = Math.max(y, cy - hh * maxPanOut * zoomLevel);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.set(\"translateX\", x);\n\t\t\t\t\t\t\tthis.set(\"translateY\", y);\n\n\t\t\t\t\t\t\tif (projection.invert) {\n\t\t\t\t\t\t\t\tlet downLocation = projection.invert([downPoint.x, downPoint.y]);\n\t\t\t\t\t\t\t\tif (location && downLocation) {\n\t\t\t\t\t\t\t\t\tif (panX == \"rotateX\") {\n\t\t\t\t\t\t\t\t\t\tthis.set(\"rotationX\", this._downRotationX! - (downPoint.x - local.x) * this._pLon);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (panY == \"rotateY\") {\n\t\t\t\t\t\t\t\t\t\tthis.set(\"rotationY\", this._downRotationY! + (downPoint.y - local.y) * this._pLat);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _handleWheelRotateY(delta: number, duration: number, easing: (t: Time) => Time) {\n\t\tthis._rya = this.animate({ key: \"rotationY\", to: this.get(\"rotationY\", 0) - delta, duration: duration, easing: easing });\n\t}\n\n\tprotected _handleWheelRotateX(delta: number, duration: number, easing: (t: Time) => Time) {\n\t\tthis._rxa = this.animate({ key: \"rotationX\", to: this.get(\"rotationX\", 0) - delta, duration: duration, easing: easing });\n\t}\n\n\tprotected _handleWheelZoom(delta: number, point: IPoint) {\n\t\tlet step = this.get(\"zoomStep\", 2);\n\t\tlet zoomLevel = this.get(\"zoomLevel\", 1);\n\t\tlet newZoomLevel = zoomLevel;\n\t\tif (delta > 0) {\n\t\t\tnewZoomLevel = zoomLevel / step;\n\t\t}\n\t\telse if (delta < 0) {\n\t\t\tnewZoomLevel = zoomLevel * step;\n\t\t}\n\n\t\tif (newZoomLevel != zoomLevel) {\n\t\t\tthis.zoomToPoint(point, newZoomLevel)\n\t\t}\n\t}\n\n\t/**\n\t * Zoom the map to geographical bounds.\n\t *\n\t * @param geoBounds Bounds\n\t * @param duration Animation duration in milliseconds\n\t */\n\tpublic zoomToGeoBounds(geoBounds: { left: number, right: number, top: number, bottom: number }, duration?: number): Animation<this[\"_settings\"][\"zoomLevel\"]> | undefined {\n\t\tif (geoBounds.right < geoBounds.left) {\n\t\t\tgeoBounds.right = 180;\n\t\t\tgeoBounds.left = -180;\n\t\t}\n\n\t\tconst geoPath = this.getPrivate(\"geoPath\");\n\t\tconst mapBounds = geoPath.bounds(this._geometryColection);\n\n\t\tlet p0 = this.convert({ longitude: geoBounds.left, latitude: geoBounds.top });\n\t\tlet p1 = this.convert({ longitude: geoBounds.right, latitude: geoBounds.bottom });\n\n\t\tif (p0.y < mapBounds[0][1]) {\n\t\t\tp0.y = mapBounds[0][1];\n\t\t}\n\n\t\tif (p1.y > mapBounds[1][1]) {\n\t\t\tp1.y = mapBounds[1][1];\n\t\t}\n\n\t\tlet zl = this.get(\"zoomLevel\", 1);\n\n\t\tlet bounds = { left: p0.x, right: p1.x, top: p0.y, bottom: p1.y };\n\n\t\tlet seriesContainer = this.seriesContainer;\n\n\t\tlet zoomLevel = .9 * Math.min(seriesContainer.innerWidth() / (bounds.right - bounds.left) * zl, seriesContainer.innerHeight() / (bounds.bottom - bounds.top) * zl);\n\t\tlet x = bounds.left + (bounds.right - bounds.left) / 2;\n\t\tlet y = bounds.top + (bounds.bottom - bounds.top) / 2;\n\n\t\tlet geoPoint = this.invert({ x, y });\n\n\t\treturn this.zoomToGeoPoint(geoPoint, zoomLevel, true, duration);\n\t}\n\n\t/**\n\t * Zooms the map to specific screen point.\n\t *\n\t * @param point Point\n\t * @param level Zoom level\n\t * @param center Center the map\n\t * @param duration Duration of the animation in milliseconds\n\t */\n\tpublic zoomToPoint(point: IPoint, level: number, center?: boolean, duration?: number): Animation<this[\"_settings\"][\"zoomLevel\"]> | undefined {\n\t\tif (level) {\n\t\t\tlevel = $math.fitToRange(level, this.get(\"minZoomLevel\", 1), this.get(\"maxZoomLevel\", 32));\n\t\t}\n\n\t\tif (!$type.isNumber(duration)) {\n\t\t\tduration = this.get(\"animationDuration\", 0);\n\t\t}\n\t\tconst easing = this.get(\"animationEasing\");\n\t\tconst zoomLevel = this.get(\"zoomLevel\", 1);\n\n\t\tif (this.get(\"centerMapOnZoomOut\") && level == this.get(\"homeZoomLevel\", 1)) {\n\t\t\tpoint = this.convert(this.homeGeoPoint());\n\t\t\tcenter = true;\n\t\t}\t\t\n\n\t\tlet x = point.x;\n\t\tlet y = point.y;\n\n\t\tlet tx = this.get(\"translateX\", 0);\n\t\tlet ty = this.get(\"translateY\", 0);\n\n\t\tlet cx = x;\n\t\tlet cy = y;\n\n\t\tif (center) {\n\t\t\tcx = this.width() / 2;\n\t\t\tcy = this.height() / 2;\n\t\t}\n\n\t\tlet xx = cx - ((x - tx) / zoomLevel * level);\n\t\tlet yy = cy - ((y - ty) / zoomLevel * level);\n\n\n\t\tthis._txa = this.animate({ key: \"translateX\", to: xx, duration: duration, easing: easing });\n\t\tthis._tya = this.animate({ key: \"translateY\", to: yy, duration: duration, easing: easing });\n\t\tthis._za = this.animate({ key: \"zoomLevel\", to: level, duration: duration, easing: easing });\n\n\t\tif (zoomLevel != level) {\n\t\t\tthis._root.readerAlert(this._t(\"Zoom level changed to %1\", this._root.locale, $type.numberToString(level)));\n\t\t}\n\n\t\treturn this._za;\n\t}\n\n\t/**\n\t * Zooms the map to specific geographical point.\n\t *\n\t * @param geoPoint Point\n\t * @param level Zoom level\n\t * @param center Center the map\n\t * @param duration Duration of the animation in milliseconds\n\t */\n\tpublic zoomToGeoPoint(geoPoint: IGeoPoint, level: number, center?: boolean, duration?: number): Animation<this[\"_settings\"][\"zoomLevel\"]> | undefined {\n\t\tlet xy = this.convert(geoPoint);\n\n\t\tif (xy) {\n\t\t\treturn this.zoomToPoint(xy, level, center, duration);\n\t\t}\n\t}\n\n\t/**\n\t * Zooms the map in.\n\t */\n\tpublic zoomIn(): Animation<this[\"_settings\"][\"zoomLevel\"]> | undefined {\n\t\treturn this.zoomToPoint({ x: this.width() / 2, y: this.height() / 2 }, this.get(\"zoomLevel\", 1) * this.get(\"zoomStep\", 2));\n\t}\n\n\t/**\n\t * Zooms the map out.\n\t */\n\tpublic zoomOut(): Animation<this[\"_settings\"][\"zoomLevel\"]> | undefined {\n\t\treturn this.zoomToPoint({ x: this.width() / 2, y: this.height() / 2 }, this.get(\"zoomLevel\", 1) / this.get(\"zoomStep\", 2));\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._dirtyGeometries = false;\n\t\tthis._mapFitted = false;\n\t}\n}\n"]}
1
+ {"version":3,"file":"MapChart.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/MapChart.ts"],"names":[],"mappings":"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","sourcesContent":["import type { MapSeries } from \"./MapSeries\";\nimport type { GeoProjection, GeoPath } from \"d3-geo\";\nimport type { IPoint } from \"../../core/util/IPoint\";\nimport type { IGeoPoint } from \"../../core/util/IGeoPoint\";\nimport type { Time } from \"../../core/util/Animation\";\nimport type { ZoomControl } from \"./ZoomControl\";\nimport type { Animation } from \"../../core/util/Entity\";\n\nimport { MapChartDefaultTheme } from \"./MapChartDefaultTheme\";\nimport { SerialChart, ISerialChartPrivate, ISerialChartSettings, ISerialChartEvents } from \"../../core/render/SerialChart\";\nimport { Rectangle } from \"../../core/render/Rectangle\";\nimport { geoPath } from \"d3-geo\";\nimport { Color } from \"../../core/util/Color\";\nimport { registry } from \"../../core/Registry\";\n\nimport * as $math from \"../../core/util/Math\";\nimport * as $array from \"../../core/util/Array\";\nimport * as $type from \"../../core/util/Type\";\nimport * as $mapUtils from \"./MapUtils\";\nimport * as $object from \"../../core/util/Object\";\nimport * as $utils from \"../../core/util/Utils\";\n\nimport type { IDisposer } from \"../../core/util/Disposer\";\nimport type { ISpritePointerEvent } from \"../../core/render/Sprite\";\n\nexport interface IMapChartSettings extends ISerialChartSettings {\n\n\t/**\n\t * A projection to use when plotting the map.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/#Projections} for more info\n\t */\n\tprojection?: GeoProjection;\n\n\t/**\n\t * Current zoom level.\n\t */\n\tzoomLevel?: number;\n\n\t/**\n\t * @ignore\n\t */\n\ttranslateX?: number;\n\n\t/**\n\t * @ignore\n\t */\n\ttranslateY?: number;\n\n\t/**\n\t * Vertical centering of the map.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/#Centering_the_map} for more info\n\t */\n\trotationY?: number;\n\n\t/**\n\t * Horizontal centering of the map.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/#Centering_the_map} for more info\n\t */\n\trotationX?: number;\n\n\t/**\n\t * Depth centering of the map.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/#Centering_the_map} for more info\n\t */\n\trotationZ?: number;\n\n\t/**\n\t * Highest zoom level map is allowed to zoom in to.\n\t *\n\t * @deault 32\n\t */\n\tmaxZoomLevel?: number;\n\n\t/**\n\t * Lowest zoom level map is allowed to zoom in to.\n\t *\n\t * @deault 1\n\t */\n\tminZoomLevel?: number;\n\n\t/**\n\t * Increment zoom level by `zoomStep` when user zooms in via [[ZoomControl]] or\n\t * API.\n\t *\n\t * @default 2\n\t */\n\tzoomStep?: number;\n\n\t/**\n\t * Defines what happens when map is being dragged horizontally.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Panning} for more info\n\t * @default \"translateX\"\n\t */\n\tpanX?: \"none\" | \"rotateX\" | \"translateX\";\n\n\t/**\n\t * Defines what happens when map is being dragged vertically.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Panning} for more info\n\t * @default \"translateY\"\n\t */\n\tpanY?: \"none\" | \"rotateY\" | \"translateY\";\n\n\t/**\n\t * Enables pinch-zooming of the map on multi-touch devices.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Pinch_zoom} for more info\n\t * @default true\n\t */\n\tpinchZoom?: boolean;\n\n\t/**\n\t * Defines what happens when mouse wheel is turned horizontally.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Mouse_wheel_behavior} for more info\n\t * @default \"none\"\n\t */\n\twheelX?: \"none\" | \"zoom\" | \"rotateX\" | \"rotateY\";\n\n\t/**\n\t * Defines what happens when mouse wheel is turned vertically.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Mouse_wheel_behavior} for more info\n\t * @default \"zoom\"\n\t */\n\twheelY?: \"none\" | \"zoom\" | \"rotateX\" | \"rotateY\";\n\n\t/**\n\t * Sensitivity of a mouse wheel.\n\t *\n\t * @default 1\n\t */\n\twheelSensitivity?: number;\n\n\t/**\n\t * Duration of mouse-wheel action animation, in milliseconds.\n\t */\n\twheelDuration?: number;\n\n\t/**\n\t * An easing function to use for mouse wheel action animations.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Easing_functions} for more info\n\t * @default am5.ease.out($ease.cubic)\n\t */\n\twheelEasing?: (t: Time) => Time;\n\n\t/**\n\t * Duration of zoom/pan animations, in milliseconds.\n\t */\n\tanimationDuration?: number;\n\n\t/**\n\t * An easing function to use for zoom/pan animations.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Easing_functions} for more info\n\t * @default am5.ease.out($ease.cubic)\n\t */\n\tanimationEasing?: (t: Time) => Time;\n\n\n\t/**\n\t * A [[ZoomControl]] instance.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/#Zoom_control} for more info\n\t */\n\tzoomControl?: ZoomControl;\n\n\t/**\n\t * Initial/home zoom level.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Initial_position_and_zoom} for more info\n\t */\n\thomeZoomLevel?: number;\n\n\t/**\n\t * Initial coordinates to center map on load or `goHome()` call.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Initial_position_and_zoom} for more info\n\t */\n\thomeGeoPoint?: IGeoPoint;\n\n\t/**\n\t * How much of a map can go outside the viewport.\n\t *\n\t * @default 0.4\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Panning_outside_viewport} for more info\n\t */\n\tmaxPanOut?: number;\n\n\t/**\n\t * Setting `true` means that the map will automatically center itself (or go\n\t * to `homeGeoPoint` if set) when fully zoomed out.\n\t *\n\t * `false` would mean that zoom out will be centered around the mouse\n\t * cursor (when zooming using wheel), or current map position.\n\t * \n\t * @default true\n\t * @since 5.2.1\n\t */\n\tcenterMapOnZoomOut?: boolean;\n\n}\n\nexport interface IMapChartPrivate extends ISerialChartPrivate {\n\n\t/**\n\t * @ignore\n\t */\n\tgeoPath: GeoPath;\n\n\t/**\n\t * @ignore\n\t */\n\tmapScale: number;\n\n}\n\n\nexport interface IMapChartEvents extends ISerialChartEvents {\n\n\t/**\n\t * Invoked when geo bounds of the map change, usually after map is iniitalized\n\t */\n\tgeoboundschanged: {};\n\n}\n\n\nexport class MapChart extends SerialChart {\n\tpublic static className: string = \"MapChart\";\n\tpublic static classNames: Array<string> = SerialChart.classNames.concat([MapChart.className]);\n\n\tdeclare public _settings: IMapChartSettings;\n\tdeclare public _privateSettings: IMapChartPrivate;\n\tdeclare public _seriesType: MapSeries;\n\tdeclare public _events: IMapChartEvents;\n\n\tprotected _downTranslateX: number | undefined;\n\tprotected _downTranslateY: number | undefined;\n\tprotected _downRotationX: number | undefined;\n\tprotected _downRotationY: number | undefined;\n\tprotected _downRotationZ: number | undefined;\n\tprotected _pLat: number = 0;\n\tprotected _pLon: number = 0;\n\n\tprotected _movePoints: { [index: number]: IPoint } = {};\n\tprotected _downZoomLevel: number = 1;\n\tprotected _doubleDownDistance: number = 0;\n\n\tprotected _dirtyGeometries: boolean = false;\n\tprotected _geometryColection: GeoJSON.GeometryCollection = { type: \"GeometryCollection\", geometries: [] };\n\n\tprotected _centerLocation: [number, number] | null = null;\n\n\tprotected _za?: Animation<this[\"_settings\"][\"zoomLevel\"]>;\n\tprotected _rxa?: Animation<this[\"_settings\"][\"rotationX\"]>;\n\tprotected _rya?: Animation<this[\"_settings\"][\"rotationY\"]>;\n\tprotected _txa?: Animation<this[\"_settings\"][\"translateX\"]>;\n\tprotected _tya?: Animation<this[\"_settings\"][\"translateY\"]>;\n\n\tprotected _mapBounds = [[0, 0], [0, 0]];\n\n\tprotected _geoCentroid: IGeoPoint = { longitude: 0, latitude: 0 };\n\tprotected _geoBounds: { left: number, right: number, top: number, bottom: number } = { left: 0, right: 0, top: 0, bottom: 0 };\n\tprotected _prevGeoBounds: { left: number, right: number, top: number, bottom: number } = { left: 0, right: 0, top: 0, bottom: 0 };\n\n\tprotected _dispatchBounds: boolean = false;\n\n\tprotected _wheelDp: IDisposer | undefined;\n\n\tprotected _pw?: number;\n\tprotected _ph?: number;\n\n\tprotected _mapFitted: boolean = false;\n\n\tprotected _centerX: number = 0;\n\tprotected _centerY: number = 0;\n\n\tprotected _makeGeoPath() {\n\t\tconst projection = this.get(\"projection\")!;\n\t\tconst path = geoPath();\n\t\tpath.projection(projection);\n\t\tthis.setPrivateRaw(\"geoPath\", path);\n\t}\n\n\t/**\n\t * Returns coordinates to geographical center of the map.\n\t */\n\tpublic geoCentroid() {\n\t\treturn this._geoCentroid;\n\t}\n\n\t/**\n\t * Returns geographical bounds of the map.\n\t */\n\tpublic geoBounds() {\n\t\treturn this._geoBounds;\n\t}\n\n\tprotected _handleSetWheel() {\n\n\t\tconst wheelX = this.get(\"wheelX\");\n\t\tconst wheelY = this.get(\"wheelY\");\n\t\tconst chartContainer = this.chartContainer;\n\n\t\tif (wheelX != \"none\" || wheelY != \"none\") {\n\n\t\t\tthis._wheelDp = chartContainer.events.on(\"wheel\", (event) => {\n\t\t\t\tconst wheelEasing = this.get(\"wheelEasing\")!;\n\t\t\t\tconst wheelSensitivity = this.get(\"wheelSensitivity\", 1);\n\t\t\t\tconst wheelDuration = this.get(\"wheelDuration\", 0);\n\n\t\t\t\tconst wheelEvent = event.originalEvent;\n\n\t\t\t\twheelEvent.preventDefault();\n\n\t\t\t\tconst chartContainer = this.chartContainer;\n\t\t\t\tconst point = chartContainer._display.toLocal(event.point);\n\n\t\t\t\tif ((wheelY == \"zoom\")) {\n\t\t\t\t\tthis._handleWheelZoom(wheelEvent.deltaY, point);\n\t\t\t\t}\n\t\t\t\telse if (wheelY == \"rotateY\") {\n\t\t\t\t\tthis._handleWheelRotateY(wheelEvent.deltaY / 5 * wheelSensitivity, wheelDuration, wheelEasing);\n\t\t\t\t}\n\t\t\t\telse if (wheelY == \"rotateX\") {\n\t\t\t\t\tthis._handleWheelRotateX(wheelEvent.deltaY / 5 * wheelSensitivity, wheelDuration, wheelEasing);\n\t\t\t\t}\n\n\t\t\t\tif ((wheelX == \"zoom\")) {\n\t\t\t\t\tthis._handleWheelZoom(wheelEvent.deltaX, point);\n\t\t\t\t}\n\t\t\t\telse if (wheelX == \"rotateY\") {\n\t\t\t\t\tthis._handleWheelRotateY(wheelEvent.deltaX / 5 * wheelSensitivity, wheelDuration, wheelEasing);\n\t\t\t\t}\n\t\t\t\telse if (wheelX == \"rotateX\") {\n\t\t\t\t\tthis._handleWheelRotateX(wheelEvent.deltaX / 5 * wheelSensitivity, wheelDuration, wheelEasing);\n\t\t\t\t}\n\n\t\t\t});\n\n\t\t\tthis._disposers.push(this._wheelDp);\n\t\t}\n\t\telse {\n\t\t\tif (this._wheelDp) {\n\t\t\t\tthis._wheelDp.dispose();\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tconst projection = this.get(\"projection\")!;\n\t\tconst w = this.innerWidth();\n\t\tconst h = this.innerHeight();\n\n\t\tif (this.isDirty(\"projection\")) {\n\t\t\tthis._makeGeoPath();\n\t\t\tthis.markDirtyProjection();\n\t\t\tthis._fitMap();\n\n\t\t\tprojection.scale(this.getPrivate(\"mapScale\") * this.get(\"zoomLevel\", 1));\n\t\t\tif (projection.rotate) {\n\t\t\t\tprojection.rotate([this.get(\"rotationX\", 0), this.get(\"rotationY\", 0), this.get(\"rotationZ\", 0)])\n\t\t\t}\n\n\t\t\tlet prev = this._prevSettings.projection;\n\t\t\tif (prev && prev != projection) {\n\t\t\t\tlet hw = w / 2;\n\t\t\t\tlet hh = h / 2;\n\t\t\t\tif (prev.invert) {\n\t\t\t\t\tlet centerLocation = prev.invert([hw, hh]);\n\n\t\t\t\t\tif (centerLocation) {\n\n\t\t\t\t\t\tlet xy = projection(centerLocation);\n\t\t\t\t\t\tif (xy) {\n\t\t\t\t\t\t\tlet translate = projection.translate();\n\n\t\t\t\t\t\t\tlet xx = hw - ((xy[0] - translate[0]));\n\t\t\t\t\t\t\tlet yy = hh - ((xy[1] - translate[1]));\n\n\t\t\t\t\t\t\tprojection.translate([xx, yy])\n\n\t\t\t\t\t\t\tthis.setRaw(\"translateX\", xx);\n\t\t\t\t\t\t\tthis.setRaw(\"translateY\", yy);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"wheelX\") || this.isDirty(\"wheelY\")) {\n\t\t\tthis._handleSetWheel();\n\t\t}\n\t\tvar previousGeometries = this._geometryColection.geometries;\n\t\tif (this._dirtyGeometries) {\n\t\t\tthis._geometryColection.geometries = [];\n\n\t\t\tthis.series.each((series) => {\n\t\t\t\t$array.pushAll(this._geometryColection.geometries, series._geometries);\n\t\t\t})\n\n\t\t\tthis._fitMap();\n\t\t}\n\n\t\tif (previousGeometries.length != 0 && (w != this._pw || h != this._ph || this._dirtyGeometries)) {\n\t\t\tif (w > 0 && h > 0) {\n\t\t\t\tlet hw = w / 2;\n\t\t\t\tlet hh = h / 2;\n\n\t\t\t\tprojection.fitSize([w, h], this._geometryColection);\n\t\t\t\tconst newScale = projection.scale();\n\n\t\t\t\tthis.setPrivateRaw(\"mapScale\", newScale);\n\t\t\t\tprojection.scale(newScale * this.get(\"zoomLevel\", 1));\n\n\t\t\t\tif (this._centerLocation) {\n\t\t\t\t\tlet xy = projection(this._centerLocation);\n\t\t\t\t\tif (xy) {\n\t\t\t\t\t\tlet translate = projection.translate();\n\n\t\t\t\t\t\tlet xx = hw - ((xy[0] - translate[0]));\n\t\t\t\t\t\tlet yy = hh - ((xy[1] - translate[1]));\n\n\t\t\t\t\t\tprojection.translate([xx, yy])\n\n\t\t\t\t\t\tthis.setRaw(\"translateX\", xx);\n\t\t\t\t\t\tthis.setRaw(\"translateY\", yy);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.markDirtyProjection();\n\t\t\t}\n\t\t}\n\n\t\tthis._pw = w;\n\t\tthis._ph = h;\n\n\t\tif (this.isDirty(\"zoomControl\")) {\n\t\t\tconst previous = this._prevSettings.zoomControl;\n\t\t\tconst zoomControl = this.get(\"zoomControl\")!;\n\t\t\tif (zoomControl !== previous) {\n\t\t\t\tthis._disposeProperty(\"zoomControl\");\n\t\t\t\tif (previous) {\n\t\t\t\t\tprevious.dispose();\n\t\t\t\t}\n\t\t\t\tif (zoomControl) {\n\t\t\t\t\tzoomControl.setPrivate(\"chart\", this);\n\t\t\t\t\tthis.children.push(zoomControl);\n\t\t\t\t}\n\n\t\t\t\tthis.setRaw(\"zoomControl\", zoomControl);\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"zoomLevel\")) {\n\t\t\tprojection.scale(this.getPrivate(\"mapScale\") * this.get(\"zoomLevel\", 1));\n\t\t\tthis.markDirtyProjection();\n\t\t}\n\n\t\tif (this.isDirty(\"translateX\") || this.isDirty(\"translateY\")) {\n\t\t\tprojection.translate([this.get(\"translateX\", this.width() / 2), this.get(\"translateY\", this.height() / 2)])\n\t\t\tthis.markDirtyProjection();\n\t\t}\n\n\t\tif (projection.rotate) {\n\t\t\tif (this.isDirty(\"rotationX\") || this.isDirty(\"rotationY\") || this.isDirty(\"rotationZ\")) {\n\t\t\t\tprojection.rotate([this.get(\"rotationX\", 0), this.get(\"rotationY\", 0), this.get(\"rotationZ\", 0)])\n\t\t\t\tthis.markDirtyProjection();\n\t\t\t}\n\t\t}\n\t}\n\n\n\tprotected _fitMap() {\n\t\tconst projection = this.get(\"projection\")!;\n\n\t\tlet w = this.innerWidth();\n\t\tlet h = this.innerHeight();\n\n\t\tif (w > 0 && h > 0) {\n\t\t\tprojection.fitSize([w, h], this._geometryColection);\n\t\t\tthis.setPrivateRaw(\"mapScale\", projection.scale());\n\n\t\t\tconst translate = projection.translate();\n\n\t\t\tthis.setRaw(\"translateX\", translate[0]);\n\t\t\tthis.setRaw(\"translateY\", translate[1]);\n\n\t\t\tthis._centerX = translate[0];\n\t\t\tthis._centerY = translate[1];\n\n\t\t\tconst geoPath = this.getPrivate(\"geoPath\");\n\t\t\tthis._mapBounds = geoPath.bounds(this._geometryColection);\n\n\t\t\tthis._geoCentroid = $mapUtils.getGeoCentroid(this._geometryColection);\n\n\t\t\tconst bounds = $mapUtils.getGeoBounds(this._geometryColection);\n\t\t\tthis._geoBounds = bounds;\n\n\t\t\tif (this._geometryColection.geometries.length > 0) {\n\n\t\t\t\tbounds.left = $math.round(this._geoBounds.left, 3);\n\t\t\t\tbounds.right = $math.round(this._geoBounds.right, 3);\n\t\t\t\tbounds.top = $math.round(this._geoBounds.top, 3);\n\t\t\t\tbounds.bottom = $math.round(this._geoBounds.bottom, 3);\n\n\t\t\t\tconst prevGeoBounds = this._prevGeoBounds;\n\n\t\t\t\tif (prevGeoBounds && !$utils.sameBounds(bounds, prevGeoBounds)) {\n\t\t\t\t\tthis._dispatchBounds = true;\n\t\t\t\t\tthis._prevGeoBounds = bounds;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._mapFitted = true;\n\t\t}\n\t}\n\n\t/**\n\t * Returns geographical coordinates for calculated or manual center of the\n\t * map.\n\t */\n\tpublic homeGeoPoint(): IGeoPoint {\n\t\tlet homeGeoPoint = this.get(\"homeGeoPoint\");\n\t\tif (!homeGeoPoint) {\n\t\t\tconst geoPath = this.getPrivate(\"geoPath\");\n\t\t\tconst bounds = geoPath.bounds(this._geometryColection);\n\n\t\t\tconst left = bounds[0][0];\n\t\t\tconst top = bounds[0][1];\n\n\t\t\tconst right = bounds[1][0];\n\t\t\tconst bottom = bounds[1][1];\n\n\t\t\thomeGeoPoint = this.invert({ x: left + (right - left) / 2, y: top + (bottom - top) / 2 });\n\t\t}\n\t\treturn homeGeoPoint;\n\t}\n\n\t/**\n\t * Repositions the map to the \"home\" zoom level and center coordinates.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Resetting_position_level} for more info\n\t * @param duration Animation duration in milliseconds\n\t */\n\tpublic goHome(duration?: number) {\n\t\tthis.zoomToGeoPoint(this.homeGeoPoint(), this.get(\"homeZoomLevel\", 1), true, duration);\n\t}\n\n\tpublic _updateChildren() {\n\t\tconst projection = this.get(\"projection\")!;\n\t\tif (projection.invert) {\n\t\t\tlet w = this.innerWidth();\n\t\t\tlet h = this.innerHeight();\n\t\t\tif (w > 0 && h > 0) {\n\t\t\t\tthis._centerLocation = projection.invert([this.innerWidth() / 2, this.innerHeight() / 2]);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _afterChanged() {\n\t\tsuper._afterChanged();\n\t\tif (this._dispatchBounds) {\n\t\t\tthis._dispatchBounds = false;\n\t\t\tconst type = \"geoboundschanged\";\n\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\tthis.events.dispatch(type, { type: type, target: this });\n\t\t\t}\n\t\t}\n\t}\n\n\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtyGeometries() {\n\t\tthis._dirtyGeometries = true;\n\t\tthis.markDirty();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtyProjection() {\n\t\tthis.series.each((series) => {\n\t\t\tseries.markDirtyProjection();\n\t\t})\n\t}\n\n\tprotected _afterNew() {\n\t\tthis._defaultThemes.push(MapChartDefaultTheme.new(this._root));\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"map\"]);\n\n\t\tsuper._afterNew();\n\n\t\tthis._makeGeoPath();\n\n\t\tthis.chartContainer.children.push(this.seriesContainer);\n\n\t\tif (this.get(\"translateX\") == null) {\n\t\t\tthis.set(\"translateX\", this.width() / 2);\n\t\t}\n\t\tif (this.get(\"translateY\") == null) {\n\t\t\tthis.set(\"translateY\", this.height() / 2);\n\t\t}\n\n\t\t// Setting trasnparent background so that full body of the plot container\n\t\t// is interactive\n\t\tthis.chartContainer.set(\"interactive\", true);\n\t\tthis.chartContainer.set(\"interactiveChildren\", false);\n\t\tthis.chartContainer.set(\"background\", Rectangle.new(this._root, {\n\t\t\tthemeTags: [\"map\", \"background\"],\n\t\t\tfill: Color.fromHex(0x000000),\n\t\t\tfillOpacity: 0\n\t\t}));\n\n\t\tthis._disposers.push(this.chartContainer.events.on(\"pointerdown\", (event) => {\n\t\t\tthis._handleChartDown(event);\n\t\t}));\n\n\t\tthis._disposers.push(this.chartContainer.events.on(\"globalpointerup\", (event) => {\n\t\t\tthis._handleChartUp(event);\n\t\t}));\n\n\t\tthis._disposers.push(this.chartContainer.events.on(\"globalpointermove\", (event) => {\n\t\t\tthis._handleChartMove(event);\n\t\t}));\n\n\t\tlet license = false;\n\t\tfor (let i = 0; i < registry.licenses.length; i++) {\n\t\t\tif (registry.licenses[i].match(/^AM5M.{5,}/i)) {\n\t\t\t\tlicense = true;\n\t\t\t}\n\t\t}\n\t\tif (!license) {\n\t\t\tthis._root._showBranding();\n\t\t}\n\n\t}\n\n\tprotected _handleChartDown(event: ISpritePointerEvent) {\n\n\t\tthis._downZoomLevel = this.get(\"zoomLevel\", 1);\n\n\n\t\tlet count = $object.keys(this.chartContainer._downPoints).length;\n\t\tif (count > 0) {\n\t\t\tthis._downTranslateX = this.get(\"translateX\");\n\t\t\tthis._downTranslateY = this.get(\"translateY\");\n\t\t\tthis._downRotationX = this.get(\"rotationX\");\n\t\t\tthis._downRotationY = this.get(\"rotationY\");\n\t\t\tthis._downRotationZ = this.get(\"rotationZ\");\n\n\t\t\tconst downId = this.chartContainer._getDownPointId();\n\t\t\tif (downId) {\n\t\t\t\tlet movePoint = this._movePoints[downId];\n\t\t\t\tif (movePoint) {\n\t\t\t\t\tthis.chartContainer._downPoints[downId] = movePoint;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (count == 0) {\n\n\t\t\tlet bg = this.chartContainer.get(\"background\");\n\t\t\tif (bg) {\n\t\t\t\tbg.events.enableType(\"click\");\n\t\t\t}\n\n\t\t\tif (this.get(\"panX\") || this.get(\"panY\")) {\n\n\t\t\t\tif (this._za) {\n\t\t\t\t\tthis._za.stop();\n\t\t\t\t}\n\t\t\t\tif (this._txa) {\n\t\t\t\t\tthis._txa.stop();\n\t\t\t\t}\n\t\t\t\tif (this._tya) {\n\t\t\t\t\tthis._tya.stop();\n\t\t\t\t}\n\t\t\t\tif (this._rxa) {\n\t\t\t\t\tthis._rxa.stop();\n\t\t\t\t}\n\t\t\t\tif (this._rya) {\n\t\t\t\t\tthis._rya.stop();\n\t\t\t\t}\n\n\t\t\t\tconst downPoint = this.chartContainer._display.toLocal(event.point);\n\t\t\t\tthis._downTranslateX = this.get(\"translateX\");\n\t\t\t\tthis._downTranslateY = this.get(\"translateY\");\n\t\t\t\tthis._downRotationX = this.get(\"rotationX\");\n\t\t\t\tthis._downRotationY = this.get(\"rotationY\");\n\t\t\t\tthis._downRotationZ = this.get(\"rotationZ\");\n\n\t\t\t\tlet projection = this.get(\"projection\")!;\n\n\t\t\t\tif (projection.invert) {\n\t\t\t\t\tlet l0 = projection.invert([downPoint.x, downPoint.y]);\n\t\t\t\t\tlet l1 = projection.invert([downPoint.x + 1, downPoint.y + 1]);\n\t\t\t\t\tif (l0 && l1) {\n\t\t\t\t\t\tthis._pLon = Math.abs(l1[0] - l0[0]);\n\t\t\t\t\t\tthis._pLat = Math.abs(l1[1] - l0[1]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Converts screen coordinates (X and Y) within chart to latitude and\n\t * longitude.\n\t * \n\t * @param point Screen coordinates\n\t * @return Geographical coordinates\n\t */\n\tpublic invert(point: IPoint): IGeoPoint {\n\t\tlet projection = this.get(\"projection\")!;\n\n\t\tif (projection.invert) {\n\t\t\tconst ll = projection.invert([point.x, point.y]);\n\t\t\tif (ll) {\n\t\t\t\treturn { longitude: ll[0], latitude: ll[1] };\n\t\t\t}\n\t\t}\n\n\t\treturn { longitude: 0, latitude: 0 };\n\t}\n\n\t/**\n\t * Converts latitude/longitude to screen coordinates (X and Y).\n\t * \n\t * @param point Geographical coordinates\n\t * @return Screen coordinates\n\t */\n\tpublic convert(point: IGeoPoint): IPoint {\n\t\tlet projection = this.get(\"projection\")!;\n\n\t\tconst xy = projection([point.longitude, point.latitude]);\n\n\t\tif (xy) {\n\t\t\treturn { x: xy[0], y: xy[1] };\n\t\t}\n\n\t\treturn { x: 0, y: 0 };\n\t}\n\n\tprotected _handleChartUp(_event: ISpritePointerEvent) {\n\t\tthis.chartContainer._downPoints = {}\n\t}\n\n\tprotected _handlePinch() {\n\t\tconst chartContainer = this.chartContainer;\n\t\tlet i = 0;\n\t\tlet downPoints: Array<IPoint> = [];\n\t\tlet movePoints: Array<IPoint> = [];\n\n\t\t$object.each(chartContainer._downPoints, (k, point) => {\n\t\t\tdownPoints[i] = point;\n\t\t\tlet movePoint = this._movePoints[k];\n\t\t\tif (movePoint) {\n\t\t\t\tmovePoints[i] = movePoint;\n\t\t\t}\n\t\t\ti++;\n\t\t});\n\n\t\tif (downPoints.length > 1 && movePoints.length > 1) {\n\t\t\tconst display = chartContainer._display;\n\n\t\t\tlet downPoint0 = downPoints[0];\n\t\t\tlet downPoint1 = downPoints[1];\n\n\t\t\tlet movePoint0 = movePoints[0];\n\t\t\tlet movePoint1 = movePoints[1];\n\n\t\t\tif (downPoint0 && downPoint1 && movePoint0 && movePoint1) {\n\n\t\t\t\tdownPoint0 = display.toLocal(downPoint0);\n\t\t\t\tdownPoint1 = display.toLocal(downPoint1);\n\n\t\t\t\tmovePoint0 = display.toLocal(movePoint0);\n\t\t\t\tmovePoint1 = display.toLocal(movePoint1);\n\n\t\t\t\tlet initialDistance = Math.hypot(downPoint1.x - downPoint0.x, downPoint1.y - downPoint0.y);\n\t\t\t\tlet currentDistance = Math.hypot(movePoint1.x - movePoint0.x, movePoint1.y - movePoint0.y);\n\n\t\t\t\tlet level = currentDistance / initialDistance * this._downZoomLevel;\n\t\t\t\tlevel = $math.fitToRange(level, this.get(\"minZoomLevel\", 1), this.get(\"maxZoomLevel\", 32));\n\n\t\t\t\tlet moveCenter = { x: movePoint0.x + (movePoint1.x - movePoint0.x) / 2, y: movePoint0.y + (movePoint1.y - movePoint0.y) / 2 };\n\t\t\t\tlet downCenter = { x: downPoint0.x + (downPoint1.x - downPoint0.x) / 2, y: downPoint0.y + (downPoint1.y - downPoint0.y) / 2 };\n\n\t\t\t\tlet tx = this._downTranslateX || 0;\n\t\t\t\tlet ty = this._downTranslateY || 0;\n\n\t\t\t\tlet zoomLevel = this._downZoomLevel;\n\n\t\t\t\tlet xx = moveCenter.x - (- tx + downCenter.x) / zoomLevel * level;\n\t\t\t\tlet yy = moveCenter.y - (- ty + downCenter.y) / zoomLevel * level;\n\n\t\t\t\tthis.set(\"zoomLevel\", level);\n\t\t\t\tthis.set(\"translateX\", xx);\n\t\t\t\tthis.set(\"translateY\", yy);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _handleChartMove(event: ISpritePointerEvent) {\n\t\tconst chartContainer = this.chartContainer;\n\t\tlet downPoint = chartContainer._getDownPoint();\n\t\tconst downPointId = chartContainer._getDownPointId();\n\t\tconst originalEvent = event.originalEvent as any;\n\n\t\tconst pointerId = originalEvent.pointerId;\n\n\t\tif (this.get(\"pinchZoom\")) {\n\t\t\tif (pointerId) {\n\t\t\t\tthis._movePoints[pointerId] = event.point;\n\n\t\t\t\tif ($object.keys(chartContainer._downPoints).length > 1) {\n\t\t\t\t\tthis._handlePinch();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (downPointId && pointerId && pointerId != downPointId) {\n\t\t\treturn;\n\t\t}\n\t\telse {\n\t\t\tif (downPoint) {\n\t\t\t\tconst panX = this.get(\"panX\");\n\t\t\t\tconst panY = this.get(\"panY\");\n\t\t\t\tif (panX != \"none\" || panY != \"none\") {\n\t\t\t\t\tconst display = chartContainer._display;\n\t\t\t\t\tlet local = display.toLocal(event.point);\n\t\t\t\t\tdownPoint = display.toLocal(downPoint);\n\n\t\t\t\t\tlet x = this._downTranslateX;\n\t\t\t\t\tlet y = this._downTranslateY;\n\n\t\t\t\t\tif (Math.hypot(downPoint.x - local.x, downPoint.y - local.y) > 5) {\n\t\t\t\t\t\tlet bg = chartContainer.get(\"background\");\n\t\t\t\t\t\tif (bg) {\n\t\t\t\t\t\t\tbg.events.disableType(\"click\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ($type.isNumber(x) && $type.isNumber(y)) {\n\t\t\t\t\t\t\tlet projection = this.get(\"projection\")!;\n\t\t\t\t\t\t\tconst zoomLevel = this.get(\"zoomLevel\", 1);\n\n\t\t\t\t\t\t\tconst maxPanOut = this.get(\"maxPanOut\", 0.4);\n\t\t\t\t\t\t\tconst bounds = this._mapBounds;\n\t\t\t\t\t\t\tconst w = this.width();\n\t\t\t\t\t\t\tconst h = this.height();\n\n\t\t\t\t\t\t\tconst ww = bounds[1][0] - bounds[0][0];\n\t\t\t\t\t\t\tconst hh = bounds[1][1] - bounds[0][1];\n\n\t\t\t\t\t\t\tif (panX == \"translateX\") {\n\t\t\t\t\t\t\t\tx += local.x - downPoint.x;\n\n\t\t\t\t\t\t\t\tconst cx = w / 2 - (w / 2 - this._centerX) * zoomLevel;\n\t\t\t\t\t\t\t\tx = Math.min(x, cx + ww * maxPanOut * zoomLevel);\n\t\t\t\t\t\t\t\tx = Math.max(x, cx - ww * maxPanOut * zoomLevel);\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (panY == \"translateY\") {\n\t\t\t\t\t\t\t\ty += local.y - downPoint.y;\n\t\t\t\t\t\t\t\tconst cy = h / 2 - (h / 2 - this._centerY) * zoomLevel;\n\t\t\t\t\t\t\t\ty = Math.min(y, cy + hh * maxPanOut * zoomLevel);\n\t\t\t\t\t\t\t\ty = Math.max(y, cy - hh * maxPanOut * zoomLevel);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.set(\"translateX\", x);\n\t\t\t\t\t\t\tthis.set(\"translateY\", y);\n\n\t\t\t\t\t\t\tif (projection.invert) {\n\t\t\t\t\t\t\t\tlet downLocation = projection.invert([downPoint.x, downPoint.y]);\n\t\t\t\t\t\t\t\tif (location && downLocation) {\n\t\t\t\t\t\t\t\t\tif (panX == \"rotateX\") {\n\t\t\t\t\t\t\t\t\t\tthis.set(\"rotationX\", this._downRotationX! - (downPoint.x - local.x) * this._pLon);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (panY == \"rotateY\") {\n\t\t\t\t\t\t\t\t\t\tthis.set(\"rotationY\", this._downRotationY! + (downPoint.y - local.y) * this._pLat);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _handleWheelRotateY(delta: number, duration: number, easing: (t: Time) => Time) {\n\t\tthis._rya = this.animate({ key: \"rotationY\", to: this.get(\"rotationY\", 0) - delta, duration: duration, easing: easing });\n\t}\n\n\tprotected _handleWheelRotateX(delta: number, duration: number, easing: (t: Time) => Time) {\n\t\tthis._rxa = this.animate({ key: \"rotationX\", to: this.get(\"rotationX\", 0) - delta, duration: duration, easing: easing });\n\t}\n\n\tprotected _handleWheelZoom(delta: number, point: IPoint) {\n\t\tlet step = this.get(\"zoomStep\", 2);\n\t\tlet zoomLevel = this.get(\"zoomLevel\", 1);\n\t\tlet newZoomLevel = zoomLevel;\n\t\tif (delta > 0) {\n\t\t\tnewZoomLevel = zoomLevel / step;\n\t\t}\n\t\telse if (delta < 0) {\n\t\t\tnewZoomLevel = zoomLevel * step;\n\t\t}\n\n\t\tif (newZoomLevel != zoomLevel) {\n\t\t\tthis.zoomToPoint(point, newZoomLevel)\n\t\t}\n\t}\n\n\t/**\n\t * Zoom the map to geographical bounds.\n\t *\n\t * @param geoBounds Bounds\n\t * @param duration Animation duration in milliseconds\n\t */\n\tpublic zoomToGeoBounds(geoBounds: { left: number, right: number, top: number, bottom: number }, duration?: number): Animation<this[\"_settings\"][\"zoomLevel\"]> | undefined {\n\t\tif (geoBounds.right < geoBounds.left) {\n\t\t\tgeoBounds.right = 180;\n\t\t\tgeoBounds.left = -180;\n\t\t}\n\n\t\tconst geoPath = this.getPrivate(\"geoPath\");\n\t\tconst mapBounds = geoPath.bounds(this._geometryColection);\n\n\t\tlet p0 = this.convert({ longitude: geoBounds.left, latitude: geoBounds.top });\n\t\tlet p1 = this.convert({ longitude: geoBounds.right, latitude: geoBounds.bottom });\n\n\t\tif (p0.y < mapBounds[0][1]) {\n\t\t\tp0.y = mapBounds[0][1];\n\t\t}\n\n\t\tif (p1.y > mapBounds[1][1]) {\n\t\t\tp1.y = mapBounds[1][1];\n\t\t}\n\n\t\tlet zl = this.get(\"zoomLevel\", 1);\n\n\t\tlet bounds = { left: p0.x, right: p1.x, top: p0.y, bottom: p1.y };\n\n\t\tlet seriesContainer = this.seriesContainer;\n\n\t\tlet zoomLevel = .9 * Math.min(seriesContainer.innerWidth() / (bounds.right - bounds.left) * zl, seriesContainer.innerHeight() / (bounds.bottom - bounds.top) * zl);\n\t\tlet x = bounds.left + (bounds.right - bounds.left) / 2;\n\t\tlet y = bounds.top + (bounds.bottom - bounds.top) / 2;\n\n\t\tlet geoPoint = this.invert({ x, y });\n\n\t\treturn this.zoomToGeoPoint(geoPoint, zoomLevel, true, duration);\n\t}\n\n\t/**\n\t * Zooms the map to specific screen point.\n\t *\n\t * @param point Point\n\t * @param level Zoom level\n\t * @param center Center the map\n\t * @param duration Duration of the animation in milliseconds\n\t */\n\tpublic zoomToPoint(point: IPoint, level: number, center?: boolean, duration?: number): Animation<this[\"_settings\"][\"zoomLevel\"]> | undefined {\n\t\tif (level) {\n\t\t\tlevel = $math.fitToRange(level, this.get(\"minZoomLevel\", 1), this.get(\"maxZoomLevel\", 32));\n\t\t}\n\n\t\tif (!$type.isNumber(duration)) {\n\t\t\tduration = this.get(\"animationDuration\", 0);\n\t\t}\n\t\tconst easing = this.get(\"animationEasing\");\n\t\tconst zoomLevel = this.get(\"zoomLevel\", 1);\n\n\t\tif (this.get(\"centerMapOnZoomOut\") && level == this.get(\"homeZoomLevel\", 1)) {\n\t\t\tpoint = this.convert(this.homeGeoPoint());\n\t\t\tcenter = true;\n\t\t}\t\t\n\n\t\tlet x = point.x;\n\t\tlet y = point.y;\n\n\t\tlet tx = this.get(\"translateX\", 0);\n\t\tlet ty = this.get(\"translateY\", 0);\n\n\t\tlet cx = x;\n\t\tlet cy = y;\n\n\t\tif (center) {\n\t\t\tcx = this.width() / 2;\n\t\t\tcy = this.height() / 2;\n\t\t}\n\n\t\tlet xx = cx - ((x - tx) / zoomLevel * level);\n\t\tlet yy = cy - ((y - ty) / zoomLevel * level);\n\n\n\t\tthis._txa = this.animate({ key: \"translateX\", to: xx, duration: duration, easing: easing });\n\t\tthis._tya = this.animate({ key: \"translateY\", to: yy, duration: duration, easing: easing });\n\t\tthis._za = this.animate({ key: \"zoomLevel\", to: level, duration: duration, easing: easing });\n\n\t\tif (zoomLevel != level) {\n\t\t\tthis._root.readerAlert(this._t(\"Zoom level changed to %1\", this._root.locale, $type.numberToString(level)));\n\t\t}\n\n\t\treturn this._za;\n\t}\n\n\t/**\n\t * Zooms the map to specific geographical point.\n\t *\n\t * @param geoPoint Point\n\t * @param level Zoom level\n\t * @param center Center the map\n\t * @param duration Duration of the animation in milliseconds\n\t */\n\tpublic zoomToGeoPoint(geoPoint: IGeoPoint, level: number, center?: boolean, duration?: number): Animation<this[\"_settings\"][\"zoomLevel\"]> | undefined {\n\t\tlet xy = this.convert(geoPoint);\n\n\t\tif (xy) {\n\t\t\treturn this.zoomToPoint(xy, level, center, duration);\n\t\t}\n\t}\n\n\t/**\n\t * Zooms the map in.\n\t */\n\tpublic zoomIn(): Animation<this[\"_settings\"][\"zoomLevel\"]> | undefined {\n\t\treturn this.zoomToPoint({ x: this.width() / 2, y: this.height() / 2 }, this.get(\"zoomLevel\", 1) * this.get(\"zoomStep\", 2));\n\t}\n\n\t/**\n\t * Zooms the map out.\n\t */\n\tpublic zoomOut(): Animation<this[\"_settings\"][\"zoomLevel\"]> | undefined {\n\t\treturn this.zoomToPoint({ x: this.width() / 2, y: this.height() / 2 }, this.get(\"zoomLevel\", 1) / this.get(\"zoomStep\", 2));\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._dirtyGeometries = false;\n\t\tthis._mapFitted = false;\n\t}\n}\n"]}
@@ -528,7 +528,7 @@ var StockChart = /** @class */ (function (_super) {
528
528
  if (lowerChart) {
529
529
  max = lowerChart.y() - panel.get("minHeight", 0);
530
530
  }
531
- console.log(upperChart.get("minHeight", 0));
531
+ //console.log(upperChart.get("minHeight", 0))
532
532
  var y = Math.max(upperChart.y() + upperChart.get("minHeight", 0) + upperChart.get("paddingTop", 0), Math.min(chartsContainer.toLocal(e.point).y, max));
533
533
  var downY = _this._downY;
534
534
  var dhp = _this._dhp;
@@ -1 +1 @@
1
- {"version":3,"file":"StockChart.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/stock/StockChart.ts"],"names":[],"mappings":"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","sourcesContent":["import type { StockPanel } from \"./StockPanel\";\nimport type { StockLegend, IStockLegendDataItem } from \"./StockLegend\";\nimport type { Axis } from \"../xy/axes/Axis\";\nimport type { AxisRenderer } from \"../xy/axes/AxisRenderer\";\nimport type { BaseColumnSeries } from \"../xy/series/BaseColumnSeries\";\nimport type { IValueAxisSettings } from \"../xy/axes/ValueAxis\";\nimport type { XYSeries, IXYSeriesDataItem, IXYSeriesSettings } from \"../xy/series/XYSeries\";\nimport type { DataItem } from \"../../core/render/Component\";\nimport type { Indicator } from \"./indicators/Indicator\";\nimport type { DrawingSeries } from \"./drawing/DrawingSeries\";\n\nimport { PanelControls } from \"./PanelControls\";\nimport { StockChartDefaultTheme } from \"./StockChartDefaultTheme\";\nimport { XYChartDefaultTheme } from \"../xy/XYChartDefaultTheme\";\nimport { Container, IContainerPrivate, IContainerSettings, IContainerEvents } from \"../../core/render/Container\";\nimport { ListAutoDispose } from \"../../core/util/List\";\nimport { Rectangle } from \"../../core/render/Rectangle\";\nimport { p100, percent, Percent } from \"../../core/util/Percent\";\nimport { SettingsModal } from \"./SettingsModal\";\nimport { Color } from \"../../core/util/Color\";\nimport { registry } from \"../../core/Registry\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $utils from \"../../core/util/Utils\";\nimport * as $object from \"../../core/util/Object\";\n\nexport interface IStockChartSettings extends IContainerSettings {\n\n\t/**\n\t * Main value series.\n\t *\n\t * This series is used to target by settings, as well as calculating\n\t * indicators, and annotations.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Setting_main_series}\n\t */\n\tstockSeries?: XYSeries;\n\n\t/**\n\t * Main volume series.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Setting_main_series}\n\t */\n\tvolumeSeries?: XYSeries;\n\n\t/**\n\t * @ignore\n\t */\n\tcomparingSeriesSettings?: Partial<IXYSeriesSettings>;\n\n\t/**\n\t * Settings to be applied to the the main value series, when chart is\n\t * switched to \"percent scale\".\n\t * \n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/percent-mode/#Configuring} for more info\n\t */\n\tpercentScaleSeriesSettings?: Partial<IXYSeriesSettings>;\n\n\t/**\n\t * Settings to be applied to the [[ValueAxis]] of the main value series,\n\t * when chart is switched to \"percent scale\".\n\t * \n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/percent-mode/#Configuring} for more info\n\t */\n\tpercentScaleValueAxisSettings?: Partial<IValueAxisSettings<AxisRenderer>>;\n\n\t/**\n\t * If set to `true`, the chart will go into \"percent scale\" when compared\n\t * series are added to chart, and will exit it when all of the comparisons\n\t * are removed.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/percent-mode/} for more info\n\t * @default true\n\t */\n\tautoSetPercentScale?: boolean;\n\n\t/**\n\t * This color will be applied to columns/candles on the main value series (series\n\t * set as `stockSeries`) where the open value is lower or equal to the close\n\t * value.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Positive_negative_colors} for more info\n\t */\n\tstockPositiveColor?: Color;\n\n\t/**\n\t * This color will be applied to columns/candles on the main value series (series\n\t * set as `stockSeries`) where the open value is higher than the close value.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Positive_negative_colors} for more info\n\t */\n\tstockNegativeColor?: Color;\n\n\t/**\n\t * This color will be applied to columns/candles on the main volume series (series\n\t * set as `stockSeries`) where the open value is lower or equal to the close\n\t * value.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Positive_negative_colors} for more info\n\t */\n\tvolumePositiveColor?: Color;\n\n\t/**\n\t * This color will be applied to columns/candles on the main volume series (series\n\t * set as `stockSeries`) where the open value is higher than the close value.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Positive_negative_colors} for more info\n\t */\n\tvolumeNegativeColor?: Color;\n\n}\n\nexport interface IStockChartPrivate extends IContainerPrivate {\n\n\t/**\n\t * A instance of [[SettingsModal]].\n\t */\n\tsettingsModal: SettingsModal;\n\n\t/**\n\t * Indicates if chart has currently have any \"compared\" series set.\n\t */\n\tcomparing?: boolean;\n\n\t/**\n\t * A list of compared series.\n\t */\n\tcomparedSeries?: XYSeries[];\n\n}\n\nexport interface IStockChartEvents extends IContainerEvents {\n\n}\n\n\n/**\n * A main class for the Stock Chart.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/} for more info\n * @important\n */\nexport class StockChart extends Container {\n\n\tpublic static className: string = \"StockChart\";\n\tpublic static classNames: Array<string> = Container.classNames.concat([StockChart.className]);\n\n\n\tdeclare public _settings: IStockChartSettings;\n\tdeclare public _privateSettings: IStockChartPrivate;\n\tdeclare public _events: IContainerEvents;\n\n\tprotected _xAxes: Array<Axis<AxisRenderer>> = [];\n\tprotected _downY?: number;\n\tprotected _upperPanel?: StockPanel;\n\tprotected _dhp?: Percent;\n\tprotected _uhp?: Percent;\n\tprotected _downResizer?: Rectangle;\n\n\t/**\n\t * A list of stock panels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Panels} for more info\n\t */\n\tpublic readonly panels: ListAutoDispose<StockPanel> = new ListAutoDispose();\n\n\t/**\n\t * A list of indicators on chart.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\n\t */\n\tpublic readonly indicators: ListAutoDispose<Indicator> = new ListAutoDispose();\n\n\t/**\n\t * A [[Container]], resiting on top of the charts, suitable for additional\n\t * tools, like [[Scrollbar]].\n\t * \n\t * @default Container.new()\n\t */\n\tpublic readonly toolsContainer: Container = this.children.push(Container.new(this._root, { width: p100, themeTags: [] }));\n\n\t/**\n\t * A [[Container]] where all the stock panels are placed into.\n\t * \n\t * @default Container.new()\n\t */\n\tpublic readonly panelsContainer: Container = this.children.push(Container.new(this._root, { width: p100, height: p100, layout: this._root.verticalLayout, themeTags: [\"chartscontainer\"] }));\n\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"stock\"]);\n\t\tthis._defaultThemes.push(StockChartDefaultTheme.new(this._root));\n\t\tthis._defaultThemes.push(XYChartDefaultTheme.new(this._root));\n\n\t\tconst tooltipContainer = this._root.tooltipContainer;\n\t\ttooltipContainer.set(\"themeTags\", $utils.mergeTags(tooltipContainer.get(\"themeTags\", []), [\"stock\"]));\n\n\t\tsuper._afterNew();\n\n\t\tconst children = this.panelsContainer.children;\n\t\tthis._disposers.push(this.panels.events.onAll((change) => {\n\t\t\tif (change.type === \"clear\") {\n\t\t\t\t$array.each(change.oldValues, (chart) => {\n\t\t\t\t\tthis._removePanel(chart);\n\t\t\t\t})\n\t\t\t} else if (change.type === \"push\") {\n\t\t\t\tchildren.moveValue(change.newValue);\n\t\t\t\tthis._processPanel(change.newValue);\n\t\t\t} else if (change.type === \"setIndex\") {\n\t\t\t\tchildren.setIndex(change.index, change.newValue);\n\t\t\t\tthis._processPanel(change.newValue);\n\t\t\t} else if (change.type === \"insertIndex\") {\n\t\t\t\tchildren.insertIndex(change.index, change.newValue);\n\t\t\t\tthis._processPanel(change.newValue);\n\t\t\t} else if (change.type === \"removeIndex\") {\n\t\t\t\tthis._removePanel(change.oldValue);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unknown IListEvent type\");\n\t\t\t}\n\t\t}));\n\n\t\tthis._disposers.push(this.indicators.events.onAll((change) => {\n\t\t\tif (change.type === \"clear\") {\n\t\t\t\t$array.each(change.oldValues, (indicator) => {\n\t\t\t\t\tthis._removeIndicator(indicator);\n\t\t\t\t})\n\t\t\t} else if (change.type === \"push\") {\n\t\t\t\tthis._processIndicator(change.newValue);\n\t\t\t} else if (change.type === \"setIndex\") {\n\t\t\t\tthis._processIndicator(change.newValue);\n\t\t\t} else if (change.type === \"insertIndex\") {\n\t\t\t\tthis._processIndicator(change.newValue);\n\t\t\t} else if (change.type === \"removeIndex\") {\n\t\t\t\tthis._removeIndicator(change.oldValue);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unknown IListEvent type\");\n\t\t\t}\n\t\t}));\n\n\t\tthis.setPrivateRaw(\"settingsModal\", SettingsModal.new(this.root, {\n\t\t\tstockChart: this\n\t\t}));\n\n\t\tlet license = false;\n\t\tfor (let i = 0; i < registry.licenses.length; i++) {\n\t\t\tif (registry.licenses[i].match(/^AM5S.{5,}/i)) {\n\t\t\t\tlicense = true;\n\t\t\t}\n\t\t}\n\t\tif (!license) {\n\t\t\tthis._root._showBranding();\n\t\t}\n\t\telse {\n\t\t\tthis._root._licenseApplied();\n\t\t}\n\t}\n\n\tpublic _prepareChildren() {\n\n\t\tif (this.isDirty(\"volumeNegativeColor\") || this.isDirty(\"volumePositiveColor\")) {\n\t\t\tconst volumeSeries = this.get(\"volumeSeries\");\n\t\t\tif (volumeSeries && volumeSeries.isType<BaseColumnSeries>(\"BaseColumnSeries\")) {\n\t\t\t\tvolumeSeries.columns.each((column) => {\n\t\t\t\t\tcolumn._markDirtyKey(\"fill\");\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tconst stockSeries = this.get(\"stockSeries\");\n\n\t\tif (this.isDirty(\"stockNegativeColor\") || this.isDirty(\"stockPositiveColor\")) {\n\t\t\tif (stockSeries && stockSeries.isType<BaseColumnSeries>(\"BaseColumnSeries\")) {\n\t\t\t\tconst stockNegativeColor = this.get(\"stockNegativeColor\", this._root.interfaceColors.get(\"negative\"));\n\t\t\t\tconst stockPositiveColor = this.get(\"stockPositiveColor\", this._root.interfaceColors.get(\"positive\"));\n\t\t\t\tlet previous = stockSeries.dataItems[0];\n\t\t\t\t$array.each(stockSeries.dataItems, (dataItem) => {\n\t\t\t\t\tconst column = dataItem.get(\"graphics\");\n\t\t\t\t\tif (column) {\n\t\t\t\t\t\tconst dropFromOpen = column.states.lookup(\"dropFromOpen\");\n\t\t\t\t\t\tif (dropFromOpen) {\n\t\t\t\t\t\t\tdropFromOpen.setAll({ fill: stockNegativeColor, stroke: stockNegativeColor });\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst riseFromOpen = column.states.lookup(\"riseFromOpen\");\n\t\t\t\t\t\tif (riseFromOpen) {\n\t\t\t\t\t\t\triseFromOpen.setAll({ fill: stockPositiveColor, stroke: stockPositiveColor });\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstockSeries._applyGraphicsStates(dataItem, previous);\n\t\t\t\t\t\tprevious = dataItem;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tstockSeries.markDirtyValues();\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"stockSeries\")) {\n\n\t\t\tif (stockSeries) {\n\t\t\t\tthis.indicators.each((indicator) => {\n\t\t\t\t\tindicator.set(\"stockSeries\", stockSeries);\n\t\t\t\t})\n\t\t\t\tconst mainChart = stockSeries.chart;\n\n\t\t\t\tif (mainChart) {\n\t\t\t\t\tconst previous = this._prevSettings.stockSeries;\n\t\t\t\t\tmainChart.series.each((series) => {\n\t\t\t\t\t\tif (series.isType<DrawingSeries>(\"DrawingSeries\")) {\n\t\t\t\t\t\t\tlet s = series.get(\"series\");\n\t\t\t\t\t\t\tif (s == previous) {\n\t\t\t\t\t\t\t\tseries.set(\"series\", stockSeries);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (this.getPrivate(\"comparing\")) {\n\t\t\t\t\tthis.setPercentScale(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tsuper._prepareChildren();\n\t}\n\n\t/**\n\t * Enables or disables percent scale mode.\n\t *\n\t * If `percentScale` is not set, it will try to determine the status on its own.\n\t *\n\t * In percent scale mode `percentScaleSeriesSettings` and `percentScaleValueAxisSettings` will\n\t * be applied to the regular series on the main panel and its Y axis.\n\t * \n\t * @param percentScale Comparison mode active\n\t */\n\tpublic setPercentScale(percentScale?: boolean): void {\n\t\tconst stockSeries = this.get(\"stockSeries\");\n\t\tconst seriesSettings = this.get(\"percentScaleSeriesSettings\");\n\t\tconst axisSettings = this.get(\"percentScaleValueAxisSettings\");\n\t\tif (stockSeries) {\n\t\t\tconst mainChart = stockSeries.chart;\n\t\t\tconst yAxis = stockSeries.get(\"yAxis\");\n\t\t\tthis._maybePrepAxisDefaults();\n\t\t\tif (mainChart) {\n\t\t\t\tconst seriesList: XYSeries[] = [];\n\t\t\t\tmainChart.series.each((series) => {\n\t\t\t\t\tif (series.get(\"yAxis\") == yAxis) {\n\t\t\t\t\t\tseriesList.push(series);\n\t\t\t\t\t\tthis._maybePrepSeriesDefaults(series);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (percentScale == undefined) {\n\t\t\t\t\tpercentScale = this.getPrivate(\"comparedSeries\", []).length > 0;\n\t\t\t\t}\n\n\t\t\t\tthis.setPrivate(\"comparing\", percentScale);\n\n\t\t\t\tif (seriesSettings) {\n\t\t\t\t\t$array.each(seriesList, (series) => {\n\t\t\t\t\t\tif (percentScale) {\n\t\t\t\t\t\t\tseries.setAll(seriesSettings);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tseries.states.apply(\"comparingDefaults\");\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (axisSettings) {\n\t\t\t\t\tif (percentScale) {\n\t\t\t\t\t\tyAxis.setAll(axisSettings);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tyAxis.states.apply(\"comparingDefaults\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Adds a \"compared\" series to chart. Returns the same series.\n\t *\n\t * @param series Compared series\n\t * @return Compared series\n\t */\n\tpublic addComparingSeries(series: XYSeries): XYSeries {\n\t\tconst stockSeries = this.get(\"stockSeries\");\n\t\tif (stockSeries) {\n\t\t\tconst chart = stockSeries.chart;\n\t\t\tif (chart) {\n\t\t\t\tchart.series.push(series);\n\t\t\t}\n\n\t\t\t// Apply comparingSeriesSettings\n\t\t\tconst comparingSeriesSettings = this.get(\"comparingSeriesSettings\");\n\t\t\tif (comparingSeriesSettings) {\n\t\t\t\tseries.setAll(comparingSeriesSettings);\n\t\t\t}\n\n\t\t\tconst comparedSeries = this.getPrivate(\"comparedSeries\");\n\t\t\tif (comparedSeries) {\n\t\t\t\tcomparedSeries.push(series);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.setPrivate(\"comparedSeries\", [series]);\n\t\t\t}\n\n\t\t\tconst legendDataItem = stockSeries.get(\"legendDataItem\");\n\n\t\t\tif (legendDataItem) {\n\t\t\t\tconst legend = legendDataItem.component;\n\t\t\t\tif (legend.isType<StockLegend>(\"StockLegend\")) {\n\t\t\t\t\tlegend.data.push(series);\n\t\t\t\t\tconst ldi = series.get(\"legendDataItem\") as DataItem<IStockLegendDataItem>;\n\t\t\t\t\tif (ldi) {\n\t\t\t\t\t\tconst closeButton = ldi.get(\"closeButton\");\n\t\t\t\t\t\tcloseButton.set(\"forceHidden\", false);\n\t\t\t\t\t\tcloseButton.events.on(\"click\", () => {\n\t\t\t\t\t\t\tthis.removeComparingSeries(series);\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.get(\"autoSetPercentScale\")) {\n\t\t\t\tthis.setPercentScale(true);\n\t\t\t}\n\n\t\t}\n\t\treturn series;\n\t}\n\n\t/**\n\t * Removes compared series.\n\t * \n\t * @param series Compared series\n\t */\n\tpublic removeComparingSeries(series: XYSeries) {\n\t\tconst stockSeries = this.get(\"stockSeries\");\n\t\tif (stockSeries) {\n\t\t\tconst chart = stockSeries.chart;\n\t\t\tif (chart) {\n\t\t\t\tchart.series.removeValue(series);\n\t\t\t}\n\n\t\t\tconst comparedSeries = this.getPrivate(\"comparedSeries\");\n\t\t\tif (comparedSeries) {\n\t\t\t\t$array.remove(comparedSeries, series);\n\t\t\t\tif (comparedSeries.length == 0 && this.get(\"autoSetPercentScale\")) {\n\t\t\t\t\tthis.setPercentScale(true);\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tconst ldi = series.get(\"legendDataItem\") as DataItem<IStockLegendDataItem>;\n\t\tif (ldi) {\n\t\t\tconst legend = ldi.component;\n\t\t\tlegend.data.removeValue(series);\n\t\t}\n\n\t}\n\n\tprotected _maybePrepSeriesDefaults(series: XYSeries): void {\n\t\tif (!series.states.lookup(\"comparingDefaults\")) {\n\t\t\tconst seriesSettings = this.get(\"percentScaleSeriesSettings\");\n\t\t\tconst defaults: any = {};\n\t\t\t$object.each(seriesSettings, (key, _val) => {\n\t\t\t\tdefaults[key] = (<any>series).get(key);\n\t\t\t});\n\t\t\tseries.states.create(\"comparingDefaults\", defaults);\n\t\t}\n\t}\n\n\tprotected _maybePrepAxisDefaults(): void {\n\t\tconst stockSeries = this.get(\"stockSeries\")!;\n\t\tconst axis = stockSeries.get(\"yAxis\");\n\t\tif (!axis.states.lookup(\"comparingDefaults\")) {\n\t\t\tconst axisSettings = this.get(\"percentScaleValueAxisSettings\");\n\t\t\tconst defaults: any = {};\n\t\t\t$object.each(axisSettings, (key, _val) => {\n\t\t\t\tdefaults[key] = (<any>axis).get(key);\n\t\t\t});\n\t\t\taxis.states.create(\"comparingDefaults\", defaults);\n\t\t}\n\t}\n\n\tprotected _processIndicator(indicator: Indicator) {\n\t\tthis.children.push(indicator);\n\t\tconst stockSeries = this.get(\"stockSeries\");\n\t\tif (stockSeries) {\n\t\t\tindicator.set(\"stockSeries\", stockSeries);\n\t\t}\n\n\t\tconst volumeSeries = this.get(\"volumeSeries\");\n\t\tif (volumeSeries) {\n\t\t\tindicator.set(\"volumeSeries\", volumeSeries);\n\t\t}\n\n\t\tif (this.getPrivate(\"comparing\")) {\n\t\t\tthis.setPercentScale(true);\n\t\t}\n\n\t\tindicator.prepareData();\n\t}\n\n\tprotected _removeIndicator(indicator: Indicator) {\n\t\tthis.children.removeValue(indicator);\n\t}\n\n\tprotected _removePanel(chart: StockPanel) {\n\t\tthis.panelsContainer.children.removeValue(chart);\n\t}\n\n\tpublic _updateControls() {\n\t\tconst stockSeries = this.get(\"stockSeries\");\n\t\tthis.panels.each((panel) => {\n\t\t\tconst panelControls = panel.panelControls;\n\t\t\tconst index = this.panelsContainer.children.indexOf(panel);\n\t\t\tconst len = this.panels.length;\n\n\t\t\tpanelControls.upButton.setPrivate(\"visible\", false);\n\t\t\tpanelControls.downButton.setPrivate(\"visible\", false);\n\t\t\tpanelControls.expandButton.setPrivate(\"visible\", false);\n\t\t\tpanelControls.closeButton.setPrivate(\"visible\", false);\n\n\t\t\tif (len > 1) {\n\t\t\t\tpanelControls.expandButton.setPrivate(\"visible\", true);\n\n\t\t\t\tif (index != 0) {\n\t\t\t\t\tpanelControls.upButton.setPrivate(\"visible\", true);\n\t\t\t\t}\n\t\t\t\tif (index != len - 1) {\n\t\t\t\t\tpanelControls.downButton.setPrivate(\"visible\", true);\n\t\t\t\t}\n\n\t\t\t\tif (!stockSeries || stockSeries.chart != panel) {\n\t\t\t\t\tpanelControls.closeButton.setPrivate(\"visible\", true);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (stockSeries) {\n\t\t\t\tthis.indicators.each((indicator) => {\n\t\t\t\t\tindicator.set(\"stockSeries\", stockSeries);\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\n\t}\n\n\tprotected _processPanel(panel: StockPanel) {\n\n\t\tpanel.setPrivate(\"otherCharts\", this.panels.values);\n\t\tpanel.setPrivate(\"stockChart\", this);\n\t\tpanel.panelControls = panel.topPlotContainer.children.push(PanelControls.new(this._root, { stockPanel: panel, stockChart: this }));\n\t\tthis._updateControls();\n\n\t\tif (this.panels.length > 1) {\n\t\t\tconst resizer = panel.children.push(Rectangle.new(this._root, { themeTags: [\"panelresizer\"] }))\n\t\t\tresizer.events.on(\"pointerdown\", (e) => {\n\t\t\t\tconst chartsContainer = this.panelsContainer;\n\t\t\t\tthis._downResizer = e.target;\n\t\t\t\tthis.panels.each((chart) => {\n\t\t\t\t\tchart.set(\"height\", percent(chart.height() / chartsContainer.height() * 100))\n\t\t\t\t})\n\n\t\t\t\tthis._downY = chartsContainer.toLocal(e.point).y;\n\n\t\t\t\tconst upperChart = this.panels.getIndex(this.panels.indexOf(panel) - 1);\n\t\t\t\tthis._upperPanel = upperChart;\n\t\t\t\tif (upperChart) {\n\t\t\t\t\tthis._uhp = upperChart.get(\"height\") as Percent;\n\t\t\t\t}\n\n\t\t\t\tthis._dhp = panel.get(\"height\") as Percent;\n\t\t\t})\n\n\t\t\tresizer.events.on(\"pointerup\", () => {\n\t\t\t\tthis._downResizer = undefined;\n\t\t\t})\n\n\t\t\tresizer.events.on(\"globalpointermove\", (e) => {\n\t\t\t\tif (e.target == this._downResizer) {\n\t\t\t\t\tconst chartsContainer = this.panelsContainer;\n\t\t\t\t\tconst height = chartsContainer.height();\n\t\t\t\t\tconst upperChart = this._upperPanel;\n\n\t\t\t\t\tif (upperChart) {\n\t\t\t\t\t\tconst index = this.panels.indexOf(upperChart) + 2\n\t\t\t\t\t\tlet max = height - panel.get(\"minHeight\", 0);\n\t\t\t\t\t\tconst lowerChart = this.panels.getIndex(index);\n\t\t\t\t\t\tif (lowerChart) {\n\t\t\t\t\t\t\tmax = lowerChart.y() - panel.get(\"minHeight\", 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconsole.log(upperChart.get(\"minHeight\", 0))\n\t\t\t\t\t\tconst y = Math.max(upperChart.y() + upperChart.get(\"minHeight\", 0) + upperChart.get(\"paddingTop\", 0), Math.min(chartsContainer.toLocal(e.point).y, max));\n\n\t\t\t\t\t\tconst downY = this._downY;\n\t\t\t\t\t\tconst dhp = this._dhp;\n\t\t\t\t\t\tconst uhp = this._uhp;\n\t\t\t\t\t\tif (downY != null && dhp != null && uhp != null) {\n\t\t\t\t\t\t\tconst diff = (downY - y) / height;\n\t\t\t\t\t\t\tpanel.set(\"height\", percent((dhp.value + diff) * 100));\n\t\t\t\t\t\t\tupperChart.set(\"height\", percent((uhp.value - diff) * 100))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tpanel.xAxes.events.onAll((change) => {\n\t\t\tif (change.type === \"clear\") {\n\t\t\t\t$array.each(change.oldValues, (axis) => {\n\t\t\t\t\tthis._removeXAxis(axis);\n\t\t\t\t})\n\t\t\t} else if (change.type === \"push\") {\n\t\t\t\tthis._processXAxis(change.newValue);\n\t\t\t} else if (change.type === \"setIndex\") {\n\t\t\t\tthis._processXAxis(change.newValue);\n\t\t\t} else if (change.type === \"insertIndex\") {\n\t\t\t\tthis._processXAxis(change.newValue);\n\t\t\t} else if (change.type === \"removeIndex\") {\n\t\t\t\tthis._removeXAxis(change.oldValue);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unknown IListEvent type\");\n\t\t\t}\n\t\t})\n\n\t\tpanel.leftAxesContainer.events.on(\"boundschanged\", () => {\n\t\t\tthis._syncYAxesSize();\n\t\t})\n\n\t\tpanel.rightAxesContainer.events.on(\"boundschanged\", () => {\n\t\t\tthis._syncYAxesSize();\n\t\t})\n\n\t}\n\n\tprotected _syncYAxesSize() {\n\t\tvar maxLeft = 0;\n\t\tvar maxRight = 0;\n\t\tthis.panels.each((chart) => {\n\t\t\tlet lw = chart.leftAxesContainer.width();\n\t\t\tlet rw = chart.rightAxesContainer.width();\n\t\t\tif (lw > maxLeft) {\n\t\t\t\tmaxLeft = lw;\n\t\t\t}\n\t\t\tif (rw > maxRight) {\n\t\t\t\tmaxRight = rw;\n\t\t\t}\n\t\t})\n\t\tthis.panels.each((chart) => {\n\t\t\tchart.leftAxesContainer.set(\"minWidth\", maxLeft);\n\t\t\tchart.rightAxesContainer.set(\"minWidth\", maxRight);\n\t\t})\n\n\t\tthis.toolsContainer.set(\"paddingRight\", maxRight);\n\t\tthis.toolsContainer.set(\"paddingRight\", maxRight);\n\t}\n\n\tprotected _removeXAxis(_axis: Axis<AxisRenderer>) {\n\n\t}\n\n\tprotected _processXAxis(axis: Axis<AxisRenderer>) {\n\t\t$array.move(this._xAxes, axis);\n\t\taxis.on(\"start\", () => {\n\t\t\tif (axis._skipSync != true) {\n\t\t\t\tthis._syncXAxes(axis);\n\t\t\t}\n\t\t})\n\t\taxis.on(\"end\", () => {\n\t\t\tif (axis._skipSync != true) {\n\t\t\t\tthis._syncXAxes(axis);\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected _syncXAxes(axis: Axis<AxisRenderer>) {\n\t\t$array.each(this._xAxes, (xAxis) => {\n\t\t\tif (xAxis != axis) {\n\t\t\t\txAxis._skipSync = true;\n\t\t\t\txAxis.set(\"start\", axis.get(\"start\"));\n\t\t\t\txAxis.set(\"end\", axis.get(\"end\"));\n\t\t\t\txAxis._skipSync = false;\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getVolumeColor(dataItem: DataItem<IXYSeriesDataItem>, negativeColor?: Color, positiveColor?: Color): Color | undefined {\n\t\tif (dataItem) {\n\t\t\tconst stockSeries = this.get(\"stockSeries\");\n\t\t\tconst volumeSeries = dataItem.component;\n\n\t\t\tif (!negativeColor) {\n\t\t\t\tnegativeColor = this.get(\"volumeNegativeColor\", this.root.interfaceColors.get(\"negative\", Color.fromHex(0xff0000)));\n\t\t\t}\n\n\t\t\tif (!positiveColor) {\n\t\t\t\tpositiveColor = this.get(\"volumePositiveColor\", this.root.interfaceColors.get(\"positive\", Color.fromHex(0x00FF00)));\n\t\t\t}\n\n\t\t\tif (stockSeries && volumeSeries) {\n\t\t\t\tconst index = volumeSeries.dataItems.indexOf(dataItem);\n\t\t\t\tif (index > 0) {\n\t\t\t\t\tlet stockDataItem = stockSeries.dataItems[index];\n\t\t\t\t\tif (stockDataItem) {\n\t\t\t\t\t\tlet close = stockDataItem.get(\"valueY\");\n\t\t\t\t\t\tif (close != null) {\n\t\t\t\t\t\t\tfor (let i = index - 1; i >= 0; i--) {\n\t\t\t\t\t\t\t\tlet di = stockSeries.dataItems[i];\n\t\t\t\t\t\t\t\tlet previousClose = di.get(\"valueY\");\n\n\t\t\t\t\t\t\t\tif (previousClose != null) {\n\t\t\t\t\t\t\t\t\tif (close < previousClose) {\n\t\t\t\t\t\t\t\t\t\treturn negativeColor;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treturn positiveColor;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn positiveColor;\n\t}\n}\n"]}
1
+ {"version":3,"file":"StockChart.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/stock/StockChart.ts"],"names":[],"mappings":"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","sourcesContent":["import type { StockPanel } from \"./StockPanel\";\nimport type { StockLegend, IStockLegendDataItem } from \"./StockLegend\";\nimport type { Axis } from \"../xy/axes/Axis\";\nimport type { AxisRenderer } from \"../xy/axes/AxisRenderer\";\nimport type { BaseColumnSeries } from \"../xy/series/BaseColumnSeries\";\nimport type { IValueAxisSettings } from \"../xy/axes/ValueAxis\";\nimport type { XYSeries, IXYSeriesDataItem, IXYSeriesSettings } from \"../xy/series/XYSeries\";\nimport type { DataItem } from \"../../core/render/Component\";\nimport type { Indicator } from \"./indicators/Indicator\";\nimport type { DrawingSeries } from \"./drawing/DrawingSeries\";\n\nimport { PanelControls } from \"./PanelControls\";\nimport { StockChartDefaultTheme } from \"./StockChartDefaultTheme\";\nimport { XYChartDefaultTheme } from \"../xy/XYChartDefaultTheme\";\nimport { Container, IContainerPrivate, IContainerSettings, IContainerEvents } from \"../../core/render/Container\";\nimport { ListAutoDispose } from \"../../core/util/List\";\nimport { Rectangle } from \"../../core/render/Rectangle\";\nimport { p100, percent, Percent } from \"../../core/util/Percent\";\nimport { SettingsModal } from \"./SettingsModal\";\nimport { Color } from \"../../core/util/Color\";\nimport { registry } from \"../../core/Registry\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $utils from \"../../core/util/Utils\";\nimport * as $object from \"../../core/util/Object\";\n\nexport interface IStockChartSettings extends IContainerSettings {\n\n\t/**\n\t * Main value series.\n\t *\n\t * This series is used to target by settings, as well as calculating\n\t * indicators, and annotations.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Setting_main_series}\n\t */\n\tstockSeries?: XYSeries;\n\n\t/**\n\t * Main volume series.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Setting_main_series}\n\t */\n\tvolumeSeries?: XYSeries;\n\n\t/**\n\t * @ignore\n\t */\n\tcomparingSeriesSettings?: Partial<IXYSeriesSettings>;\n\n\t/**\n\t * Settings to be applied to the the main value series, when chart is\n\t * switched to \"percent scale\".\n\t * \n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/percent-mode/#Configuring} for more info\n\t */\n\tpercentScaleSeriesSettings?: Partial<IXYSeriesSettings>;\n\n\t/**\n\t * Settings to be applied to the [[ValueAxis]] of the main value series,\n\t * when chart is switched to \"percent scale\".\n\t * \n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/percent-mode/#Configuring} for more info\n\t */\n\tpercentScaleValueAxisSettings?: Partial<IValueAxisSettings<AxisRenderer>>;\n\n\t/**\n\t * If set to `true`, the chart will go into \"percent scale\" when compared\n\t * series are added to chart, and will exit it when all of the comparisons\n\t * are removed.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/percent-mode/} for more info\n\t * @default true\n\t */\n\tautoSetPercentScale?: boolean;\n\n\t/**\n\t * This color will be applied to columns/candles on the main value series (series\n\t * set as `stockSeries`) where the open value is lower or equal to the close\n\t * value.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Positive_negative_colors} for more info\n\t */\n\tstockPositiveColor?: Color;\n\n\t/**\n\t * This color will be applied to columns/candles on the main value series (series\n\t * set as `stockSeries`) where the open value is higher than the close value.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Positive_negative_colors} for more info\n\t */\n\tstockNegativeColor?: Color;\n\n\t/**\n\t * This color will be applied to columns/candles on the main volume series (series\n\t * set as `stockSeries`) where the open value is lower or equal to the close\n\t * value.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Positive_negative_colors} for more info\n\t */\n\tvolumePositiveColor?: Color;\n\n\t/**\n\t * This color will be applied to columns/candles on the main volume series (series\n\t * set as `stockSeries`) where the open value is higher than the close value.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Positive_negative_colors} for more info\n\t */\n\tvolumeNegativeColor?: Color;\n\n}\n\nexport interface IStockChartPrivate extends IContainerPrivate {\n\n\t/**\n\t * A instance of [[SettingsModal]].\n\t */\n\tsettingsModal: SettingsModal;\n\n\t/**\n\t * Indicates if chart has currently have any \"compared\" series set.\n\t */\n\tcomparing?: boolean;\n\n\t/**\n\t * A list of compared series.\n\t */\n\tcomparedSeries?: XYSeries[];\n\n}\n\nexport interface IStockChartEvents extends IContainerEvents {\n\n}\n\n\n/**\n * A main class for the Stock Chart.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/} for more info\n * @important\n */\nexport class StockChart extends Container {\n\n\tpublic static className: string = \"StockChart\";\n\tpublic static classNames: Array<string> = Container.classNames.concat([StockChart.className]);\n\n\n\tdeclare public _settings: IStockChartSettings;\n\tdeclare public _privateSettings: IStockChartPrivate;\n\tdeclare public _events: IContainerEvents;\n\n\tprotected _xAxes: Array<Axis<AxisRenderer>> = [];\n\tprotected _downY?: number;\n\tprotected _upperPanel?: StockPanel;\n\tprotected _dhp?: Percent;\n\tprotected _uhp?: Percent;\n\tprotected _downResizer?: Rectangle;\n\n\t/**\n\t * A list of stock panels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/#Panels} for more info\n\t */\n\tpublic readonly panels: ListAutoDispose<StockPanel> = new ListAutoDispose();\n\n\t/**\n\t * A list of indicators on chart.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\n\t */\n\tpublic readonly indicators: ListAutoDispose<Indicator> = new ListAutoDispose();\n\n\t/**\n\t * A [[Container]], resiting on top of the charts, suitable for additional\n\t * tools, like [[Scrollbar]].\n\t * \n\t * @default Container.new()\n\t */\n\tpublic readonly toolsContainer: Container = this.children.push(Container.new(this._root, { width: p100, themeTags: [] }));\n\n\t/**\n\t * A [[Container]] where all the stock panels are placed into.\n\t * \n\t * @default Container.new()\n\t */\n\tpublic readonly panelsContainer: Container = this.children.push(Container.new(this._root, { width: p100, height: p100, layout: this._root.verticalLayout, themeTags: [\"chartscontainer\"] }));\n\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"stock\"]);\n\t\tthis._defaultThemes.push(StockChartDefaultTheme.new(this._root));\n\t\tthis._defaultThemes.push(XYChartDefaultTheme.new(this._root));\n\n\t\tconst tooltipContainer = this._root.tooltipContainer;\n\t\ttooltipContainer.set(\"themeTags\", $utils.mergeTags(tooltipContainer.get(\"themeTags\", []), [\"stock\"]));\n\n\t\tsuper._afterNew();\n\n\t\tconst children = this.panelsContainer.children;\n\t\tthis._disposers.push(this.panels.events.onAll((change) => {\n\t\t\tif (change.type === \"clear\") {\n\t\t\t\t$array.each(change.oldValues, (chart) => {\n\t\t\t\t\tthis._removePanel(chart);\n\t\t\t\t})\n\t\t\t} else if (change.type === \"push\") {\n\t\t\t\tchildren.moveValue(change.newValue);\n\t\t\t\tthis._processPanel(change.newValue);\n\t\t\t} else if (change.type === \"setIndex\") {\n\t\t\t\tchildren.setIndex(change.index, change.newValue);\n\t\t\t\tthis._processPanel(change.newValue);\n\t\t\t} else if (change.type === \"insertIndex\") {\n\t\t\t\tchildren.insertIndex(change.index, change.newValue);\n\t\t\t\tthis._processPanel(change.newValue);\n\t\t\t} else if (change.type === \"removeIndex\") {\n\t\t\t\tthis._removePanel(change.oldValue);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unknown IListEvent type\");\n\t\t\t}\n\t\t}));\n\n\t\tthis._disposers.push(this.indicators.events.onAll((change) => {\n\t\t\tif (change.type === \"clear\") {\n\t\t\t\t$array.each(change.oldValues, (indicator) => {\n\t\t\t\t\tthis._removeIndicator(indicator);\n\t\t\t\t})\n\t\t\t} else if (change.type === \"push\") {\n\t\t\t\tthis._processIndicator(change.newValue);\n\t\t\t} else if (change.type === \"setIndex\") {\n\t\t\t\tthis._processIndicator(change.newValue);\n\t\t\t} else if (change.type === \"insertIndex\") {\n\t\t\t\tthis._processIndicator(change.newValue);\n\t\t\t} else if (change.type === \"removeIndex\") {\n\t\t\t\tthis._removeIndicator(change.oldValue);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unknown IListEvent type\");\n\t\t\t}\n\t\t}));\n\n\t\tthis.setPrivateRaw(\"settingsModal\", SettingsModal.new(this.root, {\n\t\t\tstockChart: this\n\t\t}));\n\n\t\tlet license = false;\n\t\tfor (let i = 0; i < registry.licenses.length; i++) {\n\t\t\tif (registry.licenses[i].match(/^AM5S.{5,}/i)) {\n\t\t\t\tlicense = true;\n\t\t\t}\n\t\t}\n\t\tif (!license) {\n\t\t\tthis._root._showBranding();\n\t\t}\n\t\telse {\n\t\t\tthis._root._licenseApplied();\n\t\t}\n\t}\n\n\tpublic _prepareChildren() {\n\n\t\tif (this.isDirty(\"volumeNegativeColor\") || this.isDirty(\"volumePositiveColor\")) {\n\t\t\tconst volumeSeries = this.get(\"volumeSeries\");\n\t\t\tif (volumeSeries && volumeSeries.isType<BaseColumnSeries>(\"BaseColumnSeries\")) {\n\t\t\t\tvolumeSeries.columns.each((column) => {\n\t\t\t\t\tcolumn._markDirtyKey(\"fill\");\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tconst stockSeries = this.get(\"stockSeries\");\n\n\t\tif (this.isDirty(\"stockNegativeColor\") || this.isDirty(\"stockPositiveColor\")) {\n\t\t\tif (stockSeries && stockSeries.isType<BaseColumnSeries>(\"BaseColumnSeries\")) {\n\t\t\t\tconst stockNegativeColor = this.get(\"stockNegativeColor\", this._root.interfaceColors.get(\"negative\"));\n\t\t\t\tconst stockPositiveColor = this.get(\"stockPositiveColor\", this._root.interfaceColors.get(\"positive\"));\n\t\t\t\tlet previous = stockSeries.dataItems[0];\n\t\t\t\t$array.each(stockSeries.dataItems, (dataItem) => {\n\t\t\t\t\tconst column = dataItem.get(\"graphics\");\n\t\t\t\t\tif (column) {\n\t\t\t\t\t\tconst dropFromOpen = column.states.lookup(\"dropFromOpen\");\n\t\t\t\t\t\tif (dropFromOpen) {\n\t\t\t\t\t\t\tdropFromOpen.setAll({ fill: stockNegativeColor, stroke: stockNegativeColor });\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst riseFromOpen = column.states.lookup(\"riseFromOpen\");\n\t\t\t\t\t\tif (riseFromOpen) {\n\t\t\t\t\t\t\triseFromOpen.setAll({ fill: stockPositiveColor, stroke: stockPositiveColor });\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstockSeries._applyGraphicsStates(dataItem, previous);\n\t\t\t\t\t\tprevious = dataItem;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tstockSeries.markDirtyValues();\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"stockSeries\")) {\n\n\t\t\tif (stockSeries) {\n\t\t\t\tthis.indicators.each((indicator) => {\n\t\t\t\t\tindicator.set(\"stockSeries\", stockSeries);\n\t\t\t\t})\n\t\t\t\tconst mainChart = stockSeries.chart;\n\n\t\t\t\tif (mainChart) {\n\t\t\t\t\tconst previous = this._prevSettings.stockSeries;\n\t\t\t\t\tmainChart.series.each((series) => {\n\t\t\t\t\t\tif (series.isType<DrawingSeries>(\"DrawingSeries\")) {\n\t\t\t\t\t\t\tlet s = series.get(\"series\");\n\t\t\t\t\t\t\tif (s == previous) {\n\t\t\t\t\t\t\t\tseries.set(\"series\", stockSeries);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (this.getPrivate(\"comparing\")) {\n\t\t\t\t\tthis.setPercentScale(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tsuper._prepareChildren();\n\t}\n\n\t/**\n\t * Enables or disables percent scale mode.\n\t *\n\t * If `percentScale` is not set, it will try to determine the status on its own.\n\t *\n\t * In percent scale mode `percentScaleSeriesSettings` and `percentScaleValueAxisSettings` will\n\t * be applied to the regular series on the main panel and its Y axis.\n\t * \n\t * @param percentScale Comparison mode active\n\t */\n\tpublic setPercentScale(percentScale?: boolean): void {\n\t\tconst stockSeries = this.get(\"stockSeries\");\n\t\tconst seriesSettings = this.get(\"percentScaleSeriesSettings\");\n\t\tconst axisSettings = this.get(\"percentScaleValueAxisSettings\");\n\t\tif (stockSeries) {\n\t\t\tconst mainChart = stockSeries.chart;\n\t\t\tconst yAxis = stockSeries.get(\"yAxis\");\n\t\t\tthis._maybePrepAxisDefaults();\n\t\t\tif (mainChart) {\n\t\t\t\tconst seriesList: XYSeries[] = [];\n\t\t\t\tmainChart.series.each((series) => {\n\t\t\t\t\tif (series.get(\"yAxis\") == yAxis) {\n\t\t\t\t\t\tseriesList.push(series);\n\t\t\t\t\t\tthis._maybePrepSeriesDefaults(series);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (percentScale == undefined) {\n\t\t\t\t\tpercentScale = this.getPrivate(\"comparedSeries\", []).length > 0;\n\t\t\t\t}\n\n\t\t\t\tthis.setPrivate(\"comparing\", percentScale);\n\n\t\t\t\tif (seriesSettings) {\n\t\t\t\t\t$array.each(seriesList, (series) => {\n\t\t\t\t\t\tif (percentScale) {\n\t\t\t\t\t\t\tseries.setAll(seriesSettings);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tseries.states.apply(\"comparingDefaults\");\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (axisSettings) {\n\t\t\t\t\tif (percentScale) {\n\t\t\t\t\t\tyAxis.setAll(axisSettings);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tyAxis.states.apply(\"comparingDefaults\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Adds a \"compared\" series to chart. Returns the same series.\n\t *\n\t * @param series Compared series\n\t * @return Compared series\n\t */\n\tpublic addComparingSeries(series: XYSeries): XYSeries {\n\t\tconst stockSeries = this.get(\"stockSeries\");\n\t\tif (stockSeries) {\n\t\t\tconst chart = stockSeries.chart;\n\t\t\tif (chart) {\n\t\t\t\tchart.series.push(series);\n\t\t\t}\n\n\t\t\t// Apply comparingSeriesSettings\n\t\t\tconst comparingSeriesSettings = this.get(\"comparingSeriesSettings\");\n\t\t\tif (comparingSeriesSettings) {\n\t\t\t\tseries.setAll(comparingSeriesSettings);\n\t\t\t}\n\n\t\t\tconst comparedSeries = this.getPrivate(\"comparedSeries\");\n\t\t\tif (comparedSeries) {\n\t\t\t\tcomparedSeries.push(series);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.setPrivate(\"comparedSeries\", [series]);\n\t\t\t}\n\n\t\t\tconst legendDataItem = stockSeries.get(\"legendDataItem\");\n\n\t\t\tif (legendDataItem) {\n\t\t\t\tconst legend = legendDataItem.component;\n\t\t\t\tif (legend.isType<StockLegend>(\"StockLegend\")) {\n\t\t\t\t\tlegend.data.push(series);\n\t\t\t\t\tconst ldi = series.get(\"legendDataItem\") as DataItem<IStockLegendDataItem>;\n\t\t\t\t\tif (ldi) {\n\t\t\t\t\t\tconst closeButton = ldi.get(\"closeButton\");\n\t\t\t\t\t\tcloseButton.set(\"forceHidden\", false);\n\t\t\t\t\t\tcloseButton.events.on(\"click\", () => {\n\t\t\t\t\t\t\tthis.removeComparingSeries(series);\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.get(\"autoSetPercentScale\")) {\n\t\t\t\tthis.setPercentScale(true);\n\t\t\t}\n\n\t\t}\n\t\treturn series;\n\t}\n\n\t/**\n\t * Removes compared series.\n\t * \n\t * @param series Compared series\n\t */\n\tpublic removeComparingSeries(series: XYSeries) {\n\t\tconst stockSeries = this.get(\"stockSeries\");\n\t\tif (stockSeries) {\n\t\t\tconst chart = stockSeries.chart;\n\t\t\tif (chart) {\n\t\t\t\tchart.series.removeValue(series);\n\t\t\t}\n\n\t\t\tconst comparedSeries = this.getPrivate(\"comparedSeries\");\n\t\t\tif (comparedSeries) {\n\t\t\t\t$array.remove(comparedSeries, series);\n\t\t\t\tif (comparedSeries.length == 0 && this.get(\"autoSetPercentScale\")) {\n\t\t\t\t\tthis.setPercentScale(true);\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tconst ldi = series.get(\"legendDataItem\") as DataItem<IStockLegendDataItem>;\n\t\tif (ldi) {\n\t\t\tconst legend = ldi.component;\n\t\t\tlegend.data.removeValue(series);\n\t\t}\n\n\t}\n\n\tprotected _maybePrepSeriesDefaults(series: XYSeries): void {\n\t\tif (!series.states.lookup(\"comparingDefaults\")) {\n\t\t\tconst seriesSettings = this.get(\"percentScaleSeriesSettings\");\n\t\t\tconst defaults: any = {};\n\t\t\t$object.each(seriesSettings, (key, _val) => {\n\t\t\t\tdefaults[key] = (<any>series).get(key);\n\t\t\t});\n\t\t\tseries.states.create(\"comparingDefaults\", defaults);\n\t\t}\n\t}\n\n\tprotected _maybePrepAxisDefaults(): void {\n\t\tconst stockSeries = this.get(\"stockSeries\")!;\n\t\tconst axis = stockSeries.get(\"yAxis\");\n\t\tif (!axis.states.lookup(\"comparingDefaults\")) {\n\t\t\tconst axisSettings = this.get(\"percentScaleValueAxisSettings\");\n\t\t\tconst defaults: any = {};\n\t\t\t$object.each(axisSettings, (key, _val) => {\n\t\t\t\tdefaults[key] = (<any>axis).get(key);\n\t\t\t});\n\t\t\taxis.states.create(\"comparingDefaults\", defaults);\n\t\t}\n\t}\n\n\tprotected _processIndicator(indicator: Indicator) {\n\t\tthis.children.push(indicator);\n\t\tconst stockSeries = this.get(\"stockSeries\");\n\t\tif (stockSeries) {\n\t\t\tindicator.set(\"stockSeries\", stockSeries);\n\t\t}\n\n\t\tconst volumeSeries = this.get(\"volumeSeries\");\n\t\tif (volumeSeries) {\n\t\t\tindicator.set(\"volumeSeries\", volumeSeries);\n\t\t}\n\n\t\tif (this.getPrivate(\"comparing\")) {\n\t\t\tthis.setPercentScale(true);\n\t\t}\n\n\t\tindicator.prepareData();\n\t}\n\n\tprotected _removeIndicator(indicator: Indicator) {\n\t\tthis.children.removeValue(indicator);\n\t}\n\n\tprotected _removePanel(chart: StockPanel) {\n\t\tthis.panelsContainer.children.removeValue(chart);\n\t}\n\n\tpublic _updateControls() {\n\t\tconst stockSeries = this.get(\"stockSeries\");\n\t\tthis.panels.each((panel) => {\n\t\t\tconst panelControls = panel.panelControls;\n\t\t\tconst index = this.panelsContainer.children.indexOf(panel);\n\t\t\tconst len = this.panels.length;\n\n\t\t\tpanelControls.upButton.setPrivate(\"visible\", false);\n\t\t\tpanelControls.downButton.setPrivate(\"visible\", false);\n\t\t\tpanelControls.expandButton.setPrivate(\"visible\", false);\n\t\t\tpanelControls.closeButton.setPrivate(\"visible\", false);\n\n\t\t\tif (len > 1) {\n\t\t\t\tpanelControls.expandButton.setPrivate(\"visible\", true);\n\n\t\t\t\tif (index != 0) {\n\t\t\t\t\tpanelControls.upButton.setPrivate(\"visible\", true);\n\t\t\t\t}\n\t\t\t\tif (index != len - 1) {\n\t\t\t\t\tpanelControls.downButton.setPrivate(\"visible\", true);\n\t\t\t\t}\n\n\t\t\t\tif (!stockSeries || stockSeries.chart != panel) {\n\t\t\t\t\tpanelControls.closeButton.setPrivate(\"visible\", true);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (stockSeries) {\n\t\t\t\tthis.indicators.each((indicator) => {\n\t\t\t\t\tindicator.set(\"stockSeries\", stockSeries);\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\n\t}\n\n\tprotected _processPanel(panel: StockPanel) {\n\n\t\tpanel.setPrivate(\"otherCharts\", this.panels.values);\n\t\tpanel.setPrivate(\"stockChart\", this);\n\t\tpanel.panelControls = panel.topPlotContainer.children.push(PanelControls.new(this._root, { stockPanel: panel, stockChart: this }));\n\t\tthis._updateControls();\n\n\t\tif (this.panels.length > 1) {\n\t\t\tconst resizer = panel.children.push(Rectangle.new(this._root, { themeTags: [\"panelresizer\"] }))\n\t\t\tresizer.events.on(\"pointerdown\", (e) => {\n\t\t\t\tconst chartsContainer = this.panelsContainer;\n\t\t\t\tthis._downResizer = e.target;\n\t\t\t\tthis.panels.each((chart) => {\n\t\t\t\t\tchart.set(\"height\", percent(chart.height() / chartsContainer.height() * 100))\n\t\t\t\t})\n\n\t\t\t\tthis._downY = chartsContainer.toLocal(e.point).y;\n\n\t\t\t\tconst upperChart = this.panels.getIndex(this.panels.indexOf(panel) - 1);\n\t\t\t\tthis._upperPanel = upperChart;\n\t\t\t\tif (upperChart) {\n\t\t\t\t\tthis._uhp = upperChart.get(\"height\") as Percent;\n\t\t\t\t}\n\n\t\t\t\tthis._dhp = panel.get(\"height\") as Percent;\n\t\t\t})\n\n\t\t\tresizer.events.on(\"pointerup\", () => {\n\t\t\t\tthis._downResizer = undefined;\n\t\t\t})\n\n\t\t\tresizer.events.on(\"globalpointermove\", (e) => {\n\t\t\t\tif (e.target == this._downResizer) {\n\t\t\t\t\tconst chartsContainer = this.panelsContainer;\n\t\t\t\t\tconst height = chartsContainer.height();\n\t\t\t\t\tconst upperChart = this._upperPanel;\n\n\t\t\t\t\tif (upperChart) {\n\t\t\t\t\t\tconst index = this.panels.indexOf(upperChart) + 2\n\t\t\t\t\t\tlet max = height - panel.get(\"minHeight\", 0);\n\t\t\t\t\t\tconst lowerChart = this.panels.getIndex(index);\n\t\t\t\t\t\tif (lowerChart) {\n\t\t\t\t\t\t\tmax = lowerChart.y() - panel.get(\"minHeight\", 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//console.log(upperChart.get(\"minHeight\", 0))\n\t\t\t\t\t\tconst y = Math.max(upperChart.y() + upperChart.get(\"minHeight\", 0) + upperChart.get(\"paddingTop\", 0), Math.min(chartsContainer.toLocal(e.point).y, max));\n\n\t\t\t\t\t\tconst downY = this._downY;\n\t\t\t\t\t\tconst dhp = this._dhp;\n\t\t\t\t\t\tconst uhp = this._uhp;\n\t\t\t\t\t\tif (downY != null && dhp != null && uhp != null) {\n\t\t\t\t\t\t\tconst diff = (downY - y) / height;\n\t\t\t\t\t\t\tpanel.set(\"height\", percent((dhp.value + diff) * 100));\n\t\t\t\t\t\t\tupperChart.set(\"height\", percent((uhp.value - diff) * 100))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tpanel.xAxes.events.onAll((change) => {\n\t\t\tif (change.type === \"clear\") {\n\t\t\t\t$array.each(change.oldValues, (axis) => {\n\t\t\t\t\tthis._removeXAxis(axis);\n\t\t\t\t})\n\t\t\t} else if (change.type === \"push\") {\n\t\t\t\tthis._processXAxis(change.newValue);\n\t\t\t} else if (change.type === \"setIndex\") {\n\t\t\t\tthis._processXAxis(change.newValue);\n\t\t\t} else if (change.type === \"insertIndex\") {\n\t\t\t\tthis._processXAxis(change.newValue);\n\t\t\t} else if (change.type === \"removeIndex\") {\n\t\t\t\tthis._removeXAxis(change.oldValue);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unknown IListEvent type\");\n\t\t\t}\n\t\t})\n\n\t\tpanel.leftAxesContainer.events.on(\"boundschanged\", () => {\n\t\t\tthis._syncYAxesSize();\n\t\t})\n\n\t\tpanel.rightAxesContainer.events.on(\"boundschanged\", () => {\n\t\t\tthis._syncYAxesSize();\n\t\t})\n\n\t}\n\n\tprotected _syncYAxesSize() {\n\t\tvar maxLeft = 0;\n\t\tvar maxRight = 0;\n\t\tthis.panels.each((chart) => {\n\t\t\tlet lw = chart.leftAxesContainer.width();\n\t\t\tlet rw = chart.rightAxesContainer.width();\n\t\t\tif (lw > maxLeft) {\n\t\t\t\tmaxLeft = lw;\n\t\t\t}\n\t\t\tif (rw > maxRight) {\n\t\t\t\tmaxRight = rw;\n\t\t\t}\n\t\t})\n\t\tthis.panels.each((chart) => {\n\t\t\tchart.leftAxesContainer.set(\"minWidth\", maxLeft);\n\t\t\tchart.rightAxesContainer.set(\"minWidth\", maxRight);\n\t\t})\n\n\t\tthis.toolsContainer.set(\"paddingRight\", maxRight);\n\t\tthis.toolsContainer.set(\"paddingRight\", maxRight);\n\t}\n\n\tprotected _removeXAxis(_axis: Axis<AxisRenderer>) {\n\n\t}\n\n\tprotected _processXAxis(axis: Axis<AxisRenderer>) {\n\t\t$array.move(this._xAxes, axis);\n\t\taxis.on(\"start\", () => {\n\t\t\tif (axis._skipSync != true) {\n\t\t\t\tthis._syncXAxes(axis);\n\t\t\t}\n\t\t})\n\t\taxis.on(\"end\", () => {\n\t\t\tif (axis._skipSync != true) {\n\t\t\t\tthis._syncXAxes(axis);\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected _syncXAxes(axis: Axis<AxisRenderer>) {\n\t\t$array.each(this._xAxes, (xAxis) => {\n\t\t\tif (xAxis != axis) {\n\t\t\t\txAxis._skipSync = true;\n\t\t\t\txAxis.set(\"start\", axis.get(\"start\"));\n\t\t\t\txAxis.set(\"end\", axis.get(\"end\"));\n\t\t\t\txAxis._skipSync = false;\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getVolumeColor(dataItem: DataItem<IXYSeriesDataItem>, negativeColor?: Color, positiveColor?: Color): Color | undefined {\n\t\tif (dataItem) {\n\t\t\tconst stockSeries = this.get(\"stockSeries\");\n\t\t\tconst volumeSeries = dataItem.component;\n\n\t\t\tif (!negativeColor) {\n\t\t\t\tnegativeColor = this.get(\"volumeNegativeColor\", this.root.interfaceColors.get(\"negative\", Color.fromHex(0xff0000)));\n\t\t\t}\n\n\t\t\tif (!positiveColor) {\n\t\t\t\tpositiveColor = this.get(\"volumePositiveColor\", this.root.interfaceColors.get(\"positive\", Color.fromHex(0x00FF00)));\n\t\t\t}\n\n\t\t\tif (stockSeries && volumeSeries) {\n\t\t\t\tconst index = volumeSeries.dataItems.indexOf(dataItem);\n\t\t\t\tif (index > 0) {\n\t\t\t\t\tlet stockDataItem = stockSeries.dataItems[index];\n\t\t\t\t\tif (stockDataItem) {\n\t\t\t\t\t\tlet close = stockDataItem.get(\"valueY\");\n\t\t\t\t\t\tif (close != null) {\n\t\t\t\t\t\t\tfor (let i = index - 1; i >= 0; i--) {\n\t\t\t\t\t\t\t\tlet di = stockSeries.dataItems[i];\n\t\t\t\t\t\t\t\tlet previousClose = di.get(\"valueY\");\n\n\t\t\t\t\t\t\t\tif (previousClose != null) {\n\t\t\t\t\t\t\t\t\tif (close < previousClose) {\n\t\t\t\t\t\t\t\t\t\treturn negativeColor;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treturn positiveColor;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn positiveColor;\n\t}\n}\n"]}
@@ -134,7 +134,7 @@ var LabelSeries = /** @class */ (function (_super) {
134
134
  var input = this.getPrivate("input");
135
135
  input.value = "";
136
136
  this._clickEvent = event;
137
- console.log(event);
137
+ //console.log(event);
138
138
  var inputDiv = this.getPrivate("inputContainer");
139
139
  inputDiv.style.display = "block";
140
140
  inputDiv.style.left = (event.point.x) + "px";