@amcharts/amcharts5 5.7.5 → 5.7.7

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 (237) hide show
  1. package/.internal/charts/map/MapChart.js +1 -1
  2. package/.internal/charts/map/MapChart.js.map +1 -1
  3. package/.internal/charts/map/MapPolygon.js +4 -2
  4. package/.internal/charts/map/MapPolygon.js.map +1 -1
  5. package/.internal/charts/stock/SettingsModal.d.ts.map +1 -1
  6. package/.internal/charts/stock/SettingsModal.js +5 -1
  7. package/.internal/charts/stock/SettingsModal.js.map +1 -1
  8. package/.internal/charts/stock/StockChartDefaultTheme.d.ts.map +1 -1
  9. package/.internal/charts/stock/StockChartDefaultTheme.js +0 -3
  10. package/.internal/charts/stock/StockChartDefaultTheme.js.map +1 -1
  11. package/.internal/charts/stock/drawing/DrawingSeries.d.ts +7 -0
  12. package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
  13. package/.internal/charts/stock/drawing/DrawingSeries.js +9 -0
  14. package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
  15. package/.internal/charts/stock/indicators/MACross.d.ts +1 -0
  16. package/.internal/charts/stock/indicators/MACross.d.ts.map +1 -1
  17. package/.internal/charts/stock/indicators/MACross.js +4 -0
  18. package/.internal/charts/stock/indicators/MACross.js.map +1 -1
  19. package/.internal/charts/stock/indicators/VolumeProfile.d.ts.map +1 -1
  20. package/.internal/charts/stock/indicators/VolumeProfile.js +21 -1
  21. package/.internal/charts/stock/indicators/VolumeProfile.js.map +1 -1
  22. package/.internal/charts/stock/toolbar/ColorControl.d.ts +2 -0
  23. package/.internal/charts/stock/toolbar/ColorControl.d.ts.map +1 -1
  24. package/.internal/charts/stock/toolbar/ColorControl.js +22 -0
  25. package/.internal/charts/stock/toolbar/ColorControl.js.map +1 -1
  26. package/.internal/charts/stock/toolbar/DataSaveControl.d.ts.map +1 -1
  27. package/.internal/charts/stock/toolbar/DataSaveControl.js +4 -1
  28. package/.internal/charts/stock/toolbar/DataSaveControl.js.map +1 -1
  29. package/.internal/charts/stock/toolbar/DrawingControl.d.ts.map +1 -1
  30. package/.internal/charts/stock/toolbar/DrawingControl.js +16 -0
  31. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  32. package/.internal/charts/stock/toolbar/Dropdown.d.ts +2 -0
  33. package/.internal/charts/stock/toolbar/Dropdown.d.ts.map +1 -1
  34. package/.internal/charts/stock/toolbar/Dropdown.js +8 -0
  35. package/.internal/charts/stock/toolbar/Dropdown.js.map +1 -1
  36. package/.internal/charts/stock/toolbar/DropdownColors.d.ts +3 -0
  37. package/.internal/charts/stock/toolbar/DropdownColors.d.ts.map +1 -1
  38. package/.internal/charts/stock/toolbar/DropdownColors.js +58 -0
  39. package/.internal/charts/stock/toolbar/DropdownColors.js.map +1 -1
  40. package/.internal/charts/stock/toolbar/DropdownList.d.ts +4 -0
  41. package/.internal/charts/stock/toolbar/DropdownList.d.ts.map +1 -1
  42. package/.internal/charts/stock/toolbar/DropdownList.js +72 -0
  43. package/.internal/charts/stock/toolbar/DropdownList.js.map +1 -1
  44. package/.internal/charts/stock/toolbar/DropdownListControl.d.ts +1 -0
  45. package/.internal/charts/stock/toolbar/DropdownListControl.d.ts.map +1 -1
  46. package/.internal/charts/stock/toolbar/DropdownListControl.js +21 -0
  47. package/.internal/charts/stock/toolbar/DropdownListControl.js.map +1 -1
  48. package/.internal/charts/stock/toolbar/PeriodSelector.d.ts +2 -0
  49. package/.internal/charts/stock/toolbar/PeriodSelector.d.ts.map +1 -1
  50. package/.internal/charts/stock/toolbar/PeriodSelector.js +54 -3
  51. package/.internal/charts/stock/toolbar/PeriodSelector.js.map +1 -1
  52. package/.internal/charts/stock/toolbar/StockControl.d.ts +2 -0
  53. package/.internal/charts/stock/toolbar/StockControl.d.ts.map +1 -1
  54. package/.internal/charts/stock/toolbar/StockControl.js +29 -0
  55. package/.internal/charts/stock/toolbar/StockControl.js.map +1 -1
  56. package/.internal/charts/stock/toolbar/StockToolbar.d.ts +10 -0
  57. package/.internal/charts/stock/toolbar/StockToolbar.d.ts.map +1 -1
  58. package/.internal/charts/stock/toolbar/StockToolbar.js.map +1 -1
  59. package/.internal/charts/xy/series/XYSeries.js +1 -1
  60. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  61. package/.internal/core/Classes.d.ts +6 -6
  62. package/.internal/core/Classes.d.ts.map +1 -1
  63. package/.internal/core/Classes.js.map +1 -1
  64. package/.internal/core/Registry.js +1 -1
  65. package/.internal/core/Registry.js.map +1 -1
  66. package/.internal/core/Root.d.ts.map +1 -1
  67. package/.internal/core/Root.js +18 -5
  68. package/.internal/core/Root.js.map +1 -1
  69. package/.internal/core/render/backend/CanvasRenderer.js +1 -1
  70. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  71. package/.internal/core/util/Accessibility.d.ts +8 -0
  72. package/.internal/core/util/Accessibility.d.ts.map +1 -1
  73. package/.internal/core/util/Accessibility.js.map +1 -1
  74. package/.internal/core/util/Animation.d.ts +7 -2
  75. package/.internal/core/util/Animation.d.ts.map +1 -1
  76. package/.internal/core/util/Animation.js +10 -4
  77. package/.internal/core/util/Animation.js.map +1 -1
  78. package/.internal/core/util/Entity.d.ts +2 -3
  79. package/.internal/core/util/Entity.d.ts.map +1 -1
  80. package/.internal/core/util/Entity.js +25 -19
  81. package/.internal/core/util/Entity.js.map +1 -1
  82. package/.internal/plugins/json/Classes-script.d.ts +8 -0
  83. package/.internal/plugins/json/Classes-script.d.ts.map +1 -1
  84. package/.internal/plugins/json/Classes-script.js +4 -0
  85. package/.internal/plugins/json/Classes-script.js.map +1 -1
  86. package/.internal/plugins/json/Classes.d.ts +8 -0
  87. package/.internal/plugins/json/Classes.d.ts.map +1 -1
  88. package/.internal/plugins/json/Classes.js +4 -0
  89. package/.internal/plugins/json/Classes.js.map +1 -1
  90. package/CHANGELOG.md +24 -0
  91. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  92. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  93. package/examples/javascript/flow-chord/package.json +1 -1
  94. package/examples/javascript/flow-chord-directed/package.json +1 -1
  95. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  96. package/examples/javascript/flow-sankey/package.json +1 -1
  97. package/examples/javascript/gauge/package.json +1 -1
  98. package/examples/javascript/gauge-bands/package.json +1 -1
  99. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  100. package/examples/javascript/hierarchy-pack/package.json +1 -1
  101. package/examples/javascript/hierarchy-partition/package.json +1 -1
  102. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  103. package/examples/javascript/hierarchy-tree/package.json +1 -1
  104. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  105. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  106. package/examples/javascript/jest/package.json +1 -1
  107. package/examples/javascript/json-pie/package.json +1 -1
  108. package/examples/javascript/json-xy/package.json +1 -1
  109. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  110. package/examples/javascript/map-clustered-points/package.json +1 -1
  111. package/examples/javascript/map-day-and-night/package.json +1 -1
  112. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  113. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  114. package/examples/javascript/map-with-bubbles/package.json +1 -1
  115. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  116. package/examples/javascript/misc-40-charts/package.json +1 -1
  117. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  118. package/examples/javascript/pie-chart/package.json +1 -1
  119. package/examples/javascript/pie-donut-chart/package.json +1 -1
  120. package/examples/javascript/pie-variable-radius/package.json +1 -1
  121. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  122. package/examples/javascript/radar-heat-map/package.json +1 -1
  123. package/examples/javascript/radar-line/package.json +1 -1
  124. package/examples/javascript/radar-time-line/package.json +1 -1
  125. package/examples/javascript/sliced-funnel/package.json +1 -1
  126. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  127. package/examples/javascript/sliced-pyramid/package.json +1 -1
  128. package/examples/javascript/stock-chart/package.json +1 -1
  129. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  130. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  131. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  132. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  133. package/examples/javascript/stock-chart-live/package.json +1 -1
  134. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  135. package/examples/javascript/venn-diagram/package.json +1 -1
  136. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  137. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  138. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  139. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  140. package/examples/javascript/xy-bubble/package.json +1 -1
  141. package/examples/javascript/xy-candlestick/package.json +1 -1
  142. package/examples/javascript/xy-clustered-column/package.json +1 -1
  143. package/examples/javascript/xy-column/package.json +1 -1
  144. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  145. package/examples/javascript/xy-data-grouping/package.json +1 -1
  146. package/examples/javascript/xy-draggable-range/package.json +1 -1
  147. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  148. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  149. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  150. package/examples/javascript/xy-line/package.json +1 -1
  151. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  152. package/examples/javascript/xy-live-data/package.json +1 -1
  153. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  154. package/examples/javascript/xy-ohlc/package.json +1 -1
  155. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  156. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  157. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  158. package/examples/javascript/xy-stacked-column/package.json +1 -1
  159. package/examples/javascript/xy-stacked-step/package.json +1 -1
  160. package/examples/javascript/xy-stock/package.json +1 -1
  161. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  162. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  163. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  164. package/examples/typescript/flow-chord/package.json +1 -1
  165. package/examples/typescript/flow-chord-directed/package.json +1 -1
  166. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  167. package/examples/typescript/flow-sankey/package.json +1 -1
  168. package/examples/typescript/gauge/package.json +1 -1
  169. package/examples/typescript/gauge-bands/package.json +1 -1
  170. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  171. package/examples/typescript/hierarchy-pack/package.json +1 -1
  172. package/examples/typescript/hierarchy-partition/package.json +1 -1
  173. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  174. package/examples/typescript/hierarchy-tree/package.json +1 -1
  175. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  176. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  177. package/examples/typescript/jest/package.json +1 -1
  178. package/examples/typescript/json-pie/package.json +1 -1
  179. package/examples/typescript/json-xy/package.json +1 -1
  180. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  181. package/examples/typescript/map-clustered-points/package.json +1 -1
  182. package/examples/typescript/map-day-and-night/package.json +1 -1
  183. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  184. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  185. package/examples/typescript/map-with-bubbles/package.json +1 -1
  186. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  187. package/examples/typescript/misc-40-charts/package.json +1 -1
  188. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  189. package/examples/typescript/pie-chart/package.json +1 -1
  190. package/examples/typescript/pie-donut-chart/package.json +1 -1
  191. package/examples/typescript/pie-variable-radius/package.json +1 -1
  192. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  193. package/examples/typescript/radar-heat-map/package.json +1 -1
  194. package/examples/typescript/radar-line/package.json +1 -1
  195. package/examples/typescript/radar-time-line/package.json +1 -1
  196. package/examples/typescript/sliced-funnel/package.json +1 -1
  197. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  198. package/examples/typescript/sliced-pyramid/package.json +1 -1
  199. package/examples/typescript/stock-chart/package.json +1 -1
  200. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  201. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  202. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  203. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  204. package/examples/typescript/stock-chart-live/package.json +1 -1
  205. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  206. package/examples/typescript/venn-diagram/package.json +1 -1
  207. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  208. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  209. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  210. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  211. package/examples/typescript/xy-bubble/package.json +1 -1
  212. package/examples/typescript/xy-candlestick/package.json +1 -1
  213. package/examples/typescript/xy-clustered-column/package.json +1 -1
  214. package/examples/typescript/xy-column/package.json +1 -1
  215. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  216. package/examples/typescript/xy-data-grouping/package.json +1 -1
  217. package/examples/typescript/xy-draggable-range/package.json +1 -1
  218. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  219. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  220. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  221. package/examples/typescript/xy-line/package.json +1 -1
  222. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  223. package/examples/typescript/xy-live-data/package.json +1 -1
  224. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  225. package/examples/typescript/xy-ohlc/package.json +1 -1
  226. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  227. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  228. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  229. package/examples/typescript/xy-stacked-column/package.json +1 -1
  230. package/examples/typescript/xy-stacked-step/package.json +1 -1
  231. package/examples/typescript/xy-stock/package.json +1 -1
  232. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  233. package/package.json +1 -1
  234. package/stock.d.ts +1 -0
  235. package/stock.d.ts.map +1 -1
  236. package/stock.js +1 -0
  237. package/stock.js.map +1 -1
@@ -837,7 +837,7 @@ export class MapChart extends SerialChart {
837
837
  const easing = this.get("animationEasing");
838
838
  const zoomLevel = this.get("zoomLevel", 1);
839
839
  if (this.get("centerMapOnZoomOut") && level == this.get("homeZoomLevel", 1)) {
840
- point = this.convert(this.homeGeoPoint());
840
+ point = this.convert(this.homeGeoPoint(), this.get("homeRotationX"), this.get("homeRotationY"));
841
841
  center = true;
842
842
  }
843
843
  let x = point.x;
@@ -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 { MapPointSeries } from \"./MapPointSeries\";\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\";\nimport type { DataItem } from \"../../core/render/Component\";\nimport type { IMapPolygonSeriesDataItem } from \"./MapPolygonSeries\";\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 * current x position of a map\n\t */\n\ttranslateX?: number;\n\n\t/**\n\t * current y position of a map\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 horizontal mouse wheel (only some mouses do have such a wheel)\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.\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/home rotationX.\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\thomeRotationX?: number;\n\n\t/**\n\t * Initial/home rotationY.\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\thomeRotationY?: 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\n\t * initialized.\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\tpublic _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 a geoPoint of the current zoom position.\n\t * \n\t * You can later use it to restore zoom position, e.g.: `chart.zoomToGeoPoint(geoPoint, zoomLevel, true)`.\n\t *\n\t * @since 5.2.19\n\t */\n\tpublic geoPoint() {\n\t\treturn this.invert(this.seriesContainer.toGlobal({ x: this.width() / 2, y: this.height() / 2 }));\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\t\t\tif (this._wheelDp) {\n\t\t\t\tthis._wheelDp.dispose();\n\t\t\t}\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\t// Ignore wheel event if it is happening on a non-chart element, e.g. if\n\t\t\t\t// some page element is over the chart.\n\t\t\t\tif ($utils.isLocalEvent(wheelEvent, this)) {\n\t\t\t\t\twheelEvent.preventDefault();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\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\tconst previousGeometries = this._geometryColection.geometries;\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\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\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\n\t\t\t\t\t\tthis._centerX = translate[0];\n\t\t\t\t\t\tthis._centerY = translate[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.markDirtyProjection();\n\n\t\t\t\tconst geoPath = this.getPrivate(\"geoPath\");\n\t\t\t\tthis._mapBounds = geoPath.bounds(this._geometryColection);\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\n\t\t\tthis.series.each((series) => {\n\t\t\t\tif (series.isType<MapPointSeries>(\"MapPointSeries\")) {\n\t\t\t\t\tif (series.get(\"autoScale\")) {\n\t\t\t\t\t\t$array.each(series.dataItems, (dataItem) => {\n\t\t\t\t\t\t\tconst bullets = dataItem.bullets;\n\t\t\t\t\t\t\tif (bullets) {\n\t\t\t\t\t\t\t\t$array.each(bullets, (bullet) => {\n\t\t\t\t\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\n\t\t\t\t\t\t\t\t\tif (sprite) {\n\t\t\t\t\t\t\t\t\t\tsprite.set(\"scale\", this.get(\"zoomLevel\"));\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\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\n\t\tif (this.isDirty(\"pinchZoom\") || this.get(\"panX\") || this.get(\"panY\")) {\n\t\t\tthis._setUpTouch();\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, this.get(\"homeRotationX\"), this.get(\"homeRotationY\"));\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\tsuper._updateChildren();\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\tprotected _setUpTouch(): void {\n\t\tif (!this.chartContainer._display.cancelTouch) {\n\t\t\tthis.chartContainer._display.cancelTouch = (this.get(\"pinchZoom\") || this.get(\"panX\") || this.get(\"panY\")) ? true : false;\n\t\t}\n\t}\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\tthis.children.push(this.bulletsContainer);\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\tthis._setUpTouch();\n\n\t}\n\n\tprotected _handleChartDown(event: ISpritePointerEvent) {\n\n\t\tthis._downZoomLevel = this.get(\"zoomLevel\", 1);\n\t\tconst downPoints = this.chartContainer._downPoints;\n\n\t\tlet count = $object.keys(downPoints).length;\n\t\tif (count == 1) {\n\t\t\t// workaround to solve a problem when events are added to some children of chart container (rotation stops working)\n\t\t\tlet downPoint = downPoints[1];\n\t\t\tif (!downPoint) {\n\t\t\t\tdownPoint = downPoints[0];\n\t\t\t}\t\t\t\n\n\t\t\tif (downPoint && (downPoint.x == event.point.x && downPoint.y == event.point.y)) {\n\t\t\t\tcount = 0;\n\t\t\t}\n\t\t}\n\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\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 * @param rotationX X rotation of a map if different from current\n\t * @param rotationY Y rotation of a map if different from current\n\t * \n\t * @return Screen coordinates\n\t */\n\tpublic convert(point: IGeoPoint, rotationX?: number, rotationY?: number): IPoint {\n\t\tlet projection = this.get(\"projection\")!;\n\t\tlet xy;\n\n\t\tif (!projection.rotate) {\n\t\t\trotationX = undefined;\n\t\t\trotationY = undefined;\n\t\t}\n\n\t\tif (rotationX != null || rotationY != null) {\n\t\t\tif (rotationX == null) {\n\t\t\t\trotationX = 0;\n\t\t\t}\n\t\t\tif (rotationY == null) {\n\t\t\t\trotationY = 0;\n\t\t\t}\n\t\t\tlet rotation = projection.rotate();\n\t\t\tprojection.rotate([rotationX, rotationY, 0]);\n\t\t\txy = projection([point.longitude, point.latitude]);\n\t\t\tprojection.rotate(rotation);\n\t\t}\n\t\telse {\n\t\t\txy = projection([point.longitude, point.latitude]);\n\t\t}\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\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 * @param rotationX X rotation of a map at the end of zoom\n\t * @param rotationY Y rotation of a map at the end of zoom\n\t */\n\tpublic zoomToGeoBounds(geoBounds: { left: number, right: number, top: number, bottom: number }, duration?: number, rotationX?: number, rotationY?: 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 }, rotationX, rotationY);\n\t\tlet p1 = this.convert({ longitude: geoBounds.right, latitude: geoBounds.bottom }, rotationX, rotationY);\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\tif (rotationX != null || rotationY != null) {\n\t\t\tthis.rotate(rotationX, rotationY);\n\t\t}\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}\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 * @param rotationX X rotation of a map at the end of zoom\n\t * @param rotationY Y rotation of a map at the end of zoom\n\t * \n\t */\n\tpublic zoomToGeoPoint(geoPoint: IGeoPoint, level: number, center?: boolean, duration?: number, rotationX?: number, rotationY?: number): Animation<this[\"_settings\"][\"zoomLevel\"]> | undefined {\n\n\t\tlet xy = this.convert(geoPoint, rotationX, rotationY);\n\n\t\tif (rotationX != null || rotationY != null) {\n\t\t\tthis.rotate(rotationX, rotationY, duration);\n\t\t}\n\n\t\tif (xy) {\n\t\t\treturn this.zoomToPoint(xy, level, center, duration);\n\t\t}\n\t}\n\n\tpublic rotate(rotationX?: number, rotationY?: number, duration?: number) {\n\t\tconst projection = this.get(\"projection\")!;\n\t\tif (!projection.rotate) {\n\t\t}\n\t\telse {\n\t\t\tif (!$type.isNumber(duration)) {\n\t\t\t\tduration = this.get(\"animationDuration\", 0);\n\t\t\t}\n\n\t\t\tconst easing = this.get(\"animationEasing\");\n\t\t\tif (rotationX != null) {\n\t\t\t\tthis.animate({ key: \"rotationX\", to: rotationX, duration: duration, easing: easing });\n\t\t\t}\n\t\t\tif (rotationY != null) {\n\t\t\t\tthis.animate({ key: \"rotationY\", to: rotationY, duration: duration, easing: easing });\n\t\t\t}\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\t/**\n\t * Returns area of a mapPolygon in square pixels.\n\t */\n\tpublic getArea(dataItem: DataItem<IMapPolygonSeriesDataItem>): number {\n\t\tconst geoPath = this.getPrivate(\"geoPath\");\n\t\tconst geometry = dataItem.get(\"geometry\");\n\t\tif (geometry) {\n\t\t\treturn geoPath.area(geometry);\n\t\t}\n\t\treturn 0;\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 { MapPointSeries } from \"./MapPointSeries\";\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\";\nimport type { DataItem } from \"../../core/render/Component\";\nimport type { IMapPolygonSeriesDataItem } from \"./MapPolygonSeries\";\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 * current x position of a map\n\t */\n\ttranslateX?: number;\n\n\t/**\n\t * current y position of a map\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 horizontal mouse wheel (only some mouses do have such a wheel)\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.\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/home rotationX.\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\thomeRotationX?: number;\n\n\t/**\n\t * Initial/home rotationY.\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\thomeRotationY?: 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\n\t * initialized.\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\tpublic _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 a geoPoint of the current zoom position.\n\t * \n\t * You can later use it to restore zoom position, e.g.: `chart.zoomToGeoPoint(geoPoint, zoomLevel, true)`.\n\t *\n\t * @since 5.2.19\n\t */\n\tpublic geoPoint() {\n\t\treturn this.invert(this.seriesContainer.toGlobal({ x: this.width() / 2, y: this.height() / 2 }));\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\t\t\tif (this._wheelDp) {\n\t\t\t\tthis._wheelDp.dispose();\n\t\t\t}\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\t// Ignore wheel event if it is happening on a non-chart element, e.g. if\n\t\t\t\t// some page element is over the chart.\n\t\t\t\tif ($utils.isLocalEvent(wheelEvent, this)) {\n\t\t\t\t\twheelEvent.preventDefault();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\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\tconst previousGeometries = this._geometryColection.geometries;\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\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\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\n\t\t\t\t\t\tthis._centerX = translate[0];\n\t\t\t\t\t\tthis._centerY = translate[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.markDirtyProjection();\n\n\t\t\t\tconst geoPath = this.getPrivate(\"geoPath\");\n\t\t\t\tthis._mapBounds = geoPath.bounds(this._geometryColection);\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\n\t\t\tthis.series.each((series) => {\n\t\t\t\tif (series.isType<MapPointSeries>(\"MapPointSeries\")) {\n\t\t\t\t\tif (series.get(\"autoScale\")) {\n\t\t\t\t\t\t$array.each(series.dataItems, (dataItem) => {\n\t\t\t\t\t\t\tconst bullets = dataItem.bullets;\n\t\t\t\t\t\t\tif (bullets) {\n\t\t\t\t\t\t\t\t$array.each(bullets, (bullet) => {\n\t\t\t\t\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\n\t\t\t\t\t\t\t\t\tif (sprite) {\n\t\t\t\t\t\t\t\t\t\tsprite.set(\"scale\", this.get(\"zoomLevel\"));\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\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\n\t\tif (this.isDirty(\"pinchZoom\") || this.get(\"panX\") || this.get(\"panY\")) {\n\t\t\tthis._setUpTouch();\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, this.get(\"homeRotationX\"), this.get(\"homeRotationY\"));\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\tsuper._updateChildren();\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\tprotected _setUpTouch(): void {\n\t\tif (!this.chartContainer._display.cancelTouch) {\n\t\t\tthis.chartContainer._display.cancelTouch = (this.get(\"pinchZoom\") || this.get(\"panX\") || this.get(\"panY\")) ? true : false;\n\t\t}\n\t}\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\tthis.children.push(this.bulletsContainer);\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\tthis._setUpTouch();\n\n\t}\n\n\tprotected _handleChartDown(event: ISpritePointerEvent) {\n\n\t\tthis._downZoomLevel = this.get(\"zoomLevel\", 1);\n\t\tconst downPoints = this.chartContainer._downPoints;\n\n\t\tlet count = $object.keys(downPoints).length;\n\t\tif (count == 1) {\n\t\t\t// workaround to solve a problem when events are added to some children of chart container (rotation stops working)\n\t\t\tlet downPoint = downPoints[1];\n\t\t\tif (!downPoint) {\n\t\t\t\tdownPoint = downPoints[0];\n\t\t\t}\t\t\t\n\n\t\t\tif (downPoint && (downPoint.x == event.point.x && downPoint.y == event.point.y)) {\n\t\t\t\tcount = 0;\n\t\t\t}\n\t\t}\n\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\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 * @param rotationX X rotation of a map if different from current\n\t * @param rotationY Y rotation of a map if different from current\n\t * \n\t * @return Screen coordinates\n\t */\n\tpublic convert(point: IGeoPoint, rotationX?: number, rotationY?: number): IPoint {\n\t\tlet projection = this.get(\"projection\")!;\n\t\tlet xy;\n\n\t\tif (!projection.rotate) {\n\t\t\trotationX = undefined;\n\t\t\trotationY = undefined;\n\t\t}\n\n\t\tif (rotationX != null || rotationY != null) {\n\t\t\tif (rotationX == null) {\n\t\t\t\trotationX = 0;\n\t\t\t}\n\t\t\tif (rotationY == null) {\n\t\t\t\trotationY = 0;\n\t\t\t}\n\t\t\tlet rotation = projection.rotate();\n\t\t\tprojection.rotate([rotationX, rotationY, 0]);\n\t\t\txy = projection([point.longitude, point.latitude]);\n\t\t\tprojection.rotate(rotation);\n\t\t}\n\t\telse {\n\t\t\txy = projection([point.longitude, point.latitude]);\n\t\t}\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\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 * @param rotationX X rotation of a map at the end of zoom\n\t * @param rotationY Y rotation of a map at the end of zoom\n\t */\n\tpublic zoomToGeoBounds(geoBounds: { left: number, right: number, top: number, bottom: number }, duration?: number, rotationX?: number, rotationY?: 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 }, rotationX, rotationY);\n\t\tlet p1 = this.convert({ longitude: geoBounds.right, latitude: geoBounds.bottom }, rotationX, rotationY);\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\tif (rotationX != null || rotationY != null) {\n\t\t\tthis.rotate(rotationX, rotationY);\n\t\t}\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(), this.get(\"homeRotationX\"), this.get(\"homeRotationY\"));\n\t\t\tcenter = true;\n\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 * @param rotationX X rotation of a map at the end of zoom\n\t * @param rotationY Y rotation of a map at the end of zoom\n\t * \n\t */\n\tpublic zoomToGeoPoint(geoPoint: IGeoPoint, level: number, center?: boolean, duration?: number, rotationX?: number, rotationY?: number): Animation<this[\"_settings\"][\"zoomLevel\"]> | undefined {\n\n\t\tlet xy = this.convert(geoPoint, rotationX, rotationY);\n\n\t\tif (rotationX != null || rotationY != null) {\n\t\t\tthis.rotate(rotationX, rotationY, duration);\n\t\t}\n\n\t\tif (xy) {\n\t\t\treturn this.zoomToPoint(xy, level, center, duration);\n\t\t}\n\t}\n\n\tpublic rotate(rotationX?: number, rotationY?: number, duration?: number) {\n\t\tconst projection = this.get(\"projection\")!;\n\t\tif (!projection.rotate) {\n\t\t}\n\t\telse {\n\t\t\tif (!$type.isNumber(duration)) {\n\t\t\t\tduration = this.get(\"animationDuration\", 0);\n\t\t\t}\n\n\t\t\tconst easing = this.get(\"animationEasing\");\n\t\t\tif (rotationX != null) {\n\t\t\t\tthis.animate({ key: \"rotationX\", to: rotationX, duration: duration, easing: easing });\n\t\t\t}\n\t\t\tif (rotationY != null) {\n\t\t\t\tthis.animate({ key: \"rotationY\", to: rotationY, duration: duration, easing: easing });\n\t\t\t}\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\t/**\n\t * Returns area of a mapPolygon in square pixels.\n\t */\n\tpublic getArea(dataItem: DataItem<IMapPolygonSeriesDataItem>): number {\n\t\tconst geoPath = this.getPrivate(\"geoPath\");\n\t\tconst geometry = dataItem.get(\"geometry\");\n\t\tif (geometry) {\n\t\t\treturn geoPath.area(geometry);\n\t\t}\n\t\treturn 0;\n\t}\n}\n"]}
@@ -99,8 +99,10 @@ export class MapPolygon extends Graphics {
99
99
  }
100
100
  }
101
101
  }
102
- let center = $polylabel(coordinates);
103
- return { longitude: center[0], latitude: center[1] };
102
+ if (coordinates) {
103
+ let center = $polylabel(coordinates);
104
+ return { longitude: center[0], latitude: center[1] };
105
+ }
104
106
  }
105
107
  return { longitude: 0, latitude: 0 };
106
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MapPolygon.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/MapPolygon.ts"],"names":[],"mappings":"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","sourcesContent":["import { Graphics, IGraphicsSettings, IGraphicsPrivate } from \"../../core/render/Graphics\";\nimport type { MapPolygonSeries } from \"./MapPolygonSeries\";\nimport type { IGeoPoint } from \"../../core/util/IGeoPoint\";\nimport type { IPoint } from \"../../core/util/IPoint\";\nimport * as $mapUtils from \"./MapUtils\";\nimport $polylabel from \"polylabel\";\nimport { geoArea } from \"d3-geo\";\n\nexport interface IMapPolygonSettings extends IGraphicsSettings {\n\n\t/**\n\t * A GeoJSON representation of the polygons geometry.\n\t */\n\tgeometry?: GeoJSON.MultiPolygon | GeoJSON.Polygon;\n\n\t/**\n\t * @todo needs description\n\t * @default 0.5\n\t */\n\tprecision?: number;\n\n}\n\nexport interface IMapPolygonPrivate extends IGraphicsPrivate {\n}\n\n/**\n * A polygon in a [[MapPolygonSeries]].\n */\nexport class MapPolygon extends Graphics {\n\n\tdeclare public _settings: IMapPolygonSettings;\n\tdeclare public _privateSettings: IMapPolygonPrivate;\n\n\tpublic static className: string = \"MapPolygon\";\n\tpublic static classNames: Array<string> = Graphics.classNames.concat([MapPolygon.className]);\n\tprotected _projectionDirty: boolean = false;\n\n\t/**\n\t * A [[MapPolygonSeries]] polygon belongs to.\n\t */\n\tpublic series: MapPolygonSeries | undefined;\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\n\t\tif (this._projectionDirty || this.isDirty(\"geometry\") || this.isDirty(\"precision\")) {\n\t\t\tconst geometry = this.get(\"geometry\")!;\n\n\t\t\tif (geometry) {\n\t\t\t\tconst series = this.series;\n\t\t\t\tif (series) {\n\t\t\t\t\tconst projection = series.projection();\n\t\t\t\t\tif (projection) {\n\t\t\t\t\t\tprojection.precision(this.get(\"precision\", 0.5));\n\t\t\t\t\t}\n\n\t\t\t\t\tconst geoPath = series.geoPath();\n\n\t\t\t\t\tif (geoPath) {\n\t\t\t\t\t\tthis._clear = true;\n\n\t\t\t\t\t\tthis.set(\"draw\", (_display) => {\n\t\t\t\t\t\t\tgeoPath.context(this._display as any);\n\t\t\t\t\t\t\tgeoPath(geometry);\n\t\t\t\t\t\t\tgeoPath.context(null);\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (this.isHover()) {\n\t\t\t\t\t\t\tthis.showTooltip();\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\t/**\n\t * @ignore\n\t */\n\tpublic markDirtyProjection() {\n\t\tthis.markDirty();\n\t\tthis._projectionDirty = true;\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._projectionDirty = false;\n\t}\n\n\t/**\n\t * Returns latitude/longitude of the geometrical center of the polygon.\n\t *\n\t * @return Center\n\t */\n\tpublic geoCentroid(): IGeoPoint {\n\t\tconst geometry = this.get(\"geometry\")!;\n\t\tif (geometry) {\n\t\t\treturn $mapUtils.getGeoCentroid(geometry);\n\t\t}\n\t\telse {\n\t\t\treturn { latitude: 0, longitude: 0 };\n\t\t}\n\t}\n\n\t/**\n\t * Returns latitude/longitude of the visual center of the polygon.\n\t *\n\t * @return Center\n\t */\n\tpublic visualCentroid(): IGeoPoint {\n\n\t\tlet biggestArea = 0;\n\t\tlet coordinates: number[][][] = [];\n\t\tconst geometry = this.get(\"geometry\")!;\n\n\t\tif (geometry) {\n\t\t\tif (geometry.type == \"Polygon\") {\n\t\t\t\tcoordinates = geometry.coordinates as number[][][];\n\t\t\t}\n\t\t\telse if (geometry.type == \"MultiPolygon\") {\n\t\t\t\tfor (let i = 0; i < geometry.coordinates.length; i++) {\n\t\t\t\t\tlet coords = geometry.coordinates[i] as number[][][];\n\t\t\t\t\tlet area = geoArea({ type: \"Polygon\", coordinates: coords });\n\t\t\t\t\tif (area > biggestArea) {\n\t\t\t\t\t\tcoordinates = coords;\n\t\t\t\t\t\tbiggestArea = area;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet center = $polylabel(coordinates as number[][][]);\n\t\t\treturn { longitude: center[0], latitude: center[1] };\n\n\t\t}\n\t\treturn { longitude: 0, latitude: 0 };\n\t}\n\n\n\tpublic _getTooltipPoint(): IPoint {\n\t\tconst series = this.series;\n\n\t\tif (series) {\n\t\t\tconst projection = series.projection();\n\t\t\tif (projection) {\n\t\t\t\tconst geoPoint = this.visualCentroid();\n\t\t\t\tconst xy = projection([geoPoint.longitude, geoPoint.latitude]);\n\n\t\t\t\tif (xy) {\n\t\t\t\t\treturn { x: xy[0], y: xy[1] }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn { x: 0, y: 0 };\n\t}\n}\n"]}
1
+ {"version":3,"file":"MapPolygon.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/MapPolygon.ts"],"names":[],"mappings":"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","sourcesContent":["import { Graphics, IGraphicsSettings, IGraphicsPrivate } from \"../../core/render/Graphics\";\nimport type { MapPolygonSeries } from \"./MapPolygonSeries\";\nimport type { IGeoPoint } from \"../../core/util/IGeoPoint\";\nimport type { IPoint } from \"../../core/util/IPoint\";\nimport * as $mapUtils from \"./MapUtils\";\nimport $polylabel from \"polylabel\";\nimport { geoArea } from \"d3-geo\";\n\nexport interface IMapPolygonSettings extends IGraphicsSettings {\n\n\t/**\n\t * A GeoJSON representation of the polygons geometry.\n\t */\n\tgeometry?: GeoJSON.MultiPolygon | GeoJSON.Polygon;\n\n\t/**\n\t * @todo needs description\n\t * @default 0.5\n\t */\n\tprecision?: number;\n\n}\n\nexport interface IMapPolygonPrivate extends IGraphicsPrivate {\n}\n\n/**\n * A polygon in a [[MapPolygonSeries]].\n */\nexport class MapPolygon extends Graphics {\n\n\tdeclare public _settings: IMapPolygonSettings;\n\tdeclare public _privateSettings: IMapPolygonPrivate;\n\n\tpublic static className: string = \"MapPolygon\";\n\tpublic static classNames: Array<string> = Graphics.classNames.concat([MapPolygon.className]);\n\tprotected _projectionDirty: boolean = false;\n\n\t/**\n\t * A [[MapPolygonSeries]] polygon belongs to.\n\t */\n\tpublic series: MapPolygonSeries | undefined;\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\n\t\tif (this._projectionDirty || this.isDirty(\"geometry\") || this.isDirty(\"precision\")) {\n\t\t\tconst geometry = this.get(\"geometry\")!;\n\n\t\t\tif (geometry) {\n\t\t\t\tconst series = this.series;\n\t\t\t\tif (series) {\n\t\t\t\t\tconst projection = series.projection();\n\t\t\t\t\tif (projection) {\n\t\t\t\t\t\tprojection.precision(this.get(\"precision\", 0.5));\n\t\t\t\t\t}\n\n\t\t\t\t\tconst geoPath = series.geoPath();\n\n\t\t\t\t\tif (geoPath) {\n\t\t\t\t\t\tthis._clear = true;\n\n\t\t\t\t\t\tthis.set(\"draw\", (_display) => {\n\t\t\t\t\t\t\tgeoPath.context(this._display as any);\n\t\t\t\t\t\t\tgeoPath(geometry);\n\t\t\t\t\t\t\tgeoPath.context(null);\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (this.isHover()) {\n\t\t\t\t\t\t\tthis.showTooltip();\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\t/**\n\t * @ignore\n\t */\n\tpublic markDirtyProjection() {\n\t\tthis.markDirty();\n\t\tthis._projectionDirty = true;\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._projectionDirty = false;\n\t}\n\n\t/**\n\t * Returns latitude/longitude of the geometrical center of the polygon.\n\t *\n\t * @return Center\n\t */\n\tpublic geoCentroid(): IGeoPoint {\n\t\tconst geometry = this.get(\"geometry\")!;\n\t\tif (geometry) {\n\t\t\treturn $mapUtils.getGeoCentroid(geometry);\n\t\t}\n\t\telse {\n\t\t\treturn { latitude: 0, longitude: 0 };\n\t\t}\n\t}\n\n\t/**\n\t * Returns latitude/longitude of the visual center of the polygon.\n\t *\n\t * @return Center\n\t */\n\tpublic visualCentroid(): IGeoPoint {\n\n\t\tlet biggestArea = 0;\n\t\tlet coordinates: number[][][] = [];\n\t\tconst geometry = this.get(\"geometry\")!;\n\n\t\tif (geometry) {\n\t\t\tif (geometry.type == \"Polygon\") {\n\t\t\t\tcoordinates = geometry.coordinates as number[][][];\n\t\t\t}\n\t\t\telse if (geometry.type == \"MultiPolygon\") {\n\t\t\t\tfor (let i = 0; i < geometry.coordinates.length; i++) {\n\t\t\t\t\tlet coords = geometry.coordinates[i] as number[][][];\n\t\t\t\t\tlet area = geoArea({ type: \"Polygon\", coordinates: coords });\n\t\t\t\t\tif (area > biggestArea) {\n\t\t\t\t\t\tcoordinates = coords;\n\t\t\t\t\t\tbiggestArea = area;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(coordinates){\n\t\t\t\tlet center = $polylabel(coordinates as number[][][]);\n\t\t\t\treturn { longitude: center[0], latitude: center[1] };\n\t\t\t}\n\t\t}\n\t\treturn { longitude: 0, latitude: 0 };\n\t}\n\n\n\tpublic _getTooltipPoint(): IPoint {\n\t\tconst series = this.series;\n\n\t\tif (series) {\n\t\t\tconst projection = series.projection();\n\t\t\tif (projection) {\n\t\t\t\tconst geoPoint = this.visualCentroid();\n\t\t\t\tconst xy = projection([geoPoint.longitude, geoPoint.latitude]);\n\n\t\t\t\tif (xy) {\n\t\t\t\t\treturn { x: xy[0], y: xy[1] }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn { x: 0, y: 0 };\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsModal.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/stock/SettingsModal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAA6B,MAAM,wBAAwB,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAItD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAQtD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAE7D;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;CAEvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;CAC3D;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IAEzD;;OAEG;IACH,IAAI,EAAE;QACL,QAAQ,CAAC,EAAE,GAAG,CAAC;QACf,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;KACrC,CAAA;CAED;AAaD;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACvC,OAAc,SAAS,EAAE,MAAM,CAAmB;IAClD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA8C;IAEtE,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC;IAE7C,SAAS,CAAC,gBAAgB,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAM;IAC1D,SAAS,CAAC,eAAe,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjD,SAAS,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;IAEvC,SAAS,CAAC,SAAS;IAIZ,cAAc;IAQrB;;;;OAIG;IACI,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAK7C;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI;IAkHzC,OAAO,CAAC,WAAW;IAuJnB,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,QAAQ;IAgBhB;;OAEG;IACI,KAAK,IAAI,IAAI;IAUpB;;OAEG;IACI,MAAM,IAAI,IAAI;IASrB;;OAEG;IACI,KAAK,IAAI,IAAI;IAQpB,OAAO,CAAC,cAAc;CAItB"}
1
+ {"version":3,"file":"SettingsModal.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/stock/SettingsModal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAA6B,MAAM,wBAAwB,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAItD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAQtD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAE7D;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;CAEvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;CAC3D;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IAEzD;;OAEG;IACH,IAAI,EAAE;QACL,QAAQ,CAAC,EAAE,GAAG,CAAC;QACf,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;KACrC,CAAA;CAED;AAaD;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACvC,OAAc,SAAS,EAAE,MAAM,CAAmB;IAClD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA8C;IAEtE,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC;IAE7C,SAAS,CAAC,gBAAgB,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAM;IAC1D,SAAS,CAAC,eAAe,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjD,SAAS,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;IAEvC,SAAS,CAAC,SAAS;IAIZ,cAAc;IAQrB;;;;OAIG;IACI,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAK7C;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI;IAkHzC,OAAO,CAAC,WAAW;IA4JnB,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,QAAQ;IAgBhB;;OAEG;IACI,KAAK,IAAI,IAAI;IAUpB;;OAEG;IACI,MAAM,IAAI,IAAI;IASrB;;OAEG;IACI,KAAK,IAAI,IAAI;IAQpB,OAAO,CAAC,cAAc;CAItB"}
@@ -195,7 +195,6 @@ export class SettingsModal extends Modal {
195
195
  const option = input.options[input.selectedIndex];
196
196
  const extTarget = option.getAttribute("data-target");
197
197
  if (extTarget) {
198
- console.log(settingInputs[extTarget], option.getAttribute("data-target-value"));
199
198
  settingInputs[extTarget].value = option.getAttribute("data-target-value") + "";
200
199
  }
201
200
  });
@@ -292,6 +291,11 @@ export class SettingsModal extends Modal {
292
291
  }));
293
292
  // Open modal
294
293
  this.open();
294
+ // Auto-focus Save button
295
+ this.setTimeout(() => {
296
+ // Delayed so that pressing ENTER in the list does not trigger save, too
297
+ saveButton.focus();
298
+ }, 10);
295
299
  }
296
300
  getDropdown(setting, currentValue) {
297
301
  const element = document.createElement("select");
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsModal.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/stock/SettingsModal.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Indicator, IIndicatorEditableSetting } from \"./indicators/Indicator\";\r\nimport type { StockChart } from \"./StockChart\";\r\nimport type { XYSeries } from \"../xy/series/XYSeries\";\r\n\r\nimport { CandlestickSeries } from \"../xy/series/CandlestickSeries\";\r\nimport { LineSeries } from \"../xy/series/LineSeries\";\r\nimport { Modal, IModalSettings, IModalPrivate, IModalEvents } from \"../../core/util/Modal\";\r\nimport { ColorControl } from \"./toolbar/ColorControl\";\r\n\r\nimport * as $array from \"../../core/util/Array\";\r\nimport * as $object from \"../../core/util/Object\";\r\nimport * as $utils from \"../../core/util/Utils\";\r\nimport * as $type from \"../../core/util/Type\";\r\n\r\n\r\nexport interface ISettingsModalSettings extends IModalSettings {\r\n\r\n\t/**\r\n\t * A target [[StockChart]].\r\n\t */\r\n\tstockChart: StockChart;\r\n\r\n}\r\n\r\nexport interface ISettingsModalPrivate extends IModalPrivate {\r\n}\r\n\r\nexport interface ISettingsModalEvents extends IModalEvents {\r\n\r\n\t/**\r\n\t * Invoked when modal is closed/saved.\r\n\t */\r\n\tdone: {\r\n\t\tsettings?: any,\r\n\t\tsettingsTarget?: Indicator | XYSeries\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * @ignore\r\n */\r\ninterface ISeriesEditableSetting extends IIndicatorEditableSetting {\r\n\tid?: string;\r\n\ttarget?: any;\r\n\tadditionalKeys?: string[];\r\n\tcurrentValue?: any;\r\n\tinvalidateTarget?: XYSeries;\r\n}\r\n\r\n/**\r\n * Used to display a modal dialog with HTML content.\r\n */\r\nexport class SettingsModal extends Modal {\r\n\tpublic static className: string = \"SettingsModal\";\r\n\tpublic static classNames: Array<string> = Modal.classNames.concat([Modal.className]);\r\n\r\n\tdeclare public _settings: ISettingsModalSettings;\r\n\tdeclare public _privateSettings: ISettingsModalPrivate;\r\n\tdeclare public _events: ISettingsModalEvents;\r\n\r\n\tprotected _updatedSettings: { [index: string]: any } = {};\r\n\tprotected _settingsTarget?: Indicator | XYSeries;\r\n\tprotected _colorControl?: ColorControl;\r\n\r\n\tprotected _afterNew() {\r\n\t\tsuper._afterNew();\r\n\t}\r\n\r\n\tpublic _beforeChanged() {\r\n\t\tsuper._beforeChanged();\r\n\r\n\t\t// if (this.isDirty(\"content\")) {\r\n\t\t// \tthis.getPrivate(\"content\").innerHTML = this.get(\"content\", \"\");\r\n\t\t// }\r\n\t}\r\n\r\n\t/**\r\n\t * Opens settings modal for an [[Indicator]].\r\n\t * \r\n\t * @param target Target indicator\r\n\t */\r\n\tpublic openIndicator(target: Indicator): void {\r\n\t\tthis._settingsTarget = target;\r\n\t\tthis.initContent(target._editableSettings, target);\r\n\t}\r\n\r\n\t/**\r\n\t * Opens settings editing for the any [[XYSeries]].\r\n\t * \r\n\t * @param series target series\r\n\t */\r\n\tpublic openSeries(series: XYSeries): void {\r\n\t\tthis._settingsTarget = series;\r\n\r\n\t\tconst l = this._root.language;\r\n\t\tconst stockChart = this.get(\"stockChart\");\r\n\t\tconst isline = series instanceof LineSeries;\r\n\r\n\t\tlet settings: ISeriesEditableSetting[] = [];\r\n\r\n\t\tif (series == stockChart.get(\"stockSeries\") && !isline) {\r\n\t\t\tsettings.push({\r\n\t\t\t\tid: \"stockPositiveColor\",\r\n\t\t\t\tkey: \"stockPositiveColor\",\r\n\t\t\t\tname: l.translateAny(\"Increase\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tcurrentValue: stockChart.get(\"stockPositiveColor\", this._root.interfaceColors.get(\"positive\")),\r\n\t\t\t\ttarget: stockChart\r\n\t\t\t});\r\n\r\n\t\t\tsettings.push({\r\n\t\t\t\tid: \"stockNegativeColor\",\r\n\t\t\t\tkey: \"stockNegativeColor\",\r\n\t\t\t\tname: l.translateAny(\"Decrease\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tcurrentValue: stockChart.get(\"stockNegativeColor\", this._root.interfaceColors.get(\"negative\")),\r\n\t\t\t\ttarget: stockChart\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if (series == stockChart.get(\"volumeSeries\") && !isline) {\r\n\t\t\tsettings.push({\r\n\t\t\t\tid: \"volumePositiveColor\",\r\n\t\t\t\tkey: \"volumePositiveColor\",\r\n\t\t\t\tname: l.translateAny(\"Increase\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tcurrentValue: stockChart.get(\"volumePositiveColor\", this._root.interfaceColors.get(\"positive\")),\r\n\t\t\t\ttarget: stockChart\r\n\t\t\t});\r\n\r\n\t\t\tsettings.push({\r\n\t\t\t\tid: \"volumeNegativeColor\",\r\n\t\t\t\tkey: \"volumeNegativeColor\",\r\n\t\t\t\tname: l.translateAny(\"Decrease\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tcurrentValue: stockChart.get(\"volumeNegativeColor\", this._root.interfaceColors.get(\"negative\")),\r\n\t\t\t\ttarget: stockChart\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if (series instanceof CandlestickSeries && series.columns.length) {\r\n\t\t\tconst column = series.columns.getIndex(0);\r\n\t\t\tsettings.push({\r\n\t\t\t\tid: \"riseFromOpen.fill\",\r\n\t\t\t\tkey: \"fill\",\r\n\t\t\t\tadditionalKeys: [\"stroke\"],\r\n\t\t\t\tname: l.translateAny(\"Increase\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tcurrentValue: column!.states.lookup(\"riseFromOpen\")!.get(\"fill\"),\r\n\t\t\t\ttarget: series.columns.template.states.create(\"riseFromOpen\", {}),\r\n\t\t\t\tinvalidateTarget: series\r\n\t\t\t});\r\n\r\n\t\t\tsettings.push({\r\n\t\t\t\tid: \"dropFromOpen.fill\",\r\n\t\t\t\tkey: \"fill\",\r\n\t\t\t\tadditionalKeys: [\"stroke\"],\r\n\t\t\t\tname: l.translateAny(\"Decrease\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tcurrentValue: column!.states.lookup(\"dropFromOpen\")!.get(\"fill\"),\r\n\t\t\t\ttarget: series.columns.template.states.create(\"dropFromOpen\", {}),\r\n\t\t\t\tinvalidateTarget: series\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if (isline) {\r\n\t\t\tsettings = [{\r\n\t\t\t\tkey: \"stroke\",\r\n\t\t\t\tname: l.translateAny(\"Line\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tadditionalKeys: [\"fill\"],\r\n\t\t\t\ttarget: (<LineSeries>series),\r\n\t\t\t}, {\r\n\t\t\t\tkey: \"strokeWidth\",\r\n\t\t\t\tname: l.translateAny(\"Line\"),\r\n\t\t\t\ttype: \"dropdown\",\r\n\t\t\t\toptions: [\r\n\t\t\t\t\t{ value: 1, text: \"1px\" },\r\n\t\t\t\t\t{ value: 2, text: \"2px\" },\r\n\t\t\t\t\t{ value: 4, text: \"4px\" },\r\n\t\t\t\t\t{ value: 10, text: \"10px\" }\r\n\t\t\t\t],\r\n\t\t\t\tcurrentValue: (<LineSeries>series).strokes.template.get(\"strokeWidth\", 1),\r\n\t\t\t\ttarget: (<LineSeries>series).strokes.template,\r\n\t\t\t\tinvalidateTarget: series\r\n\t\t\t}];\r\n\t\t\tif ((<LineSeries>series).fills.template.get(\"visible\")) {\r\n\t\t\t\tsettings.push({\r\n\t\t\t\t\tkey: \"fill\",\r\n\t\t\t\t\tname: l.translateAny(\"Fill\"),\r\n\t\t\t\t\ttype: \"color\"\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tsettings = [{\r\n\t\t\t\tkey: \"stroke\",\r\n\t\t\t\tname: l.translateAny(\"Line\"),\r\n\t\t\t\ttype: \"color\"\r\n\t\t\t}, {\r\n\t\t\t\tkey: \"fill\",\r\n\t\t\t\tname: l.translateAny(\"Fill\"),\r\n\t\t\t\ttype: \"color\"\r\n\t\t\t}];\r\n\t\t}\r\n\t\tthis.initContent(settings, series);\r\n\t}\r\n\r\n\tprivate initContent(settings: ISeriesEditableSetting[], target: any) {\r\n\t\tthis._updatedSettings = {};\r\n\t\tconst content = this.getPrivate(\"content\");\r\n\r\n\t\t// Clear\r\n\t\tthis.clear();\r\n\r\n\t\t// Title\r\n\t\tconst title = document.createElement(\"h1\");\r\n\t\ttitle.innerHTML = target.get(\"name\");\r\n\t\tcontent.appendChild(title);\r\n\r\n\t\t// Add fields\r\n\t\tconst table = document.createElement(\"div\");\r\n\t\ttable.className = \"am5-modal-table\";\r\n\t\tcontent.appendChild(table);\r\n\r\n\t\tconst settingInputs: { [index: string]: HTMLInputElement | HTMLSelectElement } = {};\r\n\t\tconst settingsWithTarget: { [index: string]: any } = {};\r\n\t\tlet prevName = \"\";\r\n\t\tlet prevLine: HTMLDivElement;\r\n\t\t$array.each(settings, (setting) => {\r\n\t\t\tconst key = this._getSettingKey(setting);\r\n\t\t\tconst keyTarget = setting.target || target;\r\n\t\t\tconst currentValue = setting.currentValue || keyTarget.get(setting.key);\r\n\r\n\t\t\tif (setting.target) {\r\n\t\t\t\tsettingsWithTarget[key] = setting;\r\n\t\t\t}\r\n\r\n\t\t\tlet element: HTMLElement | undefined;\r\n\t\t\tswitch (setting.type) {\r\n\t\t\t\tcase \"dropdown\":\r\n\t\t\t\t\telement = this.getDropdown(setting, currentValue);\r\n\t\t\t\t\tsettingInputs[key] = <HTMLSelectElement>element;\r\n\t\t\t\t\t$utils.addEventListener(element, \"change\", (ev: any) => {\r\n\t\t\t\t\t\tconst input: HTMLSelectElement = ev.target!;\r\n\t\t\t\t\t\tconst option = input.options[input!.selectedIndex];\r\n\t\t\t\t\t\tconst extTarget = option.getAttribute(\"data-target\");\r\n\t\t\t\t\t\tif (extTarget) {\r\n\t\t\t\t\t\t\tconsole.log(settingInputs[extTarget], option.getAttribute(\"data-target-value\"))\r\n\t\t\t\t\t\t\tsettingInputs[extTarget].value = option.getAttribute(\"data-target-value\") + \"\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"number\":\r\n\t\t\t\t\telement = this.getNumber(setting, currentValue);\r\n\t\t\t\t\tsettingInputs[key] = <HTMLInputElement>element;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"color\":\r\n\t\t\t\t\telement = this.getColor(setting, currentValue);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"checkbox\":\r\n\t\t\t\t\telement = this.getCheckbox(setting, currentValue);\r\n\t\t\t\t\tsettingInputs[key] = <HTMLInputElement>element;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// case \"text\":\r\n\t\t\t\t// \telement = this.getText(setting, currentValue);\r\n\t\t\t\t// \tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif (element) {\r\n\r\n\t\t\t\tlet line: HTMLDivElement;\r\n\t\t\t\tif (setting.name == prevName && prevLine) {\r\n\t\t\t\t\tline = prevLine;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tline = document.createElement(\"div\");\r\n\t\t\t\t\tline.className = \"am5-modal-table-row\";\r\n\t\t\t\t\ttable.appendChild(line);\r\n\r\n\t\t\t\t\tconst heading = document.createElement(\"div\");\r\n\t\t\t\t\theading.className = \"am5-modal-table-heading\";\r\n\t\t\t\t\theading.innerHTML = setting.name;\r\n\t\t\t\t\tline.appendChild(heading);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst cell = document.createElement(\"div\");\r\n\t\t\t\tcell.className = \"am5-modal-table-cell\";\r\n\t\t\t\tline.appendChild(cell);\r\n\t\t\t\tcell.appendChild(element);\r\n\r\n\t\t\t\tprevName = setting.name;\r\n\t\t\t\tprevLine = line;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Buttons\r\n\t\tconst saveButton = document.createElement(\"input\");\r\n\t\tsaveButton.type = \"button\";\r\n\t\tsaveButton.value = this._root.language.translateAny(\"Save\");\r\n\t\tsaveButton.className = \"am5-modal-button am5-modal-primary\";\r\n\t\tcontent.appendChild(saveButton);\r\n\r\n\t\tthis._disposers.push($utils.addEventListener(saveButton, \"click\", () => {\r\n\t\t\t$object.each(settingInputs, (key, element) => {\r\n\t\t\t\tif (element.type == \"checkbox\") {\r\n\t\t\t\t\tthis._updatedSettings[key] = (<HTMLInputElement>element).checked;\r\n\t\t\t\t}\r\n\t\t\t\telse if (element.type == \"number\") {\r\n\t\t\t\t\tthis._updatedSettings[key] = $type.toNumber(element.value);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._updatedSettings[key] = element.value;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t$object.each(this._updatedSettings, (key, value) => {\r\n\t\t\t\tconst targetKey = (<string>key).split(\".\").pop();\r\n\t\t\t\tif ($type.isObject(value) && value.value) {\r\n\t\t\t\t\tif (value.setting && value.setting.target) {\r\n\t\t\t\t\t\tvalue.setting.target.set(targetKey, value.value);\r\n\t\t\t\t\t\tif (value.setting.additionalKeys) {\r\n\t\t\t\t\t\t\t$array.each(value.setting.additionalKeys, (additionalKey) => {\r\n\t\t\t\t\t\t\t\tvalue.setting.target.set(additionalKey, value.value);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttarget.set(targetKey, value.value);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if (settingsWithTarget[targetKey!]) {\r\n\t\t\t\t\tsettingsWithTarget[targetKey!].target.set(targetKey, value);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ttarget.set(targetKey, value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (value.setting && value.setting.invalidateTarget) {\r\n\t\t\t\t\tvalue.setting.invalidateTarget.markDirtyValues();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.close();\r\n\t\t}));\r\n\r\n\t\tconst cancelButton = document.createElement(\"input\");\r\n\t\tcancelButton.type = \"button\";\r\n\t\tcancelButton.value = this._root.language.translateAny(\"Cancel\");\r\n\t\tcancelButton.className = \"am5-modal-button am5-modal-scondary\";\r\n\t\tcontent.appendChild(cancelButton);\r\n\r\n\t\tthis._disposers.push($utils.addEventListener(cancelButton, \"click\", () => {\r\n\t\t\tthis.cancel();\r\n\t\t}));\r\n\r\n\t\t// Open modal\r\n\t\tthis.open();\r\n\r\n\t}\r\n\r\n\tprivate getDropdown(setting: any, currentValue: any): HTMLSelectElement {\r\n\t\tconst element = document.createElement(\"select\");\r\n\t\t$array.each(setting.options, (option) => {\r\n\t\t\tif (option) {\r\n\t\t\t\tconst optionElement = document.createElement(\"option\");\r\n\t\t\t\tlet value;\r\n\t\t\t\tif ($type.isObject(option)) {\r\n\t\t\t\t\toptionElement.value = <string>((<any>option).value);\r\n\t\t\t\t\toptionElement.text = <string>((<any>option).text);\r\n\t\t\t\t\tvalue = ((<any>option).value);\r\n\r\n\t\t\t\t\tif ((option as any).extTarget) {\r\n\t\t\t\t\t\toptionElement.setAttribute(\"data-target\", (option as any).extTarget);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ((option as any).extTargetValue) {\r\n\t\t\t\t\t\toptionElement.setAttribute(\"data-target-value\", (option as any).extTargetValue);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\toptionElement.value = <string>option;\r\n\t\t\t\t\toptionElement.text = <string>option;\r\n\t\t\t\t\tvalue = option;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (value == currentValue) {\r\n\t\t\t\t\toptionElement.selected = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\telement.appendChild(optionElement);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn element;\r\n\t}\r\n\r\n\tprivate getNumber(_setting: any, currentValue: any): HTMLInputElement {\r\n\t\tconst element = document.createElement(\"input\");\r\n\t\telement.type = \"number\";\r\n\t\telement.value = currentValue;\r\n\t\telement.className = \"am5-modal-input-narrow\"\r\n\t\treturn element;\r\n\t}\r\n\r\n\tprivate getCheckbox(_setting: any, currentValue: any): HTMLInputElement {\r\n\t\tconst element = document.createElement(\"input\");\r\n\t\telement.type = \"checkbox\";\r\n\t\telement.checked = currentValue === true;\r\n\t\treturn element;\r\n\t}\r\n\r\n\tprivate getColor(setting: any, currentValue: any): HTMLDivElement {\r\n\t\tconst control = ColorControl.new(this.root, {\r\n\t\t\tstockChart: this.get(\"stockChart\"),\r\n\t\t\tuseOpacity: false\r\n\t\t});\r\n\t\tcontrol.setPrivate(\"color\", currentValue);\r\n\t\tcontrol.events.on(\"selected\", (ev) => {\r\n\t\t\tthis._updatedSettings[this._getSettingKey(setting)] = {\r\n\t\t\t\tvalue: ev.color,\r\n\t\t\t\tsetting: setting\r\n\t\t\t};\r\n\t\t});\r\n\t\tthis._disposers.push(control);\r\n\t\treturn control.getPrivate(\"button\")!;\r\n\t}\r\n\r\n\t/**\r\n\t * Closes the modal, saving settings.\r\n\t */\r\n\tpublic close(): void {\r\n\t\tsuper.close();\r\n\t\tthis.events.dispatch(\"done\", {\r\n\t\t\ttype: \"done\",\r\n\t\t\tsettings: this._updatedSettings,\r\n\t\t\tsettingsTarget: this._settingsTarget,\r\n\t\t\ttarget: this\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Closes the modal without applying any changes.\r\n\t */\r\n\tpublic cancel(): void {\r\n\t\tsuper.cancel();\r\n\t\tthis.events.dispatch(\"done\", {\r\n\t\t\ttype: \"done\",\r\n\t\t\tsettings: null,\r\n\t\t\ttarget: this\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Clears contents of the modal.\r\n\t */\r\n\tpublic clear(): void {\r\n\t\tconst content = this.getPrivate(\"content\");\r\n\t\tcontent.innerHTML = \"\";\r\n\t\tif (this._colorControl) {\r\n\t\t\tthis._colorControl.dispose();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _getSettingKey(setting: ISeriesEditableSetting): string {\r\n\t\treturn setting.id || setting.key;\r\n\t}\r\n\r\n}"]}
1
+ {"version":3,"file":"SettingsModal.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/stock/SettingsModal.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Indicator, IIndicatorEditableSetting } from \"./indicators/Indicator\";\r\nimport type { StockChart } from \"./StockChart\";\r\nimport type { XYSeries } from \"../xy/series/XYSeries\";\r\n\r\nimport { CandlestickSeries } from \"../xy/series/CandlestickSeries\";\r\nimport { LineSeries } from \"../xy/series/LineSeries\";\r\nimport { Modal, IModalSettings, IModalPrivate, IModalEvents } from \"../../core/util/Modal\";\r\nimport { ColorControl } from \"./toolbar/ColorControl\";\r\n\r\nimport * as $array from \"../../core/util/Array\";\r\nimport * as $object from \"../../core/util/Object\";\r\nimport * as $utils from \"../../core/util/Utils\";\r\nimport * as $type from \"../../core/util/Type\";\r\n\r\n\r\nexport interface ISettingsModalSettings extends IModalSettings {\r\n\r\n\t/**\r\n\t * A target [[StockChart]].\r\n\t */\r\n\tstockChart: StockChart;\r\n\r\n}\r\n\r\nexport interface ISettingsModalPrivate extends IModalPrivate {\r\n}\r\n\r\nexport interface ISettingsModalEvents extends IModalEvents {\r\n\r\n\t/**\r\n\t * Invoked when modal is closed/saved.\r\n\t */\r\n\tdone: {\r\n\t\tsettings?: any,\r\n\t\tsettingsTarget?: Indicator | XYSeries\r\n\t}\r\n\r\n}\r\n\r\n/**\r\n * @ignore\r\n */\r\ninterface ISeriesEditableSetting extends IIndicatorEditableSetting {\r\n\tid?: string;\r\n\ttarget?: any;\r\n\tadditionalKeys?: string[];\r\n\tcurrentValue?: any;\r\n\tinvalidateTarget?: XYSeries;\r\n}\r\n\r\n/**\r\n * Used to display a modal dialog with HTML content.\r\n */\r\nexport class SettingsModal extends Modal {\r\n\tpublic static className: string = \"SettingsModal\";\r\n\tpublic static classNames: Array<string> = Modal.classNames.concat([Modal.className]);\r\n\r\n\tdeclare public _settings: ISettingsModalSettings;\r\n\tdeclare public _privateSettings: ISettingsModalPrivate;\r\n\tdeclare public _events: ISettingsModalEvents;\r\n\r\n\tprotected _updatedSettings: { [index: string]: any } = {};\r\n\tprotected _settingsTarget?: Indicator | XYSeries;\r\n\tprotected _colorControl?: ColorControl;\r\n\r\n\tprotected _afterNew() {\r\n\t\tsuper._afterNew();\r\n\t}\r\n\r\n\tpublic _beforeChanged() {\r\n\t\tsuper._beforeChanged();\r\n\r\n\t\t// if (this.isDirty(\"content\")) {\r\n\t\t// \tthis.getPrivate(\"content\").innerHTML = this.get(\"content\", \"\");\r\n\t\t// }\r\n\t}\r\n\r\n\t/**\r\n\t * Opens settings modal for an [[Indicator]].\r\n\t * \r\n\t * @param target Target indicator\r\n\t */\r\n\tpublic openIndicator(target: Indicator): void {\r\n\t\tthis._settingsTarget = target;\r\n\t\tthis.initContent(target._editableSettings, target);\r\n\t}\r\n\r\n\t/**\r\n\t * Opens settings editing for the any [[XYSeries]].\r\n\t * \r\n\t * @param series target series\r\n\t */\r\n\tpublic openSeries(series: XYSeries): void {\r\n\t\tthis._settingsTarget = series;\r\n\r\n\t\tconst l = this._root.language;\r\n\t\tconst stockChart = this.get(\"stockChart\");\r\n\t\tconst isline = series instanceof LineSeries;\r\n\r\n\t\tlet settings: ISeriesEditableSetting[] = [];\r\n\r\n\t\tif (series == stockChart.get(\"stockSeries\") && !isline) {\r\n\t\t\tsettings.push({\r\n\t\t\t\tid: \"stockPositiveColor\",\r\n\t\t\t\tkey: \"stockPositiveColor\",\r\n\t\t\t\tname: l.translateAny(\"Increase\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tcurrentValue: stockChart.get(\"stockPositiveColor\", this._root.interfaceColors.get(\"positive\")),\r\n\t\t\t\ttarget: stockChart\r\n\t\t\t});\r\n\r\n\t\t\tsettings.push({\r\n\t\t\t\tid: \"stockNegativeColor\",\r\n\t\t\t\tkey: \"stockNegativeColor\",\r\n\t\t\t\tname: l.translateAny(\"Decrease\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tcurrentValue: stockChart.get(\"stockNegativeColor\", this._root.interfaceColors.get(\"negative\")),\r\n\t\t\t\ttarget: stockChart\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if (series == stockChart.get(\"volumeSeries\") && !isline) {\r\n\t\t\tsettings.push({\r\n\t\t\t\tid: \"volumePositiveColor\",\r\n\t\t\t\tkey: \"volumePositiveColor\",\r\n\t\t\t\tname: l.translateAny(\"Increase\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tcurrentValue: stockChart.get(\"volumePositiveColor\", this._root.interfaceColors.get(\"positive\")),\r\n\t\t\t\ttarget: stockChart\r\n\t\t\t});\r\n\r\n\t\t\tsettings.push({\r\n\t\t\t\tid: \"volumeNegativeColor\",\r\n\t\t\t\tkey: \"volumeNegativeColor\",\r\n\t\t\t\tname: l.translateAny(\"Decrease\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tcurrentValue: stockChart.get(\"volumeNegativeColor\", this._root.interfaceColors.get(\"negative\")),\r\n\t\t\t\ttarget: stockChart\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if (series instanceof CandlestickSeries && series.columns.length) {\r\n\t\t\tconst column = series.columns.getIndex(0);\r\n\t\t\tsettings.push({\r\n\t\t\t\tid: \"riseFromOpen.fill\",\r\n\t\t\t\tkey: \"fill\",\r\n\t\t\t\tadditionalKeys: [\"stroke\"],\r\n\t\t\t\tname: l.translateAny(\"Increase\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tcurrentValue: column!.states.lookup(\"riseFromOpen\")!.get(\"fill\"),\r\n\t\t\t\ttarget: series.columns.template.states.create(\"riseFromOpen\", {}),\r\n\t\t\t\tinvalidateTarget: series\r\n\t\t\t});\r\n\r\n\t\t\tsettings.push({\r\n\t\t\t\tid: \"dropFromOpen.fill\",\r\n\t\t\t\tkey: \"fill\",\r\n\t\t\t\tadditionalKeys: [\"stroke\"],\r\n\t\t\t\tname: l.translateAny(\"Decrease\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tcurrentValue: column!.states.lookup(\"dropFromOpen\")!.get(\"fill\"),\r\n\t\t\t\ttarget: series.columns.template.states.create(\"dropFromOpen\", {}),\r\n\t\t\t\tinvalidateTarget: series\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if (isline) {\r\n\t\t\tsettings = [{\r\n\t\t\t\tkey: \"stroke\",\r\n\t\t\t\tname: l.translateAny(\"Line\"),\r\n\t\t\t\ttype: \"color\",\r\n\t\t\t\tadditionalKeys: [\"fill\"],\r\n\t\t\t\ttarget: (<LineSeries>series),\r\n\t\t\t}, {\r\n\t\t\t\tkey: \"strokeWidth\",\r\n\t\t\t\tname: l.translateAny(\"Line\"),\r\n\t\t\t\ttype: \"dropdown\",\r\n\t\t\t\toptions: [\r\n\t\t\t\t\t{ value: 1, text: \"1px\" },\r\n\t\t\t\t\t{ value: 2, text: \"2px\" },\r\n\t\t\t\t\t{ value: 4, text: \"4px\" },\r\n\t\t\t\t\t{ value: 10, text: \"10px\" }\r\n\t\t\t\t],\r\n\t\t\t\tcurrentValue: (<LineSeries>series).strokes.template.get(\"strokeWidth\", 1),\r\n\t\t\t\ttarget: (<LineSeries>series).strokes.template,\r\n\t\t\t\tinvalidateTarget: series\r\n\t\t\t}];\r\n\t\t\tif ((<LineSeries>series).fills.template.get(\"visible\")) {\r\n\t\t\t\tsettings.push({\r\n\t\t\t\t\tkey: \"fill\",\r\n\t\t\t\t\tname: l.translateAny(\"Fill\"),\r\n\t\t\t\t\ttype: \"color\"\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tsettings = [{\r\n\t\t\t\tkey: \"stroke\",\r\n\t\t\t\tname: l.translateAny(\"Line\"),\r\n\t\t\t\ttype: \"color\"\r\n\t\t\t}, {\r\n\t\t\t\tkey: \"fill\",\r\n\t\t\t\tname: l.translateAny(\"Fill\"),\r\n\t\t\t\ttype: \"color\"\r\n\t\t\t}];\r\n\t\t}\r\n\t\tthis.initContent(settings, series);\r\n\t}\r\n\r\n\tprivate initContent(settings: ISeriesEditableSetting[], target: any) {\r\n\t\tthis._updatedSettings = {};\r\n\t\tconst content = this.getPrivate(\"content\");\r\n\r\n\t\t// Clear\r\n\t\tthis.clear();\r\n\r\n\t\t// Title\r\n\t\tconst title = document.createElement(\"h1\");\r\n\t\ttitle.innerHTML = target.get(\"name\");\r\n\t\tcontent.appendChild(title);\r\n\r\n\t\t// Add fields\r\n\t\tconst table = document.createElement(\"div\");\r\n\t\ttable.className = \"am5-modal-table\";\r\n\t\tcontent.appendChild(table);\r\n\r\n\t\tconst settingInputs: { [index: string]: HTMLInputElement | HTMLSelectElement } = {};\r\n\t\tconst settingsWithTarget: { [index: string]: any } = {};\r\n\t\tlet prevName = \"\";\r\n\t\tlet prevLine: HTMLDivElement;\r\n\t\t$array.each(settings, (setting) => {\r\n\t\t\tconst key = this._getSettingKey(setting);\r\n\t\t\tconst keyTarget = setting.target || target;\r\n\t\t\tconst currentValue = setting.currentValue || keyTarget.get(setting.key);\r\n\r\n\t\t\tif (setting.target) {\r\n\t\t\t\tsettingsWithTarget[key] = setting;\r\n\t\t\t}\r\n\r\n\t\t\tlet element: HTMLElement | undefined;\r\n\t\t\tswitch (setting.type) {\r\n\t\t\t\tcase \"dropdown\":\r\n\t\t\t\t\telement = this.getDropdown(setting, currentValue);\r\n\t\t\t\t\tsettingInputs[key] = <HTMLSelectElement>element;\r\n\t\t\t\t\t$utils.addEventListener(element, \"change\", (ev: any) => {\r\n\t\t\t\t\t\tconst input: HTMLSelectElement = ev.target!;\r\n\t\t\t\t\t\tconst option = input.options[input!.selectedIndex];\r\n\t\t\t\t\t\tconst extTarget = option.getAttribute(\"data-target\");\r\n\t\t\t\t\t\tif (extTarget) {\r\n\t\t\t\t\t\t\tsettingInputs[extTarget].value = option.getAttribute(\"data-target-value\") + \"\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"number\":\r\n\t\t\t\t\telement = this.getNumber(setting, currentValue);\r\n\t\t\t\t\tsettingInputs[key] = <HTMLInputElement>element;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"color\":\r\n\t\t\t\t\telement = this.getColor(setting, currentValue);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"checkbox\":\r\n\t\t\t\t\telement = this.getCheckbox(setting, currentValue);\r\n\t\t\t\t\tsettingInputs[key] = <HTMLInputElement>element;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// case \"text\":\r\n\t\t\t\t// \telement = this.getText(setting, currentValue);\r\n\t\t\t\t// \tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tif (element) {\r\n\r\n\t\t\t\tlet line: HTMLDivElement;\r\n\t\t\t\tif (setting.name == prevName && prevLine) {\r\n\t\t\t\t\tline = prevLine;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tline = document.createElement(\"div\");\r\n\t\t\t\t\tline.className = \"am5-modal-table-row\";\r\n\t\t\t\t\ttable.appendChild(line);\r\n\r\n\t\t\t\t\tconst heading = document.createElement(\"div\");\r\n\t\t\t\t\theading.className = \"am5-modal-table-heading\";\r\n\t\t\t\t\theading.innerHTML = setting.name;\r\n\t\t\t\t\tline.appendChild(heading);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst cell = document.createElement(\"div\");\r\n\t\t\t\tcell.className = \"am5-modal-table-cell\";\r\n\t\t\t\tline.appendChild(cell);\r\n\t\t\t\tcell.appendChild(element);\r\n\r\n\t\t\t\tprevName = setting.name;\r\n\t\t\t\tprevLine = line;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Buttons\r\n\t\tconst saveButton = document.createElement(\"input\");\r\n\t\tsaveButton.type = \"button\";\r\n\t\tsaveButton.value = this._root.language.translateAny(\"Save\");\r\n\t\tsaveButton.className = \"am5-modal-button am5-modal-primary\";\r\n\t\tcontent.appendChild(saveButton);\r\n\r\n\t\tthis._disposers.push($utils.addEventListener(saveButton, \"click\", () => {\r\n\t\t\t$object.each(settingInputs, (key, element) => {\r\n\t\t\t\tif (element.type == \"checkbox\") {\r\n\t\t\t\t\tthis._updatedSettings[key] = (<HTMLInputElement>element).checked;\r\n\t\t\t\t}\r\n\t\t\t\telse if (element.type == \"number\") {\r\n\t\t\t\t\tthis._updatedSettings[key] = $type.toNumber(element.value);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._updatedSettings[key] = element.value;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t$object.each(this._updatedSettings, (key, value) => {\r\n\t\t\t\tconst targetKey = (<string>key).split(\".\").pop();\r\n\t\t\t\tif ($type.isObject(value) && value.value) {\r\n\t\t\t\t\tif (value.setting && value.setting.target) {\r\n\t\t\t\t\t\tvalue.setting.target.set(targetKey, value.value);\r\n\t\t\t\t\t\tif (value.setting.additionalKeys) {\r\n\t\t\t\t\t\t\t$array.each(value.setting.additionalKeys, (additionalKey) => {\r\n\t\t\t\t\t\t\t\tvalue.setting.target.set(additionalKey, value.value);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttarget.set(targetKey, value.value);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if (settingsWithTarget[targetKey!]) {\r\n\t\t\t\t\tsettingsWithTarget[targetKey!].target.set(targetKey, value);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ttarget.set(targetKey, value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (value.setting && value.setting.invalidateTarget) {\r\n\t\t\t\t\tvalue.setting.invalidateTarget.markDirtyValues();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.close();\r\n\t\t}));\r\n\r\n\t\tconst cancelButton = document.createElement(\"input\");\r\n\t\tcancelButton.type = \"button\";\r\n\t\tcancelButton.value = this._root.language.translateAny(\"Cancel\");\r\n\t\tcancelButton.className = \"am5-modal-button am5-modal-scondary\";\r\n\t\tcontent.appendChild(cancelButton);\r\n\r\n\t\tthis._disposers.push($utils.addEventListener(cancelButton, \"click\", () => {\r\n\t\t\tthis.cancel();\r\n\t\t}));\r\n\r\n\t\t// Open modal\r\n\t\tthis.open();\r\n\r\n\t\t// Auto-focus Save button\r\n\t\tthis.setTimeout(() => {\r\n\t\t\t// Delayed so that pressing ENTER in the list does not trigger save, too\r\n\t\t\tsaveButton.focus();\r\n\t\t}, 10);\r\n\r\n\t}\r\n\r\n\tprivate getDropdown(setting: any, currentValue: any): HTMLSelectElement {\r\n\t\tconst element = document.createElement(\"select\");\r\n\t\t$array.each(setting.options, (option) => {\r\n\t\t\tif (option) {\r\n\t\t\t\tconst optionElement = document.createElement(\"option\");\r\n\t\t\t\tlet value;\r\n\t\t\t\tif ($type.isObject(option)) {\r\n\t\t\t\t\toptionElement.value = <string>((<any>option).value);\r\n\t\t\t\t\toptionElement.text = <string>((<any>option).text);\r\n\t\t\t\t\tvalue = ((<any>option).value);\r\n\r\n\t\t\t\t\tif ((option as any).extTarget) {\r\n\t\t\t\t\t\toptionElement.setAttribute(\"data-target\", (option as any).extTarget);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ((option as any).extTargetValue) {\r\n\t\t\t\t\t\toptionElement.setAttribute(\"data-target-value\", (option as any).extTargetValue);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\toptionElement.value = <string>option;\r\n\t\t\t\t\toptionElement.text = <string>option;\r\n\t\t\t\t\tvalue = option;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (value == currentValue) {\r\n\t\t\t\t\toptionElement.selected = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\telement.appendChild(optionElement);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn element;\r\n\t}\r\n\r\n\tprivate getNumber(_setting: any, currentValue: any): HTMLInputElement {\r\n\t\tconst element = document.createElement(\"input\");\r\n\t\telement.type = \"number\";\r\n\t\telement.value = currentValue;\r\n\t\telement.className = \"am5-modal-input-narrow\"\r\n\t\treturn element;\r\n\t}\r\n\r\n\tprivate getCheckbox(_setting: any, currentValue: any): HTMLInputElement {\r\n\t\tconst element = document.createElement(\"input\");\r\n\t\telement.type = \"checkbox\";\r\n\t\telement.checked = currentValue === true;\r\n\t\treturn element;\r\n\t}\r\n\r\n\tprivate getColor(setting: any, currentValue: any): HTMLDivElement {\r\n\t\tconst control = ColorControl.new(this.root, {\r\n\t\t\tstockChart: this.get(\"stockChart\"),\r\n\t\t\tuseOpacity: false\r\n\t\t});\r\n\t\tcontrol.setPrivate(\"color\", currentValue);\r\n\t\tcontrol.events.on(\"selected\", (ev) => {\r\n\t\t\tthis._updatedSettings[this._getSettingKey(setting)] = {\r\n\t\t\t\tvalue: ev.color,\r\n\t\t\t\tsetting: setting\r\n\t\t\t};\r\n\t\t});\r\n\t\tthis._disposers.push(control);\r\n\t\treturn control.getPrivate(\"button\")!;\r\n\t}\r\n\r\n\t/**\r\n\t * Closes the modal, saving settings.\r\n\t */\r\n\tpublic close(): void {\r\n\t\tsuper.close();\r\n\t\tthis.events.dispatch(\"done\", {\r\n\t\t\ttype: \"done\",\r\n\t\t\tsettings: this._updatedSettings,\r\n\t\t\tsettingsTarget: this._settingsTarget,\r\n\t\t\ttarget: this\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Closes the modal without applying any changes.\r\n\t */\r\n\tpublic cancel(): void {\r\n\t\tsuper.cancel();\r\n\t\tthis.events.dispatch(\"done\", {\r\n\t\t\ttype: \"done\",\r\n\t\t\tsettings: null,\r\n\t\t\ttarget: this\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Clears contents of the modal.\r\n\t */\r\n\tpublic clear(): void {\r\n\t\tconst content = this.getPrivate(\"content\");\r\n\t\tcontent.innerHTML = \"\";\r\n\t\tif (this._colorControl) {\r\n\t\t\tthis._colorControl.dispose();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _getSettingKey(setting: ISeriesEditableSetting): string {\r\n\t\treturn setting.id || setting.key;\r\n\t}\r\n\r\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StockChartDefaultTheme.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/stock/StockChartDefaultTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AASzC;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAChD,SAAS,CAAC,iBAAiB;CAgjD3B"}
1
+ {"version":3,"file":"StockChartDefaultTheme.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/stock/StockChartDefaultTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AASzC;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAChD,SAAS,CAAC,iBAAiB;CA6iD3B"}