@amcharts/amcharts5 5.13.5 → 5.14.0

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 (685) hide show
  1. package/.internal/charts/funnel/FunnelSeries.d.ts +1 -1
  2. package/.internal/charts/funnel/FunnelSeries.d.ts.map +1 -1
  3. package/.internal/charts/funnel/FunnelSeries.js.map +1 -1
  4. package/.internal/charts/funnel/FunnelSlice.d.ts +1 -1
  5. package/.internal/charts/funnel/FunnelSlice.d.ts.map +1 -1
  6. package/.internal/charts/funnel/FunnelSlice.js.map +1 -1
  7. package/.internal/charts/funnel/PyramidSeries.d.ts.map +1 -1
  8. package/.internal/charts/funnel/PyramidSeries.js.map +1 -1
  9. package/.internal/charts/funnel/SlicedChart.d.ts +1 -1
  10. package/.internal/charts/funnel/SlicedChart.d.ts.map +1 -1
  11. package/.internal/charts/funnel/SlicedChart.js.map +1 -1
  12. package/.internal/charts/gantt/Gantt.d.ts +216 -0
  13. package/.internal/charts/gantt/Gantt.d.ts.map +1 -0
  14. package/.internal/charts/gantt/Gantt.js +772 -0
  15. package/.internal/charts/gantt/Gantt.js.map +1 -0
  16. package/.internal/charts/gantt/GanttCategoryAxis.d.ts +287 -0
  17. package/.internal/charts/gantt/GanttCategoryAxis.d.ts.map +1 -0
  18. package/.internal/charts/gantt/GanttCategoryAxis.js +1238 -0
  19. package/.internal/charts/gantt/GanttCategoryAxis.js.map +1 -0
  20. package/.internal/charts/gantt/GanttCategoryAxisRenderer.d.ts +98 -0
  21. package/.internal/charts/gantt/GanttCategoryAxisRenderer.d.ts.map +1 -0
  22. package/.internal/charts/gantt/GanttCategoryAxisRenderer.js +270 -0
  23. package/.internal/charts/gantt/GanttCategoryAxisRenderer.js.map +1 -0
  24. package/.internal/charts/gantt/GanttDateAxis.d.ts +36 -0
  25. package/.internal/charts/gantt/GanttDateAxis.d.ts.map +1 -0
  26. package/.internal/charts/gantt/GanttDateAxis.js +35 -0
  27. package/.internal/charts/gantt/GanttDateAxis.js.map +1 -0
  28. package/.internal/charts/gantt/GanttDateAxisRenderer.d.ts +19 -0
  29. package/.internal/charts/gantt/GanttDateAxisRenderer.d.ts.map +1 -0
  30. package/.internal/charts/gantt/GanttDateAxisRenderer.js +23 -0
  31. package/.internal/charts/gantt/GanttDateAxisRenderer.js.map +1 -0
  32. package/.internal/charts/gantt/GanttDefaultTheme.d.ts +8 -0
  33. package/.internal/charts/gantt/GanttDefaultTheme.d.ts.map +1 -0
  34. package/.internal/charts/gantt/GanttDefaultTheme.js +756 -0
  35. package/.internal/charts/gantt/GanttDefaultTheme.js.map +1 -0
  36. package/.internal/charts/gantt/GanttSeries.d.ts +348 -0
  37. package/.internal/charts/gantt/GanttSeries.d.ts.map +1 -0
  38. package/.internal/charts/gantt/GanttSeries.js +1524 -0
  39. package/.internal/charts/gantt/GanttSeries.js.map +1 -0
  40. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  41. package/.internal/charts/hierarchy/HierarchyDefaultTheme.js.map +1 -1
  42. package/.internal/charts/hierarchy/HierarchyLink.d.ts +1 -1
  43. package/.internal/charts/hierarchy/HierarchyLink.d.ts.map +1 -1
  44. package/.internal/charts/hierarchy/HierarchyLink.js.map +1 -1
  45. package/.internal/charts/hierarchy/LinkedHierarchy.d.ts +2 -2
  46. package/.internal/charts/hierarchy/LinkedHierarchy.d.ts.map +1 -1
  47. package/.internal/charts/hierarchy/LinkedHierarchy.js +1 -1
  48. package/.internal/charts/hierarchy/LinkedHierarchy.js.map +1 -1
  49. package/.internal/charts/hierarchy/Pack.d.ts.map +1 -1
  50. package/.internal/charts/hierarchy/Pack.js.map +1 -1
  51. package/.internal/charts/hierarchy/Partition.d.ts.map +1 -1
  52. package/.internal/charts/hierarchy/Partition.js.map +1 -1
  53. package/.internal/charts/hierarchy/Treemap.js.map +1 -1
  54. package/.internal/charts/hierarchy/VoronoiTreemap.d.ts.map +1 -1
  55. package/.internal/charts/hierarchy/VoronoiTreemap.js +3 -3
  56. package/.internal/charts/hierarchy/VoronoiTreemap.js.map +1 -1
  57. package/.internal/charts/map/MapChart.d.ts.map +1 -1
  58. package/.internal/charts/map/MapChart.js +1 -3
  59. package/.internal/charts/map/MapChart.js.map +1 -1
  60. package/.internal/charts/stock/StockChart.d.ts +0 -1
  61. package/.internal/charts/stock/StockChart.d.ts.map +1 -1
  62. package/.internal/charts/stock/StockChart.js +11 -8
  63. package/.internal/charts/stock/StockChart.js.map +1 -1
  64. package/.internal/charts/stock/StockChartDefaultTheme.js +0 -1
  65. package/.internal/charts/stock/StockChartDefaultTheme.js.map +1 -1
  66. package/.internal/charts/stock/drawing/DrawingSeries.d.ts +1 -0
  67. package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
  68. package/.internal/charts/stock/drawing/DrawingSeries.js +18 -10
  69. package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
  70. package/.internal/charts/stock/drawing/HorizontalLineSeries.d.ts.map +1 -1
  71. package/.internal/charts/stock/drawing/HorizontalLineSeries.js +2 -1
  72. package/.internal/charts/stock/drawing/HorizontalLineSeries.js.map +1 -1
  73. package/.internal/charts/stock/drawing/HorizontalRaySeries.d.ts.map +1 -1
  74. package/.internal/charts/stock/drawing/HorizontalRaySeries.js +2 -1
  75. package/.internal/charts/stock/drawing/HorizontalRaySeries.js.map +1 -1
  76. package/.internal/charts/stock/drawing/ParallelChannelSeries.d.ts.map +1 -1
  77. package/.internal/charts/stock/drawing/ParallelChannelSeries.js +2 -1
  78. package/.internal/charts/stock/drawing/ParallelChannelSeries.js.map +1 -1
  79. package/.internal/charts/stock/drawing/PolylineSeries.d.ts.map +1 -1
  80. package/.internal/charts/stock/drawing/PolylineSeries.js +3 -1
  81. package/.internal/charts/stock/drawing/PolylineSeries.js.map +1 -1
  82. package/.internal/charts/stock/drawing/SimpleLineSeries.d.ts.map +1 -1
  83. package/.internal/charts/stock/drawing/SimpleLineSeries.js +2 -1
  84. package/.internal/charts/stock/drawing/SimpleLineSeries.js.map +1 -1
  85. package/.internal/charts/stock/drawing/VerticalLineSeries.d.ts.map +1 -1
  86. package/.internal/charts/stock/drawing/VerticalLineSeries.js +2 -1
  87. package/.internal/charts/stock/drawing/VerticalLineSeries.js.map +1 -1
  88. package/.internal/charts/stock/toolbar/DrawingControl.js +2 -2
  89. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  90. package/.internal/charts/timeline/AxisRendererCurveX.js.map +1 -1
  91. package/.internal/charts/timeline/AxisRendererCurveY.js.map +1 -1
  92. package/.internal/charts/timeline/CurveChart.js.map +1 -1
  93. package/.internal/charts/timeline/CurveColumnSeries.js.map +1 -1
  94. package/.internal/charts/timeline/CurveCursor.js +1 -1
  95. package/.internal/charts/timeline/CurveCursor.js.map +1 -1
  96. package/.internal/charts/timeline/SerpentineChart.d.ts +1 -1
  97. package/.internal/charts/timeline/SerpentineChart.d.ts.map +1 -1
  98. package/.internal/charts/timeline/SerpentineChart.js.map +1 -1
  99. package/.internal/charts/timeline/SpiralChart.d.ts +1 -1
  100. package/.internal/charts/timeline/SpiralChart.d.ts.map +1 -1
  101. package/.internal/charts/timeline/SpiralChart.js.map +1 -1
  102. package/.internal/charts/wordcloud/WordCloud.js.map +1 -1
  103. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  104. package/.internal/charts/xy/XYChart.js +16 -8
  105. package/.internal/charts/xy/XYChart.js.map +1 -1
  106. package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
  107. package/.internal/charts/xy/XYChartDefaultTheme.js +6 -3
  108. package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
  109. package/.internal/charts/xy/axes/Axis.d.ts +17 -1
  110. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  111. package/.internal/charts/xy/axes/Axis.js +46 -26
  112. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  113. package/.internal/charts/xy/axes/AxisBullet.d.ts +1 -1
  114. package/.internal/charts/xy/axes/AxisBullet.d.ts.map +1 -1
  115. package/.internal/charts/xy/axes/AxisBullet.js.map +1 -1
  116. package/.internal/charts/xy/axes/AxisLabel.d.ts +1 -1
  117. package/.internal/charts/xy/axes/AxisLabel.d.ts.map +1 -1
  118. package/.internal/charts/xy/axes/AxisLabel.js.map +1 -1
  119. package/.internal/charts/xy/axes/AxisLabelRadial.d.ts +1 -1
  120. package/.internal/charts/xy/axes/AxisLabelRadial.d.ts.map +1 -1
  121. package/.internal/charts/xy/axes/AxisLabelRadial.js.map +1 -1
  122. package/.internal/charts/xy/axes/AxisRenderer.d.ts +5 -5
  123. package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
  124. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  125. package/.internal/charts/xy/axes/AxisRendererX.d.ts +1 -1
  126. package/.internal/charts/xy/axes/AxisRendererX.d.ts.map +1 -1
  127. package/.internal/charts/xy/axes/AxisRendererX.js +9 -5
  128. package/.internal/charts/xy/axes/AxisRendererX.js.map +1 -1
  129. package/.internal/charts/xy/axes/AxisRendererY.d.ts +1 -1
  130. package/.internal/charts/xy/axes/AxisRendererY.d.ts.map +1 -1
  131. package/.internal/charts/xy/axes/AxisRendererY.js +9 -5
  132. package/.internal/charts/xy/axes/AxisRendererY.js.map +1 -1
  133. package/.internal/charts/xy/axes/CategoryAxis.d.ts +34 -3
  134. package/.internal/charts/xy/axes/CategoryAxis.d.ts.map +1 -1
  135. package/.internal/charts/xy/axes/CategoryAxis.js +243 -40
  136. package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
  137. package/.internal/charts/xy/axes/CategoryDateAxis.d.ts +1 -1
  138. package/.internal/charts/xy/axes/CategoryDateAxis.d.ts.map +1 -1
  139. package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
  140. package/.internal/charts/xy/axes/DateAxis.d.ts +16 -2
  141. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  142. package/.internal/charts/xy/axes/DateAxis.js +20 -5
  143. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  144. package/.internal/charts/xy/axes/EditableAxisLabel.d.ts +21 -0
  145. package/.internal/charts/xy/axes/EditableAxisLabel.d.ts.map +1 -0
  146. package/.internal/charts/xy/axes/EditableAxisLabel.js +31 -0
  147. package/.internal/charts/xy/axes/EditableAxisLabel.js.map +1 -0
  148. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts +2 -2
  149. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  150. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  151. package/.internal/charts/xy/axes/ValueAxis.d.ts +2 -2
  152. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  153. package/.internal/charts/xy/axes/ValueAxis.js +4 -3
  154. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  155. package/.internal/charts/xy/series/BaseColumnSeries.d.ts +5 -1
  156. package/.internal/charts/xy/series/BaseColumnSeries.d.ts.map +1 -1
  157. package/.internal/charts/xy/series/BaseColumnSeries.js +60 -32
  158. package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
  159. package/.internal/charts/xy/series/CandlestickSeries.d.ts +2 -1
  160. package/.internal/charts/xy/series/CandlestickSeries.d.ts.map +1 -1
  161. package/.internal/charts/xy/series/CandlestickSeries.js +99 -44
  162. package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
  163. package/.internal/charts/xy/series/ColumnSeries.d.ts +39 -0
  164. package/.internal/charts/xy/series/ColumnSeries.d.ts.map +1 -1
  165. package/.internal/charts/xy/series/ColumnSeries.js +77 -1
  166. package/.internal/charts/xy/series/ColumnSeries.js.map +1 -1
  167. package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
  168. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  169. package/.internal/charts/xy/series/OHLC.d.ts +6 -0
  170. package/.internal/charts/xy/series/OHLC.d.ts.map +1 -1
  171. package/.internal/charts/xy/series/OHLC.js +6 -0
  172. package/.internal/charts/xy/series/OHLC.js.map +1 -1
  173. package/.internal/charts/xy/series/SmoothedXLineSeries.d.ts.map +1 -1
  174. package/.internal/charts/xy/series/SmoothedXLineSeries.js.map +1 -1
  175. package/.internal/charts/xy/series/SmoothedXYLineSeries.d.ts.map +1 -1
  176. package/.internal/charts/xy/series/SmoothedXYLineSeries.js.map +1 -1
  177. package/.internal/charts/xy/series/SmoothedYLineSeries.d.ts.map +1 -1
  178. package/.internal/charts/xy/series/SmoothedYLineSeries.js.map +1 -1
  179. package/.internal/charts/xy/series/StepLineSeries.d.ts +8 -2
  180. package/.internal/charts/xy/series/StepLineSeries.d.ts.map +1 -1
  181. package/.internal/charts/xy/series/StepLineSeries.js +6 -0
  182. package/.internal/charts/xy/series/StepLineSeries.js.map +1 -1
  183. package/.internal/charts/xy/series/XYSeries.d.ts +1 -1
  184. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  185. package/.internal/charts/xy/series/XYSeries.js +4 -1
  186. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  187. package/.internal/core/Classes.d.ts +28 -0
  188. package/.internal/core/Classes.d.ts.map +1 -1
  189. package/.internal/core/Classes.js.map +1 -1
  190. package/.internal/core/Registry.js +1 -1
  191. package/.internal/core/Registry.js.map +1 -1
  192. package/.internal/core/Root.d.ts +8 -0
  193. package/.internal/core/Root.d.ts.map +1 -1
  194. package/.internal/core/Root.js +26 -19
  195. package/.internal/core/Root.js.map +1 -1
  196. package/.internal/core/render/Button.d.ts +4 -1
  197. package/.internal/core/render/Button.d.ts.map +1 -1
  198. package/.internal/core/render/Button.js.map +1 -1
  199. package/.internal/core/render/Component.d.ts +8 -0
  200. package/.internal/core/render/Component.d.ts.map +1 -1
  201. package/.internal/core/render/Component.js +17 -0
  202. package/.internal/core/render/Component.js.map +1 -1
  203. package/.internal/core/render/ConfirmButton.d.ts +30 -0
  204. package/.internal/core/render/ConfirmButton.d.ts.map +1 -0
  205. package/.internal/core/render/ConfirmButton.js +84 -0
  206. package/.internal/core/render/ConfirmButton.js.map +1 -0
  207. package/.internal/core/render/Container.d.ts +6 -0
  208. package/.internal/core/render/Container.d.ts.map +1 -1
  209. package/.internal/core/render/Container.js +49 -2
  210. package/.internal/core/render/Container.js.map +1 -1
  211. package/.internal/core/render/EditableLabel.d.ts.map +1 -1
  212. package/.internal/core/render/EditableLabel.js +6 -6
  213. package/.internal/core/render/EditableLabel.js.map +1 -1
  214. package/.internal/core/render/HeatLegend.d.ts +14 -0
  215. package/.internal/core/render/HeatLegend.d.ts.map +1 -1
  216. package/.internal/core/render/HeatLegend.js +16 -3
  217. package/.internal/core/render/HeatLegend.js.map +1 -1
  218. package/.internal/core/render/Link.d.ts +28 -0
  219. package/.internal/core/render/Link.d.ts.map +1 -0
  220. package/.internal/core/render/Link.js +90 -0
  221. package/.internal/core/render/Link.js.map +1 -0
  222. package/.internal/core/render/MonotoneXTension.d.ts.map +1 -1
  223. package/.internal/core/render/MonotoneXTension.js.map +1 -1
  224. package/.internal/core/render/MonotoneYTension.d.ts.map +1 -1
  225. package/.internal/core/render/MonotoneYTension.js.map +1 -1
  226. package/.internal/core/render/NumericStepper.d.ts +27 -0
  227. package/.internal/core/render/NumericStepper.d.ts.map +1 -0
  228. package/.internal/core/render/NumericStepper.js +117 -0
  229. package/.internal/core/render/NumericStepper.js.map +1 -0
  230. package/.internal/core/render/OrthogonalLine.d.ts +33 -0
  231. package/.internal/core/render/OrthogonalLine.d.ts.map +1 -0
  232. package/.internal/core/render/OrthogonalLine.js +97 -0
  233. package/.internal/core/render/OrthogonalLine.js.map +1 -0
  234. package/.internal/core/render/ProgressPie.d.ts +32 -0
  235. package/.internal/core/render/ProgressPie.d.ts.map +1 -0
  236. package/.internal/core/render/ProgressPie.js +89 -0
  237. package/.internal/core/render/ProgressPie.js.map +1 -0
  238. package/.internal/core/render/Series.d.ts +0 -7
  239. package/.internal/core/render/Series.d.ts.map +1 -1
  240. package/.internal/core/render/Series.js +24 -27
  241. package/.internal/core/render/Series.js.map +1 -1
  242. package/.internal/core/render/Sprite.d.ts +3 -2
  243. package/.internal/core/render/Sprite.d.ts.map +1 -1
  244. package/.internal/core/render/Sprite.js +40 -30
  245. package/.internal/core/render/Sprite.js.map +1 -1
  246. package/.internal/core/render/patterns/LinePattern.d.ts +8 -0
  247. package/.internal/core/render/patterns/LinePattern.d.ts.map +1 -1
  248. package/.internal/core/render/patterns/LinePattern.js +32 -1
  249. package/.internal/core/render/patterns/LinePattern.js.map +1 -1
  250. package/.internal/core/util/DurationFormatter.js +1 -1
  251. package/.internal/core/util/DurationFormatter.js.map +1 -1
  252. package/.internal/core/util/Entity.d.ts.map +1 -1
  253. package/.internal/core/util/Entity.js.map +1 -1
  254. package/.internal/core/util/EventDispatcher.d.ts +32 -3
  255. package/.internal/core/util/EventDispatcher.d.ts.map +1 -1
  256. package/.internal/core/util/EventDispatcher.js +51 -5
  257. package/.internal/core/util/EventDispatcher.js.map +1 -1
  258. package/.internal/core/util/Language.d.ts +2 -0
  259. package/.internal/core/util/Language.d.ts.map +1 -1
  260. package/.internal/core/util/Language.js.map +1 -1
  261. package/.internal/core/util/Time.d.ts.map +1 -1
  262. package/.internal/core/util/Time.js +4 -1
  263. package/.internal/core/util/Time.js.map +1 -1
  264. package/.internal/plugins/colorPicker/ColorPicker.d.ts +151 -0
  265. package/.internal/plugins/colorPicker/ColorPicker.d.ts.map +1 -0
  266. package/.internal/plugins/colorPicker/ColorPicker.js +665 -0
  267. package/.internal/plugins/colorPicker/ColorPicker.js.map +1 -0
  268. package/.internal/plugins/colorPicker/ColorPickerButton.d.ts +28 -0
  269. package/.internal/plugins/colorPicker/ColorPickerButton.d.ts.map +1 -0
  270. package/.internal/plugins/colorPicker/ColorPickerButton.js +87 -0
  271. package/.internal/plugins/colorPicker/ColorPickerButton.js.map +1 -0
  272. package/.internal/plugins/colorPicker/ColorPickerDefaultTheme.d.ts +8 -0
  273. package/.internal/plugins/colorPicker/ColorPickerDefaultTheme.d.ts.map +1 -0
  274. package/.internal/plugins/colorPicker/ColorPickerDefaultTheme.js +248 -0
  275. package/.internal/plugins/colorPicker/ColorPickerDefaultTheme.js.map +1 -0
  276. package/.internal/plugins/json/Classes-script.d.ts +28 -0
  277. package/.internal/plugins/json/Classes-script.d.ts.map +1 -1
  278. package/.internal/plugins/json/Classes-script.js +14 -0
  279. package/.internal/plugins/json/Classes-script.js.map +1 -1
  280. package/.internal/plugins/json/Classes.d.ts +28 -0
  281. package/.internal/plugins/json/Classes.d.ts.map +1 -1
  282. package/.internal/plugins/json/Classes.js +14 -0
  283. package/.internal/plugins/json/Classes.js.map +1 -1
  284. package/.internal/themes/DefaultTheme.d.ts.map +1 -1
  285. package/.internal/themes/DefaultTheme.js +227 -2
  286. package/.internal/themes/DefaultTheme.js.map +1 -1
  287. package/CHANGELOG.md +34 -0
  288. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  289. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  290. package/examples/javascript/flow-chord/package.json +1 -1
  291. package/examples/javascript/flow-chord-directed/package.json +1 -1
  292. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  293. package/examples/javascript/flow-sankey/package.json +1 -1
  294. package/examples/javascript/gantt/README.md +6 -0
  295. package/examples/javascript/gantt/index.css +11 -0
  296. package/examples/javascript/gantt/index.html +12 -0
  297. package/examples/javascript/gantt/index.js +233 -0
  298. package/examples/javascript/gantt/package.json +16 -0
  299. package/examples/javascript/gantt/webpack.config.js +38 -0
  300. package/examples/javascript/gantt-multilevel/README.md +6 -0
  301. package/examples/javascript/gantt-multilevel/index.css +11 -0
  302. package/examples/javascript/gantt-multilevel/index.html +12 -0
  303. package/examples/javascript/gantt-multilevel/index.js +111 -0
  304. package/examples/javascript/gantt-multilevel/package.json +16 -0
  305. package/examples/javascript/gantt-multilevel/webpack.config.js +38 -0
  306. package/examples/javascript/gantt-simple/README.md +6 -0
  307. package/examples/javascript/gantt-simple/index.css +11 -0
  308. package/examples/javascript/gantt-simple/index.html +12 -0
  309. package/examples/javascript/gantt-simple/index.js +94 -0
  310. package/examples/javascript/gantt-simple/package.json +16 -0
  311. package/examples/javascript/gantt-simple/webpack.config.js +38 -0
  312. package/examples/javascript/gauge/package.json +1 -1
  313. package/examples/javascript/gauge-bands/package.json +1 -1
  314. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  315. package/examples/javascript/hierarchy-pack/package.json +1 -1
  316. package/examples/javascript/hierarchy-partition/package.json +1 -1
  317. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  318. package/examples/javascript/hierarchy-tree/package.json +1 -1
  319. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  320. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  321. package/examples/javascript/jest/package.json +1 -1
  322. package/examples/javascript/json-pie/package.json +1 -1
  323. package/examples/javascript/json-xy/package.json +1 -1
  324. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  325. package/examples/javascript/map-clustered-points/package.json +1 -1
  326. package/examples/javascript/map-day-and-night/package.json +1 -1
  327. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  328. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  329. package/examples/javascript/map-with-bubbles/package.json +1 -1
  330. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  331. package/examples/javascript/misc-40-charts/package.json +1 -1
  332. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  333. package/examples/javascript/pie-chart/package.json +1 -1
  334. package/examples/javascript/pie-donut-chart/package.json +1 -1
  335. package/examples/javascript/pie-variable-radius/package.json +1 -1
  336. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  337. package/examples/javascript/radar-heat-map/package.json +1 -1
  338. package/examples/javascript/radar-line/package.json +1 -1
  339. package/examples/javascript/radar-time-line/package.json +1 -1
  340. package/examples/javascript/sliced-funnel/package.json +1 -1
  341. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  342. package/examples/javascript/sliced-pyramid/package.json +1 -1
  343. package/examples/javascript/stock-chart/index.js +2 -0
  344. package/examples/javascript/stock-chart/package.json +1 -1
  345. package/examples/javascript/stock-chart-comparing-stocks/index.js +2 -0
  346. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  347. package/examples/javascript/stock-chart-data-granularity/index.js +2 -0
  348. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  349. package/examples/javascript/stock-chart-data-grouping/index.js +2 -0
  350. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  351. package/examples/javascript/stock-chart-intraday/index.js +2 -0
  352. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  353. package/examples/javascript/stock-chart-live/index.js +1 -0
  354. package/examples/javascript/stock-chart-live/package.json +1 -1
  355. package/examples/javascript/stock-chart-volume-separate-panel/index.js +2 -0
  356. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  357. package/examples/javascript/timeline-horizontal-serpentine-chart/package.json +1 -1
  358. package/examples/javascript/timeline-linear-process-diagram/package.json +1 -1
  359. package/examples/javascript/timeline-serpentine-chart/package.json +1 -1
  360. package/examples/javascript/timeline-spiral-chart/package.json +1 -1
  361. package/examples/javascript/venn-diagram/package.json +1 -1
  362. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  363. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  364. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  365. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  366. package/examples/javascript/xy-bubble/package.json +1 -1
  367. package/examples/javascript/xy-candlestick/index.js +1 -0
  368. package/examples/javascript/xy-candlestick/package.json +1 -1
  369. package/examples/javascript/xy-clustered-column/package.json +1 -1
  370. package/examples/javascript/xy-column/package.json +1 -1
  371. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  372. package/examples/javascript/xy-data-grouping/package.json +1 -1
  373. package/examples/javascript/xy-draggable-range/package.json +1 -1
  374. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  375. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  376. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  377. package/examples/javascript/xy-line/package.json +1 -1
  378. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  379. package/examples/javascript/xy-live-data/package.json +1 -1
  380. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  381. package/examples/javascript/xy-ohlc/package.json +1 -1
  382. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  383. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  384. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  385. package/examples/javascript/xy-stacked-column/package.json +1 -1
  386. package/examples/javascript/xy-stacked-step/package.json +1 -1
  387. package/examples/javascript/xy-stock/package.json +1 -1
  388. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  389. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  390. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  391. package/examples/typescript/flow-chord/package.json +1 -1
  392. package/examples/typescript/flow-chord-directed/package.json +1 -1
  393. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  394. package/examples/typescript/flow-sankey/package.json +1 -1
  395. package/examples/typescript/gantt/README.md +6 -0
  396. package/examples/typescript/gantt/index.css +11 -0
  397. package/examples/typescript/gantt/index.html +12 -0
  398. package/examples/typescript/gantt/index.ts +233 -0
  399. package/examples/typescript/gantt/package.json +18 -0
  400. package/examples/typescript/gantt/tsconfig.json +12 -0
  401. package/examples/typescript/gantt/webpack.config.js +45 -0
  402. package/examples/typescript/gantt-multilevel/README.md +6 -0
  403. package/examples/typescript/gantt-multilevel/index.css +11 -0
  404. package/examples/typescript/gantt-multilevel/index.html +12 -0
  405. package/examples/typescript/gantt-multilevel/index.ts +111 -0
  406. package/examples/typescript/gantt-multilevel/package.json +18 -0
  407. package/examples/typescript/gantt-multilevel/tsconfig.json +12 -0
  408. package/examples/typescript/gantt-multilevel/webpack.config.js +45 -0
  409. package/examples/typescript/gantt-simple/README.md +6 -0
  410. package/examples/typescript/gantt-simple/index.css +11 -0
  411. package/examples/typescript/gantt-simple/index.html +12 -0
  412. package/examples/typescript/gantt-simple/index.ts +94 -0
  413. package/examples/typescript/gantt-simple/package.json +18 -0
  414. package/examples/typescript/gantt-simple/tsconfig.json +12 -0
  415. package/examples/typescript/gantt-simple/webpack.config.js +45 -0
  416. package/examples/typescript/gauge/package.json +1 -1
  417. package/examples/typescript/gauge-bands/package.json +1 -1
  418. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  419. package/examples/typescript/hierarchy-pack/package.json +1 -1
  420. package/examples/typescript/hierarchy-partition/package.json +1 -1
  421. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  422. package/examples/typescript/hierarchy-tree/package.json +1 -1
  423. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  424. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  425. package/examples/typescript/jest/package.json +1 -1
  426. package/examples/typescript/json-pie/package.json +1 -1
  427. package/examples/typescript/json-xy/package.json +1 -1
  428. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  429. package/examples/typescript/map-clustered-points/package.json +1 -1
  430. package/examples/typescript/map-day-and-night/package.json +1 -1
  431. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  432. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  433. package/examples/typescript/map-with-bubbles/package.json +1 -1
  434. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  435. package/examples/typescript/misc-40-charts/package.json +1 -1
  436. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  437. package/examples/typescript/pie-chart/package.json +1 -1
  438. package/examples/typescript/pie-donut-chart/package.json +1 -1
  439. package/examples/typescript/pie-variable-radius/package.json +1 -1
  440. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  441. package/examples/typescript/radar-heat-map/package.json +1 -1
  442. package/examples/typescript/radar-line/package.json +1 -1
  443. package/examples/typescript/radar-time-line/package.json +1 -1
  444. package/examples/typescript/sliced-funnel/package.json +1 -1
  445. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  446. package/examples/typescript/sliced-pyramid/package.json +1 -1
  447. package/examples/typescript/stock-chart/index.ts +2 -0
  448. package/examples/typescript/stock-chart/package.json +1 -1
  449. package/examples/typescript/stock-chart-comparing-stocks/index.ts +2 -0
  450. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  451. package/examples/typescript/stock-chart-data-granularity/index.ts +2 -0
  452. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  453. package/examples/typescript/stock-chart-data-grouping/index.ts +2 -0
  454. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  455. package/examples/typescript/stock-chart-intraday/index.ts +2 -0
  456. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  457. package/examples/typescript/stock-chart-live/index.ts +1 -0
  458. package/examples/typescript/stock-chart-live/package.json +1 -1
  459. package/examples/typescript/stock-chart-volume-separate-panel/index.ts +2 -0
  460. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  461. package/examples/typescript/timeline-horizontal-serpentine-chart/package.json +1 -1
  462. package/examples/typescript/timeline-linear-process-diagram/package.json +1 -1
  463. package/examples/typescript/timeline-serpentine-chart/package.json +1 -1
  464. package/examples/typescript/timeline-spiral-chart/package.json +1 -1
  465. package/examples/typescript/venn-diagram/package.json +1 -1
  466. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  467. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  468. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  469. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  470. package/examples/typescript/xy-bubble/package.json +1 -1
  471. package/examples/typescript/xy-candlestick/index.ts +1 -0
  472. package/examples/typescript/xy-candlestick/package.json +1 -1
  473. package/examples/typescript/xy-clustered-column/package.json +1 -1
  474. package/examples/typescript/xy-column/package.json +1 -1
  475. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  476. package/examples/typescript/xy-data-grouping/package.json +1 -1
  477. package/examples/typescript/xy-draggable-range/package.json +1 -1
  478. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  479. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  480. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  481. package/examples/typescript/xy-line/package.json +1 -1
  482. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  483. package/examples/typescript/xy-live-data/package.json +1 -1
  484. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  485. package/examples/typescript/xy-ohlc/package.json +1 -1
  486. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  487. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  488. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  489. package/examples/typescript/xy-stacked-column/package.json +1 -1
  490. package/examples/typescript/xy-stacked-step/package.json +1 -1
  491. package/examples/typescript/xy-stock/package.json +1 -1
  492. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  493. package/gantt.d.ts +9 -0
  494. package/gantt.d.ts.map +1 -0
  495. package/gantt.js +9 -0
  496. package/gantt.js.map +1 -0
  497. package/index.d.ts +5 -0
  498. package/index.d.ts.map +1 -1
  499. package/index.js +5 -0
  500. package/index.js.map +1 -1
  501. package/locales/ar.d.ts +4 -0
  502. package/locales/ar.d.ts.map +1 -1
  503. package/locales/ar.js +5 -0
  504. package/locales/ar.js.map +1 -1
  505. package/locales/bg_BG.d.ts +2 -0
  506. package/locales/bg_BG.d.ts.map +1 -1
  507. package/locales/bg_BG.js +3 -1
  508. package/locales/bg_BG.js.map +1 -1
  509. package/locales/bs_BA.d.ts +4 -0
  510. package/locales/bs_BA.d.ts.map +1 -1
  511. package/locales/bs_BA.js +5 -0
  512. package/locales/bs_BA.js.map +1 -1
  513. package/locales/ca_ES.d.ts +4 -0
  514. package/locales/ca_ES.d.ts.map +1 -1
  515. package/locales/ca_ES.js +5 -0
  516. package/locales/ca_ES.js.map +1 -1
  517. package/locales/cs_CZ.d.ts +4 -0
  518. package/locales/cs_CZ.d.ts.map +1 -1
  519. package/locales/cs_CZ.js +5 -0
  520. package/locales/cs_CZ.js.map +1 -1
  521. package/locales/da_DK.d.ts +4 -0
  522. package/locales/da_DK.d.ts.map +1 -1
  523. package/locales/da_DK.js +5 -0
  524. package/locales/da_DK.js.map +1 -1
  525. package/locales/de_CH.d.ts +4 -0
  526. package/locales/de_CH.d.ts.map +1 -1
  527. package/locales/de_CH.js +5 -0
  528. package/locales/de_CH.js.map +1 -1
  529. package/locales/de_DE.d.ts +4 -0
  530. package/locales/de_DE.d.ts.map +1 -1
  531. package/locales/de_DE.js +5 -0
  532. package/locales/de_DE.js.map +1 -1
  533. package/locales/el_GR.d.ts +4 -0
  534. package/locales/el_GR.d.ts.map +1 -1
  535. package/locales/el_GR.js +5 -0
  536. package/locales/el_GR.js.map +1 -1
  537. package/locales/en.d.ts +2 -0
  538. package/locales/en.d.ts.map +1 -1
  539. package/locales/en.js +3 -1
  540. package/locales/en.js.map +1 -1
  541. package/locales/en_CA.d.ts +4 -0
  542. package/locales/en_CA.d.ts.map +1 -1
  543. package/locales/en_CA.js +5 -0
  544. package/locales/en_CA.js.map +1 -1
  545. package/locales/en_US.d.ts +4 -0
  546. package/locales/en_US.d.ts.map +1 -1
  547. package/locales/en_US.js +5 -0
  548. package/locales/en_US.js.map +1 -1
  549. package/locales/es_ES.d.ts +4 -0
  550. package/locales/es_ES.d.ts.map +1 -1
  551. package/locales/es_ES.js +6 -1
  552. package/locales/es_ES.js.map +1 -1
  553. package/locales/et_EE.d.ts +4 -0
  554. package/locales/et_EE.d.ts.map +1 -1
  555. package/locales/et_EE.js +5 -0
  556. package/locales/et_EE.js.map +1 -1
  557. package/locales/fi_FI.d.ts +4 -0
  558. package/locales/fi_FI.d.ts.map +1 -1
  559. package/locales/fi_FI.js +5 -0
  560. package/locales/fi_FI.js.map +1 -1
  561. package/locales/fo_FO.d.ts +2 -0
  562. package/locales/fo_FO.d.ts.map +1 -1
  563. package/locales/fo_FO.js +3 -1
  564. package/locales/fo_FO.js.map +1 -1
  565. package/locales/fr_FR.d.ts +4 -0
  566. package/locales/fr_FR.d.ts.map +1 -1
  567. package/locales/fr_FR.js +5 -0
  568. package/locales/fr_FR.js.map +1 -1
  569. package/locales/he_IL.d.ts +4 -0
  570. package/locales/he_IL.d.ts.map +1 -1
  571. package/locales/he_IL.js +5 -0
  572. package/locales/he_IL.js.map +1 -1
  573. package/locales/hi_IN.d.ts +4 -0
  574. package/locales/hi_IN.d.ts.map +1 -1
  575. package/locales/hi_IN.js +5 -0
  576. package/locales/hi_IN.js.map +1 -1
  577. package/locales/hr_HR.d.ts +4 -0
  578. package/locales/hr_HR.d.ts.map +1 -1
  579. package/locales/hr_HR.js +5 -0
  580. package/locales/hr_HR.js.map +1 -1
  581. package/locales/hu_HU.d.ts +4 -0
  582. package/locales/hu_HU.d.ts.map +1 -1
  583. package/locales/hu_HU.js +5 -0
  584. package/locales/hu_HU.js.map +1 -1
  585. package/locales/id_ID.d.ts +4 -0
  586. package/locales/id_ID.d.ts.map +1 -1
  587. package/locales/id_ID.js +5 -0
  588. package/locales/id_ID.js.map +1 -1
  589. package/locales/it_IT.d.ts +4 -0
  590. package/locales/it_IT.d.ts.map +1 -1
  591. package/locales/it_IT.js +5 -0
  592. package/locales/it_IT.js.map +1 -1
  593. package/locales/ja_JP.d.ts +4 -0
  594. package/locales/ja_JP.d.ts.map +1 -1
  595. package/locales/ja_JP.js +5 -0
  596. package/locales/ja_JP.js.map +1 -1
  597. package/locales/ko_KR.d.ts +4 -0
  598. package/locales/ko_KR.d.ts.map +1 -1
  599. package/locales/ko_KR.js +5 -0
  600. package/locales/ko_KR.js.map +1 -1
  601. package/locales/lt_LT.d.ts +4 -0
  602. package/locales/lt_LT.d.ts.map +1 -1
  603. package/locales/lt_LT.js +5 -0
  604. package/locales/lt_LT.js.map +1 -1
  605. package/locales/lv_LV.d.ts +4 -0
  606. package/locales/lv_LV.d.ts.map +1 -1
  607. package/locales/lv_LV.js +5 -0
  608. package/locales/lv_LV.js.map +1 -1
  609. package/locales/nb_NO.d.ts +4 -0
  610. package/locales/nb_NO.d.ts.map +1 -1
  611. package/locales/nb_NO.js +5 -0
  612. package/locales/nb_NO.js.map +1 -1
  613. package/locales/nl_NL.d.ts +4 -0
  614. package/locales/nl_NL.d.ts.map +1 -1
  615. package/locales/nl_NL.js +5 -0
  616. package/locales/nl_NL.js.map +1 -1
  617. package/locales/pl_PL.d.ts +4 -0
  618. package/locales/pl_PL.d.ts.map +1 -1
  619. package/locales/pl_PL.js +5 -0
  620. package/locales/pl_PL.js.map +1 -1
  621. package/locales/pt_BR.d.ts +4 -0
  622. package/locales/pt_BR.d.ts.map +1 -1
  623. package/locales/pt_BR.js +5 -0
  624. package/locales/pt_BR.js.map +1 -1
  625. package/locales/pt_PT.d.ts +4 -0
  626. package/locales/pt_PT.d.ts.map +1 -1
  627. package/locales/pt_PT.js +5 -0
  628. package/locales/pt_PT.js.map +1 -1
  629. package/locales/ro_RO.d.ts +4 -0
  630. package/locales/ro_RO.d.ts.map +1 -1
  631. package/locales/ro_RO.js +5 -0
  632. package/locales/ro_RO.js.map +1 -1
  633. package/locales/ru_RU.d.ts +4 -0
  634. package/locales/ru_RU.d.ts.map +1 -1
  635. package/locales/ru_RU.js +5 -0
  636. package/locales/ru_RU.js.map +1 -1
  637. package/locales/sk_SK.d.ts +4 -0
  638. package/locales/sk_SK.d.ts.map +1 -1
  639. package/locales/sk_SK.js +5 -0
  640. package/locales/sk_SK.js.map +1 -1
  641. package/locales/sl_SL.d.ts +4 -0
  642. package/locales/sl_SL.d.ts.map +1 -1
  643. package/locales/sl_SL.js +5 -0
  644. package/locales/sl_SL.js.map +1 -1
  645. package/locales/sr_RS.d.ts +4 -0
  646. package/locales/sr_RS.d.ts.map +1 -1
  647. package/locales/sr_RS.js +5 -0
  648. package/locales/sr_RS.js.map +1 -1
  649. package/locales/sv_SE.d.ts +4 -0
  650. package/locales/sv_SE.d.ts.map +1 -1
  651. package/locales/sv_SE.js +5 -0
  652. package/locales/sv_SE.js.map +1 -1
  653. package/locales/th_TH.d.ts +4 -0
  654. package/locales/th_TH.d.ts.map +1 -1
  655. package/locales/th_TH.js +5 -0
  656. package/locales/th_TH.js.map +1 -1
  657. package/locales/tr_TR.d.ts +4 -0
  658. package/locales/tr_TR.d.ts.map +1 -1
  659. package/locales/tr_TR.js +5 -0
  660. package/locales/tr_TR.js.map +1 -1
  661. package/locales/uk_UA.d.ts +4 -0
  662. package/locales/uk_UA.d.ts.map +1 -1
  663. package/locales/uk_UA.js +5 -0
  664. package/locales/uk_UA.js.map +1 -1
  665. package/locales/vi_VN.d.ts +4 -0
  666. package/locales/vi_VN.d.ts.map +1 -1
  667. package/locales/vi_VN.js +5 -0
  668. package/locales/vi_VN.js.map +1 -1
  669. package/locales/zh_Hans.d.ts +4 -0
  670. package/locales/zh_Hans.d.ts.map +1 -1
  671. package/locales/zh_Hans.js +5 -0
  672. package/locales/zh_Hans.js.map +1 -1
  673. package/locales/zh_Hant.d.ts +4 -0
  674. package/locales/zh_Hant.d.ts.map +1 -1
  675. package/locales/zh_Hant.js +5 -0
  676. package/locales/zh_Hant.js.map +1 -1
  677. package/package.json +1 -1
  678. package/plugins/colorPicker.d.ts +3 -0
  679. package/plugins/colorPicker.d.ts.map +1 -0
  680. package/plugins/colorPicker.js +3 -0
  681. package/plugins/colorPicker.js.map +1 -0
  682. package/xy.d.ts +1 -0
  683. package/xy.d.ts.map +1 -1
  684. package/xy.js +1 -0
  685. package/xy.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryDateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/CategoryDateAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../../core/render/Component\";\nimport type { AxisRenderer } from \"./AxisRenderer\";\nimport { CategoryAxis, ICategoryAxisSettings, ICategoryAxisPrivate, ICategoryAxisDataItem, ICategoryAxisEvents } from \"./CategoryAxis\";\nimport type { ITimeInterval } from \"../../../core/util/Time\";\nimport * as $time from \"../../../core/util/Time\";\nimport * as $type from \"../../../core/util/Type\";\nimport * as $array from \"../../../core/util/Array\";\nimport * as $utils from \"../../../core/util/Utils\";\nimport type { Tooltip } from \"../../../core/render/Tooltip\";\n\nexport interface ICategoryDateAxisSettings<R extends AxisRenderer> extends ICategoryAxisSettings<R> {\n\n\t/**\n\t * Indicates granularity of data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Data_granularity} for more info\n\t */\n\tbaseInterval: ITimeInterval;\n\n\t/**\n\t * A list of intervals the axis is allowed to show grid/labels on.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Grid_granularity} for more info\n\t */\n\tgridIntervals?: Array<ITimeInterval>;\n\n\t/**\n\t * Display \"period change\" labels using different format.\n\t *\n\t * If set to `true`, will use `periodChangeDateFormats` instead\n\t * of `dateFormats` for such labels, e.g. for month start.\n\t *\n\t * @default true\n\t */\n\tmarkUnitChange?: boolean;\n\n\t/**\n\t * Date formats used for intermediate labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tdateFormats?: { [index: string]: string };\n\n\t/**\n\t * Date formats used for \"period change\" labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tperiodChangeDateFormats?: { [index: string]: string };\n\n\t/**\n\t * A date format to use for axis tooltip.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\ttooltipDateFormat?: string;\n\n}\n\nexport interface ICategoryDateAxisDataItem extends ICategoryAxisDataItem {\n}\n\nexport interface ICategoryDateAxisPrivate extends ICategoryAxisPrivate {\n\n\t/**\n\t * Current base interval.\n\t */\n\tbaseInterval: ITimeInterval;\n\n}\n\nexport interface ICategoryDateAxisEvents extends ICategoryAxisEvents {\n}\n\n\n/**\n * Category-based date axis.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/category-date-axis/} for more info\n * @important\n */\nexport class CategoryDateAxis<R extends AxisRenderer> extends CategoryAxis<R> {\n\tpublic static className: string = \"CategoryDateAxis\";\n\tpublic static classNames: Array<string> = CategoryAxis.classNames.concat([CategoryDateAxis.className]);\n\n\tdeclare public _settings: ICategoryDateAxisSettings<R>;\n\tdeclare public _privateSettings: ICategoryDateAxisPrivate;\n\tdeclare public _dataItemSettings: ICategoryDateAxisDataItem;\n\tdeclare public _events: ICategoryDateAxisEvents;\n\n\tprotected _frequency: number = 1;\n\n\tprotected _itemMap: { [index: string]: DataItem<ICategoryDateAxisDataItem> } = {};\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"axis\"]);\n\t\tthis.fields.push(\"category\");\n\t\tsuper._afterNew();\n\t}\n\n\n\tprotected _prepareAxisItems() {\n\t\t// temp\n\t\tthis.setPrivateRaw(\"baseInterval\", this.get(\"baseInterval\"));\n\n\t\tconst renderer = this.get(\"renderer\");\n\t\tconst len = this.dataItems.length;\n\n\t\tlet startIndex = this.startIndex();\n\t\tif (startIndex > 0) {\n\t\t\tstartIndex--;\n\t\t}\n\n\t\tlet endIndex = this.endIndex();\n\t\tif (endIndex < len) {\n\t\t\tendIndex++;\n\t\t}\n\n\t\tlet maxCount = renderer.axisLength() / Math.max(renderer.get(\"minGridDistance\")!, 1 / Number.MAX_SAFE_INTEGER);\n\n\t\tlet frequency = Math.min(len, Math.ceil((endIndex - startIndex) / maxCount));\n\t\tstartIndex = Math.floor(startIndex / frequency) * frequency;\n\t\tthis._frequency = frequency;\n\n\t\tfor (let j = 0; j < len; j++) {\n\t\t\tthis._toggleDataItem(this.dataItems[j], false);\n\t\t}\n\n\t\tlet startTime = Number(this.dataItems[startIndex].get(\"category\"));\n\t\tlet endTime = Number(this.dataItems[endIndex - 1].get(\"category\"));\n\t\tlet realDuration = (endTime - startTime);\n\t\tif (endIndex - startIndex < maxCount) {\n\t\t\trealDuration = (endTime - startTime) - ((endTime - startTime) / this.baseDuration() - (endIndex - startIndex)) * this.baseDuration();\n\t\t}\n\n\t\t// if all items are on axis\n\t\tlet gridInterval = $time.chooseInterval(0, realDuration, maxCount, this.get(\"gridIntervals\")!);\n\n\t\tconst nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\n\t\tif ($time.getIntervalDuration(gridInterval) < this.baseDuration()) {\n\t\t\tgridInterval = { ...baseInterval };\n\t\t}\n\n\t\tconst formats = this.get(\"dateFormats\")!;\n\n\t\tlet previousValue = -Infinity;\n\t\tlet previousIndex = -Infinity;\n\t\tlet previousUnitValue = -Infinity;\n\t\tlet format: string;\n\n\t\tlet selectedItems: Array<{ format: string, dataItem: DataItem<ICategoryDateAxisDataItem> }> = [];\n\t\tlet changed = false;\n\n\t\tfor (let i = startIndex; i < endIndex; i++) {\n\t\t\tlet dataItem = this.dataItems[i];\n\t\t\tlet index = dataItem.get(\"index\")!;\n\t\t\tlet skip = false;\n\n\t\t\tlet value = Number(dataItem.get(\"category\"));\n\t\t\tlet date = new Date(value);\n\t\t\tlet unitValue = $time.getUnitValue(date, gridInterval.timeUnit);\n\n\t\t\tformat = formats[gridInterval.timeUnit];\n\t\t\tlet added = false;\n\n\t\t\tif (gridInterval.timeUnit != \"year\" && gridInterval.timeUnit != \"week\") {\n\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\n\n\t\t\t\t\tif ($time.checkChange(value, previousValue, nextGridUnit, this._root.utc)) {\n\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![gridInterval.timeUnit];\n\n\t\t\t\t\t\tif (index - frequency * 0.5 < previousIndex) {\n\t\t\t\t\t\t\tselectedItems.pop();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tselectedItems.push({ format: format, dataItem: dataItem });\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\tadded = true;\n\t\t\t\t\t\tpreviousIndex = index;\n\t\t\t\t\t\tpreviousUnitValue = unitValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet shouldAdd = false;\n\t\t\tif (gridInterval.timeUnit === \"day\" || gridInterval.timeUnit === \"week\") {\n\t\t\t\tif (index - previousIndex >= frequency) {\n\t\t\t\t\tshouldAdd = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (unitValue % gridInterval.count === 0) {\n\t\t\t\t\tif (unitValue != previousUnitValue) {\n\t\t\t\t\t\tshouldAdd = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!added && shouldAdd) {\n\t\t\t\tif (index - frequency * 0.7 < previousIndex) {\n\t\t\t\t\tif (changed) {\n\t\t\t\t\t\tskip = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!skip) {\n\t\t\t\t\tselectedItems.push({ format: format, dataItem: dataItem });\n\t\t\t\t\tpreviousIndex = index;\n\t\t\t\t\tpreviousUnitValue = unitValue;\n\t\t\t\t}\n\t\t\t\tchanged = false;\n\n\t\t\t}\n\n\t\t\tpreviousValue = value;\n\n\t\t}\n\n\t\tif (selectedItems.length > 0) {\n\t\t\tlet f = selectedItems[0].dataItem.get(\"index\", 0);\n\n\t\t\t$array.each(selectedItems, (item) => {\n\t\t\t\tconst dataItem = item.dataItem;\n\t\t\t\tconst format = item.format;\n\t\t\t\tthis._createAssets(dataItem, []);\n\n\t\t\t\tthis._toggleDataItem(dataItem, true);\n\n\t\t\t\tlet value = Number(dataItem.get(\"category\"));\n\t\t\t\tlet date = new Date(value);\n\n\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel.set(\"text\", this._root.dateFormatter.format(date, format!));\n\t\t\t\t}\n\t\t\t\tf++;\n\t\t\t\tthis._prepareDataItem(dataItem, f, frequency);\n\t\t\t})\n\n\t\t}\n\t}\n\n\t/**\n\t * Returns a duration of currently active `baseInterval` in milliseconds.\n\t *\n\t * @return Duration\n\t */\n\tpublic baseDuration(): number {\n\t\treturn $time.getIntervalDuration(this.getPrivate(\"baseInterval\"));\n\t}\n\n\n\t/**\n\t * Returns text to be used in an axis tooltip for specific relative position.\n\t *\n\t * @param position Position\n\t * @return Tooltip text\n\t */\n\tpublic getTooltipText(position: number, _adjustPosition?: boolean): string | undefined {\n\t\t//@todo number formatter + tag\n\t\tlet dataItem = this.dataItems[this.axisPositionToIndex(position)];\n\n\t\tif (dataItem) {\n\t\t\tlet format = this.get(\"dateFormats\")![this.getPrivate(\"baseInterval\").timeUnit];\n\t\t\treturn this._root.dateFormatter.format(new Date(dataItem.get(\"category\", 0)), this.get(\"tooltipDateFormat\", format));\n\t\t}\n\t}\n\n\tprotected _updateTooltipText(tooltip: Tooltip, position: number) {\n\t\ttooltip.label.set(\"text\", this.getTooltipText(position));\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"CategoryDateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/CategoryDateAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../../core/render/Component\";\nimport type { AxisRenderer } from \"./AxisRenderer\";\nimport type { ITimeInterval } from \"../../../core/util/Time\";\nimport type { Tooltip } from \"../../../core/render/Tooltip\";\n\nimport { CategoryAxis, ICategoryAxisSettings, ICategoryAxisPrivate, ICategoryAxisDataItem, ICategoryAxisEvents } from \"./CategoryAxis\";\n\nimport * as $time from \"../../../core/util/Time\";\nimport * as $type from \"../../../core/util/Type\";\nimport * as $array from \"../../../core/util/Array\";\nimport * as $utils from \"../../../core/util/Utils\";\n\nexport interface ICategoryDateAxisSettings<R extends AxisRenderer> extends ICategoryAxisSettings<R> {\n\n\t/**\n\t * Indicates granularity of data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Data_granularity} for more info\n\t */\n\tbaseInterval: ITimeInterval;\n\n\t/**\n\t * A list of intervals the axis is allowed to show grid/labels on.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Grid_granularity} for more info\n\t */\n\tgridIntervals?: Array<ITimeInterval>;\n\n\t/**\n\t * Display \"period change\" labels using different format.\n\t *\n\t * If set to `true`, will use `periodChangeDateFormats` instead\n\t * of `dateFormats` for such labels, e.g. for month start.\n\t *\n\t * @default true\n\t */\n\tmarkUnitChange?: boolean;\n\n\t/**\n\t * Date formats used for intermediate labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tdateFormats?: { [index: string]: string };\n\n\t/**\n\t * Date formats used for \"period change\" labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tperiodChangeDateFormats?: { [index: string]: string };\n\n\t/**\n\t * A date format to use for axis tooltip.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\ttooltipDateFormat?: string;\n\n}\n\nexport interface ICategoryDateAxisDataItem extends ICategoryAxisDataItem {\n}\n\nexport interface ICategoryDateAxisPrivate extends ICategoryAxisPrivate {\n\n\t/**\n\t * Current base interval.\n\t */\n\tbaseInterval: ITimeInterval;\n\n}\n\nexport interface ICategoryDateAxisEvents extends ICategoryAxisEvents {\n}\n\n\n/**\n * Category-based date axis.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/category-date-axis/} for more info\n * @important\n */\nexport class CategoryDateAxis<R extends AxisRenderer> extends CategoryAxis<R> {\n\tpublic static className: string = \"CategoryDateAxis\";\n\tpublic static classNames: Array<string> = CategoryAxis.classNames.concat([CategoryDateAxis.className]);\n\n\tdeclare public _settings: ICategoryDateAxisSettings<R>;\n\tdeclare public _privateSettings: ICategoryDateAxisPrivate;\n\tdeclare public _dataItemSettings: ICategoryDateAxisDataItem;\n\tdeclare public _events: ICategoryDateAxisEvents;\n\n\tprotected _frequency: number = 1;\n\n\tprotected _itemMap: { [index: string]: DataItem<ICategoryDateAxisDataItem> } = {};\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"axis\"]);\n\t\tthis.fields.push(\"category\");\n\t\tsuper._afterNew();\n\t}\n\n\n\tprotected _prepareAxisItems() {\n\t\t// temp\n\t\tthis.setPrivateRaw(\"baseInterval\", this.get(\"baseInterval\"));\n\n\t\tconst renderer = this.get(\"renderer\");\n\t\tconst len = this.dataItems.length;\n\n\t\tlet startIndex = this.startIndex();\n\t\tif (startIndex > 0) {\n\t\t\tstartIndex--;\n\t\t}\n\n\t\tlet endIndex = this.endIndex();\n\t\tif (endIndex < len) {\n\t\t\tendIndex++;\n\t\t}\n\n\t\tlet maxCount = renderer.axisLength() / Math.max(renderer.get(\"minGridDistance\")!, 1 / Number.MAX_SAFE_INTEGER);\n\n\t\tlet frequency = Math.min(len, Math.ceil((endIndex - startIndex) / maxCount));\n\t\tstartIndex = Math.floor(startIndex / frequency) * frequency;\n\t\tthis._frequency = frequency;\n\n\t\tfor (let j = 0; j < len; j++) {\n\t\t\tthis._toggleDataItem(this.dataItems[j], false);\n\t\t}\n\n\t\tlet startTime = Number(this.dataItems[startIndex].get(\"category\"));\n\t\tlet endTime = Number(this.dataItems[endIndex - 1].get(\"category\"));\n\t\tlet realDuration = (endTime - startTime);\n\t\tif (endIndex - startIndex < maxCount) {\n\t\t\trealDuration = (endTime - startTime) - ((endTime - startTime) / this.baseDuration() - (endIndex - startIndex)) * this.baseDuration();\n\t\t}\n\n\t\t// if all items are on axis\n\t\tlet gridInterval = $time.chooseInterval(0, realDuration, maxCount, this.get(\"gridIntervals\")!);\n\n\t\tconst nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\n\t\tif ($time.getIntervalDuration(gridInterval) < this.baseDuration()) {\n\t\t\tgridInterval = { ...baseInterval };\n\t\t}\n\n\t\tconst formats = this.get(\"dateFormats\")!;\n\n\t\tlet previousValue = -Infinity;\n\t\tlet previousIndex = -Infinity;\n\t\tlet previousUnitValue = -Infinity;\n\t\tlet format: string;\n\n\t\tlet selectedItems: Array<{ format: string, dataItem: DataItem<ICategoryDateAxisDataItem> }> = [];\n\t\tlet changed = false;\n\n\t\tfor (let i = startIndex; i < endIndex; i++) {\n\t\t\tlet dataItem = this.dataItems[i];\n\t\t\tlet index = dataItem.get(\"index\")!;\n\t\t\tlet skip = false;\n\n\t\t\tlet value = Number(dataItem.get(\"category\"));\n\t\t\tlet date = new Date(value);\n\t\t\tlet unitValue = $time.getUnitValue(date, gridInterval.timeUnit);\n\n\t\t\tformat = formats[gridInterval.timeUnit];\n\t\t\tlet added = false;\n\n\t\t\tif (gridInterval.timeUnit != \"year\" && gridInterval.timeUnit != \"week\") {\n\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\n\n\t\t\t\t\tif ($time.checkChange(value, previousValue, nextGridUnit, this._root.utc)) {\n\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![gridInterval.timeUnit];\n\n\t\t\t\t\t\tif (index - frequency * 0.5 < previousIndex) {\n\t\t\t\t\t\t\tselectedItems.pop();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tselectedItems.push({ format: format, dataItem: dataItem });\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\tadded = true;\n\t\t\t\t\t\tpreviousIndex = index;\n\t\t\t\t\t\tpreviousUnitValue = unitValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet shouldAdd = false;\n\t\t\tif (gridInterval.timeUnit === \"day\" || gridInterval.timeUnit === \"week\") {\n\t\t\t\tif (index - previousIndex >= frequency) {\n\t\t\t\t\tshouldAdd = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (unitValue % gridInterval.count === 0) {\n\t\t\t\t\tif (unitValue != previousUnitValue) {\n\t\t\t\t\t\tshouldAdd = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!added && shouldAdd) {\n\t\t\t\tif (index - frequency * 0.7 < previousIndex) {\n\t\t\t\t\tif (changed) {\n\t\t\t\t\t\tskip = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!skip) {\n\t\t\t\t\tselectedItems.push({ format: format, dataItem: dataItem });\n\t\t\t\t\tpreviousIndex = index;\n\t\t\t\t\tpreviousUnitValue = unitValue;\n\t\t\t\t}\n\t\t\t\tchanged = false;\n\n\t\t\t}\n\n\t\t\tpreviousValue = value;\n\n\t\t}\n\n\t\tif (selectedItems.length > 0) {\n\t\t\tlet f = selectedItems[0].dataItem.get(\"index\", 0);\n\n\t\t\t$array.each(selectedItems, (item) => {\n\t\t\t\tconst dataItem = item.dataItem;\n\t\t\t\tconst format = item.format;\n\t\t\t\tthis._createAssets(dataItem, []);\n\n\t\t\t\tthis._toggleDataItem(dataItem, true);\n\n\t\t\t\tlet value = Number(dataItem.get(\"category\"));\n\t\t\t\tlet date = new Date(value);\n\n\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel.set(\"text\", this._root.dateFormatter.format(date, format!));\n\t\t\t\t}\n\t\t\t\tf++;\n\t\t\t\tthis._prepareDataItem(dataItem, f, frequency);\n\t\t\t})\n\n\t\t}\n\t}\n\n\t/**\n\t * Returns a duration of currently active `baseInterval` in milliseconds.\n\t *\n\t * @return Duration\n\t */\n\tpublic baseDuration(): number {\n\t\treturn $time.getIntervalDuration(this.getPrivate(\"baseInterval\"));\n\t}\n\n\n\t/**\n\t * Returns text to be used in an axis tooltip for specific relative position.\n\t *\n\t * @param position Position\n\t * @return Tooltip text\n\t */\n\tpublic getTooltipText(position: number, _adjustPosition?: boolean): string | undefined {\n\t\t//@todo number formatter + tag\n\t\tlet dataItem = this.dataItems[this.axisPositionToIndex(position)];\n\n\t\tif (dataItem) {\n\t\t\tlet format = this.get(\"dateFormats\")![this.getPrivate(\"baseInterval\").timeUnit];\n\t\t\treturn this._root.dateFormatter.format(new Date(dataItem.get(\"category\", 0)), this.get(\"tooltipDateFormat\", format));\n\t\t}\n\t}\n\n\tprotected _updateTooltipText(tooltip: Tooltip, position: number) {\n\t\ttooltip.label.set(\"text\", this.getTooltipText(position));\n\t}\n\n}\n"]}
@@ -1,9 +1,9 @@
1
- import { DataItem } from "../../../core/render/Component";
2
1
  import type { AxisRenderer } from "./AxisRenderer";
3
2
  import type { XYSeries, IXYSeriesDataItem } from "../series/XYSeries";
4
- import { ValueAxis, IValueAxisSettings, IValueAxisPrivate, IValueAxisDataItem, IMinMaxStep, IValueAxisEvents } from "./ValueAxis";
5
3
  import type { ITimeInterval } from "../../../core/util/Time";
6
4
  import type { TimeUnit } from "../../../core/util/Time";
5
+ import { DataItem } from "../../../core/render/Component";
6
+ import { ValueAxis, IValueAxisSettings, IValueAxisPrivate, IValueAxisDataItem, IMinMaxStep, IValueAxisEvents } from "./ValueAxis";
7
7
  export interface IDateAxisSettings<R extends AxisRenderer> extends IValueAxisSettings<R> {
8
8
  /**
9
9
  * Indicates granularity of data.
@@ -121,6 +121,20 @@ export interface IDateAxisSettings<R extends AxisRenderer> extends IValueAxisSet
121
121
  * @since 5.1.4
122
122
  */
123
123
  tooltipIntervalOffset?: number;
124
+ /**
125
+ * If set to `true`, the axis will skip the first minor grid line and label.
126
+ *
127
+ * @default true
128
+ * @since 5.14.0
129
+ */
130
+ skipFirstMinor?: boolean;
131
+ /**
132
+ * A relative location of weekly labels.
133
+ *
134
+ * @default 0
135
+ * @since 5.14.0
136
+ */
137
+ weekLabelLocation?: number;
124
138
  }
125
139
  export interface IDateAxisDataItem extends IValueAxisDataItem {
126
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DateAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DateAxis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DateAxis.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DateAxis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAUlI,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IAEvF;;;;OAIG;IACH,YAAY,EAAE,aAAa,CAAC;IAE5B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAEtC;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAErC;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,WAAW,CAAC,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAA;KAAE,CAAC;IAEvE;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAA;KAAE,CAAC;IAE5E;;;;OAIG;IACH,uBAAuB,CAAC,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAA;KAAE,CAAC;IAEnF;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC;IAExD;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAA;KAAE,CAAC;IAE9E;;;;;;;;;;;OAWG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAE3B;AAED,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;CAC5D;AAED,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IAE1D;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;OAEG;IACH,YAAY,EAAE,aAAa,CAAC;IAE5B;;OAEG;IACH,YAAY,EAAE,aAAa,CAAC;CAC5B;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IAExD;;;;OAIG;IACH,oBAAoB,EAAE,EAAE,CAAA;CAExB;AAED;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IACjE,OAAc,SAAS,EAAE,MAAM,CAAc;IAC7C,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAqD;IAE7E,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,eAAe,CAAC;IAExC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAS;IACxC,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAS;IAC9C,SAAS,CAAC,mBAAmB,EAAE,OAAO,CAAS;IAC/C,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAK;IACxC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAK;IAEpC,SAAS,CAAC,YAAY,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IACzD,SAAS,CAAC,YAAY,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IAElD,SAAS;IAShB,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa;IAKlD,SAAS,CAAC,cAAc;IAUxB,SAAS,CAAC,UAAU;IAqDb,gBAAgB,CAAC,MAAM,EAAE,QAAQ;IA+LjC,WAAW;IAMlB;;;;OAIG;IACI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa;IASxD;;;;;;;;OAQG;IACI,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM;IAItD;;;;;;;;OAQG;IACI,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM;IAItD,SAAS,CAAC,kBAAkB;IAkH5B,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,WAAW;IAIxG;;OAEG;IACI,gBAAgB,IAAI,MAAM;IAIjC,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAY9C,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ;IAOlC,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS;IAwC/E,SAAS,CAAC,iBAAiB;IAuN3B,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAKlD,SAAS,CAAC,SAAS;IAInB,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM;IAY7B,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM;IAY7B,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IAIhD,oBAAoB;IAM3B;;;;OAIG;IACI,YAAY,IAAI,MAAM;IAK7B;;;;OAIG;IACI,gBAAgB,IAAI,MAAM;IAIjC;;OAEG;IACI,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IAsCzF,SAAS,CAAC,gBAAgB;IAI1B;;OAEG;IACI,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM;IA0B9J;;OAEG;IACI,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAIvI;;OAEG;IACI,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM;IAuB9J;;OAEG;IACI,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAIvI;;OAEG;IACI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IA2BpE;;;;;;;;;OASG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAsBrF;;;;;;OAMG;IACI,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC,GAAG,SAAS;IA0DpI;;OAEG;IACI,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAUhJ;;;;;;;;OAQG;IACI,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM;IAI5D;;;;;;;;OAQG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IA8BjE;;;;;;OAMG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI7C;;;;;;OAMG;IACI,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIzC;;;;;OAKG;IACI,oBAAoB,IAAI,MAAM;IAU9B,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM;IA2BlC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa;CAG5E"}
@@ -423,7 +423,7 @@ export class DateAxis extends ValueAxis {
423
423
  this._intervalMax[id] = max;
424
424
  }
425
425
  _getM(timeUnit) {
426
- if (timeUnit == "month" || timeUnit == "year" || timeUnit == "day") {
426
+ if (timeUnit == "day" || timeUnit == "month" || timeUnit == "year") {
427
427
  return 1.05;
428
428
  }
429
429
  return 1.01;
@@ -462,6 +462,9 @@ export class DateAxis extends ValueAxis {
462
462
  minorGridInterval = { timeUnit: "week", count: 1 };
463
463
  }
464
464
  }
465
+ if (timeUnit == "year" && count == 1) {
466
+ minorGridInterval = { timeUnit: "month", count: 1 };
467
+ }
465
468
  return minorGridInterval;
466
469
  }
467
470
  _prepareAxisItems() {
@@ -534,12 +537,15 @@ export class DateAxis extends ValueAxis {
534
537
  let count = gridInterval.count;
535
538
  // so that labels of week would always be at the beginning of the grid
536
539
  if (gridInterval.timeUnit == "week") {
537
- dataItem.setRaw("labelEndValue", value);
540
+ label === null || label === void 0 ? void 0 : label.set("location", this.get("weekLabelLocation", 0));
541
+ }
542
+ else {
543
+ label === null || label === void 0 ? void 0 : label.set("location", renderer.labels.template.get("location"));
538
544
  }
539
545
  if (minorGridEnabled) {
540
546
  count = 1;
541
547
  let timeUnit = gridInterval.timeUnit;
542
- if (timeUnit == "week") {
548
+ if (timeUnit == "week" && this.get("skipFirstMinor")) {
543
549
  timeUnit = "day";
544
550
  }
545
551
  let labelEndValue = value + $time.getDuration(timeUnit, this._getM(timeUnit));
@@ -555,6 +561,9 @@ export class DateAxis extends ValueAxis {
555
561
  const minorTimeUnit = minorGridInterval.timeUnit;
556
562
  const minorCount = minorGridInterval.count;
557
563
  const mmm = this._getM(minorTimeUnit);
564
+ if (!this.get("skipFirstMinor")) {
565
+ previousValue -= minorDuration * mmm;
566
+ }
558
567
  //let minorValue = $time.round(new Date(previousValue + minorDuration * this._getM(minorGridInterval.timeUnit)), minorGridInterval.timeUnit, minorGridInterval.count, firstDay, utc, new Date(previousValue), timezone).getTime();
559
568
  let minorValue = $time.roun(previousValue + minorDuration * mmm, minorTimeUnit, minorCount, root, previousValue);
560
569
  let previousMinorValue;
@@ -591,6 +600,12 @@ export class DateAxis extends ValueAxis {
591
600
  if (minorValue == previousMinorValue) {
592
601
  break;
593
602
  }
603
+ if (!minorDataItem.get("isRange")) {
604
+ const fillRule = this.get("fillRule");
605
+ if (fillRule) {
606
+ fillRule(minorDataItem);
607
+ }
608
+ }
594
609
  previousMinorValue = minorValue;
595
610
  minorValue = minorEndValue;
596
611
  m++;
@@ -902,8 +917,8 @@ export class DateAxis extends ValueAxis {
902
917
  * @param duration Duration in milliseconds
903
918
  */
904
919
  zoomToValues(start, end, duration) {
905
- const min = this.getPrivate("minFinal", 0);
906
- const max = this.getPrivate("maxFinal", 0);
920
+ const min = this.getPrivate("minFinal", this.getPrivate("min", 0));
921
+ const max = this.getPrivate("maxFinal", this.getPrivate("max", 0));
907
922
  if (this.getPrivate("min") != null && this.getPrivate("max") != null) {
908
923
  if (this.get("groupData")) {
909
924
  const futureGroupInterval = this.getGroupInterval(end - start);
@@ -1 +1 @@
1
- {"version":3,"file":"DateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DateAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataItem } from \"../../../core/render/Component\";\nimport type { AxisRenderer } from \"./AxisRenderer\";\nimport type { XYSeries, IXYSeriesDataItem } from \"../series/XYSeries\";\nimport { ValueAxis, IValueAxisSettings, IValueAxisPrivate, IValueAxisDataItem, IMinMaxStep, IValueAxisEvents } from \"./ValueAxis\";\nimport * as $type from \"../../../core/util/Type\";\nimport * as $math from \"../../../core/util/Math\";\nimport * as $order from \"../../../core/util/Order\";\nimport * as $array from \"../../../core/util/Array\";\nimport * as $object from \"../../../core/util/Object\";\nimport * as $utils from \"../../../core/util/Utils\";\nimport * as $time from \"../../../core/util/Time\";\nimport type { ITimeInterval } from \"../../../core/util/Time\";\nimport type { TimeUnit } from \"../../../core/util/Time\";\n\nexport interface IDateAxisSettings<R extends AxisRenderer> extends IValueAxisSettings<R> {\n\n\t/**\n\t * Indicates granularity of data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Data_granularity} for more info\n\t */\n\tbaseInterval: ITimeInterval;\n\n\t/**\n\t * Relative location of where axis cell starts: 0 - beginning, 1 - end.\n\t *\n\t * IMPORTANT: `startLocation` is not supported by [[GaplessDateAxis]].\n\t *\n\t * @default 0\n\t */\n\tstartLocation?: number;\n\n\t/**\n\t * Relative location of where axis cell ends: 0 - beginning, 1 - end.\n\t *\n\t * IMPORTANT: `endLocation` is not supported by [[GaplessDateAxis]].\n\t * \n\t * @default 1\n\t */\n\tendLocation?: number;\n\n\t/**\n\t * Should axis group data items togeter dynamically?\n\t *\n\t * @default false\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupData?: boolean;\n\n\t/**\n\t * Maximum number of data items in the view before data grouping kicks in.\n\t *\n\t * @default 500\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupCount?: number;\n\n\t/**\n\t * Force data item grouping to specific interval. This interval must be within groupIntervals array for this to work.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupInterval?: ITimeInterval;\n\n\t/**\n\t * A list of intervals the axis is allowed to group data items into.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupIntervals?: Array<ITimeInterval>;\n\n\t/**\n\t * A list of intervals the axis is allowed to show grid/labels on.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Grid_granularity} for more info\n\t */\n\tgridIntervals?: Array<ITimeInterval>;\n\n\t/**\n\t * Display \"period change\" labels using different format.\n\t *\n\t * If set to `true`, will use `periodChangeDateFormats` instead\n\t * of `dateFormats` for such labels, e.g. for month start.\n\t *\n\t * @default true\n\t */\n\tmarkUnitChange?: boolean;\n\n\t/**\n\t * Date formats used for intermediate labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tdateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * Date formats used for minor grid labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Minor_grid_formats} for more info\n\t * @since 5.6.0\n\t */\n\tminorDateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * Date formats used for \"period change\" labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tperiodChangeDateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * A date format to use for axis tooltip.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info\n\t */\n\ttooltipDateFormat?: string | Intl.DateTimeFormatOptions;\n\n\t/**\n\t * Time unit-specific formats to use for axis tooltip.\n\t * \n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info\n\t * @since 5.1.4\n\t */\n\ttooltipDateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * A value which indicates relative position within axis cell to get timestamp\n\t * for the tooltip from.\n\t *\n\t * Values are from `-1` to `1`.\n\t *\n\t * If not set, it will use `tooltipLocation` value, if `tooltipLocation`` is\n\t * not set, it will use -0.5.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info\n\t * @since 5.1.4\n\t */\n\ttooltipIntervalOffset?: number;\n}\n\nexport interface IDateAxisDataItem extends IValueAxisDataItem {\n}\n\nexport interface IDateAxisPrivate extends IValueAxisPrivate {\n\n\t/**\n\t * Current group interval.\n\t */\n\tgroupInterval?: ITimeInterval;\n\n\t/**\n\t * Current base interval.\n\t */\n\tbaseInterval: ITimeInterval;\n\n\t/**\n\t * Current grid interval.\n\t */\n\tgridInterval: ITimeInterval;\n}\n\nexport interface IDateAxisEvents extends IValueAxisEvents {\n\n\t/**\n\t * Kicks in when data grouping is on, and current group interval changes, e.g. via zooming the chart.\n\t *\n\t * @since 5.2.43\n\t */\n\tgroupintervalchanged: {}\n\n}\n\n/**\n * Creates a date axis.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/} for more info\n * @important\n */\nexport class DateAxis<R extends AxisRenderer> extends ValueAxis<R> {\n\tpublic static className: string = \"DateAxis\";\n\tpublic static classNames: Array<string> = ValueAxis.classNames.concat([DateAxis.className]);\n\n\tdeclare public _settings: IDateAxisSettings<R>;\n\tdeclare public _privateSettings: IDateAxisPrivate;\n\tdeclare public _dataItemSettings: IDateAxisDataItem;\n\tdeclare public _events: IDateAxisEvents;\n\n\tprotected _dataGrouped: boolean = false;\n\tprotected _seriesDataGrouped: boolean = false;\n\tprotected _groupingCalculated: boolean = false;\n\tprotected _intervalDuration: number = 1;\n\tprotected _baseDuration: number = 1;\n\n\tprotected _intervalMax: { [index: string]: number } = {};\n\tprotected _intervalMin: { [index: string]: number } = {};\n\n\tpublic _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"axis\"]);\n\t\tsuper._afterNew();\n\t\tthis._setBaseInterval(this.get(\"baseInterval\"));\n\t\tthis.on(\"baseInterval\", () => {\n\t\t\tthis._setBaseInterval(this.get(\"baseInterval\"));\n\t\t})\n\t}\n\n\tprotected _setBaseInterval(interval: ITimeInterval) {\n\t\tthis.setPrivateRaw(\"baseInterval\", interval);\n\t\tthis._baseDuration = $time.getIntervalDuration(interval);\n\t}\n\n\tprotected _fixZoomFactor() {\n\t\tconst maxZoomFactor = this.get(\"maxZoomFactor\");\n\t\tif (maxZoomFactor != null && maxZoomFactor != Infinity) {\n\t\t\tthis.setPrivateRaw(\"maxZoomFactor\", maxZoomFactor);\n\t\t}\n\t\telse {\n\t\t\tthis.setPrivateRaw(\"maxZoomFactor\", Math.round((this.getPrivate(\"max\", 0) - this.getPrivate(\"min\", 0)) / this.baseMainDuration()));\n\t\t}\n\t}\n\n\tprotected _groupData() {\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\tthis._fixZoomFactor();\n\n\t\t\tconst groupInterval = this.getPrivate(\"groupInterval\")!;\n\t\t\tif (groupInterval) {\n\t\t\t\tthis._setBaseInterval(groupInterval);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._setBaseInterval(this.get(\"baseInterval\"));\n\t\t\t}\n\n\n\t\t\tif (this.isDirty(\"groupInterval\")) {\n\t\t\t\tlet groupInterval = this.get(\"groupInterval\")!;\n\t\t\t\tif (groupInterval) {\n\t\t\t\t\tthis.setRaw(\"groupIntervals\", [groupInterval]);\n\t\t\t\t\tthis._handleRangeChange();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.isDirty(\"groupData\")) {\n\t\t\t\tif (!this._dataGrouped) {\n\t\t\t\t\tif (this.get(\"groupData\")) {\n\t\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\t\tthis._groupSeriesData(series);\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tthis._handleRangeChange();\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet baseInterval = this.get(\"baseInterval\");\n\t\t\t\t\t\tlet mainDataSetId: string = baseInterval.timeUnit + baseInterval.count;\n\t\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\t\tseries.setDataSet(mainDataSetId);\n\t\t\t\t\t\t\tseries.resetGrouping();\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tthis._setBaseInterval(baseInterval);\n\t\t\t\t\t\tthis.setPrivateRaw(\"groupInterval\", undefined);\n\t\t\t\t\t\tthis.markDirtyExtremes();\n\t\t\t\t\t}\n\t\t\t\t\tthis._dataGrouped = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\tpublic _groupSeriesData(series: XYSeries) {\n\t\tif (this.get(\"groupData\") && !series.get(\"groupDataDisabled\")) {\n\t\t\tthis._dataGrouped = true; // helps to avoid double grouping\n\n\t\t\tthis._seriesDataGrouped = true;\n\n\t\t\t// make array of intervals which will be used;\n\t\t\tlet intervals: ITimeInterval[] = [];\n\t\t\tlet baseDuration = this.baseMainDuration();\n\n\t\t\tlet groupIntervals = this.get(\"groupIntervals\")!;\n\t\t\tif (groupIntervals) { }\n\t\t\t$array.each(groupIntervals, (interval) => {\n\t\t\t\tlet intervalDuration = $time.getIntervalDuration(interval);\n\t\t\t\tif (intervalDuration > baseDuration) {\n\t\t\t\t\tintervals.push(interval);\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tseries._dataSets = {};\n\n\t\t\tconst key = this.getPrivate(\"name\")! + this.get(\"renderer\").getPrivate(\"letter\")!;\n\t\t\tlet fields: Array<string>;\n\n\t\t\tconst baseAxis = series.get(\"baseAxis\");\n\n\t\t\tif (series.get(\"xAxis\") === baseAxis) {\n\t\t\t\tfields = series._valueYFields;\n\t\t\t}\n\t\t\telse if (series.get(\"yAxis\") === baseAxis) {\n\t\t\t\tfields = series._valueXFields;\n\t\t\t}\n\n\t\t\tlet dataItems = series._mainDataItems;\n\t\t\tlet baseInterval = this.get(\"baseInterval\");\n\t\t\tlet mainDataSetId: string = baseInterval.timeUnit + baseInterval.count;\n\n\t\t\tseries._dataSets[mainDataSetId] = dataItems;\n\n\t\t\tconst groupCallback = series.get(\"groupDataCallback\");\n\t\t\tlet groupOriginals = series.get(\"groupDataWithOriginals\", false);\n\t\t\tif (groupCallback) {\n\t\t\t\tgroupOriginals = true;\n\t\t\t}\n\n\t\t\t$array.each(intervals, (interval) => {\n\t\t\t\tlet previousTime = -Infinity;\n\t\t\t\tlet dataSetId = interval.timeUnit + interval.count;\n\t\t\t\tseries._dataSets[dataSetId] = [];\n\n\t\t\t\tlet newDataItem: DataItem<IXYSeriesDataItem>;\n\n\t\t\t\tlet sum: { [index: string]: number } = {};\n\t\t\t\tlet count: { [index: string]: number } = {};\n\n\t\t\t\tlet groupFieldValues: { [index: string]: string } = {};\n\t\t\t\tlet workingFields: { [index: string]: string } = {};\n\n\t\t\t\t$array.each(fields, (field) => {\n\t\t\t\t\tsum[field] = 0;\n\t\t\t\t\tcount[field] = 0;\n\t\t\t\t\tgroupFieldValues[field] = series.get((field + \"Grouped\") as any);\n\t\t\t\t\tworkingFields[field] = field + \"Working\";\n\t\t\t\t})\n\n\t\t\t\tlet intervalDuration = $time.getDuration(interval.timeUnit);\n\n\t\t\t\tlet firstItem = dataItems[0];\n\t\t\t\tlet firstTime: any;\n\t\t\t\tif (firstItem) {\n\t\t\t\t\tfirstTime = dataItems[0].get(key as any);\n\t\t\t\t}\n\n\t\t\t\tlet prevNewDataItem: DataItem<IXYSeriesDataItem> | undefined;\n\t\t\t\t$array.each(dataItems, (dataItem) => {\n\t\t\t\t\tlet time = dataItem.get(key as any);\n\t\t\t\t\t//let roundedTime = $time.round(new Date(time), interval.timeUnit, interval.count, firstDay, utc, firstDate, timezone).getTime();\n\t\t\t\t\tlet roundedTime = $time.roun(time, interval.timeUnit, interval.count, this._root, firstTime);\n\t\t\t\t\tlet dataContext: any;\n\n\t\t\t\t\tif (previousTime < roundedTime - intervalDuration / 24) {\n\t\t\t\t\t\tdataContext = $object.copy(dataItem.dataContext);\n\n\t\t\t\t\t\tnewDataItem = new DataItem(series, dataContext, series._makeDataItem(dataContext));\n\t\t\t\t\t\tnewDataItem.setRaw(key as any, roundedTime);\n\n\t\t\t\t\t\tseries._dataSets[dataSetId].push(newDataItem);\n\n\t\t\t\t\t\t$array.each(fields, (field) => {\n\t\t\t\t\t\t\tlet value = dataItem.get(field as any);\n\t\t\t\t\t\t\tif ($type.isNumber(value)) {\n\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\tnewDataItem.setRaw(workingFields[field] as any, value);\n\t\t\t\t\t\t\t\tcount[field] = 1;\n\t\t\t\t\t\t\t\tsum[field] = value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tsum[field] = 0;\n\t\t\t\t\t\t\t\tcount[field] = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (groupOriginals) {\n\t\t\t\t\t\t\tnewDataItem.set(\"originals\", [dataItem]);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (groupCallback && prevNewDataItem) {\n\t\t\t\t\t\t\tgroupCallback(prevNewDataItem, interval);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tprevNewDataItem = newDataItem;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t$array.each(fields, (field) => {\n\t\t\t\t\t\t\tlet groupKey = groupFieldValues[field];\n\t\t\t\t\t\t\tlet value = dataItem.get(field as any);\n\n\t\t\t\t\t\t\tif (value != null) {\n\n\t\t\t\t\t\t\t\tlet currentValue = newDataItem.get(field as any);\n\n\t\t\t\t\t\t\t\tswitch (groupKey) {\n\t\t\t\t\t\t\t\t\tcase \"close\":\n\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"sum\":\n\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, currentValue + value);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"open\":\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"low\":\n\t\t\t\t\t\t\t\t\t\tif (value < currentValue) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"high\":\n\t\t\t\t\t\t\t\t\t\tif (value > currentValue) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"average\":\n\t\t\t\t\t\t\t\t\t\tcount[field]++;\n\t\t\t\t\t\t\t\t\t\tsum[field] += value;\n\t\t\t\t\t\t\t\t\t\tlet average = sum[field] / count[field];\n\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, average);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"extreme\":\n\t\t\t\t\t\t\t\t\t\tif (Math.abs(value) > Math.abs(currentValue)) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tnewDataItem.setRaw(workingFields[field] as any, newDataItem.get(field as any));\n\t\t\t\t\t\t\t\tlet dataContext: any = $object.copy(dataItem.dataContext);\n\t\t\t\t\t\t\t\tdataContext[key as any] = roundedTime;\n\t\t\t\t\t\t\t\tnewDataItem.dataContext = dataContext;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (groupOriginals) {\n\t\t\t\t\t\t\tnewDataItem.get(\"originals\")!.push(dataItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpreviousTime = roundedTime;\n\t\t\t\t})\n\n\t\t\t\tif (groupCallback && prevNewDataItem) {\n\t\t\t\t\tgroupCallback(prevNewDataItem, interval);\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif (series._dataSetId) {\n\t\t\t\tseries.setDataSet(series._dataSetId);\n\t\t\t}\n\t\t\tthis.markDirtySize();\n\t\t\t// solves problem if new series was added\n\t\t\tif (this._seriesAdded) {\n\t\t\t\tthis._root.events.once(\"frameended\", () => {\n\t\t\t\t\tthis.markDirtySize();\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._groupingCalculated = false;\n\t\tthis._dataGrouped = false;\n\t}\n\n\t/**\n\t * Returns a time interval axis would group data to for a specified duration.\n\t *\n\t * @since 5.2.1\n\t */\n\tpublic getGroupInterval(duration: number): ITimeInterval {\n\t\tlet baseInterval = this.get(\"baseInterval\");\n\t\tlet groupInterval = $time.chooseInterval(0, duration, this.get(\"groupCount\", Infinity), this.get(\"groupIntervals\")!);\n\t\tif ($time.getIntervalDuration(groupInterval) < $time.getIntervalDuration(baseInterval)) {\n\t\t\tgroupInterval = { ...baseInterval };\n\t\t}\n\t\treturn groupInterval;\n\t}\n\n\t/**\n\t * Return `max` of a specified time interval.\n\t * \n\t * Will work only if the axis was grouped to this interval at least once.\n\t * \n\t * @since 5.2.1\n\t * @param interval Interval\n\t * @return Max\n\t */\n\tpublic getIntervalMax(interval: ITimeInterval): number {\n\t\treturn this._intervalMax[interval.timeUnit + interval.count];\n\t}\n\n\t/**\n\t * Return `min` of a specified time interval.\n\t * \n\t * Will work only if the axis was grouped to this interval at least once.\n\t * \n\t * @since 5.2.1\n\t * @param interval Interval\n\t * @return Min\n\t */\n\tpublic getIntervalMin(interval: ITimeInterval): number {\n\t\treturn this._intervalMin[interval.timeUnit + interval.count];\n\t}\n\n\tprotected _handleRangeChange() {\n\t\tsuper._handleRangeChange();\n\n\t\tlet selectionMin = Math.round(this.getPrivate(\"selectionMin\")! as number);\n\t\tlet selectionMax = Math.round(this.getPrivate(\"selectionMax\")! as number);\n\n\t\tif ($type.isNumber(selectionMin) && $type.isNumber(selectionMax)) {\n\n\t\t\tif (this.get(\"endLocation\") == 0) {\n\t\t\t\tselectionMax += 1;\n\t\t\t}\n\n\t\t\tif (this.get(\"groupData\") && !this._groupingCalculated) {\n\t\t\t\tthis._groupingCalculated = true;\n\n\t\t\t\tlet groupInterval = this.get(\"groupInterval\");\n\t\t\t\tlet current = this.getPrivate(\"groupInterval\");\n\n\t\t\t\tlet modifiedDifference = (selectionMax - selectionMin) + (this.get(\"startLocation\", 0) + (1 - this.get(\"endLocation\", 1)) * this.baseDuration());\n\n\t\t\t\tif (current) {\n\t\t\t\t\tlet duration = $time.getIntervalDuration(current);\n\t\t\t\t\tmodifiedDifference = Math.ceil(modifiedDifference / duration) * duration;\n\t\t\t\t}\n\n\t\t\t\tif (!groupInterval) {\n\t\t\t\t\tgroupInterval = this.getGroupInterval(modifiedDifference);\n\t\t\t\t}\n\n\t\t\t\tif (groupInterval && (!current || (current.timeUnit !== groupInterval.timeUnit || current.count !== groupInterval.count) || this._seriesDataGrouped)) {\n\t\t\t\t\tthis._seriesDataGrouped = false;\n\t\t\t\t\tthis.setPrivateRaw(\"groupInterval\", groupInterval);\n\t\t\t\t\tthis._setBaseInterval(groupInterval)\n\n\t\t\t\t\tlet newId = groupInterval.timeUnit + groupInterval.count;\n\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\tif (series.get(\"baseAxis\") === this) {\n\t\t\t\t\t\t\tseries.setDataSet(newId);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\n\t\t\t\t\tthis.markDirtyExtremes();\n\n\t\t\t\t\tthis._root.events.once(\"frameended\", () => {\n\t\t\t\t\t\tthis._root.events.once(\"frameended\", () => {\n\t\t\t\t\t\t\tconst type = \"groupintervalchanged\";\n\t\t\t\t\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\t\t\t\t\tthis.events.dispatch(type, { type: type, target: this });\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\n\t\t\t$array.each(this.series, (series) => {\n\t\t\t\tif (series.get(\"baseAxis\") === this) {\n\t\t\t\t\tlet fieldName = <any>(this.getPrivate(\"name\")! + this.get(\"renderer\").getPrivate(\"letter\")!);\n\n\t\t\t\t\tconst start = $array.getFirstSortedIndex(series.dataItems, (dataItem) => {\n\t\t\t\t\t\treturn $order.compare(dataItem.get(fieldName), selectionMin);\n\t\t\t\t\t});\n\n\t\t\t\t\tlet startIndex = start.index;\n\n\t\t\t\t\tif (startIndex > 0) {\n\t\t\t\t\t\tstartIndex -= 1;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectionMax += this.baseDuration() * (1 - this.get(\"endLocation\", 1));\n\n\t\t\t\t\tconst end = $array.getSortedIndex(series.dataItems, (dataItem) => {\n\t\t\t\t\t\treturn $order.compare(dataItem.get(fieldName), selectionMax);\n\t\t\t\t\t});\n\n\t\t\t\t\tlet endIndex = end.index;\n\t\t\t\t\tlet endIndex2 = endIndex;\n\n\t\t\t\t\tif (endIndex2 > 1) {\n\t\t\t\t\t\tendIndex2--;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst firstDataItem = series.dataItems[startIndex];\n\t\t\t\t\tconst lastDataItem = series.dataItems[endIndex2];\n\n\t\t\t\t\tlet lastDate: number | undefined;\n\t\t\t\t\tlet firstDate: number | undefined;\n\t\t\t\t\tif (firstDataItem) {\n\t\t\t\t\t\tfirstDate = firstDataItem.get(fieldName);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (lastDataItem) {\n\t\t\t\t\t\tlastDate = lastDataItem.get(fieldName);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet outOfSelection = false;\n\t\t\t\t\tif (lastDate != null && firstDate != null) {\n\t\t\t\t\t\tif (lastDate < selectionMin || firstDate > selectionMax) {\n\t\t\t\t\t\t\toutOfSelection = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tseries.setPrivate(\"outOfSelection\", outOfSelection);\n\t\t\t\t\tseries.setPrivate(\"startIndex\", startIndex);\n\t\t\t\t\tseries.setPrivate(\"adjustedStartIndex\", series._adjustStartIndex(startIndex));\n\t\t\t\t\tseries.setPrivate(\"endIndex\", endIndex);\n\t\t\t\t\tthis.root.events.once(\"frameended\", () => {\n\t\t\t\t\t\tseries._markDirtyPrivateKey(\"adjustedStartIndex\");\n\t\t\t\t\t})\n\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _adjustMinMax(min: number, max: number, gridCount: number, _strictMode?: boolean): IMinMaxStep {\n\t\treturn { min: min, max: max, step: (max - min) / gridCount };\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic intervalDuration(): number {\n\t\treturn this._intervalDuration;\n\t}\n\n\tprotected _saveMinMax(min: number, max: number) {\n\t\tlet groupInterval = this.getPrivate(\"groupInterval\");\n\n\t\tif (!groupInterval) {\n\t\t\tgroupInterval = this.get(\"baseInterval\");\n\t\t}\n\n\t\tlet id = groupInterval.timeUnit + groupInterval.count;\n\t\tthis._intervalMin[id] = min;\n\t\tthis._intervalMax[id] = max;\n\t}\n\n\tprotected _getM(timeUnit: TimeUnit) {\n\t\tif (timeUnit == \"month\" || timeUnit == \"year\" || timeUnit == \"day\") {\n\t\t\treturn 1.05;\n\t\t}\n\t\treturn 1.01;\n\t}\n\n\tprotected _getMinorInterval(interval: ITimeInterval): ITimeInterval | undefined {\n\t\tlet minorGridInterval: ITimeInterval | undefined;\n\t\tlet count = interval.count;\n\t\tlet timeUnit = interval.timeUnit;\n\t\tif (count > 1) {\n\t\t\tif (count == 10) {\n\t\t\t\tcount = 5;\n\t\t\t}\n\t\t\telse if (count == 15) {\n\t\t\t\tcount = 5;\n\t\t\t}\n\t\t\telse if (count == 12) {\n\t\t\t\tcount = 2;\n\t\t\t}\n\t\t\telse if (count == 6) {\n\t\t\t\tcount = 1;\n\t\t\t}\n\t\t\telse if (count == 30) {\n\t\t\t\tcount = 10;\n\t\t\t}\n\t\t\telse if (count < 10) {\n\t\t\t\tcount = 1;\n\t\t\t}\n\t\t\tminorGridInterval = { timeUnit: timeUnit, count: count };\n\t\t}\n\t\tif (timeUnit == \"week\") {\n\t\t\tif (this.getPrivate(\"baseInterval\")?.timeUnit != \"week\") {\n\t\t\t\tminorGridInterval = { timeUnit: \"day\", count: 1 };\n\t\t\t}\n\t\t\telse {\n\t\t\t\tminorGridInterval = { timeUnit: \"week\", count: 1 };\n\t\t\t}\n\t\t}\n\t\treturn minorGridInterval;\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\t\t\tconst root = this._root;\n\t\t\tconst selectionMin = Math.round(this.getPrivate(\"selectionMin\")! as number);\n\t\t\tconst selectionMax = Math.round(this.getPrivate(\"selectionMax\")! as number);\n\t\t\tconst renderer = this.get(\"renderer\");\n\t\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\n\t\t\tlet value = selectionMin;\n\t\t\tlet i = 0;\n\n\t\t\tconst intervals = this.get(\"gridIntervals\")!;\n\t\t\tlet gridInterval = $time.chooseInterval(0, selectionMax - selectionMin, renderer.gridCount(), intervals);\n\n\t\t\tif ($time.getIntervalDuration(gridInterval) < this.baseDuration()) {\n\t\t\t\tgridInterval = { ...baseInterval };\n\t\t\t}\n\n\t\t\tconst intervalDuration = $time.getIntervalDuration(gridInterval);\n\t\t\tthis._intervalDuration = intervalDuration;\n\n\t\t\tconst nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\n\t\t\tconst utc = root.utc;\n\t\t\tconst timezone = root.timezone;\n\n\t\t\t//value = $time.round(new Date(selectionMin - intervalDuration), gridInterval.timeUnit, gridInterval.count, firstDay, utc, new Date(min), timezone).getTime();\n\t\t\tvalue = $time.roun(selectionMin - intervalDuration, gridInterval.timeUnit, gridInterval.count, root, min);\n\t\t\tlet previousValue = value - intervalDuration;\n\t\t\tlet format: string | Intl.DateTimeFormatOptions;\n\t\t\tconst formats = this.get(\"dateFormats\")!;\n\n\t\t\tthis.setPrivateRaw(\"gridInterval\", gridInterval);\n\n\t\t\tconst minorLabelsEnabled = renderer.get(\"minorLabelsEnabled\");\n\t\t\tconst minorGridEnabled = renderer.get(\"minorGridEnabled\", minorLabelsEnabled);\n\n\t\t\tlet minorGridInterval: ITimeInterval | undefined;\n\t\t\tlet minorDuration = 0;\n\n\t\t\tif (minorGridEnabled) {\n\t\t\t\tminorGridInterval = this._getMinorInterval(gridInterval);\n\t\t\t\tminorDuration = $time.getIntervalDuration(minorGridInterval);\n\t\t\t}\n\n\t\t\tlet m = 0;\n\t\t\twhile (value < selectionMax + intervalDuration) {\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\tthis._toggleDataItem(dataItem, true);\n\n\t\t\t\tdataItem.setRaw(\"value\", value);\n\t\t\t\tdataItem.setRaw(\"labelEndValue\", undefined);\n\n\t\t\t\tlet endValue = value + $time.getDuration(gridInterval.timeUnit, gridInterval.count * this._getM(gridInterval.timeUnit));\n\t\t\t\t//endValue = $time.round(new Date(endValue), gridInterval.timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\tendValue = $time.roun(endValue, gridInterval.timeUnit, 1, root);\n\n\t\t\t\tdataItem.setRaw(\"endValue\", endValue);\n\n\t\t\t\tlet date = new Date(value);\n\n\t\t\t\tformat = formats[gridInterval.timeUnit];\n\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\n\t\t\t\t\tif (gridInterval.timeUnit != \"year\") {\n\t\t\t\t\t\tif ($time.checkChange(value, previousValue, nextGridUnit, utc, timezone)) {\n\t\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![gridInterval.timeUnit];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel.set(\"text\", root.dateFormatter.format(date, format!));\n\t\t\t\t}\n\n\t\t\t\tlet count = gridInterval.count;\n\t\t\t\t// so that labels of week would always be at the beginning of the grid\n\t\t\t\tif (gridInterval.timeUnit == \"week\") {\n\t\t\t\t\tdataItem.setRaw(\"labelEndValue\", value);\n\t\t\t\t}\n\n\t\t\t\tif (minorGridEnabled) {\n\t\t\t\t\tcount = 1;\n\t\t\t\t\tlet timeUnit = gridInterval.timeUnit;\n\t\t\t\t\tif (timeUnit == \"week\") {\n\t\t\t\t\t\ttimeUnit = \"day\";\n\t\t\t\t\t}\n\n\t\t\t\t\tlet labelEndValue = value + $time.getDuration(timeUnit, this._getM(timeUnit));\n\t\t\t\t\t//labelEndValue = $time.round(new Date(labelEndValue), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\t\tlabelEndValue = $time.roun(labelEndValue, timeUnit, 1, root);\n\t\t\t\t\tdataItem.setRaw(\"labelEndValue\", labelEndValue);\n\t\t\t\t}\n\n\t\t\t\tthis._prepareDataItem(dataItem, count);\n\n\t\t\t\tpreviousValue = value;\n\t\t\t\tvalue = endValue;\n\n\t\t\t\t// min grid\n\t\t\t\tif (minorGridInterval) {\n\t\t\t\t\tconst minorTimeUnit = minorGridInterval.timeUnit;\n\t\t\t\t\tconst minorCount = minorGridInterval.count;\n\t\t\t\t\tconst mmm = this._getM(minorTimeUnit);\n\n\t\t\t\t\t//let minorValue = $time.round(new Date(previousValue + minorDuration * this._getM(minorGridInterval.timeUnit)), minorGridInterval.timeUnit, minorGridInterval.count, firstDay, utc, new Date(previousValue), timezone).getTime();\n\t\t\t\t\tlet minorValue = $time.roun(previousValue + minorDuration * mmm, minorTimeUnit, minorCount, root, previousValue);\n\n\t\t\t\t\tlet previousMinorValue: number | undefined;\n\t\t\t\t\tlet minorFormats = this.get(\"minorDateFormats\", this.get(\"dateFormats\"))!;\n\n\t\t\t\t\twhile (minorValue < value - 0.01 * minorDuration) {\n\t\t\t\t\t\tlet minorDataItem: DataItem<this[\"_dataItemSettings\"]>;\n\t\t\t\t\t\tif (this.minorDataItems.length < m + 1) {\n\t\t\t\t\t\t\tminorDataItem = new DataItem(this, undefined, {});\n\t\t\t\t\t\t\tthis.minorDataItems.push(minorDataItem);\n\t\t\t\t\t\t\tthis.processDataItem(minorDataItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tminorDataItem = this.minorDataItems[m];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._createAssets(minorDataItem, [\"minor\"], true);\n\n\t\t\t\t\t\tthis._toggleDataItem(minorDataItem, true);\n\n\t\t\t\t\t\tminorDataItem.setRaw(\"value\", minorValue);\n\n\t\t\t\t\t\tlet minorEndValue = minorValue + $time.getDuration(minorTimeUnit, minorCount * mmm);\n\t\t\t\t\t\t//minorEndValue = $time.round(new Date(minorEndValue), minorGridInterval.timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\t\t\tminorEndValue = $time.roun(minorEndValue, minorTimeUnit, 1, root);\n\n\t\t\t\t\t\tminorDataItem.setRaw(\"endValue\", minorEndValue);\n\n\t\t\t\t\t\tlet date = new Date(minorValue);\n\n\t\t\t\t\t\tformat = minorFormats[minorTimeUnit];\n\n\t\t\t\t\t\tconst minorLabel = minorDataItem.get(\"label\");\n\n\t\t\t\t\t\tif (minorLabel) {\n\t\t\t\t\t\t\tif (minorLabelsEnabled) {\n\t\t\t\t\t\t\t\tminorLabel.set(\"text\", root.dateFormatter.format(date, format!));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tminorLabel.setPrivate(\"visible\", false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._prepareDataItem(minorDataItem, 1);\n\n\t\t\t\t\t\tif (minorValue == previousMinorValue) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpreviousMinorValue = minorValue;\n\t\t\t\t\t\tminorValue = minorEndValue;\n\t\t\t\t\t\tm++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (value == previousValue) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\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._toggleDataItem(this.dataItems[j], false);\n\t\t\t}\n\n\t\t\tfor (let j = m; j < this.minorDataItems.length; j++) {\n\t\t\t\tthis._toggleDataItem(this.minorDataItems[j], false);\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\t\t}\n\n\t\tthis._updateGhost();\n\t}\n\n\tprotected _updateFinals(start: number, end: number) {\n\t\tthis.setPrivateRaw(\"selectionMinFinal\", this.positionToValue(start));\n\t\tthis.setPrivateRaw(\"selectionMaxFinal\", this.positionToValue(end));\n\t}\n\n\tprotected _getDelta() {\n\t\tthis._deltaMinMax = this.baseDuration() / 2;\n\t}\n\n\tprotected _fixMin(min: number) {\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\t\tconst timeUnit = baseInterval.timeUnit;\n\t\t//let startTime = $time.round(new Date(min), timeUnit, baseInterval.count, firstDay, utc, undefined, timezone).getTime();\n\t\tlet startTime = $time.roun(min, timeUnit, baseInterval.count, this._root);\n\n\t\tlet endTime = startTime + $time.getDuration(timeUnit, baseInterval.count * this._getM(timeUnit))\n\t\t//endTime = $time.round(new Date(endTime), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\tendTime = $time.roun(endTime, timeUnit, 1, this._root);\n\t\treturn startTime + (endTime - startTime) * this.get(\"startLocation\", 0);\n\t}\n\n\tprotected _fixMax(max: number) {\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\t\tconst timeUnit = baseInterval.timeUnit;\n\t\t//let startTime = $time.round(new Date(max), timeUnit, baseInterval.count, firstDay, utc, undefined, timezone).getTime();\n\t\tlet startTime = $time.roun(max, timeUnit, baseInterval.count, this._root);\n\t\tlet endTime = startTime + $time.getDuration(timeUnit, baseInterval.count * this._getM(timeUnit))\n\t\t//endTime = $time.round(new Date(endTime), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\tendTime = $time.roun(endTime, timeUnit, 1, this._root);\n\n\t\treturn startTime + (endTime - startTime) * this.get(\"endLocation\", 1);\n\t}\n\n\tprotected _updateDates(_date: number, _series: XYSeries) {\n\n\t}\n\n\tpublic _handleSeriesRemoved() {\n\t\tthis.setPrivate(\"baseInterval\", this.get(\"baseInterval\"));\n\t\tthis.setPrivate(\"min\", undefined);\n\t\tthis.setPrivate(\"minFinal\", undefined);\n\t}\n\n\t/**\n\t * Returns a duration of currently active `baseInterval` in milliseconds.\n\t * \n\t * @return Duration\n\t */\n\tpublic baseDuration(): number {\n\t\treturn this._baseDuration;\n\t\t//return $time.getIntervalDuration(this.getPrivate(\"baseInterval\"));\n\t}\n\n\t/**\n\t * Returns a duration of user-defined `baseInterval` in milliseconds.\n\t *\n\t * @return Duration\n\t */\n\tpublic baseMainDuration(): number {\n\t\treturn $time.getIntervalDuration(this.get(\"baseInterval\"));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic processSeriesDataItem(dataItem: DataItem<IXYSeriesDataItem>, fields: Array<string>) {\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\n\t\tif (!dataItem.open) {\n\t\t\tdataItem.open = {};\n\t\t}\n\t\tif (!dataItem.close) {\n\t\t\tdataItem.close = {};\n\t\t}\n\n\t\t$array.each(fields, (field) => {\n\t\t\tlet value = dataItem.get(field as any);\n\t\t\tif ($type.isNumber(value)) {\n\t\t\t\tlet startTime = dataItem.open![field];\n\t\t\t\tlet endTime = dataItem.close![field];\n\t\t\t\t// this is done to save cpu, as rounding is quite expensive, especially with timezone set. \n\t\t\t\t// if value is between prev start and end, it means it didn't change, all is fine.\n\t\t\t\tif (value >= startTime && value <= endTime) {\n\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconst timeUnit = baseInterval.timeUnit;\n\t\t\t\t\tconst count = baseInterval.count;\n\t\t\t\t\t//startTime = $time.round(new Date(value), timeUnit, count, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\t\tstartTime = $time.roun(value, timeUnit, count, this._root);\n\t\t\t\t\tendTime = startTime + $time.getDuration(timeUnit, count * this._getM(timeUnit));\n\t\t\t\t\t//endTime = $time.round(new Date(endTime), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\t\tendTime = $time.roun(endTime, timeUnit, 1, this._root);\n\n\t\t\t\t\tdataItem.open![field] = startTime;\n\t\t\t\t\tdataItem.close![field] = endTime;\n\t\t\t\t}\n\n\t\t\t\tthis._updateDates(startTime, dataItem.component as XYSeries);\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected _handleSizeDirty() {\n\t\t// void \n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemPositionX(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number, exactLocation?: boolean): number {\n\n\t\tlet openValue;\n\t\tlet closeValue;\n\t\tlet value;\n\n\t\tif (exactLocation) {\n\t\t\tvalue = dataItem.get(field as any);\n\t\t}\n\t\telse {\n\t\t\tif (dataItem.open && dataItem.close) {\n\t\t\t\topenValue = dataItem.open[field];\n\t\t\t\tcloseValue = dataItem.close[field];\n\t\t\t}\n\t\t\telse {\n\t\t\t\topenValue = dataItem.get(field as any)\n\t\t\t\tcloseValue = openValue;\n\t\t\t}\n\n\t\t\tvalue = openValue + (closeValue - openValue) * cellLocation;\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 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 getDataItemPositionY(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number, exactLocation?: boolean): number {\n\t\tlet openValue;\n\t\tlet closeValue;\n\t\tlet value;\n\t\tif (exactLocation) {\n\t\t\tvalue = dataItem.get(field as any);\n\t\t}\n\t\telse {\n\t\t\tif (dataItem.open && dataItem.close) {\n\t\t\t\topenValue = dataItem.open[field];\n\t\t\t\tcloseValue = dataItem.close[field];\n\t\t\t}\n\t\t\telse {\n\t\t\t\topenValue = dataItem.get(field as any)\n\t\t\t\tcloseValue = openValue;\n\t\t\t}\n\n\t\t\tvalue = openValue + (closeValue - openValue) * cellLocation;\n\t\t\tvalue = this._baseValue + (value - this._baseValue) * axisLocation;\n\t\t}\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 roundAxisPosition(position: number, location: number): number {\n\t\tlet value = this.positionToValue(position);\n\t\tvalue = value - (location - 0.5) * this.baseDuration();\n\n\t\tlet baseInterval = this.getPrivate(\"baseInterval\");\n\t\tif (!$type.isNaN(value)) {\n\t\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\t\tconst timeUnit = baseInterval.timeUnit;\n\t\t\tconst utc = this._root.utc;\n\t\t\tconst timezone = this._root.timezone;\n\t\t\tconst count = baseInterval.count;\n\n\t\t\t//value = $time.round(new Date(value), timeUnit, count, firstDay, utc, new Date(this.getPrivate(\"min\", 0)), timezone).getTime();\n\t\t\tvalue = $time.roun(value, timeUnit, count, this._root, this.getPrivate(\"min\", 0));\n\n\t\t\tlet duration = $time.getDateIntervalDuration(baseInterval, new Date(value), firstDay, utc, timezone);\n\t\t\tif (timezone) {\n\t\t\t\t//value = $time.round(new Date(value + this.baseDuration() * 0.05), timeUnit, count, firstDay, utc, new Date(this.getPrivate(\"min\", 0)), timezone).getTime();\n\t\t\t\tvalue = $time.roun(value + this.baseDuration() * 0.05, timeUnit, count, this._root, this.getPrivate(\"min\", 0));\n\t\t\t\tduration = $time.getDateIntervalDuration(baseInterval, new Date(value + duration * location), firstDay, utc, timezone);\n\t\t\t}\n\n\t\t\treturn this.valueToPosition(value + duration * location);\n\t\t}\n\t\treturn NaN;\n\t}\n\n\t/**\n\t * Returns text to be used in an axis tooltip for specific relative position.\n\t *\n\t * NOTE: Unless `adjustPosition` (2nd parameter) is set to `false`, the method\n\t * will adjust position by `tooltipIntervalOffset`.\n\t *\n\t * @param position Position\n\t * @param adjustPosition Adjust position\n\t * @return Tooltip text\n\t */\n\tpublic getTooltipText(position: number, adjustPosition?: boolean): string | undefined {\n\t\t//@todo number formatter + tag\n\t\tif (this.getPrivate(\"min\") != null) {\n\t\t\tlet format = this.get(\"tooltipDateFormats\")![this.getPrivate(\"baseInterval\").timeUnit];\n\t\t\tlet value = this.positionToValue(position);\n\t\t\tif ($type.isNumber(value)) {\n\t\t\t\tlet date = new Date(value);\n\n\t\t\t\tlet baseInterval = this.getPrivate(\"baseInterval\");\n\t\t\t\tlet duration = $time.getDateIntervalDuration(baseInterval, date, this._root.locale.firstDayOfWeek, this._root.utc, this._root.timezone);\n\n\t\t\t\tif (adjustPosition !== false) {\n\t\t\t\t\tdate = new Date(value + this.get(\"tooltipIntervalOffset\", -this.get(\"tooltipLocation\", 0.5)) * duration)\n\t\t\t\t}\n\n\t\t\t\treturn this._root.dateFormatter.format(date, this.get(\"tooltipDateFormat\", format));\n\t\t\t}\n\n\t\t}\n\t\treturn \"\";\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, location?: number, snap?: boolean): 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\tif (location == null) {\n\t\t\tlocation = 0.5;\n\t\t}\n\n\t\tvalue = value - (location - 0.5) * this.baseDuration();\n\n\t\tconst result = $array.getSortedIndex(series.dataItems, (dataItem) => {\n\t\t\tlet diValue = 0;\n\t\t\tif (dataItem.open) {\n\t\t\t\tdiValue = dataItem.open[fieldName];\n\t\t\t}\n\n\t\t\treturn $order.compare(diValue, value);\n\t\t});\n\n\t\tif (snap || series.get(\"snapTooltip\")) {\n\t\t\tlet first = series.dataItems[result.index - 1];\n\t\t\tlet second = series.dataItems[result.index];\n\n\t\t\tif (first && second) {\n\t\t\t\tif (first.open && second.close) {\n\t\t\t\t\tlet open = first.open[fieldName];\n\t\t\t\t\tlet close = second.close[fieldName];\n\n\t\t\t\t\tif (Math.abs(value - open) > Math.abs(value - close)) {\n\t\t\t\t\t\treturn second;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (first) {\n\t\t\t\treturn first;\n\t\t\t}\n\n\t\t\tif (second) {\n\t\t\t\treturn second;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tconst dataItem = series.dataItems[result.index - 1];\n\n\t\t\tif (dataItem) {\n\t\t\t\tif (dataItem.open && dataItem.close) {\n\t\t\t\t\tlet open = dataItem.open[fieldName];\n\t\t\t\t\tlet close = dataItem.close[fieldName];\n\n\t\t\t\t\tif (value >= open && value <= close) {\n\t\t\t\t\t\treturn dataItem;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic shouldGap(dataItem: DataItem<IXYSeriesDataItem>, nextItem: DataItem<IXYSeriesDataItem>, autoGapCount: number, fieldName: string): boolean {\n\t\tconst value1 = dataItem.get(fieldName as any);\n\t\tconst value2 = nextItem.get(fieldName as any);\n\n\t\tif (value2 - value1 > this.baseDuration() * autoGapCount) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Zooms the axis to specific `start` and `end` dates.\n\t *\n\t * Optional `duration` specifies duration of zoom animation in milliseconds.\n\t *\n\t * @param start Start Date\n\t * @param end End Date\n\t * @param duration Duration in milliseconds\n\t */\n\tpublic zoomToDates(start: Date, end: Date, duration?: number) {\n\t\tthis.zoomToValues(start.getTime(), end.getTime(), duration);\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\tif (this.get(\"groupData\")) {\n\t\t\t\tconst futureGroupInterval = this.getGroupInterval(end - start);\n\t\t\t\tconst baseInterval = this.get(\"baseInterval\");\n\n\t\t\t\tlet baseMin = this.getIntervalMin(baseInterval);\n\t\t\t\tlet baseMax = this.getIntervalMax(baseInterval) - 1;\n\t\t\t\tbaseMax = $time.roun(baseMax, futureGroupInterval.timeUnit, futureGroupInterval.count, this.root);\n\t\t\t\tbaseMax += this._getM(futureGroupInterval.timeUnit) * $time.getIntervalDuration(futureGroupInterval);\n\t\t\t\tbaseMax = $time.roun(baseMax, futureGroupInterval.timeUnit, futureGroupInterval.count, this.root);\n\n\t\t\t\tlet futureMin = $time.roun(baseMin, futureGroupInterval.timeUnit, futureGroupInterval.count, this.root);\n\t\t\t\tlet futureMax = $time.roun(baseMax, futureGroupInterval.timeUnit, futureGroupInterval.count, this.root);\n\n\t\t\t\tlet s = (start - futureMin) / (futureMax - futureMin);\n\t\t\t\tlet e = (end - futureMin) / (futureMax - futureMin);\n\n\t\t\t\tthis.zoom(s, e, duration);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.zoom((start - min) / (max - min), (end - min) / (max - min), duration);\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * Returns a `Date` object corresponding to specific position within plot\n\t * area.\n\t *\n\t * @param position Pposition\n\t * @return Date\n\t */\n\tpublic positionToDate(position: number): Date {\n\t\treturn new Date(this.positionToValue(position));\n\t}\n\n\t/**\n\t * Returns a relative position within plot area that corresponds to specific\n\t * date.\n\t *\n\t * @param date Date\n\t * @return Position\n\t */\n\tpublic dateToPosition(date: Date): number {\n\t\treturn this.valueToPosition(date.getTime());\n\t}\n\n\t/**\n\t * Returns relative position between two grid lines of the axis.\n\t *\n\t * @since 5.2.30\n\t * @return Position\n\t */\n\tpublic getCellWidthPosition(): number {\n\t\tlet max = this.getPrivate(\"selectionMax\", this.getPrivate(\"max\"));\n\t\tlet min = this.getPrivate(\"selectionMin\", this.getPrivate(\"min\"));\n\n\t\tif ($type.isNumber(max) && $type.isNumber(min)) {\n\t\t\treturn this._intervalDuration / (max - min);\n\t\t}\n\t\treturn 0.05;\n\t}\n\n\tpublic nextPosition(count?: number) {\n\t\tif (count == null) {\n\t\t\tcount = 1;\n\t\t}\n\n\t\tlet dtime = this.get(\"tooltipLocation\", 0.5) * this.baseDuration();\n\t\tif (this.get(\"renderer\").getPrivate(\"letter\") == \"Y\") {\n\t\t\tcount *= -1;\n\t\t}\n\n\t\tlet tooltipValue = this.positionToValue(this.getPrivate(\"tooltipPosition\", 0));\n\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\t\tlet time = this._nextTime(tooltipValue, count, baseInterval);\n\n\t\tlet selectionMin = this.getPrivate(\"selectionMin\", 0);\n\t\tlet selectionMax = this.getPrivate(\"selectionMax\", 0);\n\n\t\tlet min = $time.roun(selectionMin, baseInterval.timeUnit, baseInterval.count, this._root);\n\t\tlet max = $time.roun(selectionMax, baseInterval.timeUnit, baseInterval.count, this._root);\n\n\t\ttime += dtime;\n\t\ttime = $math.fitToRange(time, min + dtime, max - dtime);\n\n\t\treturn this.toGlobalPosition(this.valueToPosition(time));\n\t}\n\n\tprotected _nextTime(time: number, count: number, baseInterval: ITimeInterval) {\n\t\treturn $time.roun(time + count * this.baseDuration(), baseInterval.timeUnit, baseInterval.count, this._root);\n\t}\n}\n"]}
1
+ {"version":3,"file":"DateAxis.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/xy/axes/DateAxis.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAA4F,MAAM,aAAa,CAAC;AAElI,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AACrD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AAiLjD;;;;;GAKG;AACH,MAAM,OAAO,QAAiC,SAAQ,SAAY;IAAlE;;QASC;;;;mBAAkC,KAAK;WAAC;QACxC;;;;mBAAwC,KAAK;WAAC;QAC9C;;;;mBAAyC,KAAK;WAAC;QAC/C;;;;mBAAsC,CAAC;WAAC;QACxC;;;;mBAAkC,CAAC;WAAC;QAEpC;;;;mBAAsD,EAAE;WAAC;QACzD;;;;mBAAsD,EAAE;WAAC;IA+nC1D,CAAC;IA7nCO,SAAS;QACf,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAChF,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;YAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAA;IACH,CAAC;IAES,gBAAgB,CAAC,QAAuB;QACjD,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAES,cAAc;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAChD,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,IAAI,QAAQ,EAAE;YACvD,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;SACnD;aACI;YACJ,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;SACnI;IACF,CAAC;IAES,UAAU;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;YAEjD,IAAI,CAAC,cAAc,EAAE,CAAC;YAEtB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAE,CAAC;YACxD,IAAI,aAAa,EAAE;gBAClB,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;aACrC;iBACI;gBACJ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;aAChD;YAGD,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;gBAClC,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAE,CAAC;gBAC/C,IAAI,aAAa,EAAE;oBAClB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;oBAC/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;iBAC1B;aACD;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;oBACvB,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;wBAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;4BACnC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;wBAC/B,CAAC,CAAC,CAAA;wBAEF,IAAI,CAAC,kBAAkB,EAAE,CAAC;qBAC1B;yBACI;wBACJ,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;wBAC5C,IAAI,aAAa,GAAW,YAAY,CAAC,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;wBACvE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;4BACnC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;4BACjC,MAAM,CAAC,aAAa,EAAE,CAAC;wBACxB,CAAC,CAAC,CAAA;wBAEF,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;wBACpC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;wBAC/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;qBACzB;oBACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBACzB;aACD;SACD;IACF,CAAC;IAGM,gBAAgB,CAAC,MAAgB;QACvC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,iCAAiC;YAE3D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAE/B,8CAA8C;YAC9C,IAAI,SAAS,GAAoB,EAAE,CAAC;YACpC,IAAI,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAE3C,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAE,CAAC;YACjD,IAAI,cAAc,EAAE,GAAG;YACvB,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACxC,IAAI,gBAAgB,GAAG,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBAC3D,IAAI,gBAAgB,GAAG,YAAY,EAAE;oBACpC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACzB;YACF,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;YAEtB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAE,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC;YAClF,IAAI,MAAqB,CAAC;YAE1B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAExC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE;gBACrC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;aAC9B;iBACI,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE;gBAC1C,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;aAC9B;YAED,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;YACtC,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5C,IAAI,aAAa,GAAW,YAAY,CAAC,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;YAEvE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;YAE5C,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACtD,IAAI,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YACjE,IAAI,aAAa,EAAE;gBAClB,cAAc,GAAG,IAAI,CAAC;aACtB;YAED,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACnC,IAAI,YAAY,GAAG,CAAC,QAAQ,CAAC;gBAC7B,IAAI,SAAS,GAAG,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACnD,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBAEjC,IAAI,WAAwC,CAAC;gBAE7C,IAAI,GAAG,GAAgC,EAAE,CAAC;gBAC1C,IAAI,KAAK,GAAgC,EAAE,CAAC;gBAE5C,IAAI,gBAAgB,GAAgC,EAAE,CAAC;gBACvD,IAAI,aAAa,GAAgC,EAAE,CAAC;gBAEpD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC7B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACf,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjB,gBAAgB,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,SAAS,CAAQ,CAAC,CAAC;oBACjE,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC;gBAC1C,CAAC,CAAC,CAAA;gBAEF,IAAI,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAE5D,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,SAAc,CAAC;gBACnB,IAAI,SAAS,EAAE;oBACd,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAU,CAAC,CAAC;iBACzC;gBAED,IAAI,eAAwD,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;oBACnC,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAU,CAAC,CAAC;oBACpC,iIAAiI;oBACjI,IAAI,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;oBAC7F,IAAI,WAAgB,CAAC;oBAErB,IAAI,YAAY,GAAG,WAAW,GAAG,gBAAgB,GAAG,EAAE,EAAE;wBACvD,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;wBAEjD,WAAW,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;wBACnF,WAAW,CAAC,MAAM,CAAC,GAAU,EAAE,WAAW,CAAC,CAAC;wBAE5C,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAE9C,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;4BAC7B,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;4BACvC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gCAC1B,WAAW,CAAC,MAAM,CAAC,KAAY,EAAE,KAAK,CAAC,CAAC;gCACxC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAQ,EAAE,KAAK,CAAC,CAAC;gCACvD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCACjB,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;6BACnB;iCACI;gCACJ,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCACf,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;6BACjB;wBACF,CAAC,CAAC,CAAA;wBAEF,IAAI,cAAc,EAAE;4BACnB,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;yBACzC;wBAED,IAAI,aAAa,IAAI,eAAe,EAAE;4BACrC,aAAa,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;yBACzC;wBAED,eAAe,GAAG,WAAW,CAAC;qBAC9B;yBACI;wBACJ,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;4BAC7B,IAAI,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;4BACvC,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;4BAEvC,IAAI,KAAK,IAAI,IAAI,EAAE;gCAElB,IAAI,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;gCAEjD,QAAQ,QAAQ,EAAE;oCACjB,KAAK,OAAO;wCACX,WAAW,CAAC,MAAM,CAAC,KAAY,EAAE,KAAK,CAAC,CAAC;wCACxC,MAAM;oCAEP,KAAK,KAAK;wCACT,WAAW,CAAC,MAAM,CAAC,KAAY,EAAE,YAAY,GAAG,KAAK,CAAC,CAAC;wCACvD,MAAM;oCAEP,KAAK,MAAM;wCACV,MAAM;oCAEP,KAAK,KAAK;wCACT,IAAI,KAAK,GAAG,YAAY,EAAE;4CACzB,WAAW,CAAC,MAAM,CAAC,KAAY,EAAE,KAAK,CAAC,CAAC;yCACxC;wCACD,MAAM;oCAEP,KAAK,MAAM;wCACV,IAAI,KAAK,GAAG,YAAY,EAAE;4CACzB,WAAW,CAAC,MAAM,CAAC,KAAY,EAAE,KAAK,CAAC,CAAC;yCACxC;wCACD,MAAM;oCAEP,KAAK,SAAS;wCACb,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wCACf,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;wCACpB,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;wCACxC,WAAW,CAAC,MAAM,CAAC,KAAY,EAAE,OAAO,CAAC,CAAC;wCAC1C,MAAM;oCAEP,KAAK,SAAS;wCACb,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;4CAC7C,WAAW,CAAC,MAAM,CAAC,KAAY,EAAE,KAAK,CAAC,CAAC;yCACxC;wCACD,MAAM;iCACP;gCAED,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC,CAAC;gCAC/E,IAAI,WAAW,GAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gCAC1D,WAAW,CAAC,GAAU,CAAC,GAAG,WAAW,CAAC;gCACtC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;6BACtC;wBACF,CAAC,CAAC,CAAA;wBAEF,IAAI,cAAc,EAAE;4BACnB,WAAW,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBAC7C;qBACD;oBACD,YAAY,GAAG,WAAW,CAAC;gBAC5B,CAAC,CAAC,CAAA;gBAEF,IAAI,aAAa,IAAI,eAAe,EAAE;oBACrC,aAAa,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;iBACzC;YACF,CAAC,CAAC,CAAA;YAEF,IAAI,MAAM,CAAC,UAAU,EAAE;gBACtB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;aACrC;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,yCAAyC;YACzC,IAAI,IAAI,CAAC,YAAY,EAAE;gBACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;oBACzC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtB,CAAC,CAAC,CAAA;aACF;SACD;IACF,CAAC;IAEM,WAAW;QACjB,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,QAAgB;QACvC,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAI,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAE,CAAC,CAAC;QACrH,IAAI,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE;YACvF,aAAa,qBAAQ,YAAY,CAAE,CAAC;SACpC;QACD,OAAO,aAAa,CAAC;IACtB,CAAC;IAED;;;;;;;;OAQG;IACI,cAAc,CAAC,QAAuB;QAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;OAQG;IACI,cAAc,CAAC,QAAuB;QAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAES,kBAAkB;QAC3B,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAE3B,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAY,CAAC,CAAC;QAC1E,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAY,CAAC,CAAC;QAE1E,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YAEjE,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBACjC,YAAY,IAAI,CAAC,CAAC;aAClB;YAED,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBACvD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAEhC,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC9C,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBAE/C,IAAI,kBAAkB,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;gBAEjJ,IAAI,OAAO,EAAE;oBACZ,IAAI,QAAQ,GAAG,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;oBAClD,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC;iBACzE;gBAED,IAAI,CAAC,aAAa,EAAE;oBACnB,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;iBAC1D;gBAED,IAAI,aAAa,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE;oBACrJ,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;oBAChC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;oBACnD,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAA;oBAEpC,IAAI,KAAK,GAAG,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC;oBACzD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;wBACnC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;4BACpC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;yBACzB;oBACF,CAAC,CAAC,CAAA;oBAEF,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAEzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;wBACzC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;4BACzC,MAAM,IAAI,GAAG,sBAAsB,CAAC;4BACpC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gCAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;6BACzD;wBACF,CAAC,CAAC,CAAA;oBACH,CAAC,CAAC,CAAA;iBACF;aACD;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBACnC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;oBACpC,IAAI,SAAS,GAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAE,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC,CAAC;oBAE7F,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;wBACvE,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;oBAC9D,CAAC,CAAC,CAAC;oBAEH,IAAI,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;oBAE7B,IAAI,UAAU,GAAG,CAAC,EAAE;wBACnB,UAAU,IAAI,CAAC,CAAC;qBAChB;oBAED,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;oBAEvE,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;wBAChE,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;oBAC9D,CAAC,CAAC,CAAC;oBAEH,IAAI,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;oBACzB,IAAI,SAAS,GAAG,QAAQ,CAAC;oBAEzB,IAAI,SAAS,GAAG,CAAC,EAAE;wBAClB,SAAS,EAAE,CAAC;qBACZ;oBAED,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;oBACnD,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBAEjD,IAAI,QAA4B,CAAC;oBACjC,IAAI,SAA6B,CAAC;oBAClC,IAAI,aAAa,EAAE;wBAClB,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;qBACzC;oBAED,IAAI,YAAY,EAAE;wBACjB,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;qBACvC;oBAED,IAAI,cAAc,GAAG,KAAK,CAAC;oBAC3B,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE;wBAC1C,IAAI,QAAQ,GAAG,YAAY,IAAI,SAAS,GAAG,YAAY,EAAE;4BACxD,cAAc,GAAG,IAAI,CAAC;yBACtB;qBACD;oBAED,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;oBACpD,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;oBAC5C,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC9E,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;oBACxC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;wBACxC,MAAM,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAA;iBAEF;YACF,CAAC,CAAC,CAAA;SACF;IACF,CAAC;IAES,aAAa,CAAC,GAAW,EAAE,GAAW,EAAE,SAAiB,EAAE,WAAqB;QACzF,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC;IAC9D,CAAC;IAED;;OAEG;IACI,gBAAgB;QACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAC/B,CAAC;IAES,WAAW,CAAC,GAAW,EAAE,GAAW;QAC7C,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAErD,IAAI,CAAC,aAAa,EAAE;YACnB,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;SACzC;QAED,IAAI,EAAE,GAAG,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAC7B,CAAC;IAES,KAAK,CAAC,QAAkB;QACjC,IAAI,QAAQ,IAAI,KAAK,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,MAAM,EAAE;YACnE,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,iBAAiB,CAAC,QAAuB;;QAClD,IAAI,iBAA4C,CAAC;QACjD,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3B,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACjC,IAAI,KAAK,GAAG,CAAC,EAAE;YACd,IAAI,KAAK,IAAI,EAAE,EAAE;gBAChB,KAAK,GAAG,CAAC,CAAC;aACV;iBACI,IAAI,KAAK,IAAI,EAAE,EAAE;gBACrB,KAAK,GAAG,CAAC,CAAC;aACV;iBACI,IAAI,KAAK,IAAI,EAAE,EAAE;gBACrB,KAAK,GAAG,CAAC,CAAC;aACV;iBACI,IAAI,KAAK,IAAI,CAAC,EAAE;gBACpB,KAAK,GAAG,CAAC,CAAC;aACV;iBACI,IAAI,KAAK,IAAI,EAAE,EAAE;gBACrB,KAAK,GAAG,EAAE,CAAC;aACX;iBACI,IAAI,KAAK,GAAG,EAAE,EAAE;gBACpB,KAAK,GAAG,CAAC,CAAC;aACV;YACD,iBAAiB,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SACzD;QACD,IAAI,QAAQ,IAAI,MAAM,EAAE;YACvB,IAAI,CAAA,MAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,0CAAE,QAAQ,KAAI,MAAM,EAAE;gBACxD,iBAAiB,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;aAClD;iBACI;gBACJ,iBAAiB,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;aACnD;SACD;QAED,IAAI,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,CAAC,EAAE;YACrC,iBAAiB,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SACpD;QACD,OAAO,iBAAiB,CAAC;IAC1B,CAAC;IAES,iBAAiB;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAY,CAAC,CAAC;YAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAY,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAErD,IAAI,KAAK,GAAG,YAAY,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,CAAC;YAEV,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAE,CAAC;YAC7C,IAAI,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzG,IAAI,KAAK,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE;gBAClE,YAAY,qBAAQ,YAAY,CAAE,CAAC;aACnC;YAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;YACjE,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;YAE1C,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAE/B,8JAA8J;YAC9J,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,gBAAgB,EAAE,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAC1G,IAAI,aAAa,GAAG,KAAK,GAAG,gBAAgB,CAAC;YAC7C,IAAI,MAA2C,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;YAEzC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YAEjD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC9D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;YAE9E,IAAI,iBAA4C,CAAC;YACjD,IAAI,aAAa,GAAG,CAAC,CAAC;YAEtB,IAAI,gBAAgB,EAAE;gBACrB,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;gBACzD,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;aAC7D;YAED,IAAI,CAAC,GAAG,CAAC,CAAC;YAEV,OAAO,KAAK,GAAG,YAAY,GAAG,gBAAgB,EAAE;gBAC/C,IAAI,QAA6C,CAAC;gBAClD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE;oBAClC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;oBAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC/B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;iBAC/B;qBACI;oBACJ,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC7B;gBAED,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAEjC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAErC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAChC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;gBAE5C,IAAI,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACxH,qHAAqH;gBACrH,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBAEhE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAEtC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE3B,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;oBAChF,IAAI,YAAY,CAAC,QAAQ,IAAI,MAAM,EAAE;wBACpC,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE;4BACzE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;yBACrE;qBACD;iBACD;gBAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACpC,IAAI,KAAK,EAAE;oBACV,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAO,CAAC,CAAC,CAAC;iBAC5D;gBAED,IAAI,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;gBAC/B,sEAAsE;gBACtE,IAAI,YAAY,CAAC,QAAQ,IAAI,MAAM,EAAE;oBACpC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC;iBACzD;qBACI;oBACJ,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;iBACjE;gBAED,IAAI,gBAAgB,EAAE;oBACrB,KAAK,GAAG,CAAC,CAAC;oBACV,IAAI,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;oBACrC,IAAI,QAAQ,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;wBACrD,QAAQ,GAAG,KAAK,CAAC;qBACjB;oBAED,IAAI,aAAa,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC9E,kHAAkH;oBAClH,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC7D,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;iBAChD;gBAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAEvC,aAAa,GAAG,KAAK,CAAC;gBACtB,KAAK,GAAG,QAAQ,CAAC;gBAEjB,WAAW;gBACX,IAAI,iBAAiB,EAAE;oBACtB,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC;oBACjD,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC;oBAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;oBAEtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;wBAChC,aAAa,IAAI,aAAa,GAAG,GAAG,CAAC;qBACrC;oBAGD,kOAAkO;oBAClO,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,GAAG,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;oBAEjH,IAAI,kBAAsC,CAAC;oBAC3C,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAE,CAAC;oBAE1E,OAAO,UAAU,GAAG,KAAK,GAAG,IAAI,GAAG,aAAa,EAAE;wBACjD,IAAI,aAAkD,CAAC;wBACvD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE;4BACvC,aAAa,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;4BAClD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;4BACxC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;yBACpC;6BACI;4BACJ,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;yBACvC;wBAED,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;wBAEnD,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;wBAE1C,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;wBAE1C,IAAI,aAAa,GAAG,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,GAAG,GAAG,CAAC,CAAC;wBACpF,oIAAoI;wBACpI,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;wBAElE,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;wBAEhD,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;wBAEhC,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;wBAErC,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBAE9C,IAAI,UAAU,EAAE;4BACf,IAAI,kBAAkB,EAAE;gCACvB,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAO,CAAC,CAAC,CAAC;6BACjE;iCACI;gCACJ,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;6BACxC;yBACD;wBAED,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;wBAExC,IAAI,UAAU,IAAI,kBAAkB,EAAE;4BACrC,MAAM;yBACN;wBAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;4BAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;4BACtC,IAAI,QAAQ,EAAE;gCACb,QAAQ,CAAC,aAAa,CAAC,CAAA;6BACvB;yBACD;wBAED,kBAAkB,GAAG,UAAU,CAAC;wBAChC,UAAU,GAAG,aAAa,CAAC;wBAC3B,CAAC,EAAE,CAAC;qBACJ;iBACD;gBAED,IAAI,KAAK,IAAI,aAAa,EAAE;oBAC3B,MAAM;iBACN;gBAED,CAAC,EAAE,CAAC;aACJ;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aAC/C;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aACpD;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBACnC,IAAI,MAAM,CAAC,MAAM,EAAE;oBAClB,MAAM,CAAC,cAAc,EAAE,CAAC;iBACxB;YACF,CAAC,CAAC,CAAA;SACF;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;IAES,aAAa,CAAC,KAAa,EAAE,GAAW;QACjD,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IAES,SAAS;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAES,OAAO,CAAC,GAAW;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;QACvC,yHAAyH;QACzH,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1E,IAAI,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QAChG,sGAAsG;QACtG,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,OAAO,SAAS,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAES,OAAO,CAAC,GAAW;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;QACvC,yHAAyH;QACzH,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,IAAI,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QAChG,sGAAsG;QACtG,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvD,OAAO,SAAS,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAES,YAAY,CAAC,KAAa,EAAE,OAAiB;IAEvD,CAAC;IAEM,oBAAoB;QAC1B,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACI,YAAY;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC;QAC1B,oEAAoE;IACrE,CAAC;IAED;;;;OAIG;IACI,gBAAgB;QACtB,OAAO,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,QAAqC,EAAE,MAAqB;QACxF,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAErD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YACnB,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;SACnB;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YACpB,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;SACpB;QAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC7B,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC1B,IAAI,SAAS,GAAG,QAAQ,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC;gBACrC,2FAA2F;gBAC3F,kFAAkF;gBAClF,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,OAAO,EAAE;iBAE3C;qBACI;oBACJ,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;oBACvC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;oBACjC,0GAA0G;oBAC1G,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3D,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAChF,sGAAsG;oBACtG,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAEvD,QAAQ,CAAC,IAAK,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;oBAClC,QAAQ,CAAC,KAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;iBACjC;gBAED,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAqB,CAAC,CAAC;aAC7D;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAES,gBAAgB;QACzB,QAAQ;IACT,CAAC;IAED;;OAEG;IACI,oBAAoB,CAAC,QAAqC,EAAE,KAAa,EAAE,YAAoB,EAAE,YAAoB,EAAE,aAAuB;QAEpJ,IAAI,SAAS,CAAC;QACd,IAAI,UAAU,CAAC;QACf,IAAI,KAAK,CAAC;QAEV,IAAI,aAAa,EAAE;YAClB,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;SACnC;aACI;YACJ,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;gBACpC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACnC;iBACI;gBACJ,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAY,CAAC,CAAA;gBACtC,UAAU,GAAG,SAAS,CAAC;aACvB;YAED,KAAK,GAAG,SAAS,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,YAAY,CAAC;YAC5D,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;SACnE;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,QAAqC,EAAE,KAAa,EAAE,YAAoB,EAAE,YAAoB;QAC7H,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7H,CAAC;IAED;;OAEG;IACI,oBAAoB,CAAC,QAAqC,EAAE,KAAa,EAAE,YAAoB,EAAE,YAAoB,EAAE,aAAuB;QACpJ,IAAI,SAAS,CAAC;QACd,IAAI,UAAU,CAAC;QACf,IAAI,KAAK,CAAC;QACV,IAAI,aAAa,EAAE;YAClB,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;SACnC;aACI;YACJ,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;gBACpC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACnC;iBACI;gBACJ,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAY,CAAC,CAAA;gBACtC,UAAU,GAAG,SAAS,CAAC;aACvB;YAED,KAAK,GAAG,SAAS,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,YAAY,CAAC;YAC5D,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;SACnE;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,QAAqC,EAAE,KAAa,EAAE,YAAoB,EAAE,YAAoB;QAC7H,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7H,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,QAAgB,EAAE,QAAgB;QAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC3C,KAAK,GAAG,KAAK,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEvD,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;YAClD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACrC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;YAEjC,gIAAgI;YAChI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAElF,IAAI,QAAQ,GAAG,KAAK,CAAC,uBAAuB,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACrG,IAAI,QAAQ,EAAE;gBACb,6JAA6J;gBAC7J,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/G,QAAQ,GAAG,KAAK,CAAC,uBAAuB,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;aACvH;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;SACzD;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED;;;;;;;;;OASG;IACI,cAAc,CAAC,QAAgB,EAAE,cAAwB;QAC/D,8BAA8B;QAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;YACnC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAE,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC;YACvF,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC1B,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE3B,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBACnD,IAAI,QAAQ,GAAG,KAAK,CAAC,uBAAuB,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAExI,IAAI,cAAc,KAAK,KAAK,EAAE;oBAC7B,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAA;iBACxG;gBAED,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC;aACpF;SAED;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAAC,MAAgB,EAAE,QAAgB,EAAE,QAAiB,EAAE,IAAc;QACzF,IAAI,SAAS,GAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAE,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC,CAAC;QAC7F,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,QAAQ,IAAI,IAAI,EAAE;YACrB,QAAQ,GAAG,GAAG,CAAC;SACf;QAED,KAAK,GAAG,KAAK,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;YACnE,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,QAAQ,CAAC,IAAI,EAAE;gBAClB,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACnC;YAED,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YACtC,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAE5C,IAAI,KAAK,IAAI,MAAM,EAAE;gBACpB,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;oBAC/B,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACjC,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAEpC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE;wBACrD,OAAO,MAAM,CAAC;qBACd;iBACD;aACD;YAED,IAAI,KAAK,EAAE;gBACV,OAAO,KAAK,CAAC;aACb;YAED,IAAI,MAAM,EAAE;gBACX,OAAO,MAAM,CAAC;aACd;SACD;aACI;YACJ,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAEpD,IAAI,QAAQ,EAAE;gBACb,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;oBACpC,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACpC,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAEtC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,EAAE;wBACpC,OAAO,QAAQ,CAAC;qBAChB;iBACD;aACD;SACD;IACF,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,QAAqC,EAAE,QAAqC,EAAE,YAAoB,EAAE,SAAiB;QACrI,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAgB,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAgB,CAAC,CAAC;QAE9C,IAAI,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,YAAY,EAAE;YACzD,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACI,WAAW,CAAC,KAAW,EAAE,GAAS,EAAE,QAAiB;QAC3D,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;OAQG;IACI,YAAY,CAAC,KAAa,EAAE,GAAW,EAAE,QAAiB;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;YACrE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBAC1B,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;gBAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAE9C,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBAChD,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACpD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClG,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;gBACrG,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAElG,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxG,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAExG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;gBACtD,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;gBAEpD,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC1B;iBACI;gBACJ,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;SACD;IACF,CAAC;IAGD;;;;;;OAMG;IACI,cAAc,CAAC,QAAgB;QACrC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,IAAU;QAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACI,oBAAoB;QAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAElE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC/C,OAAO,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,YAAY,CAAC,KAAc;QACjC,IAAI,KAAK,IAAI,IAAI,EAAE;YAClB,KAAK,GAAG,CAAC,CAAC;SACV;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE;YACrD,KAAK,IAAI,CAAC,CAAC,CAAC;SACZ;QAED,IAAI,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/E,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAE7D,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAEtD,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1F,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1F,IAAI,IAAI,KAAK,CAAC;QACd,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAES,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,YAA2B;QAC3E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9G,CAAC;;AA7oCD;;;;WAAkC,UAAU;GAAC;AAC7C;;;;WAA0C,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;GAAC","sourcesContent":["import type { AxisRenderer } from \"./AxisRenderer\";\nimport type { XYSeries, IXYSeriesDataItem } from \"../series/XYSeries\";\nimport type { ITimeInterval } from \"../../../core/util/Time\";\nimport type { TimeUnit } from \"../../../core/util/Time\";\n\nimport { DataItem } from \"../../../core/render/Component\";\nimport { ValueAxis, IValueAxisSettings, IValueAxisPrivate, IValueAxisDataItem, IMinMaxStep, IValueAxisEvents } from \"./ValueAxis\";\n\nimport * as $type from \"../../../core/util/Type\";\nimport * as $math from \"../../../core/util/Math\";\nimport * as $order from \"../../../core/util/Order\";\nimport * as $array from \"../../../core/util/Array\";\nimport * as $object from \"../../../core/util/Object\";\nimport * as $utils from \"../../../core/util/Utils\";\nimport * as $time from \"../../../core/util/Time\";\n\nexport interface IDateAxisSettings<R extends AxisRenderer> extends IValueAxisSettings<R> {\n\n\t/**\n\t * Indicates granularity of data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Data_granularity} for more info\n\t */\n\tbaseInterval: ITimeInterval;\n\n\t/**\n\t * Relative location of where axis cell starts: 0 - beginning, 1 - end.\n\t *\n\t * IMPORTANT: `startLocation` is not supported by [[GaplessDateAxis]].\n\t *\n\t * @default 0\n\t */\n\tstartLocation?: number;\n\n\t/**\n\t * Relative location of where axis cell ends: 0 - beginning, 1 - end.\n\t *\n\t * IMPORTANT: `endLocation` is not supported by [[GaplessDateAxis]].\n\t * \n\t * @default 1\n\t */\n\tendLocation?: number;\n\n\t/**\n\t * Should axis group data items togeter dynamically?\n\t *\n\t * @default false\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupData?: boolean;\n\n\t/**\n\t * Maximum number of data items in the view before data grouping kicks in.\n\t *\n\t * @default 500\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupCount?: number;\n\n\t/**\n\t * Force data item grouping to specific interval. This interval must be within groupIntervals array for this to work.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupInterval?: ITimeInterval;\n\n\t/**\n\t * A list of intervals the axis is allowed to group data items into.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info\n\t */\n\tgroupIntervals?: Array<ITimeInterval>;\n\n\t/**\n\t * A list of intervals the axis is allowed to show grid/labels on.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Grid_granularity} for more info\n\t */\n\tgridIntervals?: Array<ITimeInterval>;\n\n\t/**\n\t * Display \"period change\" labels using different format.\n\t *\n\t * If set to `true`, will use `periodChangeDateFormats` instead\n\t * of `dateFormats` for such labels, e.g. for month start.\n\t *\n\t * @default true\n\t */\n\tmarkUnitChange?: boolean;\n\n\t/**\n\t * Date formats used for intermediate labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tdateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * Date formats used for minor grid labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Minor_grid_formats} for more info\n\t * @since 5.6.0\n\t */\n\tminorDateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * Date formats used for \"period change\" labels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info\n\t */\n\tperiodChangeDateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * A date format to use for axis tooltip.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info\n\t */\n\ttooltipDateFormat?: string | Intl.DateTimeFormatOptions;\n\n\t/**\n\t * Time unit-specific formats to use for axis tooltip.\n\t * \n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info\n\t * @since 5.1.4\n\t */\n\ttooltipDateFormats?: { [index: string]: string | Intl.DateTimeFormatOptions };\n\n\t/**\n\t * A value which indicates relative position within axis cell to get timestamp\n\t * for the tooltip from.\n\t *\n\t * Values are from `-1` to `1`.\n\t *\n\t * If not set, it will use `tooltipLocation` value, if `tooltipLocation`` is\n\t * not set, it will use -0.5.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info\n\t * @since 5.1.4\n\t */\n\ttooltipIntervalOffset?: number;\n\n\t/**\n\t * If set to `true`, the axis will skip the first minor grid line and label.\n\t * \n\t * @default true\n\t * @since 5.14.0\n\t */\n\tskipFirstMinor?: boolean;\n\n\t/**\n\t * A relative location of weekly labels.\n\t *\n\t * @default 0\n\t * @since 5.14.0\n\t */\n\tweekLabelLocation?: number;\n\n}\n\nexport interface IDateAxisDataItem extends IValueAxisDataItem {\n}\n\nexport interface IDateAxisPrivate extends IValueAxisPrivate {\n\n\t/**\n\t * Current group interval.\n\t */\n\tgroupInterval?: ITimeInterval;\n\n\t/**\n\t * Current base interval.\n\t */\n\tbaseInterval: ITimeInterval;\n\n\t/**\n\t * Current grid interval.\n\t */\n\tgridInterval: ITimeInterval;\n}\n\nexport interface IDateAxisEvents extends IValueAxisEvents {\n\n\t/**\n\t * Kicks in when data grouping is on, and current group interval changes, e.g. via zooming the chart.\n\t *\n\t * @since 5.2.43\n\t */\n\tgroupintervalchanged: {}\n\n}\n\n/**\n * Creates a date axis.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/} for more info\n * @important\n */\nexport class DateAxis<R extends AxisRenderer> extends ValueAxis<R> {\n\tpublic static className: string = \"DateAxis\";\n\tpublic static classNames: Array<string> = ValueAxis.classNames.concat([DateAxis.className]);\n\n\tdeclare public _settings: IDateAxisSettings<R>;\n\tdeclare public _privateSettings: IDateAxisPrivate;\n\tdeclare public _dataItemSettings: IDateAxisDataItem;\n\tdeclare public _events: IDateAxisEvents;\n\n\tprotected _dataGrouped: boolean = false;\n\tprotected _seriesDataGrouped: boolean = false;\n\tprotected _groupingCalculated: boolean = false;\n\tprotected _intervalDuration: number = 1;\n\tprotected _baseDuration: number = 1;\n\n\tprotected _intervalMax: { [index: string]: number } = {};\n\tprotected _intervalMin: { [index: string]: number } = {};\n\n\tpublic _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"axis\"]);\n\t\tsuper._afterNew();\n\t\tthis._setBaseInterval(this.get(\"baseInterval\"));\n\t\tthis.on(\"baseInterval\", () => {\n\t\t\tthis._setBaseInterval(this.get(\"baseInterval\"));\n\t\t})\n\t}\n\n\tprotected _setBaseInterval(interval: ITimeInterval) {\n\t\tthis.setPrivateRaw(\"baseInterval\", interval);\n\t\tthis._baseDuration = $time.getIntervalDuration(interval);\n\t}\n\n\tprotected _fixZoomFactor() {\n\t\tconst maxZoomFactor = this.get(\"maxZoomFactor\");\n\t\tif (maxZoomFactor != null && maxZoomFactor != Infinity) {\n\t\t\tthis.setPrivateRaw(\"maxZoomFactor\", maxZoomFactor);\n\t\t}\n\t\telse {\n\t\t\tthis.setPrivateRaw(\"maxZoomFactor\", Math.round((this.getPrivate(\"max\", 0) - this.getPrivate(\"min\", 0)) / this.baseMainDuration()));\n\t\t}\n\t}\n\n\tprotected _groupData() {\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\tthis._fixZoomFactor();\n\n\t\t\tconst groupInterval = this.getPrivate(\"groupInterval\")!;\n\t\t\tif (groupInterval) {\n\t\t\t\tthis._setBaseInterval(groupInterval);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._setBaseInterval(this.get(\"baseInterval\"));\n\t\t\t}\n\n\n\t\t\tif (this.isDirty(\"groupInterval\")) {\n\t\t\t\tlet groupInterval = this.get(\"groupInterval\")!;\n\t\t\t\tif (groupInterval) {\n\t\t\t\t\tthis.setRaw(\"groupIntervals\", [groupInterval]);\n\t\t\t\t\tthis._handleRangeChange();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.isDirty(\"groupData\")) {\n\t\t\t\tif (!this._dataGrouped) {\n\t\t\t\t\tif (this.get(\"groupData\")) {\n\t\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\t\tthis._groupSeriesData(series);\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tthis._handleRangeChange();\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet baseInterval = this.get(\"baseInterval\");\n\t\t\t\t\t\tlet mainDataSetId: string = baseInterval.timeUnit + baseInterval.count;\n\t\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\t\tseries.setDataSet(mainDataSetId);\n\t\t\t\t\t\t\tseries.resetGrouping();\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tthis._setBaseInterval(baseInterval);\n\t\t\t\t\t\tthis.setPrivateRaw(\"groupInterval\", undefined);\n\t\t\t\t\t\tthis.markDirtyExtremes();\n\t\t\t\t\t}\n\t\t\t\t\tthis._dataGrouped = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\tpublic _groupSeriesData(series: XYSeries) {\n\t\tif (this.get(\"groupData\") && !series.get(\"groupDataDisabled\")) {\n\t\t\tthis._dataGrouped = true; // helps to avoid double grouping\n\n\t\t\tthis._seriesDataGrouped = true;\n\n\t\t\t// make array of intervals which will be used;\n\t\t\tlet intervals: ITimeInterval[] = [];\n\t\t\tlet baseDuration = this.baseMainDuration();\n\n\t\t\tlet groupIntervals = this.get(\"groupIntervals\")!;\n\t\t\tif (groupIntervals) { }\n\t\t\t$array.each(groupIntervals, (interval) => {\n\t\t\t\tlet intervalDuration = $time.getIntervalDuration(interval);\n\t\t\t\tif (intervalDuration > baseDuration) {\n\t\t\t\t\tintervals.push(interval);\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tseries._dataSets = {};\n\n\t\t\tconst key = this.getPrivate(\"name\")! + this.get(\"renderer\").getPrivate(\"letter\")!;\n\t\t\tlet fields: Array<string>;\n\n\t\t\tconst baseAxis = series.get(\"baseAxis\");\n\n\t\t\tif (series.get(\"xAxis\") === baseAxis) {\n\t\t\t\tfields = series._valueYFields;\n\t\t\t}\n\t\t\telse if (series.get(\"yAxis\") === baseAxis) {\n\t\t\t\tfields = series._valueXFields;\n\t\t\t}\n\n\t\t\tlet dataItems = series._mainDataItems;\n\t\t\tlet baseInterval = this.get(\"baseInterval\");\n\t\t\tlet mainDataSetId: string = baseInterval.timeUnit + baseInterval.count;\n\n\t\t\tseries._dataSets[mainDataSetId] = dataItems;\n\n\t\t\tconst groupCallback = series.get(\"groupDataCallback\");\n\t\t\tlet groupOriginals = series.get(\"groupDataWithOriginals\", false);\n\t\t\tif (groupCallback) {\n\t\t\t\tgroupOriginals = true;\n\t\t\t}\n\n\t\t\t$array.each(intervals, (interval) => {\n\t\t\t\tlet previousTime = -Infinity;\n\t\t\t\tlet dataSetId = interval.timeUnit + interval.count;\n\t\t\t\tseries._dataSets[dataSetId] = [];\n\n\t\t\t\tlet newDataItem: DataItem<IXYSeriesDataItem>;\n\n\t\t\t\tlet sum: { [index: string]: number } = {};\n\t\t\t\tlet count: { [index: string]: number } = {};\n\n\t\t\t\tlet groupFieldValues: { [index: string]: string } = {};\n\t\t\t\tlet workingFields: { [index: string]: string } = {};\n\n\t\t\t\t$array.each(fields, (field) => {\n\t\t\t\t\tsum[field] = 0;\n\t\t\t\t\tcount[field] = 0;\n\t\t\t\t\tgroupFieldValues[field] = series.get((field + \"Grouped\") as any);\n\t\t\t\t\tworkingFields[field] = field + \"Working\";\n\t\t\t\t})\n\n\t\t\t\tlet intervalDuration = $time.getDuration(interval.timeUnit);\n\n\t\t\t\tlet firstItem = dataItems[0];\n\t\t\t\tlet firstTime: any;\n\t\t\t\tif (firstItem) {\n\t\t\t\t\tfirstTime = dataItems[0].get(key as any);\n\t\t\t\t}\n\n\t\t\t\tlet prevNewDataItem: DataItem<IXYSeriesDataItem> | undefined;\n\t\t\t\t$array.each(dataItems, (dataItem) => {\n\t\t\t\t\tlet time = dataItem.get(key as any);\n\t\t\t\t\t//let roundedTime = $time.round(new Date(time), interval.timeUnit, interval.count, firstDay, utc, firstDate, timezone).getTime();\n\t\t\t\t\tlet roundedTime = $time.roun(time, interval.timeUnit, interval.count, this._root, firstTime);\n\t\t\t\t\tlet dataContext: any;\n\n\t\t\t\t\tif (previousTime < roundedTime - intervalDuration / 24) {\n\t\t\t\t\t\tdataContext = $object.copy(dataItem.dataContext);\n\n\t\t\t\t\t\tnewDataItem = new DataItem(series, dataContext, series._makeDataItem(dataContext));\n\t\t\t\t\t\tnewDataItem.setRaw(key as any, roundedTime);\n\n\t\t\t\t\t\tseries._dataSets[dataSetId].push(newDataItem);\n\n\t\t\t\t\t\t$array.each(fields, (field) => {\n\t\t\t\t\t\t\tlet value = dataItem.get(field as any);\n\t\t\t\t\t\t\tif ($type.isNumber(value)) {\n\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\tnewDataItem.setRaw(workingFields[field] as any, value);\n\t\t\t\t\t\t\t\tcount[field] = 1;\n\t\t\t\t\t\t\t\tsum[field] = value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tsum[field] = 0;\n\t\t\t\t\t\t\t\tcount[field] = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (groupOriginals) {\n\t\t\t\t\t\t\tnewDataItem.set(\"originals\", [dataItem]);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (groupCallback && prevNewDataItem) {\n\t\t\t\t\t\t\tgroupCallback(prevNewDataItem, interval);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tprevNewDataItem = newDataItem;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t$array.each(fields, (field) => {\n\t\t\t\t\t\t\tlet groupKey = groupFieldValues[field];\n\t\t\t\t\t\t\tlet value = dataItem.get(field as any);\n\n\t\t\t\t\t\t\tif (value != null) {\n\n\t\t\t\t\t\t\t\tlet currentValue = newDataItem.get(field as any);\n\n\t\t\t\t\t\t\t\tswitch (groupKey) {\n\t\t\t\t\t\t\t\t\tcase \"close\":\n\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"sum\":\n\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, currentValue + value);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"open\":\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"low\":\n\t\t\t\t\t\t\t\t\t\tif (value < currentValue) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"high\":\n\t\t\t\t\t\t\t\t\t\tif (value > currentValue) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"average\":\n\t\t\t\t\t\t\t\t\t\tcount[field]++;\n\t\t\t\t\t\t\t\t\t\tsum[field] += value;\n\t\t\t\t\t\t\t\t\t\tlet average = sum[field] / count[field];\n\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, average);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase \"extreme\":\n\t\t\t\t\t\t\t\t\t\tif (Math.abs(value) > Math.abs(currentValue)) {\n\t\t\t\t\t\t\t\t\t\t\tnewDataItem.setRaw(field as any, value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tnewDataItem.setRaw(workingFields[field] as any, newDataItem.get(field as any));\n\t\t\t\t\t\t\t\tlet dataContext: any = $object.copy(dataItem.dataContext);\n\t\t\t\t\t\t\t\tdataContext[key as any] = roundedTime;\n\t\t\t\t\t\t\t\tnewDataItem.dataContext = dataContext;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (groupOriginals) {\n\t\t\t\t\t\t\tnewDataItem.get(\"originals\")!.push(dataItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpreviousTime = roundedTime;\n\t\t\t\t})\n\n\t\t\t\tif (groupCallback && prevNewDataItem) {\n\t\t\t\t\tgroupCallback(prevNewDataItem, interval);\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif (series._dataSetId) {\n\t\t\t\tseries.setDataSet(series._dataSetId);\n\t\t\t}\n\t\t\tthis.markDirtySize();\n\t\t\t// solves problem if new series was added\n\t\t\tif (this._seriesAdded) {\n\t\t\t\tthis._root.events.once(\"frameended\", () => {\n\t\t\t\t\tthis.markDirtySize();\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._groupingCalculated = false;\n\t\tthis._dataGrouped = false;\n\t}\n\n\t/**\n\t * Returns a time interval axis would group data to for a specified duration.\n\t *\n\t * @since 5.2.1\n\t */\n\tpublic getGroupInterval(duration: number): ITimeInterval {\n\t\tlet baseInterval = this.get(\"baseInterval\");\n\t\tlet groupInterval = $time.chooseInterval(0, duration, this.get(\"groupCount\", Infinity), this.get(\"groupIntervals\")!);\n\t\tif ($time.getIntervalDuration(groupInterval) < $time.getIntervalDuration(baseInterval)) {\n\t\t\tgroupInterval = { ...baseInterval };\n\t\t}\n\t\treturn groupInterval;\n\t}\n\n\t/**\n\t * Return `max` of a specified time interval.\n\t * \n\t * Will work only if the axis was grouped to this interval at least once.\n\t * \n\t * @since 5.2.1\n\t * @param interval Interval\n\t * @return Max\n\t */\n\tpublic getIntervalMax(interval: ITimeInterval): number {\n\t\treturn this._intervalMax[interval.timeUnit + interval.count];\n\t}\n\n\t/**\n\t * Return `min` of a specified time interval.\n\t * \n\t * Will work only if the axis was grouped to this interval at least once.\n\t * \n\t * @since 5.2.1\n\t * @param interval Interval\n\t * @return Min\n\t */\n\tpublic getIntervalMin(interval: ITimeInterval): number {\n\t\treturn this._intervalMin[interval.timeUnit + interval.count];\n\t}\n\n\tprotected _handleRangeChange() {\n\t\tsuper._handleRangeChange();\n\n\t\tlet selectionMin = Math.round(this.getPrivate(\"selectionMin\")! as number);\n\t\tlet selectionMax = Math.round(this.getPrivate(\"selectionMax\")! as number);\n\n\t\tif ($type.isNumber(selectionMin) && $type.isNumber(selectionMax)) {\n\n\t\t\tif (this.get(\"endLocation\") == 0) {\n\t\t\t\tselectionMax += 1;\n\t\t\t}\n\n\t\t\tif (this.get(\"groupData\") && !this._groupingCalculated) {\n\t\t\t\tthis._groupingCalculated = true;\n\n\t\t\t\tlet groupInterval = this.get(\"groupInterval\");\n\t\t\t\tlet current = this.getPrivate(\"groupInterval\");\n\n\t\t\t\tlet modifiedDifference = (selectionMax - selectionMin) + (this.get(\"startLocation\", 0) + (1 - this.get(\"endLocation\", 1)) * this.baseDuration());\n\n\t\t\t\tif (current) {\n\t\t\t\t\tlet duration = $time.getIntervalDuration(current);\n\t\t\t\t\tmodifiedDifference = Math.ceil(modifiedDifference / duration) * duration;\n\t\t\t\t}\n\n\t\t\t\tif (!groupInterval) {\n\t\t\t\t\tgroupInterval = this.getGroupInterval(modifiedDifference);\n\t\t\t\t}\n\n\t\t\t\tif (groupInterval && (!current || (current.timeUnit !== groupInterval.timeUnit || current.count !== groupInterval.count) || this._seriesDataGrouped)) {\n\t\t\t\t\tthis._seriesDataGrouped = false;\n\t\t\t\t\tthis.setPrivateRaw(\"groupInterval\", groupInterval);\n\t\t\t\t\tthis._setBaseInterval(groupInterval)\n\n\t\t\t\t\tlet newId = groupInterval.timeUnit + groupInterval.count;\n\t\t\t\t\t$array.each(this.series, (series) => {\n\t\t\t\t\t\tif (series.get(\"baseAxis\") === this) {\n\t\t\t\t\t\t\tseries.setDataSet(newId);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\n\t\t\t\t\tthis.markDirtyExtremes();\n\n\t\t\t\t\tthis._root.events.once(\"frameended\", () => {\n\t\t\t\t\t\tthis._root.events.once(\"frameended\", () => {\n\t\t\t\t\t\t\tconst type = \"groupintervalchanged\";\n\t\t\t\t\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\t\t\t\t\tthis.events.dispatch(type, { type: type, target: this });\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\n\t\t\t$array.each(this.series, (series) => {\n\t\t\t\tif (series.get(\"baseAxis\") === this) {\n\t\t\t\t\tlet fieldName = <any>(this.getPrivate(\"name\")! + this.get(\"renderer\").getPrivate(\"letter\")!);\n\n\t\t\t\t\tconst start = $array.getFirstSortedIndex(series.dataItems, (dataItem) => {\n\t\t\t\t\t\treturn $order.compare(dataItem.get(fieldName), selectionMin);\n\t\t\t\t\t});\n\n\t\t\t\t\tlet startIndex = start.index;\n\n\t\t\t\t\tif (startIndex > 0) {\n\t\t\t\t\t\tstartIndex -= 1;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectionMax += this.baseDuration() * (1 - this.get(\"endLocation\", 1));\n\n\t\t\t\t\tconst end = $array.getSortedIndex(series.dataItems, (dataItem) => {\n\t\t\t\t\t\treturn $order.compare(dataItem.get(fieldName), selectionMax);\n\t\t\t\t\t});\n\n\t\t\t\t\tlet endIndex = end.index;\n\t\t\t\t\tlet endIndex2 = endIndex;\n\n\t\t\t\t\tif (endIndex2 > 1) {\n\t\t\t\t\t\tendIndex2--;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst firstDataItem = series.dataItems[startIndex];\n\t\t\t\t\tconst lastDataItem = series.dataItems[endIndex2];\n\n\t\t\t\t\tlet lastDate: number | undefined;\n\t\t\t\t\tlet firstDate: number | undefined;\n\t\t\t\t\tif (firstDataItem) {\n\t\t\t\t\t\tfirstDate = firstDataItem.get(fieldName);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (lastDataItem) {\n\t\t\t\t\t\tlastDate = lastDataItem.get(fieldName);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet outOfSelection = false;\n\t\t\t\t\tif (lastDate != null && firstDate != null) {\n\t\t\t\t\t\tif (lastDate < selectionMin || firstDate > selectionMax) {\n\t\t\t\t\t\t\toutOfSelection = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tseries.setPrivate(\"outOfSelection\", outOfSelection);\n\t\t\t\t\tseries.setPrivate(\"startIndex\", startIndex);\n\t\t\t\t\tseries.setPrivate(\"adjustedStartIndex\", series._adjustStartIndex(startIndex));\n\t\t\t\t\tseries.setPrivate(\"endIndex\", endIndex);\n\t\t\t\t\tthis.root.events.once(\"frameended\", () => {\n\t\t\t\t\t\tseries._markDirtyPrivateKey(\"adjustedStartIndex\");\n\t\t\t\t\t})\n\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _adjustMinMax(min: number, max: number, gridCount: number, _strictMode?: boolean): IMinMaxStep {\n\t\treturn { min: min, max: max, step: (max - min) / gridCount };\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic intervalDuration(): number {\n\t\treturn this._intervalDuration;\n\t}\n\n\tprotected _saveMinMax(min: number, max: number) {\n\t\tlet groupInterval = this.getPrivate(\"groupInterval\");\n\n\t\tif (!groupInterval) {\n\t\t\tgroupInterval = this.get(\"baseInterval\");\n\t\t}\n\n\t\tlet id = groupInterval.timeUnit + groupInterval.count;\n\t\tthis._intervalMin[id] = min;\n\t\tthis._intervalMax[id] = max;\n\t}\n\n\tprotected _getM(timeUnit: TimeUnit) {\n\t\tif (timeUnit == \"day\" || timeUnit == \"month\" || timeUnit == \"year\") {\n\t\t\treturn 1.05;\n\t\t}\n\t\treturn 1.01;\n\t}\n\n\tprotected _getMinorInterval(interval: ITimeInterval): ITimeInterval | undefined {\n\t\tlet minorGridInterval: ITimeInterval | undefined;\n\t\tlet count = interval.count;\n\t\tlet timeUnit = interval.timeUnit;\n\t\tif (count > 1) {\n\t\t\tif (count == 10) {\n\t\t\t\tcount = 5;\n\t\t\t}\n\t\t\telse if (count == 15) {\n\t\t\t\tcount = 5;\n\t\t\t}\n\t\t\telse if (count == 12) {\n\t\t\t\tcount = 2;\n\t\t\t}\n\t\t\telse if (count == 6) {\n\t\t\t\tcount = 1;\n\t\t\t}\n\t\t\telse if (count == 30) {\n\t\t\t\tcount = 10;\n\t\t\t}\n\t\t\telse if (count < 10) {\n\t\t\t\tcount = 1;\n\t\t\t}\n\t\t\tminorGridInterval = { timeUnit: timeUnit, count: count };\n\t\t}\n\t\tif (timeUnit == \"week\") {\n\t\t\tif (this.getPrivate(\"baseInterval\")?.timeUnit != \"week\") {\n\t\t\t\tminorGridInterval = { timeUnit: \"day\", count: 1 };\n\t\t\t}\n\t\t\telse {\n\t\t\t\tminorGridInterval = { timeUnit: \"week\", count: 1 };\n\t\t\t}\n\t\t}\n\n\t\tif (timeUnit == \"year\" && count == 1) {\n\t\t\tminorGridInterval = { timeUnit: \"month\", count: 1 };\n\t\t}\n\t\treturn minorGridInterval;\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\t\t\tconst root = this._root;\n\t\t\tconst selectionMin = Math.round(this.getPrivate(\"selectionMin\")! as number);\n\t\t\tconst selectionMax = Math.round(this.getPrivate(\"selectionMax\")! as number);\n\t\t\tconst renderer = this.get(\"renderer\");\n\t\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\n\t\t\tlet value = selectionMin;\n\t\t\tlet i = 0;\n\n\t\t\tconst intervals = this.get(\"gridIntervals\")!;\n\t\t\tlet gridInterval = $time.chooseInterval(0, selectionMax - selectionMin, renderer.gridCount(), intervals);\n\n\t\t\tif ($time.getIntervalDuration(gridInterval) < this.baseDuration()) {\n\t\t\t\tgridInterval = { ...baseInterval };\n\t\t\t}\n\n\t\t\tconst intervalDuration = $time.getIntervalDuration(gridInterval);\n\t\t\tthis._intervalDuration = intervalDuration;\n\n\t\t\tconst nextGridUnit = $time.getNextUnit(gridInterval.timeUnit);\n\t\t\tconst utc = root.utc;\n\t\t\tconst timezone = root.timezone;\n\n\t\t\t//value = $time.round(new Date(selectionMin - intervalDuration), gridInterval.timeUnit, gridInterval.count, firstDay, utc, new Date(min), timezone).getTime();\n\t\t\tvalue = $time.roun(selectionMin - intervalDuration, gridInterval.timeUnit, gridInterval.count, root, min);\n\t\t\tlet previousValue = value - intervalDuration;\n\t\t\tlet format: string | Intl.DateTimeFormatOptions;\n\t\t\tconst formats = this.get(\"dateFormats\")!;\n\n\t\t\tthis.setPrivateRaw(\"gridInterval\", gridInterval);\n\n\t\t\tconst minorLabelsEnabled = renderer.get(\"minorLabelsEnabled\");\n\t\t\tconst minorGridEnabled = renderer.get(\"minorGridEnabled\", minorLabelsEnabled);\n\n\t\t\tlet minorGridInterval: ITimeInterval | undefined;\n\t\t\tlet minorDuration = 0;\n\n\t\t\tif (minorGridEnabled) {\n\t\t\t\tminorGridInterval = this._getMinorInterval(gridInterval);\n\t\t\t\tminorDuration = $time.getIntervalDuration(minorGridInterval);\n\t\t\t}\n\n\t\t\tlet m = 0;\n\n\t\t\twhile (value < selectionMax + intervalDuration) {\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\tthis._toggleDataItem(dataItem, true);\n\n\t\t\t\tdataItem.setRaw(\"value\", value);\n\t\t\t\tdataItem.setRaw(\"labelEndValue\", undefined);\n\n\t\t\t\tlet endValue = value + $time.getDuration(gridInterval.timeUnit, gridInterval.count * this._getM(gridInterval.timeUnit));\n\t\t\t\t//endValue = $time.round(new Date(endValue), gridInterval.timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\tendValue = $time.roun(endValue, gridInterval.timeUnit, 1, root);\n\n\t\t\t\tdataItem.setRaw(\"endValue\", endValue);\n\n\t\t\t\tlet date = new Date(value);\n\n\t\t\t\tformat = formats[gridInterval.timeUnit];\n\t\t\t\tif (nextGridUnit && this.get(\"markUnitChange\") && $type.isNumber(previousValue)) {\n\t\t\t\t\tif (gridInterval.timeUnit != \"year\") {\n\t\t\t\t\t\tif ($time.checkChange(value, previousValue, nextGridUnit, utc, timezone)) {\n\t\t\t\t\t\t\tformat = this.get(\"periodChangeDateFormats\")![gridInterval.timeUnit];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel.set(\"text\", root.dateFormatter.format(date, format!));\n\t\t\t\t}\n\n\t\t\t\tlet count = gridInterval.count;\n\t\t\t\t// so that labels of week would always be at the beginning of the grid\n\t\t\t\tif (gridInterval.timeUnit == \"week\") {\n\t\t\t\t\tlabel?.set(\"location\", this.get(\"weekLabelLocation\", 0));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlabel?.set(\"location\", renderer.labels.template.get(\"location\"));\n\t\t\t\t}\n\n\t\t\t\tif (minorGridEnabled) {\n\t\t\t\t\tcount = 1;\n\t\t\t\t\tlet timeUnit = gridInterval.timeUnit;\n\t\t\t\t\tif (timeUnit == \"week\" && this.get(\"skipFirstMinor\")) {\n\t\t\t\t\t\ttimeUnit = \"day\";\n\t\t\t\t\t}\n\n\t\t\t\t\tlet labelEndValue = value + $time.getDuration(timeUnit, this._getM(timeUnit));\n\t\t\t\t\t//labelEndValue = $time.round(new Date(labelEndValue), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\t\tlabelEndValue = $time.roun(labelEndValue, timeUnit, 1, root);\n\t\t\t\t\tdataItem.setRaw(\"labelEndValue\", labelEndValue);\n\t\t\t\t}\n\n\t\t\t\tthis._prepareDataItem(dataItem, count);\n\n\t\t\t\tpreviousValue = value;\n\t\t\t\tvalue = endValue;\n\n\t\t\t\t// min grid\n\t\t\t\tif (minorGridInterval) {\n\t\t\t\t\tconst minorTimeUnit = minorGridInterval.timeUnit;\n\t\t\t\t\tconst minorCount = minorGridInterval.count;\n\t\t\t\t\tconst mmm = this._getM(minorTimeUnit);\n\n\t\t\t\t\tif (!this.get(\"skipFirstMinor\")) {\n\t\t\t\t\t\tpreviousValue -= minorDuration * mmm;\n\t\t\t\t\t}\n\n\n\t\t\t\t\t//let minorValue = $time.round(new Date(previousValue + minorDuration * this._getM(minorGridInterval.timeUnit)), minorGridInterval.timeUnit, minorGridInterval.count, firstDay, utc, new Date(previousValue), timezone).getTime();\n\t\t\t\t\tlet minorValue = $time.roun(previousValue + minorDuration * mmm, minorTimeUnit, minorCount, root, previousValue);\n\n\t\t\t\t\tlet previousMinorValue: number | undefined;\n\t\t\t\t\tlet minorFormats = this.get(\"minorDateFormats\", this.get(\"dateFormats\"))!;\n\n\t\t\t\t\twhile (minorValue < value - 0.01 * minorDuration) {\n\t\t\t\t\t\tlet minorDataItem: DataItem<this[\"_dataItemSettings\"]>;\n\t\t\t\t\t\tif (this.minorDataItems.length < m + 1) {\n\t\t\t\t\t\t\tminorDataItem = new DataItem(this, undefined, {});\n\t\t\t\t\t\t\tthis.minorDataItems.push(minorDataItem);\n\t\t\t\t\t\t\tthis.processDataItem(minorDataItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tminorDataItem = this.minorDataItems[m];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._createAssets(minorDataItem, [\"minor\"], true);\n\n\t\t\t\t\t\tthis._toggleDataItem(minorDataItem, true);\n\n\t\t\t\t\t\tminorDataItem.setRaw(\"value\", minorValue);\n\n\t\t\t\t\t\tlet minorEndValue = minorValue + $time.getDuration(minorTimeUnit, minorCount * mmm);\n\t\t\t\t\t\t//minorEndValue = $time.round(new Date(minorEndValue), minorGridInterval.timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\t\t\tminorEndValue = $time.roun(minorEndValue, minorTimeUnit, 1, root);\n\n\t\t\t\t\t\tminorDataItem.setRaw(\"endValue\", minorEndValue);\n\n\t\t\t\t\t\tlet date = new Date(minorValue);\n\n\t\t\t\t\t\tformat = minorFormats[minorTimeUnit];\n\n\t\t\t\t\t\tconst minorLabel = minorDataItem.get(\"label\");\n\n\t\t\t\t\t\tif (minorLabel) {\n\t\t\t\t\t\t\tif (minorLabelsEnabled) {\n\t\t\t\t\t\t\t\tminorLabel.set(\"text\", root.dateFormatter.format(date, format!));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tminorLabel.setPrivate(\"visible\", false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._prepareDataItem(minorDataItem, 1);\n\n\t\t\t\t\t\tif (minorValue == previousMinorValue) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!minorDataItem.get(\"isRange\")) {\n\t\t\t\t\t\t\tconst fillRule = this.get(\"fillRule\");\n\t\t\t\t\t\t\tif (fillRule) {\n\t\t\t\t\t\t\t\tfillRule(minorDataItem)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpreviousMinorValue = minorValue;\n\t\t\t\t\t\tminorValue = minorEndValue;\n\t\t\t\t\t\tm++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (value == previousValue) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\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._toggleDataItem(this.dataItems[j], false);\n\t\t\t}\n\n\t\t\tfor (let j = m; j < this.minorDataItems.length; j++) {\n\t\t\t\tthis._toggleDataItem(this.minorDataItems[j], false);\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\t\t}\n\n\t\tthis._updateGhost();\n\t}\n\n\tprotected _updateFinals(start: number, end: number) {\n\t\tthis.setPrivateRaw(\"selectionMinFinal\", this.positionToValue(start));\n\t\tthis.setPrivateRaw(\"selectionMaxFinal\", this.positionToValue(end));\n\t}\n\n\tprotected _getDelta() {\n\t\tthis._deltaMinMax = this.baseDuration() / 2;\n\t}\n\n\tprotected _fixMin(min: number) {\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\t\tconst timeUnit = baseInterval.timeUnit;\n\t\t//let startTime = $time.round(new Date(min), timeUnit, baseInterval.count, firstDay, utc, undefined, timezone).getTime();\n\t\tlet startTime = $time.roun(min, timeUnit, baseInterval.count, this._root);\n\n\t\tlet endTime = startTime + $time.getDuration(timeUnit, baseInterval.count * this._getM(timeUnit))\n\t\t//endTime = $time.round(new Date(endTime), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\tendTime = $time.roun(endTime, timeUnit, 1, this._root);\n\t\treturn startTime + (endTime - startTime) * this.get(\"startLocation\", 0);\n\t}\n\n\tprotected _fixMax(max: number) {\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\t\tconst timeUnit = baseInterval.timeUnit;\n\t\t//let startTime = $time.round(new Date(max), timeUnit, baseInterval.count, firstDay, utc, undefined, timezone).getTime();\n\t\tlet startTime = $time.roun(max, timeUnit, baseInterval.count, this._root);\n\t\tlet endTime = startTime + $time.getDuration(timeUnit, baseInterval.count * this._getM(timeUnit))\n\t\t//endTime = $time.round(new Date(endTime), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\tendTime = $time.roun(endTime, timeUnit, 1, this._root);\n\n\t\treturn startTime + (endTime - startTime) * this.get(\"endLocation\", 1);\n\t}\n\n\tprotected _updateDates(_date: number, _series: XYSeries) {\n\n\t}\n\n\tpublic _handleSeriesRemoved() {\n\t\tthis.setPrivate(\"baseInterval\", this.get(\"baseInterval\"));\n\t\tthis.setPrivate(\"min\", undefined);\n\t\tthis.setPrivate(\"minFinal\", undefined);\n\t}\n\n\t/**\n\t * Returns a duration of currently active `baseInterval` in milliseconds.\n\t * \n\t * @return Duration\n\t */\n\tpublic baseDuration(): number {\n\t\treturn this._baseDuration;\n\t\t//return $time.getIntervalDuration(this.getPrivate(\"baseInterval\"));\n\t}\n\n\t/**\n\t * Returns a duration of user-defined `baseInterval` in milliseconds.\n\t *\n\t * @return Duration\n\t */\n\tpublic baseMainDuration(): number {\n\t\treturn $time.getIntervalDuration(this.get(\"baseInterval\"));\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic processSeriesDataItem(dataItem: DataItem<IXYSeriesDataItem>, fields: Array<string>) {\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\n\t\tif (!dataItem.open) {\n\t\t\tdataItem.open = {};\n\t\t}\n\t\tif (!dataItem.close) {\n\t\t\tdataItem.close = {};\n\t\t}\n\n\t\t$array.each(fields, (field) => {\n\t\t\tlet value = dataItem.get(field as any);\n\t\t\tif ($type.isNumber(value)) {\n\t\t\t\tlet startTime = dataItem.open![field];\n\t\t\t\tlet endTime = dataItem.close![field];\n\t\t\t\t// this is done to save cpu, as rounding is quite expensive, especially with timezone set. \n\t\t\t\t// if value is between prev start and end, it means it didn't change, all is fine.\n\t\t\t\tif (value >= startTime && value <= endTime) {\n\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconst timeUnit = baseInterval.timeUnit;\n\t\t\t\t\tconst count = baseInterval.count;\n\t\t\t\t\t//startTime = $time.round(new Date(value), timeUnit, count, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\t\tstartTime = $time.roun(value, timeUnit, count, this._root);\n\t\t\t\t\tendTime = startTime + $time.getDuration(timeUnit, count * this._getM(timeUnit));\n\t\t\t\t\t//endTime = $time.round(new Date(endTime), timeUnit, 1, firstDay, utc, undefined, timezone).getTime();\n\t\t\t\t\tendTime = $time.roun(endTime, timeUnit, 1, this._root);\n\n\t\t\t\t\tdataItem.open![field] = startTime;\n\t\t\t\t\tdataItem.close![field] = endTime;\n\t\t\t\t}\n\n\t\t\t\tthis._updateDates(startTime, dataItem.component as XYSeries);\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected _handleSizeDirty() {\n\t\t// void \n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataItemPositionX(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number, exactLocation?: boolean): number {\n\n\t\tlet openValue;\n\t\tlet closeValue;\n\t\tlet value;\n\n\t\tif (exactLocation) {\n\t\t\tvalue = dataItem.get(field as any);\n\t\t}\n\t\telse {\n\t\t\tif (dataItem.open && dataItem.close) {\n\t\t\t\topenValue = dataItem.open[field];\n\t\t\t\tcloseValue = dataItem.close[field];\n\t\t\t}\n\t\t\telse {\n\t\t\t\topenValue = dataItem.get(field as any)\n\t\t\t\tcloseValue = openValue;\n\t\t\t}\n\n\t\t\tvalue = openValue + (closeValue - openValue) * cellLocation;\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 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 getDataItemPositionY(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number, exactLocation?: boolean): number {\n\t\tlet openValue;\n\t\tlet closeValue;\n\t\tlet value;\n\t\tif (exactLocation) {\n\t\t\tvalue = dataItem.get(field as any);\n\t\t}\n\t\telse {\n\t\t\tif (dataItem.open && dataItem.close) {\n\t\t\t\topenValue = dataItem.open[field];\n\t\t\t\tcloseValue = dataItem.close[field];\n\t\t\t}\n\t\t\telse {\n\t\t\t\topenValue = dataItem.get(field as any)\n\t\t\t\tcloseValue = openValue;\n\t\t\t}\n\n\t\t\tvalue = openValue + (closeValue - openValue) * cellLocation;\n\t\t\tvalue = this._baseValue + (value - this._baseValue) * axisLocation;\n\t\t}\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 roundAxisPosition(position: number, location: number): number {\n\t\tlet value = this.positionToValue(position);\n\t\tvalue = value - (location - 0.5) * this.baseDuration();\n\n\t\tlet baseInterval = this.getPrivate(\"baseInterval\");\n\t\tif (!$type.isNaN(value)) {\n\t\t\tconst firstDay = this._root.locale.firstDayOfWeek;\n\t\t\tconst timeUnit = baseInterval.timeUnit;\n\t\t\tconst utc = this._root.utc;\n\t\t\tconst timezone = this._root.timezone;\n\t\t\tconst count = baseInterval.count;\n\n\t\t\t//value = $time.round(new Date(value), timeUnit, count, firstDay, utc, new Date(this.getPrivate(\"min\", 0)), timezone).getTime();\n\t\t\tvalue = $time.roun(value, timeUnit, count, this._root, this.getPrivate(\"min\", 0));\n\n\t\t\tlet duration = $time.getDateIntervalDuration(baseInterval, new Date(value), firstDay, utc, timezone);\n\t\t\tif (timezone) {\n\t\t\t\t//value = $time.round(new Date(value + this.baseDuration() * 0.05), timeUnit, count, firstDay, utc, new Date(this.getPrivate(\"min\", 0)), timezone).getTime();\n\t\t\t\tvalue = $time.roun(value + this.baseDuration() * 0.05, timeUnit, count, this._root, this.getPrivate(\"min\", 0));\n\t\t\t\tduration = $time.getDateIntervalDuration(baseInterval, new Date(value + duration * location), firstDay, utc, timezone);\n\t\t\t}\n\n\t\t\treturn this.valueToPosition(value + duration * location);\n\t\t}\n\t\treturn NaN;\n\t}\n\n\t/**\n\t * Returns text to be used in an axis tooltip for specific relative position.\n\t *\n\t * NOTE: Unless `adjustPosition` (2nd parameter) is set to `false`, the method\n\t * will adjust position by `tooltipIntervalOffset`.\n\t *\n\t * @param position Position\n\t * @param adjustPosition Adjust position\n\t * @return Tooltip text\n\t */\n\tpublic getTooltipText(position: number, adjustPosition?: boolean): string | undefined {\n\t\t//@todo number formatter + tag\n\t\tif (this.getPrivate(\"min\") != null) {\n\t\t\tlet format = this.get(\"tooltipDateFormats\")![this.getPrivate(\"baseInterval\").timeUnit];\n\t\t\tlet value = this.positionToValue(position);\n\t\t\tif ($type.isNumber(value)) {\n\t\t\t\tlet date = new Date(value);\n\n\t\t\t\tlet baseInterval = this.getPrivate(\"baseInterval\");\n\t\t\t\tlet duration = $time.getDateIntervalDuration(baseInterval, date, this._root.locale.firstDayOfWeek, this._root.utc, this._root.timezone);\n\n\t\t\t\tif (adjustPosition !== false) {\n\t\t\t\t\tdate = new Date(value + this.get(\"tooltipIntervalOffset\", -this.get(\"tooltipLocation\", 0.5)) * duration)\n\t\t\t\t}\n\n\t\t\t\treturn this._root.dateFormatter.format(date, this.get(\"tooltipDateFormat\", format));\n\t\t\t}\n\n\t\t}\n\t\treturn \"\";\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, location?: number, snap?: boolean): 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\tif (location == null) {\n\t\t\tlocation = 0.5;\n\t\t}\n\n\t\tvalue = value - (location - 0.5) * this.baseDuration();\n\n\t\tconst result = $array.getSortedIndex(series.dataItems, (dataItem) => {\n\t\t\tlet diValue = 0;\n\t\t\tif (dataItem.open) {\n\t\t\t\tdiValue = dataItem.open[fieldName];\n\t\t\t}\n\n\t\t\treturn $order.compare(diValue, value);\n\t\t});\n\n\t\tif (snap || series.get(\"snapTooltip\")) {\n\t\t\tlet first = series.dataItems[result.index - 1];\n\t\t\tlet second = series.dataItems[result.index];\n\n\t\t\tif (first && second) {\n\t\t\t\tif (first.open && second.close) {\n\t\t\t\t\tlet open = first.open[fieldName];\n\t\t\t\t\tlet close = second.close[fieldName];\n\n\t\t\t\t\tif (Math.abs(value - open) > Math.abs(value - close)) {\n\t\t\t\t\t\treturn second;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (first) {\n\t\t\t\treturn first;\n\t\t\t}\n\n\t\t\tif (second) {\n\t\t\t\treturn second;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tconst dataItem = series.dataItems[result.index - 1];\n\n\t\t\tif (dataItem) {\n\t\t\t\tif (dataItem.open && dataItem.close) {\n\t\t\t\t\tlet open = dataItem.open[fieldName];\n\t\t\t\t\tlet close = dataItem.close[fieldName];\n\n\t\t\t\t\tif (value >= open && value <= close) {\n\t\t\t\t\t\treturn dataItem;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic shouldGap(dataItem: DataItem<IXYSeriesDataItem>, nextItem: DataItem<IXYSeriesDataItem>, autoGapCount: number, fieldName: string): boolean {\n\t\tconst value1 = dataItem.get(fieldName as any);\n\t\tconst value2 = nextItem.get(fieldName as any);\n\n\t\tif (value2 - value1 > this.baseDuration() * autoGapCount) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Zooms the axis to specific `start` and `end` dates.\n\t *\n\t * Optional `duration` specifies duration of zoom animation in milliseconds.\n\t *\n\t * @param start Start Date\n\t * @param end End Date\n\t * @param duration Duration in milliseconds\n\t */\n\tpublic zoomToDates(start: Date, end: Date, duration?: number) {\n\t\tthis.zoomToValues(start.getTime(), end.getTime(), duration);\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\", this.getPrivate(\"min\", 0));\n\t\tconst max = this.getPrivate(\"maxFinal\", this.getPrivate(\"max\", 0));\n\n\t\tif (this.getPrivate(\"min\") != null && this.getPrivate(\"max\") != null) {\n\t\t\tif (this.get(\"groupData\")) {\n\t\t\t\tconst futureGroupInterval = this.getGroupInterval(end - start);\n\t\t\t\tconst baseInterval = this.get(\"baseInterval\");\n\n\t\t\t\tlet baseMin = this.getIntervalMin(baseInterval);\n\t\t\t\tlet baseMax = this.getIntervalMax(baseInterval) - 1;\n\t\t\t\tbaseMax = $time.roun(baseMax, futureGroupInterval.timeUnit, futureGroupInterval.count, this.root);\n\t\t\t\tbaseMax += this._getM(futureGroupInterval.timeUnit) * $time.getIntervalDuration(futureGroupInterval);\n\t\t\t\tbaseMax = $time.roun(baseMax, futureGroupInterval.timeUnit, futureGroupInterval.count, this.root);\n\n\t\t\t\tlet futureMin = $time.roun(baseMin, futureGroupInterval.timeUnit, futureGroupInterval.count, this.root);\n\t\t\t\tlet futureMax = $time.roun(baseMax, futureGroupInterval.timeUnit, futureGroupInterval.count, this.root);\n\n\t\t\t\tlet s = (start - futureMin) / (futureMax - futureMin);\n\t\t\t\tlet e = (end - futureMin) / (futureMax - futureMin);\n\n\t\t\t\tthis.zoom(s, e, duration);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.zoom((start - min) / (max - min), (end - min) / (max - min), duration);\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * Returns a `Date` object corresponding to specific position within plot\n\t * area.\n\t *\n\t * @param position Pposition\n\t * @return Date\n\t */\n\tpublic positionToDate(position: number): Date {\n\t\treturn new Date(this.positionToValue(position));\n\t}\n\n\t/**\n\t * Returns a relative position within plot area that corresponds to specific\n\t * date.\n\t *\n\t * @param date Date\n\t * @return Position\n\t */\n\tpublic dateToPosition(date: Date): number {\n\t\treturn this.valueToPosition(date.getTime());\n\t}\n\n\t/**\n\t * Returns relative position between two grid lines of the axis.\n\t *\n\t * @since 5.2.30\n\t * @return Position\n\t */\n\tpublic getCellWidthPosition(): number {\n\t\tlet max = this.getPrivate(\"selectionMax\", this.getPrivate(\"max\"));\n\t\tlet min = this.getPrivate(\"selectionMin\", this.getPrivate(\"min\"));\n\n\t\tif ($type.isNumber(max) && $type.isNumber(min)) {\n\t\t\treturn this._intervalDuration / (max - min);\n\t\t}\n\t\treturn 0.05;\n\t}\n\n\tpublic nextPosition(count?: number) {\n\t\tif (count == null) {\n\t\t\tcount = 1;\n\t\t}\n\n\t\tlet dtime = this.get(\"tooltipLocation\", 0.5) * this.baseDuration();\n\t\tif (this.get(\"renderer\").getPrivate(\"letter\") == \"Y\") {\n\t\t\tcount *= -1;\n\t\t}\n\n\t\tlet tooltipValue = this.positionToValue(this.getPrivate(\"tooltipPosition\", 0));\n\n\t\tconst baseInterval = this.getPrivate(\"baseInterval\");\n\t\tlet time = this._nextTime(tooltipValue, count, baseInterval);\n\n\t\tlet selectionMin = this.getPrivate(\"selectionMin\", 0);\n\t\tlet selectionMax = this.getPrivate(\"selectionMax\", 0);\n\n\t\tlet min = $time.roun(selectionMin, baseInterval.timeUnit, baseInterval.count, this._root);\n\t\tlet max = $time.roun(selectionMax, baseInterval.timeUnit, baseInterval.count, this._root);\n\n\t\ttime += dtime;\n\t\ttime = $math.fitToRange(time, min + dtime, max - dtime);\n\n\t\treturn this.toGlobalPosition(this.valueToPosition(time));\n\t}\n\n\tprotected _nextTime(time: number, count: number, baseInterval: ITimeInterval) {\n\t\treturn $time.roun(time + count * this.baseDuration(), baseInterval.timeUnit, baseInterval.count, this._root);\n\t}\n}\n"]}