@amcharts/amcharts5 5.1.1 → 5.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/.internal/charts/flow/Chord.d.ts.map +1 -1
  2. package/.internal/charts/flow/Chord.js +7 -0
  3. package/.internal/charts/flow/Chord.js.map +1 -1
  4. package/.internal/charts/flow/Flow.d.ts +11 -0
  5. package/.internal/charts/flow/Flow.d.ts.map +1 -1
  6. package/.internal/charts/flow/Flow.js +17 -5
  7. package/.internal/charts/flow/Flow.js.map +1 -1
  8. package/.internal/charts/flow/SankeyLink.d.ts +2 -0
  9. package/.internal/charts/flow/SankeyLink.d.ts.map +1 -1
  10. package/.internal/charts/flow/SankeyLink.js +8 -0
  11. package/.internal/charts/flow/SankeyLink.js.map +1 -1
  12. package/.internal/charts/hierarchy/ForceDirected.d.ts.map +1 -1
  13. package/.internal/charts/hierarchy/ForceDirected.js +1 -2
  14. package/.internal/charts/hierarchy/ForceDirected.js.map +1 -1
  15. package/.internal/charts/map/MapSeries.d.ts.map +1 -1
  16. package/.internal/charts/map/MapSeries.js +7 -1
  17. package/.internal/charts/map/MapSeries.js.map +1 -1
  18. package/.internal/charts/radar/RadarCursor.d.ts +2 -0
  19. package/.internal/charts/radar/RadarCursor.d.ts.map +1 -1
  20. package/.internal/charts/radar/RadarCursor.js +20 -0
  21. package/.internal/charts/radar/RadarCursor.js.map +1 -1
  22. package/.internal/charts/xy/XYChart.d.ts +2 -2
  23. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  24. package/.internal/charts/xy/XYChart.js +45 -31
  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 +12 -1
  28. package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
  29. package/.internal/charts/xy/XYCursor.d.ts +23 -2
  30. package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
  31. package/.internal/charts/xy/XYCursor.js +92 -7
  32. package/.internal/charts/xy/XYCursor.js.map +1 -1
  33. package/.internal/charts/xy/axes/Axis.d.ts +1 -1
  34. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  35. package/.internal/charts/xy/axes/Axis.js +21 -6
  36. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  37. package/.internal/charts/xy/axes/DateAxis.d.ts +23 -2
  38. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  39. package/.internal/charts/xy/axes/DateAxis.js +14 -12
  40. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  41. package/.internal/charts/xy/axes/DurationAxis.d.ts.map +1 -1
  42. package/.internal/charts/xy/axes/DurationAxis.js +6 -3
  43. package/.internal/charts/xy/axes/DurationAxis.js.map +1 -1
  44. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts +1 -0
  45. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  46. package/.internal/charts/xy/axes/GaplessDateAxis.js +21 -39
  47. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  48. package/.internal/charts/xy/axes/ValueAxis.d.ts +7 -0
  49. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  50. package/.internal/charts/xy/axes/ValueAxis.js +28 -0
  51. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  52. package/.internal/charts/xy/series/LineSeries.d.ts +2 -0
  53. package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
  54. package/.internal/charts/xy/series/LineSeries.js +29 -5
  55. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  56. package/.internal/charts/xy/series/XYSeries.d.ts +14 -1
  57. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  58. package/.internal/charts/xy/series/XYSeries.js +3 -1
  59. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  60. package/.internal/core/Root.d.ts +12 -2
  61. package/.internal/core/Root.d.ts.map +1 -1
  62. package/.internal/core/Root.js +31 -4
  63. package/.internal/core/Root.js.map +1 -1
  64. package/.internal/core/render/Legend.js.map +1 -1
  65. package/.internal/core/render/Line.d.ts +6 -0
  66. package/.internal/core/render/Line.d.ts.map +1 -1
  67. package/.internal/core/render/Line.js +5 -1
  68. package/.internal/core/render/Line.js.map +1 -1
  69. package/.internal/core/render/Scrollbar.d.ts +2 -0
  70. package/.internal/core/render/Scrollbar.d.ts.map +1 -1
  71. package/.internal/core/render/Scrollbar.js +10 -1
  72. package/.internal/core/render/Scrollbar.js.map +1 -1
  73. package/.internal/core/render/Series.d.ts.map +1 -1
  74. package/.internal/core/render/Series.js +5 -3
  75. package/.internal/core/render/Series.js.map +1 -1
  76. package/.internal/core/render/Sprite.d.ts +4 -0
  77. package/.internal/core/render/Sprite.d.ts.map +1 -1
  78. package/.internal/core/render/Sprite.js +2 -1
  79. package/.internal/core/render/Sprite.js.map +1 -1
  80. package/.internal/core/render/backend/CanvasRenderer.d.ts +9 -6
  81. package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
  82. package/.internal/core/render/backend/CanvasRenderer.js +77 -28
  83. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  84. package/.internal/core/util/DateFormatter.js +1 -1
  85. package/.internal/core/util/DateFormatter.js.map +1 -1
  86. package/.internal/core/util/Disposer.d.ts +33 -8
  87. package/.internal/core/util/Disposer.d.ts.map +1 -1
  88. package/.internal/core/util/Disposer.js +95 -21
  89. package/.internal/core/util/Disposer.js.map +1 -1
  90. package/.internal/core/util/Entity.d.ts +1 -1
  91. package/.internal/core/util/Entity.js.map +1 -1
  92. package/.internal/core/util/Language.d.ts +7 -0
  93. package/.internal/core/util/Language.d.ts.map +1 -1
  94. package/.internal/core/util/Language.js.map +1 -1
  95. package/.internal/core/util/Modal.d.ts.map +1 -1
  96. package/.internal/core/util/Modal.js +5 -3
  97. package/.internal/core/util/Modal.js.map +1 -1
  98. package/.internal/core/util/PopulateString.js +10 -1
  99. package/.internal/core/util/PopulateString.js.map +1 -1
  100. package/.internal/core/util/Utils.d.ts +20 -2
  101. package/.internal/core/util/Utils.d.ts.map +1 -1
  102. package/.internal/core/util/Utils.js +88 -17
  103. package/.internal/core/util/Utils.js.map +1 -1
  104. package/CHANGELOG.md +68 -3
  105. package/examples/javascript/flow-chord/package.json +1 -1
  106. package/examples/javascript/flow-chord-directed/package.json +1 -1
  107. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  108. package/examples/javascript/flow-sankey/package.json +1 -1
  109. package/examples/javascript/gauge/package.json +1 -1
  110. package/examples/javascript/gauge-bands/package.json +1 -1
  111. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  112. package/examples/javascript/hierarchy-pack/package.json +1 -1
  113. package/examples/javascript/hierarchy-partition/package.json +1 -1
  114. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  115. package/examples/javascript/hierarchy-tree/package.json +1 -1
  116. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  117. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  118. package/examples/javascript/map-day-and-night/package.json +1 -1
  119. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  120. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  121. package/examples/javascript/map-with-bubbles/package.json +1 -1
  122. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  123. package/examples/javascript/misc-40-charts/package.json +1 -1
  124. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  125. package/examples/javascript/pie-chart/package.json +1 -1
  126. package/examples/javascript/pie-donut-chart/package.json +1 -1
  127. package/examples/javascript/pie-variable-radius/package.json +1 -1
  128. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  129. package/examples/javascript/radar-heat-map/package.json +1 -1
  130. package/examples/javascript/radar-line/package.json +1 -1
  131. package/examples/javascript/radar-time-line/package.json +1 -1
  132. package/examples/javascript/sliced-funnel/package.json +1 -1
  133. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  134. package/examples/javascript/sliced-pyramid/package.json +1 -1
  135. package/examples/javascript/venn-diagram/package.json +1 -1
  136. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  137. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  138. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  139. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  140. package/examples/javascript/xy-bubble/package.json +1 -1
  141. package/examples/javascript/xy-candlestick/package.json +1 -1
  142. package/examples/javascript/xy-clustered-column/package.json +1 -1
  143. package/examples/javascript/xy-column/package.json +1 -1
  144. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  145. package/examples/javascript/xy-data-grouping/package.json +1 -1
  146. package/examples/javascript/xy-draggable-range/package.json +1 -1
  147. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  148. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  149. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  150. package/examples/javascript/xy-line/package.json +1 -1
  151. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  152. package/examples/javascript/xy-live-data/package.json +1 -1
  153. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  154. package/examples/javascript/xy-ohlc/package.json +1 -1
  155. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  156. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  157. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  158. package/examples/javascript/xy-stacked-column/package.json +1 -1
  159. package/examples/javascript/xy-stacked-step/package.json +1 -1
  160. package/examples/javascript/xy-stock/index.js +1 -1
  161. package/examples/javascript/xy-stock/package.json +1 -1
  162. package/examples/javascript/xy-stock-comparing/index.js +1 -1
  163. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  164. package/examples/typescript/flow-chord/package.json +1 -1
  165. package/examples/typescript/flow-chord-directed/package.json +1 -1
  166. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  167. package/examples/typescript/flow-sankey/package.json +1 -1
  168. package/examples/typescript/gauge/package.json +1 -1
  169. package/examples/typescript/gauge-bands/package.json +1 -1
  170. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  171. package/examples/typescript/hierarchy-pack/package.json +1 -1
  172. package/examples/typescript/hierarchy-partition/package.json +1 -1
  173. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  174. package/examples/typescript/hierarchy-tree/package.json +1 -1
  175. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  176. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  177. package/examples/typescript/map-day-and-night/package.json +1 -1
  178. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  179. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  180. package/examples/typescript/map-with-bubbles/package.json +1 -1
  181. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  182. package/examples/typescript/misc-40-charts/package.json +1 -1
  183. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  184. package/examples/typescript/pie-chart/package.json +1 -1
  185. package/examples/typescript/pie-donut-chart/package.json +1 -1
  186. package/examples/typescript/pie-variable-radius/package.json +1 -1
  187. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  188. package/examples/typescript/radar-heat-map/package.json +1 -1
  189. package/examples/typescript/radar-line/package.json +1 -1
  190. package/examples/typescript/radar-time-line/package.json +1 -1
  191. package/examples/typescript/sliced-funnel/package.json +1 -1
  192. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  193. package/examples/typescript/sliced-pyramid/package.json +1 -1
  194. package/examples/typescript/venn-diagram/package.json +1 -1
  195. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  196. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  197. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  198. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  199. package/examples/typescript/xy-bubble/package.json +1 -1
  200. package/examples/typescript/xy-candlestick/package.json +1 -1
  201. package/examples/typescript/xy-clustered-column/package.json +1 -1
  202. package/examples/typescript/xy-column/package.json +1 -1
  203. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  204. package/examples/typescript/xy-data-grouping/package.json +1 -1
  205. package/examples/typescript/xy-draggable-range/package.json +1 -1
  206. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  207. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  208. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  209. package/examples/typescript/xy-line/package.json +1 -1
  210. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  211. package/examples/typescript/xy-live-data/package.json +1 -1
  212. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  213. package/examples/typescript/xy-ohlc/package.json +1 -1
  214. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  215. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  216. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  217. package/examples/typescript/xy-stacked-column/package.json +1 -1
  218. package/examples/typescript/xy-stacked-step/package.json +1 -1
  219. package/examples/typescript/xy-stock/index.ts +1 -1
  220. package/examples/typescript/xy-stock/package.json +1 -1
  221. package/examples/typescript/xy-stock-comparing/index.ts +1 -1
  222. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  223. package/locales/ar.d.ts +7 -0
  224. package/locales/ar.d.ts.map +1 -1
  225. package/locales/ar.js +7 -0
  226. package/locales/ar.js.map +1 -1
  227. package/locales/bs_BA.d.ts +7 -0
  228. package/locales/bs_BA.d.ts.map +1 -1
  229. package/locales/bs_BA.js +7 -0
  230. package/locales/bs_BA.js.map +1 -1
  231. package/locales/ca_ES.d.ts +7 -0
  232. package/locales/ca_ES.d.ts.map +1 -1
  233. package/locales/ca_ES.js +7 -0
  234. package/locales/ca_ES.js.map +1 -1
  235. package/locales/cs_CZ.d.ts +7 -0
  236. package/locales/cs_CZ.d.ts.map +1 -1
  237. package/locales/cs_CZ.js +7 -0
  238. package/locales/cs_CZ.js.map +1 -1
  239. package/locales/da_DK.d.ts +7 -0
  240. package/locales/da_DK.d.ts.map +1 -1
  241. package/locales/da_DK.js +7 -0
  242. package/locales/da_DK.js.map +1 -1
  243. package/locales/de_CH.d.ts +11 -4
  244. package/locales/de_CH.d.ts.map +1 -1
  245. package/locales/de_CH.js +11 -4
  246. package/locales/de_CH.js.map +1 -1
  247. package/locales/de_DE.d.ts +7 -0
  248. package/locales/de_DE.d.ts.map +1 -1
  249. package/locales/de_DE.js +7 -0
  250. package/locales/de_DE.js.map +1 -1
  251. package/locales/el_GR.d.ts +7 -0
  252. package/locales/el_GR.d.ts.map +1 -1
  253. package/locales/el_GR.js +7 -0
  254. package/locales/el_GR.js.map +1 -1
  255. package/locales/en.d.ts +7 -0
  256. package/locales/en.d.ts.map +1 -1
  257. package/locales/en.js +7 -0
  258. package/locales/en.js.map +1 -1
  259. package/locales/en_CA.d.ts +7 -0
  260. package/locales/en_CA.d.ts.map +1 -1
  261. package/locales/en_CA.js +8 -1
  262. package/locales/en_CA.js.map +1 -1
  263. package/locales/en_US.d.ts +7 -0
  264. package/locales/en_US.d.ts.map +1 -1
  265. package/locales/en_US.js +8 -1
  266. package/locales/en_US.js.map +1 -1
  267. package/locales/es_ES.d.ts +7 -0
  268. package/locales/es_ES.d.ts.map +1 -1
  269. package/locales/es_ES.js +7 -0
  270. package/locales/es_ES.js.map +1 -1
  271. package/locales/et_EE.d.ts +7 -0
  272. package/locales/et_EE.d.ts.map +1 -1
  273. package/locales/et_EE.js +7 -0
  274. package/locales/et_EE.js.map +1 -1
  275. package/locales/fi_FI.d.ts +7 -0
  276. package/locales/fi_FI.d.ts.map +1 -1
  277. package/locales/fi_FI.js +7 -0
  278. package/locales/fi_FI.js.map +1 -1
  279. package/locales/fr_FR.d.ts +7 -0
  280. package/locales/fr_FR.d.ts.map +1 -1
  281. package/locales/fr_FR.js +7 -0
  282. package/locales/fr_FR.js.map +1 -1
  283. package/locales/he_IL.d.ts +7 -0
  284. package/locales/he_IL.d.ts.map +1 -1
  285. package/locales/he_IL.js +7 -0
  286. package/locales/he_IL.js.map +1 -1
  287. package/locales/hi_IN.d.ts +7 -0
  288. package/locales/hi_IN.d.ts.map +1 -1
  289. package/locales/hi_IN.js +7 -0
  290. package/locales/hi_IN.js.map +1 -1
  291. package/locales/hr_HR.d.ts +7 -0
  292. package/locales/hr_HR.d.ts.map +1 -1
  293. package/locales/hr_HR.js +7 -0
  294. package/locales/hr_HR.js.map +1 -1
  295. package/locales/hu_HU.d.ts +7 -0
  296. package/locales/hu_HU.d.ts.map +1 -1
  297. package/locales/hu_HU.js +7 -0
  298. package/locales/hu_HU.js.map +1 -1
  299. package/locales/id_ID.d.ts +7 -0
  300. package/locales/id_ID.d.ts.map +1 -1
  301. package/locales/id_ID.js +7 -0
  302. package/locales/id_ID.js.map +1 -1
  303. package/locales/it_IT.d.ts +7 -0
  304. package/locales/it_IT.d.ts.map +1 -1
  305. package/locales/it_IT.js +7 -0
  306. package/locales/it_IT.js.map +1 -1
  307. package/locales/ja_JP.d.ts +7 -0
  308. package/locales/ja_JP.d.ts.map +1 -1
  309. package/locales/ja_JP.js +7 -0
  310. package/locales/ja_JP.js.map +1 -1
  311. package/locales/ko_KR.d.ts +7 -0
  312. package/locales/ko_KR.d.ts.map +1 -1
  313. package/locales/ko_KR.js +7 -0
  314. package/locales/ko_KR.js.map +1 -1
  315. package/locales/lt_LT.d.ts +7 -0
  316. package/locales/lt_LT.d.ts.map +1 -1
  317. package/locales/lt_LT.js +9 -2
  318. package/locales/lt_LT.js.map +1 -1
  319. package/locales/lv_LV.d.ts +7 -0
  320. package/locales/lv_LV.d.ts.map +1 -1
  321. package/locales/lv_LV.js +7 -0
  322. package/locales/lv_LV.js.map +1 -1
  323. package/locales/nb_NO.d.ts +7 -0
  324. package/locales/nb_NO.d.ts.map +1 -1
  325. package/locales/nb_NO.js +7 -0
  326. package/locales/nb_NO.js.map +1 -1
  327. package/locales/nl_NL.d.ts +7 -0
  328. package/locales/nl_NL.d.ts.map +1 -1
  329. package/locales/nl_NL.js +7 -0
  330. package/locales/nl_NL.js.map +1 -1
  331. package/locales/pl_PL.d.ts +7 -0
  332. package/locales/pl_PL.d.ts.map +1 -1
  333. package/locales/pl_PL.js +7 -0
  334. package/locales/pl_PL.js.map +1 -1
  335. package/locales/pt_BR.d.ts +7 -0
  336. package/locales/pt_BR.d.ts.map +1 -1
  337. package/locales/pt_BR.js +7 -0
  338. package/locales/pt_BR.js.map +1 -1
  339. package/locales/pt_PT.d.ts +7 -0
  340. package/locales/pt_PT.d.ts.map +1 -1
  341. package/locales/pt_PT.js +7 -0
  342. package/locales/pt_PT.js.map +1 -1
  343. package/locales/ro_RO.d.ts +7 -0
  344. package/locales/ro_RO.d.ts.map +1 -1
  345. package/locales/ro_RO.js +7 -0
  346. package/locales/ro_RO.js.map +1 -1
  347. package/locales/ru_RU.d.ts +7 -0
  348. package/locales/ru_RU.d.ts.map +1 -1
  349. package/locales/ru_RU.js +7 -0
  350. package/locales/ru_RU.js.map +1 -1
  351. package/locales/sl_SL.d.ts +7 -0
  352. package/locales/sl_SL.d.ts.map +1 -1
  353. package/locales/sl_SL.js +7 -0
  354. package/locales/sl_SL.js.map +1 -1
  355. package/locales/sr_RS.d.ts +7 -0
  356. package/locales/sr_RS.d.ts.map +1 -1
  357. package/locales/sr_RS.js +7 -0
  358. package/locales/sr_RS.js.map +1 -1
  359. package/locales/sv_SE.d.ts +7 -0
  360. package/locales/sv_SE.d.ts.map +1 -1
  361. package/locales/sv_SE.js +7 -0
  362. package/locales/sv_SE.js.map +1 -1
  363. package/locales/th_TH.d.ts +7 -0
  364. package/locales/th_TH.d.ts.map +1 -1
  365. package/locales/th_TH.js +7 -0
  366. package/locales/th_TH.js.map +1 -1
  367. package/locales/tr_TR.d.ts +7 -0
  368. package/locales/tr_TR.d.ts.map +1 -1
  369. package/locales/tr_TR.js +7 -0
  370. package/locales/tr_TR.js.map +1 -1
  371. package/locales/uk_UA.d.ts +7 -0
  372. package/locales/uk_UA.d.ts.map +1 -1
  373. package/locales/uk_UA.js +7 -0
  374. package/locales/uk_UA.js.map +1 -1
  375. package/locales/vi_VN.d.ts +7 -0
  376. package/locales/vi_VN.d.ts.map +1 -1
  377. package/locales/vi_VN.js +7 -0
  378. package/locales/vi_VN.js.map +1 -1
  379. package/locales/zh_Hans.d.ts +7 -0
  380. package/locales/zh_Hans.d.ts.map +1 -1
  381. package/locales/zh_Hans.js +7 -0
  382. package/locales/zh_Hans.js.map +1 -1
  383. package/locales/zh_Hant.d.ts +7 -0
  384. package/locales/zh_Hant.d.ts.map +1 -1
  385. package/locales/zh_Hant.js +7 -0
  386. package/locales/zh_Hant.js.map +1 -1
  387. package/package.json +6 -1
@@ -1 +1 @@
1
- {"version":3,"file":"GaplessDateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/GaplessDateAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AxisRenderer } from \"./AxisRenderer\";\r\n\r\nimport { DateAxis, IDateAxisSettings, IDateAxisPrivate, IDateAxisDataItem, IDateAxisEvents } from \"./DateAxis\";\r\nimport { DataItem } from \"../../../core/render/Component\";\r\n\r\nimport * as $array from \"../../../core/util/Array\"\r\nimport * as $order from \"../../../core/util/Order\";\r\nimport * as $time from \"../../../core/util/Time\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IGaplessDateAxisSettings<R extends AxisRenderer> extends IDateAxisSettings<R> {\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisDataItem extends IDateAxisDataItem {\r\n\tindex?: number\r\n}\r\n\r\nexport interface IGaplessDateAxisPrivate extends IDateAxisPrivate {\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisEvents extends IDateAxisEvents {\r\n}\r\n\r\n/**\r\n * A version of a [[DateAxis]] which removes intervals that don't have any data\r\n * items in them.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/gapless-date-axis/} for more info\r\n * @important\r\n */\r\nexport class GaplessDateAxis<R extends AxisRenderer> extends DateAxis<R> {\r\n\tpublic static className: string = \"GaplessDateAxis\";\r\n\tpublic static classNames: Array<string> = DateAxis.classNames.concat([GaplessDateAxis.className]);\r\n\r\n\tdeclare public _settings: IGaplessDateAxisSettings<R>;\r\n\tdeclare public _privateSettings: IGaplessDateAxisPrivate;\r\n\tdeclare public _dataItemSettings: IGaplessDateAxisDataItem;\r\n\tdeclare public _events: IGaplessDateAxisEvents;\r\n\r\n\tprotected _frequency: number = 1;\r\n\r\n\tpublic _afterNew() {\r\n\t\tthis.valueFields.push(\"date\");\r\n\t\tsuper._afterNew();\r\n\t}\r\n\r\n\tprotected _dates: Array<number> = [];\r\n\r\n\tprotected _updateDates(date: number) {\r\n\t\tconst dates = this._dates;\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, date));\r\n\t\tif (!result.found) {\r\n\t\t\t$array.insertIndex(dates, result.index, date);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateAllDates() {\r\n\t\tthis._dates.length = 0;\r\n\r\n\t\t$array.each(this.series, (series) => {\r\n\t\t\tlet field = \"valueX\";\r\n\t\t\tif (series.get(\"yAxis\") == this) {\r\n\t\t\t\tfield = \"valueY\"\r\n\t\t\t}\r\n\t\t\t$array.each(series.dataItems, (dataItem) => {\r\n\t\t\t\tlet value = dataItem.get(field as any);\r\n\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\tif (dataItem.open) {\r\n\t\t\t\t\t\tthis._updateDates(dataItem.open![field]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Convers value to a relative position on axis.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Relative position\r\n\t */\r\n\tpublic valueToPosition(value: number): number {\r\n\t\tconst dates = this._dates;\r\n\t\tconst len = dates.length;\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, value));\r\n\t\tlet index = result.index;\r\n\r\n\t\tif (result.found) {\r\n\t\t\treturn index / len;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (index > 0) {\r\n\t\t\t\tindex -= 1;\r\n\t\t\t}\r\n\r\n\t\t\tlet itemValue = dates[index];\r\n\r\n\t\t\tlet d = 0;\r\n\t\t\tif (itemValue > value) {\r\n\t\t\t\td = itemValue - value;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\td = value - itemValue;\r\n\t\t\t}\r\n\r\n\t\t\treturn index / len + d / this.baseDuration() / len;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts numeric value from axis scale to index.\r\n\t * \r\n\t * @param value Value\r\n\t * @return Index\r\n\t */\r\n\tpublic valueToIndex(value: number): number {\r\n\t\tconst dates = this._dates;\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, value));\r\n\t\tlet index = result.index;\r\n\r\n\t\tif (result.found) {\r\n\t\t\treturn index;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (index > 0) {\r\n\t\t\t\tindex -= 1;\r\n\t\t\t}\r\n\r\n\t\t\treturn index;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a relative position to a corresponding numeric value from axis\r\n\t * scale.\r\n\t *\r\n\t * @param position Relative position\r\n\t * @return Value\r\n\t */\r\n\tpublic positionToValue(position: number): number {\r\n\r\n\t\tlet len = this._dates.length;\r\n\t\tlet index = position * len;\r\n\t\tlet findex = Math.floor(index);\r\n\t\tif (findex < 0) {\r\n\t\t\tfindex = 0;\r\n\t\t}\r\n\r\n\t\tif (findex > len - 1) {\r\n\t\t\tfindex = len - 1\r\n\t\t}\r\n\r\n\t\treturn this._dates[findex] + (index - findex) * this.baseDuration();\r\n\t}\r\n\r\n\r\n\tprotected _prepareAxisItems() {\r\n\t\tlet startTime = this.getPrivate(\"selectionMin\", 0);\r\n\t\tlet endTime = this.getPrivate(\"selectionMax\", 0);\r\n\r\n\t\tif ($type.isNumber(startTime) && $type.isNumber(endTime)) {\r\n\r\n\t\t\tif (this._seriesValuesDirty) {\r\n\t\t\t\tthis._seriesValuesDirty = false;\r\n\t\t\t\tthis._updateAllDates();\r\n\t\t\t}\r\n\r\n\t\t\tconst dates = this._dates;\r\n\t\t\tconst renderer = this.get(\"renderer\");\r\n\t\t\tconst len = dates.length;\r\n\r\n\t\t\tlet startIndex = this.valueToIndex(startTime);\r\n\t\t\tif (startIndex > 0) {\r\n\t\t\t\tstartIndex--;\r\n\t\t\t}\r\n\r\n\t\t\tlet endIndex = this.valueToIndex(endTime);\r\n\t\t\tif (endIndex < len - 1) {\r\n\t\t\t\tendIndex++;\r\n\t\t\t}\r\n\r\n\t\t\tlet maxCount = renderer.axisLength() / Math.max(renderer.get(\"minGridDistance\")!, 1 / Number.MAX_SAFE_INTEGER);\r\n\r\n\t\t\tlet frequency = Math.min(len, Math.ceil((endIndex - startIndex) / maxCount));\r\n\r\n\t\t\tstartIndex = Math.floor(startIndex / frequency) * frequency;\r\n\t\t\tthis._frequency = frequency;\r\n\r\n\t\t\tfor (let j = 0, length = this.dataItems.length; j < length; j++) {\r\n\t\t\t\tthis.dataItems[j].hide();\r\n\t\t\t}\r\n\r\n\t\t\tlet realDuration = (endTime - startTime);\r\n\r\n\t\t\tif (endIndex - startIndex < maxCount) {\r\n\t\t\t\trealDuration = (endTime - startTime) - ((endTime - startTime) / this.baseDuration() - (endIndex - startIndex)) * this.baseDuration();\r\n\t\t\t}\r\n\r\n\t\t\t// if all items are on axis\r\n\t\t\tlet gridInterval = $time.chooseInterval(0, realDuration, maxCount, this.get(\"gridIntervals\")!);\r\n\r\n\t\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\r\n\t\t\tlet intervalDuration = $time.getIntervalDuration(gridInterval);\r\n\r\n\t\t\tif (intervalDuration < this.baseDuration()) {\r\n\t\t\t\tgridInterval = { ...baseInterval };\r\n\t\t\t\tintervalDuration = $time.getIntervalDuration(gridInterval);\r\n\t\t\t}\r\n\r\n\r\n\t\t\tthis._intervalDuration = intervalDuration;\r\n\r\n\t\t\tconst formats = this.get(\"dateFormats\")!;\r\n\r\n\t\t\tlet previousIndex = -Infinity;\r\n\t\t\tlet previousUnitValue = -Infinity;\r\n\r\n\t\t\tlet selectedItems: Array<number> = [];\r\n\t\t\tlet changed = false;\r\n\t\t\t// 0, not a mistake, starting from start index is not good\r\n\t\t\tfor (let i = 0; i < len; i++) {\r\n\t\t\t\tlet index = i;\r\n\t\t\t\tlet skip = false;\r\n\r\n\t\t\t\tlet value = dates[i];\r\n\t\t\t\tlet date = new Date(value);\r\n\t\t\t\tlet unitValue = $time.getUnitValue(date, gridInterval.timeUnit);\r\n\r\n\t\t\t\tlet shouldAdd = false;\r\n\t\t\t\tif (gridInterval.timeUnit === \"day\" || gridInterval.timeUnit === \"week\") {\r\n\t\t\t\t\tif (index - previousIndex >= frequency) {\r\n\t\t\t\t\t\tshouldAdd = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (unitValue % gridInterval.count === 0) {\r\n\t\t\t\t\t\tif (unitValue != previousUnitValue) {\r\n\t\t\t\t\t\t\tshouldAdd = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (shouldAdd) {\r\n\t\t\t\t\tif (index - frequency * 0.7 < previousIndex) {\r\n\t\t\t\t\t\tif (changed) {\r\n\t\t\t\t\t\t\tskip = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!skip) {\r\n\t\t\t\t\t\tselectedItems.push(i);\r\n\t\t\t\t\t\tpreviousIndex = index;\r\n\t\t\t\t\t\tpreviousUnitValue = unitValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tchanged = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (selectedItems.length > 0) {\r\n\t\t\t\tlet i = 0;\r\n\t\t\t\tlet previousValue = -Infinity;\r\n\t\t\t\tconst nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\r\n\r\n\t\t\t\t$array.each(selectedItems, (index) => {\r\n\t\t\t\t\tlet dataItem: DataItem<this[\"_dataItemSettings\"]>;\r\n\t\t\t\t\tif (this.dataItems.length < i + 1) {\r\n\t\t\t\t\t\tdataItem = new DataItem<this[\"_dataItemSettings\"]>(this, undefined, {});\r\n\t\t\t\t\t\tthis._dataItems.push(dataItem);\r\n\t\t\t\t\t\tthis.processDataItem(dataItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tdataItem = this.dataItems[i];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet value = dates[index];\r\n\t\t\t\t\tlet date = new Date(value);\r\n\r\n\t\t\t\t\tlet endValue = value;\r\n\t\t\t\t\tif (i < selectedItems.length - 1) {\r\n\t\t\t\t\t\tendValue = dates[selectedItems[i + 1]];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tendValue += intervalDuration;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdataItem.setRaw(\"value\", value);\r\n\t\t\t\t\tdataItem.setRaw(\"endValue\", endValue);\r\n\t\t\t\t\tdataItem.setRaw(\"index\", i);\r\n\r\n\t\t\t\t\tif (index > startIndex - 100 && index < endIndex + 100) {\r\n\r\n\t\t\t\t\t\tlet format = formats[gridInterval.timeUnit];\r\n\r\n\t\t\t\t\t\tformat = formats[gridInterval.timeUnit];\r\n\t\t\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\r\n\t\t\t\t\t\t\tif (gridInterval.timeUnit != \"year\") {\r\n\t\t\t\t\t\t\t\tif ($time.checkChange(value, previousValue, nextGridUnit, this._root.utc, this._root.timezone)) {\r\n\t\t\t\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![gridInterval.timeUnit];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis._createAssets(dataItem, []);\r\n\r\n\t\t\t\t\t\tconst label = dataItem.get(\"label\");\r\n\t\t\t\t\t\tif (label) {\r\n\t\t\t\t\t\t\tlabel.set(\"text\", this._root.dateFormatter.format(date, format!));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (dataItem.isHidden()) {\r\n\t\t\t\t\t\t\tdataItem.show();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis._prepareDataItem(dataItem, gridInterval.count);\r\n\t\t\t\t\t}\r\n\t\t\t\t\ti++;\r\n\t\t\t\t\tpreviousValue = value;\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\t$array.each(this.series, (series) => {\r\n\t\t\t\tif (series.inited) {\r\n\t\t\t\t\tseries._markDirtyAxes();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"GaplessDateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/GaplessDateAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AxisRenderer } from \"./AxisRenderer\";\r\n\r\nimport { DateAxis, IDateAxisSettings, IDateAxisPrivate, IDateAxisDataItem, IDateAxisEvents } from \"./DateAxis\";\r\nimport { DataItem } from \"../../../core/render/Component\";\r\n\r\nimport * as $array from \"../../../core/util/Array\"\r\nimport * as $order from \"../../../core/util/Order\";\r\nimport * as $time from \"../../../core/util/Time\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IGaplessDateAxisSettings<R extends AxisRenderer> extends IDateAxisSettings<R> {\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisDataItem extends IDateAxisDataItem {\r\n\tindex?: number\r\n}\r\n\r\nexport interface IGaplessDateAxisPrivate extends IDateAxisPrivate {\r\n\r\n}\r\n\r\nexport interface IGaplessDateAxisEvents extends IDateAxisEvents {\r\n}\r\n\r\n/**\r\n * A version of a [[DateAxis]] which removes intervals that don't have any data\r\n * items in them.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/gapless-date-axis/} for more info\r\n * @important\r\n */\r\nexport class GaplessDateAxis<R extends AxisRenderer> extends DateAxis<R> {\r\n\tpublic static className: string = \"GaplessDateAxis\";\r\n\tpublic static classNames: Array<string> = DateAxis.classNames.concat([GaplessDateAxis.className]);\r\n\r\n\tdeclare public _settings: IGaplessDateAxisSettings<R>;\r\n\tdeclare public _privateSettings: IGaplessDateAxisPrivate;\r\n\tdeclare public _dataItemSettings: IGaplessDateAxisDataItem;\r\n\tdeclare public _events: IGaplessDateAxisEvents;\r\n\r\n\tprotected _frequency: number = 1;\r\n\r\n\tpublic _afterNew() {\r\n\t\tthis.valueFields.push(\"date\");\r\n\t\tsuper._afterNew();\r\n\t}\r\n\r\n\tprotected _dates: Array<number> = [];\r\n\r\n\tprotected _updateDates(date: number) {\r\n\t\tconst dates = this._dates;\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, date));\r\n\t\tif (!result.found) {\r\n\t\t\t$array.insertIndex(dates, result.index, date);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateAllDates() {\r\n\t\tthis._dates.length = 0;\r\n\r\n\t\t$array.each(this.series, (series) => {\r\n\t\t\tlet field = \"valueX\";\r\n\t\t\tif (series.get(\"yAxis\") == this) {\r\n\t\t\t\tfield = \"valueY\"\r\n\t\t\t}\r\n\t\t\t$array.each(series.dataItems, (dataItem) => {\r\n\t\t\t\tlet value = dataItem.get(field as any);\r\n\t\t\t\tif ($type.isNumber(value)) {\r\n\t\t\t\t\tif (dataItem.open) {\r\n\t\t\t\t\t\tthis._updateDates(dataItem.open![field]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Convers value to a relative position on axis.\r\n\t *\r\n\t * @param value Value\r\n\t * @return Relative position\r\n\t */\r\n\tpublic valueToPosition(value: number): number {\r\n\t\tconst dates = this._dates;\r\n\t\tconst len = dates.length;\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, value));\r\n\t\tlet index = result.index;\r\n\r\n\t\tif (result.found) {\r\n\t\t\treturn index / len;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (index > 0) {\r\n\t\t\t\tindex -= 1;\r\n\t\t\t}\r\n\r\n\t\t\tlet itemValue = dates[index];\r\n\r\n\t\t\tlet d = 0;\r\n\t\t\tif (itemValue > value) {\r\n\t\t\t\td = itemValue - value;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\td = value - itemValue;\r\n\t\t\t}\r\n\r\n\t\t\treturn index / len + d / this.baseDuration() / len;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts numeric value from axis scale to index.\r\n\t * \r\n\t * @param value Value\r\n\t * @return Index\r\n\t */\r\n\tpublic valueToIndex(value: number): number {\r\n\t\tconst dates = this._dates;\r\n\t\tconst result = $array.getSortedIndex(dates, (x) => $order.compare(x, value));\r\n\t\tlet index = result.index;\r\n\r\n\t\tif (result.found) {\r\n\t\t\treturn index;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (index > 0) {\r\n\t\t\t\tindex -= 1;\r\n\t\t\t}\r\n\r\n\t\t\treturn index;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a relative position to a corresponding numeric value from axis\r\n\t * scale.\r\n\t *\r\n\t * @param position Relative position\r\n\t * @return Value\r\n\t */\r\n\tpublic positionToValue(position: number): number {\r\n\r\n\t\tlet len = this._dates.length;\r\n\t\tlet index = position * len;\r\n\t\tlet findex = Math.floor(index);\r\n\t\tif (findex < 0) {\r\n\t\t\tfindex = 0;\r\n\t\t}\r\n\r\n\t\tif (findex > len - 1) {\r\n\t\t\tfindex = len - 1\r\n\t\t}\r\n\r\n\t\treturn this._dates[findex] + (index - findex) * this.baseDuration();\r\n\t}\r\n\r\n\tprotected _fixZoomFactor() {\r\n\t\tthis.setPrivateRaw(\"maxZoomFactor\", this._dates.length);\r\n\t}\r\n\r\n\tprotected _prepareAxisItems() {\r\n\t\tlet startTime = this.getPrivate(\"selectionMin\", 0);\r\n\t\tlet endTime = this.getPrivate(\"selectionMax\", 0);\r\n\r\n\t\tif ($type.isNumber(startTime) && $type.isNumber(endTime)) {\r\n\r\n\t\t\tif (this._seriesValuesDirty) {\r\n\t\t\t\tthis._seriesValuesDirty = false;\r\n\t\t\t\tthis._updateAllDates();\r\n\t\t\t}\r\n\r\n\t\t\tconst dates = this._dates;\r\n\t\t\tconst renderer = this.get(\"renderer\");\r\n\t\t\tconst len = dates.length;\r\n\r\n\t\t\tlet startIndex = this.valueToIndex(startTime);\r\n\t\t\tif (startIndex > 0) {\r\n\t\t\t\tstartIndex--;\r\n\t\t\t}\r\n\r\n\t\t\tlet endIndex = this.valueToIndex(endTime);\r\n\t\t\tif (endIndex < len - 1) {\r\n\t\t\t\tendIndex++;\r\n\t\t\t}\r\n\t\t\tlet maxCount = renderer.axisLength() / Math.max(renderer.get(\"minGridDistance\")!, 1 / Number.MAX_SAFE_INTEGER);\r\n\t\t\tlet frequency = Math.min(len, Math.ceil((endIndex - startIndex) / maxCount));\r\n\r\n\t\t\tstartIndex = Math.floor(startIndex / frequency) * frequency;\r\n\t\t\tthis._frequency = frequency;\r\n\r\n\t\t\tfor (let j = 0, length = this.dataItems.length; j < length; j++) {\r\n\t\t\t\tthis.dataItems[j].hide();\r\n\t\t\t}\r\n\r\n\t\t\tlet realDuration = (endTime - startTime) - ((endTime - startTime) / this.baseDuration() - (endIndex - startIndex)) * this.baseDuration();\r\n\r\n\t\t\t// if all items are on axis\r\n\t\t\tlet gridInterval = $time.chooseInterval(0, realDuration, maxCount, this.get(\"gridIntervals\")!);\r\n\r\n\t\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\r\n\t\t\tlet intervalDuration = $time.getIntervalDuration(gridInterval);\r\n\r\n\t\t\tif (intervalDuration < this.baseDuration()) {\r\n\t\t\t\tgridInterval = { ...baseInterval };\r\n\t\t\t\tintervalDuration = $time.getIntervalDuration(gridInterval);\r\n\t\t\t}\r\n\r\n\r\n\t\t\tthis._intervalDuration = intervalDuration;\r\n\r\n\t\t\tconst formats = this.get(\"dateFormats\")!;\r\n\r\n\t\t\tlet selectedItems: Array<number> = [];\r\n\r\n\t\t\tlet value = $time.round(new Date(this.getPrivate(\"min\", 0)), gridInterval.timeUnit, gridInterval.count, this._root.locale.firstDayOfWeek, this._root.utc, undefined, this._root.timezone).getTime() - intervalDuration;\r\n\t\t\tlet selectionMax = this.getPrivate(\"selectionMax\")\r\n\r\n\t\t\tlet previousPosition = -Infinity;\r\n\t\t\tlet minDifference = (this.get(\"end\", 1) - this.get(\"start\", 0)) / maxCount;\r\n\r\n\t\t\twhile (value <= selectionMax) {\r\n\t\t\t\tlet index = this.valueToIndex(value);\r\n\t\t\t\tlet realValue = this._dates[index];\r\n\t\t\t\tlet position = this.valueToPosition(realValue);\r\n\t\t\t\tif (position - previousPosition >= minDifference * 0.95) {\r\n\t\t\t\t\t$array.move(selectedItems, index);\r\n\t\t\t\t\tpreviousPosition = position;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvalue = $time.add(new Date(value), gridInterval.timeUnit, gridInterval.count, this._root.utc).getTime();\r\n\t\t\t}\r\n\r\n\t\t\tif (selectedItems.length > 0) {\r\n\t\t\t\tlet i = 0;\r\n\t\t\t\tlet previousValue = -Infinity;\r\n\t\t\t\tconst nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\r\n\r\n\t\t\t\t$array.each(selectedItems, (index) => {\r\n\t\t\t\t\tlet dataItem: DataItem<this[\"_dataItemSettings\"]>;\r\n\t\t\t\t\tif (this.dataItems.length < i + 1) {\r\n\t\t\t\t\t\tdataItem = new DataItem<this[\"_dataItemSettings\"]>(this, undefined, {});\r\n\t\t\t\t\t\tthis._dataItems.push(dataItem);\r\n\t\t\t\t\t\tthis.processDataItem(dataItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tdataItem = this.dataItems[i];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet value = dates[index];\r\n\t\t\t\t\tlet date = new Date(value);\r\n\r\n\t\t\t\t\tlet endValue = value;\r\n\t\t\t\t\tif (i < selectedItems.length - 1) {\r\n\t\t\t\t\t\tendValue = dates[selectedItems[i + 1]];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tendValue += intervalDuration;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdataItem.setRaw(\"value\", value);\r\n\t\t\t\t\tdataItem.setRaw(\"endValue\", endValue);\r\n\t\t\t\t\tdataItem.setRaw(\"index\", i);\r\n\r\n\t\t\t\t\tif (index > startIndex - 100 && index < endIndex + 100) {\r\n\r\n\t\t\t\t\t\tlet format = formats[gridInterval.timeUnit];\r\n\r\n\t\t\t\t\t\tformat = formats[gridInterval.timeUnit];\r\n\t\t\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\r\n\t\t\t\t\t\t\tif (gridInterval.timeUnit != \"year\") {\r\n\t\t\t\t\t\t\t\tif ($time.checkChange(value, previousValue, nextGridUnit, this._root.utc, this._root.timezone)) {\r\n\t\t\t\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![gridInterval.timeUnit];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis._createAssets(dataItem, []);\r\n\r\n\t\t\t\t\t\tconst label = dataItem.get(\"label\");\r\n\t\t\t\t\t\tif (label) {\r\n\t\t\t\t\t\t\tlabel.set(\"text\", this._root.dateFormatter.format(date, format!));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (dataItem.isHidden()) {\r\n\t\t\t\t\t\t\tdataItem.show();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis._prepareDataItem(dataItem, gridInterval.count);\r\n\t\t\t\t\t}\r\n\t\t\t\t\ti++;\r\n\t\t\t\t\tpreviousValue = value;\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\t$array.each(this.series, (series) => {\r\n\t\t\t\tif (series.inited) {\r\n\t\t\t\t\tseries._markDirtyAxes();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}"]}
@@ -138,6 +138,13 @@ export interface IValueAxisDataItem extends IAxisDataItem {
138
138
  * End value for axis items that span multiple values, like axis ranges.
139
139
  */
140
140
  endValue?: number;
141
+ /**
142
+ * If set to `true` the values fo this data item will be factored in when
143
+ * calculating scale of the [[ValueAxis]]. Useful for axis ranges.
144
+ *
145
+ * @since 5.1.4
146
+ */
147
+ affectsMinMax?: boolean;
141
148
  }
142
149
  export interface IMinMaxStep {
143
150
  min: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ValueAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/ValueAxis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ValueAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/ValueAxis.ts"],"names":[],"mappings":"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"}
@@ -652,6 +652,20 @@ var ValueAxis = /** @class */ (function (_super) {
652
652
  }
653
653
  }
654
654
  });
655
+ this.axisRanges.each(function (range) {
656
+ if (range.get("affectsMinMax")) {
657
+ var value = range.get("value");
658
+ if (value != null) {
659
+ selectionMin_1 = Math.min(selectionMin_1, value);
660
+ selectionMax_1 = Math.max(selectionMax_1, value);
661
+ }
662
+ value = range.get("endValue");
663
+ if (value != null) {
664
+ selectionMin_1 = Math.min(selectionMin_1, value);
665
+ selectionMax_1 = Math.max(selectionMax_1, value);
666
+ }
667
+ }
668
+ });
655
669
  if (selectionMin_1 > selectionMax_1) {
656
670
  _a = __read([selectionMax_1, selectionMin_1], 2), selectionMin_1 = _a[0], selectionMax_1 = _a[1];
657
671
  }
@@ -762,6 +776,20 @@ var ValueAxis = /** @class */ (function (_super) {
762
776
  }
763
777
  }
764
778
  });
779
+ this.axisRanges.each(function (range) {
780
+ if (range.get("affectsMinMax")) {
781
+ var value = range.get("value");
782
+ if (value != null) {
783
+ min = Math.min(min, value);
784
+ max = Math.max(max, value);
785
+ }
786
+ value = range.get("endValue");
787
+ if (value != null) {
788
+ min = Math.min(min, value);
789
+ max = Math.max(max, value);
790
+ }
791
+ }
792
+ });
765
793
  if (this.get("logarithmic")) {
766
794
  var treatZeroAs = this.get("treatZeroAs");
767
795
  if ($type.isNumber(treatZeroAs)) {
@@ -1 +1 @@
1
- {"version":3,"file":"ValueAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/ValueAxis.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EAAE,IAAI,EAA2D,MAAM,QAAQ,CAAC;AAEvF,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAwL5D;;;;;GAKG;AACH;IAAuD,6BAAO;IAA9D;QAAA,qEAuoCC;QA9nCA;;;;mBAAoC,KAAK;WAAC;QAC1C;;;;mBAA6C,KAAK;WAAC;QACnD;;;;mBAAiC,CAAC;WAAC;QACnC;;;;;WAAuC;QACvC;;;;;WAAuC;QAEvC;;;;mBAA+B,CAAC;WAAC;QACjC;;;;;WAAkC;;IAunCnC,CAAC;IArnCA;;OAEG;;;;;eACH;YACC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC;;IAED;;OAEG;;;;;eACH;YACC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC;;;;;;eAED;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,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,iBAAM,SAAS,WAAE,CAAC;QACnB,CAAC;;;;;;eAED;YAAA,iBA4CC;YA3CA,iBAAM,gBAAgB,WAAE,CAAC;YAEzB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;gBACjC,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;gBACpD,IAAI,aAAa,EAAE;oBAClB,IAAI,IAAI,CAAC,OAAO,EAAE;wBACjB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;qBACvB;iBACD;gBACD,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC5C,IAAI,YAAY,EAAE;oBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC;wBAChC,YAAY,CAAC,SAAS,CAAC,mBAAmB,EAAE;4BAC3C,KAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;wBACrC,CAAC,CAAC;wBACF,YAAY,CAAC,SAAS,CAAC,mBAAmB,EAAE;4BAC3C,KAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;wBACrC,CAAC,CAAC;qBACF,CAAC,CAAA;iBACF;aACD;YAED,8VAA8V;YAC9V,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;gBACla,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;aAC5B;YAED,IAAI,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACrD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;aACrC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAElB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;gBAClW,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;aACzB;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEpC,CAAC;;;;;;eAED;QAEA,CAAC;;;;;;eAED,UAAsB,KAAa;YAClC,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC9C,IAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE5C,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,IAAI,YAAY,EAAE;gBACjB,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;aAC7C;iBACI;gBACJ,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,IAAI,CAAC;QACb,CAAC;;;;;;eAED;YACC,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACnC,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAEnC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAE/C,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC5C,IAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAE,CAAC;gBACtC,IAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAE,CAAC;gBACtD,IAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAE,GAAG,IAAI,CAAC;gBAE7D,IAAI,KAAK,GAAG,YAAY,GAAG,IAAI,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEV,IAAI,WAAW,EAAE;oBAChB,KAAK,GAAG,YAAY,CAAC;iBACrB;gBAED,OAAO,KAAK,GAAG,YAAY,EAAE;oBAC5B,IAAI,QAAQ,SAAqC,CAAC;oBAClD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE;wBAClC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;wBAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC/B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;qBAC/B;yBACI;wBACJ,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;qBAC7B;oBAED,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAEjC,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE;wBACxB,QAAQ,CAAC,IAAI,EAAE,CAAC;qBAChB;oBAED,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAEhC,IAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpC,IAAI,KAAK,EAAE;wBACV,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;qBAC3C;oBAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBAEhC,IAAI,CAAC,WAAW,EAAE;wBACjB,KAAK,IAAI,IAAI,CAAC;qBACd;yBACI;wBACJ,IAAI,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;wBAChF,IAAI,eAAe,GAAG,CAAC,EAAE;4BACxB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;yBACtD;6BACI;4BACJ,KAAK,IAAI,IAAI,CAAC;yBACd;qBACD;oBAED,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBACjF,IAAI,SAAS,GAAG,CAAC,EAAE;wBAClB,0DAA0D;wBAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;wBACrF,6CAA6C;wBAC7C,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;qBACrC;oBACD,CAAC,EAAE,CAAC;iBACJ;gBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC/C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACzB;gBAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,MAAM;oBAC/B,IAAI,MAAM,CAAC,MAAM,EAAE;wBAClB,MAAM,CAAC,cAAc,EAAE,CAAC;qBACxB;gBACF,CAAC,CAAC,CAAA;gBAEF,IAAI,CAAC,YAAY,EAAE,CAAC;aACpB;QACF,CAAC;;;;;;eAGD,UAAwB,QAA6C,EAAE,KAAc;YACpF,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACpC,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;YACnC,IAAI,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAExC,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAE3C,IAAI,WAAW,GAAG,QAAQ,CAAC;YAC3B,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAE,CAAC,CAAC;YAE7E,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAC7B,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC7C,eAAe,GAAG,WAAW,CAAC;aAC9B;YAED,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YAE1E,IAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACjD,IAAI,IAAI,EAAE;gBACT,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;oBACtC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACpB,IAAI,CAAC,YAAY,EAAE,CAAC;iBACpB;qBACI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;oBAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBACvB,IAAI,CAAC,YAAY,EAAE,CAAC;iBACpB;aACD;YAED,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YACxE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;YAEzE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC9B,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAErE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBAC7B,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACtC,IAAI,QAAQ,EAAE;oBACb,QAAQ,CAAC,QAAQ,CAAC,CAAA;iBAClB;aACD;QACF,CAAC;;;;;;eAGD;YACC,IAAI,YAAY,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,YAAY,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAEpE,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC;YACnD,IAAI,UAAU,GAAgB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAE9F,IAAI,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;YAE3D,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAC5D,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAE5D,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAE7E,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAC3B,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC;YAC9B,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC;YAE9B,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;gBAC7I,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;gBACjD,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;gBACjD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;aACjC;QACF,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAAuB,QAAgB;YACtC,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAE,CAAC;YACpC,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAE,CAAC;YAEpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;gBAC7B,OAAO,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;aACpC;iBACI;gBACJ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;aAChJ;QACF,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAuB,KAAa;YAEnC,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAE,CAAC;YACpC,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAE,CAAC;YAEpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;gBAC7B,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;aACnC;iBACI;gBACJ,IAAI,KAAK,IAAI,CAAC,EAAE;oBACf,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;wBAChC,KAAK,GAAG,WAAW,CAAC;qBACpB;iBACD;gBACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aACrI;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAA4B,KAAa;YAExC,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAE,CAAC;YACzC,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAE,CAAC;YAEzC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;gBAC7B,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;aACnC;iBACI;gBACJ,IAAI,KAAK,IAAI,CAAC,EAAE;oBACf,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;wBAChC,KAAK,GAAG,WAAW,CAAC;qBACpB;iBACD;gBACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aACrI;QACF,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAY,KAAa,EAAE,QAAgB,EAAE,SAAiB;YAC7D,KAAK,GAAG,SAAS,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,QAAQ,CAAC;YAEnD,IAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC/D,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAY,KAAa,EAAE,QAAgB,EAAE,SAAiB;YAC7D,KAAK,GAAG,SAAS,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,QAAQ,CAAC;YAEnD,IAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC/D,CAAC;;IAED;;OAEG;;;;;eACH,UAA8B,QAAqC,EAAE,KAAa,EAAE,aAAqB,EAAE,YAAoB;YAC9H,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;QAC9H,CAAC;;IAED;;OAEG;;;;;eACH,UAA4B,QAAqC,EAAE,KAAa,EAAE,aAAqB,EAAE,YAAoB;YAC5H,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;YAEvC,IAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACjD,IAAI,WAAW,EAAE;gBAChB,IAAM,MAAM,GAAG,QAAQ,CAAC,SAAqB,CAAC;gBAC9C,KAAK,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC/E;iBACI;gBACJ,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;aACnE;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;;IAED;;OAEG;;;;;eACH,UAA8B,QAAqC,EAAE,KAAa,EAAE,aAAqB,EAAE,YAAoB;YAC9H,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;QAC9H,CAAC;;IAED;;OAEG;;;;;eACH,UAA4B,QAAqC,EAAE,KAAa,EAAE,aAAqB,EAAE,YAAoB;YAC5H,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;YAEvC,IAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACjD,IAAI,WAAW,EAAE;gBAChB,IAAM,MAAM,GAAG,QAAQ,CAAC,SAAqB,CAAC;gBAC9C,KAAK,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC/E;iBACI;gBACJ,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;aACnE;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;;IAED;;;;OAIG;;;;;eACH;YACC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/C,CAAC;;IAED;;;;;OAKG;;;;;eACH;YACC,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzG,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;YACvG,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAEzC,IAAI,SAAS,GAAG,GAAG,EAAE;gBACpB,SAAS,GAAG,GAAG,CAAC;aAChB;YAED,IAAI,SAAS,GAAG,GAAG,EAAE;gBACpB,SAAS,GAAG,GAAG,CAAA;aACf;YAED,OAAO,SAAS,CAAC;QAClB,CAAC;;IAED;;OAEG;;;;;eACH,UAAoB,KAAa;YAChC,OAAO,KAAK,CAAC;QACd,CAAC;;;;;;eAED,UAAuB,IAAY;YAClC,0CAA0C;YAC1C,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE;gBACnB,IAAI,IAAI,CAAC,CAAC;gBACV,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aAC/B;YACD,OAAO,IAAI,CAAC;QACb,CAAC;;;;;;eAED,UAAkB,GAAW;YAC5B,OAAO,GAAG,CAAC;QACZ,CAAC;;;;;;eAED,UAAkB,GAAW;YAC5B,OAAO,GAAG,CAAC;QACZ,CAAC;;;;;;eAED;YACC,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;gBAChC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,MAAM,EAAE;oBACX,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;oBAErC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;wBAEhC,IAAI,UAAU,GAAG,CAAC,EAAE;4BACnB,UAAU,EAAE,CAAC;yBACb;wBACD,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;4BACvC,QAAQ,EAAE,CAAC;yBACX;wBAED,IAAI,OAAyB,CAAC;wBAC9B,IAAI,IAAsB,CAAC;wBAE3B,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;4BAChC,OAAK,GAAG,QAAQ,CAAC;4BACjB,IAAE,GAAG,KAAK,CAAC;yBACX;6BACI,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;4BACrC,OAAK,GAAG,QAAQ,CAAC;4BACjB,IAAE,GAAG,KAAK,CAAC;yBACX;wBAED,IAAI,cAAY,GAAG,OAAK,GAAG,SAAS,CAAC;wBAErC,IAAI,OAAK,EAAE;oDACD,CAAC;gCACT,IAAI,GAAG,GAAG,CAAC,CAAC;gCACZ,IAAI,KAAK,GAAG,CAAC,CAAC;gCAEd,MAAM,CAAC,IAAI,CAAC,OAAK,MAAM,EAAE,UAAC,MAAM;oCAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;wCACpC,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wCACnC,IAAI,QAAQ,EAAE;4CACb,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAmB,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAS,CAAC,CAAC;4CAEtE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gDACxB,GAAG,IAAI,KAAK,CAAC;gDACb,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;6CACzB;yCACD;qCACD;gCACF,CAAC,CAAC,CAAA;gCAEF,MAAM,CAAC,IAAI,CAAC,OAAK,MAAM,EAAE,UAAC,MAAM;oCAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;wCACpC,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wCACnC,IAAI,QAAQ,EAAE;4CACb,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAmB,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAS,CAAC,CAAC;4CAEtE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gDACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAK,GAAG,OAAO,CAAQ,EAAE,KAAK,CAAC,CAAC;gDAC9C,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAK,GAAG,KAAK,CAAQ,EAAE,GAAG,CAAC,CAAC;gDAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAK,GAAG,cAAc,CAAQ,EAAE,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;6CACnE;yCACD;qCACD;gCACF,CAAC,CAAC,CAAA;;;4BA/BH,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE;wCAAjC,CAAC;6BAgCT;yBACD;qBACD;iBACD;aACD;QACF,CAAC;;;;;;eAED;;YAAA,iBAiIC;YAhIA,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACxC,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAExC,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnC,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAEnC,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACzC,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAEzC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC;YAEnD,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAErD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAE/C,IAAI,cAAY,GAAG,GAAG,CAAC;gBACvB,IAAI,cAAY,GAAG,GAAG,CAAC;gBAEvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,MAAM;oBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;wBAChC,IAAI,SAAS,SAAoB,CAAC;wBAClC,IAAI,SAAS,SAAoB,CAAC;wBAClC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAI,EAAE;4BACjC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;4BAC1E,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;yBAC1E;6BACI,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAI,EAAE;4BACtC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;4BAC1E,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;yBAC1E;wBACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE;4BAC9C,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gCAC9B,cAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAY,EAAE,SAAS,CAAC,CAAC;6BACjD;4BAED,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gCAC9B,cAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAY,EAAE,SAAS,CAAC,CAAC;6BACjD;yBACD;qBACD;gBACF,CAAC,CAAC,CAAA;gBAEF,IAAI,cAAY,GAAG,cAAY,EAAE;oBAChC,KAAA,OAA+B,CAAC,cAAY,EAAE,cAAY,CAAC,IAAA,EAA1D,cAAY,QAAA,EAAE,cAAY,QAAA,CAAgC;iBAC3D;gBAED,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;oBAC/B,IAAI,YAAY,EAAE;wBACjB,cAAY,GAAG,UAAU,CAAC;qBAC1B;yBACI;wBACJ,cAAY,GAAG,GAAG,CAAC;qBACnB;iBACD;qBACI,IAAI,YAAY,EAAE;oBACtB,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;wBAClC,cAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;qBAC7B;iBACD;gBAED,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;oBAC/B,IAAI,YAAY,EAAE;wBACjB,cAAY,GAAG,UAAU,CAAC;qBAC1B;yBACI;wBACJ,cAAY,GAAG,GAAG,CAAC;qBACnB;iBACD;qBACI,IAAI,YAAY,EAAE;oBACtB,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;wBAClC,cAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;qBAC7B;iBACD;gBAED,IAAI,cAAY,KAAK,cAAY,EAAE;oBAClC,cAAY,IAAI,IAAI,CAAC,YAAY,CAAC;oBAClC,cAAY,IAAI,IAAI,CAAC,YAAY,CAAC;oBAElC,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAY,EAAE,cAAY,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;oBAC1F,cAAY,GAAG,WAAW,CAAC,GAAG,CAAC;oBAC/B,cAAY,GAAG,WAAW,CAAC,GAAG,CAAC;iBAC/B;gBAED,IAAI,UAAU,GAAgB,IAAI,CAAC,aAAa,CAAC,cAAY,EAAE,cAAY,EAAE,SAAS,CAAC,CAAC;gBAExF,cAAY,GAAG,UAAU,CAAC,GAAG,CAAC;gBAC9B,cAAY,GAAG,UAAU,CAAC,GAAG,CAAC;gBAE9B,cAAY,IAAI,CAAC,cAAY,GAAG,cAAY,CAAC,GAAG,QAAQ,CAAC;gBACzD,cAAY,IAAI,CAAC,cAAY,GAAG,cAAY,CAAC,GAAG,QAAQ,CAAC;gBAEzD,cAAY,GAAG,KAAK,CAAC,UAAU,CAAC,cAAY,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACxD,cAAY,GAAG,KAAK,CAAC,UAAU,CAAC,cAAY,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAExD,0CAA0C;gBAC1C,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAY,EAAE,cAAY,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBAE7E,IAAI,CAAC,YAAY,EAAE;oBAClB,cAAY,GAAG,UAAU,CAAC,GAAG,CAAC;oBAC9B,cAAY,GAAG,UAAU,CAAC,GAAG,CAAC;iBAC9B;gBAED,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC9C,IAAI,YAAY,EAAE;oBACjB,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,cAAY,EAAE,cAAY,EAAE,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,mBAAmB,EAAE,YAAY,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,mBAAmB,EAAE,YAAY,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,oBAAoB,EAAE,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAExU,cAAY,GAAG,UAAU,CAAC,GAAG,CAAC;oBAC9B,cAAY,GAAG,UAAU,CAAC,GAAG,CAAC;iBAC9B;gBAED,IAAI,YAAY,EAAE;oBACjB,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;wBAC/B,cAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAY,EAAE,UAAU,CAAC,CAAC;qBAClD;oBACD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;wBAC/B,cAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAY,EAAE,UAAU,CAAC,CAAC;qBAClD;iBACD;gBAED,IAAI,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAY,CAAC,CAAC;gBACpD,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAY,CAAC,CAAC;gBAElD,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,cAAY,CAAC,CAAC;gBACtD,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,cAAY,CAAC,CAAC;gBACtD,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBAE1D,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aACtB;QACF,CAAC;;;;;;eAGD;YAAA,iBAkMC;YAjMA,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAEjC,IAAI,GAAG,GAAG,QAAQ,CAAC;YACnB,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;YAEpB,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACvC,IAAI,OAAO,GAAG,QAAQ,CAAC;YAEvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,MAAM;gBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;oBAChC,IAAI,SAAS,SAAoB,CAAC;oBAClC,IAAI,SAAS,SAAoB,CAAC;oBAClC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAI,EAAE;wBACjC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;wBACtC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;qBACtC;yBACI,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAI,EAAE;wBACtC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;wBACtC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;qBACtC;oBAED,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;wBAC3D,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;wBAC/B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;wBAE/B,IAAI,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC;wBAEjC,IAAI,IAAI,IAAI,CAAC,EAAE;4BACd,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;yBACjC;wBAED,IAAI,IAAI,GAAG,OAAO,EAAE;4BACnB,OAAO,GAAG,IAAI,CAAC;yBACf;qBACD;iBACD;YACF,CAAC,CAAC,CAAA;YAEF,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;gBAC5B,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBAChC,IAAI,GAAG,IAAI,CAAC,EAAE;wBACb,GAAG,GAAG,WAAW,CAAC;qBAClB;iBACD;gBACD,IAAI,GAAG,IAAI,CAAC,EAAE;oBACb,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;iBAC9D;aACD;YAED,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;gBAC3B,GAAG,GAAG,GAAG,CAAC;gBACV,GAAG,GAAG,CAAC,GAAG,CAAC;aACX;YAED,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAC/B,GAAG,GAAG,UAAU,CAAC;aACjB;YACD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAC/B,GAAG,GAAG,UAAU,CAAC;aACjB;YAED,uEAAuE;YACvE,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE;gBAC1C,OAAO;aACP;YAED,UAAU;YACV,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChD,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAEhD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAC/B,GAAG,GAAG,UAAU,CAAC;aACjB;YAED,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAC/B,GAAG,GAAG,UAAU,CAAC;aACjB;YAED,gCAAgC;YAChC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAExB,sFAAsF;YACtF,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;gBACtC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,EAAE;oBACpB,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;iBACpC;qBACI;oBACJ,4DAA4D;oBAC5D,IAAI,QAAQ,GAAW,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBAE7D,iGAAiG;oBACjG,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAE/C,iCAAiC;oBACjC,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;oBAEnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;iBAC1B;gBAED,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC;gBACzB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC;aACzB;YAED,aAAa;YACb,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC;YAC9B,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC;YAE9B,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YAEpB,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAC/B,MAAM,GAAG,IAAI,CAAC;aACd;YAED,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC;YAEjD,IAAI,UAAU,GAAgB,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAE9E,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;YACrB,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;YAErB,yDAAyD;YACzD,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAE3D,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;YACrB,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;YAErB,2BAA2B;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;gBAC7B,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;oBAC/B,GAAG,GAAG,UAAU,CAAC;iBACjB;qBACI;oBACJ,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;iBACpB;gBAED,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;oBAC/B,GAAG,GAAG,UAAU,CAAC;iBACjB;qBACI;oBACJ,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;iBACpB;gBAED,IAAI,GAAG,GAAG,GAAG,IAAI,UAAU,EAAE;oBAC5B,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC;oBACzB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC;iBACzB;gBAED,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC;gBAC9B,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC;aAC9B;YAED,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC5C,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAE5C,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAC/B,GAAG,GAAG,UAAU,CAAC;aACjB;YAED,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAC/B,GAAG,GAAG,UAAU,CAAC;aACjB;YAED,IAAI,OAAO,IAAI,QAAQ,EAAE;gBACxB,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;aACrB;YAED,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC9C,IAAI,YAAY,EAAE;gBACjB,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3O,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;gBACrB,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;aACrB;YAED,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;YAE5F,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE;oBAC/E,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;oBACjC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;oBAEjC,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;oBACtD,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBAE/C,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,UAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;oBAC/D,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,UAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;iBAC/D;aACD;QACF,CAAC;;;;;;eAGD,UAAwB,GAAW,EAAE,GAAW,EAAE,SAAiB,EAAE,UAAoB;YACxF,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC5C,iBAAiB;YACjB,IAAI,SAAS,IAAI,CAAC,EAAE;gBACnB,SAAS,GAAG,CAAC,CAAC;aACd;YAED,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAElC,IAAI,UAAU,GAAW,GAAG,CAAC;YAC7B,IAAI,UAAU,GAAW,GAAG,CAAC;YAE7B,IAAI,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;YAE3B,2CAA2C;YAC3C,IAAI,UAAU,KAAK,CAAC,EAAE;gBACrB,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAC3B;YAED,4DAA4D;YAC5D,IAAI,QAAQ,GAAW,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAEpE,iGAAiG;YACjG,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAE/C,iCAAiC;YACjC,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;YAEnB,IAAI,KAAK,GAAW,KAAK,CAAC;YAC1B,IAAI,UAAU,EAAE;gBACf,KAAK,GAAG,CAAC,CAAC;aACV;YAED,IAAI,CAAC,WAAW,EAAE;gBACjB,iBAAiB;gBACjB,IAAI,UAAU,EAAE;oBACf,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;oBACtC,eAAe;oBACf,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;iBACrC;qBACI;oBACJ,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;oBAC7C,eAAe;oBACf,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;iBAC9C;gBAED,+CAA+C;gBAC/C,IAAI,GAAG,GAAG,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE;oBAC/B,GAAG,GAAG,CAAC,CAAC;iBACR;gBACD,+CAA+C;gBAC/C,IAAI,GAAG,GAAG,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE;oBAC/B,GAAG,GAAG,CAAC,CAAC;iBACR;aACD;YACD,cAAc;iBACT;gBACJ,IAAI,GAAG,IAAI,CAAC,EAAE;oBACb,kEAAkE;oBAClE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;iBAC/B;gBAED,IAAI,GAAG,KAAK,QAAQ,EAAE;oBACrB,GAAG,GAAG,CAAC,CAAC;iBACR;gBAED,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE;oBACtB,GAAG,GAAG,EAAE,CAAC;iBACT;gBAED,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAErE,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;oBAC7B,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACjC,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;wBACjD,GAAG,GAAG,UAAU,CAAC;qBACjB;oBACD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;wBACjD,GAAG,GAAG,UAAU,CAAC;qBACjB;iBACD;aACD;YAED,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACxD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC3C,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,8HAA8H;YAEnJ,gDAAgD;YAChD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;YAC/D,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAEjF,2CAA2C;YAC3C,IAAI,WAAW,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB;YAGvE,IAAI,WAAW,GAAG,CAAC,EAAE;gBACpB,WAAW,GAAG,EAAE,CAAC;aACjB;iBACI,IAAI,WAAW,IAAI,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE;gBAC7C,WAAW,GAAG,CAAC,CAAC;aAChB;YAED,oBAAoB;YACpB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,GAAG,SAAS,GAAG,WAAW,CAAC;YAE7E,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;gBACjC,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAChD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,KAAK,UAAU,EAAE;oBAC3D,IAAI,GAAG,UAAU,CAAC;iBAClB;aACD;YAED,IAAI,QAAQ,GAAW,CAAC,CAAC;YACzB,qCAAqC;YACrC,IAAI,SAAS,GAAG,CAAC,EAAE;gBAClB,0DAA0D;gBAC1D,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;gBACjF,aAAa;gBACb,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aACnC;YACD,IAAI,CAAC,WAAW,EAAE;gBACjB,oBAAoB;gBACpB,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;gBAEtC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAE7C,IAAI,QAAQ,SAAQ,CAAC;gBAErB,IAAI,CAAC,UAAU,EAAE;oBAChB,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;iBACjC;qBACI;oBACJ,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;iBAClC;gBAED,IAAI,QAAQ,KAAK,QAAQ,EAAE;oBAC1B,QAAQ,EAAE,CAAC;iBACX;gBAED,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAE7C,IAAI,GAAG,GAAG,UAAU,EAAE;oBACrB,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;iBACjB;gBAED,IAAI,GAAG,GAAG,UAAU,EAAE;oBACrB,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;iBACjB;aACD;YAED,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAE/B,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3C,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAsB,QAAgB;YACrC,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YAC/E,IAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5C,IAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;YAC3D,IAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC;YACzE,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;YAEpE,IAAI,YAAY,EAAE;gBACjB,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;aAC7C;iBACI;gBACJ,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACpD,8GAA8G;aAC9G;YAED,iCAAiC;YACjC,uGAAuG;QACxG,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAAqB,MAAgB,EAAE,QAAgB;YACtD,IAAI,SAAS,GAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAE,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC,CAAC;YAC7F,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAE3C,IAAI,KAAK,GAAuB,SAAS,CAAC;YAC1C,IAAI,OAAe,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,UAAC,QAAQ,EAAE,CAAC;gBACzC,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC;gBACvD,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,GAAG,OAAO,EAAE;oBAC1C,KAAK,GAAG,CAAC,CAAC;oBACV,OAAO,GAAG,IAAI,CAAC;iBACf;YACF,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,IAAI,EAAE;gBAClB,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aAC/B;QACF,CAAC;;IAED;;;;;;;;OAQG;;;;;eACH,UAAoB,KAAa,EAAE,GAAW,EAAE,QAAiB;YAChE,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC3C,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;gBACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC5E;QACF,CAAC;;IAID;;;;;;OAMG;;;;;eACH,UAAoB,GAAW,EAAE,GAAW,EAAE,IAAY,EAAE,OAAe,EAAE,OAAe,EAAE,QAAgB;YAC7G,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACpC,IAAI,IAAI,EAAE;gBACT,IAAI,KAAK,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,QAAQ,CAAC;gBAC7D,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBAElD,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC;gBAEjD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;oBAC1D,IAAI,MAAM,GAAG,KAAK,CAAC;oBACnB,IAAI,CAAC,GAAG,CAAC,CAAA;oBACT,IAAI,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;oBAC9B,IAAI,IAAI,GAAG,GAAG,CAAC;oBACf,IAAI,IAAI,GAAG,GAAG,CAAC;oBACf,IAAI,KAAK,GAAG,IAAI,CAAC;oBAEjB,OAAO,MAAM,IAAI,IAAI,EAAE;wBACtB,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;wBACnD,CAAC,EAAE,CAAC;wBACJ,IAAI,CAAC,GAAG,GAAG,EAAE;4BACZ,MAAM,GAAG,IAAI,CAAC;yBACd;wBACD,IAAI,CAAC,MAAM,EAAE;4BACZ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;gCAC/B,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;gCACtB,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;oCACzB,IAAI,GAAG,CAAC,CAAC;iCACT;6BACD;iCACI;gCACJ,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;gCACtB,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;oCAC1B,IAAI,GAAG,CAAC,CAAC;iCACT;6BACD;4BAED,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;4BACjE,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC;4BACtB,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC;4BACtB,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;yBACxB;6BACI;4BACJ,GAAG,GAAG,IAAI,CAAC;4BACX,GAAG,GAAG,IAAI,CAAC;4BACX,IAAI,GAAG,KAAK,CAAC;yBACb;qBACD;iBACD;aACD;YAED,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3C,CAAC;;IAED;;OAEG;;;;;eACH,UAAqB,GAAW,EAAE,GAAW,EAAE,IAAY,EAAE,KAAa;YACzE,IAAI,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC/B,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,YAAY,GAAG,CAAC,IAAI,KAAK,EAAE;oBAC3E,OAAO,IAAI,CAAC;iBACZ;aACD;YACD,OAAO,KAAK,CAAC;QACd,CAAC;;IAroCD;;;;eAAkC,WAAW;OAAC;IAC9C;;;;eAA0C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;OAAC;IAqoCzF,gBAAC;CAAA,AAvoCD,CAAuD,IAAI,GAuoC1D;SAvoCY,SAAS","sourcesContent":["import { DataItem } from \"../../../core/render/Component\";\nimport type { AxisRenderer } from \"./AxisRenderer\";\nimport { Axis, IAxisSettings, IAxisPrivate, IAxisDataItem, IAxisEvents } from \"./Axis\";\nimport type { IXYSeriesDataItem, XYSeries } from \"../series/XYSeries\";\nimport * as $type from \"../../../core/util/Type\";\nimport * as $array from \"../../../core/util/Array\";\nimport * as $math from \"../../../core/util/Math\";\nimport * as $utils from \"../../../core/util/Utils\";\nimport { MultiDisposer } from \"../../../core/util/Disposer\";\n//import * as $order from \"../../../core/util/Order\";\n\nexport interface IValueAxisSettings<R extends AxisRenderer> extends IAxisSettings<R> {\n\n\t/**\n\t * Override minimum value for the axis scale.\n\t *\n\t * NOTE: the axis might modify the minimum value to fit into its scale better,\n\t * unless `strictMinMax` is set to `true`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Custom_scope} for more info\n\t */\n\tmin?: number;\n\n\t/**\n\t * Override maximum value for the axis scale.\n\t *\n\t * NOTE: the axis might modify the maximum value to fit into its scale better,\n\t * unless `strictMinMax` is set to `true`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Custom_scope} for more info\n\t */\n\tmax?: number;\n\n\t/**\n\t * Force axis scale to be precisely at values as set in `min` and/or `max`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Custom_scope} for more info\n\t */\n\tstrictMinMax?: boolean;\n\n\t/**\n\t * If set to `true` axis will use logarithmic scale.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Logarithmic_scale} for more info\n\t */\n\tlogarithmic?: boolean;\n\n\t/**\n\t * Treat zero values as some other value.\n\t *\n\t * Useful in situations where zero would result in error, i.e. logarithmic\n\t * scale.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Logarithmic_scale} for more info\n\t */\n\ttreatZeroAs?: number;\n\n\t/**\n\t * Relative extension to the automatically-calculated minimum value of the\n\t * axis scale.\n\t *\n\t * E..g. `0.1` will extend the scale by 10%, so if max value is `1000` and\n\t * minimum value is `0`, the new minimum value will be `-100`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Relative_scope_extension} for more info\n\t */\n\textraMin?: number;\n\n\t/**\n\t * Relative extension to the automatically-calculated maximum value of the\n\t * axis scale.\n\t *\n\t * E..g. `0.1` will extend the scale by 10%, so if max value is `1000`, the\n\t * axis will now show maximum value of `1100`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Relative_scope_extension} for more info\n\t */\n\textraMax?: number;\n\n\t/**\n\t * Base value, which indicates the threshold between \"positive\" and \"negative\"\n\t * values.\n\t *\n\t * @default 0\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Base_value} for more info\n\t */\n\tbaseValue?: number;\n\n\t/**\n\t * Maximum number of decimals to allow in axis labels.\n\t *\n\t * This setting not only affects formatting of the labels, but also where and\n\t * how many grid/labels are placed on the axis.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Label_format} for more info\n\t */\n\tmaxPrecision?: number;\n\n\t/**\n\t * A function that can be used to specify how to configure axis fills.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/#Axis_fills} for more info\n\t */\n\tfillRule?: (dataItem: DataItem<IValueAxisDataItem>) => void;\n\n\t/**\n\t * Number format to use for axis labels.\n\t *\n\t * If not set, will use format set in global number formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Label_format} for more info\n\t */\n\tnumberFormat?: string;\n\n\t/**\n\t * A numeric format used for numbers displayed in axis tooltip.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Tooltip_number_format} for more info\n\t */\n\ttooltipNumberFormat?: string | Intl.NumberFormatOptions;\n\n\t/**\n\t * If set, will use greater precision for the axis fooltip than the one for\n\t * axis' actual labels.\n\t *\n\t * E.g. if axis displays labels with one decimal (`1.0`, `1.1`, `1.2`) setting\n\t * this setting to `1` would allow two decimals in axis tooltip, e.g. `1.15`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Tooltip_number_format} for more info\n\t */\n\textraTooltipPrecision?: number;\n\n\t/**\n\t * If your series relies on dynamically calculated values, like value\n\t * changes, percents, or total sums, set this to `true`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Calculated_values} for more info\n\t */\n\tcalculateTotals?: boolean;\n\n\t/**\n\t * This setting can be set to an instance of another [[ValueAxis]].\n\t *\n\t * If set the grid of this axis will be synced with grid of the target axis.\n\t *\n\t * NOTE: this is not 100% guaranteed to work. In some rare cases perfect\n\t * sync might not be possible.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Syncing_grid} for more info\n\t */\n\tsyncWithAxis?: ValueAxis<AxisRenderer>;\n\n}\n\nexport interface IValueAxisDataItem extends IAxisDataItem {\n\n\t/**\n\t * Value of the data item.\n\t */\n\tvalue?: number;\n\n\t/**\n\t * End value for axis items that span multiple values, like axis ranges.\n\t */\n\tendValue?: number;\n\n}\n\nexport interface IMinMaxStep {\n\tmin: number;\n\tmax: number;\n\tstep: number;\n}\n\nexport interface IValueAxisPrivate extends IAxisPrivate {\n\tmin?: number;\n\tmax?: number;\n\tminFinal?: number;\n\tmaxFinal?: number;\n\tselectionMin?: number;\n\tselectionMax?: number;\n\tselectionMinFinal?: number;\n\tselectionMaxFinal?: number;\n\tselectionStepFinal?: number;\n\tstep?: number;\n\tstepDecimalPlaces?: number;\n}\n\nexport interface IValueAxisEvents extends IAxisEvents {\n\n}\n\n/**\n * Creates a value axis.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/} for more info\n * @important\n */\nexport class ValueAxis<R extends AxisRenderer> extends Axis<R> {\n\tpublic static className: string = \"ValueAxis\";\n\tpublic static classNames: Array<string> = Axis.classNames.concat([ValueAxis.className]);\n\n\tdeclare public _settings: IValueAxisSettings<R>;\n\tdeclare public _privateSettings: IValueAxisPrivate;\n\tdeclare public _dataItemSettings: IValueAxisDataItem;\n\tdeclare public _events: IValueAxisEvents;\n\n\tprotected _dirtyExtremes: boolean = false;\n\tprotected _dirtySelectionExtremes: boolean = false;\n\tprotected _deltaMinMax: number = 1;\n\tprotected _minReal: number | undefined;\n\tprotected _maxReal: number | undefined;\n\n\tprotected _baseValue: number = 0;\n\tprotected _syncDp?: MultiDisposer;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtyExtremes() {\n\t\tthis._dirtyExtremes = true;\n\t\tthis.markDirty();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtySelectionExtremes() {\n\t\tthis._dirtySelectionExtremes = true;\n\t\tthis.markDirty();\n\t}\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"axis\"]);\n\t\tthis.setPrivateRaw(\"name\", \"value\");\n\t\tthis.addTag(\"value\");\n\t\tsuper._afterNew();\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tif (this.isDirty(\"syncWithAxis\")) {\n\t\t\tlet previousValue = this._prevSettings.syncWithAxis;\n\t\t\tif (previousValue) {\n\t\t\t\tif (this._syncDp) {\n\t\t\t\t\tthis._syncDp.dispose();\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet syncWithAxis = this.get(\"syncWithAxis\");\n\t\t\tif (syncWithAxis) {\n\t\t\t\tthis._syncDp = new MultiDisposer([\n\t\t\t\t\tsyncWithAxis.onPrivate(\"selectionMinFinal\", () => {\n\t\t\t\t\t\tthis._dirtySelectionExtremes = true;\n\t\t\t\t\t}),\n\t\t\t\t\tsyncWithAxis.onPrivate(\"selectionMaxFinal\", () => {\n\t\t\t\t\t\tthis._dirtySelectionExtremes = true;\n\t\t\t\t\t})\n\t\t\t\t])\n\t\t\t}\n\t\t}\n\n\t\t//if (this._dirtyExtremes || this.isPrivateDirty(\"width\") || this.isPrivateDirty(\"height\") || this.isDirty(\"min\") || this.isDirty(\"max\") || this.isDirty(\"extraMin\") || this.isDirty(\"extraMax\") || this.isDirty(\"logarithmic\") || this.isDirty(\"treatZeroAs\") || this.isDirty(\"baseValue\") || this.isDirty(\"strictMinMax\") || this.isDirty(\"maxPrecision\")) {\n\t\tif (this._sizeDirty || this._dirtyExtremes || this._valuesDirty || this.isPrivateDirty(\"width\") || this.isPrivateDirty(\"height\") || this.isDirty(\"min\") || this.isDirty(\"max\") || this.isDirty(\"extraMin\") || this.isDirty(\"extraMax\") || this.isDirty(\"logarithmic\") || this.isDirty(\"treatZeroAs\") || this.isDirty(\"baseValue\") || this.isDirty(\"strictMinMax\") || this.isDirty(\"maxPrecision\") || this.isDirty(\"numberFormat\")) {\n\t\t\tthis._getMinMax();\n\t\t\tthis._dirtyExtremes = false;\n\t\t}\n\n\t\tif (this._dirtySelectionExtremes && !this._isPanning) {\n\t\t\tthis._getSelectionMinMax();\n\t\t\tthis._dirtySelectionExtremes = false;\n\t\t}\n\n\t\tthis._groupData();\n\n\t\tif (this._sizeDirty || this._valuesDirty || this.isDirty(\"start\") || this.isDirty(\"end\") || this.isPrivateDirty(\"min\") || this.isPrivateDirty(\"selectionMax\") || this.isPrivateDirty(\"selectionMin\") || this.isPrivateDirty(\"max\") || this.isPrivateDirty(\"step\") || this.isPrivateDirty(\"width\") || this.isPrivateDirty(\"height\") || this.isDirty(\"logarithmic\")) {\n\t\t\tthis._handleRangeChange();\n\t\t\tthis._prepareAxisItems();\n\t\t\tthis._updateAxisRanges();\n\t\t}\n\n\t\tthis._baseValue = this.baseValue();\n\n\t}\n\n\tprotected _groupData() {\n\n\t}\n\n\tprotected _formatText(value: number) {\n\t\tconst numberFormat = this.get(\"numberFormat\");\n\t\tconst formatter = this.getNumberFormatter();\n\n\t\tlet text = \"\";\n\n\t\tif (numberFormat) {\n\t\t\ttext = formatter.format(value, numberFormat);\n\t\t}\n\t\telse {\n\t\t\ttext = formatter.format(value, undefined, this.getPrivate(\"stepDecimalPlaces\"));\n\t\t}\n\t\treturn text;\n\t}\n\n\tprotected _prepareAxisItems() {\n\t\tconst min = this.getPrivate(\"min\");\n\t\tconst max = this.getPrivate(\"max\");\n\n\t\tif ($type.isNumber(min) && $type.isNumber(max)) {\n\n\t\t\tconst logarithmic = this.get(\"logarithmic\");\n\t\t\tconst step = this.getPrivate(\"step\")!;\n\t\t\tconst selectionMin = this.getPrivate(\"selectionMin\")!;\n\t\t\tconst selectionMax = this.getPrivate(\"selectionMax\")! + step;\n\n\t\t\tlet value = selectionMin - step;\n\t\t\tlet i = 0;\n\n\t\t\tif (logarithmic) {\n\t\t\t\tvalue = selectionMin;\n\t\t\t}\n\n\t\t\twhile (value < selectionMax) {\n\t\t\t\tlet dataItem: DataItem<this[\"_dataItemSettings\"]>;\n\t\t\t\tif (this.dataItems.length < i + 1) {\n\t\t\t\t\tdataItem = new DataItem(this, undefined, {});\n\t\t\t\t\tthis._dataItems.push(dataItem);\n\t\t\t\t\tthis.processDataItem(dataItem);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdataItem = this.dataItems[i];\n\t\t\t\t}\n\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\tdataItem.setRaw(\"value\", 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._formatText(value));\n\t\t\t\t}\n\n\t\t\t\tthis._prepareDataItem(dataItem);\n\n\t\t\t\tif (!logarithmic) {\n\t\t\t\t\tvalue += step;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet differencePower = Math.log(max) * Math.LOG10E - Math.log(min) * Math.LOG10E;\n\t\t\t\t\tif (differencePower > 1) {\n\t\t\t\t\t\tvalue = Math.pow(10, Math.log(min) * Math.LOG10E + i);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue += step;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet stepPower = Math.pow(10, Math.floor(Math.log(Math.abs(step)) * Math.LOG10E));\n\t\t\t\tif (stepPower < 1) {\n\t\t\t\t\t// exponent is less then 1 too. Count decimals of exponent\n\t\t\t\t\tlet decCount = Math.round(Math.abs(Math.log(Math.abs(stepPower)) * Math.LOG10E)) + 2;\n\t\t\t\t\t// round value to avoid floating point issues\n\t\t\t\t\tvalue = $math.round(value, decCount);\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t}\n\n\t\t\tfor (let j = i; j < this.dataItems.length; j++) {\n\t\t\t\tthis.dataItems[j].hide();\n\t\t\t}\n\n\t\t\t$array.each(this.series, (series) => {\n\t\t\t\tif (series.inited) {\n\t\t\t\t\tseries._markDirtyAxes();\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tthis._updateGhost();\n\t\t}\n\t}\n\n\n\tpublic _prepareDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, count?: number) {\n\t\tlet renderer = this.get(\"renderer\");\n\t\tlet value = dataItem.get(\"value\")!;\n\t\tlet endValue = dataItem.get(\"endValue\");\n\n\t\tlet position = this.valueToPosition(value);\n\n\t\tlet endPosition = position;\n\t\tlet fillEndPosition = this.valueToPosition(value + this.getPrivate(\"step\")!);\n\n\t\tif ($type.isNumber(endValue)) {\n\t\t\tendPosition = this.valueToPosition(endValue);\n\t\t\tfillEndPosition = endPosition;\n\t\t}\n\n\t\trenderer.updateLabel(dataItem.get(\"label\"), position, endPosition, count);\n\n\t\tconst grid = dataItem.get(\"grid\");\n\t\trenderer.updateGrid(grid, position, endPosition);\n\t\tif (grid) {\n\t\t\tif (value == this.get(\"baseValue\", 0)) {\n\t\t\t\tgrid.addTag(\"base\");\n\t\t\t\tgrid._applyThemes();\n\t\t\t}\n\t\t\telse if (grid.hasTag(\"base\")) {\n\t\t\t\tgrid.removeTag(\"base\");\n\t\t\t\tgrid._applyThemes();\n\t\t\t}\n\t\t}\n\n\t\trenderer.updateTick(dataItem.get(\"tick\"), position, endPosition, count);\n\t\trenderer.updateFill(dataItem.get(\"axisFill\"), position, fillEndPosition);\n\n\t\tthis._processBullet(dataItem);\n\t\trenderer.updateBullet(dataItem.get(\"bullet\"), position, endPosition);\n\n\t\tif (!dataItem.get(\"isRange\")) {\n\t\t\tconst fillRule = this.get(\"fillRule\");\n\t\t\tif (fillRule) {\n\t\t\t\tfillRule(dataItem)\n\t\t\t}\n\t\t}\n\t}\n\n\n\tprotected _handleRangeChange() {\n\t\tlet selectionMin: number = this.positionToValue(this.get(\"start\", 0));\n\t\tlet selectionMax: number = this.positionToValue(this.get(\"end\", 1));\n\n\t\tconst gridCount = this.get(\"renderer\").gridCount();\n\t\tlet minMaxStep: IMinMaxStep = this._adjustMinMax(selectionMin, selectionMax, gridCount, true);\n\n\t\tlet stepDecimalPlaces = $utils.decimalPlaces(minMaxStep.step);\n\t\tthis.setPrivateRaw(\"stepDecimalPlaces\", stepDecimalPlaces);\n\n\t\tselectionMin = $math.round(selectionMin, stepDecimalPlaces);\n\t\tselectionMax = $math.round(selectionMax, stepDecimalPlaces);\n\n\t\tminMaxStep = this._adjustMinMax(selectionMin, selectionMax, gridCount, true);\n\n\t\tlet step = minMaxStep.step;\n\t\tselectionMin = minMaxStep.min;\n\t\tselectionMax = minMaxStep.max;\n\n\t\tif (this.getPrivate(\"selectionMin\") !== selectionMin || this.getPrivate(\"selectionMax\") !== selectionMax || this.getPrivate(\"step\") !== step) {\n\t\t\tthis.setPrivateRaw(\"selectionMin\", selectionMin);\n\t\t\tthis.setPrivateRaw(\"selectionMax\", selectionMax);\n\t\t\tthis.setPrivateRaw(\"step\", step);\n\t\t}\n\t}\n\n\t/**\n\t * Converts a relative position to a corresponding numeric value from axis\n\t * scale.\n\t *\n\t * @param position Relative position\n\t * @return Value\n\t */\n\tpublic positionToValue(position: number): number {\n\t\tconst min = this.getPrivate(\"min\")!;\n\t\tconst max = this.getPrivate(\"max\")!;\n\n\t\tif (!this.get(\"logarithmic\")) {\n\t\t\treturn position * (max - min) + min;\n\t\t}\n\t\telse {\n\t\t\treturn Math.pow(Math.E, (position * ((Math.log(max) * Math.LOG10E - Math.log(min) * Math.LOG10E)) + Math.log(min) * Math.LOG10E) / Math.LOG10E);\n\t\t}\n\t}\n\n\t/**\n\t * Convers value to a relative position on axis.\n\t *\n\t * @param value Value\n\t * @return Relative position\n\t */\n\tpublic valueToPosition(value: number): number {\n\n\t\tconst min = this.getPrivate(\"min\")!;\n\t\tconst max = this.getPrivate(\"max\")!;\n\n\t\tif (!this.get(\"logarithmic\")) {\n\t\t\treturn (value - min) / (max - min);\n\t\t}\n\t\telse {\n\t\t\tif (value <= 0) {\n\t\t\t\tlet treatZeroAs = this.get(\"treatZeroAs\");\n\t\t\t\tif ($type.isNumber(treatZeroAs)) {\n\t\t\t\t\tvalue = treatZeroAs;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn (Math.log(value) * Math.LOG10E - Math.log(min) * Math.LOG10E) / ((Math.log(max) * Math.LOG10E - Math.log(min) * Math.LOG10E));\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic valueToFinalPosition(value: number): number {\n\n\t\tconst min = this.getPrivate(\"minFinal\")!;\n\t\tconst max = this.getPrivate(\"maxFinal\")!;\n\n\t\tif (!this.get(\"logarithmic\")) {\n\t\t\treturn (value - min) / (max - min);\n\t\t}\n\t\telse {\n\t\t\tif (value <= 0) {\n\t\t\t\tlet treatZeroAs = this.get(\"treatZeroAs\");\n\t\t\t\tif ($type.isNumber(treatZeroAs)) {\n\t\t\t\t\tvalue = treatZeroAs;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn (Math.log(value) * Math.LOG10E - Math.log(min) * Math.LOG10E) / ((Math.log(max) * Math.LOG10E - Math.log(min) * Math.LOG10E));\n\t\t}\n\t}\n\n\t/**\n\t * Returns X coordinate in pixels corresponding to specific value.\n\t *\n\t * @param value Numeric value\n\t * @param location Location\n\t * @param baseValue Base value\n\t * @return X coordinate\n\t */\n\tpublic getX(value: number, location: number, baseValue: number) {\n\t\tvalue = baseValue + (value - baseValue) * location;\n\n\t\tconst position = this.valueToPosition(value);\n\t\treturn this._settings.renderer.positionToCoordinate(position);\n\t}\n\n\t/**\n\t * Returns X coordinate in pixels corresponding to specific value.\n\t *\n\t * @param value Numeric value\n\t * @param location Location\n\t * @param baseValue Base value\n\t * @return X coordinate\n\t */\n\tpublic getY(value: number, location: number, baseValue: number) {\n\t\tvalue = baseValue + (value - baseValue) * location;\n\n\t\tconst position = this.valueToPosition(value)\n\t\treturn this._settings.renderer.positionToCoordinate(position);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemCoordinateX(dataItem: DataItem<IXYSeriesDataItem>, field: string, _cellLocation: number, axisLocation: number): number {\n\t\treturn this._settings.renderer.positionToCoordinate(this.getDataItemPositionX(dataItem, field, _cellLocation, axisLocation));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemPositionX(dataItem: DataItem<IXYSeriesDataItem>, field: string, _cellLocation: number, axisLocation: number) {\n\t\tlet value = dataItem.get(field as any);\n\n\t\tconst stackToItem = dataItem.get(\"stackToItemX\");\n\t\tif (stackToItem) {\n\t\t\tconst series = dataItem.component as XYSeries;\n\t\t\tvalue = value * axisLocation + series.getStackedXValueWorking(dataItem, field);\n\t\t}\n\t\telse {\n\t\t\tvalue = this._baseValue + (value - this._baseValue) * axisLocation;\n\t\t}\n\n\t\treturn this.valueToPosition(value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemCoordinateY(dataItem: DataItem<IXYSeriesDataItem>, field: string, _cellLocation: number, axisLocation: number): number {\n\t\treturn this._settings.renderer.positionToCoordinate(this.getDataItemPositionY(dataItem, field, _cellLocation, axisLocation));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemPositionY(dataItem: DataItem<IXYSeriesDataItem>, field: string, _cellLocation: number, axisLocation: number): number {\n\t\tlet value = dataItem.get(field as any);\n\n\t\tconst stackToItem = dataItem.get(\"stackToItemY\");\n\t\tif (stackToItem) {\n\t\t\tconst series = dataItem.component as XYSeries;\n\t\t\tvalue = value * axisLocation + series.getStackedYValueWorking(dataItem, field);\n\t\t}\n\t\telse {\n\t\t\tvalue = this._baseValue + (value - this._baseValue) * axisLocation;\n\t\t}\n\n\t\treturn this.valueToPosition(value);\n\t}\n\n\t/**\n\t * Returns relative position of axis' `baseValue`.\n\t *\n\t * @return Base value position\n\t */\n\tpublic basePosition(): number {\n\t\treturn this.valueToPosition(this.baseValue());\n\t}\n\n\t/**\n\t * Base value of the [[ValueAxis]], which determines positive and negative\n\t * values.\n\t *\n\t * @return Base value\n\t */\n\tpublic baseValue(): number {\n\t\tconst min = Math.min(this.getPrivate(\"minFinal\", -Infinity), this.getPrivate(\"selectionMin\", -Infinity));\n\t\tconst max = Math.max(this.getPrivate(\"maxFinal\", Infinity), this.getPrivate(\"selectionMax\", Infinity));\n\t\tlet baseValue = this.get(\"baseValue\", 0);\n\n\t\tif (baseValue < min) {\n\t\t\tbaseValue = min;\n\t\t}\n\n\t\tif (baseValue > max) {\n\t\t\tbaseValue = max\n\t\t}\n\n\t\treturn baseValue;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic cellEndValue(value: number): number {\n\t\treturn value;\n\t}\n\n\tprotected fixSmallStep(step: number): number {\n\t\t// happens because of floating point error\n\t\tif (1 + step === 1) {\n\t\t\tstep *= 2;\n\t\t\treturn this.fixSmallStep(step);\n\t\t}\n\t\treturn step;\n\t}\n\n\tprotected _fixMin(min: number) {\n\t\treturn min;\n\t}\n\n\tprotected _fixMax(max: number) {\n\t\treturn max;\n\t}\n\n\tpublic _calculateTotals() {\n\t\tif (this.get(\"calculateTotals\")) {\n\t\t\tlet series = this.series[0];\n\t\t\tif (series) {\n\t\t\t\tlet startIndex = series.startIndex();\n\n\t\t\t\tif (series.dataItems.length > 0) {\n\n\t\t\t\t\tif (startIndex > 0) {\n\t\t\t\t\t\tstartIndex--;\n\t\t\t\t\t}\n\t\t\t\t\tlet endIndex = series.endIndex();\n\t\t\t\t\tif (endIndex < series.dataItems.length) {\n\t\t\t\t\t\tendIndex++;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet field: string | undefined;\n\t\t\t\t\tlet vc: string | undefined;\n\n\t\t\t\t\tif (series.get(\"yAxis\") == this) {\n\t\t\t\t\t\tfield = \"valueY\";\n\t\t\t\t\t\tvc = \"vcy\";\n\t\t\t\t\t}\n\t\t\t\t\telse if (series.get(\"xAxis\") == this) {\n\t\t\t\t\t\tfield = \"valueX\";\n\t\t\t\t\t\tvc = \"vcx\";\n\t\t\t\t\t}\n\n\t\t\t\t\tlet fieldWorking = field + \"Working\";\n\n\t\t\t\t\tif (field) {\n\t\t\t\t\t\tfor (let i = startIndex; i < endIndex; i++) {\n\t\t\t\t\t\t\tlet sum = 0;\n\t\t\t\t\t\t\tlet total = 0;\n\n\t\t\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\t\t\tif (!series.get(\"excludeFromTotal\")) {\n\t\t\t\t\t\t\t\t\tlet dataItem = series.dataItems[i];\n\t\t\t\t\t\t\t\t\tif (dataItem) {\n\t\t\t\t\t\t\t\t\t\tlet value = dataItem.get(fieldWorking as any) * series.get(vc as any);\n\n\t\t\t\t\t\t\t\t\t\tif (!$type.isNaN(value)) {\n\t\t\t\t\t\t\t\t\t\t\tsum += value;\n\t\t\t\t\t\t\t\t\t\t\ttotal += Math.abs(value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\t\t\tif (!series.get(\"excludeFromTotal\")) {\n\t\t\t\t\t\t\t\t\tlet dataItem = series.dataItems[i];\n\t\t\t\t\t\t\t\t\tif (dataItem) {\n\t\t\t\t\t\t\t\t\t\tlet value = dataItem.get(fieldWorking as any) * series.get(vc as any);\n\n\t\t\t\t\t\t\t\t\t\tif (!$type.isNaN(value)) {\n\t\t\t\t\t\t\t\t\t\t\tdataItem.set((field + \"Total\") as any, total);\n\t\t\t\t\t\t\t\t\t\t\tdataItem.set((field + \"Sum\") as any, sum);\n\t\t\t\t\t\t\t\t\t\t\tdataItem.set((field + \"TotalPercent\") as any, value / total * 100);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _getSelectionMinMax() {\n\t\tconst min = this.getPrivate(\"minFinal\");\n\t\tconst max = this.getPrivate(\"maxFinal\");\n\n\t\tconst minDefined = this.get(\"min\");\n\t\tconst maxDefined = this.get(\"max\");\n\n\t\tconst extraMin = this.get(\"extraMin\", 0);\n\t\tconst extraMax = this.get(\"extraMax\", 0);\n\n\t\tconst gridCount = this.get(\"renderer\").gridCount();\n\n\t\tconst strictMinMax = this.get(\"strictMinMax\", false);\n\n\t\tif ($type.isNumber(min) && $type.isNumber(max)) {\n\n\t\t\tlet selectionMin = max;\n\t\t\tlet selectionMax = min;\n\n\t\t\t$array.each(this.series, (series) => {\n\t\t\t\tif (!series.get(\"ignoreMinMax\")) {\n\t\t\t\t\tlet seriesMin: number | undefined;\n\t\t\t\t\tlet seriesMax: number | undefined;\n\t\t\t\t\tif (series.get(\"xAxis\") === this) {\n\t\t\t\t\t\tseriesMin = series.getPrivate(\"selectionMinX\", series.getPrivate(\"minX\"));\n\t\t\t\t\t\tseriesMax = series.getPrivate(\"selectionMaxX\", series.getPrivate(\"maxX\"));\n\t\t\t\t\t}\n\t\t\t\t\telse if (series.get(\"yAxis\") === this) {\n\t\t\t\t\t\tseriesMin = series.getPrivate(\"selectionMinY\", series.getPrivate(\"minY\"));\n\t\t\t\t\t\tseriesMax = series.getPrivate(\"selectionMaxY\", series.getPrivate(\"maxY\"));\n\t\t\t\t\t}\n\t\t\t\t\tif (!series.isHidden() && !series.isShowing()) {\n\t\t\t\t\t\tif ($type.isNumber(seriesMin)) {\n\t\t\t\t\t\t\tselectionMin = Math.min(selectionMin, seriesMin);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ($type.isNumber(seriesMax)) {\n\t\t\t\t\t\t\tselectionMax = Math.max(selectionMax, seriesMax);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif (selectionMin > selectionMax) {\n\t\t\t\t[selectionMin, selectionMax] = [selectionMax, selectionMin]\n\t\t\t}\n\n\t\t\tif ($type.isNumber(minDefined)) {\n\t\t\t\tif (strictMinMax) {\n\t\t\t\t\tselectionMin = minDefined;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tselectionMin = min;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (strictMinMax) {\n\t\t\t\tif ($type.isNumber(this._minReal)) {\n\t\t\t\t\tselectionMin = this._minReal;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($type.isNumber(maxDefined)) {\n\t\t\t\tif (strictMinMax) {\n\t\t\t\t\tselectionMax = maxDefined;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tselectionMax = max;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (strictMinMax) {\n\t\t\t\tif ($type.isNumber(this._maxReal)) {\n\t\t\t\t\tselectionMax = this._maxReal;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (selectionMin === selectionMax) {\n\t\t\t\tselectionMin -= this._deltaMinMax;\n\t\t\t\tselectionMax += this._deltaMinMax;\n\n\t\t\t\tlet minMaxStep2 = this._adjustMinMax(selectionMin, selectionMax, gridCount, strictMinMax);\n\t\t\t\tselectionMin = minMaxStep2.min;\n\t\t\t\tselectionMax = minMaxStep2.max;\n\t\t\t}\n\n\t\t\tlet minMaxStep: IMinMaxStep = this._adjustMinMax(selectionMin, selectionMax, gridCount);\n\n\t\t\tselectionMin = minMaxStep.min;\n\t\t\tselectionMax = minMaxStep.max;\n\n\t\t\tselectionMin -= (selectionMax - selectionMin) * extraMin;\n\t\t\tselectionMax += (selectionMax - selectionMin) * extraMax;\n\n\t\t\tselectionMin = $math.fitToRange(selectionMin, min, max);\n\t\t\tselectionMax = $math.fitToRange(selectionMax, min, max);\n\n\t\t\t// do it for the second time !important\t\t\t\n\t\t\tminMaxStep = this._adjustMinMax(selectionMin, selectionMax, gridCount, true);\n\n\t\t\tif (!strictMinMax) {\n\t\t\t\tselectionMin = minMaxStep.min;\n\t\t\t\tselectionMax = minMaxStep.max;\n\t\t\t}\n\n\t\t\tconst syncWithAxis = this.get(\"syncWithAxis\");\n\t\t\tif (syncWithAxis) {\n\t\t\t\tminMaxStep = this._syncAxes(selectionMin, selectionMax, minMaxStep.step, syncWithAxis.getPrivate(\"selectionMinFinal\", syncWithAxis.getPrivate(\"minFinal\", 0)), syncWithAxis.getPrivate(\"selectionMaxFinal\", syncWithAxis.getPrivate(\"maxFinal\", 1)), syncWithAxis.getPrivate(\"selectionStepFinal\", syncWithAxis.getPrivate(\"step\", 1)));\n\n\t\t\t\tselectionMin = minMaxStep.min;\n\t\t\t\tselectionMax = minMaxStep.max;\n\t\t\t}\n\n\t\t\tif (strictMinMax) {\n\t\t\t\tif ($type.isNumber(minDefined)) {\n\t\t\t\t\tselectionMin = Math.max(selectionMin, minDefined);\n\t\t\t\t}\n\t\t\t\tif ($type.isNumber(maxDefined)) {\n\t\t\t\t\tselectionMax = Math.min(selectionMax, maxDefined);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet start = this.valueToFinalPosition(selectionMin);\n\t\t\tlet end = this.valueToFinalPosition(selectionMax);\n\n\t\t\tthis.setPrivateRaw(\"selectionMinFinal\", selectionMin);\n\t\t\tthis.setPrivateRaw(\"selectionMaxFinal\", selectionMax);\n\t\t\tthis.setPrivateRaw(\"selectionStepFinal\", minMaxStep.step);\n\n\t\t\tthis.zoom(start, end);\n\t\t}\n\t}\n\n\n\tprotected _getMinMax() {\n\t\tlet minDefined = this.get(\"min\");\n\t\tlet maxDefined = this.get(\"max\");\n\n\t\tlet min = Infinity;\n\t\tlet max = -Infinity;\n\n\t\tlet extraMin = this.get(\"extraMin\", 0);\n\t\tlet extraMax = this.get(\"extraMax\", 0);\n\t\tlet minDiff = Infinity;\n\n\t\t$array.each(this.series, (series) => {\n\t\t\tif (!series.get(\"ignoreMinMax\")) {\n\t\t\t\tlet seriesMin: number | undefined;\n\t\t\t\tlet seriesMax: number | undefined;\n\t\t\t\tif (series.get(\"xAxis\") === this) {\n\t\t\t\t\tseriesMin = series.getPrivate(\"minX\");\n\t\t\t\t\tseriesMax = series.getPrivate(\"maxX\");\n\t\t\t\t}\n\t\t\t\telse if (series.get(\"yAxis\") === this) {\n\t\t\t\t\tseriesMin = series.getPrivate(\"minY\");\n\t\t\t\t\tseriesMax = series.getPrivate(\"maxY\");\n\t\t\t\t}\n\n\t\t\t\tif ($type.isNumber(seriesMin) && $type.isNumber(seriesMax)) {\n\t\t\t\t\tmin = Math.min(min, seriesMin);\n\t\t\t\t\tmax = Math.max(max, seriesMax);\n\n\t\t\t\t\tlet diff = seriesMax - seriesMin;\n\n\t\t\t\t\tif (diff <= 0) {\n\t\t\t\t\t\tdiff = Math.abs(seriesMax / 100);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (diff < minDiff) {\n\t\t\t\t\t\tminDiff = diff;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tif (this.get(\"logarithmic\")) {\n\t\t\tlet treatZeroAs = this.get(\"treatZeroAs\");\n\t\t\tif ($type.isNumber(treatZeroAs)) {\n\t\t\t\tif (min <= 0) {\n\t\t\t\t\tmin = treatZeroAs;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (min <= 0) {\n\t\t\t\tnew Error(\"Logarithmic value axis can not have values <= 0.\");\n\t\t\t}\n\t\t}\n\n\t\tif (min === 0 && max === 0) {\n\t\t\tmax = 0.9;\n\t\t\tmin = -0.9;\n\t\t}\n\n\t\tif ($type.isNumber(minDefined)) {\n\t\t\tmin = minDefined;\n\t\t}\n\t\tif ($type.isNumber(maxDefined)) {\n\t\t\tmax = maxDefined;\n\t\t}\n\n\t\t// meaning no min/max found on series/ranges and no min/max was defined\n\t\tif (min === Infinity || max === -Infinity) {\n\t\t\treturn;\n\t\t}\n\n\t\t// adapter\n\t\tlet minAdapted = this.adapters.fold(\"min\", min);\n\t\tlet maxAdapted = this.adapters.fold(\"max\", max);\n\n\t\tif ($type.isNumber(minAdapted)) {\n\t\t\tmin = minAdapted;\n\t\t}\n\n\t\tif ($type.isNumber(maxAdapted)) {\n\t\t\tmax = maxAdapted;\n\t\t}\n\n\t\t// DateAxis does some magic here\n\t\tmin = this._fixMin(min);\n\t\tmax = this._fixMax(max);\n\n\t\t// this happens if starLocation and endLocation are 0.5 and DateAxis has only one date\n\t\tif (max - min <= 1 / Math.pow(10, 15)) {\n\t\t\tif (max - min !== 0) {\n\t\t\t\tthis._deltaMinMax = (max - min) / 2;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// the number by which we need to raise 10 to get difference\n\t\t\t\tlet exponent: number = Math.log(Math.abs(max)) * Math.LOG10E;\n\n\t\t\t\t// here we find a number which is power of 10 and has the same count of numbers as difference has\n\t\t\t\tlet power = Math.pow(10, Math.floor(exponent));\n\n\t\t\t\t// reduce this number by 10 times\n\t\t\t\tpower = power / 10;\n\n\t\t\t\tthis._deltaMinMax = power;\n\t\t\t}\n\n\t\t\tmin -= this._deltaMinMax;\n\t\t\tmax += this._deltaMinMax;\n\t\t}\n\n\t\t// add extras\n\t\tmin -= (max - min) * extraMin;\n\t\tmax += (max - min) * extraMax;\n\n\t\tthis._minReal = min;\n\t\tthis._maxReal = max;\n\n\t\tlet strict = this.get(\"strictMinMax\");\n\t\tif ($type.isNumber(maxDefined)) {\n\t\t\tstrict = true;\n\t\t}\n\n\t\tlet gridCount = this.get(\"renderer\").gridCount();\n\n\t\tlet minMaxStep: IMinMaxStep = this._adjustMinMax(min, max, gridCount, strict);\n\n\t\tmin = minMaxStep.min;\n\t\tmax = minMaxStep.max;\n\n\t\t// do it for the second time with strict true (importat!)\n\t\tminMaxStep = this._adjustMinMax(min, max, gridCount, true);\n\n\t\tmin = minMaxStep.min;\n\t\tmax = minMaxStep.max;\n\n\t\t// return min max if strict\n\t\tif (this.get(\"strictMinMax\")) {\n\t\t\tif ($type.isNumber(minDefined)) {\n\t\t\t\tmin = minDefined;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmin = this._minReal;\n\t\t\t}\n\n\t\t\tif ($type.isNumber(maxDefined)) {\n\t\t\t\tmax = maxDefined;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmax = this._maxReal;\n\t\t\t}\n\n\t\t\tif (max - min <= 0.00000001) {\n\t\t\t\tmin -= this._deltaMinMax;\n\t\t\t\tmax += this._deltaMinMax;\n\t\t\t}\n\n\t\t\tmin -= (max - min) * extraMin;\n\t\t\tmax += (max - min) * extraMax;\n\t\t}\n\n\t\tminAdapted = this.adapters.fold(\"min\", min);\n\t\tmaxAdapted = this.adapters.fold(\"max\", max);\n\n\t\tif ($type.isNumber(minAdapted)) {\n\t\t\tmin = minAdapted;\n\t\t}\n\n\t\tif ($type.isNumber(maxAdapted)) {\n\t\t\tmax = maxAdapted;\n\t\t}\n\n\t\tif (minDiff == Infinity) {\n\t\t\tminDiff = (max - min)\n\t\t}\n\n\t\tconst syncWithAxis = this.get(\"syncWithAxis\");\n\t\tif (syncWithAxis) {\n\t\t\tminMaxStep = this._syncAxes(min, max, minMaxStep.step, syncWithAxis.getPrivate(\"minFinal\", syncWithAxis.getPrivate(\"min\", 0)), syncWithAxis.getPrivate(\"maxFinal\", syncWithAxis.getPrivate(\"max\", 1)), syncWithAxis.getPrivate(\"step\", 1));\n\t\t\tmin = minMaxStep.min;\n\t\t\tmax = minMaxStep.max;\n\t\t}\n\n\t\tthis.setPrivateRaw(\"maxZoomFactor\", (max - min) / minDiff * this.get(\"maxZoomFactor\", 100));\n\n\t\tif ($type.isNumber(min) && $type.isNumber(max)) {\n\t\t\tif (this.getPrivate(\"minFinal\") !== min || this.getPrivate(\"maxFinal\") !== max) {\n\t\t\t\tthis.setPrivate(\"minFinal\", min);\n\t\t\t\tthis.setPrivate(\"maxFinal\", max);\n\n\t\t\t\tconst duration = this.get(\"interpolationDuration\", 0);\n\t\t\t\tconst easing = this.get(\"interpolationEasing\");\n\n\t\t\t\tthis.animatePrivate({ key: \"min\", to: min, duration, easing });\n\t\t\t\tthis.animatePrivate({ key: \"max\", to: max, duration, easing });\n\t\t\t}\n\t\t}\n\t}\n\n\n\tprotected _adjustMinMax(min: number, max: number, gridCount: number, strictMode?: boolean): IMinMaxStep {\n\t\tconst logarithmic = this.get(\"logarithmic\");\n\t\t// will fail if 0\n\t\tif (gridCount <= 1) {\n\t\t\tgridCount = 1;\n\t\t}\n\n\t\tgridCount = Math.round(gridCount);\n\n\t\tlet initialMin: number = min;\n\t\tlet initialMax: number = max;\n\n\t\tlet difference = max - min;\n\n\t\t// in case min and max is the same, use max\n\t\tif (difference === 0) {\n\t\t\tdifference = Math.abs(max);\n\t\t}\n\n\t\t// the number by which we need to raise 10 to get difference\n\t\tlet exponent: number = Math.log(Math.abs(difference)) * Math.LOG10E;\n\n\t\t// here we find a number which is power of 10 and has the same count of numbers as difference has\n\t\tlet power = Math.pow(10, Math.floor(exponent));\n\n\t\t// reduce this number by 10 times\n\t\tpower = power / 10;\n\n\t\tlet extra: number = power;\n\t\tif (strictMode) {\n\t\t\textra = 0;\n\t\t}\n\n\t\tif (!logarithmic) {\n\t\t\t// round down min\n\t\t\tif (strictMode) {\n\t\t\t\tmin = Math.floor(min / power) * power;\n\t\t\t\t// round up max\n\t\t\t\tmax = Math.ceil(max / power) * power;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmin = Math.ceil(min / power) * power - extra;\n\t\t\t\t// round up max\n\t\t\t\tmax = Math.floor(max / power) * power + extra;\n\t\t\t}\n\n\t\t\t// don't let min go below 0 if real min is >= 0\n\t\t\tif (min < 0 && initialMin >= 0) {\n\t\t\t\tmin = 0;\n\t\t\t}\n\t\t\t// don't let max go above 0 if real max is <= 0\n\t\t\tif (max > 0 && initialMax <= 0) {\n\t\t\t\tmax = 0;\n\t\t\t}\n\t\t}\n\t\t// logarithmic\n\t\telse {\n\t\t\tif (min <= 0) {\n\t\t\t\t//throw Error(\"Logarithmic value axis can not have values <= 0.\");\n\t\t\t\tmin = this.get(\"baseValue\", 0);\n\t\t\t}\n\n\t\t\tif (min === Infinity) {\n\t\t\t\tmin = 1;\n\t\t\t}\n\n\t\t\tif (max === -Infinity) {\n\t\t\t\tmax = 10;\n\t\t\t}\n\n\t\t\tmin = Math.pow(10, Math.floor(Math.log(Math.abs(min)) * Math.LOG10E));\n\t\t\tmax = Math.pow(10, Math.ceil(Math.log(Math.abs(max)) * Math.LOG10E));\n\n\t\t\tif (this.get(\"strictMinMax\")) {\n\t\t\t\tlet minDefined = this.get(\"min\");\n\t\t\t\tlet maxDefined = this.get(\"max\");\n\t\t\t\tif ($type.isNumber(minDefined) && minDefined > 0) {\n\t\t\t\t\tmin = minDefined;\n\t\t\t\t}\n\t\t\t\tif ($type.isNumber(maxDefined) && maxDefined > 0) {\n\t\t\t\t\tmax = maxDefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\texponent = Math.log(Math.abs(difference)) * Math.LOG10E;\n\t\tpower = Math.pow(10, Math.floor(exponent));\n\t\tpower = power / 100; // used to be 10 in v4, but this caused issue that there could be limited number of grids with even very small minGridDistance\n\n\t\t// approximate difference between two grid lines\n\t\tlet step = Math.ceil((difference / gridCount) / power) * power;\n\t\tlet stepPower = Math.pow(10, Math.floor(Math.log(Math.abs(step)) * Math.LOG10E));\n\n\t\t// the step should divide by 2, 5, and 10.\n\t\tlet stepDivisor: number = Math.ceil(step / stepPower); // number 0 - 10\n\n\n\t\tif (stepDivisor > 5) {\n\t\t\tstepDivisor = 10;\n\t\t}\n\t\telse if (stepDivisor <= 5 && stepDivisor > 2) {\n\t\t\tstepDivisor = 5;\n\t\t}\n\n\t\t// now get real step\n\t\tstep = Math.ceil(step / (stepPower * stepDivisor)) * stepPower * stepDivisor;\n\n\t\tlet maxPrecision = this.get(\"maxPrecision\");\n\t\tif ($type.isNumber(maxPrecision)) {\n\t\t\tlet ceiledStep = $math.ceil(step, maxPrecision);\n\t\t\tif (maxPrecision < Number.MAX_VALUE && step !== ceiledStep) {\n\t\t\t\tstep = ceiledStep;\n\t\t\t}\n\t\t}\n\n\t\tlet decCount: number = 0;\n\t\t// in case numbers are smaller than 1\n\t\tif (stepPower < 1) {\n\t\t\t// exponent is less then 1 too. Count decimals of exponent\n\t\t\tdecCount = Math.round(Math.abs(Math.log(Math.abs(stepPower)) * Math.LOG10E)) + 1;\n\t\t\t// round step\n\t\t\tstep = $math.round(step, decCount);\n\t\t}\n\t\tif (!logarithmic) {\n\t\t\t// final min and max\n\t\t\tlet minCount = Math.floor(min / step);\n\n\t\t\tmin = $math.round(step * minCount, decCount);\n\n\t\t\tlet maxCount: number;\n\n\t\t\tif (!strictMode) {\n\t\t\t\tmaxCount = Math.ceil(max / step);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmaxCount = Math.floor(max / step);\n\t\t\t}\n\n\t\t\tif (maxCount === minCount) {\n\t\t\t\tmaxCount++;\n\t\t\t}\n\n\t\t\tmax = $math.round(step * maxCount, decCount);\n\n\t\t\tif (max < initialMax) {\n\t\t\t\tmax = max + step;\n\t\t\t}\n\n\t\t\tif (min > initialMin) {\n\t\t\t\tmin = min - step;\n\t\t\t}\n\t\t}\n\n\t\tstep = this.fixSmallStep(step);\n\n\t\treturn { min: min, max: max, step: step };\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 getTooltipText(position: number): string | undefined {\n\t\tconst numberFormat = this.get(\"tooltipNumberFormat\", this.get(\"numberFormat\"));\n\t\tconst formatter = this.getNumberFormatter();\n\t\tconst extraDecimals = this.get(\"extraTooltipPrecision\", 0);\n\t\tconst decimals = this.getPrivate(\"stepDecimalPlaces\", 0) + extraDecimals;\n\t\tconst value = $math.round(this.positionToValue(position), decimals);\n\n\t\tif (numberFormat) {\n\t\t\treturn formatter.format(value, numberFormat);\n\t\t}\n\t\telse {\n\t\t\treturn formatter.format(value, undefined, decimals);\n\t\t\t//label.set(\"text\", this.getNumberFormatter().format(value, undefined, this.getPrivate(\"stepDecimalPlaces\")));\n\t\t}\n\n\t\t// //@todo number formatter + tag\n\t\t// return $math.round(this.positionToValue(position), this.getPrivate(\"stepDecimalPlaces\")).toString();\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 getSeriesItem(series: XYSeries, position: number): DataItem<IXYSeriesDataItem> | undefined {\n\t\tlet fieldName = <any>(this.getPrivate(\"name\")! + this.get(\"renderer\").getPrivate(\"letter\")!);\n\t\tlet value = this.positionToValue(position);\n\n\t\tlet index: number | undefined = undefined;\n\t\tlet oldDiff: number;\n\t\t$array.each(series.dataItems, (dataItem, i) => {\n\t\t\tconst diff = Math.abs(dataItem.get(fieldName) - value);\n\t\t\tif (index === undefined || diff < oldDiff) {\n\t\t\t\tindex = i;\n\t\t\t\toldDiff = diff;\n\t\t\t}\n\t\t});\n\n\t\tif (index != null) {\n\t\t\treturn series.dataItems[index];\n\t\t}\n\t}\n\n\t/**\n\t * Zooms the axis to specific `start` and `end` values.\n\t *\n\t * Optional `duration` specifies duration of zoom animation in milliseconds.\n\t *\n\t * @param start Start value\n\t * @param end End value\n\t * @param duration Duration in milliseconds\n\t */\n\tpublic zoomToValues(start: number, end: number, duration?: number) {\n\t\tconst min = this.getPrivate(\"minFinal\", 0);\n\t\tconst max = this.getPrivate(\"maxFinal\", 0);\n\t\tif (this.getPrivate(\"min\") != null && this.getPrivate(\"max\") != null) {\n\t\t\tthis.zoom((start - min) / (max - min), (end - min) / (max - min), duration);\n\t\t}\n\t}\n\n\n\n\t/**\n\t * Syncs with a target axis.\n\t *\n\t * @param min Min\n\t * @param max Max\n\t * @param step Step\n\t */\n\tprotected _syncAxes(min: number, max: number, step: number, syncMin: number, syncMax: number, syncStep: number) {\n\t\tlet axis = this.get(\"syncWithAxis\");\n\t\tif (axis) {\n\t\t\tlet count: number = Math.round(syncMax - syncMin) / syncStep;\n\t\t\tlet currentCount = Math.round((max - min) / step);\n\n\t\t\tlet gridCount = this.get(\"renderer\").gridCount();\n\n\t\t\tif ($type.isNumber(count) && $type.isNumber(currentCount)) {\n\t\t\t\tlet synced = false;\n\t\t\t\tlet c = 0\n\t\t\t\tlet diff = (max - min) * 0.01;\n\t\t\t\tlet omin = min;\n\t\t\t\tlet omax = max;\n\t\t\t\tlet ostep = step;\n\n\t\t\t\twhile (synced != true) {\n\t\t\t\t\tsynced = this._checkSync(omin, omax, ostep, count);\n\t\t\t\t\tc++;\n\t\t\t\t\tif (c > 500) {\n\t\t\t\t\t\tsynced = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (!synced) {\n\t\t\t\t\t\tif (c / 3 == Math.round(c / 3)) {\n\t\t\t\t\t\t\tomin = min - diff * c;\n\t\t\t\t\t\t\tif (min >= 0 && omin < 0) {\n\t\t\t\t\t\t\t\tomin = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tomax = max + diff * c;\n\t\t\t\t\t\t\tif (omax <= 0 && omax > 0) {\n\t\t\t\t\t\t\t\tomax = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet minMaxStep = this._adjustMinMax(omin, omax, gridCount, true);\n\t\t\t\t\t\tomin = minMaxStep.min;\n\t\t\t\t\t\tomax = minMaxStep.max;\n\t\t\t\t\t\tostep = minMaxStep.step;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tmin = omin;\n\t\t\t\t\t\tmax = omax;\n\t\t\t\t\t\tstep = ostep;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn { min: min, max: max, step: step };\n\t}\n\n\t/**\n\t * Returns `true` if axis needs to be resunced with some other axis.\n\t */\n\tprotected _checkSync(min: number, max: number, step: number, count: number): boolean {\n\t\tlet currentCount = (max - min) / step;\n\t\tfor (let i = 1; i < count; i++) {\n\t\t\tif ($math.round(currentCount / i, 1) == count || currentCount * i == count) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
1
+ {"version":3,"file":"ValueAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/ValueAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataItem } from \"../../../core/render/Component\";\nimport type { AxisRenderer } from \"./AxisRenderer\";\nimport { Axis, IAxisSettings, IAxisPrivate, IAxisDataItem, IAxisEvents } from \"./Axis\";\nimport type { IXYSeriesDataItem, XYSeries } from \"../series/XYSeries\";\nimport * as $type from \"../../../core/util/Type\";\nimport * as $array from \"../../../core/util/Array\";\nimport * as $math from \"../../../core/util/Math\";\nimport * as $utils from \"../../../core/util/Utils\";\nimport { MultiDisposer } from \"../../../core/util/Disposer\";\n//import * as $order from \"../../../core/util/Order\";\n\nexport interface IValueAxisSettings<R extends AxisRenderer> extends IAxisSettings<R> {\n\n\t/**\n\t * Override minimum value for the axis scale.\n\t *\n\t * NOTE: the axis might modify the minimum value to fit into its scale better,\n\t * unless `strictMinMax` is set to `true`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Custom_scope} for more info\n\t */\n\tmin?: number;\n\n\t/**\n\t * Override maximum value for the axis scale.\n\t *\n\t * NOTE: the axis might modify the maximum value to fit into its scale better,\n\t * unless `strictMinMax` is set to `true`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Custom_scope} for more info\n\t */\n\tmax?: number;\n\n\t/**\n\t * Force axis scale to be precisely at values as set in `min` and/or `max`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Custom_scope} for more info\n\t */\n\tstrictMinMax?: boolean;\n\n\t/**\n\t * If set to `true` axis will use logarithmic scale.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Logarithmic_scale} for more info\n\t */\n\tlogarithmic?: boolean;\n\n\t/**\n\t * Treat zero values as some other value.\n\t *\n\t * Useful in situations where zero would result in error, i.e. logarithmic\n\t * scale.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Logarithmic_scale} for more info\n\t */\n\ttreatZeroAs?: number;\n\n\t/**\n\t * Relative extension to the automatically-calculated minimum value of the\n\t * axis scale.\n\t *\n\t * E..g. `0.1` will extend the scale by 10%, so if max value is `1000` and\n\t * minimum value is `0`, the new minimum value will be `-100`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Relative_scope_extension} for more info\n\t */\n\textraMin?: number;\n\n\t/**\n\t * Relative extension to the automatically-calculated maximum value of the\n\t * axis scale.\n\t *\n\t * E..g. `0.1` will extend the scale by 10%, so if max value is `1000`, the\n\t * axis will now show maximum value of `1100`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Relative_scope_extension} for more info\n\t */\n\textraMax?: number;\n\n\t/**\n\t * Base value, which indicates the threshold between \"positive\" and \"negative\"\n\t * values.\n\t *\n\t * @default 0\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Base_value} for more info\n\t */\n\tbaseValue?: number;\n\n\t/**\n\t * Maximum number of decimals to allow in axis labels.\n\t *\n\t * This setting not only affects formatting of the labels, but also where and\n\t * how many grid/labels are placed on the axis.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Label_format} for more info\n\t */\n\tmaxPrecision?: number;\n\n\t/**\n\t * A function that can be used to specify how to configure axis fills.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/#Axis_fills} for more info\n\t */\n\tfillRule?: (dataItem: DataItem<IValueAxisDataItem>) => void;\n\n\t/**\n\t * Number format to use for axis labels.\n\t *\n\t * If not set, will use format set in global number formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Label_format} for more info\n\t */\n\tnumberFormat?: string;\n\n\t/**\n\t * A numeric format used for numbers displayed in axis tooltip.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Tooltip_number_format} for more info\n\t */\n\ttooltipNumberFormat?: string | Intl.NumberFormatOptions;\n\n\t/**\n\t * If set, will use greater precision for the axis fooltip than the one for\n\t * axis' actual labels.\n\t *\n\t * E.g. if axis displays labels with one decimal (`1.0`, `1.1`, `1.2`) setting\n\t * this setting to `1` would allow two decimals in axis tooltip, e.g. `1.15`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Tooltip_number_format} for more info\n\t */\n\textraTooltipPrecision?: number;\n\n\t/**\n\t * If your series relies on dynamically calculated values, like value\n\t * changes, percents, or total sums, set this to `true`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Calculated_values} for more info\n\t */\n\tcalculateTotals?: boolean;\n\n\t/**\n\t * This setting can be set to an instance of another [[ValueAxis]].\n\t *\n\t * If set the grid of this axis will be synced with grid of the target axis.\n\t *\n\t * NOTE: this is not 100% guaranteed to work. In some rare cases perfect\n\t * sync might not be possible.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/#Syncing_grid} for more info\n\t */\n\tsyncWithAxis?: ValueAxis<AxisRenderer>;\n\n}\n\nexport interface IValueAxisDataItem extends IAxisDataItem {\n\n\t/**\n\t * Value of the data item.\n\t */\n\tvalue?: number;\n\n\t/**\n\t * End value for axis items that span multiple values, like axis ranges.\n\t */\n\tendValue?: number;\n\n\t/**\n\t * If set to `true` the values fo this data item will be factored in when\n\t * calculating scale of the [[ValueAxis]]. Useful for axis ranges.\n\t * \n\t * @since 5.1.4\n\t */\n\taffectsMinMax?: boolean;\n\n}\n\nexport interface IMinMaxStep {\n\tmin: number;\n\tmax: number;\n\tstep: number;\n}\n\nexport interface IValueAxisPrivate extends IAxisPrivate {\n\tmin?: number;\n\tmax?: number;\n\tminFinal?: number;\n\tmaxFinal?: number;\n\tselectionMin?: number;\n\tselectionMax?: number;\n\tselectionMinFinal?: number;\n\tselectionMaxFinal?: number;\n\tselectionStepFinal?: number;\n\tstep?: number;\n\tstepDecimalPlaces?: number;\n}\n\nexport interface IValueAxisEvents extends IAxisEvents {\n\n}\n\n/**\n * Creates a value axis.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/value-axis/} for more info\n * @important\n */\nexport class ValueAxis<R extends AxisRenderer> extends Axis<R> {\n\tpublic static className: string = \"ValueAxis\";\n\tpublic static classNames: Array<string> = Axis.classNames.concat([ValueAxis.className]);\n\n\tdeclare public _settings: IValueAxisSettings<R>;\n\tdeclare public _privateSettings: IValueAxisPrivate;\n\tdeclare public _dataItemSettings: IValueAxisDataItem;\n\tdeclare public _events: IValueAxisEvents;\n\n\tprotected _dirtyExtremes: boolean = false;\n\tprotected _dirtySelectionExtremes: boolean = false;\n\tprotected _deltaMinMax: number = 1;\n\tprotected _minReal: number | undefined;\n\tprotected _maxReal: number | undefined;\n\n\tprotected _baseValue: number = 0;\n\tprotected _syncDp?: MultiDisposer;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtyExtremes() {\n\t\tthis._dirtyExtremes = true;\n\t\tthis.markDirty();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtySelectionExtremes() {\n\t\tthis._dirtySelectionExtremes = true;\n\t\tthis.markDirty();\n\t}\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"axis\"]);\n\t\tthis.setPrivateRaw(\"name\", \"value\");\n\t\tthis.addTag(\"value\");\n\t\tsuper._afterNew();\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tif (this.isDirty(\"syncWithAxis\")) {\n\t\t\tlet previousValue = this._prevSettings.syncWithAxis;\n\t\t\tif (previousValue) {\n\t\t\t\tif (this._syncDp) {\n\t\t\t\t\tthis._syncDp.dispose();\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet syncWithAxis = this.get(\"syncWithAxis\");\n\t\t\tif (syncWithAxis) {\n\t\t\t\tthis._syncDp = new MultiDisposer([\n\t\t\t\t\tsyncWithAxis.onPrivate(\"selectionMinFinal\", () => {\n\t\t\t\t\t\tthis._dirtySelectionExtremes = true;\n\t\t\t\t\t}),\n\t\t\t\t\tsyncWithAxis.onPrivate(\"selectionMaxFinal\", () => {\n\t\t\t\t\t\tthis._dirtySelectionExtremes = true;\n\t\t\t\t\t})\n\t\t\t\t])\n\t\t\t}\n\t\t}\n\n\t\t//if (this._dirtyExtremes || this.isPrivateDirty(\"width\") || this.isPrivateDirty(\"height\") || this.isDirty(\"min\") || this.isDirty(\"max\") || this.isDirty(\"extraMin\") || this.isDirty(\"extraMax\") || this.isDirty(\"logarithmic\") || this.isDirty(\"treatZeroAs\") || this.isDirty(\"baseValue\") || this.isDirty(\"strictMinMax\") || this.isDirty(\"maxPrecision\")) {\n\t\tif (this._sizeDirty || this._dirtyExtremes || this._valuesDirty || this.isPrivateDirty(\"width\") || this.isPrivateDirty(\"height\") || this.isDirty(\"min\") || this.isDirty(\"max\") || this.isDirty(\"extraMin\") || this.isDirty(\"extraMax\") || this.isDirty(\"logarithmic\") || this.isDirty(\"treatZeroAs\") || this.isDirty(\"baseValue\") || this.isDirty(\"strictMinMax\") || this.isDirty(\"maxPrecision\") || this.isDirty(\"numberFormat\")) {\n\t\t\tthis._getMinMax();\n\t\t\tthis._dirtyExtremes = false;\n\t\t}\n\n\t\tif (this._dirtySelectionExtremes && !this._isPanning) {\n\t\t\tthis._getSelectionMinMax();\n\t\t\tthis._dirtySelectionExtremes = false;\n\t\t}\n\n\t\tthis._groupData();\n\n\t\tif (this._sizeDirty || this._valuesDirty || this.isDirty(\"start\") || this.isDirty(\"end\") || this.isPrivateDirty(\"min\") || this.isPrivateDirty(\"selectionMax\") || this.isPrivateDirty(\"selectionMin\") || this.isPrivateDirty(\"max\") || this.isPrivateDirty(\"step\") || this.isPrivateDirty(\"width\") || this.isPrivateDirty(\"height\") || this.isDirty(\"logarithmic\")) {\n\t\t\tthis._handleRangeChange();\n\t\t\tthis._prepareAxisItems();\n\t\t\tthis._updateAxisRanges();\n\t\t}\n\n\t\tthis._baseValue = this.baseValue();\n\n\t}\n\n\tprotected _groupData() {\n\n\t}\n\n\tprotected _formatText(value: number) {\n\t\tconst numberFormat = this.get(\"numberFormat\");\n\t\tconst formatter = this.getNumberFormatter();\n\n\t\tlet text = \"\";\n\n\t\tif (numberFormat) {\n\t\t\ttext = formatter.format(value, numberFormat);\n\t\t}\n\t\telse {\n\t\t\ttext = formatter.format(value, undefined, this.getPrivate(\"stepDecimalPlaces\"));\n\t\t}\n\t\treturn text;\n\t}\n\n\tprotected _prepareAxisItems() {\n\t\tconst min = this.getPrivate(\"min\");\n\t\tconst max = this.getPrivate(\"max\");\n\n\t\tif ($type.isNumber(min) && $type.isNumber(max)) {\n\n\t\t\tconst logarithmic = this.get(\"logarithmic\");\n\t\t\tconst step = this.getPrivate(\"step\")!;\n\t\t\tconst selectionMin = this.getPrivate(\"selectionMin\")!;\n\t\t\tconst selectionMax = this.getPrivate(\"selectionMax\")! + step;\n\n\t\t\tlet value = selectionMin - step;\n\t\t\tlet i = 0;\n\n\t\t\tif (logarithmic) {\n\t\t\t\tvalue = selectionMin;\n\t\t\t}\n\n\t\t\twhile (value < selectionMax) {\n\t\t\t\tlet dataItem: DataItem<this[\"_dataItemSettings\"]>;\n\t\t\t\tif (this.dataItems.length < i + 1) {\n\t\t\t\t\tdataItem = new DataItem(this, undefined, {});\n\t\t\t\t\tthis._dataItems.push(dataItem);\n\t\t\t\t\tthis.processDataItem(dataItem);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdataItem = this.dataItems[i];\n\t\t\t\t}\n\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\tdataItem.setRaw(\"value\", 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._formatText(value));\n\t\t\t\t}\n\n\t\t\t\tthis._prepareDataItem(dataItem);\n\n\t\t\t\tif (!logarithmic) {\n\t\t\t\t\tvalue += step;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet differencePower = Math.log(max) * Math.LOG10E - Math.log(min) * Math.LOG10E;\n\t\t\t\t\tif (differencePower > 1) {\n\t\t\t\t\t\tvalue = Math.pow(10, Math.log(min) * Math.LOG10E + i);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue += step;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet stepPower = Math.pow(10, Math.floor(Math.log(Math.abs(step)) * Math.LOG10E));\n\t\t\t\tif (stepPower < 1) {\n\t\t\t\t\t// exponent is less then 1 too. Count decimals of exponent\n\t\t\t\t\tlet decCount = Math.round(Math.abs(Math.log(Math.abs(stepPower)) * Math.LOG10E)) + 2;\n\t\t\t\t\t// round value to avoid floating point issues\n\t\t\t\t\tvalue = $math.round(value, decCount);\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t}\n\n\t\t\tfor (let j = i; j < this.dataItems.length; j++) {\n\t\t\t\tthis.dataItems[j].hide();\n\t\t\t}\n\n\t\t\t$array.each(this.series, (series) => {\n\t\t\t\tif (series.inited) {\n\t\t\t\t\tseries._markDirtyAxes();\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tthis._updateGhost();\n\t\t}\n\t}\n\n\n\tpublic _prepareDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, count?: number) {\n\t\tlet renderer = this.get(\"renderer\");\n\t\tlet value = dataItem.get(\"value\")!;\n\t\tlet endValue = dataItem.get(\"endValue\");\n\n\t\tlet position = this.valueToPosition(value);\n\n\t\tlet endPosition = position;\n\t\tlet fillEndPosition = this.valueToPosition(value + this.getPrivate(\"step\")!);\n\n\t\tif ($type.isNumber(endValue)) {\n\t\t\tendPosition = this.valueToPosition(endValue);\n\t\t\tfillEndPosition = endPosition;\n\t\t}\n\n\t\trenderer.updateLabel(dataItem.get(\"label\"), position, endPosition, count);\n\n\t\tconst grid = dataItem.get(\"grid\");\n\t\trenderer.updateGrid(grid, position, endPosition);\n\t\tif (grid) {\n\t\t\tif (value == this.get(\"baseValue\", 0)) {\n\t\t\t\tgrid.addTag(\"base\");\n\t\t\t\tgrid._applyThemes();\n\t\t\t}\n\t\t\telse if (grid.hasTag(\"base\")) {\n\t\t\t\tgrid.removeTag(\"base\");\n\t\t\t\tgrid._applyThemes();\n\t\t\t}\n\t\t}\n\n\t\trenderer.updateTick(dataItem.get(\"tick\"), position, endPosition, count);\n\t\trenderer.updateFill(dataItem.get(\"axisFill\"), position, fillEndPosition);\n\n\t\tthis._processBullet(dataItem);\n\t\trenderer.updateBullet(dataItem.get(\"bullet\"), position, endPosition);\n\n\t\tif (!dataItem.get(\"isRange\")) {\n\t\t\tconst fillRule = this.get(\"fillRule\");\n\t\t\tif (fillRule) {\n\t\t\t\tfillRule(dataItem)\n\t\t\t}\n\t\t}\n\t}\n\n\n\tprotected _handleRangeChange() {\n\t\tlet selectionMin: number = this.positionToValue(this.get(\"start\", 0));\n\t\tlet selectionMax: number = this.positionToValue(this.get(\"end\", 1));\n\n\t\tconst gridCount = this.get(\"renderer\").gridCount();\n\t\tlet minMaxStep: IMinMaxStep = this._adjustMinMax(selectionMin, selectionMax, gridCount, true);\n\n\t\tlet stepDecimalPlaces = $utils.decimalPlaces(minMaxStep.step);\n\t\tthis.setPrivateRaw(\"stepDecimalPlaces\", stepDecimalPlaces);\n\n\t\tselectionMin = $math.round(selectionMin, stepDecimalPlaces);\n\t\tselectionMax = $math.round(selectionMax, stepDecimalPlaces);\n\n\t\tminMaxStep = this._adjustMinMax(selectionMin, selectionMax, gridCount, true);\n\n\t\tlet step = minMaxStep.step;\n\t\tselectionMin = minMaxStep.min;\n\t\tselectionMax = minMaxStep.max;\n\n\t\tif (this.getPrivate(\"selectionMin\") !== selectionMin || this.getPrivate(\"selectionMax\") !== selectionMax || this.getPrivate(\"step\") !== step) {\n\t\t\tthis.setPrivateRaw(\"selectionMin\", selectionMin);\n\t\t\tthis.setPrivateRaw(\"selectionMax\", selectionMax);\n\t\t\tthis.setPrivateRaw(\"step\", step);\n\t\t}\n\t}\n\n\t/**\n\t * Converts a relative position to a corresponding numeric value from axis\n\t * scale.\n\t *\n\t * @param position Relative position\n\t * @return Value\n\t */\n\tpublic positionToValue(position: number): number {\n\t\tconst min = this.getPrivate(\"min\")!;\n\t\tconst max = this.getPrivate(\"max\")!;\n\n\t\tif (!this.get(\"logarithmic\")) {\n\t\t\treturn position * (max - min) + min;\n\t\t}\n\t\telse {\n\t\t\treturn Math.pow(Math.E, (position * ((Math.log(max) * Math.LOG10E - Math.log(min) * Math.LOG10E)) + Math.log(min) * Math.LOG10E) / Math.LOG10E);\n\t\t}\n\t}\n\n\t/**\n\t * Convers value to a relative position on axis.\n\t *\n\t * @param value Value\n\t * @return Relative position\n\t */\n\tpublic valueToPosition(value: number): number {\n\n\t\tconst min = this.getPrivate(\"min\")!;\n\t\tconst max = this.getPrivate(\"max\")!;\n\n\t\tif (!this.get(\"logarithmic\")) {\n\t\t\treturn (value - min) / (max - min);\n\t\t}\n\t\telse {\n\t\t\tif (value <= 0) {\n\t\t\t\tlet treatZeroAs = this.get(\"treatZeroAs\");\n\t\t\t\tif ($type.isNumber(treatZeroAs)) {\n\t\t\t\t\tvalue = treatZeroAs;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn (Math.log(value) * Math.LOG10E - Math.log(min) * Math.LOG10E) / ((Math.log(max) * Math.LOG10E - Math.log(min) * Math.LOG10E));\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic valueToFinalPosition(value: number): number {\n\n\t\tconst min = this.getPrivate(\"minFinal\")!;\n\t\tconst max = this.getPrivate(\"maxFinal\")!;\n\n\t\tif (!this.get(\"logarithmic\")) {\n\t\t\treturn (value - min) / (max - min);\n\t\t}\n\t\telse {\n\t\t\tif (value <= 0) {\n\t\t\t\tlet treatZeroAs = this.get(\"treatZeroAs\");\n\t\t\t\tif ($type.isNumber(treatZeroAs)) {\n\t\t\t\t\tvalue = treatZeroAs;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn (Math.log(value) * Math.LOG10E - Math.log(min) * Math.LOG10E) / ((Math.log(max) * Math.LOG10E - Math.log(min) * Math.LOG10E));\n\t\t}\n\t}\n\n\t/**\n\t * Returns X coordinate in pixels corresponding to specific value.\n\t *\n\t * @param value Numeric value\n\t * @param location Location\n\t * @param baseValue Base value\n\t * @return X coordinate\n\t */\n\tpublic getX(value: number, location: number, baseValue: number) {\n\t\tvalue = baseValue + (value - baseValue) * location;\n\n\t\tconst position = this.valueToPosition(value);\n\t\treturn this._settings.renderer.positionToCoordinate(position);\n\t}\n\n\t/**\n\t * Returns X coordinate in pixels corresponding to specific value.\n\t *\n\t * @param value Numeric value\n\t * @param location Location\n\t * @param baseValue Base value\n\t * @return X coordinate\n\t */\n\tpublic getY(value: number, location: number, baseValue: number) {\n\t\tvalue = baseValue + (value - baseValue) * location;\n\n\t\tconst position = this.valueToPosition(value)\n\t\treturn this._settings.renderer.positionToCoordinate(position);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemCoordinateX(dataItem: DataItem<IXYSeriesDataItem>, field: string, _cellLocation: number, axisLocation: number): number {\n\t\treturn this._settings.renderer.positionToCoordinate(this.getDataItemPositionX(dataItem, field, _cellLocation, axisLocation));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemPositionX(dataItem: DataItem<IXYSeriesDataItem>, field: string, _cellLocation: number, axisLocation: number) {\n\t\tlet value = dataItem.get(field as any);\n\n\t\tconst stackToItem = dataItem.get(\"stackToItemX\");\n\t\tif (stackToItem) {\n\t\t\tconst series = dataItem.component as XYSeries;\n\t\t\tvalue = value * axisLocation + series.getStackedXValueWorking(dataItem, field);\n\t\t}\n\t\telse {\n\t\t\tvalue = this._baseValue + (value - this._baseValue) * axisLocation;\n\t\t}\n\n\t\treturn this.valueToPosition(value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemCoordinateY(dataItem: DataItem<IXYSeriesDataItem>, field: string, _cellLocation: number, axisLocation: number): number {\n\t\treturn this._settings.renderer.positionToCoordinate(this.getDataItemPositionY(dataItem, field, _cellLocation, axisLocation));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemPositionY(dataItem: DataItem<IXYSeriesDataItem>, field: string, _cellLocation: number, axisLocation: number): number {\n\t\tlet value = dataItem.get(field as any);\n\n\t\tconst stackToItem = dataItem.get(\"stackToItemY\");\n\t\tif (stackToItem) {\n\t\t\tconst series = dataItem.component as XYSeries;\n\t\t\tvalue = value * axisLocation + series.getStackedYValueWorking(dataItem, field);\n\t\t}\n\t\telse {\n\t\t\tvalue = this._baseValue + (value - this._baseValue) * axisLocation;\n\t\t}\n\n\t\treturn this.valueToPosition(value);\n\t}\n\n\t/**\n\t * Returns relative position of axis' `baseValue`.\n\t *\n\t * @return Base value position\n\t */\n\tpublic basePosition(): number {\n\t\treturn this.valueToPosition(this.baseValue());\n\t}\n\n\t/**\n\t * Base value of the [[ValueAxis]], which determines positive and negative\n\t * values.\n\t *\n\t * @return Base value\n\t */\n\tpublic baseValue(): number {\n\t\tconst min = Math.min(this.getPrivate(\"minFinal\", -Infinity), this.getPrivate(\"selectionMin\", -Infinity));\n\t\tconst max = Math.max(this.getPrivate(\"maxFinal\", Infinity), this.getPrivate(\"selectionMax\", Infinity));\n\t\tlet baseValue = this.get(\"baseValue\", 0);\n\n\t\tif (baseValue < min) {\n\t\t\tbaseValue = min;\n\t\t}\n\n\t\tif (baseValue > max) {\n\t\t\tbaseValue = max\n\t\t}\n\n\t\treturn baseValue;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic cellEndValue(value: number): number {\n\t\treturn value;\n\t}\n\n\tprotected fixSmallStep(step: number): number {\n\t\t// happens because of floating point error\n\t\tif (1 + step === 1) {\n\t\t\tstep *= 2;\n\t\t\treturn this.fixSmallStep(step);\n\t\t}\n\t\treturn step;\n\t}\n\n\tprotected _fixMin(min: number) {\n\t\treturn min;\n\t}\n\n\tprotected _fixMax(max: number) {\n\t\treturn max;\n\t}\n\n\tpublic _calculateTotals() {\n\t\tif (this.get(\"calculateTotals\")) {\n\t\t\tlet series = this.series[0];\n\t\t\tif (series) {\n\t\t\t\tlet startIndex = series.startIndex();\n\n\t\t\t\tif (series.dataItems.length > 0) {\n\n\t\t\t\t\tif (startIndex > 0) {\n\t\t\t\t\t\tstartIndex--;\n\t\t\t\t\t}\n\t\t\t\t\tlet endIndex = series.endIndex();\n\t\t\t\t\tif (endIndex < series.dataItems.length) {\n\t\t\t\t\t\tendIndex++;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet field: string | undefined;\n\t\t\t\t\tlet vc: string | undefined;\n\n\t\t\t\t\tif (series.get(\"yAxis\") == this) {\n\t\t\t\t\t\tfield = \"valueY\";\n\t\t\t\t\t\tvc = \"vcy\";\n\t\t\t\t\t}\n\t\t\t\t\telse if (series.get(\"xAxis\") == this) {\n\t\t\t\t\t\tfield = \"valueX\";\n\t\t\t\t\t\tvc = \"vcx\";\n\t\t\t\t\t}\n\n\t\t\t\t\tlet fieldWorking = field + \"Working\";\n\n\t\t\t\t\tif (field) {\n\t\t\t\t\t\tfor (let i = startIndex; i < endIndex; i++) {\n\t\t\t\t\t\t\tlet sum = 0;\n\t\t\t\t\t\t\tlet total = 0;\n\n\t\t\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\t\t\tif (!series.get(\"excludeFromTotal\")) {\n\t\t\t\t\t\t\t\t\tlet dataItem = series.dataItems[i];\n\t\t\t\t\t\t\t\t\tif (dataItem) {\n\t\t\t\t\t\t\t\t\t\tlet value = dataItem.get(fieldWorking as any) * series.get(vc as any);\n\n\t\t\t\t\t\t\t\t\t\tif (!$type.isNaN(value)) {\n\t\t\t\t\t\t\t\t\t\t\tsum += value;\n\t\t\t\t\t\t\t\t\t\t\ttotal += Math.abs(value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\t\t\tif (!series.get(\"excludeFromTotal\")) {\n\t\t\t\t\t\t\t\t\tlet dataItem = series.dataItems[i];\n\t\t\t\t\t\t\t\t\tif (dataItem) {\n\t\t\t\t\t\t\t\t\t\tlet value = dataItem.get(fieldWorking as any) * series.get(vc as any);\n\n\t\t\t\t\t\t\t\t\t\tif (!$type.isNaN(value)) {\n\t\t\t\t\t\t\t\t\t\t\tdataItem.set((field + \"Total\") as any, total);\n\t\t\t\t\t\t\t\t\t\t\tdataItem.set((field + \"Sum\") as any, sum);\n\t\t\t\t\t\t\t\t\t\t\tdataItem.set((field + \"TotalPercent\") as any, value / total * 100);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _getSelectionMinMax() {\n\t\tconst min = this.getPrivate(\"minFinal\");\n\t\tconst max = this.getPrivate(\"maxFinal\");\n\n\t\tconst minDefined = this.get(\"min\");\n\t\tconst maxDefined = this.get(\"max\");\n\n\t\tconst extraMin = this.get(\"extraMin\", 0);\n\t\tconst extraMax = this.get(\"extraMax\", 0);\n\n\t\tconst gridCount = this.get(\"renderer\").gridCount();\n\n\t\tconst strictMinMax = this.get(\"strictMinMax\", false);\n\n\t\tif ($type.isNumber(min) && $type.isNumber(max)) {\n\n\t\t\tlet selectionMin = max;\n\t\t\tlet selectionMax = min;\n\n\t\t\t$array.each(this.series, (series) => {\n\t\t\t\tif (!series.get(\"ignoreMinMax\")) {\n\t\t\t\t\tlet seriesMin: number | undefined;\n\t\t\t\t\tlet seriesMax: number | undefined;\n\t\t\t\t\tif (series.get(\"xAxis\") === this) {\n\t\t\t\t\t\tseriesMin = series.getPrivate(\"selectionMinX\", series.getPrivate(\"minX\"));\n\t\t\t\t\t\tseriesMax = series.getPrivate(\"selectionMaxX\", series.getPrivate(\"maxX\"));\n\t\t\t\t\t}\n\t\t\t\t\telse if (series.get(\"yAxis\") === this) {\n\t\t\t\t\t\tseriesMin = series.getPrivate(\"selectionMinY\", series.getPrivate(\"minY\"));\n\t\t\t\t\t\tseriesMax = series.getPrivate(\"selectionMaxY\", series.getPrivate(\"maxY\"));\n\t\t\t\t\t}\n\t\t\t\t\tif (!series.isHidden() && !series.isShowing()) {\n\t\t\t\t\t\tif ($type.isNumber(seriesMin)) {\n\t\t\t\t\t\t\tselectionMin = Math.min(selectionMin, seriesMin);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ($type.isNumber(seriesMax)) {\n\t\t\t\t\t\t\tselectionMax = Math.max(selectionMax, seriesMax);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tthis.axisRanges.each((range) => {\n\t\t\t\tif (range.get(\"affectsMinMax\")) {\n\t\t\t\t\tlet value = range.get(\"value\");\n\t\t\t\t\tif (value != null) {\n\t\t\t\t\t\tselectionMin = Math.min(selectionMin, value);\n\t\t\t\t\t\tselectionMax = Math.max(selectionMax, value);\n\t\t\t\t\t}\n\t\t\t\t\tvalue = range.get(\"endValue\");\n\t\t\t\t\tif (value != null) {\n\t\t\t\t\t\tselectionMin = Math.min(selectionMin, value);\n\t\t\t\t\t\tselectionMax = Math.max(selectionMax, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif (selectionMin > selectionMax) {\n\t\t\t\t[selectionMin, selectionMax] = [selectionMax, selectionMin]\n\t\t\t}\n\n\t\t\tif ($type.isNumber(minDefined)) {\n\t\t\t\tif (strictMinMax) {\n\t\t\t\t\tselectionMin = minDefined;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tselectionMin = min;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (strictMinMax) {\n\t\t\t\tif ($type.isNumber(this._minReal)) {\n\t\t\t\t\tselectionMin = this._minReal;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($type.isNumber(maxDefined)) {\n\t\t\t\tif (strictMinMax) {\n\t\t\t\t\tselectionMax = maxDefined;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tselectionMax = max;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (strictMinMax) {\n\t\t\t\tif ($type.isNumber(this._maxReal)) {\n\t\t\t\t\tselectionMax = this._maxReal;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (selectionMin === selectionMax) {\n\t\t\t\tselectionMin -= this._deltaMinMax;\n\t\t\t\tselectionMax += this._deltaMinMax;\n\n\t\t\t\tlet minMaxStep2 = this._adjustMinMax(selectionMin, selectionMax, gridCount, strictMinMax);\n\t\t\t\tselectionMin = minMaxStep2.min;\n\t\t\t\tselectionMax = minMaxStep2.max;\n\t\t\t}\n\n\t\t\tlet minMaxStep: IMinMaxStep = this._adjustMinMax(selectionMin, selectionMax, gridCount);\n\n\t\t\tselectionMin = minMaxStep.min;\n\t\t\tselectionMax = minMaxStep.max;\n\n\t\t\tselectionMin -= (selectionMax - selectionMin) * extraMin;\n\t\t\tselectionMax += (selectionMax - selectionMin) * extraMax;\n\n\t\t\tselectionMin = $math.fitToRange(selectionMin, min, max);\n\t\t\tselectionMax = $math.fitToRange(selectionMax, min, max);\n\n\t\t\t// do it for the second time !important\t\t\t\n\t\t\tminMaxStep = this._adjustMinMax(selectionMin, selectionMax, gridCount, true);\n\n\t\t\tif (!strictMinMax) {\n\t\t\t\tselectionMin = minMaxStep.min;\n\t\t\t\tselectionMax = minMaxStep.max;\n\t\t\t}\n\n\t\t\tconst syncWithAxis = this.get(\"syncWithAxis\");\n\t\t\tif (syncWithAxis) {\n\t\t\t\tminMaxStep = this._syncAxes(selectionMin, selectionMax, minMaxStep.step, syncWithAxis.getPrivate(\"selectionMinFinal\", syncWithAxis.getPrivate(\"minFinal\", 0)), syncWithAxis.getPrivate(\"selectionMaxFinal\", syncWithAxis.getPrivate(\"maxFinal\", 1)), syncWithAxis.getPrivate(\"selectionStepFinal\", syncWithAxis.getPrivate(\"step\", 1)));\n\n\t\t\t\tselectionMin = minMaxStep.min;\n\t\t\t\tselectionMax = minMaxStep.max;\n\t\t\t}\n\n\t\t\tif (strictMinMax) {\n\t\t\t\tif ($type.isNumber(minDefined)) {\n\t\t\t\t\tselectionMin = Math.max(selectionMin, minDefined);\n\t\t\t\t}\n\t\t\t\tif ($type.isNumber(maxDefined)) {\n\t\t\t\t\tselectionMax = Math.min(selectionMax, maxDefined);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet start = this.valueToFinalPosition(selectionMin);\n\t\t\tlet end = this.valueToFinalPosition(selectionMax);\n\n\t\t\tthis.setPrivateRaw(\"selectionMinFinal\", selectionMin);\n\t\t\tthis.setPrivateRaw(\"selectionMaxFinal\", selectionMax);\n\t\t\tthis.setPrivateRaw(\"selectionStepFinal\", minMaxStep.step);\n\n\t\t\tthis.zoom(start, end);\n\t\t}\n\t}\n\n\n\tprotected _getMinMax() {\n\t\tlet minDefined = this.get(\"min\");\n\t\tlet maxDefined = this.get(\"max\");\n\n\t\tlet min = Infinity;\n\t\tlet max = -Infinity;\n\n\t\tlet extraMin = this.get(\"extraMin\", 0);\n\t\tlet extraMax = this.get(\"extraMax\", 0);\n\t\tlet minDiff = Infinity;\n\n\t\t$array.each(this.series, (series) => {\n\t\t\tif (!series.get(\"ignoreMinMax\")) {\n\t\t\t\tlet seriesMin: number | undefined;\n\t\t\t\tlet seriesMax: number | undefined;\n\t\t\t\tif (series.get(\"xAxis\") === this) {\n\t\t\t\t\tseriesMin = series.getPrivate(\"minX\");\n\t\t\t\t\tseriesMax = series.getPrivate(\"maxX\");\n\t\t\t\t}\n\t\t\t\telse if (series.get(\"yAxis\") === this) {\n\t\t\t\t\tseriesMin = series.getPrivate(\"minY\");\n\t\t\t\t\tseriesMax = series.getPrivate(\"maxY\");\n\t\t\t\t}\n\n\t\t\t\tif ($type.isNumber(seriesMin) && $type.isNumber(seriesMax)) {\n\t\t\t\t\tmin = Math.min(min, seriesMin);\n\t\t\t\t\tmax = Math.max(max, seriesMax);\n\n\t\t\t\t\tlet diff = seriesMax - seriesMin;\n\n\t\t\t\t\tif (diff <= 0) {\n\t\t\t\t\t\tdiff = Math.abs(seriesMax / 100);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (diff < minDiff) {\n\t\t\t\t\t\tminDiff = diff;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tthis.axisRanges.each((range) => {\n\t\t\tif (range.get(\"affectsMinMax\")) {\n\t\t\t\tlet value = range.get(\"value\");\n\t\t\t\tif (value != null) {\n\t\t\t\t\tmin = Math.min(min, value);\n\t\t\t\t\tmax = Math.max(max, value);\n\t\t\t\t}\n\t\t\t\tvalue = range.get(\"endValue\");\n\t\t\t\tif (value != null) {\n\t\t\t\t\tmin = Math.min(min, value);\n\t\t\t\t\tmax = Math.max(max, value);\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tif (this.get(\"logarithmic\")) {\n\t\t\tlet treatZeroAs = this.get(\"treatZeroAs\");\n\t\t\tif ($type.isNumber(treatZeroAs)) {\n\t\t\t\tif (min <= 0) {\n\t\t\t\t\tmin = treatZeroAs;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (min <= 0) {\n\t\t\t\tnew Error(\"Logarithmic value axis can not have values <= 0.\");\n\t\t\t}\n\t\t}\n\n\t\tif (min === 0 && max === 0) {\n\t\t\tmax = 0.9;\n\t\t\tmin = -0.9;\n\t\t}\n\n\t\tif ($type.isNumber(minDefined)) {\n\t\t\tmin = minDefined;\n\t\t}\n\t\tif ($type.isNumber(maxDefined)) {\n\t\t\tmax = maxDefined;\n\t\t}\n\n\t\t// meaning no min/max found on series/ranges and no min/max was defined\n\t\tif (min === Infinity || max === -Infinity) {\n\t\t\treturn;\n\t\t}\n\n\t\t// adapter\n\t\tlet minAdapted = this.adapters.fold(\"min\", min);\n\t\tlet maxAdapted = this.adapters.fold(\"max\", max);\n\n\t\tif ($type.isNumber(minAdapted)) {\n\t\t\tmin = minAdapted;\n\t\t}\n\n\t\tif ($type.isNumber(maxAdapted)) {\n\t\t\tmax = maxAdapted;\n\t\t}\n\n\t\t// DateAxis does some magic here\n\t\tmin = this._fixMin(min);\n\t\tmax = this._fixMax(max);\n\n\t\t// this happens if starLocation and endLocation are 0.5 and DateAxis has only one date\n\t\tif (max - min <= 1 / Math.pow(10, 15)) {\n\t\t\tif (max - min !== 0) {\n\t\t\t\tthis._deltaMinMax = (max - min) / 2;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// the number by which we need to raise 10 to get difference\n\t\t\t\tlet exponent: number = Math.log(Math.abs(max)) * Math.LOG10E;\n\n\t\t\t\t// here we find a number which is power of 10 and has the same count of numbers as difference has\n\t\t\t\tlet power = Math.pow(10, Math.floor(exponent));\n\n\t\t\t\t// reduce this number by 10 times\n\t\t\t\tpower = power / 10;\n\n\t\t\t\tthis._deltaMinMax = power;\n\t\t\t}\n\n\t\t\tmin -= this._deltaMinMax;\n\t\t\tmax += this._deltaMinMax;\n\t\t}\n\n\t\t// add extras\n\t\tmin -= (max - min) * extraMin;\n\t\tmax += (max - min) * extraMax;\n\n\t\tthis._minReal = min;\n\t\tthis._maxReal = max;\n\n\t\tlet strict = this.get(\"strictMinMax\");\n\t\tif ($type.isNumber(maxDefined)) {\n\t\t\tstrict = true;\n\t\t}\n\n\t\tlet gridCount = this.get(\"renderer\").gridCount();\n\n\t\tlet minMaxStep: IMinMaxStep = this._adjustMinMax(min, max, gridCount, strict);\n\n\t\tmin = minMaxStep.min;\n\t\tmax = minMaxStep.max;\n\n\t\t// do it for the second time with strict true (importat!)\n\t\tminMaxStep = this._adjustMinMax(min, max, gridCount, true);\n\n\t\tmin = minMaxStep.min;\n\t\tmax = minMaxStep.max;\n\n\t\t// return min max if strict\n\t\tif (this.get(\"strictMinMax\")) {\n\t\t\tif ($type.isNumber(minDefined)) {\n\t\t\t\tmin = minDefined;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmin = this._minReal;\n\t\t\t}\n\n\t\t\tif ($type.isNumber(maxDefined)) {\n\t\t\t\tmax = maxDefined;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmax = this._maxReal;\n\t\t\t}\n\n\t\t\tif (max - min <= 0.00000001) {\n\t\t\t\tmin -= this._deltaMinMax;\n\t\t\t\tmax += this._deltaMinMax;\n\t\t\t}\n\n\t\t\tmin -= (max - min) * extraMin;\n\t\t\tmax += (max - min) * extraMax;\n\t\t}\n\n\t\tminAdapted = this.adapters.fold(\"min\", min);\n\t\tmaxAdapted = this.adapters.fold(\"max\", max);\n\n\t\tif ($type.isNumber(minAdapted)) {\n\t\t\tmin = minAdapted;\n\t\t}\n\n\t\tif ($type.isNumber(maxAdapted)) {\n\t\t\tmax = maxAdapted;\n\t\t}\n\n\t\tif (minDiff == Infinity) {\n\t\t\tminDiff = (max - min)\n\t\t}\n\n\t\tconst syncWithAxis = this.get(\"syncWithAxis\");\n\t\tif (syncWithAxis) {\n\t\t\tminMaxStep = this._syncAxes(min, max, minMaxStep.step, syncWithAxis.getPrivate(\"minFinal\", syncWithAxis.getPrivate(\"min\", 0)), syncWithAxis.getPrivate(\"maxFinal\", syncWithAxis.getPrivate(\"max\", 1)), syncWithAxis.getPrivate(\"step\", 1));\n\t\t\tmin = minMaxStep.min;\n\t\t\tmax = minMaxStep.max;\n\t\t}\n\n\t\tthis.setPrivateRaw(\"maxZoomFactor\", (max - min) / minDiff * this.get(\"maxZoomFactor\", 100));\n\n\t\tif ($type.isNumber(min) && $type.isNumber(max)) {\n\t\t\tif (this.getPrivate(\"minFinal\") !== min || this.getPrivate(\"maxFinal\") !== max) {\n\t\t\t\tthis.setPrivate(\"minFinal\", min);\n\t\t\t\tthis.setPrivate(\"maxFinal\", max);\n\n\t\t\t\tconst duration = this.get(\"interpolationDuration\", 0);\n\t\t\t\tconst easing = this.get(\"interpolationEasing\");\n\n\t\t\t\tthis.animatePrivate({ key: \"min\", to: min, duration, easing });\n\t\t\t\tthis.animatePrivate({ key: \"max\", to: max, duration, easing });\n\t\t\t}\n\t\t}\n\t}\n\n\n\tprotected _adjustMinMax(min: number, max: number, gridCount: number, strictMode?: boolean): IMinMaxStep {\n\t\tconst logarithmic = this.get(\"logarithmic\");\n\t\t// will fail if 0\n\t\tif (gridCount <= 1) {\n\t\t\tgridCount = 1;\n\t\t}\n\n\t\tgridCount = Math.round(gridCount);\n\n\t\tlet initialMin: number = min;\n\t\tlet initialMax: number = max;\n\n\t\tlet difference = max - min;\n\n\t\t// in case min and max is the same, use max\n\t\tif (difference === 0) {\n\t\t\tdifference = Math.abs(max);\n\t\t}\n\n\t\t// the number by which we need to raise 10 to get difference\n\t\tlet exponent: number = Math.log(Math.abs(difference)) * Math.LOG10E;\n\n\t\t// here we find a number which is power of 10 and has the same count of numbers as difference has\n\t\tlet power = Math.pow(10, Math.floor(exponent));\n\n\t\t// reduce this number by 10 times\n\t\tpower = power / 10;\n\n\t\tlet extra: number = power;\n\t\tif (strictMode) {\n\t\t\textra = 0;\n\t\t}\n\n\t\tif (!logarithmic) {\n\t\t\t// round down min\n\t\t\tif (strictMode) {\n\t\t\t\tmin = Math.floor(min / power) * power;\n\t\t\t\t// round up max\n\t\t\t\tmax = Math.ceil(max / power) * power;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmin = Math.ceil(min / power) * power - extra;\n\t\t\t\t// round up max\n\t\t\t\tmax = Math.floor(max / power) * power + extra;\n\t\t\t}\n\n\t\t\t// don't let min go below 0 if real min is >= 0\n\t\t\tif (min < 0 && initialMin >= 0) {\n\t\t\t\tmin = 0;\n\t\t\t}\n\t\t\t// don't let max go above 0 if real max is <= 0\n\t\t\tif (max > 0 && initialMax <= 0) {\n\t\t\t\tmax = 0;\n\t\t\t}\n\t\t}\n\t\t// logarithmic\n\t\telse {\n\t\t\tif (min <= 0) {\n\t\t\t\t//throw Error(\"Logarithmic value axis can not have values <= 0.\");\n\t\t\t\tmin = this.get(\"baseValue\", 0);\n\t\t\t}\n\n\t\t\tif (min === Infinity) {\n\t\t\t\tmin = 1;\n\t\t\t}\n\n\t\t\tif (max === -Infinity) {\n\t\t\t\tmax = 10;\n\t\t\t}\n\n\t\t\tmin = Math.pow(10, Math.floor(Math.log(Math.abs(min)) * Math.LOG10E));\n\t\t\tmax = Math.pow(10, Math.ceil(Math.log(Math.abs(max)) * Math.LOG10E));\n\n\t\t\tif (this.get(\"strictMinMax\")) {\n\t\t\t\tlet minDefined = this.get(\"min\");\n\t\t\t\tlet maxDefined = this.get(\"max\");\n\t\t\t\tif ($type.isNumber(minDefined) && minDefined > 0) {\n\t\t\t\t\tmin = minDefined;\n\t\t\t\t}\n\t\t\t\tif ($type.isNumber(maxDefined) && maxDefined > 0) {\n\t\t\t\t\tmax = maxDefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\texponent = Math.log(Math.abs(difference)) * Math.LOG10E;\n\t\tpower = Math.pow(10, Math.floor(exponent));\n\t\tpower = power / 100; // used to be 10 in v4, but this caused issue that there could be limited number of grids with even very small minGridDistance\n\n\t\t// approximate difference between two grid lines\n\t\tlet step = Math.ceil((difference / gridCount) / power) * power;\n\t\tlet stepPower = Math.pow(10, Math.floor(Math.log(Math.abs(step)) * Math.LOG10E));\n\n\t\t// the step should divide by 2, 5, and 10.\n\t\tlet stepDivisor: number = Math.ceil(step / stepPower); // number 0 - 10\n\n\n\t\tif (stepDivisor > 5) {\n\t\t\tstepDivisor = 10;\n\t\t}\n\t\telse if (stepDivisor <= 5 && stepDivisor > 2) {\n\t\t\tstepDivisor = 5;\n\t\t}\n\n\t\t// now get real step\n\t\tstep = Math.ceil(step / (stepPower * stepDivisor)) * stepPower * stepDivisor;\n\n\t\tlet maxPrecision = this.get(\"maxPrecision\");\n\t\tif ($type.isNumber(maxPrecision)) {\n\t\t\tlet ceiledStep = $math.ceil(step, maxPrecision);\n\t\t\tif (maxPrecision < Number.MAX_VALUE && step !== ceiledStep) {\n\t\t\t\tstep = ceiledStep;\n\t\t\t}\n\t\t}\n\n\t\tlet decCount: number = 0;\n\t\t// in case numbers are smaller than 1\n\t\tif (stepPower < 1) {\n\t\t\t// exponent is less then 1 too. Count decimals of exponent\n\t\t\tdecCount = Math.round(Math.abs(Math.log(Math.abs(stepPower)) * Math.LOG10E)) + 1;\n\t\t\t// round step\n\t\t\tstep = $math.round(step, decCount);\n\t\t}\n\t\tif (!logarithmic) {\n\t\t\t// final min and max\n\t\t\tlet minCount = Math.floor(min / step);\n\n\t\t\tmin = $math.round(step * minCount, decCount);\n\n\t\t\tlet maxCount: number;\n\n\t\t\tif (!strictMode) {\n\t\t\t\tmaxCount = Math.ceil(max / step);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmaxCount = Math.floor(max / step);\n\t\t\t}\n\n\t\t\tif (maxCount === minCount) {\n\t\t\t\tmaxCount++;\n\t\t\t}\n\n\t\t\tmax = $math.round(step * maxCount, decCount);\n\n\t\t\tif (max < initialMax) {\n\t\t\t\tmax = max + step;\n\t\t\t}\n\n\t\t\tif (min > initialMin) {\n\t\t\t\tmin = min - step;\n\t\t\t}\n\t\t}\n\n\t\tstep = this.fixSmallStep(step);\n\n\t\treturn { min: min, max: max, step: step };\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 getTooltipText(position: number): string | undefined {\n\t\tconst numberFormat = this.get(\"tooltipNumberFormat\", this.get(\"numberFormat\"));\n\t\tconst formatter = this.getNumberFormatter();\n\t\tconst extraDecimals = this.get(\"extraTooltipPrecision\", 0);\n\t\tconst decimals = this.getPrivate(\"stepDecimalPlaces\", 0) + extraDecimals;\n\t\tconst value = $math.round(this.positionToValue(position), decimals);\n\n\t\tif (numberFormat) {\n\t\t\treturn formatter.format(value, numberFormat);\n\t\t}\n\t\telse {\n\t\t\treturn formatter.format(value, undefined, decimals);\n\t\t\t//label.set(\"text\", this.getNumberFormatter().format(value, undefined, this.getPrivate(\"stepDecimalPlaces\")));\n\t\t}\n\n\t\t// //@todo number formatter + tag\n\t\t// return $math.round(this.positionToValue(position), this.getPrivate(\"stepDecimalPlaces\")).toString();\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 getSeriesItem(series: XYSeries, position: number): DataItem<IXYSeriesDataItem> | undefined {\n\t\tlet fieldName = <any>(this.getPrivate(\"name\")! + this.get(\"renderer\").getPrivate(\"letter\")!);\n\t\tlet value = this.positionToValue(position);\n\n\t\tlet index: number | undefined = undefined;\n\t\tlet oldDiff: number;\n\t\t$array.each(series.dataItems, (dataItem, i) => {\n\t\t\tconst diff = Math.abs(dataItem.get(fieldName) - value);\n\t\t\tif (index === undefined || diff < oldDiff) {\n\t\t\t\tindex = i;\n\t\t\t\toldDiff = diff;\n\t\t\t}\n\t\t});\n\n\t\tif (index != null) {\n\t\t\treturn series.dataItems[index];\n\t\t}\n\t}\n\n\t/**\n\t * Zooms the axis to specific `start` and `end` values.\n\t *\n\t * Optional `duration` specifies duration of zoom animation in milliseconds.\n\t *\n\t * @param start Start value\n\t * @param end End value\n\t * @param duration Duration in milliseconds\n\t */\n\tpublic zoomToValues(start: number, end: number, duration?: number) {\n\t\tconst min = this.getPrivate(\"minFinal\", 0);\n\t\tconst max = this.getPrivate(\"maxFinal\", 0);\n\t\tif (this.getPrivate(\"min\") != null && this.getPrivate(\"max\") != null) {\n\t\t\tthis.zoom((start - min) / (max - min), (end - min) / (max - min), duration);\n\t\t}\n\t}\n\n\n\n\t/**\n\t * Syncs with a target axis.\n\t *\n\t * @param min Min\n\t * @param max Max\n\t * @param step Step\n\t */\n\tprotected _syncAxes(min: number, max: number, step: number, syncMin: number, syncMax: number, syncStep: number) {\n\t\tlet axis = this.get(\"syncWithAxis\");\n\t\tif (axis) {\n\t\t\tlet count: number = Math.round(syncMax - syncMin) / syncStep;\n\t\t\tlet currentCount = Math.round((max - min) / step);\n\n\t\t\tlet gridCount = this.get(\"renderer\").gridCount();\n\n\t\t\tif ($type.isNumber(count) && $type.isNumber(currentCount)) {\n\t\t\t\tlet synced = false;\n\t\t\t\tlet c = 0\n\t\t\t\tlet diff = (max - min) * 0.01;\n\t\t\t\tlet omin = min;\n\t\t\t\tlet omax = max;\n\t\t\t\tlet ostep = step;\n\n\t\t\t\twhile (synced != true) {\n\t\t\t\t\tsynced = this._checkSync(omin, omax, ostep, count);\n\t\t\t\t\tc++;\n\t\t\t\t\tif (c > 500) {\n\t\t\t\t\t\tsynced = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (!synced) {\n\t\t\t\t\t\tif (c / 3 == Math.round(c / 3)) {\n\t\t\t\t\t\t\tomin = min - diff * c;\n\t\t\t\t\t\t\tif (min >= 0 && omin < 0) {\n\t\t\t\t\t\t\t\tomin = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tomax = max + diff * c;\n\t\t\t\t\t\t\tif (omax <= 0 && omax > 0) {\n\t\t\t\t\t\t\t\tomax = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet minMaxStep = this._adjustMinMax(omin, omax, gridCount, true);\n\t\t\t\t\t\tomin = minMaxStep.min;\n\t\t\t\t\t\tomax = minMaxStep.max;\n\t\t\t\t\t\tostep = minMaxStep.step;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tmin = omin;\n\t\t\t\t\t\tmax = omax;\n\t\t\t\t\t\tstep = ostep;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn { min: min, max: max, step: step };\n\t}\n\n\t/**\n\t * Returns `true` if axis needs to be resunced with some other axis.\n\t */\n\tprotected _checkSync(min: number, max: number, step: number, count: number): boolean {\n\t\tlet currentCount = (max - min) / step;\n\t\tfor (let i = 1; i < count; i++) {\n\t\t\tif ($math.round(currentCount / i, 1) == count || currentCount * i == count) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
@@ -67,6 +67,8 @@ export declare class LineSeries extends XYSeries {
67
67
  protected _endIndex: number;
68
68
  protected _strokeGenerator: import("d3-shape").Line<[number, number]>;
69
69
  protected _fillGenerator: import("d3-shape").Area<[number, number]>;
70
+ protected _legendStroke?: Graphics;
71
+ protected _legendFill?: Graphics;
70
72
  protected _afterNew(): void;
71
73
  /**
72
74
  * @ignore
@@ -1 +1 @@
1
- {"version":3,"file":"LineSeries.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/series/LineSeries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LineSeries.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/series/LineSeries.ts"],"names":[],"mappings":"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"}