@amcharts/amcharts5 5.0.19 → 5.1.1

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 (323) hide show
  1. package/.internal/charts/map/MapLineSeries.d.ts +6 -1
  2. package/.internal/charts/map/MapLineSeries.d.ts.map +1 -1
  3. package/.internal/charts/map/MapLineSeries.js +11 -6
  4. package/.internal/charts/map/MapLineSeries.js.map +1 -1
  5. package/.internal/charts/map/MapPointSeries.d.ts +6 -1
  6. package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
  7. package/.internal/charts/map/MapPointSeries.js +7 -2
  8. package/.internal/charts/map/MapPointSeries.js.map +1 -1
  9. package/.internal/charts/map/MapPolygonSeries.d.ts +6 -1
  10. package/.internal/charts/map/MapPolygonSeries.d.ts.map +1 -1
  11. package/.internal/charts/map/MapPolygonSeries.js +7 -2
  12. package/.internal/charts/map/MapPolygonSeries.js.map +1 -1
  13. package/.internal/charts/map/MapSeries.d.ts +1 -0
  14. package/.internal/charts/map/MapSeries.d.ts.map +1 -1
  15. package/.internal/charts/map/MapSeries.js +12 -0
  16. package/.internal/charts/map/MapSeries.js.map +1 -1
  17. package/.internal/charts/percent/PercentSeries.d.ts +3 -0
  18. package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
  19. package/.internal/charts/percent/PercentSeries.js +12 -0
  20. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  21. package/.internal/charts/pie/PieSeries.d.ts.map +1 -1
  22. package/.internal/charts/pie/PieSeries.js.map +1 -1
  23. package/.internal/charts/xy/XYChart.d.ts +1 -1
  24. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  25. package/.internal/charts/xy/XYChart.js.map +1 -1
  26. package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
  27. package/.internal/charts/xy/XYChartDefaultTheme.js +16 -2
  28. package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
  29. package/.internal/charts/xy/XYCursor.d.ts +6 -0
  30. package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
  31. package/.internal/charts/xy/XYCursor.js +14 -3
  32. package/.internal/charts/xy/XYCursor.js.map +1 -1
  33. package/.internal/charts/xy/axes/Axis.d.ts +3 -2
  34. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  35. package/.internal/charts/xy/axes/Axis.js +12 -5
  36. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  37. package/.internal/charts/xy/axes/CategoryDateAxis.js +1 -1
  38. package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
  39. package/.internal/charts/xy/axes/DateAxis.d.ts +3 -0
  40. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  41. package/.internal/charts/xy/axes/DateAxis.js +75 -20
  42. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  43. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts +55 -0
  44. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -0
  45. package/.internal/charts/xy/axes/GaplessDateAxis.js +316 -0
  46. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -0
  47. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  48. package/.internal/charts/xy/axes/ValueAxis.js +1 -1
  49. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  50. package/.internal/charts/xy/series/BaseColumnSeries.d.ts.map +1 -1
  51. package/.internal/charts/xy/series/BaseColumnSeries.js +21 -3
  52. package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
  53. package/.internal/charts/xy/series/CandlestickSeries.d.ts +0 -177
  54. package/.internal/charts/xy/series/CandlestickSeries.d.ts.map +1 -1
  55. package/.internal/charts/xy/series/CandlestickSeries.js +0 -19
  56. package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
  57. package/.internal/charts/xy/series/LineSeries.d.ts +1 -0
  58. package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
  59. package/.internal/charts/xy/series/LineSeries.js +14 -2
  60. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  61. package/.internal/charts/xy/series/XYSeries.d.ts +207 -2
  62. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  63. package/.internal/charts/xy/series/XYSeries.js +30 -5
  64. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  65. package/.internal/core/Classes.d.ts +4 -0
  66. package/.internal/core/Classes.d.ts.map +1 -1
  67. package/.internal/core/Classes.js.map +1 -1
  68. package/.internal/core/Root.d.ts +11 -3
  69. package/.internal/core/Root.d.ts.map +1 -1
  70. package/.internal/core/Root.js +14 -5
  71. package/.internal/core/Root.js.map +1 -1
  72. package/.internal/core/render/Component.d.ts +6 -1
  73. package/.internal/core/render/Component.d.ts.map +1 -1
  74. package/.internal/core/render/Component.js +9 -4
  75. package/.internal/core/render/Component.js.map +1 -1
  76. package/.internal/core/render/Container.d.ts +8 -0
  77. package/.internal/core/render/Container.d.ts.map +1 -1
  78. package/.internal/core/render/Container.js +1 -9
  79. package/.internal/core/render/Container.js.map +1 -1
  80. package/.internal/core/render/Ellipse.d.ts +28 -0
  81. package/.internal/core/render/Ellipse.d.ts.map +1 -0
  82. package/.internal/core/render/Ellipse.js +51 -0
  83. package/.internal/core/render/Ellipse.js.map +1 -0
  84. package/.internal/core/render/GridLayout.d.ts +1 -3
  85. package/.internal/core/render/GridLayout.d.ts.map +1 -1
  86. package/.internal/core/render/GridLayout.js +10 -10
  87. package/.internal/core/render/GridLayout.js.map +1 -1
  88. package/.internal/core/render/HorizontalLayout.d.ts.map +1 -1
  89. package/.internal/core/render/HorizontalLayout.js +18 -4
  90. package/.internal/core/render/HorizontalLayout.js.map +1 -1
  91. package/.internal/core/render/Layout.d.ts +2 -0
  92. package/.internal/core/render/Layout.d.ts.map +1 -1
  93. package/.internal/core/render/Layout.js +8 -0
  94. package/.internal/core/render/Layout.js.map +1 -1
  95. package/.internal/core/render/Legend.d.ts +6 -4
  96. package/.internal/core/render/Legend.d.ts.map +1 -1
  97. package/.internal/core/render/Legend.js +35 -34
  98. package/.internal/core/render/Legend.js.map +1 -1
  99. package/.internal/core/render/Line.js +1 -1
  100. package/.internal/core/render/Line.js.map +1 -1
  101. package/.internal/core/render/Series.d.ts +1 -1
  102. package/.internal/core/render/Series.d.ts.map +1 -1
  103. package/.internal/core/render/Series.js +5 -3
  104. package/.internal/core/render/Series.js.map +1 -1
  105. package/.internal/core/render/Slice.d.ts.map +1 -1
  106. package/.internal/core/render/Slice.js +7 -1
  107. package/.internal/core/render/Slice.js.map +1 -1
  108. package/.internal/core/render/Slider.d.ts +0 -2
  109. package/.internal/core/render/Slider.d.ts.map +1 -1
  110. package/.internal/core/render/Slider.js +0 -2
  111. package/.internal/core/render/Slider.js.map +1 -1
  112. package/.internal/core/render/Sprite.d.ts +11 -2
  113. package/.internal/core/render/Sprite.d.ts.map +1 -1
  114. package/.internal/core/render/Sprite.js +40 -17
  115. package/.internal/core/render/Sprite.js.map +1 -1
  116. package/.internal/core/render/VerticalLayout.d.ts.map +1 -1
  117. package/.internal/core/render/VerticalLayout.js +18 -4
  118. package/.internal/core/render/VerticalLayout.js.map +1 -1
  119. package/.internal/core/render/backend/CanvasRenderer.d.ts +9 -4
  120. package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
  121. package/.internal/core/render/backend/CanvasRenderer.js +136 -32
  122. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  123. package/.internal/core/render/backend/Renderer.d.ts +2 -0
  124. package/.internal/core/render/backend/Renderer.d.ts.map +1 -1
  125. package/.internal/core/render/backend/Renderer.js.map +1 -1
  126. package/.internal/core/util/Array.d.ts.map +1 -1
  127. package/.internal/core/util/Array.js +13 -23
  128. package/.internal/core/util/Array.js.map +1 -1
  129. package/.internal/core/util/DateFormatter.d.ts.map +1 -1
  130. package/.internal/core/util/DateFormatter.js +4 -7
  131. package/.internal/core/util/DateFormatter.js.map +1 -1
  132. package/.internal/core/util/Entity.d.ts +19 -0
  133. package/.internal/core/util/Entity.d.ts.map +1 -1
  134. package/.internal/core/util/Entity.js +69 -7
  135. package/.internal/core/util/Entity.js.map +1 -1
  136. package/.internal/core/util/InterfaceColors.d.ts +1 -1
  137. package/.internal/core/util/InterfaceColors.js.map +1 -1
  138. package/.internal/core/util/List.d.ts +7 -0
  139. package/.internal/core/util/List.d.ts.map +1 -1
  140. package/.internal/core/util/List.js +14 -0
  141. package/.internal/core/util/List.js.map +1 -1
  142. package/.internal/core/util/Modal.d.ts +50 -0
  143. package/.internal/core/util/Modal.d.ts.map +1 -0
  144. package/.internal/core/util/Modal.js +215 -0
  145. package/.internal/core/util/Modal.js.map +1 -0
  146. package/.internal/core/util/Template.d.ts +2 -1
  147. package/.internal/core/util/Template.d.ts.map +1 -1
  148. package/.internal/core/util/Template.js +19 -1
  149. package/.internal/core/util/Template.js.map +1 -1
  150. package/.internal/core/util/Time.d.ts +16 -19
  151. package/.internal/core/util/Time.d.ts.map +1 -1
  152. package/.internal/core/util/Time.js +209 -122
  153. package/.internal/core/util/Time.js.map +1 -1
  154. package/.internal/core/util/Timezone.d.ts +28 -0
  155. package/.internal/core/util/Timezone.d.ts.map +1 -0
  156. package/.internal/core/util/Timezone.js +138 -0
  157. package/.internal/core/util/Timezone.js.map +1 -0
  158. package/.internal/core/util/Utils.d.ts +2 -1
  159. package/.internal/core/util/Utils.d.ts.map +1 -1
  160. package/.internal/core/util/Utils.js +6 -3
  161. package/.internal/core/util/Utils.js.map +1 -1
  162. package/.internal/plugins/exporting/Exporting.d.ts +10 -1
  163. package/.internal/plugins/exporting/Exporting.d.ts.map +1 -1
  164. package/.internal/plugins/exporting/Exporting.js +11 -3
  165. package/.internal/plugins/exporting/Exporting.js.map +1 -1
  166. package/.internal/plugins/sliceGrouper/SliceGrouper.d.ts +1 -0
  167. package/.internal/plugins/sliceGrouper/SliceGrouper.d.ts.map +1 -1
  168. package/.internal/plugins/sliceGrouper/SliceGrouper.js +15 -3
  169. package/.internal/plugins/sliceGrouper/SliceGrouper.js.map +1 -1
  170. package/.internal/themes/DefaultTheme.js +2 -2
  171. package/.internal/themes/DefaultTheme.js.map +1 -1
  172. package/CHANGELOG.md +70 -0
  173. package/examples/javascript/flow-chord/package.json +1 -1
  174. package/examples/javascript/flow-chord-directed/package.json +1 -1
  175. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  176. package/examples/javascript/flow-sankey/package.json +1 -1
  177. package/examples/javascript/gauge/package.json +1 -1
  178. package/examples/javascript/gauge-bands/package.json +1 -1
  179. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  180. package/examples/javascript/hierarchy-pack/package.json +1 -1
  181. package/examples/javascript/hierarchy-partition/package.json +1 -1
  182. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  183. package/examples/javascript/hierarchy-tree/package.json +1 -1
  184. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  185. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  186. package/examples/javascript/map-day-and-night/package.json +1 -1
  187. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  188. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  189. package/examples/javascript/map-with-bubbles/package.json +1 -1
  190. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  191. package/examples/javascript/misc-40-charts/package.json +1 -1
  192. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  193. package/examples/javascript/pie-chart/package.json +1 -1
  194. package/examples/javascript/pie-donut-chart/package.json +1 -1
  195. package/examples/javascript/pie-variable-radius/package.json +1 -1
  196. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  197. package/examples/javascript/radar-heat-map/package.json +1 -1
  198. package/examples/javascript/radar-line/package.json +1 -1
  199. package/examples/javascript/radar-time-line/package.json +1 -1
  200. package/examples/javascript/sliced-funnel/package.json +1 -1
  201. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  202. package/examples/javascript/sliced-pyramid/package.json +1 -1
  203. package/examples/javascript/venn-diagram/package.json +1 -1
  204. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  205. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  206. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  207. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  208. package/examples/javascript/xy-bubble/package.json +1 -1
  209. package/examples/javascript/xy-candlestick/package.json +1 -1
  210. package/examples/javascript/xy-clustered-column/package.json +1 -1
  211. package/examples/javascript/xy-column/package.json +1 -1
  212. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  213. package/examples/javascript/xy-data-grouping/package.json +1 -1
  214. package/examples/javascript/xy-draggable-range/package.json +1 -1
  215. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  216. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  217. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  218. package/examples/javascript/xy-line/package.json +1 -1
  219. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  220. package/examples/javascript/xy-live-data/package.json +1 -1
  221. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  222. package/examples/javascript/xy-ohlc/package.json +1 -1
  223. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  224. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  225. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  226. package/examples/javascript/xy-stacked-column/package.json +1 -1
  227. package/examples/javascript/xy-stacked-step/package.json +1 -1
  228. package/examples/javascript/xy-stock/package.json +1 -1
  229. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  230. package/examples/typescript/flow-chord/package.json +1 -1
  231. package/examples/typescript/flow-chord-directed/package.json +1 -1
  232. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  233. package/examples/typescript/flow-sankey/package.json +1 -1
  234. package/examples/typescript/gauge/package.json +1 -1
  235. package/examples/typescript/gauge-bands/package.json +1 -1
  236. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  237. package/examples/typescript/hierarchy-pack/package.json +1 -1
  238. package/examples/typescript/hierarchy-partition/package.json +1 -1
  239. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  240. package/examples/typescript/hierarchy-tree/package.json +1 -1
  241. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  242. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  243. package/examples/typescript/map-day-and-night/package.json +1 -1
  244. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  245. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  246. package/examples/typescript/map-with-bubbles/package.json +1 -1
  247. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  248. package/examples/typescript/misc-40-charts/package.json +1 -1
  249. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  250. package/examples/typescript/pie-chart/package.json +1 -1
  251. package/examples/typescript/pie-donut-chart/package.json +1 -1
  252. package/examples/typescript/pie-variable-radius/package.json +1 -1
  253. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  254. package/examples/typescript/radar-heat-map/package.json +1 -1
  255. package/examples/typescript/radar-line/package.json +1 -1
  256. package/examples/typescript/radar-time-line/package.json +1 -1
  257. package/examples/typescript/sliced-funnel/package.json +1 -1
  258. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  259. package/examples/typescript/sliced-pyramid/package.json +1 -1
  260. package/examples/typescript/venn-diagram/package.json +1 -1
  261. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  262. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  263. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  264. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  265. package/examples/typescript/xy-bubble/package.json +1 -1
  266. package/examples/typescript/xy-candlestick/package.json +1 -1
  267. package/examples/typescript/xy-clustered-column/package.json +1 -1
  268. package/examples/typescript/xy-column/package.json +1 -1
  269. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  270. package/examples/typescript/xy-data-grouping/package.json +1 -1
  271. package/examples/typescript/xy-draggable-range/package.json +1 -1
  272. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  273. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  274. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  275. package/examples/typescript/xy-line/package.json +1 -1
  276. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  277. package/examples/typescript/xy-live-data/package.json +1 -1
  278. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  279. package/examples/typescript/xy-ohlc/package.json +1 -1
  280. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  281. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  282. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  283. package/examples/typescript/xy-stacked-column/package.json +1 -1
  284. package/examples/typescript/xy-stacked-step/package.json +1 -1
  285. package/examples/typescript/xy-stock/package.json +1 -1
  286. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  287. package/flow.d.ts +15 -13
  288. package/flow.d.ts.map +1 -1
  289. package/flow.js +2 -0
  290. package/flow.js.map +1 -1
  291. package/hierarchy.d.ts +14 -12
  292. package/hierarchy.d.ts.map +1 -1
  293. package/hierarchy.js +2 -0
  294. package/hierarchy.js.map +1 -1
  295. package/index.d.ts +43 -40
  296. package/index.d.ts.map +1 -1
  297. package/index.js +5 -2
  298. package/index.js.map +1 -1
  299. package/map.d.ts +11 -9
  300. package/map.d.ts.map +1 -1
  301. package/map.js +2 -0
  302. package/map.js.map +1 -1
  303. package/package.json +1 -1
  304. package/percent.d.ts +10 -8
  305. package/percent.d.ts.map +1 -1
  306. package/percent.js +2 -0
  307. package/percent.js.map +1 -1
  308. package/radar.d.ts +10 -8
  309. package/radar.d.ts.map +1 -1
  310. package/radar.js +2 -0
  311. package/radar.js.map +1 -1
  312. package/venn.d.ts +3 -1
  313. package/venn.d.ts.map +1 -1
  314. package/venn.js +2 -0
  315. package/venn.js.map +1 -1
  316. package/wc.d.ts +3 -1
  317. package/wc.d.ts.map +1 -1
  318. package/wc.js +2 -0
  319. package/wc.js.map +1 -1
  320. package/xy.d.ts +30 -25
  321. package/xy.d.ts.map +1 -1
  322. package/xy.js +5 -0
  323. package/xy.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Axis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/Axis.ts"],"names":[],"mappings":";AAYA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAA+E,MAAM,gCAAgC,CAAC;AACxI,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AAwNnD;;;;GAIG;AACH;IAA2D,wBAAS;IAApE;QAAA,qEAoyBC;QAzxBA;;;;mBAAgD,EAAE;WAAC;QAEnD;;;;mBAA6B,KAAK;WAAC;QAEnC;;;;WAIG;QACH;;;;mBAA6C,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;WAAC;QAE/F;;;;WAIG;QACH;;;;mBAA2C,SAAS,CAAC,GAAG,CAAC,KAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;WAAC;QAEpG;;;;WAIG;QACH;;;;mBAA8C,SAAS,CAAC,GAAG,CAAC,KAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;WAAC;QAEvG;;;;WAIG;QACH;;;;mBAA8C,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAI,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;WAAC;QAEpK;;WAEG;QACH;;;;;WAAkC;QAElC;;;;mBAAkC,KAAK;WAAC;QAExC;;;;mBAA2B,CAAC;WAAC;QAC7B;;;;mBAAyB,CAAC;WAAC;QAE3B;;;;;WAA8D;QAC9D;;;;;WAA4D;QAE5D;;;;;WAKG;QACH;;;;mBAAwE,IAAI,IAAI,EAAE;WAAC;QAEnF;;;;mBAAuE,EAAE;WAAC;QAE1E;;;WAGG;QACH;;;;;WAA8B;QAE9B;;;;mBAAoC,CAAC,CAAC;WAAC;QAEvC;;;;;WAA0C;QAE1C;;;;;;WAMG;QACH;;;;mBAA+B,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAI,CAAC,KAAK,EAAE;gBAC3E,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;gBAC7B,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,KAAI,CAAC,KAAK,EAAE;oBACrC,SAAS,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;oBACnC,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC;iBAClD,CAAC;aACF,CAAC,CAAC;WAAC;;IA0sBL,CAAC;;;;;eAxsBA;YACC,6DAA6D;YAC7D,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC1B,iBAAM,QAAQ,WAAE,CAAC;QAClB,CAAC;;;;;;eAED;YAAA,iBAiCC;YAhCA,iBAAM,SAAS,WAAE,CAAC;YAElB,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,UAAC,MAAM;gBACxD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;oBAC5B,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,QAAQ;wBAC7B,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACpB,CAAC,CAAC,CAAC;iBACH;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;oBAClC,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;iBACnD;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;oBACtC,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;iBACnD;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;oBACzC,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;iBACnD;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;oBACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;iBAC1B;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;oBACvC,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;iBAChD;qBAAM;oBACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;iBAC7C;YACF,CAAC,CAAC,CAAC,CAAA;YAEH,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI,QAAQ,EAAE;gBACb,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;gBACrB,QAAQ,CAAC,WAAW,EAAE,CAAC;aACvB;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACnC,CAAC;;IAED;;;;;;;;;OASG;;;;;eACH,UAAY,KAAa,EAAE,GAAW,EAAE,QAAiB;;YAExD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE;gBAE1D,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;gBAClC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;gBAElC,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;gBAE9E,IAAI,KAAK,GAAG,CAAE,YAAY,EAAE;oBAC3B,KAAK,GAAG,CAAC,YAAY,CAAC;iBACtB;gBAED,IAAI,GAAG,GAAG,CAAC,GAAG,YAAY,EAAE;oBAC3B,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC;iBACvB;gBAED,IAAI,KAAK,GAAG,GAAG,EAAE;oBAChB,KAAA,OAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAA,EAA1B,KAAK,QAAA,EAAE,GAAG,QAAA,CAAiB;iBAC5B;gBAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBAC9B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;iBAChD;gBAED,IAAI,QAAQ,GAAoB,KAAK,CAAC;gBACtC,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;gBAErF,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;oBAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;wBAC9B,QAAQ,GAAG,OAAO,CAAC;qBACnB;yBACI;wBACJ,QAAQ,GAAG,KAAK,CAAC;qBACjB;iBACD;gBAED,IAAI,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;oBAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBAC1B,QAAQ,GAAG,KAAK,CAAC;qBACjB;yBACI;wBACJ,QAAQ,GAAG,OAAO,CAAC;qBACnB;iBACD;gBAED,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC5C,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAE5C,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;oBACjC,aAAa,GAAG,aAAa,GAAG,YAAY,CAAC;iBAC7C;gBAED,IAAI,aAAa,GAAW,CAAC,CAAC;gBAE9B,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;oBACjC,aAAa,GAAG,aAAa,GAAG,YAAY,CAAC;iBAC7C;gBAED,iFAAiF;gBACjF,IAAI,QAAQ,KAAK,OAAO,EAAE;oBACzB,IAAI,YAAY,GAAG,CAAC,EAAE;wBACrB,iBAAiB;wBACjB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,aAAa,EAAE;4BACtC,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC;yBAChC;qBACD;oBAED,iBAAiB;oBACjB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,aAAa,EAAE;wBACtC,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC;qBAChC;oBACD,mBAAmB;oBACnB,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,aAAa,EAAE;wBAC/C,UAAU;wBACV,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,aAAa,CAAC;qBAChC;iBACD;gBACD,uDAAuD;qBAClD;oBACJ,IAAI,YAAY,GAAG,CAAC,EAAE;wBACrB,iBAAiB;wBACjB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,aAAa,EAAE;4BACtC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,aAAa,CAAC;yBAChC;qBACD;oBAED,oBAAoB;oBACpB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,aAAa,EAAE;wBACtC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,aAAa,CAAC;qBAChC;oBACD,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,aAAa,EAAE;wBACjD,YAAY;wBACZ,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC;qBAChC;iBACD;gBAED,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,aAAa,EAAE;oBACtC,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC;iBAChC;gBAED,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,aAAa,EAAE;oBACtC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,aAAa,CAAC;iBAChC;gBAED,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;oBAC3L,OAAO;iBACP;gBAED,IAAI,QAAQ,GAAG,CAAC,EAAE;oBACjB,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBAE7C,IAAI,YAAU,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC/F,IAAI,YAAU,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;oBAE3F,IAAI,CAAC,WAAW,GAAG,YAAU,CAAC;oBAC9B,IAAI,CAAC,WAAW,GAAG,YAAU,CAAC;oBAE9B,IAAI,YAAU,EAAE;wBACf,OAAO,YAAU,CAAC;qBAClB;yBACI,IAAI,YAAU,EAAE;wBACpB,OAAO,YAAU,CAAC;qBAClB;iBACD;qBACI;oBACJ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBACzB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;iBACrB;aACD;QACF,CAAC;;IAOD,sBAAW,wBAAM;QALjB;;;;WAIG;aACH;YACC,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;;;OAAA;;;;;eAGD,UAAyB,QAA6C,EAAE,SAAwB;YAC/F,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEhC,IAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpC,IAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAExC,IAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,KAAK,IAAI,IAAI,EAAE;gBAClB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACnC;YAED,IAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI,KAAK,IAAI,IAAI,EAAE;gBAClB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACnC;QACF,CAAC;;;;;;eAED,UAAwB,SAA8C,EAAE,MAAe,IAAI,CAAC;;IAgC5F;;OAEG;;;;;eACH;QACA,CAAC;;IAED;;OAEG;;;;;eACH;QACA,CAAC;;;;;;eAED;QACA,CAAC;;;;;;eAED;YAAA,iBAQC;YAPA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS;gBAC9B,KAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAC,SAAS;gBAC7C,KAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC,CAAC,CAAA;QACH,CAAC;;;;;;eAOD;YACC,iBAAM,gBAAgB,WAAE,CAAC;YAEzB,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;gBAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;aACrC;iBACI;gBACJ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aACtC;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACjD,IAAI,CAAC,KAAM,CAAC,aAAa,EAAE,CAAC;gBAE5B,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACjC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAE7B,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;gBAE9E,IAAI,KAAK,GAAG,CAAC,YAAY,EAAE;oBAC1B,IAAI,KAAK,GAAG,KAAK,GAAG,YAAY,CAAC;oBACjC,KAAK,GAAG,CAAC,YAAY,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACxB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;qBAChC;iBACD;gBACD,IAAI,GAAG,GAAG,CAAC,GAAG,YAAY,EAAE;oBAC3B,IAAI,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC;oBACnC,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAExB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;wBAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;qBACpC;iBACD;aACD;YAGD,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;YACjC,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACrD,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjF,QAAQ,CAAC,SAAS,EAAE,CAAC;YAErB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC5B,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACpC,IAAI,OAAO,EAAE;oBACZ,IAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC/C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACvB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC7C,OAAO,CAAC,YAAY,EAAE,CAAC;oBAEvB,IAAI,YAAY,EAAE;wBACjB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;wBACnF,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;qBAC7B;iBACD;aACD;QACF,CAAC;;;;;;eAED;YACC,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;YACrC,IAAI,OAAO,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;aAClD;QACF,CAAC;;;;;;eAED;YACC,iBAAM,aAAa,WAAE,CAAC;YACtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7B,CAAC;;IAED;;OAEG;;;;;eACH,UAAoB,KAAc;YAAlC,iBAyBC;YAxBA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEtC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;YACvB,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACtD,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE5D,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE1D,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE;gBAChB,KAAK,CAAC,oBAAoB,CAAC,KAAI,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;gBACd,KAAK,CAAC,oBAAoB,CAAC,KAAI,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE;gBACtC,KAAI,CAAC,aAAa,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACvC,KAAI,CAAC,aAAa,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;;IAED;;OAEG;;;;;eACH,UAAoB,QAAiC;YACpD,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACtC,OAAO,iBAAM,YAAY,YAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;;IAED;;OAEG;;;;;eACH,UAAoB,QAAiC;YACpD,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACrC,OAAO,iBAAM,YAAY,YAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;;;;;;eAGD,UAAuB,QAAiC,EAAE,OAAgB;YACzE,IAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,KAAK,EAAE;gBACV,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;aACrC;YACD,IAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,IAAI,EAAE;gBACT,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;aACpC;YACD,IAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,IAAI,EAAE;gBACT,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;aACpC;YACD,IAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,QAAQ,EAAE;gBACb,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;aACxC;YAED,IAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,MAAM,EAAE;gBACX,IAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACpC,IAAI,MAAM,EAAE;oBACX,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;iBACtC;aACD;QACF,CAAC;;;;;;eAOD,UAAqB,QAA6C,EAAE,IAAmB;YACtF,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAC3B,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aACnC;YAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC1B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aAClC;YAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC1B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aAClC;YAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBAC9B,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aACtC;YAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;;;;;;eAED,UAAyB,QAA6C;YACrE,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEpC,IAAI,CAAC,MAAM,IAAI,UAAU,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBACtD,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;aAChD;YAED,IAAI,MAAM,EAAE;gBACX,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;gBACnB,IAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAEpC,IAAI,MAAM,EAAE;oBACX,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBAC9B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAClC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;wBACnB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBAC5C;iBACD;aACD;QACF,CAAC;;;;;;eAED;YACC,iBAAM,aAAa,WAAE,CAAC;YAEtB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,KAAK,EAAE;gBACV,KAAK,CAAC,kBAAkB,EAAE,CAAC;aAC3B;YACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC;;IAED;;OAEG;;;;;eACH,UAAuB,QAA6C;YACnE,iBAAM,eAAe,YAAC,QAAQ,CAAC,CAAC;YAChC,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtC,IAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,KAAK,EAAE;gBACV,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnC,KAAK,CAAC,OAAO,EAAE,CAAC;aAChB;YACD,IAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,IAAI,EAAE;gBACT,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,OAAO,EAAE,CAAC;aACf;YACD,IAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,IAAI,EAAE;gBACT,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,OAAO,EAAE,CAAC;aACf;YACD,IAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,QAAQ,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACzC,QAAQ,CAAC,OAAO,EAAE,CAAC;aACnB;QACF,CAAC;;;;;;eAED;YACC,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE;gBAC3B,IAAM,MAAM,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAM,QAAM,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;gBAE1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,QAAQ;oBACpC,IAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;wBAC/B,IAAM,QAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;wBACnC,IAAM,CAAC,GAAG,QAAM,CAAC,KAAK,GAAG,QAAM,CAAC,IAAI,CAAC;wBAErC,IAAI,CAAC,GAAG,QAAM,EAAE;4BACf,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;yBAC9C;qBACD;gBACF,CAAC,CAAC,CAAA;aACF;YACD,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;YAC1E,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;;;;;;eAED,UAA6B,QAAgB,EAAE,YAA8B;YAC5E,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAE7C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;YAChC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YAElC,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC;;IAGD;;;OAGG;;;;;eACH;YAAA,iBA4CC;YA3CA,IAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;YACpC,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;YACrC,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEtC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAE7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,MAAM;oBAC/B,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAI,EAAE;wBACpC,IAAM,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAS,CAAC,CAAC;wBACvD,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;4BACvD,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;4BACpC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;yBACnC;6BACI;4BACJ,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;yBACrC;qBACD;gBACF,CAAC,CAAC,CAAA;gBAGF,IAAI,OAAO,EAAE;oBACZ,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;oBAEtC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;wBAC5B,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC;qBAC9E;oBACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;wBAC3B,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;wBAC3C,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;wBAE5C,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;4BAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBAChB;6BACI;4BACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBAChB;qBACD;yBACI;wBACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBAChB;iBACD;aACD;QACF,CAAC;;;;;;eAED,UAA6B,OAAgB,EAAE,QAAgB;YAC9D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,CAAC;;IAUD;;OAEG;;;;;eACH,UAAyB,QAAgB,EAAE,SAAiB;YAC3D,OAAO,QAAQ,CAAC;QACjB,CAAC;;IAED;;OAEG;;;;;eACH;YACC,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClC,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,EAAE,CAAC;aACf;QACF,CAAC;;IAED;;OAEG;;;;;eACH;YACC,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClC,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,EAAE,CAAC;aACf;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAA6B,SAAsC,EAAE,OAAsB;QAE3F,CAAC;;;;;;eAED;YACC,iBAAM,WAAW,WAAE,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC3B,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAA4B,UAAkB;YAC7C,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtC,OAAO,QAAQ,CAAC,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACpE,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAAsB,QAAgB;YACrC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC;;IAED;;;;OAIG;;;;;eACH,UAAmB,QAAgB;YAClC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;;IAWD;;OAEG;;;;;eACH,UAAiB,SAAsC,EAAE,SAAsC,EAAE,aAAqB,EAAE,UAAkB;YACzI,OAAO,KAAK,CAAC;QACd,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAAuB,YAAqC;YAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;;IAED;;OAEG;;;;;eACH,UAAwB,OAAiB,IAAI,CAAC;;IAlyB9C;;;;eAAkC,MAAM;OAAC;IACzC;;;;eAA0C,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;OAAC;IAkyBzF,WAAC;CAAA,AApyBD,CAA2D,SAAS,GAoyBnE;SApyBqB,IAAI","sourcesContent":["import type { AxisRenderer } from \"./AxisRenderer\";\nimport type { AxisLabel } from \"./AxisLabel\";\nimport type { AxisTick } from \"./AxisTick\";\nimport type { Graphics } from \"../../../core/render/Graphics\";\nimport type { Grid } from \"./Grid\";\nimport type { AxisBullet } from \"./AxisBullet\";\nimport type { XYChart } from \"../XYChart\";\nimport type { XYSeries, IXYSeriesDataItem } from \"../series/XYSeries\";\nimport type { Animation } from \"../../../core/util/Entity\";\nimport type { Tooltip } from \"../../../core/render/Tooltip\";\nimport type { Root } from \"../../../core/Root\";\n\nimport { DataItem } from \"../../../core/render/Component\";\nimport { Component, IComponentSettings, IComponentPrivate, IComponentEvents, IComponentDataItem } from \"../../../core/render/Component\";\nimport { Container } from \"../../../core/render/Container\";\nimport { p100 } from \"../../../core/util/Percent\";\nimport { List } from \"../../../core/util/List\";\nimport { Rectangle } from \"../../../core/render/Rectangle\";\n\nimport * as $array from \"../../../core/util/Array\";\nimport * as $type from \"../../../core/util/Type\";\nimport * as $utils from \"../../../core/util/Utils\";\n\n\n\nexport interface IAxisSettings<R extends AxisRenderer> extends IComponentSettings {\n\t/**\n\t * A renderer object which is responsible of rendering visible axis elements.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/#Axis_renderer} for more info\n\t */\n\trenderer: R;\n\n\t/**\n\t * The initial relative zoom start position of the axis.\n\t *\n\t * E.g. stting it to `0.1` will pre-zoom axis to 10% from the start.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Pre_zooming_axes} for more info\n\t */\n\tstart?: number;\n\n\t/**\n\t * The initial relative zoom end position of the axis.\n\t *\n\t * E.g. stting it to `0.9` will pre-zoom axis to 10% from the end.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Pre_zooming_axes} for more info\n\t */\n\tend?: number;\n\n\t/**\n\t * Maximum number of times the scope of the axis could auto-zoom-in.\n\t *\n\t * This is to prevent axis jumping too drastically when scrolling/zooming.\n\t *\n\t * @default 1000\n\t */\n\tmaxZoomFactor?: number;\n\n\t/**\n\t * Maximum number of axis elements to show at a time.\n\t *\n\t * E.g. for a [[CategoryAxis]] that would be number of categories.\n\t * For a [[DateAxis]] it would be number of `baseInterval`.\n\t *\n\t * The axis will not allow to be zoomed out beyond this number.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Limiting_zoom_scope} for more info\n\t */\n\tmaxZoomCount?: number;\n\n\t/**\n\t * Minimum number of axis elements to show at a time.\n\t *\n\t * E.g. for a [[CategoryAxis]] that would be number of categories.\n\t * For a [[DateAxis]] it would be number of `baseInterval`.\n\t *\n\t * The axis will not allow to be zoomed in beyond this number.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Limiting_zoom_scope} for more info\n\t */\n\tminZoomCount?: number;\n\n\t/**\n\t * Base value of the axis.\n\t */\n\tbaseValue?: number;\n\n\t/**\n\t * If set to `false` the axis will be exempt when chart is panned\n\t * horizontally, and will keep its current position.`\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Excluding_axes_from_pan_or_zoom} for more info\n\t */\n\tpanX?: boolean;\n\n\t/**\n\t * If set to `false` the axis will be exempt when chart is panned\n\t * vertically, and will keep its current position.`\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Excluding_axes_from_pan_or_zoom} for more info\n\t */\n\tpanY?: boolean;\n\n\t/**\n\t * If set to `false` the axis will be exempt when chart is zoomed\n\t * horizontally, and will keep its current zoom/position.`\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Excluding_axes_from_pan_or_zoom} for more info\n\t */\n\tzoomX?: boolean;\n\n\t/**\n\t * If set to `false` the axis will be exempt when chart is zoomed\n\t * vertically, and will keep its current zoom/position.`\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Excluding_axes_from_pan_or_zoom} for more info\n\t */\n\tzoomY?: boolean;\n\n\t/**\n\t * A relative distance the axis is allowed to be zoomed/panned beyond its\n\t * actual scope.\n\t *\n\t * @default 0.1\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Over_zooming} for more info\n\t */\n\tmaxDeviation?: number;\n\n\t/**\n\t * [[Tooltip]] element to use for axis.\n\t */\n\ttooltip?: Tooltip;\n\n\t/**\n\t * `tooltipLocation` indicates\n\t * which relative place to snap to: `0` beginning, `0.5` - middle, `1` - end.\n\t *\n\t * @default 0.5\n\t */\n\ttooltipLocation?: number;\n\n\t/**\n\t * Should tooltip snap to the `tooltipLocation` (`true`) or follow cursor.\n\t *\n\t * @default true\n\t */\n\tsnapTooltip?: boolean;\n\n\t/**\n\t * If set to `true` (default) the axis width will stay constant across all\n\t * zooms, even if actual length of all visible labels changes.\n\t *\n\t * @default true\n\t */\n\tfixAxisSize?: boolean;\n\n\t/**\n\t * A function that will be used to create bullets on each cell.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/#Axis_bullets} for more info\n\t */\n\tbullet?: (root: Root, axis: Axis<AxisRenderer>, dataItem: DataItem<IAxisDataItem>) => AxisBullet;\n\n}\n\nexport interface IAxisEvents extends IComponentEvents {\n}\n\nexport interface IAxisPrivate extends IComponentPrivate {\n\n\t/**\n\t * @ignore\n\t */\n\tname?: \"value\" | \"date\" | \"category\";\n\n\t/**\n\t * @ignore\n\t */\n\tupdateScrollbar?: boolean;\n\n\t/**\n\t * @ignore\n\t */\n\tmaxZoomFactor?: number;\n}\n\nexport interface IAxisDataItem extends IComponentDataItem {\n\n\t/**\n\t * Axis label element.\n\t */\n\tlabel?: AxisLabel;\n\n\t/**\n\t * Tick element.\n\t */\n\ttick?: AxisTick;\n\n\t/**\n\t * Grid line element.\n\t */\n\tgrid?: Grid;\n\n\t/**\n\t * Axis fill element.\n\t */\n\taxisFill?: Graphics;\n\n\t/**\n\t * Bullet element.\n\t */\n\tbullet?: AxisBullet;\n\n\t/**\n\t * Indicates if this data item represents an axis range.\n\t */\n\tisRange?: boolean;\n\n\t/**\n\t * If set to `true`, the grid and axis fill of this data item will be drawn\n\t * above series.\n\t *\n\t * NOTE: this needs to be set **before** crating an axis range. Updating this\n\t * dynamically won't have any effect.\n\t *\n\t * NOTE: if you need all grid to be drawn above series, you can brig it to\n\t * front with `chart.gridContainer.toFront();`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/axis-ranges/#Grid_fill_above_series} for more info\n\t * @default false\n\t */\n\tabove?: boolean\n\n}\n\n/**\n * A base class for all axes.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/#Adding_axes} for more info\n */\nexport abstract class Axis<R extends AxisRenderer> extends Component {\n\tpublic static className: string = \"Axis\";\n\tpublic static classNames: Array<string> = Component.classNames.concat([Axis.className]);\n\n\tdeclare public _settings: IAxisSettings<R>;\n\tdeclare public _privateSettings: IAxisPrivate;\n\tdeclare public _dataItemSettings: IAxisDataItem;\n\tdeclare public _events: IAxisEvents;\n\n\tdeclare public _seriesType: XYSeries;\n\n\tprotected _series: Array<this[\"_seriesType\"]> = [];\n\n\tpublic _isPanning: boolean = false;\n\n\t/**\n\t * A [[Container]] that holds all the axis label elements.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly labelsContainer: Container = this.children.push(Container.new(this._root, {}));\n\n\t/**\n\t * A [[Container]] that holds all the axis grid and fill elements.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly gridContainer: Container = Container.new(this._root, { width: p100, height: p100 });\n\n\t/**\n\t * A [[Container]] that holds axis grid elements which goes above the series.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly topGridContainer: Container = Container.new(this._root, { width: p100, height: p100 });\n\n\t/**\n\t * A [[Container]] that holds all the axis bullet elements.\n\t *\n\t * @default new Container\n\t */\n\tpublic readonly bulletsContainer: Container = this.children.push(Container.new(this._root, { isMeasured: false, width: p100, height: p100, position: \"absolute\" }));\n\n\t/**\n\t * A referenece to the the chart the axis belongs to.\n\t */\n\tpublic chart: XYChart | undefined;\n\n\tprotected _rangesDirty: Boolean = false;\n\n\tpublic _panStart: number = 0;\n\tpublic _panEnd: number = 1;\n\n\tprotected _sAnimation?: Animation<this[\"_settings\"][\"start\"]>;\n\tprotected _eAnimation?: Animation<this[\"_settings\"][\"end\"]>;\n\n\t/**\n\t * A list of axis ranges.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/axis-ranges/} for more info\n\t * @default new List()\n\t */\n\tpublic readonly axisRanges: List<DataItem<this[\"_dataItemSettings\"]>> = new List();\n\n\tpublic _seriesAxisRanges: Array<DataItem<this[\"_dataItemSettings\"]>> = [];\n\n\t/**\n\t * A control label that is invisible but is used to keep width the width of\n\t * the axis constant.\n\t */\n\tpublic ghostLabel!: AxisLabel;\n\n\tprotected _cursorPosition: number = -1;\n\n\tprotected _snapToSeries?: Array<XYSeries>;\n\n\t/**\n\t * A container above the axis that can be used to add additional stuff into\n\t * it. For example a legend, label, or an icon.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/axis-headers/} for more info\n\t * @default new Container\n\t */\n\tpublic axisHeader: Container = this.children.push(Container.new(this._root, {\n\t\tthemeTags: [\"axis\", \"header\"],\n\t\tposition: \"absolute\",\n\t\tbackground: Rectangle.new(this._root, {\n\t\t\tthemeTags: [\"header\", \"background\"],\n\t\t\tfill: this._root.interfaceColors.get(\"background\")\n\t\t})\n\t}));\n\n\tprotected _dispose() {\n\t\t// these could be in other parents, so disposing just in case\n\t\tthis.gridContainer.dispose();\n\t\tthis.topGridContainer.dispose();\n\t\tthis.bulletsContainer.dispose();\n\t\tthis.labelsContainer.dispose();\n\t\tthis.axisHeader.dispose();\n\t\tsuper._dispose();\n\t}\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\n\t\tthis.setPrivate(\"updateScrollbar\", true);\n\n\t\tthis._disposers.push(this.axisRanges.events.onAll((change) => {\n\t\t\tif (change.type === \"clear\") {\n\t\t\t\tthis.axisRanges.each((dataItem) => {\n\t\t\t\t\tdataItem.dispose();\n\t\t\t\t});\n\t\t\t} else if (change.type === \"push\") {\n\t\t\t\tthis._processAxisRange(change.newValue, [\"range\"]);\n\t\t\t} else if (change.type === \"setIndex\") {\n\t\t\t\tthis._processAxisRange(change.newValue, [\"range\"]);\n\t\t\t} else if (change.type === \"insertIndex\") {\n\t\t\t\tthis._processAxisRange(change.newValue, [\"range\"]);\n\t\t\t} else if (change.type === \"removeIndex\") {\n\t\t\t\tchange.oldValue.dispose();\n\t\t\t} else if (change.type === \"moveIndex\") {\n\t\t\t\tthis._processAxisRange(change.value, [\"range\"]);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unknown IStreamEvent type\");\n\t\t\t}\n\t\t}))\n\n\t\tconst renderer = this.get(\"renderer\");\n\t\tif (renderer) {\n\t\t\trenderer.axis = this;\n\t\t\trenderer.processAxis();\n\t\t}\n\t\tthis.children.push(renderer);\n\t\tthis.ghostLabel = renderer.makeLabel(new DataItem(this, undefined, {}), []);\n\t\tthis.ghostLabel.set(\"opacity\", 0);\n\t}\n\n\t/**\n\t * Zooms the axis to relative locations.\n\t *\n\t * Both `start` and `end` are relative: 0 means start of the axis, 1 - end.\n\t *\n\t * @param start Relative start\n\t * @param end Relative end\n\t * @param duration Duration of the zoom animation in milliseconds\n\t * @return Zoom animation\n\t */\n\tpublic zoom(start: number, end: number, duration?: number): Animation<this[\"_settings\"][\"start\"]> | Animation<this[\"_settings\"][\"end\"]> | undefined {\n\n\t\tif (this.get(\"start\") !== start || this.get(\"end\") != end) {\n\n\t\t\tlet sAnimation = this._sAnimation;\n\t\t\tlet eAnimation = this._eAnimation;\n\n\t\t\tlet maxDeviation = this.get(\"maxDeviation\", 0.5) * Math.min(1, (end - start));\n\n\t\t\tif (start < - maxDeviation) {\n\t\t\t\tstart = -maxDeviation;\n\t\t\t}\n\n\t\t\tif (end > 1 + maxDeviation) {\n\t\t\t\tend = 1 + maxDeviation;\n\t\t\t}\n\n\t\t\tif (start > end) {\n\t\t\t\t[start, end] = [end, start];\n\t\t\t}\n\n\t\t\tif (!$type.isNumber(duration)) {\n\t\t\t\tduration = this.get(\"interpolationDuration\", 0);\n\t\t\t}\n\n\t\t\tlet priority: \"start\" | \"end\" = \"end\";\n\t\t\tlet maxZoomFactor = this.getPrivate(\"maxZoomFactor\", this.get(\"maxZoomFactor\", 100));\n\n\t\t\tif (end === 1 && start !== 0) {\n\t\t\t\tif (start < this.get(\"start\")) {\n\t\t\t\t\tpriority = \"start\";\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpriority = \"end\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (start === 0 && end !== 1) {\n\t\t\t\tif (end > this.get(\"end\")) {\n\t\t\t\t\tpriority = \"end\";\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpriority = \"start\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet minZoomCount = this.get(\"minZoomCount\");\n\t\t\tlet maxZoomCount = this.get(\"maxZoomCount\");\n\n\t\t\tif ($type.isNumber(minZoomCount)) {\n\t\t\t\tmaxZoomFactor = maxZoomFactor / minZoomCount;\n\t\t\t}\n\n\t\t\tlet minZoomFactor: number = 1;\n\n\t\t\tif ($type.isNumber(maxZoomCount)) {\n\t\t\t\tminZoomFactor = maxZoomFactor / maxZoomCount;\n\t\t\t}\n\n\t\t\t// most likely we are dragging left scrollbar grip here, so we tend to modify end\n\t\t\tif (priority === \"start\") {\n\t\t\t\tif (maxZoomCount > 0) {\n\t\t\t\t\t// add to the end\n\t\t\t\t\tif (1 / (end - start) < minZoomFactor) {\n\t\t\t\t\t\tend = start + 1 / minZoomFactor;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// add to the end\n\t\t\t\tif (1 / (end - start) > maxZoomFactor) {\n\t\t\t\t\tend = start + 1 / maxZoomFactor;\n\t\t\t\t}\n\t\t\t\t//unless end is > 0\n\t\t\t\tif (end > 1 && end - start < 1 / maxZoomFactor) {\n\t\t\t\t\t//end = 1;\n\t\t\t\t\tstart = end - 1 / maxZoomFactor;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// most likely we are dragging right, so we modify left\n\t\t\telse {\n\t\t\t\tif (maxZoomCount > 0) {\n\t\t\t\t\t// add to the end\n\t\t\t\t\tif (1 / (end - start) < minZoomFactor) {\n\t\t\t\t\t\tstart = end - 1 / minZoomFactor;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// remove from start\n\t\t\t\tif (1 / (end - start) > maxZoomFactor) {\n\t\t\t\t\tstart = end - 1 / maxZoomFactor;\n\t\t\t\t}\n\t\t\t\tif (start < 0 && end - start < 1 / maxZoomFactor) {\n\t\t\t\t\t//start = 0;\n\t\t\t\t\tend = start + 1 / maxZoomFactor;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (1 / (end - start) > maxZoomFactor) {\n\t\t\t\tend = start + 1 / maxZoomFactor;\n\t\t\t}\n\n\t\t\tif (1 / (end - start) > maxZoomFactor) {\n\t\t\t\tstart = end - 1 / maxZoomFactor;\n\t\t\t}\n\n\t\t\tif (((sAnimation && sAnimation.playing && sAnimation.to == start) || this.get(\"start\") == start) && ((eAnimation && eAnimation.playing && eAnimation.to == end) || this.get(\"end\") == end)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (duration > 0) {\n\t\t\t\tlet easing = this.get(\"interpolationEasing\");\n\n\t\t\t\tlet sAnimation = this.animate({ key: \"start\", to: start, duration: duration, easing: easing });\n\t\t\t\tlet eAnimation = this.animate({ key: \"end\", to: end, duration: duration, easing: easing });\n\n\t\t\t\tthis._sAnimation = sAnimation;\n\t\t\t\tthis._eAnimation = eAnimation;\n\n\t\t\t\tif (sAnimation) {\n\t\t\t\t\treturn sAnimation;\n\t\t\t\t}\n\t\t\t\telse if (eAnimation) {\n\t\t\t\t\treturn eAnimation;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.set(\"start\", start);\n\t\t\t\tthis.set(\"end\", end);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * A list of series using this axis.\n\t *\n\t * @return Series\n\t */\n\tpublic get series(): Array<this[\"_seriesType\"]> {\n\t\treturn this._series;\n\t}\n\n\n\tpublic _processAxisRange(dataItem: DataItem<this[\"_dataItemSettings\"]>, themeTags: Array<string>) {\n\t\tdataItem.setRaw(\"isRange\", true);\n\t\tthis._createAssets(dataItem, themeTags);\n\t\tthis._rangesDirty = true;\n\t\tthis._prepareDataItem(dataItem);\n\n\t\tconst above = dataItem.get(\"above\");\n\t\tconst container = this.topGridContainer;\n\n\t\tconst grid = dataItem.get(\"grid\");\n\t\tif (above && grid) {\n\t\t\tcontainer.children.moveValue(grid);\n\t\t}\n\n\t\tconst fill = dataItem.get(\"axisFill\");\n\t\tif (above && fill) {\n\t\t\tcontainer.children.moveValue(fill);\n\t\t}\n\t}\n\n\tpublic _prepareDataItem(_dataItem: DataItem<this[\"_dataItemSettings\"]>, _index?: number) { }\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract getX(_value: any, _location: number, baseValue?: any): number;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract getY(_value: any, _location: number, baseValue?: any): number;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract getDataItemCoordinateX(_dataItem: DataItem<IXYSeriesDataItem>, _field: string, _cellLocation?: number, _axisLocation?: number): number;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract getDataItemCoordinateY(_dataItem: DataItem<IXYSeriesDataItem>, _field: string, _cellLocation?: number, _axisLocation?: number): number;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract getDataItemPositionX(_dataItem: DataItem<IXYSeriesDataItem>, _field: string, _cellLocation?: number, _axisLocation?: number): number;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract getDataItemPositionY(_dataItem: DataItem<IXYSeriesDataItem>, _field: string, _cellLocation?: number, _axisLocation?: number): number;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtyExtremes() {\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtySelectionExtremes() {\n\t}\n\n\tpublic _calculateTotals() {\n\t}\n\n\tprotected _updateAxisRanges() {\n\t\tthis.axisRanges.each((axisRange) => {\n\t\t\tthis._prepareDataItem(axisRange);\n\t\t})\n\n\t\t$array.each(this._seriesAxisRanges, (axisRange) => {\n\t\t\tthis._prepareDataItem(axisRange);\n\t\t})\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract baseValue(): any;\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tif (this.get(\"fixAxisSize\")) {\n\t\t\tthis.ghostLabel.set(\"visible\", true);\n\t\t}\n\t\telse {\n\t\t\tthis.ghostLabel.set(\"visible\", false);\n\t\t}\n\n\t\tif (this.isDirty(\"start\") || this.isDirty(\"end\")) {\n\t\t\tthis.chart!._updateCursor();\n\n\t\t\tlet start = this.get(\"start\", 0);\n\t\t\tlet end = this.get(\"end\", 1);\n\n\t\t\tlet maxDeviation = this.get(\"maxDeviation\", 0.5) * Math.min(1, (end - start));\n\n\t\t\tif (start < -maxDeviation) {\n\t\t\t\tlet delta = start + maxDeviation;\n\t\t\t\tstart = -maxDeviation;\n\t\t\t\tthis.setRaw(\"start\", start);\n\t\t\t\tif (this.isDirty(\"end\")) {\n\t\t\t\t\tthis.setRaw(\"end\", end - delta);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (end > 1 + maxDeviation) {\n\t\t\t\tlet delta = end - 1 - maxDeviation;\n\t\t\t\tend = 1 + maxDeviation;\n\t\t\t\tthis.setRaw(\"end\", end);\n\n\t\t\t\tif (this.isDirty(\"start\")) {\n\t\t\t\t\tthis.setRaw(\"start\", start - delta);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\n\t\tconst renderer = this.get(\"renderer\");\n\t\trenderer._start = this.get(\"start\")!;\n\t\trenderer._end = this.get(\"end\")!;\n\t\trenderer._inversed = renderer.get(\"inversed\", false);\n\t\trenderer._axisLength = renderer.axisLength() / (renderer._end - renderer._start);\n\t\trenderer._updateLC();\n\n\t\tif (this.isDirty(\"tooltip\")) {\n\t\t\tconst tooltip = this.get(\"tooltip\");\n\t\t\tif (tooltip) {\n\t\t\t\tconst rendererTags = renderer.get(\"themeTags\");\n\t\t\t\ttooltip.addTag(\"axis\");\n\t\t\t\ttooltip.addTag(this.className.toLowerCase());\n\t\t\t\ttooltip._applyThemes();\n\n\t\t\t\tif (rendererTags) {\n\t\t\t\t\ttooltip.set(\"themeTags\", $utils.mergeTags(tooltip.get(\"themeTags\"), rendererTags));\n\t\t\t\t\ttooltip.label._applyThemes();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _updateTooltipBounds() {\n\t\tconst tooltip = this.get(\"tooltip\")!;\n\t\tif (tooltip) {\n\t\t\tthis.get(\"renderer\").updateTooltipBounds(tooltip);\n\t\t}\n\t}\n\n\tpublic _updateBounds() {\n\t\tsuper._updateBounds();\n\t\tthis._updateTooltipBounds();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic processChart(chart: XYChart) {\n\t\tthis.chart = chart;\n\t\tconst renderer = this.get(\"renderer\");\n\n\t\trenderer.chart = chart;\n\t\tchart.gridContainer.children.push(this.gridContainer);\n\t\tchart.topGridContainer.children.push(this.topGridContainer);\n\n\t\tchart.axisHeadersContainer.children.push(this.axisHeader);\n\n\t\tthis.on(\"start\", () => {\n\t\t\tchart._handleAxisSelection(this);\n\t\t});\n\t\tthis.on(\"end\", () => {\n\t\t\tchart._handleAxisSelection(this);\n\t\t});\n\n\t\tchart.plotContainer.onPrivate(\"width\", () => {\n\t\t\tthis.markDirtySize();\n\t\t});\n\t\tchart.plotContainer.onPrivate(\"height\", () => {\n\t\t\tthis.markDirtySize();\n\t\t});\n\n\t\tchart.processAxis(this);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic hideDataItem(dataItem: DataItem<IAxisDataItem>): Promise<void> {\n\t\tthis._toggleDataItem(dataItem, false);\n\t\treturn super.hideDataItem(dataItem);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic showDataItem(dataItem: DataItem<IAxisDataItem>): Promise<void> {\n\t\tthis._toggleDataItem(dataItem, true);\n\t\treturn super.showDataItem(dataItem);\n\t}\n\n\n\tpublic _toggleDataItem(dataItem: DataItem<IAxisDataItem>, visible: boolean) {\n\t\tconst label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\tlabel.setPrivate(\"visible\", visible);\n\t\t}\n\t\tconst grid = dataItem.get(\"grid\");\n\t\tif (grid) {\n\t\t\tgrid.setPrivate(\"visible\", visible);\n\t\t}\n\t\tconst tick = dataItem.get(\"tick\");\n\t\tif (tick) {\n\t\t\ttick.setPrivate(\"visible\", visible);\n\t\t}\n\t\tconst axisFill = dataItem.get(\"axisFill\");\n\t\tif (axisFill) {\n\t\t\taxisFill.setPrivate(\"visible\", visible);\n\t\t}\n\n\t\tconst bullet = dataItem.get(\"bullet\");\n\t\tif (bullet) {\n\t\t\tconst sprite = bullet.get(\"sprite\");\n\t\t\tif (sprite) {\n\t\t\t\tsprite.setPrivate(\"visible\", visible);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract basePosition(): number;\n\n\tpublic _createAssets(dataItem: DataItem<this[\"_dataItemSettings\"]>, tags: Array<string>) {\n\t\tconst renderer = this.get(\"renderer\");\n\n\t\tif (!dataItem.get(\"label\")) {\n\t\t\trenderer.makeLabel(dataItem, tags);\n\t\t}\n\n\t\tif (!dataItem.get(\"grid\")) {\n\t\t\trenderer.makeGrid(dataItem, tags);\n\t\t}\n\n\t\tif (!dataItem.get(\"tick\")) {\n\t\t\trenderer.makeTick(dataItem, tags);\n\t\t}\n\n\t\tif (!dataItem.get(\"axisFill\")) {\n\t\t\trenderer.makeAxisFill(dataItem, tags);\n\t\t}\n\n\t\tthis._processBullet(dataItem);\n\t}\n\n\tprotected _processBullet(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tlet bullet = dataItem.get(\"bullet\");\n\t\tlet axisBullet = this.get(\"bullet\");\n\n\t\tif (!bullet && axisBullet && !dataItem.get(\"isRange\")) {\n\t\t\tbullet = axisBullet(this._root, this, dataItem);\n\t\t}\n\n\t\tif (bullet) {\n\t\t\tbullet.axis = this;\n\t\t\tconst sprite = bullet.get(\"sprite\");\n\n\t\t\tif (sprite) {\n\t\t\t\tsprite._setDataItem(dataItem);\n\t\t\t\tdataItem.setRaw(\"bullet\", bullet);\n\t\t\t\tif (!sprite.parent) {\n\t\t\t\t\tthis.bulletsContainer.children.push(sprite);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _afterChanged() {\n\t\tsuper._afterChanged();\n\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\tchart._updateChartLayout();\n\t\t}\n\t\tthis.get(\"renderer\")._updatePositions();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.disposeDataItem(dataItem);\n\t\tconst renderer = this.get(\"renderer\");\n\t\tconst label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\trenderer.labels.removeValue(label);\n\t\t\tlabel.dispose();\n\t\t}\n\t\tconst tick = dataItem.get(\"tick\");\n\t\tif (tick) {\n\t\t\trenderer.ticks.removeValue(tick);\n\t\t\ttick.dispose();\n\t\t}\n\t\tconst grid = dataItem.get(\"grid\");\n\t\tif (grid) {\n\t\t\trenderer.grid.removeValue(grid);\n\t\t\tgrid.dispose();\n\t\t}\n\t\tconst axisFill = dataItem.get(\"axisFill\");\n\t\tif (axisFill) {\n\t\t\trenderer.axisFills.removeValue(axisFill);\n\t\t\taxisFill.dispose();\n\t\t}\n\t}\n\n\tprotected _updateGhost() {\n\t\tconst ghostLabel = this.ghostLabel;\n\t\tif (!ghostLabel.isHidden()) {\n\t\t\tconst bounds = ghostLabel.localBounds();\n\t\t\tconst gWidth = bounds.right - bounds.left;\n\n\t\t\t$array.each(this.dataItems, (dataItem) => {\n\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\tif (label && !label.isHidden()) {\n\t\t\t\t\tconst bounds = label.localBounds();\n\t\t\t\t\tconst w = bounds.right - bounds.left;\n\n\t\t\t\t\tif (w > gWidth) {\n\t\t\t\t\t\tghostLabel.set(\"text\", label.text._getText());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tlet start = this.get(\"start\", 0);\n\t\tlet end = this.get(\"end\", 1);\n\t\tthis.get(\"renderer\").updateLabel(ghostLabel, start + (end - start) * 0.5);\n\t\tghostLabel.setPrivate(\"visible\", true);\n\t}\n\n\tpublic _handleCursorPosition(position: number, snapToSeries?: Array<XYSeries>) {\n\t\tconst renderer = this.get(\"renderer\");\n\t\tposition = renderer.toAxisPosition(position);\n\n\t\tthis._cursorPosition = position;\n\t\tthis._snapToSeries = snapToSeries;\n\n\t\tthis.updateTooltip();\n\t}\n\n\n\t/**\n\t * @todo needs description\n\t * Can be called when axis zoom changes and you need to update tooltip position\n\t */\n\tpublic updateTooltip() {\n\t\tconst snapToSeries = this._snapToSeries;\n\t\tlet position = this._cursorPosition;\n\t\tconst tooltip = this.get(\"tooltip\")!;\n\t\tconst renderer = this.get(\"renderer\");\n\n\t\tif ($type.isNumber(position)) {\n\n\t\t\t$array.each(this.series, (series) => {\n\t\t\t\tif (series.get(\"baseAxis\") === this) {\n\t\t\t\t\tconst dataItem = this.getSeriesItem(series, position!);\n\t\t\t\t\tif (snapToSeries && snapToSeries.indexOf(series) != -1) {\n\t\t\t\t\t\tseries.updateLegendMarker(dataItem);\n\t\t\t\t\t\tseries.updateLegendValue(dataItem);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tseries.showDataItemTooltip(dataItem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\n\n\t\t\tif (tooltip) {\n\t\t\t\trenderer.updateTooltipBounds(tooltip);\n\n\t\t\t\tif (this.get(\"snapTooltip\")) {\n\t\t\t\t\tposition = this.roundAxisPosition(position, this.get(\"tooltipLocation\", 0.5));\n\t\t\t\t}\n\t\t\t\tif (!$type.isNaN(position)) {\n\t\t\t\t\tthis._updateTooltipText(tooltip, position);\n\t\t\t\t\trenderer.positionTooltip(tooltip, position);\n\n\t\t\t\t\tif (position < this.get(\"start\") || position > this.get(\"end\")) {\n\t\t\t\t\t\ttooltip.hide(0);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\ttooltip.show(0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttooltip.hide(0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _updateTooltipText(tooltip: Tooltip, position: number) {\n\t\ttooltip.label.set(\"text\", this.getTooltipText(position));\n\t}\n\n\t/**\n\t * Returns text to be used in an axis tooltip for specific relative position.\n\t *\n\t * @param position Position\n\t * @return Tooltip text\n\t */\n\tpublic abstract getTooltipText(position: number): string | undefined;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic roundAxisPosition(position: number, _location: number): number {\n\t\treturn position;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic handleCursorShow() {\n\t\tlet tooltip = this.get(\"tooltip\");\n\t\tif (tooltip) {\n\t\t\ttooltip.show();\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic handleCursorHide() {\n\t\tlet tooltip = this.get(\"tooltip\");\n\t\tif (tooltip) {\n\t\t\ttooltip.hide();\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic processSeriesDataItem(_dataItem: DataItem<IXYSeriesDataItem>, _fields: Array<string>) {\n\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._sizeDirty = false;\n\t\tthis._rangesDirty = false;\n\t}\n\n\t/**\n\t * Converts pixel coordinate to a relative position on axis.\n\t *\n\t * @param coordinate Coordinate\n\t * @return Relative position\n\t */\n\tpublic coordinateToPosition(coordinate: number): number {\n\t\tconst renderer = this.get(\"renderer\");\n\t\treturn renderer.toAxisPosition(coordinate / renderer.axisLength());\n\t}\n\n\t/**\n\t * Converts relative position of the plot area to relative position of the\n\t * axis with zoom taken into account.\n\t *\n\t * @param position Position\n\t * @return Relative position\n\t */\n\tpublic toAxisPosition(position: number): number {\n\t\treturn this.get(\"renderer\").toAxisPosition(position);\n\t}\n\n\t/**\n\t * Adjusts position with inversed taken into account.\n\t *\n\t * @ignore\n\t */\n\tpublic fixPosition(position: number): number {\n\t\treturn this.get(\"renderer\").fixPosition(position);\n\t}\n\n\t/**\n\t * Returns a data item from series that is closest to the `position`.\n\t *\n\t * @param series Series\n\t * @param position Relative position\n\t * @return Data item\n\t */\n\tpublic abstract getSeriesItem(series: XYSeries, position: number): DataItem<IXYSeriesDataItem> | undefined\n\n\t/**\n\t * @ignore\n\t */\n\tpublic shouldGap(_dataItem: DataItem<IXYSeriesDataItem>, _nextItem: DataItem<IXYSeriesDataItem>, _autoGapCount: number, _fieldName: string): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Creates and returns an axis range object.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/axis-ranges/} for more info\n\t * @param axisDataItem Axis data item\n\t * @return Axis range\n\t */\n\tpublic createAxisRange(axisDataItem: DataItem<IAxisDataItem>): DataItem<this[\"_dataItemSettings\"]> {\n\t\treturn this.axisRanges.push(axisDataItem);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic _groupSeriesData(_series: XYSeries) { }\n}\n"]}
1
+ {"version":3,"file":"Axis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/Axis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AxisRenderer } from \"./AxisRenderer\";\nimport type { AxisLabel } from \"./AxisLabel\";\nimport type { AxisTick } from \"./AxisTick\";\nimport type { Graphics } from \"../../../core/render/Graphics\";\nimport type { Grid } from \"./Grid\";\nimport type { AxisBullet } from \"./AxisBullet\";\nimport type { XYChart } from \"../XYChart\";\nimport type { XYSeries, IXYSeriesDataItem } from \"../series/XYSeries\";\nimport type { Animation } from \"../../../core/util/Entity\";\nimport type { Tooltip } from \"../../../core/render/Tooltip\";\nimport type { Root } from \"../../../core/Root\";\n\nimport { DataItem } from \"../../../core/render/Component\";\nimport { Component, IComponentSettings, IComponentPrivate, IComponentEvents, IComponentDataItem } from \"../../../core/render/Component\";\nimport { Container } from \"../../../core/render/Container\";\nimport { p100 } from \"../../../core/util/Percent\";\nimport { List } from \"../../../core/util/List\";\nimport { Rectangle } from \"../../../core/render/Rectangle\";\n\nimport * as $array from \"../../../core/util/Array\";\nimport * as $type from \"../../../core/util/Type\";\nimport * as $utils from \"../../../core/util/Utils\";\n\n\n\nexport interface IAxisSettings<R extends AxisRenderer> extends IComponentSettings {\n\t/**\n\t * A renderer object which is responsible of rendering visible axis elements.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/#Axis_renderer} for more info\n\t */\n\trenderer: R;\n\n\t/**\n\t * The initial relative zoom start position of the axis.\n\t *\n\t * E.g. stting it to `0.1` will pre-zoom axis to 10% from the start.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Pre_zooming_axes} for more info\n\t */\n\tstart?: number;\n\n\t/**\n\t * The initial relative zoom end position of the axis.\n\t *\n\t * E.g. stting it to `0.9` will pre-zoom axis to 10% from the end.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Pre_zooming_axes} for more info\n\t */\n\tend?: number;\n\n\t/**\n\t * Maximum number of times the scope of the axis could auto-zoom-in.\n\t *\n\t * This is to prevent axis jumping too drastically when scrolling/zooming.\n\t *\n\t * @default 1000\n\t */\n\tmaxZoomFactor?: number;\n\n\t/**\n\t * Maximum number of axis elements to show at a time.\n\t *\n\t * E.g. for a [[CategoryAxis]] that would be number of categories.\n\t * For a [[DateAxis]] it would be number of `baseInterval`.\n\t *\n\t * The axis will not allow to be zoomed out beyond this number.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Limiting_zoom_scope} for more info\n\t */\n\tmaxZoomCount?: number;\n\n\t/**\n\t * Minimum number of axis elements to show at a time.\n\t *\n\t * E.g. for a [[CategoryAxis]] that would be number of categories.\n\t * For a [[DateAxis]] it would be number of `baseInterval`.\n\t *\n\t * The axis will not allow to be zoomed in beyond this number.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Limiting_zoom_scope} for more info\n\t */\n\tminZoomCount?: number;\n\n\t/**\n\t * Base value of the axis.\n\t */\n\tbaseValue?: number;\n\n\t/**\n\t * If set to `false` the axis will be exempt when chart is panned\n\t * horizontally, and will keep its current position.`\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Excluding_axes_from_pan_or_zoom} for more info\n\t */\n\tpanX?: boolean;\n\n\t/**\n\t * If set to `false` the axis will be exempt when chart is panned\n\t * vertically, and will keep its current position.`\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Excluding_axes_from_pan_or_zoom} for more info\n\t */\n\tpanY?: boolean;\n\n\t/**\n\t * If set to `false` the axis will be exempt when chart is zoomed\n\t * horizontally, and will keep its current zoom/position.`\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Excluding_axes_from_pan_or_zoom} for more info\n\t */\n\tzoomX?: boolean;\n\n\t/**\n\t * If set to `false` the axis will be exempt when chart is zoomed\n\t * vertically, and will keep its current zoom/position.`\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Excluding_axes_from_pan_or_zoom} for more info\n\t */\n\tzoomY?: boolean;\n\n\t/**\n\t * A relative distance the axis is allowed to be zoomed/panned beyond its\n\t * actual scope.\n\t *\n\t * @default 0.1\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/zoom-and-pan/#Over_zooming} for more info\n\t */\n\tmaxDeviation?: number;\n\n\t/**\n\t * [[Tooltip]] element to use for axis.\n\t */\n\ttooltip?: Tooltip;\n\n\t/**\n\t * `tooltipLocation` indicates\n\t * which relative place to snap to: `0` beginning, `0.5` - middle, `1` - end.\n\t *\n\t * @default 0.5\n\t */\n\ttooltipLocation?: number;\n\n\t/**\n\t * Should tooltip snap to the `tooltipLocation` (`true`) or follow cursor.\n\t *\n\t * @default true\n\t */\n\tsnapTooltip?: boolean;\n\n\t/**\n\t * If set to `true` (default) the axis width will stay constant across all\n\t * zooms, even if actual length of all visible labels changes.\n\t *\n\t * @default true\n\t */\n\tfixAxisSize?: boolean;\n\n\t/**\n\t * A function that will be used to create bullets on each cell.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/#Axis_bullets} for more info\n\t */\n\tbullet?: (root: Root, axis: Axis<AxisRenderer>, dataItem: DataItem<IAxisDataItem>) => AxisBullet;\n\n}\n\nexport interface IAxisEvents extends IComponentEvents {\n}\n\nexport interface IAxisPrivate extends IComponentPrivate {\n\n\t/**\n\t * @ignore\n\t */\n\tname?: \"value\" | \"date\" | \"category\";\n\n\t/**\n\t * @ignore\n\t */\n\tupdateScrollbar?: boolean;\n\n\t/**\n\t * @ignore\n\t */\n\tmaxZoomFactor?: number;\n}\n\nexport interface IAxisDataItem extends IComponentDataItem {\n\n\t/**\n\t * Axis label element.\n\t */\n\tlabel?: AxisLabel;\n\n\t/**\n\t * Tick element.\n\t */\n\ttick?: AxisTick;\n\n\t/**\n\t * Grid line element.\n\t */\n\tgrid?: Grid;\n\n\t/**\n\t * Axis fill element.\n\t */\n\taxisFill?: Graphics;\n\n\t/**\n\t * Bullet element.\n\t */\n\tbullet?: AxisBullet;\n\n\t/**\n\t * Indicates if this data item represents an axis range.\n\t */\n\tisRange?: boolean;\n\n\t/**\n\t * If set to `true`, the grid and axis fill of this data item will be drawn\n\t * above series.\n\t *\n\t * NOTE: this needs to be set **before** crating an axis range. Updating this\n\t * dynamically won't have any effect.\n\t *\n\t * NOTE: if you need all grid to be drawn above series, you can brig it to\n\t * front with `chart.gridContainer.toFront();`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/axis-ranges/#Grid_fill_above_series} for more info\n\t * @default false\n\t */\n\tabove?: boolean\n\n}\n\n/**\n * A base class for all axes.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/#Adding_axes} for more info\n */\nexport abstract class Axis<R extends AxisRenderer> extends Component {\n\tpublic static className: string = \"Axis\";\n\tpublic static classNames: Array<string> = Component.classNames.concat([Axis.className]);\n\n\tdeclare public _settings: IAxisSettings<R>;\n\tdeclare public _privateSettings: IAxisPrivate;\n\tdeclare public _dataItemSettings: IAxisDataItem;\n\tdeclare public _events: IAxisEvents;\n\n\tdeclare public _seriesType: XYSeries;\n\n\tprotected _series: Array<this[\"_seriesType\"]> = [];\n\n\tpublic _isPanning: boolean = false;\n\n\t/**\n\t * A [[Container]] that holds all the axis label elements.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly labelsContainer: Container = this.children.push(Container.new(this._root, {}));\n\n\t/**\n\t * A [[Container]] that holds all the axis grid and fill elements.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly gridContainer: Container = Container.new(this._root, { width: p100, height: p100 });\n\n\t/**\n\t * A [[Container]] that holds axis grid elements which goes above the series.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly topGridContainer: Container = Container.new(this._root, { width: p100, height: p100 });\n\n\t/**\n\t * A [[Container]] that holds all the axis bullet elements.\n\t *\n\t * @default new Container\n\t */\n\tpublic readonly bulletsContainer: Container = this.children.push(Container.new(this._root, { isMeasured: false, width: p100, height: p100, position: \"absolute\" }));\n\n\t/**\n\t * A referenece to the the chart the axis belongs to.\n\t */\n\tpublic chart: XYChart | undefined;\n\n\tprotected _rangesDirty: Boolean = false;\n\n\tpublic _panStart: number = 0;\n\tpublic _panEnd: number = 1;\n\n\tprotected _sAnimation?: Animation<this[\"_settings\"][\"start\"]>;\n\tprotected _eAnimation?: Animation<this[\"_settings\"][\"end\"]>;\n\n\t/**\n\t * A list of axis ranges.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/axis-ranges/} for more info\n\t * @default new List()\n\t */\n\tpublic readonly axisRanges: List<DataItem<this[\"_dataItemSettings\"]>> = new List();\n\n\tpublic _seriesAxisRanges: Array<DataItem<this[\"_dataItemSettings\"]>> = [];\n\n\t/**\n\t * A control label that is invisible but is used to keep width the width of\n\t * the axis constant.\n\t */\n\tpublic ghostLabel!: AxisLabel;\n\n\tprotected _cursorPosition: number = -1;\n\n\tprotected _snapToSeries?: Array<XYSeries>;\n\n\tpublic _seriesValuesDirty = false;\n\n\t/**\n\t * A container above the axis that can be used to add additional stuff into\n\t * it. For example a legend, label, or an icon.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/axis-headers/} for more info\n\t * @default new Container\n\t */\n\tpublic axisHeader: Container = this.children.push(Container.new(this._root, {\n\t\tthemeTags: [\"axis\", \"header\"],\n\t\tposition: \"absolute\",\n\t\tbackground: Rectangle.new(this._root, {\n\t\t\tthemeTags: [\"header\", \"background\"],\n\t\t\tfill: this._root.interfaceColors.get(\"background\")\n\t\t})\n\t}));\n\n\tprotected _dispose() {\n\t\t// these could be in other parents, so disposing just in case\n\t\tthis.gridContainer.dispose();\n\t\tthis.topGridContainer.dispose();\n\t\tthis.bulletsContainer.dispose();\n\t\tthis.labelsContainer.dispose();\n\t\tthis.axisHeader.dispose();\n\t\tsuper._dispose();\n\t}\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\n\t\tthis.setPrivate(\"updateScrollbar\", true);\n\n\t\tthis._disposers.push(this.axisRanges.events.onAll((change) => {\n\t\t\tif (change.type === \"clear\") {\n\t\t\t\t$array.each(change.oldValues, (dataItem) => {\n\t\t\t\t\tthis.disposeDataItem(dataItem);\n\t\t\t\t});\n\t\t\t} else if (change.type === \"push\") {\n\t\t\t\tthis._processAxisRange(change.newValue, [\"range\"]);\n\t\t\t} else if (change.type === \"setIndex\") {\n\t\t\t\tthis._processAxisRange(change.newValue, [\"range\"]);\n\t\t\t} else if (change.type === \"insertIndex\") {\n\t\t\t\tthis._processAxisRange(change.newValue, [\"range\"]);\n\t\t\t} else if (change.type === \"removeIndex\") {\n\t\t\t\tthis.disposeDataItem(change.oldValue);\n\t\t\t} else if (change.type === \"moveIndex\") {\n\t\t\t\tthis._processAxisRange(change.value, [\"range\"]);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unknown IStreamEvent type\");\n\t\t\t}\n\t\t}))\n\n\t\tconst renderer = this.get(\"renderer\");\n\t\tif (renderer) {\n\t\t\trenderer.axis = this;\n\t\t\trenderer.processAxis();\n\t\t}\n\t\tthis.children.push(renderer);\n\t\tthis.ghostLabel = renderer.makeLabel(new DataItem(this, undefined, {}), []);\n\t\tthis.ghostLabel.set(\"opacity\", 0);\n\t}\n\n\t/**\n\t * Zooms the axis to relative locations.\n\t *\n\t * Both `start` and `end` are relative: 0 means start of the axis, 1 - end.\n\t *\n\t * @param start Relative start\n\t * @param end Relative end\n\t * @param duration Duration of the zoom animation in milliseconds\n\t * @return Zoom animation\n\t */\n\tpublic zoom(start: number, end: number, duration?: number): Animation<this[\"_settings\"][\"start\"]> | Animation<this[\"_settings\"][\"end\"]> | undefined {\n\n\t\tif (this.get(\"start\") !== start || this.get(\"end\") != end) {\n\n\t\t\tlet sAnimation = this._sAnimation;\n\t\t\tlet eAnimation = this._eAnimation;\n\n\t\t\tlet maxDeviation = this.get(\"maxDeviation\", 0.5) * Math.min(1, (end - start));\n\n\t\t\tif (start < - maxDeviation) {\n\t\t\t\tstart = -maxDeviation;\n\t\t\t}\n\n\t\t\tif (end > 1 + maxDeviation) {\n\t\t\t\tend = 1 + maxDeviation;\n\t\t\t}\n\n\t\t\tif (start > end) {\n\t\t\t\t[start, end] = [end, start];\n\t\t\t}\n\n\t\t\tif (!$type.isNumber(duration)) {\n\t\t\t\tduration = this.get(\"interpolationDuration\", 0);\n\t\t\t}\n\n\t\t\tlet priority: \"start\" | \"end\" = \"end\";\n\t\t\tlet maxZoomFactor = this.getPrivate(\"maxZoomFactor\", this.get(\"maxZoomFactor\", 100));\n\n\t\t\tif (end === 1 && start !== 0) {\n\t\t\t\tif (start < this.get(\"start\")) {\n\t\t\t\t\tpriority = \"start\";\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpriority = \"end\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (start === 0 && end !== 1) {\n\t\t\t\tif (end > this.get(\"end\")) {\n\t\t\t\t\tpriority = \"end\";\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpriority = \"start\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet minZoomCount = this.get(\"minZoomCount\");\n\t\t\tlet maxZoomCount = this.get(\"maxZoomCount\");\n\n\t\t\tif ($type.isNumber(minZoomCount)) {\n\t\t\t\tmaxZoomFactor = maxZoomFactor / minZoomCount;\n\t\t\t}\n\n\t\t\tlet minZoomFactor: number = 1;\n\n\t\t\tif ($type.isNumber(maxZoomCount)) {\n\t\t\t\tminZoomFactor = maxZoomFactor / maxZoomCount;\n\t\t\t}\n\n\t\t\t// most likely we are dragging left scrollbar grip here, so we tend to modify end\n\t\t\tif (priority === \"start\") {\n\t\t\t\tif (maxZoomCount > 0) {\n\t\t\t\t\t// add to the end\n\t\t\t\t\tif (1 / (end - start) < minZoomFactor) {\n\t\t\t\t\t\tend = start + 1 / minZoomFactor;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// add to the end\n\t\t\t\tif (1 / (end - start) > maxZoomFactor) {\n\t\t\t\t\tend = start + 1 / maxZoomFactor;\n\t\t\t\t}\n\t\t\t\t//unless end is > 0\n\t\t\t\tif (end > 1 && end - start < 1 / maxZoomFactor) {\n\t\t\t\t\t//end = 1;\n\t\t\t\t\tstart = end - 1 / maxZoomFactor;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// most likely we are dragging right, so we modify left\n\t\t\telse {\n\t\t\t\tif (maxZoomCount > 0) {\n\t\t\t\t\t// add to the end\n\t\t\t\t\tif (1 / (end - start) < minZoomFactor) {\n\t\t\t\t\t\tstart = end - 1 / minZoomFactor;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// remove from start\n\t\t\t\tif (1 / (end - start) > maxZoomFactor) {\n\t\t\t\t\tstart = end - 1 / maxZoomFactor;\n\t\t\t\t}\n\t\t\t\tif (start < 0 && end - start < 1 / maxZoomFactor) {\n\t\t\t\t\t//start = 0;\n\t\t\t\t\tend = start + 1 / maxZoomFactor;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (1 / (end - start) > maxZoomFactor) {\n\t\t\t\tend = start + 1 / maxZoomFactor;\n\t\t\t}\n\n\t\t\tif (1 / (end - start) > maxZoomFactor) {\n\t\t\t\tstart = end - 1 / maxZoomFactor;\n\t\t\t}\n\n\t\t\tif (((sAnimation && sAnimation.playing && sAnimation.to == start) || this.get(\"start\") == start) && ((eAnimation && eAnimation.playing && eAnimation.to == end) || this.get(\"end\") == end)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (duration > 0) {\n\t\t\t\tlet easing = this.get(\"interpolationEasing\");\n\n\t\t\t\tlet sAnimation = this.animate({ key: \"start\", to: start, duration: duration, easing: easing });\n\t\t\t\tlet eAnimation = this.animate({ key: \"end\", to: end, duration: duration, easing: easing });\n\n\t\t\t\tthis._sAnimation = sAnimation;\n\t\t\t\tthis._eAnimation = eAnimation;\n\n\t\t\t\tif (sAnimation) {\n\t\t\t\t\treturn sAnimation;\n\t\t\t\t}\n\t\t\t\telse if (eAnimation) {\n\t\t\t\t\treturn eAnimation;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.set(\"start\", start);\n\t\t\t\tthis.set(\"end\", end);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * A list of series using this axis.\n\t *\n\t * @return Series\n\t */\n\tpublic get series(): Array<this[\"_seriesType\"]> {\n\t\treturn this._series;\n\t}\n\n\n\tpublic _processAxisRange(dataItem: DataItem<this[\"_dataItemSettings\"]>, themeTags: Array<string>) {\n\t\tdataItem.setRaw(\"isRange\", true);\n\t\tthis._createAssets(dataItem, themeTags);\n\t\tthis._rangesDirty = true;\n\t\tthis._prepareDataItem(dataItem);\n\n\t\tconst above = dataItem.get(\"above\");\n\t\tconst container = this.topGridContainer;\n\n\t\tconst grid = dataItem.get(\"grid\");\n\t\tif (above && grid) {\n\t\t\tcontainer.children.moveValue(grid);\n\t\t}\n\n\t\tconst fill = dataItem.get(\"axisFill\");\n\t\tif (above && fill) {\n\t\t\tcontainer.children.moveValue(fill);\n\t\t}\n\t}\n\n\tpublic _prepareDataItem(_dataItem: DataItem<this[\"_dataItemSettings\"]>, _index?: number) { }\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract getX(_value: any, _location: number, baseValue?: any): number;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract getY(_value: any, _location: number, baseValue?: any): number;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract getDataItemCoordinateX(_dataItem: DataItem<IXYSeriesDataItem>, _field: string, _cellLocation?: number, _axisLocation?: number): number;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract getDataItemCoordinateY(_dataItem: DataItem<IXYSeriesDataItem>, _field: string, _cellLocation?: number, _axisLocation?: number): number;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract getDataItemPositionX(_dataItem: DataItem<IXYSeriesDataItem>, _field: string, _cellLocation?: number, _axisLocation?: number): number;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract getDataItemPositionY(_dataItem: DataItem<IXYSeriesDataItem>, _field: string, _cellLocation?: number, _axisLocation?: number): number;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtyExtremes() {\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtySelectionExtremes() {\n\t}\n\n\tpublic _calculateTotals() {\n\t}\n\n\tprotected _updateAxisRanges() {\n\t\tthis.axisRanges.each((axisRange) => {\n\t\t\tthis._prepareDataItem(axisRange);\n\t\t})\n\n\t\t$array.each(this._seriesAxisRanges, (axisRange) => {\n\t\t\tthis._prepareDataItem(axisRange);\n\t\t})\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract baseValue(): any;\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tif (this.get(\"fixAxisSize\")) {\n\t\t\tthis.ghostLabel.set(\"visible\", true);\n\t\t}\n\t\telse {\n\t\t\tthis.ghostLabel.set(\"visible\", false);\n\t\t}\n\n\t\tif (this.isDirty(\"start\") || this.isDirty(\"end\")) {\n\t\t\tthis.chart!._updateCursor();\n\n\t\t\tlet start = this.get(\"start\", 0);\n\t\t\tlet end = this.get(\"end\", 1);\n\n\t\t\tlet maxDeviation = this.get(\"maxDeviation\", 0.5) * Math.min(1, (end - start));\n\n\t\t\tif (start < -maxDeviation) {\n\t\t\t\tlet delta = start + maxDeviation;\n\t\t\t\tstart = -maxDeviation;\n\t\t\t\tthis.setRaw(\"start\", start);\n\t\t\t\tif (this.isDirty(\"end\")) {\n\t\t\t\t\tthis.setRaw(\"end\", end - delta);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (end > 1 + maxDeviation) {\n\t\t\t\tlet delta = end - 1 - maxDeviation;\n\t\t\t\tend = 1 + maxDeviation;\n\t\t\t\tthis.setRaw(\"end\", end);\n\n\t\t\t\tif (this.isDirty(\"start\")) {\n\t\t\t\t\tthis.setRaw(\"start\", start - delta);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\n\t\tconst renderer = this.get(\"renderer\");\n\t\trenderer._start = this.get(\"start\")!;\n\t\trenderer._end = this.get(\"end\")!;\n\t\trenderer._inversed = renderer.get(\"inversed\", false);\n\t\trenderer._axisLength = renderer.axisLength() / (renderer._end - renderer._start);\n\t\trenderer._updateLC();\n\n\t\tif (this.isDirty(\"tooltip\")) {\n\t\t\tconst tooltip = this.get(\"tooltip\");\n\t\t\tif (tooltip) {\n\t\t\t\tconst rendererTags = renderer.get(\"themeTags\");\n\t\t\t\ttooltip.addTag(\"axis\");\n\t\t\t\ttooltip.addTag(this.className.toLowerCase());\n\t\t\t\ttooltip._applyThemes();\n\n\t\t\t\tif (rendererTags) {\n\t\t\t\t\ttooltip.set(\"themeTags\", $utils.mergeTags(tooltip.get(\"themeTags\"), rendererTags));\n\t\t\t\t\ttooltip.label._applyThemes();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _updateTooltipBounds() {\n\t\tconst tooltip = this.get(\"tooltip\")!;\n\t\tif (tooltip) {\n\t\t\tthis.get(\"renderer\").updateTooltipBounds(tooltip);\n\t\t}\n\t}\n\n\tpublic _updateBounds() {\n\t\tsuper._updateBounds();\n\t\tthis._updateTooltipBounds();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic processChart(chart: XYChart) {\n\t\tthis.chart = chart;\n\t\tconst renderer = this.get(\"renderer\");\n\n\t\trenderer.chart = chart;\n\t\tchart.gridContainer.children.push(this.gridContainer);\n\t\tchart.topGridContainer.children.push(this.topGridContainer);\n\n\t\tchart.axisHeadersContainer.children.push(this.axisHeader);\n\n\t\tthis.on(\"start\", () => {\n\t\t\tchart._handleAxisSelection(this);\n\t\t});\n\t\tthis.on(\"end\", () => {\n\t\t\tchart._handleAxisSelection(this);\n\t\t});\n\n\t\tchart.plotContainer.onPrivate(\"width\", () => {\n\t\t\tthis.markDirtySize();\n\t\t});\n\t\tchart.plotContainer.onPrivate(\"height\", () => {\n\t\t\tthis.markDirtySize();\n\t\t});\n\n\t\tchart.processAxis(this);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic hideDataItem(dataItem: DataItem<IAxisDataItem>): Promise<void> {\n\t\tthis._toggleDataItem(dataItem, false);\n\t\treturn super.hideDataItem(dataItem);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic showDataItem(dataItem: DataItem<IAxisDataItem>): Promise<void> {\n\t\tthis._toggleDataItem(dataItem, true);\n\t\treturn super.showDataItem(dataItem);\n\t}\n\n\n\tpublic _toggleDataItem(dataItem: DataItem<IAxisDataItem>, visible: boolean) {\n\t\tconst label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\tlabel.setPrivate(\"visible\", visible);\n\t\t}\n\t\tconst grid = dataItem.get(\"grid\");\n\t\tif (grid) {\n\t\t\tgrid.setPrivate(\"visible\", visible);\n\t\t}\n\t\tconst tick = dataItem.get(\"tick\");\n\t\tif (tick) {\n\t\t\ttick.setPrivate(\"visible\", visible);\n\t\t}\n\t\tconst axisFill = dataItem.get(\"axisFill\");\n\t\tif (axisFill) {\n\t\t\taxisFill.setPrivate(\"visible\", visible);\n\t\t}\n\n\t\tconst bullet = dataItem.get(\"bullet\");\n\t\tif (bullet) {\n\t\t\tconst sprite = bullet.get(\"sprite\");\n\t\t\tif (sprite) {\n\t\t\t\tsprite.setPrivate(\"visible\", visible);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract basePosition(): number;\n\n\tpublic _createAssets(dataItem: DataItem<this[\"_dataItemSettings\"]>, tags: Array<string>) {\n\t\tconst renderer = this.get(\"renderer\");\n\n\t\tif (!dataItem.get(\"label\")) {\n\t\t\trenderer.makeLabel(dataItem, tags);\n\t\t}\n\n\t\tif (!dataItem.get(\"grid\")) {\n\t\t\trenderer.makeGrid(dataItem, tags);\n\t\t}\n\n\t\tif (!dataItem.get(\"tick\")) {\n\t\t\trenderer.makeTick(dataItem, tags);\n\t\t}\n\n\t\tif (!dataItem.get(\"axisFill\")) {\n\t\t\trenderer.makeAxisFill(dataItem, tags);\n\t\t}\n\n\t\tthis._processBullet(dataItem);\n\t}\n\n\tprotected _processBullet(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tlet bullet = dataItem.get(\"bullet\");\n\t\tlet axisBullet = this.get(\"bullet\");\n\n\t\tif (!bullet && axisBullet && !dataItem.get(\"isRange\")) {\n\t\t\tbullet = axisBullet(this._root, this, dataItem);\n\t\t}\n\n\t\tif (bullet) {\n\t\t\tbullet.axis = this;\n\t\t\tconst sprite = bullet.get(\"sprite\");\n\n\t\t\tif (sprite) {\n\t\t\t\tsprite._setDataItem(dataItem);\n\t\t\t\tdataItem.setRaw(\"bullet\", bullet);\n\t\t\t\tif (!sprite.parent) {\n\t\t\t\t\tthis.bulletsContainer.children.push(sprite);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _afterChanged() {\n\t\tsuper._afterChanged();\n\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\tchart._updateChartLayout();\n\t\t\tchart.axisHeadersContainer.markDirtySize();\n\t\t}\n\n\t\tthis.get(\"renderer\")._updatePositions();\t\t\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.disposeDataItem(dataItem);\n\t\tconst renderer = this.get(\"renderer\");\n\t\tconst label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\trenderer.labels.removeValue(label);\n\t\t\tlabel.dispose();\n\t\t}\n\t\tconst tick = dataItem.get(\"tick\");\n\t\tif (tick) {\n\t\t\trenderer.ticks.removeValue(tick);\n\t\t\ttick.dispose();\n\t\t}\n\t\tconst grid = dataItem.get(\"grid\");\n\t\tif (grid) {\n\t\t\trenderer.grid.removeValue(grid);\n\t\t\tgrid.dispose();\n\t\t}\n\t\tconst axisFill = dataItem.get(\"axisFill\");\n\t\tif (axisFill) {\n\t\t\trenderer.axisFills.removeValue(axisFill);\n\t\t\taxisFill.dispose();\n\t\t}\n\t}\n\n\tprotected _updateGhost() {\n\t\tconst ghostLabel = this.ghostLabel;\n\t\tif (!ghostLabel.isHidden()) {\n\t\t\tconst bounds = ghostLabel.localBounds();\n\t\t\tconst gWidth = bounds.right - bounds.left;\n\n\t\t\t$array.each(this.dataItems, (dataItem) => {\n\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\tif (label && !label.isHidden()) {\n\t\t\t\t\tconst bounds = label.localBounds();\n\t\t\t\t\tconst w = bounds.right - bounds.left;\n\n\t\t\t\t\tif (w > gWidth) {\n\t\t\t\t\t\tghostLabel.set(\"text\", label.text._getText());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tlet start = this.get(\"start\", 0);\n\t\tlet end = this.get(\"end\", 1);\n\t\tthis.get(\"renderer\").updateLabel(ghostLabel, start + (end - start) * 0.5);\n\t\tghostLabel.setPrivate(\"visible\", true);\n\t}\n\n\tpublic _handleCursorPosition(position: number, snapToSeries?: Array<XYSeries>) {\n\t\tconst renderer = this.get(\"renderer\");\n\t\tposition = renderer.toAxisPosition(position);\n\n\t\tthis._cursorPosition = position;\n\t\tthis._snapToSeries = snapToSeries;\n\n\t\tthis.updateTooltip();\n\t}\n\n\t/**\n\t * Can be called when axis zoom changes and you need to update tooltip\n\t * position.\n\t */\n\tpublic updateTooltip() {\n\t\tconst snapToSeries = this._snapToSeries;\n\t\tlet position = this._cursorPosition;\n\t\tconst tooltip = this.get(\"tooltip\")!;\n\t\tconst renderer = this.get(\"renderer\");\n\n\t\tif ($type.isNumber(position)) {\n\n\t\t\t$array.each(this.series, (series) => {\n\t\t\t\tif (series.get(\"baseAxis\") === this) {\n\t\t\t\t\tconst dataItem = this.getSeriesItem(series, position!);\n\t\t\t\t\tif (snapToSeries && snapToSeries.indexOf(series) != -1) {\n\t\t\t\t\t\tseries.updateLegendMarker(dataItem);\n\t\t\t\t\t\tseries.updateLegendValue(dataItem);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tseries.showDataItemTooltip(dataItem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\n\n\t\t\tif (tooltip) {\n\t\t\t\trenderer.updateTooltipBounds(tooltip);\n\n\t\t\t\tif (this.get(\"snapTooltip\")) {\n\t\t\t\t\tposition = this.roundAxisPosition(position, this.get(\"tooltipLocation\", 0.5));\n\t\t\t\t}\n\t\t\t\tif (!$type.isNaN(position)) {\n\t\t\t\t\tthis._updateTooltipText(tooltip, position);\n\t\t\t\t\trenderer.positionTooltip(tooltip, position);\n\n\t\t\t\t\tif (position < this.get(\"start\") || position > this.get(\"end\")) {\n\t\t\t\t\t\ttooltip.hide(0);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\ttooltip.show(0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttooltip.hide(0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _updateTooltipText(tooltip: Tooltip, position: number) {\n\t\ttooltip.label.set(\"text\", this.getTooltipText(position));\n\t}\n\n\t/**\n\t * Returns text to be used in an axis tooltip for specific relative position.\n\t *\n\t * @param position Position\n\t * @return Tooltip text\n\t */\n\tpublic abstract getTooltipText(position: number): string | undefined;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic roundAxisPosition(position: number, _location: number): number {\n\t\treturn position;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic handleCursorShow() {\n\t\tlet tooltip = this.get(\"tooltip\");\n\t\tif (tooltip) {\n\t\t\ttooltip.show();\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic handleCursorHide() {\n\t\tlet tooltip = this.get(\"tooltip\");\n\t\tif (tooltip) {\n\t\t\ttooltip.hide();\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic processSeriesDataItem(_dataItem: DataItem<IXYSeriesDataItem>, _fields: Array<string>) {\n\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._sizeDirty = false;\n\t\tthis._rangesDirty = false;\n\t}\n\n\t/**\n\t * Converts pixel coordinate to a relative position on axis.\n\t *\n\t * @param coordinate Coordinate\n\t * @return Relative position\n\t */\n\tpublic coordinateToPosition(coordinate: number): number {\n\t\tconst renderer = this.get(\"renderer\");\n\t\treturn renderer.toAxisPosition(coordinate / renderer.axisLength());\n\t}\n\n\t/**\n\t * Converts relative position of the plot area to relative position of the\n\t * axis with zoom taken into account.\n\t *\n\t * @param position Position\n\t * @return Relative position\n\t */\n\tpublic toAxisPosition(position: number): number {\n\t\treturn this.get(\"renderer\").toAxisPosition(position);\n\t}\n\n\t/**\n\t * Adjusts position with inversed taken into account.\n\t *\n\t * @ignore\n\t */\n\tpublic fixPosition(position: number): number {\n\t\treturn this.get(\"renderer\").fixPosition(position);\n\t}\n\n\t/**\n\t * Returns a data item from series that is closest to the `position`.\n\t *\n\t * @param series Series\n\t * @param position Relative position\n\t * @return Data item\n\t */\n\tpublic abstract getSeriesItem(series: XYSeries, position: number): DataItem<IXYSeriesDataItem> | undefined\n\n\t/**\n\t * @ignore\n\t */\n\tpublic shouldGap(_dataItem: DataItem<IXYSeriesDataItem>, _nextItem: DataItem<IXYSeriesDataItem>, _autoGapCount: number, _fieldName: string): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Creates and returns an axis range object.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/axis-ranges/} for more info\n\t * @param axisDataItem Axis data item\n\t * @return Axis range\n\t */\n\tpublic createAxisRange(axisDataItem: DataItem<IAxisDataItem>): DataItem<this[\"_dataItemSettings\"]> {\n\t\treturn this.axisRanges.push(axisDataItem);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic _groupSeriesData(_series: XYSeries) { }\n}\n"]}
@@ -94,7 +94,7 @@ var CategoryDateAxis = /** @class */ (function (_super) {
94
94
  var added = false;
95
95
  if (gridInterval.timeUnit != "year" && gridInterval.timeUnit != "week") {
96
96
  if (nextGridUnit && this.get("markUnitChange") && $type.isNumber(previousValue)) {
97
- if ($time.checkChange(date, new Date(previousValue), nextGridUnit, this._root.utc)) {
97
+ if ($time.checkChange(value, previousValue, nextGridUnit, this._root.utc)) {
98
98
  format = this.get("periodChangeDateFormats")[gridInterval.timeUnit];
99
99
  if (index - frequency * 0.5 < previousIndex) {
100
100
  selectedItems.pop();
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryDateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/CategoryDateAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../../core/render/Component\";\nimport type { AxisRenderer } from \"./AxisRenderer\";\nimport { CategoryAxis, ICategoryAxisSettings, ICategoryAxisPrivate, ICategoryAxisDataItem, ICategoryAxisEvents } from \"./CategoryAxis\";\nimport type { ITimeInterval } from \"../../../core/util/Time\";\nimport * as $time from \"../../../core/util/Time\";\nimport * as $type from \"../../../core/util/Type\";\nimport * as $array from \"../../../core/util/Array\";\nimport * as $utils from \"../../../core/util/Utils\";\nimport type { Tooltip } from \"../../../core/render/Tooltip\";\n\nexport interface ICategoryDateAxisSettings<R extends AxisRenderer> extends ICategoryAxisSettings<R> {\n\n\t/**\n\t * Indicates granularity of data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Data_granularity} for more info\n\t */\n\tbaseInterval: ITimeInterval;\n\n\t/**\n\t * A list of intervals the axis is allowed to show grid/labels on.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Grid_granularity} for more info\n\t */\n\tgridIntervals?: Array<ITimeInterval>;\n\n\t/**\n\t * Display \"period change\" labels using different format.\n\t *\n\t * If set to `true`, will use `periodChangeDateFormats` instead\n\t * of `dateFormats` for such labels, e.g. for month start.\n\t *\n\t * @default true\n\t */\n\tmarkUnitChange?: boolean;\n\n\t/**\n\t * Date formats used for intermediate labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tdateFormats?: { [index: string]: string };\n\n\t/**\n\t * Date formats used for \"period change\" labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tperiodChangeDateFormats?: { [index: string]: string };\n\n\t/**\n\t * A date format to use for axis tooltip.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\ttooltipDateFormat?: string;\n\n}\n\nexport interface ICategoryDateAxisDataItem extends ICategoryAxisDataItem {\n}\n\nexport interface ICategoryDateAxisPrivate extends ICategoryAxisPrivate {\n\n\t/**\n\t * Current base interval.\n\t */\n\tbaseInterval: ITimeInterval;\n\n}\n\nexport interface ICategoryDateAxisEvents extends ICategoryAxisEvents {\n}\n\n\n/**\n * Category-based date axis.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/category-date-axis/} for more info\n * @important\n */\nexport class CategoryDateAxis<R extends AxisRenderer> extends CategoryAxis<R> {\n\tpublic static className: string = \"CategoryDateAxis\";\n\tpublic static classNames: Array<string> = CategoryAxis.classNames.concat([CategoryDateAxis.className]);\n\n\tdeclare public _settings: ICategoryDateAxisSettings<R>;\n\tdeclare public _privateSettings: ICategoryDateAxisPrivate;\n\tdeclare public _dataItemSettings: ICategoryDateAxisDataItem;\n\tdeclare public _events: ICategoryDateAxisEvents;\n\n\tprotected _frequency: number = 1;\n\n\tprotected _itemMap: { [index: string]: DataItem<ICategoryDateAxisDataItem> } = {};\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"axis\"]);\n\t\tthis.fields.push(\"category\");\n\t\tsuper._afterNew();\n\t}\n\n\n\tprotected _prepareAxisItems() {\n\t\t// temp\n\t\tthis.setPrivateRaw(\"baseInterval\", this.get(\"baseInterval\"));\n\n\t\tconst renderer = this.get(\"renderer\");\n\t\tconst len = this.dataItems.length;\n\n\t\tlet startIndex = this.startIndex();\n\t\tif (startIndex > 0) {\n\t\t\tstartIndex--;\n\t\t}\n\n\t\tlet endIndex = this.endIndex();\n\t\tif (endIndex < len) {\n\t\t\tendIndex++;\n\t\t}\n\n\t\tlet maxCount = renderer.axisLength() / Math.max(renderer.get(\"minGridDistance\")!, 1 / Number.MAX_SAFE_INTEGER);\n\n\t\tlet frequency = Math.min(len, Math.ceil((endIndex - startIndex) / maxCount));\n\t\tstartIndex = Math.floor(startIndex / frequency) * frequency;\n\t\tthis._frequency = frequency;\n\n\t\tfor (let j = 0; j < len; j++) {\n\t\t\tthis.dataItems[j].hide();\n\t\t}\n\n\t\tlet startTime = Number(this.dataItems[startIndex].get(\"category\"));\n\t\tlet endTime = Number(this.dataItems[endIndex - 1].get(\"category\"));\n\t\tlet realDuration = (endTime - startTime);\n\t\tif(endIndex - startIndex < maxCount){\n\t\t\trealDuration = (endTime - startTime) - ((endTime - startTime) / this.baseDuration() - (endIndex - startIndex)) * this.baseDuration();\n\t\t}\n\n\t\t// if all items are on axis\n\t\tlet gridInterval = $time.chooseInterval(0, realDuration, maxCount, this.get(\"gridIntervals\")!);\n\n\t\tconst nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\n\t\tif ($time.getIntervalDuration(gridInterval) < this.baseDuration()) {\n\t\t\tgridInterval = { ...baseInterval };\n\t\t}\n\n\t\tconst formats = this.get(\"dateFormats\")!;\n\n\t\tlet previousValue = -Infinity;\n\t\tlet previousIndex = -Infinity;\n\t\tlet previousUnitValue = -Infinity;\n\t\tlet format: string;\n\n\t\tlet selectedItems: Array<{ format: string, dataItem: DataItem<ICategoryDateAxisDataItem> }> = [];\n\t\tlet changed = false;\n\n\t\tfor (let i = startIndex; i < endIndex; i++) {\n\t\t\tlet dataItem = this.dataItems[i];\n\t\t\tlet index = dataItem.get(\"index\")!;\n\t\t\tlet skip = false;\n\n\t\t\tlet value = Number(dataItem.get(\"category\"));\n\t\t\tlet date = new Date(value);\n\t\t\tlet unitValue = $time.getUnitValue(date, gridInterval.timeUnit);\n\n\t\t\tformat = formats[gridInterval.timeUnit];\n\t\t\tlet added = false;\n\n\t\t\tif (gridInterval.timeUnit != \"year\" && gridInterval.timeUnit != \"week\") {\n\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\n\n\t\t\t\t\tif ($time.checkChange(date, new Date(previousValue), nextGridUnit, this._root.utc)) {\n\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![gridInterval.timeUnit];\n\n\t\t\t\t\t\tif (index - frequency * 0.5 < previousIndex) {\n\t\t\t\t\t\t\tselectedItems.pop();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tselectedItems.push({ format: format, dataItem: dataItem });\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\tadded = true;\n\t\t\t\t\t\tpreviousIndex = index;\n\t\t\t\t\t\tpreviousUnitValue = unitValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet shouldAdd = false;\n\t\t\tif (gridInterval.timeUnit === \"day\" || gridInterval.timeUnit === \"week\") {\n\t\t\t\tif (index - previousIndex >= frequency) {\n\t\t\t\t\tshouldAdd = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (unitValue % gridInterval.count === 0) {\n\t\t\t\t\tif (unitValue != previousUnitValue) {\n\t\t\t\t\t\tshouldAdd = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!added && shouldAdd) {\n\t\t\t\tif (index - frequency * 0.7 < previousIndex) {\n\t\t\t\t\tif (changed) {\n\t\t\t\t\t\tskip = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!skip) {\n\t\t\t\t\tselectedItems.push({ format: format, dataItem: dataItem });\n\t\t\t\t\tpreviousIndex = index;\n\t\t\t\t\tpreviousUnitValue = unitValue;\n\t\t\t\t}\n\t\t\t\tchanged = false;\n\n\t\t\t}\n\n\t\t\tpreviousValue = value;\n\n\t\t}\n\n\t\tif (selectedItems.length > 0) {\n\t\t\tlet f = selectedItems[0].dataItem.get(\"index\", 0);\n\n\t\t\t$array.each(selectedItems, (item) => {\n\t\t\t\tconst dataItem = item.dataItem;\n\t\t\t\tconst format = item.format;\n\t\t\t\tthis._createAssets(dataItem, []);\n\n\t\t\t\tif (dataItem.isHidden()) {\n\t\t\t\t\tdataItem.show();\n\t\t\t\t}\n\n\t\t\t\tlet value = Number(dataItem.get(\"category\"));\n\t\t\t\tlet date = new Date(value);\n\n\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel.set(\"text\", this._root.dateFormatter.format(date, format!));\n\t\t\t\t}\n\t\t\t\tf++;\n\t\t\t\tthis._prepareDataItem(dataItem, f, frequency);\n\t\t\t})\n\n\t\t}\n\t}\n\n\t/**\n\t * Returns a duration of currently active `baseInterval` in milliseconds.\n\t *\n\t * @return Duration\n\t */\n\tpublic baseDuration(): number {\n\t\treturn $time.getIntervalDuration(this.getPrivate(\"baseInterval\"));\n\t}\n\n\n\t/**\n\t * Returns text to be used in an axis tooltip for specific relative position.\n\t *\n\t * @param position Position\n\t * @return Tooltip text\n\t */\n\tpublic getTooltipText(position: number): string | undefined {\n\t\t//@todo number formatter + tag\n\t\tlet dataItem = this.dataItems[this.axisPositionToIndex(position)];\n\n\t\tif (dataItem) {\n\t\t\tlet format = this.get(\"dateFormats\")![this.getPrivate(\"baseInterval\").timeUnit];\n\t\t\treturn this._root.dateFormatter.format(new Date(dataItem.get(\"category\", 0)), this.get(\"tooltipDateFormat\", format));\n\t\t}\n\t}\n\n\tprotected _updateTooltipText(tooltip: Tooltip, position: number) {\n\t\ttooltip.label.set(\"text\", this.getTooltipText(position));\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"CategoryDateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/CategoryDateAxis.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAA2F,MAAM,gBAAgB,CAAC;AAEvI,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AAoEnD;;;;;GAKG;AACH;IAA8D,oCAAe;IAA7E;QAAA,qEAkMC;QAzLA;;;;mBAA+B,CAAC;WAAC;QAEjC;;;;mBAA+E,EAAE;WAAC;;IAuLnF,CAAC;;;;;eArLA;YACC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,iBAAM,SAAS,WAAE,CAAC;QACnB,CAAC;;;;;;eAGD;YAAA,iBA8IC;YA7IA,OAAO;YACP,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YAE7D,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtC,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAElC,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,UAAU,GAAG,CAAC,EAAE;gBACnB,UAAU,EAAE,CAAC;aACb;YAED,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,QAAQ,GAAG,GAAG,EAAE;gBACnB,QAAQ,EAAE,CAAC;aACX;YAED,IAAI,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAE,EAAE,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAE/G,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YAC7E,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;YAC5D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC7B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACzB;YAED,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACnE,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACnE,IAAI,YAAY,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;YACzC,IAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,EAAC;gBACnC,YAAY,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;aACrI;YAED,2BAA2B;YAC3B,IAAI,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAE,CAAC,CAAC;YAE/F,IAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC9D,IAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAErD,IAAI,KAAK,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE;gBAClE,YAAY,gBAAQ,YAAY,CAAE,CAAC;aACnC;YAED,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;YAEzC,IAAI,aAAa,GAAG,CAAC,QAAQ,CAAC;YAC9B,IAAI,aAAa,GAAG,CAAC,QAAQ,CAAC;YAC9B,IAAI,iBAAiB,GAAG,CAAC,QAAQ,CAAC;YAClC,IAAI,MAAc,CAAC;YAEnB,IAAI,aAAa,GAA6E,EAAE,CAAC;YACjG,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;gBACnC,IAAI,IAAI,GAAG,KAAK,CAAC;gBAEjB,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC7C,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAEhE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,KAAK,GAAG,KAAK,CAAC;gBAElB,IAAI,YAAY,CAAC,QAAQ,IAAI,MAAM,IAAI,YAAY,CAAC,QAAQ,IAAI,MAAM,EAAE;oBACvE,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;wBAEhF,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;4BAC1E,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;4BAErE,IAAI,KAAK,GAAG,SAAS,GAAG,GAAG,GAAG,aAAa,EAAE;gCAC5C,aAAa,CAAC,GAAG,EAAE,CAAC;6BACpB;4BAED,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;4BAC3D,OAAO,GAAG,IAAI,CAAC;4BACf,KAAK,GAAG,IAAI,CAAC;4BACb,aAAa,GAAG,KAAK,CAAC;4BACtB,iBAAiB,GAAG,SAAS,CAAC;yBAC9B;qBACD;iBACD;gBAED,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,IAAI,YAAY,CAAC,QAAQ,KAAK,KAAK,IAAI,YAAY,CAAC,QAAQ,KAAK,MAAM,EAAE;oBACxE,IAAI,KAAK,GAAG,aAAa,IAAI,SAAS,EAAE;wBACvC,SAAS,GAAG,IAAI,CAAC;qBACjB;iBACD;qBACI;oBACJ,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,KAAK,CAAC,EAAE;wBACzC,IAAI,SAAS,IAAI,iBAAiB,EAAE;4BACnC,SAAS,GAAG,IAAI,CAAC;yBACjB;qBACD;iBACD;gBAED,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE;oBACxB,IAAI,KAAK,GAAG,SAAS,GAAG,GAAG,GAAG,aAAa,EAAE;wBAC5C,IAAI,OAAO,EAAE;4BACZ,IAAI,GAAG,IAAI,CAAC;yBACZ;qBACD;oBACD,IAAI,CAAC,IAAI,EAAE;wBACV,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAC3D,aAAa,GAAG,KAAK,CAAC;wBACtB,iBAAiB,GAAG,SAAS,CAAC;qBAC9B;oBACD,OAAO,GAAG,KAAK,CAAC;iBAEhB;gBAED,aAAa,GAAG,KAAK,CAAC;aAEtB;YAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,IAAI,GAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAElD,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,UAAC,IAAI;oBAC/B,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAC/B,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC3B,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAEjC,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE;wBACxB,QAAQ,CAAC,IAAI,EAAE,CAAC;qBAChB;oBAED,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC7C,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;oBAE3B,IAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpC,IAAI,KAAK,EAAE;wBACV,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAO,CAAC,CAAC,CAAC;qBAClE;oBACD,GAAC,EAAE,CAAC;oBACJ,KAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAC,EAAE,SAAS,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAA;aAEF;QACF,CAAC;;IAED;;;;OAIG;;;;;eACH;YACC,OAAO,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;QACnE,CAAC;;IAGD;;;;;OAKG;;;;;eACH,UAAsB,QAAgB;YACrC,8BAA8B;YAC9B,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAElE,IAAI,QAAQ,EAAE;gBACb,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAChF,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC;aACrH;QACF,CAAC;;;;;;eAED,UAA6B,OAAgB,EAAE,QAAgB;YAC9D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,CAAC;;IA/LD;;;;eAAkC,kBAAkB;OAAC;IACrD;;;;eAA0C,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;OAAC;IAgMxG,uBAAC;CAAA,AAlMD,CAA8D,YAAY,GAkMzE;SAlMY,gBAAgB","sourcesContent":["import type { DataItem } from \"../../../core/render/Component\";\nimport type { AxisRenderer } from \"./AxisRenderer\";\nimport { CategoryAxis, ICategoryAxisSettings, ICategoryAxisPrivate, ICategoryAxisDataItem, ICategoryAxisEvents } from \"./CategoryAxis\";\nimport type { ITimeInterval } from \"../../../core/util/Time\";\nimport * as $time from \"../../../core/util/Time\";\nimport * as $type from \"../../../core/util/Type\";\nimport * as $array from \"../../../core/util/Array\";\nimport * as $utils from \"../../../core/util/Utils\";\nimport type { Tooltip } from \"../../../core/render/Tooltip\";\n\nexport interface ICategoryDateAxisSettings<R extends AxisRenderer> extends ICategoryAxisSettings<R> {\n\n\t/**\n\t * Indicates granularity of data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Data_granularity} for more info\n\t */\n\tbaseInterval: ITimeInterval;\n\n\t/**\n\t * A list of intervals the axis is allowed to show grid/labels on.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Grid_granularity} for more info\n\t */\n\tgridIntervals?: Array<ITimeInterval>;\n\n\t/**\n\t * Display \"period change\" labels using different format.\n\t *\n\t * If set to `true`, will use `periodChangeDateFormats` instead\n\t * of `dateFormats` for such labels, e.g. for month start.\n\t *\n\t * @default true\n\t */\n\tmarkUnitChange?: boolean;\n\n\t/**\n\t * Date formats used for intermediate labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tdateFormats?: { [index: string]: string };\n\n\t/**\n\t * Date formats used for \"period change\" labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tperiodChangeDateFormats?: { [index: string]: string };\n\n\t/**\n\t * A date format to use for axis tooltip.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\ttooltipDateFormat?: string;\n\n}\n\nexport interface ICategoryDateAxisDataItem extends ICategoryAxisDataItem {\n}\n\nexport interface ICategoryDateAxisPrivate extends ICategoryAxisPrivate {\n\n\t/**\n\t * Current base interval.\n\t */\n\tbaseInterval: ITimeInterval;\n\n}\n\nexport interface ICategoryDateAxisEvents extends ICategoryAxisEvents {\n}\n\n\n/**\n * Category-based date axis.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/category-date-axis/} for more info\n * @important\n */\nexport class CategoryDateAxis<R extends AxisRenderer> extends CategoryAxis<R> {\n\tpublic static className: string = \"CategoryDateAxis\";\n\tpublic static classNames: Array<string> = CategoryAxis.classNames.concat([CategoryDateAxis.className]);\n\n\tdeclare public _settings: ICategoryDateAxisSettings<R>;\n\tdeclare public _privateSettings: ICategoryDateAxisPrivate;\n\tdeclare public _dataItemSettings: ICategoryDateAxisDataItem;\n\tdeclare public _events: ICategoryDateAxisEvents;\n\n\tprotected _frequency: number = 1;\n\n\tprotected _itemMap: { [index: string]: DataItem<ICategoryDateAxisDataItem> } = {};\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"axis\"]);\n\t\tthis.fields.push(\"category\");\n\t\tsuper._afterNew();\n\t}\n\n\n\tprotected _prepareAxisItems() {\n\t\t// temp\n\t\tthis.setPrivateRaw(\"baseInterval\", this.get(\"baseInterval\"));\n\n\t\tconst renderer = this.get(\"renderer\");\n\t\tconst len = this.dataItems.length;\n\n\t\tlet startIndex = this.startIndex();\n\t\tif (startIndex > 0) {\n\t\t\tstartIndex--;\n\t\t}\n\n\t\tlet endIndex = this.endIndex();\n\t\tif (endIndex < len) {\n\t\t\tendIndex++;\n\t\t}\n\n\t\tlet maxCount = renderer.axisLength() / Math.max(renderer.get(\"minGridDistance\")!, 1 / Number.MAX_SAFE_INTEGER);\n\n\t\tlet frequency = Math.min(len, Math.ceil((endIndex - startIndex) / maxCount));\n\t\tstartIndex = Math.floor(startIndex / frequency) * frequency;\n\t\tthis._frequency = frequency;\n\n\t\tfor (let j = 0; j < len; j++) {\n\t\t\tthis.dataItems[j].hide();\n\t\t}\n\n\t\tlet startTime = Number(this.dataItems[startIndex].get(\"category\"));\n\t\tlet endTime = Number(this.dataItems[endIndex - 1].get(\"category\"));\n\t\tlet realDuration = (endTime - startTime);\n\t\tif(endIndex - startIndex < maxCount){\n\t\t\trealDuration = (endTime - startTime) - ((endTime - startTime) / this.baseDuration() - (endIndex - startIndex)) * this.baseDuration();\n\t\t}\n\n\t\t// if all items are on axis\n\t\tlet gridInterval = $time.chooseInterval(0, realDuration, maxCount, this.get(\"gridIntervals\")!);\n\n\t\tconst nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\n\t\tif ($time.getIntervalDuration(gridInterval) < this.baseDuration()) {\n\t\t\tgridInterval = { ...baseInterval };\n\t\t}\n\n\t\tconst formats = this.get(\"dateFormats\")!;\n\n\t\tlet previousValue = -Infinity;\n\t\tlet previousIndex = -Infinity;\n\t\tlet previousUnitValue = -Infinity;\n\t\tlet format: string;\n\n\t\tlet selectedItems: Array<{ format: string, dataItem: DataItem<ICategoryDateAxisDataItem> }> = [];\n\t\tlet changed = false;\n\n\t\tfor (let i = startIndex; i < endIndex; i++) {\n\t\t\tlet dataItem = this.dataItems[i];\n\t\t\tlet index = dataItem.get(\"index\")!;\n\t\t\tlet skip = false;\n\n\t\t\tlet value = Number(dataItem.get(\"category\"));\n\t\t\tlet date = new Date(value);\n\t\t\tlet unitValue = $time.getUnitValue(date, gridInterval.timeUnit);\n\n\t\t\tformat = formats[gridInterval.timeUnit];\n\t\t\tlet added = false;\n\n\t\t\tif (gridInterval.timeUnit != \"year\" && gridInterval.timeUnit != \"week\") {\n\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\n\n\t\t\t\t\tif ($time.checkChange(value, previousValue, nextGridUnit, this._root.utc)) {\n\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![gridInterval.timeUnit];\n\n\t\t\t\t\t\tif (index - frequency * 0.5 < previousIndex) {\n\t\t\t\t\t\t\tselectedItems.pop();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tselectedItems.push({ format: format, dataItem: dataItem });\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\tadded = true;\n\t\t\t\t\t\tpreviousIndex = index;\n\t\t\t\t\t\tpreviousUnitValue = unitValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet shouldAdd = false;\n\t\t\tif (gridInterval.timeUnit === \"day\" || gridInterval.timeUnit === \"week\") {\n\t\t\t\tif (index - previousIndex >= frequency) {\n\t\t\t\t\tshouldAdd = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (unitValue % gridInterval.count === 0) {\n\t\t\t\t\tif (unitValue != previousUnitValue) {\n\t\t\t\t\t\tshouldAdd = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!added && shouldAdd) {\n\t\t\t\tif (index - frequency * 0.7 < previousIndex) {\n\t\t\t\t\tif (changed) {\n\t\t\t\t\t\tskip = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!skip) {\n\t\t\t\t\tselectedItems.push({ format: format, dataItem: dataItem });\n\t\t\t\t\tpreviousIndex = index;\n\t\t\t\t\tpreviousUnitValue = unitValue;\n\t\t\t\t}\n\t\t\t\tchanged = false;\n\n\t\t\t}\n\n\t\t\tpreviousValue = value;\n\n\t\t}\n\n\t\tif (selectedItems.length > 0) {\n\t\t\tlet f = selectedItems[0].dataItem.get(\"index\", 0);\n\n\t\t\t$array.each(selectedItems, (item) => {\n\t\t\t\tconst dataItem = item.dataItem;\n\t\t\t\tconst format = item.format;\n\t\t\t\tthis._createAssets(dataItem, []);\n\n\t\t\t\tif (dataItem.isHidden()) {\n\t\t\t\t\tdataItem.show();\n\t\t\t\t}\n\n\t\t\t\tlet value = Number(dataItem.get(\"category\"));\n\t\t\t\tlet date = new Date(value);\n\n\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel.set(\"text\", this._root.dateFormatter.format(date, format!));\n\t\t\t\t}\n\t\t\t\tf++;\n\t\t\t\tthis._prepareDataItem(dataItem, f, frequency);\n\t\t\t})\n\n\t\t}\n\t}\n\n\t/**\n\t * Returns a duration of currently active `baseInterval` in milliseconds.\n\t *\n\t * @return Duration\n\t */\n\tpublic baseDuration(): number {\n\t\treturn $time.getIntervalDuration(this.getPrivate(\"baseInterval\"));\n\t}\n\n\n\t/**\n\t * Returns text to be used in an axis tooltip for specific relative position.\n\t *\n\t * @param position Position\n\t * @return Tooltip text\n\t */\n\tpublic getTooltipText(position: number): string | undefined {\n\t\t//@todo number formatter + tag\n\t\tlet dataItem = this.dataItems[this.axisPositionToIndex(position)];\n\n\t\tif (dataItem) {\n\t\t\tlet format = this.get(\"dateFormats\")![this.getPrivate(\"baseInterval\").timeUnit];\n\t\t\treturn this._root.dateFormatter.format(new Date(dataItem.get(\"category\", 0)), this.get(\"tooltipDateFormat\", format));\n\t\t}\n\t}\n\n\tprotected _updateTooltipText(tooltip: Tooltip, position: number) {\n\t\ttooltip.label.set(\"text\", this.getTooltipText(position));\n\t}\n\n}\n"]}
@@ -116,8 +116,10 @@ export declare class DateAxis<R extends AxisRenderer> extends ValueAxis<R> {
116
116
  protected _dataGrouped: boolean;
117
117
  protected _groupingCalculated: boolean;
118
118
  protected _intervalDuration: number;
119
+ protected _baseDuration: number;
119
120
  _afterNew(): void;
120
121
  _updateChildren(): void;
122
+ protected _setBaseInterval(interval: ITimeInterval): void;
121
123
  protected _groupData(): void;
122
124
  _groupSeriesData(series: XYSeries): void;
123
125
  _clearDirty(): void;
@@ -130,6 +132,7 @@ export declare class DateAxis<R extends AxisRenderer> extends ValueAxis<R> {
130
132
  protected _prepareAxisItems(): void;
131
133
  protected _fixMin(min: number): number;
132
134
  protected _fixMax(max: number): number;
135
+ protected _updateDates(_date: number): void;
133
136
  /**
134
137
  * Returns a duration of currently active `baseInterval` in milliseconds.
135
138
  *
@@ -1 +1 @@
1
- {"version":3,"file":"DateAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DateAxis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DateAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DateAxis.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,12 @@ var DateAxis = /** @class */ (function (_super) {
35
35
  writable: true,
36
36
  value: 1
37
37
  });
38
+ Object.defineProperty(_this, "_baseDuration", {
39
+ enumerable: true,
40
+ configurable: true,
41
+ writable: true,
42
+ value: 1
43
+ });
38
44
  return _this;
39
45
  }
40
46
  Object.defineProperty(DateAxis.prototype, "_afterNew", {
@@ -44,7 +50,7 @@ var DateAxis = /** @class */ (function (_super) {
44
50
  value: function () {
45
51
  this._settings.themeTags = $utils.mergeTags(this._settings.themeTags, ["axis"]);
46
52
  _super.prototype._afterNew.call(this);
47
- this.setPrivateRaw("baseInterval", this.get("baseInterval"));
53
+ this._setBaseInterval(this.get("baseInterval"));
48
54
  }
49
55
  });
50
56
  Object.defineProperty(DateAxis.prototype, "_updateChildren", {
@@ -53,10 +59,19 @@ var DateAxis = /** @class */ (function (_super) {
53
59
  writable: true,
54
60
  value: function () {
55
61
  if (this.isDirty("baseInterval")) {
56
- this.setPrivateRaw("baseInterval", this.get("baseInterval"));
62
+ this._setBaseInterval(this.get("baseInterval"));
57
63
  }
58
64
  }
59
65
  });
66
+ Object.defineProperty(DateAxis.prototype, "_setBaseInterval", {
67
+ enumerable: false,
68
+ configurable: true,
69
+ writable: true,
70
+ value: function (interval) {
71
+ this.setPrivateRaw("baseInterval", interval);
72
+ this._baseDuration = $time.getIntervalDuration(interval);
73
+ }
74
+ });
60
75
  Object.defineProperty(DateAxis.prototype, "_groupData", {
61
76
  enumerable: false,
62
77
  configurable: true,
@@ -69,10 +84,10 @@ var DateAxis = /** @class */ (function (_super) {
69
84
  this.setPrivateRaw("maxZoomFactor", Math.round((this.getPrivate("max", 0) - this.getPrivate("min", 0)) / this.baseMainDuration()));
70
85
  var groupInterval = this.getPrivate("groupInterval");
71
86
  if (groupInterval) {
72
- this.setPrivateRaw("baseInterval", groupInterval);
87
+ this._setBaseInterval(groupInterval);
73
88
  }
74
89
  else {
75
- this.setPrivateRaw("baseInterval", this.get("baseInterval"));
90
+ this._setBaseInterval(this.get("baseInterval"));
76
91
  }
77
92
  if (this.isDirty("groupInterval")) {
78
93
  var groupInterval_1 = this.get("groupInterval");
@@ -84,10 +99,9 @@ var DateAxis = /** @class */ (function (_super) {
84
99
  if (!this._dataGrouped) {
85
100
  if (this.get("groupData")) {
86
101
  $array.each(this.series, function (series) {
87
- if (series.get("groupDataDisabled")) {
88
- _this._groupSeriesData(series);
89
- }
102
+ _this._groupSeriesData(series);
90
103
  });
104
+ this._handleRangeChange();
91
105
  }
92
106
  else {
93
107
  var baseInterval = this.get("baseInterval");
@@ -95,7 +109,7 @@ var DateAxis = /** @class */ (function (_super) {
95
109
  $array.each(this.series, function (series) {
96
110
  series.setDataSet(mainDataSetId_1);
97
111
  });
98
- this.setPrivateRaw("baseInterval", baseInterval);
112
+ this._setBaseInterval(baseInterval);
99
113
  this.setPrivateRaw("groupInterval", undefined);
100
114
  this.markDirtyExtremes();
101
115
  }
@@ -111,7 +125,7 @@ var DateAxis = /** @class */ (function (_super) {
111
125
  writable: true,
112
126
  value: function (series) {
113
127
  var _this = this;
114
- if (this.get("groupData")) {
128
+ if (this.get("groupData") && !series.get("groupDataDisabled")) {
115
129
  // make array of intervals which will be used;
116
130
  var intervals_1 = [];
117
131
  var baseDuration_1 = this.baseMainDuration();
@@ -152,13 +166,15 @@ var DateAxis = /** @class */ (function (_super) {
152
166
  groupFieldValues[field] = series.get((field + "Grouped"));
153
167
  workingFields[field] = field + "Working";
154
168
  });
169
+ var intervalDuration = $time.getDuration(interval.timeUnit);
155
170
  $array.each(dataItems_1, function (dataItem) {
156
171
  var time = dataItem.get(key_1);
157
- var roundedTime = $time.round(new Date(time), interval.timeUnit, interval.count, _this._root.locale.firstDayOfWeek, _this._root.utc).getTime();
172
+ var roundedTime = $time.round(new Date(time), interval.timeUnit, interval.count, _this._root.locale.firstDayOfWeek, _this._root.utc, undefined, _this._root.timezone).getTime();
158
173
  var dataContext;
159
- if (previousTime < roundedTime) {
174
+ if (previousTime < roundedTime - intervalDuration / 24) {
160
175
  dataContext = $object.copy(dataItem.dataContext);
161
176
  newDataItem = new DataItem(series, dataContext, series._makeDataItem(dataContext));
177
+ newDataItem.setRaw(key_1, roundedTime);
162
178
  series._dataSets[dataSetId].push(newDataItem);
163
179
  $array.each(fields_1, function (field) {
164
180
  var value = dataItem.get(field);
@@ -265,7 +281,7 @@ var DateAxis = /** @class */ (function (_super) {
265
281
  var current = this.getPrivate("groupInterval");
266
282
  if (groupInterval && (!current || (current.timeUnit !== groupInterval.timeUnit || current.count !== groupInterval.count))) {
267
283
  this.setPrivateRaw("groupInterval", groupInterval);
268
- this.setPrivateRaw("baseInterval", groupInterval);
284
+ this._setBaseInterval(groupInterval);
269
285
  if (groupInterval) {
270
286
  var newId_1 = groupInterval.timeUnit + groupInterval.count;
271
287
  $array.each(this.series, function (series) {
@@ -337,7 +353,7 @@ var DateAxis = /** @class */ (function (_super) {
337
353
  var intervalDuration = $time.getIntervalDuration(gridInterval);
338
354
  this._intervalDuration = intervalDuration;
339
355
  var nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);
340
- value = $time.round(new Date(selectionMin - intervalDuration), gridInterval.timeUnit, gridInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, new Date(min)).getTime();
356
+ value = $time.round(new Date(selectionMin - intervalDuration), gridInterval.timeUnit, gridInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, new Date(min), this._root.timezone).getTime();
341
357
  var previousValue = value - intervalDuration;
342
358
  var format = void 0;
343
359
  var formats = this.get("dateFormats");
@@ -356,12 +372,12 @@ var DateAxis = /** @class */ (function (_super) {
356
372
  dataItem.show();
357
373
  }
358
374
  dataItem.setRaw("value", value);
359
- dataItem.setRaw("endValue", $time.round(new Date(value + intervalDuration * 1.1), gridInterval.timeUnit, gridInterval.count).getTime());
375
+ dataItem.setRaw("endValue", $time.add(new Date(value), gridInterval.timeUnit, gridInterval.count, this._root.utc).getTime()); //$time.round(new Date(value + intervalDuration * 1.1), gridInterval.timeUnit, gridInterval.count).getTime());
360
376
  var date = new Date(value);
361
377
  format = formats[gridInterval.timeUnit];
362
378
  if (nextGridUnit && this.get("markUnitChange") && $type.isNumber(previousValue)) {
363
379
  if (gridInterval.timeUnit != "year") {
364
- if ($time.checkChange(date, new Date(previousValue), nextGridUnit, this._root.utc)) {
380
+ if ($time.checkChange(value, previousValue, nextGridUnit, this._root.utc, this._root.timezone)) {
365
381
  format = this.get("periodChangeDateFormats")[gridInterval.timeUnit];
366
382
  }
367
383
  }
@@ -393,22 +409,59 @@ var DateAxis = /** @class */ (function (_super) {
393
409
  writable: true,
394
410
  value: function (min) {
395
411
  var baseInterval = this.getPrivate("baseInterval");
396
- var startTime = $time.round(new Date(min), baseInterval.timeUnit, baseInterval.count, this._root.locale.firstDayOfWeek, this._root.utc).getTime();
412
+ var startTime = $time.round(new Date(min), baseInterval.timeUnit, baseInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, undefined, this._root.timezone).getTime();
397
413
  var endTime = $time.add(new Date(startTime), baseInterval.timeUnit, baseInterval.count, this._root.utc).getTime();
398
414
  return startTime + (endTime - startTime) * this.get("startLocation", 0);
399
415
  }
400
416
  });
417
+ /* goes up to the year
418
+ protected _getFormat(timeUnit: TimeUnit, value: number, previousValue: number) {
419
+ const formats = this.get("dateFormats")!;
420
+ let format = formats[timeUnit];
421
+
422
+ if (this.get("markUnitChange")) {
423
+ let nextGridUnit = $time.getNextUnit(timeUnit);
424
+
425
+ while (nextGridUnit != undefined) {
426
+
427
+ if (nextGridUnit) {
428
+ if (timeUnit != "year") {
429
+ if ($time.checkChange(value, previousValue, nextGridUnit, this._root.utc, this._root.timezone)) {
430
+ format = this.get("periodChangeDateFormats")![timeUnit];
431
+ timeUnit = nextGridUnit;
432
+ nextGridUnit = $time.getNextUnit(nextGridUnit);
433
+ }
434
+ else {
435
+ nextGridUnit = undefined;
436
+ }
437
+ }
438
+ else {
439
+ nextGridUnit = undefined;
440
+ }
441
+ }
442
+ }
443
+ }
444
+ return format;
445
+ }
446
+ */
401
447
  Object.defineProperty(DateAxis.prototype, "_fixMax", {
402
448
  enumerable: false,
403
449
  configurable: true,
404
450
  writable: true,
405
451
  value: function (max) {
406
452
  var baseInterval = this.getPrivate("baseInterval");
407
- var startTime = $time.round(new Date(max), baseInterval.timeUnit, baseInterval.count, this._root.locale.firstDayOfWeek, this._root.utc).getTime();
453
+ var startTime = $time.round(new Date(max), baseInterval.timeUnit, baseInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, undefined, this._root.timezone).getTime();
408
454
  var endTime = $time.add(new Date(startTime), baseInterval.timeUnit, baseInterval.count, this._root.utc).getTime();
409
455
  return startTime + (endTime - startTime) * this.get("endLocation", 1);
410
456
  }
411
457
  });
458
+ Object.defineProperty(DateAxis.prototype, "_updateDates", {
459
+ enumerable: false,
460
+ configurable: true,
461
+ writable: true,
462
+ value: function (_date) {
463
+ }
464
+ });
412
465
  /**
413
466
  * Returns a duration of currently active `baseInterval` in milliseconds.
414
467
  *
@@ -419,7 +472,8 @@ var DateAxis = /** @class */ (function (_super) {
419
472
  configurable: true,
420
473
  writable: true,
421
474
  value: function () {
422
- return $time.getIntervalDuration(this.getPrivate("baseInterval"));
475
+ return this._baseDuration;
476
+ //return $time.getIntervalDuration(this.getPrivate("baseInterval"));
423
477
  }
424
478
  });
425
479
  /**
@@ -450,10 +504,11 @@ var DateAxis = /** @class */ (function (_super) {
450
504
  $array.each(fields, function (field) {
451
505
  var value = dataItem.get(field);
452
506
  if ($type.isNumber(value)) {
453
- var startTime = $time.round(new Date(value), baseInterval.timeUnit, baseInterval.count, _this._root.locale.firstDayOfWeek, _this._root.utc).getTime();
507
+ var startTime = $time.round(new Date(value), baseInterval.timeUnit, baseInterval.count, _this._root.locale.firstDayOfWeek, _this._root.utc, undefined, _this._root.timezone).getTime();
454
508
  var endTime = $time.add(new Date(startTime), baseInterval.timeUnit, baseInterval.count, _this._root.utc).getTime();
455
509
  dataItem.open[field] = startTime;
456
510
  dataItem.close[field] = endTime;
511
+ _this._updateDates(startTime);
457
512
  }
458
513
  });
459
514
  }
@@ -536,7 +591,7 @@ var DateAxis = /** @class */ (function (_super) {
536
591
  value: function (position, location) {
537
592
  var value = this.positionToValue(position);
538
593
  var baseInterval = this.getPrivate("baseInterval");
539
- value = $time.round(new Date(value), baseInterval.timeUnit, baseInterval.count, this._root.locale.firstDayOfWeek, this._root.utc).getTime();
594
+ value = $time.round(new Date(value), baseInterval.timeUnit, baseInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, undefined, this._root.timezone).getTime();
540
595
  var endValue = value;
541
596
  if (location > 0) {
542
597
  endValue = $time.add(new Date(value), baseInterval.timeUnit, baseInterval.count, this._root.utc).getTime();