@amcharts/amcharts5 5.15.6 → 5.16.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 (726) hide show
  1. package/.internal/charts/flow/ArcDiagram.js +4 -24
  2. package/.internal/charts/flow/ArcDiagram.js.map +1 -1
  3. package/.internal/charts/flow/ArcDiagramLink.js +3 -30
  4. package/.internal/charts/flow/ArcDiagramLink.js.map +1 -1
  5. package/.internal/charts/flow/ArcDiagramNodes.js +5 -39
  6. package/.internal/charts/flow/ArcDiagramNodes.js.map +1 -1
  7. package/.internal/charts/flow/Chord.js +7 -42
  8. package/.internal/charts/flow/Chord.js.map +1 -1
  9. package/.internal/charts/flow/ChordDirected.js +5 -30
  10. package/.internal/charts/flow/ChordDirected.js.map +1 -1
  11. package/.internal/charts/flow/ChordLink.js +2 -33
  12. package/.internal/charts/flow/ChordLink.js.map +1 -1
  13. package/.internal/charts/flow/ChordLinkDirected.js +2 -12
  14. package/.internal/charts/flow/ChordLinkDirected.js.map +1 -1
  15. package/.internal/charts/flow/ChordNodes.js +6 -45
  16. package/.internal/charts/flow/ChordNodes.js.map +1 -1
  17. package/.internal/charts/flow/ChordNonRibbon.js +2 -12
  18. package/.internal/charts/flow/ChordNonRibbon.js.map +1 -1
  19. package/.internal/charts/flow/Flow.js +8 -48
  20. package/.internal/charts/flow/Flow.js.map +1 -1
  21. package/.internal/charts/flow/FlowLink.js +2 -33
  22. package/.internal/charts/flow/FlowLink.js.map +1 -1
  23. package/.internal/charts/flow/FlowNode.js +2 -24
  24. package/.internal/charts/flow/FlowNode.js.map +1 -1
  25. package/.internal/charts/flow/FlowNodes.js +5 -30
  26. package/.internal/charts/flow/FlowNodes.js.map +1 -1
  27. package/.internal/charts/flow/Sankey.js +7 -48
  28. package/.internal/charts/flow/Sankey.js.map +1 -1
  29. package/.internal/charts/flow/SankeyLink.js +4 -24
  30. package/.internal/charts/flow/SankeyLink.js.map +1 -1
  31. package/.internal/charts/flow/SankeyNodes.js +3 -27
  32. package/.internal/charts/flow/SankeyNodes.js.map +1 -1
  33. package/.internal/charts/funnel/FunnelSeries.js +8 -48
  34. package/.internal/charts/funnel/FunnelSeries.js.map +1 -1
  35. package/.internal/charts/funnel/FunnelSlice.js +15 -90
  36. package/.internal/charts/funnel/FunnelSlice.js.map +1 -1
  37. package/.internal/charts/funnel/PictorialStackedSeries.js +5 -30
  38. package/.internal/charts/funnel/PictorialStackedSeries.js.map +1 -1
  39. package/.internal/charts/funnel/PyramidSeries.js +3 -24
  40. package/.internal/charts/funnel/PyramidSeries.js.map +1 -1
  41. package/.internal/charts/funnel/SlicedChart.js +2 -12
  42. package/.internal/charts/funnel/SlicedChart.js.map +1 -1
  43. package/.internal/charts/gantt/Gantt.js +57 -188
  44. package/.internal/charts/gantt/Gantt.js.map +1 -1
  45. package/.internal/charts/gantt/GanttCategoryAxis.js +9 -110
  46. package/.internal/charts/gantt/GanttCategoryAxis.js.map +1 -1
  47. package/.internal/charts/gantt/GanttCategoryAxisRenderer.js +27 -72
  48. package/.internal/charts/gantt/GanttCategoryAxisRenderer.js.map +1 -1
  49. package/.internal/charts/gantt/GanttDateAxis.js +2 -24
  50. package/.internal/charts/gantt/GanttDateAxis.js.map +1 -1
  51. package/.internal/charts/gantt/GanttDateAxisRenderer.js +2 -12
  52. package/.internal/charts/gantt/GanttDateAxisRenderer.js.map +1 -1
  53. package/.internal/charts/gantt/GanttSeries.js +49 -173
  54. package/.internal/charts/gantt/GanttSeries.js.map +1 -1
  55. package/.internal/charts/hierarchy/BreadcrumbBar.js +8 -29
  56. package/.internal/charts/hierarchy/BreadcrumbBar.js.map +1 -1
  57. package/.internal/charts/hierarchy/ForceDirected.js +10 -60
  58. package/.internal/charts/hierarchy/ForceDirected.js.map +1 -1
  59. package/.internal/charts/hierarchy/Hierarchy.js +11 -64
  60. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  61. package/.internal/charts/hierarchy/HierarchyLink.js +3 -24
  62. package/.internal/charts/hierarchy/HierarchyLink.js.map +1 -1
  63. package/.internal/charts/hierarchy/HierarchyNode.js +2 -30
  64. package/.internal/charts/hierarchy/HierarchyNode.js.map +1 -1
  65. package/.internal/charts/hierarchy/LinkedHierarchy.js +18 -58
  66. package/.internal/charts/hierarchy/LinkedHierarchy.js.map +1 -1
  67. package/.internal/charts/hierarchy/LinkedHierarchyNode.js +2 -12
  68. package/.internal/charts/hierarchy/LinkedHierarchyNode.js.map +1 -1
  69. package/.internal/charts/hierarchy/Pack.js +7 -38
  70. package/.internal/charts/hierarchy/Pack.js.map +1 -1
  71. package/.internal/charts/hierarchy/Partition.js +7 -32
  72. package/.internal/charts/hierarchy/Partition.js.map +1 -1
  73. package/.internal/charts/hierarchy/Sunburst.js +10 -40
  74. package/.internal/charts/hierarchy/Sunburst.js.map +1 -1
  75. package/.internal/charts/hierarchy/Tree.js +4 -30
  76. package/.internal/charts/hierarchy/Tree.js.map +1 -1
  77. package/.internal/charts/hierarchy/Treemap.js +8 -38
  78. package/.internal/charts/hierarchy/Treemap.js.map +1 -1
  79. package/.internal/charts/hierarchy/VoronoiTreemap.js +7 -32
  80. package/.internal/charts/hierarchy/VoronoiTreemap.js.map +1 -1
  81. package/.internal/charts/map/ClusteredPointSeries.js +11 -72
  82. package/.internal/charts/map/ClusteredPointSeries.js.map +1 -1
  83. package/.internal/charts/map/GraticuleSeries.js +3 -18
  84. package/.internal/charts/map/GraticuleSeries.js.map +1 -1
  85. package/.internal/charts/map/MapChart.d.ts +39 -1
  86. package/.internal/charts/map/MapChart.d.ts.map +1 -1
  87. package/.internal/charts/map/MapChart.js +168 -187
  88. package/.internal/charts/map/MapChart.js.map +1 -1
  89. package/.internal/charts/map/MapLine.js +3 -18
  90. package/.internal/charts/map/MapLine.js.map +1 -1
  91. package/.internal/charts/map/MapLineSeries.js +4 -24
  92. package/.internal/charts/map/MapLineSeries.js.map +1 -1
  93. package/.internal/charts/map/MapPointSeries.js +3 -24
  94. package/.internal/charts/map/MapPointSeries.js.map +1 -1
  95. package/.internal/charts/map/MapPolygon.js +3 -27
  96. package/.internal/charts/map/MapPolygon.js.map +1 -1
  97. package/.internal/charts/map/MapPolygonSeries.js +4 -24
  98. package/.internal/charts/map/MapPolygonSeries.js.map +1 -1
  99. package/.internal/charts/map/MapSeries.js +7 -42
  100. package/.internal/charts/map/MapSeries.js.map +1 -1
  101. package/.internal/charts/map/ZoomControl.js +2 -12
  102. package/.internal/charts/map/ZoomControl.js.map +1 -1
  103. package/.internal/charts/percent/PercentChart.js +2 -12
  104. package/.internal/charts/percent/PercentChart.js.map +1 -1
  105. package/.internal/charts/percent/PercentSeries.js +11 -66
  106. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  107. package/.internal/charts/pie/PieChart.js +3 -18
  108. package/.internal/charts/pie/PieChart.js.map +1 -1
  109. package/.internal/charts/pie/PieSeries.js +2 -12
  110. package/.internal/charts/pie/PieSeries.js.map +1 -1
  111. package/.internal/charts/radar/AxisRendererCircular.js +9 -34
  112. package/.internal/charts/radar/AxisRendererCircular.js.map +1 -1
  113. package/.internal/charts/radar/AxisRendererRadial.js +6 -26
  114. package/.internal/charts/radar/AxisRendererRadial.js.map +1 -1
  115. package/.internal/charts/radar/ClockHand.js +4 -24
  116. package/.internal/charts/radar/ClockHand.js.map +1 -1
  117. package/.internal/charts/radar/RadarChart.js +5 -30
  118. package/.internal/charts/radar/RadarChart.js.map +1 -1
  119. package/.internal/charts/radar/RadarColumnSeries.js +6 -21
  120. package/.internal/charts/radar/RadarColumnSeries.js.map +1 -1
  121. package/.internal/charts/radar/RadarCursor.js +3 -18
  122. package/.internal/charts/radar/RadarCursor.js.map +1 -1
  123. package/.internal/charts/radar/RadarLineSeries.js +2 -12
  124. package/.internal/charts/radar/RadarLineSeries.js.map +1 -1
  125. package/.internal/charts/radar/SmoothedRadarLineSeries.js +2 -12
  126. package/.internal/charts/radar/SmoothedRadarLineSeries.js.map +1 -1
  127. package/.internal/charts/stock/PanelControls.js +26 -56
  128. package/.internal/charts/stock/PanelControls.js.map +1 -1
  129. package/.internal/charts/stock/SettingsModal.js +3 -30
  130. package/.internal/charts/stock/SettingsModal.js.map +1 -1
  131. package/.internal/charts/stock/StockChart.js +11 -108
  132. package/.internal/charts/stock/StockChart.js.map +1 -1
  133. package/.internal/charts/stock/StockLegend.js +14 -34
  134. package/.internal/charts/stock/StockLegend.js.map +1 -1
  135. package/.internal/charts/stock/StockPanel.js +3 -38
  136. package/.internal/charts/stock/StockPanel.js.map +1 -1
  137. package/.internal/charts/stock/drawing/AverageSeries.js +3 -18
  138. package/.internal/charts/stock/drawing/AverageSeries.js.map +1 -1
  139. package/.internal/charts/stock/drawing/CalloutSeries.js +3 -18
  140. package/.internal/charts/stock/drawing/CalloutSeries.js.map +1 -1
  141. package/.internal/charts/stock/drawing/DoodleSeries.js +5 -42
  142. package/.internal/charts/stock/drawing/DoodleSeries.js.map +1 -1
  143. package/.internal/charts/stock/drawing/DrawingSeries.js +32 -200
  144. package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
  145. package/.internal/charts/stock/drawing/EllipseSeries.js +7 -42
  146. package/.internal/charts/stock/drawing/EllipseSeries.js.map +1 -1
  147. package/.internal/charts/stock/drawing/FibonacciSeries.js +7 -42
  148. package/.internal/charts/stock/drawing/FibonacciSeries.js.map +1 -1
  149. package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js +3 -18
  150. package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js.map +1 -1
  151. package/.internal/charts/stock/drawing/HorizontalLineSeries.js +3 -18
  152. package/.internal/charts/stock/drawing/HorizontalLineSeries.js.map +1 -1
  153. package/.internal/charts/stock/drawing/HorizontalRaySeries.js +3 -18
  154. package/.internal/charts/stock/drawing/HorizontalRaySeries.js.map +1 -1
  155. package/.internal/charts/stock/drawing/IconSeries.js +3 -24
  156. package/.internal/charts/stock/drawing/IconSeries.js.map +1 -1
  157. package/.internal/charts/stock/drawing/LabelSeries.js +5 -36
  158. package/.internal/charts/stock/drawing/LabelSeries.js.map +1 -1
  159. package/.internal/charts/stock/drawing/LineArrowSeries.js +4 -24
  160. package/.internal/charts/stock/drawing/LineArrowSeries.js.map +1 -1
  161. package/.internal/charts/stock/drawing/Measure.js +6 -36
  162. package/.internal/charts/stock/drawing/Measure.js.map +1 -1
  163. package/.internal/charts/stock/drawing/ParallelChannelSeries.js +5 -30
  164. package/.internal/charts/stock/drawing/ParallelChannelSeries.js.map +1 -1
  165. package/.internal/charts/stock/drawing/PolylineSeries.js +4 -24
  166. package/.internal/charts/stock/drawing/PolylineSeries.js.map +1 -1
  167. package/.internal/charts/stock/drawing/QuadrantLineSeries.js +3 -18
  168. package/.internal/charts/stock/drawing/QuadrantLineSeries.js.map +1 -1
  169. package/.internal/charts/stock/drawing/RectangleSeries.js +4 -24
  170. package/.internal/charts/stock/drawing/RectangleSeries.js.map +1 -1
  171. package/.internal/charts/stock/drawing/RegressionSeries.js +3 -18
  172. package/.internal/charts/stock/drawing/RegressionSeries.js.map +1 -1
  173. package/.internal/charts/stock/drawing/SimpleLineSeries.js +9 -54
  174. package/.internal/charts/stock/drawing/SimpleLineSeries.js.map +1 -1
  175. package/.internal/charts/stock/drawing/TrendLineSeries.js +3 -18
  176. package/.internal/charts/stock/drawing/TrendLineSeries.js.map +1 -1
  177. package/.internal/charts/stock/drawing/VerticalLineSeries.js +3 -18
  178. package/.internal/charts/stock/drawing/VerticalLineSeries.js.map +1 -1
  179. package/.internal/charts/stock/indicators/AccelerationBands.js +23 -56
  180. package/.internal/charts/stock/indicators/AccelerationBands.js.map +1 -1
  181. package/.internal/charts/stock/indicators/AccumulationDistribution.js +11 -26
  182. package/.internal/charts/stock/indicators/AccumulationDistribution.js.map +1 -1
  183. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js +15 -42
  184. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js.map +1 -1
  185. package/.internal/charts/stock/indicators/Aroon.js +15 -30
  186. package/.internal/charts/stock/indicators/Aroon.js.map +1 -1
  187. package/.internal/charts/stock/indicators/AverageTrueRange.js +11 -26
  188. package/.internal/charts/stock/indicators/AverageTrueRange.js.map +1 -1
  189. package/.internal/charts/stock/indicators/AwesomeOscillator.js +11 -26
  190. package/.internal/charts/stock/indicators/AwesomeOscillator.js.map +1 -1
  191. package/.internal/charts/stock/indicators/BollingerBands.js +33 -66
  192. package/.internal/charts/stock/indicators/BollingerBands.js.map +1 -1
  193. package/.internal/charts/stock/indicators/BullBearPower.js +11 -26
  194. package/.internal/charts/stock/indicators/BullBearPower.js.map +1 -1
  195. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js +11 -26
  196. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js.map +1 -1
  197. package/.internal/charts/stock/indicators/ChaikinOscillator.js +15 -30
  198. package/.internal/charts/stock/indicators/ChaikinOscillator.js.map +1 -1
  199. package/.internal/charts/stock/indicators/ChartIndicator.js +3 -54
  200. package/.internal/charts/stock/indicators/ChartIndicator.js.map +1 -1
  201. package/.internal/charts/stock/indicators/CommodityChannelIndex.js +2 -12
  202. package/.internal/charts/stock/indicators/CommodityChannelIndex.js.map +1 -1
  203. package/.internal/charts/stock/indicators/DisparityIndex.js +21 -36
  204. package/.internal/charts/stock/indicators/DisparityIndex.js.map +1 -1
  205. package/.internal/charts/stock/indicators/HeikinAshi.js +11 -26
  206. package/.internal/charts/stock/indicators/HeikinAshi.js.map +1 -1
  207. package/.internal/charts/stock/indicators/Indicator.js +4 -42
  208. package/.internal/charts/stock/indicators/Indicator.js.map +1 -1
  209. package/.internal/charts/stock/indicators/MACD.js +31 -64
  210. package/.internal/charts/stock/indicators/MACD.js.map +1 -1
  211. package/.internal/charts/stock/indicators/MACross.js +19 -34
  212. package/.internal/charts/stock/indicators/MACross.js.map +1 -1
  213. package/.internal/charts/stock/indicators/MedianPrice.js +11 -26
  214. package/.internal/charts/stock/indicators/MedianPrice.js.map +1 -1
  215. package/.internal/charts/stock/indicators/Momentum.js +18 -33
  216. package/.internal/charts/stock/indicators/Momentum.js.map +1 -1
  217. package/.internal/charts/stock/indicators/MovingAverage.js +25 -40
  218. package/.internal/charts/stock/indicators/MovingAverage.js.map +1 -1
  219. package/.internal/charts/stock/indicators/MovingAverageDeviation.js +33 -48
  220. package/.internal/charts/stock/indicators/MovingAverageDeviation.js.map +1 -1
  221. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js +42 -75
  222. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js.map +1 -1
  223. package/.internal/charts/stock/indicators/OnBalanceVolume.js +7 -22
  224. package/.internal/charts/stock/indicators/OnBalanceVolume.js.map +1 -1
  225. package/.internal/charts/stock/indicators/OverboughtOversold.js +19 -64
  226. package/.internal/charts/stock/indicators/OverboughtOversold.js.map +1 -1
  227. package/.internal/charts/stock/indicators/PVT.js +7 -22
  228. package/.internal/charts/stock/indicators/PVT.js.map +1 -1
  229. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js +2 -24
  230. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js.map +1 -1
  231. package/.internal/charts/stock/indicators/StandardDeviation.js +16 -31
  232. package/.internal/charts/stock/indicators/StandardDeviation.js.map +1 -1
  233. package/.internal/charts/stock/indicators/StochasticMomentumIndex.js +2 -24
  234. package/.internal/charts/stock/indicators/StochasticMomentumIndex.js.map +1 -1
  235. package/.internal/charts/stock/indicators/StochasticOscillator.js +2 -24
  236. package/.internal/charts/stock/indicators/StochasticOscillator.js.map +1 -1
  237. package/.internal/charts/stock/indicators/SuperTrend.js +19 -52
  238. package/.internal/charts/stock/indicators/SuperTrend.js.map +1 -1
  239. package/.internal/charts/stock/indicators/Trix.js +20 -49
  240. package/.internal/charts/stock/indicators/Trix.js.map +1 -1
  241. package/.internal/charts/stock/indicators/TypicalPrice.js +11 -26
  242. package/.internal/charts/stock/indicators/TypicalPrice.js.map +1 -1
  243. package/.internal/charts/stock/indicators/VWAP.js +16 -31
  244. package/.internal/charts/stock/indicators/VWAP.js.map +1 -1
  245. package/.internal/charts/stock/indicators/Volume.js +11 -26
  246. package/.internal/charts/stock/indicators/Volume.js.map +1 -1
  247. package/.internal/charts/stock/indicators/VolumeProfile.js +32 -65
  248. package/.internal/charts/stock/indicators/VolumeProfile.js.map +1 -1
  249. package/.internal/charts/stock/indicators/WilliamsR.js +2 -12
  250. package/.internal/charts/stock/indicators/WilliamsR.js.map +1 -1
  251. package/.internal/charts/stock/indicators/ZigZag.js +15 -30
  252. package/.internal/charts/stock/indicators/ZigZag.js.map +1 -1
  253. package/.internal/charts/stock/toolbar/ColorControl.js +2 -12
  254. package/.internal/charts/stock/toolbar/ColorControl.js.map +1 -1
  255. package/.internal/charts/stock/toolbar/ComparisonControl.js +2 -12
  256. package/.internal/charts/stock/toolbar/ComparisonControl.js.map +1 -1
  257. package/.internal/charts/stock/toolbar/DataSaveControl.js +2 -12
  258. package/.internal/charts/stock/toolbar/DataSaveControl.js.map +1 -1
  259. package/.internal/charts/stock/toolbar/DateRangeSelector.js +2 -12
  260. package/.internal/charts/stock/toolbar/DateRangeSelector.js.map +1 -1
  261. package/.internal/charts/stock/toolbar/DrawingControl.js +4 -24
  262. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  263. package/.internal/charts/stock/toolbar/DrawingToolControl.js +2 -12
  264. package/.internal/charts/stock/toolbar/DrawingToolControl.js.map +1 -1
  265. package/.internal/charts/stock/toolbar/Dropdown.js +2 -12
  266. package/.internal/charts/stock/toolbar/Dropdown.js.map +1 -1
  267. package/.internal/charts/stock/toolbar/DropdownColors.js +2 -12
  268. package/.internal/charts/stock/toolbar/DropdownColors.js.map +1 -1
  269. package/.internal/charts/stock/toolbar/DropdownControl.js +2 -12
  270. package/.internal/charts/stock/toolbar/DropdownControl.js.map +1 -1
  271. package/.internal/charts/stock/toolbar/DropdownList.js +2 -21
  272. package/.internal/charts/stock/toolbar/DropdownList.js.map +1 -1
  273. package/.internal/charts/stock/toolbar/DropdownListControl.js +2 -12
  274. package/.internal/charts/stock/toolbar/DropdownListControl.js.map +1 -1
  275. package/.internal/charts/stock/toolbar/IconControl.js +2 -12
  276. package/.internal/charts/stock/toolbar/IconControl.js.map +1 -1
  277. package/.internal/charts/stock/toolbar/IndicatorControl.js +2 -12
  278. package/.internal/charts/stock/toolbar/IndicatorControl.js.map +1 -1
  279. package/.internal/charts/stock/toolbar/IntervalControl.js +2 -12
  280. package/.internal/charts/stock/toolbar/IntervalControl.js.map +1 -1
  281. package/.internal/charts/stock/toolbar/PeriodSelector.js +2 -27
  282. package/.internal/charts/stock/toolbar/PeriodSelector.js.map +1 -1
  283. package/.internal/charts/stock/toolbar/ResetControl.js +2 -12
  284. package/.internal/charts/stock/toolbar/ResetControl.js.map +1 -1
  285. package/.internal/charts/stock/toolbar/SeriesTypeControl.js +2 -12
  286. package/.internal/charts/stock/toolbar/SeriesTypeControl.js.map +1 -1
  287. package/.internal/charts/stock/toolbar/SettingsControl.js +2 -12
  288. package/.internal/charts/stock/toolbar/SettingsControl.js.map +1 -1
  289. package/.internal/charts/stock/toolbar/StockControl.js +2 -12
  290. package/.internal/charts/stock/toolbar/StockControl.js.map +1 -1
  291. package/.internal/charts/stock/toolbar/StockIcons.js +52 -57
  292. package/.internal/charts/stock/toolbar/StockIcons.js.map +1 -1
  293. package/.internal/charts/stock/toolbar/StockToolbar.js +2 -21
  294. package/.internal/charts/stock/toolbar/StockToolbar.js.map +1 -1
  295. package/.internal/charts/timeline/AxisRendererCurveX.js +11 -46
  296. package/.internal/charts/timeline/AxisRendererCurveX.js.map +1 -1
  297. package/.internal/charts/timeline/AxisRendererCurveY.js +6 -26
  298. package/.internal/charts/timeline/AxisRendererCurveY.js.map +1 -1
  299. package/.internal/charts/timeline/CurveChart.js +3 -18
  300. package/.internal/charts/timeline/CurveChart.js.map +1 -1
  301. package/.internal/charts/timeline/CurveColumnSeries.js +6 -21
  302. package/.internal/charts/timeline/CurveColumnSeries.js.map +1 -1
  303. package/.internal/charts/timeline/CurveCursor.js +2 -12
  304. package/.internal/charts/timeline/CurveCursor.js.map +1 -1
  305. package/.internal/charts/timeline/CurveLineSeries.js +2 -12
  306. package/.internal/charts/timeline/CurveLineSeries.js.map +1 -1
  307. package/.internal/charts/timeline/SerpentineChart.js +2 -12
  308. package/.internal/charts/timeline/SerpentineChart.js.map +1 -1
  309. package/.internal/charts/timeline/SpiralChart.js +2 -12
  310. package/.internal/charts/timeline/SpiralChart.js.map +1 -1
  311. package/.internal/charts/venn/Venn.js +8 -54
  312. package/.internal/charts/venn/Venn.js.map +1 -1
  313. package/.internal/charts/wordcloud/WordCloud.js +9 -66
  314. package/.internal/charts/wordcloud/WordCloud.js.map +1 -1
  315. package/.internal/charts/xy/XYChart.js +23 -149
  316. package/.internal/charts/xy/XYChart.js.map +1 -1
  317. package/.internal/charts/xy/XYChartScrollbar.js +15 -35
  318. package/.internal/charts/xy/XYChartScrollbar.js.map +1 -1
  319. package/.internal/charts/xy/XYCursor.js +16 -93
  320. package/.internal/charts/xy/XYCursor.js.map +1 -1
  321. package/.internal/charts/xy/axes/Axis.js +27 -166
  322. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  323. package/.internal/charts/xy/axes/AxisBullet.js +2 -24
  324. package/.internal/charts/xy/axes/AxisBullet.js.map +1 -1
  325. package/.internal/charts/xy/axes/AxisLabel.js +3 -18
  326. package/.internal/charts/xy/axes/AxisLabel.js.map +1 -1
  327. package/.internal/charts/xy/axes/AxisLabelRadial.js +3 -18
  328. package/.internal/charts/xy/axes/AxisLabelRadial.js.map +1 -1
  329. package/.internal/charts/xy/axes/AxisRenderer.js +21 -131
  330. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  331. package/.internal/charts/xy/axes/AxisRendererX.js +3 -18
  332. package/.internal/charts/xy/axes/AxisRendererX.js.map +1 -1
  333. package/.internal/charts/xy/axes/AxisRendererY.js +3 -24
  334. package/.internal/charts/xy/axes/AxisRendererY.js.map +1 -1
  335. package/.internal/charts/xy/axes/AxisTick.js +3 -18
  336. package/.internal/charts/xy/axes/AxisTick.js.map +1 -1
  337. package/.internal/charts/xy/axes/CategoryAxis.js +4 -24
  338. package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
  339. package/.internal/charts/xy/axes/CategoryDateAxis.js +4 -24
  340. package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
  341. package/.internal/charts/xy/axes/DateAxis.js +9 -54
  342. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  343. package/.internal/charts/xy/axes/DurationAxis.js +5 -30
  344. package/.internal/charts/xy/axes/DurationAxis.js.map +1 -1
  345. package/.internal/charts/xy/axes/EditableAxisLabel.js +3 -18
  346. package/.internal/charts/xy/axes/EditableAxisLabel.js.map +1 -1
  347. package/.internal/charts/xy/axes/GaplessDateAxis.js +5 -36
  348. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  349. package/.internal/charts/xy/axes/Grid.js +2 -12
  350. package/.internal/charts/xy/axes/Grid.js.map +1 -1
  351. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  352. package/.internal/charts/xy/axes/ValueAxis.js +15 -73
  353. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  354. package/.internal/charts/xy/series/BaseColumnSeries.js +5 -30
  355. package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
  356. package/.internal/charts/xy/series/Candlestick.js +2 -12
  357. package/.internal/charts/xy/series/Candlestick.js.map +1 -1
  358. package/.internal/charts/xy/series/CandlestickSeries.js +7 -22
  359. package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
  360. package/.internal/charts/xy/series/ColumnSeries.js +8 -33
  361. package/.internal/charts/xy/series/ColumnSeries.js.map +1 -1
  362. package/.internal/charts/xy/series/LineSeries.js +13 -89
  363. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  364. package/.internal/charts/xy/series/OHLC.js +2 -12
  365. package/.internal/charts/xy/series/OHLC.js.map +1 -1
  366. package/.internal/charts/xy/series/OHLCSeries.js +7 -22
  367. package/.internal/charts/xy/series/OHLCSeries.js.map +1 -1
  368. package/.internal/charts/xy/series/SmoothedXLineSeries.js +2 -12
  369. package/.internal/charts/xy/series/SmoothedXLineSeries.js.map +1 -1
  370. package/.internal/charts/xy/series/SmoothedXYLineSeries.js +2 -12
  371. package/.internal/charts/xy/series/SmoothedXYLineSeries.js.map +1 -1
  372. package/.internal/charts/xy/series/SmoothedYLineSeries.js +2 -12
  373. package/.internal/charts/xy/series/SmoothedYLineSeries.js.map +1 -1
  374. package/.internal/charts/xy/series/StepLineSeries.js +2 -12
  375. package/.internal/charts/xy/series/StepLineSeries.js.map +1 -1
  376. package/.internal/charts/xy/series/XYSeries.js +33 -282
  377. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  378. package/.internal/core/Registry.js +5 -30
  379. package/.internal/core/Registry.js.map +1 -1
  380. package/.internal/core/Root.d.ts.map +1 -1
  381. package/.internal/core/Root.js +38 -398
  382. package/.internal/core/Root.js.map +1 -1
  383. package/.internal/core/Theme.js +1 -12
  384. package/.internal/core/Theme.js.map +1 -1
  385. package/.internal/core/render/Bullet.js +2 -31
  386. package/.internal/core/render/Bullet.js.map +1 -1
  387. package/.internal/core/render/Button.js +2 -12
  388. package/.internal/core/render/Button.js.map +1 -1
  389. package/.internal/core/render/Chart.js +4 -24
  390. package/.internal/core/render/Chart.js.map +1 -1
  391. package/.internal/core/render/Circle.js +2 -12
  392. package/.internal/core/render/Circle.js.map +1 -1
  393. package/.internal/core/render/Component.js +11 -135
  394. package/.internal/core/render/Component.js.map +1 -1
  395. package/.internal/core/render/ConfirmButton.js +2 -21
  396. package/.internal/core/render/ConfirmButton.js.map +1 -1
  397. package/.internal/core/render/Container.js +13 -108
  398. package/.internal/core/render/Container.js.map +1 -1
  399. package/.internal/core/render/EditableLabel.js +2 -21
  400. package/.internal/core/render/EditableLabel.js.map +1 -1
  401. package/.internal/core/render/Ellipse.js +2 -12
  402. package/.internal/core/render/Ellipse.js.map +1 -1
  403. package/.internal/core/render/Graphics.js +4 -24
  404. package/.internal/core/render/Graphics.js.map +1 -1
  405. package/.internal/core/render/GridLayout.js +2 -12
  406. package/.internal/core/render/GridLayout.js.map +1 -1
  407. package/.internal/core/render/HeatLegend.js +9 -44
  408. package/.internal/core/render/HeatLegend.js.map +1 -1
  409. package/.internal/core/render/HorizontalLayout.js +2 -12
  410. package/.internal/core/render/HorizontalLayout.js.map +1 -1
  411. package/.internal/core/render/Label.js +41 -62
  412. package/.internal/core/render/Label.js.map +1 -1
  413. package/.internal/core/render/Layout.js +2 -12
  414. package/.internal/core/render/Layout.js.map +1 -1
  415. package/.internal/core/render/Legend.js +22 -57
  416. package/.internal/core/render/Legend.js.map +1 -1
  417. package/.internal/core/render/Line.js +2 -12
  418. package/.internal/core/render/Line.js.map +1 -1
  419. package/.internal/core/render/Link.js +10 -40
  420. package/.internal/core/render/Link.js.map +1 -1
  421. package/.internal/core/render/MonotoneXTension.js +8 -54
  422. package/.internal/core/render/MonotoneXTension.js.map +1 -1
  423. package/.internal/core/render/MonotoneYTension.js +8 -54
  424. package/.internal/core/render/MonotoneYTension.js.map +1 -1
  425. package/.internal/core/render/NumericStepper.js +6 -36
  426. package/.internal/core/render/NumericStepper.js.map +1 -1
  427. package/.internal/core/render/OrthogonalLine.js +2 -12
  428. package/.internal/core/render/OrthogonalLine.js.map +1 -1
  429. package/.internal/core/render/Picture.js +3 -18
  430. package/.internal/core/render/Picture.js.map +1 -1
  431. package/.internal/core/render/PointedRectangle.js +2 -12
  432. package/.internal/core/render/PointedRectangle.js.map +1 -1
  433. package/.internal/core/render/Polygon.js +2 -21
  434. package/.internal/core/render/Polygon.js.map +1 -1
  435. package/.internal/core/render/ProgressPie.js +8 -38
  436. package/.internal/core/render/ProgressPie.js.map +1 -1
  437. package/.internal/core/render/RadialLabel.js +3 -18
  438. package/.internal/core/render/RadialLabel.js.map +1 -1
  439. package/.internal/core/render/RadialText.js +3 -18
  440. package/.internal/core/render/RadialText.js.map +1 -1
  441. package/.internal/core/render/Rectangle.js +2 -12
  442. package/.internal/core/render/Rectangle.js.map +1 -1
  443. package/.internal/core/render/RoundedRectangle.js +2 -12
  444. package/.internal/core/render/RoundedRectangle.js.map +1 -1
  445. package/.internal/core/render/Scrollbar.js +9 -60
  446. package/.internal/core/render/Scrollbar.js.map +1 -1
  447. package/.internal/core/render/SerialChart.js +4 -24
  448. package/.internal/core/render/SerialChart.js.map +1 -1
  449. package/.internal/core/render/Series.js +8 -69
  450. package/.internal/core/render/Series.js.map +1 -1
  451. package/.internal/core/render/Slice.js +5 -30
  452. package/.internal/core/render/Slice.js.map +1 -1
  453. package/.internal/core/render/Slider.js +2 -12
  454. package/.internal/core/render/Slider.js.map +1 -1
  455. package/.internal/core/render/Sprite.js +86 -249
  456. package/.internal/core/render/Sprite.js.map +1 -1
  457. package/.internal/core/render/SpriteResizer.js +11 -72
  458. package/.internal/core/render/SpriteResizer.js.map +1 -1
  459. package/.internal/core/render/Star.js +2 -12
  460. package/.internal/core/render/Star.js.map +1 -1
  461. package/.internal/core/render/Text.js +35 -66
  462. package/.internal/core/render/Text.js.map +1 -1
  463. package/.internal/core/render/Tick.js +2 -12
  464. package/.internal/core/render/Tick.js.map +1 -1
  465. package/.internal/core/render/Tooltip.js +7 -78
  466. package/.internal/core/render/Tooltip.js.map +1 -1
  467. package/.internal/core/render/Triangle.js +2 -12
  468. package/.internal/core/render/Triangle.js.map +1 -1
  469. package/.internal/core/render/VerticalLayout.js +2 -12
  470. package/.internal/core/render/VerticalLayout.js.map +1 -1
  471. package/.internal/core/render/ZoomTools.js +5 -42
  472. package/.internal/core/render/ZoomTools.js.map +1 -1
  473. package/.internal/core/render/ZoomableContainer.js +17 -82
  474. package/.internal/core/render/ZoomableContainer.js.map +1 -1
  475. package/.internal/core/render/backend/CanvasRenderer.js +142 -1205
  476. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  477. package/.internal/core/render/gradients/Gradient.js +2 -12
  478. package/.internal/core/render/gradients/Gradient.js.map +1 -1
  479. package/.internal/core/render/gradients/LinearGradient.js +2 -12
  480. package/.internal/core/render/gradients/LinearGradient.js.map +1 -1
  481. package/.internal/core/render/gradients/RadialGradient.js +2 -12
  482. package/.internal/core/render/gradients/RadialGradient.js.map +1 -1
  483. package/.internal/core/render/patterns/CirclePattern.js +2 -12
  484. package/.internal/core/render/patterns/CirclePattern.js.map +1 -1
  485. package/.internal/core/render/patterns/GrainPattern.js +5 -30
  486. package/.internal/core/render/patterns/GrainPattern.js.map +1 -1
  487. package/.internal/core/render/patterns/LinePattern.js +2 -12
  488. package/.internal/core/render/patterns/LinePattern.js.map +1 -1
  489. package/.internal/core/render/patterns/PathPattern.js +2 -12
  490. package/.internal/core/render/patterns/PathPattern.js.map +1 -1
  491. package/.internal/core/render/patterns/Pattern.js +5 -36
  492. package/.internal/core/render/patterns/Pattern.js.map +1 -1
  493. package/.internal/core/render/patterns/PicturePattern.js +2 -21
  494. package/.internal/core/render/patterns/PicturePattern.js.map +1 -1
  495. package/.internal/core/render/patterns/RectanglePattern.js +2 -12
  496. package/.internal/core/render/patterns/RectanglePattern.js.map +1 -1
  497. package/.internal/core/util/Animation.js +6 -54
  498. package/.internal/core/util/Animation.js.map +1 -1
  499. package/.internal/core/util/Benchmark.js +3 -18
  500. package/.internal/core/util/Benchmark.js.map +1 -1
  501. package/.internal/core/util/Children.js +1 -18
  502. package/.internal/core/util/Children.js.map +1 -1
  503. package/.internal/core/util/Color.js +0 -6
  504. package/.internal/core/util/Color.js.map +1 -1
  505. package/.internal/core/util/ColorSet.js +2 -12
  506. package/.internal/core/util/ColorSet.js.map +1 -1
  507. package/.internal/core/util/Counter.js +2 -18
  508. package/.internal/core/util/Counter.js.map +1 -1
  509. package/.internal/core/util/Data.js +0 -26
  510. package/.internal/core/util/Data.js.map +1 -1
  511. package/.internal/core/util/DataProcessor.js +5 -30
  512. package/.internal/core/util/DataProcessor.js.map +1 -1
  513. package/.internal/core/util/Disposer.js +2 -66
  514. package/.internal/core/util/Disposer.js.map +1 -1
  515. package/.internal/core/util/DurationFormatter.js +8 -13
  516. package/.internal/core/util/DurationFormatter.js.map +1 -1
  517. package/.internal/core/util/Entity.js +31 -271
  518. package/.internal/core/util/Entity.js.map +1 -1
  519. package/.internal/core/util/EventDispatcher.js +0 -45
  520. package/.internal/core/util/EventDispatcher.js.map +1 -1
  521. package/.internal/core/util/InterfaceColors.js +2 -12
  522. package/.internal/core/util/InterfaceColors.js.map +1 -1
  523. package/.internal/core/util/List.js +3 -39
  524. package/.internal/core/util/List.js.map +1 -1
  525. package/.internal/core/util/Matrix.js +0 -36
  526. package/.internal/core/util/Matrix.js.map +1 -1
  527. package/.internal/core/util/Modal.js +2 -12
  528. package/.internal/core/util/Modal.js.map +1 -1
  529. package/.internal/core/util/PatternSet.js +2 -12
  530. package/.internal/core/util/PatternSet.js.map +1 -1
  531. package/.internal/core/util/Percent.js +0 -9
  532. package/.internal/core/util/Percent.js.map +1 -1
  533. package/.internal/core/util/ResizeSensor.js +5 -54
  534. package/.internal/core/util/ResizeSensor.js.map +1 -1
  535. package/.internal/core/util/States.js +2 -30
  536. package/.internal/core/util/States.js.map +1 -1
  537. package/.internal/core/util/Template.js +10 -96
  538. package/.internal/core/util/Template.js.map +1 -1
  539. package/.internal/core/util/TextFormatter.js +1 -6
  540. package/.internal/core/util/TextFormatter.js.map +1 -1
  541. package/.internal/core/util/Throttler.js +2 -18
  542. package/.internal/core/util/Throttler.js.map +1 -1
  543. package/.internal/core/util/Timezone.js +0 -18
  544. package/.internal/core/util/Timezone.js.map +1 -1
  545. package/.internal/core/util/Utils.js +0 -21
  546. package/.internal/core/util/Utils.js.map +1 -1
  547. package/.internal/core/util/Value.js +1 -18
  548. package/.internal/core/util/Value.js.map +1 -1
  549. package/.internal/plugins/colorPicker/ColorPicker.js +96 -235
  550. package/.internal/plugins/colorPicker/ColorPicker.js.map +1 -1
  551. package/.internal/plugins/colorPicker/ColorPickerButton.js +8 -34
  552. package/.internal/plugins/colorPicker/ColorPickerButton.js.map +1 -1
  553. package/.internal/plugins/exporting/Annotator.js +3 -36
  554. package/.internal/plugins/exporting/Annotator.js.map +1 -1
  555. package/.internal/plugins/exporting/Exporting.js +2 -12
  556. package/.internal/plugins/exporting/Exporting.js.map +1 -1
  557. package/.internal/plugins/exporting/ExportingMenu.js +6 -66
  558. package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
  559. package/.internal/plugins/json/ChartSerializer.js +8 -48
  560. package/.internal/plugins/json/ChartSerializer.js.map +1 -1
  561. package/.internal/plugins/json/Json.js +3 -24
  562. package/.internal/plugins/json/Json.js.map +1 -1
  563. package/.internal/plugins/json/Serializer.js +3 -18
  564. package/.internal/plugins/json/Serializer.js.map +1 -1
  565. package/.internal/plugins/sliceGrouper/SliceGrouper.js +2 -24
  566. package/.internal/plugins/sliceGrouper/SliceGrouper.js.map +1 -1
  567. package/.internal/themes/ResponsiveTheme.js +8 -54
  568. package/.internal/themes/ResponsiveTheme.js.map +1 -1
  569. package/CHANGELOG.md +12 -0
  570. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  571. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  572. package/examples/javascript/flow-chord/package.json +1 -1
  573. package/examples/javascript/flow-chord-directed/package.json +1 -1
  574. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  575. package/examples/javascript/flow-sankey/package.json +1 -1
  576. package/examples/javascript/gantt/package.json +1 -1
  577. package/examples/javascript/gantt-multilevel/package.json +1 -1
  578. package/examples/javascript/gantt-simple/package.json +1 -1
  579. package/examples/javascript/gauge/package.json +1 -1
  580. package/examples/javascript/gauge-bands/package.json +1 -1
  581. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  582. package/examples/javascript/hierarchy-pack/package.json +1 -1
  583. package/examples/javascript/hierarchy-partition/package.json +1 -1
  584. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  585. package/examples/javascript/hierarchy-tree/package.json +1 -1
  586. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  587. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  588. package/examples/javascript/jest/package.json +1 -1
  589. package/examples/javascript/json-pie/package.json +1 -1
  590. package/examples/javascript/json-xy/package.json +1 -1
  591. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  592. package/examples/javascript/map-clustered-points/package.json +1 -1
  593. package/examples/javascript/map-day-and-night/package.json +1 -1
  594. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  595. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  596. package/examples/javascript/map-with-bubbles/package.json +1 -1
  597. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  598. package/examples/javascript/misc-40-charts/package.json +1 -1
  599. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  600. package/examples/javascript/pie-chart/package.json +1 -1
  601. package/examples/javascript/pie-donut-chart/package.json +1 -1
  602. package/examples/javascript/pie-variable-radius/package.json +1 -1
  603. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  604. package/examples/javascript/radar-heat-map/package.json +1 -1
  605. package/examples/javascript/radar-line/package.json +1 -1
  606. package/examples/javascript/radar-time-line/package.json +1 -1
  607. package/examples/javascript/sliced-funnel/package.json +1 -1
  608. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  609. package/examples/javascript/sliced-pyramid/package.json +1 -1
  610. package/examples/javascript/stock-chart/package.json +1 -1
  611. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  612. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  613. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  614. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  615. package/examples/javascript/stock-chart-live/package.json +1 -1
  616. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  617. package/examples/javascript/timeline-horizontal-serpentine-chart/package.json +1 -1
  618. package/examples/javascript/timeline-linear-process-diagram/package.json +1 -1
  619. package/examples/javascript/timeline-serpentine-chart/package.json +1 -1
  620. package/examples/javascript/timeline-spiral-chart/package.json +1 -1
  621. package/examples/javascript/venn-diagram/package.json +1 -1
  622. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  623. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  624. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  625. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  626. package/examples/javascript/xy-bubble/package.json +1 -1
  627. package/examples/javascript/xy-candlestick/package.json +1 -1
  628. package/examples/javascript/xy-clustered-column/package.json +1 -1
  629. package/examples/javascript/xy-column/package.json +1 -1
  630. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  631. package/examples/javascript/xy-data-grouping/package.json +1 -1
  632. package/examples/javascript/xy-draggable-range/package.json +1 -1
  633. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  634. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  635. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  636. package/examples/javascript/xy-line/package.json +1 -1
  637. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  638. package/examples/javascript/xy-live-data/package.json +1 -1
  639. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  640. package/examples/javascript/xy-ohlc/package.json +1 -1
  641. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  642. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  643. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  644. package/examples/javascript/xy-stacked-column/package.json +1 -1
  645. package/examples/javascript/xy-stacked-step/package.json +1 -1
  646. package/examples/javascript/xy-stock/package.json +1 -1
  647. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  648. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  649. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  650. package/examples/typescript/flow-chord/package.json +1 -1
  651. package/examples/typescript/flow-chord-directed/package.json +1 -1
  652. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  653. package/examples/typescript/flow-sankey/package.json +1 -1
  654. package/examples/typescript/gantt/package.json +1 -1
  655. package/examples/typescript/gantt-multilevel/package.json +1 -1
  656. package/examples/typescript/gantt-simple/package.json +1 -1
  657. package/examples/typescript/gauge/package.json +1 -1
  658. package/examples/typescript/gauge-bands/package.json +1 -1
  659. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  660. package/examples/typescript/hierarchy-pack/package.json +1 -1
  661. package/examples/typescript/hierarchy-partition/package.json +1 -1
  662. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  663. package/examples/typescript/hierarchy-tree/package.json +1 -1
  664. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  665. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  666. package/examples/typescript/jest/package.json +1 -1
  667. package/examples/typescript/json-pie/package.json +1 -1
  668. package/examples/typescript/json-xy/package.json +1 -1
  669. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  670. package/examples/typescript/map-clustered-points/package.json +1 -1
  671. package/examples/typescript/map-day-and-night/package.json +1 -1
  672. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  673. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  674. package/examples/typescript/map-with-bubbles/package.json +1 -1
  675. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  676. package/examples/typescript/misc-40-charts/package.json +1 -1
  677. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  678. package/examples/typescript/pie-chart/package.json +1 -1
  679. package/examples/typescript/pie-donut-chart/package.json +1 -1
  680. package/examples/typescript/pie-variable-radius/package.json +1 -1
  681. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  682. package/examples/typescript/radar-heat-map/package.json +1 -1
  683. package/examples/typescript/radar-line/package.json +1 -1
  684. package/examples/typescript/radar-time-line/package.json +1 -1
  685. package/examples/typescript/sliced-funnel/package.json +1 -1
  686. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  687. package/examples/typescript/sliced-pyramid/package.json +1 -1
  688. package/examples/typescript/stock-chart/package.json +1 -1
  689. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  690. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  691. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  692. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  693. package/examples/typescript/stock-chart-live/package.json +1 -1
  694. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  695. package/examples/typescript/timeline-horizontal-serpentine-chart/package.json +1 -1
  696. package/examples/typescript/timeline-linear-process-diagram/package.json +1 -1
  697. package/examples/typescript/timeline-serpentine-chart/package.json +1 -1
  698. package/examples/typescript/timeline-spiral-chart/package.json +1 -1
  699. package/examples/typescript/venn-diagram/package.json +1 -1
  700. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  701. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  702. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  703. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  704. package/examples/typescript/xy-bubble/package.json +1 -1
  705. package/examples/typescript/xy-candlestick/package.json +1 -1
  706. package/examples/typescript/xy-clustered-column/package.json +1 -1
  707. package/examples/typescript/xy-column/package.json +1 -1
  708. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  709. package/examples/typescript/xy-data-grouping/package.json +1 -1
  710. package/examples/typescript/xy-draggable-range/package.json +1 -1
  711. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  712. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  713. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  714. package/examples/typescript/xy-line/package.json +1 -1
  715. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  716. package/examples/typescript/xy-live-data/package.json +1 -1
  717. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  718. package/examples/typescript/xy-ohlc/package.json +1 -1
  719. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  720. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  721. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  722. package/examples/typescript/xy-stacked-column/package.json +1 -1
  723. package/examples/typescript/xy-stacked-step/package.json +1 -1
  724. package/examples/typescript/xy-stock/package.json +1 -1
  725. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  726. package/package.json +1 -1
@@ -30,224 +30,103 @@ export class Gantt extends Container {
30
30
  /**
31
31
  * A scrollbar for horizontal scrolling.
32
32
  */
33
- Object.defineProperty(this, "scrollbarX", {
34
- enumerable: true,
35
- configurable: true,
36
- writable: true,
37
- value: Scrollbar.new(this._root, {
38
- orientation: "horizontal"
39
- })
33
+ this.scrollbarX = Scrollbar.new(this._root, {
34
+ orientation: "horizontal"
40
35
  });
41
36
  /**
42
37
  * A scrollbar for vertical scrolling.
43
38
  */
44
- Object.defineProperty(this, "scrollbarY", {
45
- enumerable: true,
46
- configurable: true,
47
- writable: true,
48
- value: Scrollbar.new(this._root, {
49
- orientation: "vertical"
50
- })
51
- });
52
- /**
53
- * A reference to the [[XYChart]] that holds the Gantt chart.
54
- */
55
- Object.defineProperty(this, "xyChart", {
56
- enumerable: true,
57
- configurable: true,
58
- writable: true,
59
- value: void 0
60
- });
61
- /**
62
- * A reference to the [[GanttSeries]] that shows the Gantt tasks bars.
63
- */
64
- Object.defineProperty(this, "series", {
65
- enumerable: true,
66
- configurable: true,
67
- writable: true,
68
- value: void 0
69
- });
70
- /**
71
- * A reference to the [[GanttDateAxis]] used as the main X-axis.
72
- */
73
- Object.defineProperty(this, "xAxis", {
74
- enumerable: true,
75
- configurable: true,
76
- writable: true,
77
- value: void 0
78
- });
79
- /**
80
- * A reference to the [[GanttDateAxis]] used as the secondary X-axis.
81
- */
82
- Object.defineProperty(this, "xAxisMinor", {
83
- enumerable: true,
84
- configurable: true,
85
- writable: true,
86
- value: void 0
87
- });
88
- /**
89
- * A reference to the [[GanttCategoryAxis]] used as the Y-axis.
90
- */
91
- Object.defineProperty(this, "yAxis", {
92
- enumerable: true,
93
- configurable: true,
94
- writable: true,
95
- value: void 0
39
+ this.scrollbarY = Scrollbar.new(this._root, {
40
+ orientation: "vertical"
96
41
  });
97
42
  /**
98
43
  * Controls (add, color picker, expand, collaps, clear buttons) container.
99
44
  */
100
- Object.defineProperty(this, "controls", {
101
- enumerable: true,
102
- configurable: true,
103
- writable: true,
104
- value: Container.new(this._root, {
105
- themeTags: ["controls"],
106
- layout: this._root.horizontalLayout,
107
- })
45
+ this.controls = Container.new(this._root, {
46
+ themeTags: ["controls"],
47
+ layout: this._root.horizontalLayout,
108
48
  });
109
- Object.defineProperty(this, "zoomControls", {
110
- enumerable: true,
111
- configurable: true,
112
- writable: true,
113
- value: Container.new(this._root, {
114
- themeTagsSelf: ["zoomcontrols"]
115
- })
49
+ this.zoomControls = Container.new(this._root, {
50
+ themeTagsSelf: ["zoomcontrols"]
116
51
  });
117
52
  /**
118
53
  * The [[Button]] element to add new tasks.
119
54
  */
120
- Object.defineProperty(this, "addButton", {
121
- enumerable: true,
122
- configurable: true,
123
- writable: true,
124
- value: this.controls.children.push(Button.new(this._root, {
125
- themeTags: ["add", "plus"],
126
- tooltip: this.root.systemTooltip,
127
- icon: Graphics.new(this._root, { themeTags: ["icon"] })
128
- }))
129
- });
55
+ this.addButton = this.controls.children.push(Button.new(this._root, {
56
+ themeTags: ["add", "plus"],
57
+ tooltip: this.root.systemTooltip,
58
+ icon: Graphics.new(this._root, { themeTags: ["icon"] })
59
+ }));
130
60
  /**
131
61
  * The [[ColorPickerButton]] element to select colors for tasks.
132
62
  */
133
- Object.defineProperty(this, "colorPickerButton", {
134
- enumerable: true,
135
- configurable: true,
136
- writable: true,
137
- value: this.controls.children.push(ColorPickerButton.new(this._root, {
138
- disableOpacity: true,
139
- tooltip: this.root.systemTooltip
140
- }))
141
- });
63
+ this.colorPickerButton = this.controls.children.push(ColorPickerButton.new(this._root, {
64
+ disableOpacity: true,
65
+ tooltip: this.root.systemTooltip
66
+ }));
142
67
  /**
143
68
  * The [[Button]] elements to expand and collapse all tasks.
144
69
  */
145
- Object.defineProperty(this, "expandButton", {
146
- enumerable: true,
147
- configurable: true,
148
- writable: true,
149
- value: this.controls.children.push(Button.new(this._root, {
150
- themeTags: ["expand", "secondary", "fixedwidth"],
151
- icon: Graphics.new(this._root, { themeTags: ["icon"] }),
152
- tooltip: this.root.systemTooltip
153
- }))
154
- });
70
+ this.expandButton = this.controls.children.push(Button.new(this._root, {
71
+ themeTags: ["expand", "secondary", "fixedwidth"],
72
+ icon: Graphics.new(this._root, { themeTags: ["icon"] }),
73
+ tooltip: this.root.systemTooltip
74
+ }));
155
75
  /**
156
76
  * The [[Button]] elements to collapse all tasks.
157
77
  */
158
- Object.defineProperty(this, "collapseButton", {
159
- enumerable: true,
160
- configurable: true,
161
- writable: true,
162
- value: this.controls.children.push(Button.new(this._root, {
163
- themeTags: ["collapse", "secondary", "fixedwidth"],
164
- icon: Graphics.new(this._root, { themeTags: ["icon"] }),
165
- tooltip: this.root.systemTooltip
166
- }))
167
- });
78
+ this.collapseButton = this.controls.children.push(Button.new(this._root, {
79
+ themeTags: ["collapse", "secondary", "fixedwidth"],
80
+ icon: Graphics.new(this._root, { themeTags: ["icon"] }),
81
+ tooltip: this.root.systemTooltip
82
+ }));
168
83
  /**
169
84
  * The [[Button]] element to toggle `linkNewTasks` setting.
170
85
  */
171
- Object.defineProperty(this, "linkButton", {
172
- enumerable: true,
173
- configurable: true,
174
- writable: true,
175
- value: this.controls.children.push(Button.new(this._root, {
176
- themeTags: ["link", "secondary", "fixedwidth"],
177
- icon: Graphics.new(this._root, { themeTags: ["icon"] }),
178
- tooltip: this.root.systemTooltip
179
- }))
180
- });
86
+ this.linkButton = this.controls.children.push(Button.new(this._root, {
87
+ themeTags: ["link", "secondary", "fixedwidth"],
88
+ icon: Graphics.new(this._root, { themeTags: ["icon"] }),
89
+ tooltip: this.root.systemTooltip
90
+ }));
181
91
  /**
182
92
  * The [[Button]] element to horizontally fit visible tasks into a view.
183
93
  */
184
- Object.defineProperty(this, "fitButton", {
185
- enumerable: true,
186
- configurable: true,
187
- writable: true,
188
- value: this.zoomControls.children.push(Button.new(this._root, {
189
- themeTags: ["fit", "secondary", "zoombutton"],
190
- icon: Graphics.new(this._root, { themeTags: ["icon"] }),
191
- tooltip: this.root.systemTooltip
192
- }))
193
- });
94
+ this.fitButton = this.zoomControls.children.push(Button.new(this._root, {
95
+ themeTags: ["fit", "secondary", "zoombutton"],
96
+ icon: Graphics.new(this._root, { themeTags: ["icon"] }),
97
+ tooltip: this.root.systemTooltip
98
+ }));
194
99
  /**
195
100
  * The [[Button]] element to zoom out the X axis.
196
101
  */
197
- Object.defineProperty(this, "zoomOutButton", {
198
- enumerable: true,
199
- configurable: true,
200
- writable: true,
201
- value: this.zoomControls.children.push(Button.new(this._root, {
202
- themeTags: ["zoomout", "secondary", "zoombutton"],
203
- icon: Graphics.new(this._root, { themeTags: ["icon"] }),
204
- tooltip: this.root.systemTooltip
205
- }))
206
- });
102
+ this.zoomOutButton = this.zoomControls.children.push(Button.new(this._root, {
103
+ themeTags: ["zoomout", "secondary", "zoombutton"],
104
+ icon: Graphics.new(this._root, { themeTags: ["icon"] }),
105
+ tooltip: this.root.systemTooltip
106
+ }));
207
107
  /**
208
108
  * The [[Button]] element to toggle edit mode.
209
109
  *
210
110
  * @since 5.14.1
211
111
  */
212
- Object.defineProperty(this, "editButton", {
213
- enumerable: true,
214
- configurable: true,
215
- writable: true,
216
- value: this.controls.children.push(Button.new(this._root, {
217
- themeTags: ["edit", "secondary", "fixedwidth"],
218
- icon: Graphics.new(this._root, { themeTags: ["icon"] }),
219
- tooltip: this.root.systemTooltip
220
- }))
221
- });
112
+ this.editButton = this.controls.children.push(Button.new(this._root, {
113
+ themeTags: ["edit", "secondary", "fixedwidth"],
114
+ icon: Graphics.new(this._root, { themeTags: ["icon"] }),
115
+ tooltip: this.root.systemTooltip
116
+ }));
222
117
  /**
223
118
  * The [[Button]] element to clear all tasks.
224
119
  */
225
- Object.defineProperty(this, "clearButton", {
226
- enumerable: true,
227
- configurable: true,
228
- writable: true,
229
- value: this.controls.children.push(ConfirmButton.new(this._root, {
230
- themeTags: ["clear", "secondary", "confirm"],
231
- icon: Graphics.new(this._root, { themeTags: ["icon"] }),
232
- tooltip: this.root.systemTooltip,
233
- active: false
234
- }))
235
- });
120
+ this.clearButton = this.controls.children.push(ConfirmButton.new(this._root, {
121
+ themeTags: ["clear", "secondary", "confirm"],
122
+ icon: Graphics.new(this._root, { themeTags: ["icon"] }),
123
+ tooltip: this.root.systemTooltip,
124
+ active: false
125
+ }));
236
126
  /**
237
127
  * The [[ColorPicker]] element to select colors for tasks.
238
128
  */
239
- Object.defineProperty(this, "colorPicker", {
240
- enumerable: true,
241
- configurable: true,
242
- writable: true,
243
- value: this.children.push(ColorPicker.new(this._root, { visible: false }))
244
- });
245
- Object.defineProperty(this, "_customColor", {
246
- enumerable: true,
247
- configurable: true,
248
- writable: true,
249
- value: void 0
250
- });
129
+ this.colorPicker = this.children.push(ColorPicker.new(this._root, { visible: false }));
251
130
  }
252
131
  _applyThemes(force = false) {
253
132
  const colors = this.get("colors");
@@ -787,16 +666,6 @@ export class Gantt extends Container {
787
666
  this.xAxisMinor.set(forceInactive, !value);
788
667
  }
789
668
  }
790
- Object.defineProperty(Gantt, "className", {
791
- enumerable: true,
792
- configurable: true,
793
- writable: true,
794
- value: "Gantt"
795
- });
796
- Object.defineProperty(Gantt, "classNames", {
797
- enumerable: true,
798
- configurable: true,
799
- writable: true,
800
- value: Container.classNames.concat([Gantt.className])
801
- });
669
+ Gantt.className = "Gantt";
670
+ Gantt.classNames = Container.classNames.concat([Gantt.className]);
802
671
  //# sourceMappingURL=Gantt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Gantt.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/Gantt.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ITimeInterval } from \"../../core/util/Time\";\r\nimport type { Grid } from \"../xy/axes/Grid\";\r\n\r\nimport { Button } from \"../../core/render/Button\";\r\nimport { ConfirmButton } from \"../../core/render/ConfirmButton\";\r\nimport { Graphics } from \"../../core/render/Graphics\";\r\nimport { Percent, percent } from \"../../core/util/Percent\";\r\nimport { GanttDateAxis, IGanttDateAxisDataItem } from \"./GanttDateAxis\";\r\nimport { XYChart } from \"../xy/XYChart\";\r\nimport { GanttDefaultTheme } from \"./GanttDefaultTheme\";\r\nimport { GanttSeries } from \"./GanttSeries\";\r\nimport { color, Color, ColorSet, Container, DataItem, IContainerEvents, IContainerPrivate, IContainerSettings, Rectangle, Scrollbar, Tooltip } from \"../../..\";\r\nimport { GanttCategoryAxis, IGanttCategoryAxisDataItem } from \"./GanttCategoryAxis\";\r\nimport { GanttCategoryAxisRenderer } from \"./GanttCategoryAxisRenderer\";\r\nimport { GanttDateAxisRenderer } from \"./GanttDateAxisRenderer\";\r\nimport { XYCursor } from \"../xy/XYCursor\";\r\nimport { ColorPicker } from \"../../plugins/colorPicker/ColorPicker\";\r\nimport { ColorPickerButton } from \"../../plugins/colorPicker/ColorPickerButton\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\nimport * as $utils from \"../../core/util/Utils\";\r\nimport * as $array from \"../../core/util/Array\";\r\nimport * as $time from \"../../core/util/Time\";\r\n\r\nexport interface IGanttSettings extends IContainerSettings {\r\n\r\n\t/**\r\n\t * If set to `true`, the user will be able to edit the chart via UI.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\teditable?: boolean;\r\n\r\n\t/**\r\n\t * A unit to be used for when calculating \"duration\" of Gantt items.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Duration_units} for more information\r\n\t * @default \"day\"\r\n\t */\r\n\tdurationUnit?: \"year\" | \"month\" | \"week\" | \"day\" | \"hour\" | \"minute\" | \"second\";\r\n\r\n\t/**\r\n\t * An array of weekend days, e.g. `[0, 6]` for Sunday and Saturday.\r\n\t *\r\n\t * @default [0, 6]\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Weekends_and_holidays} for more information\r\n\t */\r\n\tweekends?: Array<number>;\r\n\r\n\t/**\r\n\t * An array of dates to treat as a holiday.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Weekends_and_holidays} for more information\r\n\t */\r\n\tholidays?: Array<Date>;\r\n\r\n\t/**\r\n\t * If set to `true`, weekends will be excluded from the chart.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Weekends_and_holidays} for more information\r\n\t */\r\n\texcludeWeekends?: boolean;\r\n\r\n\t/**\r\n\t * An absolute or relative width of the left-side category column.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Category_axis_width} for more information\r\n\t * @default 30%\r\n\t */\r\n\tsidebarWidth?: number | Percent;\r\n\r\n\t/**\r\n\t * A relative vertical cell position to treat as the threshold for snapping\r\n\t * bars.\r\n\t *\r\n\t * Available range of values: `0` (left) to `1` (right).\r\n\t *\r\n\t * This will be used when resizing or dragging a bar. If the position is\r\n\t * bigger than `snapThreshold` the bar will snap to the right, if it is\r\n\t * smaller than `snapThreshold`, it will snap to the left.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Snapping_behavior} for more information\r\n\t * @default 0.5\r\n\t */\r\n\tsnapThreshold?: number;\r\n\r\n\t/**\r\n\t * A [[ColorSet]] to use when asigning colors for series.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/series/#Series_colors} for more info\r\n\t */\r\n\tcolors?: ColorSet;\r\n\r\n\t/**\r\n\t * Grid intervals.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Timeline_horizontal_axis} for more info\r\n\t */\r\n\tgridIntervals?: { [index: string]: Array<ITimeInterval> };\r\n\r\n\t/**\r\n\t * If this is set to `true`, when a new task is added, it will be automatically linked to the previous task.\r\n\t * \r\n\t * @default true\r\n\t */\r\n\tlinkNewTasks?: boolean;\r\n}\r\n\r\nexport interface IGanttPrivate extends IContainerPrivate { }\r\n\r\nexport interface IGanttEvents extends IContainerEvents {\r\n\tdatemarked: { date: number | undefined, dataItem: DataItem<IGanttDateAxisDataItem> };\r\n\tdateunmarked: { date: number | undefined, dataItem?: DataItem<IGanttDateAxisDataItem> };\r\n\tvalueschanged: {};\r\n}\r\n\r\n/**\r\n * Creates a [[Gantt]] chart.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/} for more info\r\n * @important\r\n * @since 5.14.0\r\n */\r\nexport class Gantt extends Container {\r\n\tdeclare public _settings: IGanttSettings;\r\n\tdeclare public _privateSettings: IGanttPrivate;\r\n\tdeclare public _events: IGanttEvents;\r\n\tpublic static className: string = \"Gantt\";\r\n\tpublic static classNames: Array<string> = Container.classNames.concat([Gantt.className]);\r\n\r\n\t/**\r\n\t * A scrollbar for horizontal scrolling.\r\n\t */\r\n\tpublic scrollbarX: Scrollbar = Scrollbar.new(this._root, {\r\n\t\torientation: \"horizontal\"\r\n\t});\r\n\r\n\t/**\r\n\t * A scrollbar for vertical scrolling.\r\n\t */\r\n\tpublic scrollbarY: Scrollbar = Scrollbar.new(this._root, {\r\n\t\torientation: \"vertical\"\r\n\t});\r\n\r\n\t/**\r\n\t * A reference to the [[XYChart]] that holds the Gantt chart.\r\n\t */\r\n\tpublic xyChart!: XYChart;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttSeries]] that shows the Gantt tasks bars.\r\n\t */\r\n\tpublic series!: GanttSeries;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttDateAxis]] used as the main X-axis.\r\n\t */\r\n\tpublic xAxis!: GanttDateAxis<GanttDateAxisRenderer>;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttDateAxis]] used as the secondary X-axis.\r\n\t */\r\n\tpublic xAxisMinor!: GanttDateAxis<GanttDateAxisRenderer>;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttCategoryAxis]] used as the Y-axis.\r\n\t */\r\n\tpublic yAxis!: GanttCategoryAxis<GanttCategoryAxisRenderer>;\r\n\r\n\t/**\r\n\t * Controls (add, color picker, expand, collaps, clear buttons) container.\r\n\t */\r\n\tpublic controls: Container = Container.new(this._root, {\r\n\t\tthemeTags: [\"controls\"],\r\n\t\tlayout: this._root.horizontalLayout,\r\n\t})\r\n\r\n\tpublic zoomControls: Container = Container.new(this._root, {\r\n\t\tthemeTagsSelf: [\"zoomcontrols\"]\r\n\t});\r\n\r\n\t/**\r\n\t * The [[Button]] element to add new tasks.\r\n\t */\r\n\tpublic readonly addButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"add\", \"plus\"],\r\n\t\ttooltip: this.root.systemTooltip,\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] })\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[ColorPickerButton]] element to select colors for tasks.\r\n\t */\r\n\tpublic readonly colorPickerButton: ColorPickerButton = this.controls.children.push(ColorPickerButton.new(this._root, {\r\n\t\tdisableOpacity: true,\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] elements to expand and collapse all tasks.\r\n\t */\r\n\tpublic readonly expandButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"expand\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] elements to collapse all tasks.\r\n\t */\r\n\tpublic readonly collapseButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"collapse\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to toggle `linkNewTasks` setting.\r\n\t */\r\n\tpublic readonly linkButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"link\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to horizontally fit visible tasks into a view.\r\n\t */\r\n\tpublic readonly fitButton: Button = this.zoomControls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"fit\", \"secondary\", \"zoombutton\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to zoom out the X axis.\r\n\t */\r\n\tpublic readonly zoomOutButton: Button = this.zoomControls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"zoomout\", \"secondary\", \"zoombutton\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to toggle edit mode.\r\n\t *\r\n\t * @since 5.14.1\r\n\t */\r\n\tpublic readonly editButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"edit\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to clear all tasks.\r\n\t */\r\n\tpublic readonly clearButton: ConfirmButton = this.controls.children.push(ConfirmButton.new(this._root, {\r\n\t\tthemeTags: [\"clear\", \"secondary\", \"confirm\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip,\r\n\t\tactive: false\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[ColorPicker]] element to select colors for tasks.\r\n\t */\r\n\tpublic readonly colorPicker: ColorPicker = this.children.push(ColorPicker.new(this._root, { visible: false }));\r\n\r\n\tprotected _customColor: Color | undefined;\r\n\r\n\tpublic _applyThemes(force: boolean = false): boolean {\r\n\t\tconst colors = this.get(\"colors\");\r\n\t\tif (colors) {\r\n\t\t\tcolors.reset();\r\n\t\t}\r\n\t\treturn super._applyThemes(force);\t\t\r\n\t}\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis.addTag(\"gantt\");\r\n\t\tthis._defaultThemes.push(GanttDefaultTheme.new(this._root));\r\n\r\n\t\tsuper._afterNew();\r\n\r\n\t\tconst root = this._root;\r\n\r\n\t\tthis.colorPickerButton.events.on(\"click\", () => {\r\n\t\t\tthis.yAxis.xButton.hide(0);\r\n\t\t\tthis.colorPicker.setAll({\r\n\t\t\t\tcolorButton: this.colorPickerButton\r\n\t\t\t})\r\n\t\t\tthis.children.moveValue(this.colorPicker, this.children.length - 1);\r\n\t\t\tthis.yAxis._disposeXHideDP();\r\n\t\t})\r\n\r\n\t\tthis.colorPicker.events.on(\"colorchanged\", () => {\r\n\t\t\tthis._customColor = this.colorPicker.get(\"color\");\r\n\t\t\tthis.yAxis.unselectDataItems();\r\n\t\t});\r\n\r\n\t\tthis.addButton.events.on(\"click\", () => {\r\n\t\t\tthis.addNewTask();\r\n\t\t})\r\n\r\n\t\tconst chart = this.children.push(XYChart.new(root, {}));\r\n\r\n\t\tchart.plotContainer.children.push(this.zoomControls);\r\n\t\tchart.zoomOutButton.set(\"forceHidden\", true);\r\n\r\n\t\tchart.children.push(this.controls);\r\n\r\n\t\tchart.set(\"cursor\", XYCursor.new(root, {\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis\r\n\t\t}));\r\n\r\n\t\tconst yRenderer = GanttCategoryAxisRenderer.new(root, {});\r\n\r\n\t\t// to prevent moving horizontally while dragging\r\n\t\tyRenderer.containers.template.adapters.add(\"x\", () => {\r\n\t\t\treturn 0;\r\n\t\t})\r\n\r\n\t\t// can't set fields in theme, as data is set before theme is applied\r\n\t\tconst yAxis = chart.yAxes.push(\r\n\t\t\tGanttCategoryAxis.new(root, {\r\n\t\t\t\tcategoryField: \"id\",\r\n\t\t\t\tcellSizeField: \"cellSize\",\r\n\t\t\t\tcollapsedField: \"collapsed\",\r\n\t\t\t\tparentIdField: \"parentId\",\r\n\t\t\t\tcolorField: \"color\",\r\n\t\t\t\tidField: \"id\",\r\n\t\t\t\tnameField: \"name\",\r\n\t\t\t\trenderer: yRenderer\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tyAxis.gantt = this;\r\n\r\n\t\t// update widht of scrollbar and controls container\r\n\t\tyAxis.events.on(\"boundschanged\", () => {\r\n\t\t\tthis._updateScrollbar();\r\n\t\t});\r\n\r\n\t\tchart.plotContainer.events.on(\"boundschanged\", () => {\r\n\t\t\tthis._updateScrollbar();\r\n\t\t});\r\n\r\n\t\tthis.on(\"visible\", () => {\r\n\t\t\tthis.root.events.once(\"frameended\", () => {\r\n\t\t\t\tthis._updateScrollbar();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// minor x axis\r\n\t\tconst ganttAxisRenderrerMinor = GanttDateAxisRenderer.new(root, { themeTags: [\"minor\"] });\r\n\r\n\t\t// so that grid would be hidden if axis range is added\r\n\t\tganttAxisRenderrerMinor.grid.template.adapters.add(\"forceHidden\", (forceHidden, target) => {\r\n\t\t\tconst dataItem = target.dataItem as DataItem<IGanttDateAxisDataItem>;\r\n\t\t\tif (dataItem && dataItem.get(\"active\")) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn forceHidden;\r\n\t\t})\r\n\r\n\t\tconst xAxisMinor = chart.xAxes.push(\r\n\t\t\tGanttDateAxis.new(root, {\r\n\t\t\t\tthemeTags: [\"minor\"],\r\n\t\t\t\tbaseInterval: { timeUnit: \"day\", count: 1 },\r\n\t\t\t\trenderer: ganttAxisRenderrerMinor,\r\n\t\t\t\tbackground: Rectangle.new(root, {\r\n\t\t\t\t\tfill: color(0xfff),\r\n\t\t\t\t\tfillOpacity: 0\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\txAxisMinor.gantt = this;\r\n\r\n\t\t// return default color for grid lines\r\n\t\txAxisMinor.events.on(\"pointerout\", () => {\r\n\t\t\tganttAxisRenderrerMinor.grid.each((grid) => {\r\n\t\t\t\tgrid.unhover();\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// add axis range on click\r\n\t\txAxisMinor.events.on(\"click\", () => {\r\n\t\t\tif (closestGrid) {\r\n\t\t\t\tconst dataItem = closestGrid.dataItem as DataItem<IGanttDateAxisDataItem>;\r\n\t\t\t\tif (dataItem) {\r\n\t\t\t\t\tconst value = dataItem.get(\"endValue\");\r\n\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\tlet found = false;\r\n\t\t\t\t\t\txAxisMinor.axisRanges.each((axisRange) => {\r\n\t\t\t\t\t\t\t// remove axis range if already exists\r\n\t\t\t\t\t\t\tif (axisRange.get(\"value\") === value) {\r\n\t\t\t\t\t\t\t\tthis.unmarkDate(value);\r\n\t\t\t\t\t\t\t\tfound = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t// add axis range if not exists\r\n\t\t\t\t\t\tif (!found) {\r\n\t\t\t\t\t\t\tdataItem.set(\"active\", true);\r\n\t\t\t\t\t\t\tthis.markDate(value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// find closest grid line on hover\r\n\t\tlet closestGrid: Grid | undefined;\r\n\t\txAxisMinor.events.on(\"globalpointermove\", (ev) => {\r\n\t\t\tif (xAxisMinor.isHover()) {\r\n\t\t\t\t// find most close grid line\r\n\t\t\t\tconst point = xAxisMinor.toLocal({ x: ev.point.x, y: ev.point.y });\r\n\t\t\t\tlet minX = Infinity;\r\n\t\t\t\tganttAxisRenderrerMinor.grid.each((grid) => {\r\n\t\t\t\t\tif (grid.isVisible()) {\r\n\t\t\t\t\t\tconst dataItem = grid.dataItem as DataItem<IGanttDateAxisDataItem>;\r\n\t\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\t\tif (!dataItem.get(\"isRange\")) {\r\n\t\t\t\t\t\t\t\tlet distance = Math.abs(grid.x() - point.x);\r\n\r\n\t\t\t\t\t\t\t\tif (!grid.get(\"active\")) {\r\n\t\t\t\t\t\t\t\t\tgrid.unhover();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (distance < minX) {\r\n\t\t\t\t\t\t\t\t\tminX = distance;\r\n\t\t\t\t\t\t\t\t\tclosestGrid = grid;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\tif (closestGrid) {\r\n\t\t\t\t\tclosestGrid.hover();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst ganttAxisRenderrer = GanttDateAxisRenderer.new(root, {});\r\n\t\tconst xAxis = chart.xAxes.push(\r\n\t\t\tGanttDateAxis.new(root, {\r\n\t\t\t\tbaseInterval: { timeUnit: \"day\", count: 1 },\r\n\t\t\t\trenderer: ganttAxisRenderrer,\r\n\t\t\t\ttooltip: Tooltip.new(root, {})\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\txAxis.gantt = this;\r\n\r\n\t\t// sync minor x axis with main x axis\r\n\t\txAxis.onPrivate(\"min\", (value) => {\r\n\t\t\txAxisMinor.setPrivate(\"min\", value);\r\n\t\t});\r\n\r\n\t\txAxis.onPrivate(\"max\", (value) => {\r\n\t\t\txAxisMinor.setPrivate(\"max\", value);\r\n\t\t});\r\n\r\n\t\t// sync minor x axis with main x axis\r\n\t\txAxis.on(\"start\", (value) => {\r\n\t\t\txAxisMinor.set(\"start\", value);\r\n\t\t});\r\n\r\n\t\txAxis.on(\"end\", (value) => {\r\n\t\t\txAxisMinor.set(\"end\", value);\r\n\t\t});\r\n\r\n\t\t// set min max if not set\r\n\t\tconst baseDuration = xAxis.baseDuration();\r\n\t\tif (xAxis.getPrivate(\"min\") === undefined) {\r\n\t\t\txAxis.setPrivate(\"min\", new Date().getTime());\r\n\t\t}\r\n\t\tif (xAxis.getPrivate(\"max\") === undefined) {\r\n\t\t\txAxis.setPrivate(\"max\", new Date().getTime() + baseDuration * 3);\r\n\t\t}\r\n\r\n\t\t// set grid interval\r\n\t\txAxis.onPrivate(\"gridInterval\", (value) => {\r\n\t\t\tconst gridIntervals = this.get(\"gridIntervals\");\r\n\t\t\tif (gridIntervals && gridIntervals[value.timeUnit]) {\r\n\t\t\t\txAxisMinor.set(\"gridIntervals\", gridIntervals[value.timeUnit]);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Add series\r\n\t\t// https://www.amcharts.com/docs/v5/charts/xy-chart/series/\r\n\t\tvar series = chart.series.push(GanttSeries.new(root, {\r\n\t\t\txAxis: xAxis,\r\n\t\t\tyAxis: yAxis,\r\n\t\t\tbaseAxis: yAxis,\r\n\t\t\topenValueXField: \"start\",\r\n\t\t\tvalueXField: \"end\",\r\n\t\t\tprogressField: \"progress\",\r\n\t\t\tdurationField: \"duration\",\r\n\t\t\tlinkToField: \"linkTo\",\r\n\t\t\tcategoryYField: \"id\",\r\n\t\t\tidField: \"id\"\r\n\t\t}));\r\n\r\n\t\tseries.gantt = this;\r\n\r\n\t\t// Add scrollbars\r\n\t\tthis.scrollbarX = chart.set(\"scrollbarX\", this.scrollbarX);\r\n\t\tthis.scrollbarY = chart.set(\"scrollbarY\", this.scrollbarY);\r\n\t\tthis.scrollbarY.startGrip.set(\"forceHidden\", true);\r\n\t\tthis.scrollbarY.endGrip.set(\"forceHidden\", true);\r\n\r\n\t\tthis.children.push(this.scrollbarX);\r\n\r\n\t\tthis.xyChart = chart;\r\n\t\tthis.series = series;\r\n\t\tthis.xAxis = xAxis;\r\n\t\tthis.yAxis = yAxis;\r\n\t\tthis.xAxisMinor = xAxisMinor;\r\n\r\n\t\tconst eventType = \"valueschanged\";\r\n\t\tthis.series.events.on(eventType, () => {\r\n\t\t\tif (this.get(\"editable\")) {\r\n\t\t\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\t\t\tthis.events.dispatch(eventType, { type: eventType, target: this });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// ad dbehavior to buttons\r\n\t\tthis.expandButton.events.on(\"click\", () => {\r\n\t\t\tthis.yAxis.expandAll();\r\n\t\t})\r\n\r\n\t\tthis.collapseButton.events.on(\"click\", () => {\r\n\t\t\tthis.yAxis.collapseAll();\r\n\t\t})\r\n\r\n\t\tthis.clearButton.events.on(\"confirmed\", () => {\r\n\t\t\tthis.clearAll();\r\n\t\t})\r\n\r\n\t\tthis.linkButton.on(\"active\", (active) => {\r\n\t\t\tthis.set(\"linkNewTasks\", active);\r\n\t\t})\r\n\r\n\t\tthis.colorPicker.on(\"color\", (c) => {\r\n\t\t\tthis.yAxis.setDataItemColor(this.yAxis.get(\"selectedDataItem\"), c);\r\n\t\t});\r\n\r\n\t\tthis.editButton.on(\"active\", (active) => {\r\n\t\t\tthis.set(\"editable\", active);\r\n\t\t});\r\n\r\n\t\tthis.fitButton.events.on(\"click\", () => {\r\n\r\n\t\t\tlet min = series.getPrivate(\"selectionMinX\", 0);\r\n\t\t\tlet max = series.getPrivate(\"selectionMaxX\", 0);\r\n\t\t\tconst extraMin = xAxis.get(\"extraMin\", 0.1);\r\n\t\t\tconst extraMax = xAxis.get(\"extraMax\", 0.1);\r\n\r\n\t\t\txAxis.zoomToValues(min - (max - min) * extraMin, max + (max - min) * extraMax);\r\n\r\n\t\t\t/*\r\n\t\t\txAxis.setAll({\r\n\t\t\t\t\"strictMinMax\": false,\r\n\t\t\t\t\"strictMinMaxSelection\": false,\r\n\t\t\t\t\"autoZoom\": true,\r\n\t\t\t})\r\n\r\n\t\r\n\t\t\telse {\r\n\t\t\t\txAxis.setAll({\r\n\t\t\t\t\t\"strictMinMax\": true,\r\n\t\t\t\t\t\"strictMinMaxSelection\": true,\r\n\t\t\t\t\t\"autoZoom\": false\r\n\t\t\t\t})\r\n\r\n\t\t\t\txAxis.setPrivate(\"selectionMin\", undefined);\r\n\t\t\t\txAxis.setPrivate(\"selectionMax\", undefined);\r\n\t\t\t}*/\r\n\t\t});\r\n\r\n\t\tthis.zoomOutButton.events.on(\"click\", () => {\r\n\t\t\txAxis.zoom(0, 1);\r\n\t\t});\r\n\r\n\t\tlet license = false;\r\n\t\tfor (let i = 0; i < registry.licenses.length; i++) {\r\n\t\t\tif (registry.licenses[i].match(/^AM5G.{5,}/i)) {\r\n\t\t\t\tlicense = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!license) {\r\n\t\t\tthis._root._showBranding();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._root._licenseApplied();\r\n\t\t}\r\n\t}\r\n\t// end _afterNew()\r\n\r\n\tpublic _prepareChildren(): void {\r\n\t\tsuper._prepareChildren();\r\n\t\tif (this.isDirty(\"editable\")) {\r\n\t\t\tthis._toggleEditable(this.get(\"editable\", true));\r\n\t\t}\r\n\t}\r\n\r\n\tpublic clearAll() {\r\n\t\tthis.yAxis.deleteAll();\r\n\t\tthis._customColor = undefined;\r\n\t\tthis.get(\"colors\")?.reset();\r\n\t\tthis.colorPickerButton.set(\"color\", undefined);\r\n\t\tthis._nextColor();\r\n\r\n\t\tconst today = new Date();\r\n\t\ttoday.setHours(0, 0, 0, 0);\r\n\r\n\t\tthis.xAxis.setPrivate(\"min\", today.getTime());\r\n\t\tthis.xAxis.setPrivate(\"max\", today.getTime() + this.xAxis.baseDuration() * 5);\r\n\r\n\t\tfor (let i = this.xAxisMinor.axisRanges.length - 1; i >= 0; i--) {\r\n\t\t\tconst axisRange = this.xAxisMinor.axisRanges.getIndex(i);\r\n\t\t\tif (axisRange) {\r\n\t\t\t\tthis.unmarkDate(axisRange.get(\"value\") as number);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tif (this.isDirty(\"linkNewTasks\")) {\r\n\t\t\tthis.linkButton.set(\"active\", this.get(\"linkNewTasks\", false));\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"editable\")) {\r\n\t\t\tthis.editButton.set(\"active\", this.get(\"editable\", true));\r\n\t\t}\r\n\r\n\t\tif (this._sizeDirty || this.isDirty(\"sidebarWidth\")) {\r\n\t\t\tlet width = $utils.relativeToValue(this.get(\"sidebarWidth\", percent(20)), this.innerWidth());\r\n\t\t\twidth = Math.max(width, this.yAxis.get(\"minWidth\", 100));\r\n\t\t\tthis.yAxis.labelsContainer.set(\"width\", width);\r\n\t\t\tthis._updateScrollbar();\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"durationUnit\")) {\r\n\t\t\tconst durationUnit = this.get(\"durationUnit\");\r\n\t\t\tif (durationUnit) {\r\n\t\t\t\tthis.xAxis.set(\"baseInterval\", { timeUnit: durationUnit, count: 1 });\r\n\t\t\t\tthis.xAxisMinor.set(\"baseInterval\", { timeUnit: durationUnit, count: 1 });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.colorPickerButton.getPrivate(\"color\") === undefined) {\r\n\t\t\tthis._nextColor();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _updateScrollbar() {\r\n\t\tconst point = this.xyChart.plotContainer.toGlobal({ x: 0, y: 0 });\r\n\t\tthis.scrollbarX.setAll({\r\n\t\t\tx: point.x,\r\n\t\t\twidth: this.xyChart.plotContainer.width()\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a new task to the Gantt chart.\r\n\t * \r\n\t * @param category The category name for the task. If not provided, will be auto-generated.\r\n\t * @param start The start time of the task in milliseconds. If not provided, will be determined based on context.\r\n\t * @param duration The duration of the task. If not provided, defaults to 1.\r\n\t * @param parentId The parent category if this is a subtask.\r\n\t * @param progress The initial progress of the task (0-1). Defaults to 0.\r\n\t * @param linkToPrevious Should the task automatically link to the previous one?\r\n\t */\r\n\tpublic addNewTask(name?: string, start?: number, duration: number = 1, parentId?: string, progress: number = 0, linkToPrevious?: boolean) {\r\n\t\t// Generate a unique ID for the new task\r\n\t\tlet len = this.series.dataItems.length;\r\n\t\tlet c = this.yAxis.dataItems.length;\r\n\r\n\t\t$array.each(this.yAxis.dataItems, (dataItem) => {\r\n\t\t\tif (dataItem.get(\"id\") == \"gantt_\" + c) {\r\n\t\t\t\tc++;\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tconst uid = \"gantt_\" + c;\r\n\r\n\t\tif (!name) {\r\n\t\t\tname = \"New Task\";\r\n\t\t}\r\n\r\n\t\tif (linkToPrevious === undefined) {\r\n\t\t\tlinkToPrevious = this.get(\"linkNewTasks\", false);\r\n\t\t}\r\n\r\n\t\tlet parentDataItem: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\t\t// Find parent data item either by specified category or selected item\r\n\t\tif (parentId != undefined) {\r\n\t\t\tparentDataItem = this.yAxis.getDataItemById(parentId);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tparentDataItem = this.yAxis.get(\"selectedDataItem\");\r\n\t\t}\r\n\r\n\t\tlet childCount = 0;\r\n\t\t// Handle parent-child relationship if a parent exists\r\n\t\tif (parentDataItem) {\r\n\t\t\tparentId = parentDataItem.get(\"id\");\r\n\t\t\tif (parentId) {\r\n\t\t\t\t// If start time not specified, try to use parent's start time\r\n\t\t\t\tif (start === undefined) {\r\n\t\t\t\t\tconst seriesDataItem = this.series.getDataItemById(parentId);\r\n\t\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\t\tstart = seriesDataItem.get(\"valueX\", new Date().getTime());\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Initialize or get the children array for the parent\r\n\t\t\tlet children = parentDataItem.get(\"children\");\r\n\t\t\tif (!children) {\r\n\t\t\t\tchildren = parentDataItem.set(\"children\", []);\r\n\t\t\t}\r\n\t\t\tchildCount = children.length;\r\n\t\t}\r\n\r\n\t\t// Determine start time if not specified\r\n\t\tif (start === undefined) {\r\n\t\t\tstart = $time.roun(this.xAxis.getPrivate(\"min\", 0), this.get(\"durationUnit\", \"day\"), 1, this.root);\r\n\r\n\t\t\tif (this.series.dataItems.length > 0) {\r\n\t\t\t\tstart = this.series.dataItems[len - 1].get(\"valueX\", new Date().getTime());\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst dataObject: any = {\r\n\t\t\tname: name,\r\n\t\t\tid: uid\r\n\t\t}\r\n\t\tif (parentId) {\r\n\t\t\tdataObject[\"parentId\"] = parentId;\r\n\t\t}\r\n\t\t// Add the category data\r\n\t\tlet index = 0;\r\n\t\tlet previousDataItem: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\t\tif (parentDataItem) {\r\n\t\t\tindex = this.yAxis.dataItems.indexOf(parentDataItem) + 1 + childCount;\r\n\t\t\tconst children = parentDataItem.get(\"children\", []);\r\n\t\t\tlet len = this.yAxis.dataItems.length;\r\n\t\t\tif (index >= len) {\r\n\t\t\t\tif (children.length > 0) {\r\n\t\t\t\t\tpreviousDataItem = children[children.length - 1];\r\n\t\t\t\t}\r\n\t\t\t\tthis.yAxis.data.push(dataObject);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (children.length > 0) {\r\n\t\t\t\t\tpreviousDataItem = this.yAxis.dataItems[index - 1];\r\n\t\t\t\t}\r\n\t\t\t\tthis.yAxis.data.insertIndex(index, dataObject);\r\n\t\t\t}\r\n\t\t\tindex++;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// go backwards and find the first item that has no parent\r\n\t\t\tfor (let i = this.yAxis.dataItems.length - 1; i >= 0; i--) {\r\n\t\t\t\tconst dataItem = this.yAxis.dataItems[i];\r\n\t\t\t\tif (!dataItem.get(\"parentId\")) {\r\n\t\t\t\t\tpreviousDataItem = dataItem;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.yAxis.data.push(dataObject);\r\n\t\t\tindex = this.yAxis.dataItems.length;\r\n\t\t}\r\n\r\n\t\t// Add the task data with slightly offset start time to avoid overlapping\r\n\t\tconst baseDuration = this.xAxis.baseDuration();\r\n\r\n\t\tconst seriesDataObject: any = {\r\n\t\t\tstart: start,\r\n\t\t\tend: start + 1,\r\n\t\t\tduration: duration,\r\n\t\t\tprogress: progress,\r\n\t\t\tid: uid,\r\n\t\t\tname: name\r\n\t\t}\r\n\r\n\t\t// create link to previous task if needed\r\n\t\tif (linkToPrevious && previousDataItem) {\r\n\t\t\tconst seriesDataItem = this.series.getDataItemById(previousDataItem.get(\"id\")!);\r\n\r\n\t\t\tif (seriesDataItem) {\r\n\t\t\t\tconst linkTo: Array<string> = seriesDataItem.get(\"linkTo\", []);\r\n\r\n\t\t\t\tif (!linkTo.includes(uid)) {\r\n\t\t\t\t\tlinkTo.push(uid);\r\n\t\t\t\t\tseriesDataItem.set(\"linkTo\", linkTo);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.series.data.moveValue(seriesDataObject, index - 1);\r\n\r\n\t\tconst newSeriesDataItem = this.series.dataItems[index - 1];\r\n\t\tnewSeriesDataItem.animate({ key: \"valueX\", to: start + baseDuration * duration, duration: this.series.get(\"interpolationDuration\", 0), easing: this.series.get(\"interpolationEasing\") });\r\n\r\n\t\tthis.yAxis._disposeXHideDP();\r\n\t\tthis.yAxis.xButton.hide(0);\r\n\r\n\t\tconst maxZoomCount = this.yAxis.get(\"maxZoomCount\", 20);\r\n\t\tlet startIndex = Math.max(0, Math.round(index - maxZoomCount / 2));\r\n\t\tlet endIndex = startIndex + maxZoomCount;\r\n\r\n\t\tlen = this.yAxis.dataItems.length;\r\n\t\tif (endIndex > len) {\r\n\t\t\tendIndex = len;\r\n\t\t\tstartIndex = Math.max(0, endIndex - maxZoomCount);\r\n\t\t}\r\n\r\n\t\tthis.yAxis.zoomToIndexes(startIndex, endIndex);\r\n\t\tthis.yAxis.adjustZoom();\r\n\t}\r\n\r\n\r\n\t// Get next color from the color set\r\n\tpublic _nextColor(): Color | undefined {\r\n\t\tif (this._customColor) {\r\n\t\t\treturn this._customColor;\r\n\t\t}\r\n\t\tconst fill = this.get(\"colors\")?.next();\r\n\t\tthis.colorPickerButton.setPrivate(\"color\", fill);\r\n\r\n\t\treturn fill;\r\n\t}\r\n\r\n\t/**\r\n\t * Marks a date on the minor date axis.\r\n\t * \r\n\t * @param date Date to be marked\r\n\t */\r\n\tpublic markDate(date: number) {\r\n\r\n\t\tconst xAxisMinor = this.xAxisMinor;\r\n\t\tconst dataItem = xAxisMinor.createAxisRange(xAxisMinor.makeDataItem({\r\n\t\t\tvalue: date\r\n\t\t}))\r\n\r\n\t\tconst eventType = \"datemarked\";\r\n\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\tthis.events.dispatch(eventType, { type: eventType, target: this, dataItem: dataItem, date: date });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Unmarks a date on the minor date axis.\r\n\t * \r\n\t * @param date Date to be unmarked\r\n\t */\r\n\tpublic unmarkDate(date: number) {\r\n\t\tconst xAxisMinor = this.xAxisMinor;\r\n\t\tlet dataItem = undefined;\r\n\t\txAxisMinor.axisRanges.each((axisRange) => {\r\n\t\t\t// remove axis range if already exists\r\n\t\t\tif (axisRange && axisRange.get(\"value\") === date) {\r\n\t\t\t\txAxisMinor.axisRanges.removeValue(axisRange);\r\n\t\t\t\tdataItem = axisRange;\r\n\t\t\t}\r\n\t\t})\r\n\t\tconst eventType = \"dateunmarked\";\r\n\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\tthis.events.dispatch(eventType, { type: eventType, target: this, dataItem: dataItem, date: date });\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _toggleEditable(value: boolean) {\r\n\t\tconst forceHidden = \"forceHidden\";\r\n\t\tconst forceInactive = \"forceInactive\";\r\n\t\tconst draggable = \"draggable\";\r\n\r\n\t\tthis.series.markDirtyValues();\r\n\r\n\t\tthis.addButton.set(forceHidden, !value);\r\n\t\tthis.colorPickerButton.set(forceHidden, !value);\r\n\t\tthis.clearButton.set(forceHidden, !value);\r\n\t\tthis.linkButton.set(forceHidden, !value);\r\n\r\n\t\tconst renderer = this.yAxis.get(\"renderer\");\r\n\t\trenderer.labels.template.set(forceInactive, !value);\r\n\r\n\t\trenderer.grips.template.set(forceHidden, !value);\r\n\t\trenderer.containers.template.set(draggable, value);\r\n\r\n\t\trenderer.controlsContainers.template.set(forceInactive, !value);\r\n\r\n\t\tthis.series.columns.template.set(draggable, value);\r\n\t\tthis.series.startGrips.template.set(forceHidden, !value);\r\n\t\tthis.series.endGrips.template.set(forceHidden, !value);\r\n\t\tthis.series.progressGrips.template.set(forceHidden, !value);\r\n\r\n\t\tthis.series.startBullets.template.set(forceHidden, !value);\r\n\t\tthis.series.endBullets.template.set(forceHidden, !value);\r\n\r\n\t\tthis.series.links.template.set(forceInactive, !value);\r\n\r\n\t\tthis.xAxisMinor.set(forceInactive, !value);\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"Gantt.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/Gantt.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ITimeInterval } from \"../../core/util/Time\";\r\nimport type { Grid } from \"../xy/axes/Grid\";\r\n\r\nimport { Button } from \"../../core/render/Button\";\r\nimport { ConfirmButton } from \"../../core/render/ConfirmButton\";\r\nimport { Graphics } from \"../../core/render/Graphics\";\r\nimport { Percent, percent } from \"../../core/util/Percent\";\r\nimport { GanttDateAxis, IGanttDateAxisDataItem } from \"./GanttDateAxis\";\r\nimport { XYChart } from \"../xy/XYChart\";\r\nimport { GanttDefaultTheme } from \"./GanttDefaultTheme\";\r\nimport { GanttSeries } from \"./GanttSeries\";\r\nimport { color, Color, ColorSet, Container, DataItem, IContainerEvents, IContainerPrivate, IContainerSettings, Rectangle, Scrollbar, Tooltip } from \"../../..\";\r\nimport { GanttCategoryAxis, IGanttCategoryAxisDataItem } from \"./GanttCategoryAxis\";\r\nimport { GanttCategoryAxisRenderer } from \"./GanttCategoryAxisRenderer\";\r\nimport { GanttDateAxisRenderer } from \"./GanttDateAxisRenderer\";\r\nimport { XYCursor } from \"../xy/XYCursor\";\r\nimport { ColorPicker } from \"../../plugins/colorPicker/ColorPicker\";\r\nimport { ColorPickerButton } from \"../../plugins/colorPicker/ColorPickerButton\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\nimport * as $utils from \"../../core/util/Utils\";\r\nimport * as $array from \"../../core/util/Array\";\r\nimport * as $time from \"../../core/util/Time\";\r\n\r\nexport interface IGanttSettings extends IContainerSettings {\r\n\r\n\t/**\r\n\t * If set to `true`, the user will be able to edit the chart via UI.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\teditable?: boolean;\r\n\r\n\t/**\r\n\t * A unit to be used for when calculating \"duration\" of Gantt items.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Duration_units} for more information\r\n\t * @default \"day\"\r\n\t */\r\n\tdurationUnit?: \"year\" | \"month\" | \"week\" | \"day\" | \"hour\" | \"minute\" | \"second\";\r\n\r\n\t/**\r\n\t * An array of weekend days, e.g. `[0, 6]` for Sunday and Saturday.\r\n\t *\r\n\t * @default [0, 6]\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Weekends_and_holidays} for more information\r\n\t */\r\n\tweekends?: Array<number>;\r\n\r\n\t/**\r\n\t * An array of dates to treat as a holiday.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Weekends_and_holidays} for more information\r\n\t */\r\n\tholidays?: Array<Date>;\r\n\r\n\t/**\r\n\t * If set to `true`, weekends will be excluded from the chart.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Weekends_and_holidays} for more information\r\n\t */\r\n\texcludeWeekends?: boolean;\r\n\r\n\t/**\r\n\t * An absolute or relative width of the left-side category column.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Category_axis_width} for more information\r\n\t * @default 30%\r\n\t */\r\n\tsidebarWidth?: number | Percent;\r\n\r\n\t/**\r\n\t * A relative vertical cell position to treat as the threshold for snapping\r\n\t * bars.\r\n\t *\r\n\t * Available range of values: `0` (left) to `1` (right).\r\n\t *\r\n\t * This will be used when resizing or dragging a bar. If the position is\r\n\t * bigger than `snapThreshold` the bar will snap to the right, if it is\r\n\t * smaller than `snapThreshold`, it will snap to the left.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Snapping_behavior} for more information\r\n\t * @default 0.5\r\n\t */\r\n\tsnapThreshold?: number;\r\n\r\n\t/**\r\n\t * A [[ColorSet]] to use when asigning colors for series.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/series/#Series_colors} for more info\r\n\t */\r\n\tcolors?: ColorSet;\r\n\r\n\t/**\r\n\t * Grid intervals.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Timeline_horizontal_axis} for more info\r\n\t */\r\n\tgridIntervals?: { [index: string]: Array<ITimeInterval> };\r\n\r\n\t/**\r\n\t * If this is set to `true`, when a new task is added, it will be automatically linked to the previous task.\r\n\t * \r\n\t * @default true\r\n\t */\r\n\tlinkNewTasks?: boolean;\r\n}\r\n\r\nexport interface IGanttPrivate extends IContainerPrivate { }\r\n\r\nexport interface IGanttEvents extends IContainerEvents {\r\n\tdatemarked: { date: number | undefined, dataItem: DataItem<IGanttDateAxisDataItem> };\r\n\tdateunmarked: { date: number | undefined, dataItem?: DataItem<IGanttDateAxisDataItem> };\r\n\tvalueschanged: {};\r\n}\r\n\r\n/**\r\n * Creates a [[Gantt]] chart.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/} for more info\r\n * @important\r\n * @since 5.14.0\r\n */\r\nexport class Gantt extends Container {\r\n\tdeclare public _settings: IGanttSettings;\r\n\tdeclare public _privateSettings: IGanttPrivate;\r\n\tdeclare public _events: IGanttEvents;\r\n\tpublic static className: string = \"Gantt\";\r\n\tpublic static classNames: Array<string> = Container.classNames.concat([Gantt.className]);\r\n\r\n\t/**\r\n\t * A scrollbar for horizontal scrolling.\r\n\t */\r\n\tpublic scrollbarX: Scrollbar = Scrollbar.new(this._root, {\r\n\t\torientation: \"horizontal\"\r\n\t});\r\n\r\n\t/**\r\n\t * A scrollbar for vertical scrolling.\r\n\t */\r\n\tpublic scrollbarY: Scrollbar = Scrollbar.new(this._root, {\r\n\t\torientation: \"vertical\"\r\n\t});\r\n\r\n\t/**\r\n\t * A reference to the [[XYChart]] that holds the Gantt chart.\r\n\t */\r\n\tpublic xyChart!: XYChart;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttSeries]] that shows the Gantt tasks bars.\r\n\t */\r\n\tpublic series!: GanttSeries;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttDateAxis]] used as the main X-axis.\r\n\t */\r\n\tpublic xAxis!: GanttDateAxis<GanttDateAxisRenderer>;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttDateAxis]] used as the secondary X-axis.\r\n\t */\r\n\tpublic xAxisMinor!: GanttDateAxis<GanttDateAxisRenderer>;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttCategoryAxis]] used as the Y-axis.\r\n\t */\r\n\tpublic yAxis!: GanttCategoryAxis<GanttCategoryAxisRenderer>;\r\n\r\n\t/**\r\n\t * Controls (add, color picker, expand, collaps, clear buttons) container.\r\n\t */\r\n\tpublic controls: Container = Container.new(this._root, {\r\n\t\tthemeTags: [\"controls\"],\r\n\t\tlayout: this._root.horizontalLayout,\r\n\t})\r\n\r\n\tpublic zoomControls: Container = Container.new(this._root, {\r\n\t\tthemeTagsSelf: [\"zoomcontrols\"]\r\n\t});\r\n\r\n\t/**\r\n\t * The [[Button]] element to add new tasks.\r\n\t */\r\n\tpublic readonly addButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"add\", \"plus\"],\r\n\t\ttooltip: this.root.systemTooltip,\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] })\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[ColorPickerButton]] element to select colors for tasks.\r\n\t */\r\n\tpublic readonly colorPickerButton: ColorPickerButton = this.controls.children.push(ColorPickerButton.new(this._root, {\r\n\t\tdisableOpacity: true,\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] elements to expand and collapse all tasks.\r\n\t */\r\n\tpublic readonly expandButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"expand\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] elements to collapse all tasks.\r\n\t */\r\n\tpublic readonly collapseButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"collapse\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to toggle `linkNewTasks` setting.\r\n\t */\r\n\tpublic readonly linkButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"link\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to horizontally fit visible tasks into a view.\r\n\t */\r\n\tpublic readonly fitButton: Button = this.zoomControls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"fit\", \"secondary\", \"zoombutton\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to zoom out the X axis.\r\n\t */\r\n\tpublic readonly zoomOutButton: Button = this.zoomControls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"zoomout\", \"secondary\", \"zoombutton\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to toggle edit mode.\r\n\t *\r\n\t * @since 5.14.1\r\n\t */\r\n\tpublic readonly editButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"edit\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to clear all tasks.\r\n\t */\r\n\tpublic readonly clearButton: ConfirmButton = this.controls.children.push(ConfirmButton.new(this._root, {\r\n\t\tthemeTags: [\"clear\", \"secondary\", \"confirm\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip,\r\n\t\tactive: false\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[ColorPicker]] element to select colors for tasks.\r\n\t */\r\n\tpublic readonly colorPicker: ColorPicker = this.children.push(ColorPicker.new(this._root, { visible: false }));\r\n\r\n\tprotected _customColor: Color | undefined;\r\n\r\n\tpublic _applyThemes(force: boolean = false): boolean {\r\n\t\tconst colors = this.get(\"colors\");\r\n\t\tif (colors) {\r\n\t\t\tcolors.reset();\r\n\t\t}\r\n\t\treturn super._applyThemes(force);\t\t\r\n\t}\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis.addTag(\"gantt\");\r\n\t\tthis._defaultThemes.push(GanttDefaultTheme.new(this._root));\r\n\r\n\t\tsuper._afterNew();\r\n\r\n\t\tconst root = this._root;\r\n\r\n\t\tthis.colorPickerButton.events.on(\"click\", () => {\r\n\t\t\tthis.yAxis.xButton.hide(0);\r\n\t\t\tthis.colorPicker.setAll({\r\n\t\t\t\tcolorButton: this.colorPickerButton\r\n\t\t\t})\r\n\t\t\tthis.children.moveValue(this.colorPicker, this.children.length - 1);\r\n\t\t\tthis.yAxis._disposeXHideDP();\r\n\t\t})\r\n\r\n\t\tthis.colorPicker.events.on(\"colorchanged\", () => {\r\n\t\t\tthis._customColor = this.colorPicker.get(\"color\");\r\n\t\t\tthis.yAxis.unselectDataItems();\r\n\t\t});\r\n\r\n\t\tthis.addButton.events.on(\"click\", () => {\r\n\t\t\tthis.addNewTask();\r\n\t\t})\r\n\r\n\t\tconst chart = this.children.push(XYChart.new(root, {}));\r\n\r\n\t\tchart.plotContainer.children.push(this.zoomControls);\r\n\t\tchart.zoomOutButton.set(\"forceHidden\", true);\r\n\r\n\t\tchart.children.push(this.controls);\r\n\r\n\t\tchart.set(\"cursor\", XYCursor.new(root, {\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis\r\n\t\t}));\r\n\r\n\t\tconst yRenderer = GanttCategoryAxisRenderer.new(root, {});\r\n\r\n\t\t// to prevent moving horizontally while dragging\r\n\t\tyRenderer.containers.template.adapters.add(\"x\", () => {\r\n\t\t\treturn 0;\r\n\t\t})\r\n\r\n\t\t// can't set fields in theme, as data is set before theme is applied\r\n\t\tconst yAxis = chart.yAxes.push(\r\n\t\t\tGanttCategoryAxis.new(root, {\r\n\t\t\t\tcategoryField: \"id\",\r\n\t\t\t\tcellSizeField: \"cellSize\",\r\n\t\t\t\tcollapsedField: \"collapsed\",\r\n\t\t\t\tparentIdField: \"parentId\",\r\n\t\t\t\tcolorField: \"color\",\r\n\t\t\t\tidField: \"id\",\r\n\t\t\t\tnameField: \"name\",\r\n\t\t\t\trenderer: yRenderer\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tyAxis.gantt = this;\r\n\r\n\t\t// update widht of scrollbar and controls container\r\n\t\tyAxis.events.on(\"boundschanged\", () => {\r\n\t\t\tthis._updateScrollbar();\r\n\t\t});\r\n\r\n\t\tchart.plotContainer.events.on(\"boundschanged\", () => {\r\n\t\t\tthis._updateScrollbar();\r\n\t\t});\r\n\r\n\t\tthis.on(\"visible\", () => {\r\n\t\t\tthis.root.events.once(\"frameended\", () => {\r\n\t\t\t\tthis._updateScrollbar();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// minor x axis\r\n\t\tconst ganttAxisRenderrerMinor = GanttDateAxisRenderer.new(root, { themeTags: [\"minor\"] });\r\n\r\n\t\t// so that grid would be hidden if axis range is added\r\n\t\tganttAxisRenderrerMinor.grid.template.adapters.add(\"forceHidden\", (forceHidden, target) => {\r\n\t\t\tconst dataItem = target.dataItem as DataItem<IGanttDateAxisDataItem>;\r\n\t\t\tif (dataItem && dataItem.get(\"active\")) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn forceHidden;\r\n\t\t})\r\n\r\n\t\tconst xAxisMinor = chart.xAxes.push(\r\n\t\t\tGanttDateAxis.new(root, {\r\n\t\t\t\tthemeTags: [\"minor\"],\r\n\t\t\t\tbaseInterval: { timeUnit: \"day\", count: 1 },\r\n\t\t\t\trenderer: ganttAxisRenderrerMinor,\r\n\t\t\t\tbackground: Rectangle.new(root, {\r\n\t\t\t\t\tfill: color(0xfff),\r\n\t\t\t\t\tfillOpacity: 0\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\txAxisMinor.gantt = this;\r\n\r\n\t\t// return default color for grid lines\r\n\t\txAxisMinor.events.on(\"pointerout\", () => {\r\n\t\t\tganttAxisRenderrerMinor.grid.each((grid) => {\r\n\t\t\t\tgrid.unhover();\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// add axis range on click\r\n\t\txAxisMinor.events.on(\"click\", () => {\r\n\t\t\tif (closestGrid) {\r\n\t\t\t\tconst dataItem = closestGrid.dataItem as DataItem<IGanttDateAxisDataItem>;\r\n\t\t\t\tif (dataItem) {\r\n\t\t\t\t\tconst value = dataItem.get(\"endValue\");\r\n\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\tlet found = false;\r\n\t\t\t\t\t\txAxisMinor.axisRanges.each((axisRange) => {\r\n\t\t\t\t\t\t\t// remove axis range if already exists\r\n\t\t\t\t\t\t\tif (axisRange.get(\"value\") === value) {\r\n\t\t\t\t\t\t\t\tthis.unmarkDate(value);\r\n\t\t\t\t\t\t\t\tfound = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t// add axis range if not exists\r\n\t\t\t\t\t\tif (!found) {\r\n\t\t\t\t\t\t\tdataItem.set(\"active\", true);\r\n\t\t\t\t\t\t\tthis.markDate(value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// find closest grid line on hover\r\n\t\tlet closestGrid: Grid | undefined;\r\n\t\txAxisMinor.events.on(\"globalpointermove\", (ev) => {\r\n\t\t\tif (xAxisMinor.isHover()) {\r\n\t\t\t\t// find most close grid line\r\n\t\t\t\tconst point = xAxisMinor.toLocal({ x: ev.point.x, y: ev.point.y });\r\n\t\t\t\tlet minX = Infinity;\r\n\t\t\t\tganttAxisRenderrerMinor.grid.each((grid) => {\r\n\t\t\t\t\tif (grid.isVisible()) {\r\n\t\t\t\t\t\tconst dataItem = grid.dataItem as DataItem<IGanttDateAxisDataItem>;\r\n\t\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\t\tif (!dataItem.get(\"isRange\")) {\r\n\t\t\t\t\t\t\t\tlet distance = Math.abs(grid.x() - point.x);\r\n\r\n\t\t\t\t\t\t\t\tif (!grid.get(\"active\")) {\r\n\t\t\t\t\t\t\t\t\tgrid.unhover();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (distance < minX) {\r\n\t\t\t\t\t\t\t\t\tminX = distance;\r\n\t\t\t\t\t\t\t\t\tclosestGrid = grid;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\tif (closestGrid) {\r\n\t\t\t\t\tclosestGrid.hover();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst ganttAxisRenderrer = GanttDateAxisRenderer.new(root, {});\r\n\t\tconst xAxis = chart.xAxes.push(\r\n\t\t\tGanttDateAxis.new(root, {\r\n\t\t\t\tbaseInterval: { timeUnit: \"day\", count: 1 },\r\n\t\t\t\trenderer: ganttAxisRenderrer,\r\n\t\t\t\ttooltip: Tooltip.new(root, {})\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\txAxis.gantt = this;\r\n\r\n\t\t// sync minor x axis with main x axis\r\n\t\txAxis.onPrivate(\"min\", (value) => {\r\n\t\t\txAxisMinor.setPrivate(\"min\", value);\r\n\t\t});\r\n\r\n\t\txAxis.onPrivate(\"max\", (value) => {\r\n\t\t\txAxisMinor.setPrivate(\"max\", value);\r\n\t\t});\r\n\r\n\t\t// sync minor x axis with main x axis\r\n\t\txAxis.on(\"start\", (value) => {\r\n\t\t\txAxisMinor.set(\"start\", value);\r\n\t\t});\r\n\r\n\t\txAxis.on(\"end\", (value) => {\r\n\t\t\txAxisMinor.set(\"end\", value);\r\n\t\t});\r\n\r\n\t\t// set min max if not set\r\n\t\tconst baseDuration = xAxis.baseDuration();\r\n\t\tif (xAxis.getPrivate(\"min\") === undefined) {\r\n\t\t\txAxis.setPrivate(\"min\", new Date().getTime());\r\n\t\t}\r\n\t\tif (xAxis.getPrivate(\"max\") === undefined) {\r\n\t\t\txAxis.setPrivate(\"max\", new Date().getTime() + baseDuration * 3);\r\n\t\t}\r\n\r\n\t\t// set grid interval\r\n\t\txAxis.onPrivate(\"gridInterval\", (value) => {\r\n\t\t\tconst gridIntervals = this.get(\"gridIntervals\");\r\n\t\t\tif (gridIntervals && gridIntervals[value.timeUnit]) {\r\n\t\t\t\txAxisMinor.set(\"gridIntervals\", gridIntervals[value.timeUnit]);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Add series\r\n\t\t// https://www.amcharts.com/docs/v5/charts/xy-chart/series/\r\n\t\tvar series = chart.series.push(GanttSeries.new(root, {\r\n\t\t\txAxis: xAxis,\r\n\t\t\tyAxis: yAxis,\r\n\t\t\tbaseAxis: yAxis,\r\n\t\t\topenValueXField: \"start\",\r\n\t\t\tvalueXField: \"end\",\r\n\t\t\tprogressField: \"progress\",\r\n\t\t\tdurationField: \"duration\",\r\n\t\t\tlinkToField: \"linkTo\",\r\n\t\t\tcategoryYField: \"id\",\r\n\t\t\tidField: \"id\"\r\n\t\t}));\r\n\r\n\t\tseries.gantt = this;\r\n\r\n\t\t// Add scrollbars\r\n\t\tthis.scrollbarX = chart.set(\"scrollbarX\", this.scrollbarX);\r\n\t\tthis.scrollbarY = chart.set(\"scrollbarY\", this.scrollbarY);\r\n\t\tthis.scrollbarY.startGrip.set(\"forceHidden\", true);\r\n\t\tthis.scrollbarY.endGrip.set(\"forceHidden\", true);\r\n\r\n\t\tthis.children.push(this.scrollbarX);\r\n\r\n\t\tthis.xyChart = chart;\r\n\t\tthis.series = series;\r\n\t\tthis.xAxis = xAxis;\r\n\t\tthis.yAxis = yAxis;\r\n\t\tthis.xAxisMinor = xAxisMinor;\r\n\r\n\t\tconst eventType = \"valueschanged\";\r\n\t\tthis.series.events.on(eventType, () => {\r\n\t\t\tif (this.get(\"editable\")) {\r\n\t\t\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\t\t\tthis.events.dispatch(eventType, { type: eventType, target: this });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// ad dbehavior to buttons\r\n\t\tthis.expandButton.events.on(\"click\", () => {\r\n\t\t\tthis.yAxis.expandAll();\r\n\t\t})\r\n\r\n\t\tthis.collapseButton.events.on(\"click\", () => {\r\n\t\t\tthis.yAxis.collapseAll();\r\n\t\t})\r\n\r\n\t\tthis.clearButton.events.on(\"confirmed\", () => {\r\n\t\t\tthis.clearAll();\r\n\t\t})\r\n\r\n\t\tthis.linkButton.on(\"active\", (active) => {\r\n\t\t\tthis.set(\"linkNewTasks\", active);\r\n\t\t})\r\n\r\n\t\tthis.colorPicker.on(\"color\", (c) => {\r\n\t\t\tthis.yAxis.setDataItemColor(this.yAxis.get(\"selectedDataItem\"), c);\r\n\t\t});\r\n\r\n\t\tthis.editButton.on(\"active\", (active) => {\r\n\t\t\tthis.set(\"editable\", active);\r\n\t\t});\r\n\r\n\t\tthis.fitButton.events.on(\"click\", () => {\r\n\r\n\t\t\tlet min = series.getPrivate(\"selectionMinX\", 0);\r\n\t\t\tlet max = series.getPrivate(\"selectionMaxX\", 0);\r\n\t\t\tconst extraMin = xAxis.get(\"extraMin\", 0.1);\r\n\t\t\tconst extraMax = xAxis.get(\"extraMax\", 0.1);\r\n\r\n\t\t\txAxis.zoomToValues(min - (max - min) * extraMin, max + (max - min) * extraMax);\r\n\r\n\t\t\t/*\r\n\t\t\txAxis.setAll({\r\n\t\t\t\t\"strictMinMax\": false,\r\n\t\t\t\t\"strictMinMaxSelection\": false,\r\n\t\t\t\t\"autoZoom\": true,\r\n\t\t\t})\r\n\r\n\t\r\n\t\t\telse {\r\n\t\t\t\txAxis.setAll({\r\n\t\t\t\t\t\"strictMinMax\": true,\r\n\t\t\t\t\t\"strictMinMaxSelection\": true,\r\n\t\t\t\t\t\"autoZoom\": false\r\n\t\t\t\t})\r\n\r\n\t\t\t\txAxis.setPrivate(\"selectionMin\", undefined);\r\n\t\t\t\txAxis.setPrivate(\"selectionMax\", undefined);\r\n\t\t\t}*/\r\n\t\t});\r\n\r\n\t\tthis.zoomOutButton.events.on(\"click\", () => {\r\n\t\t\txAxis.zoom(0, 1);\r\n\t\t});\r\n\r\n\t\tlet license = false;\r\n\t\tfor (let i = 0; i < registry.licenses.length; i++) {\r\n\t\t\tif (registry.licenses[i].match(/^AM5G.{5,}/i)) {\r\n\t\t\t\tlicense = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!license) {\r\n\t\t\tthis._root._showBranding();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._root._licenseApplied();\r\n\t\t}\r\n\t}\r\n\t// end _afterNew()\r\n\r\n\tpublic _prepareChildren(): void {\r\n\t\tsuper._prepareChildren();\r\n\t\tif (this.isDirty(\"editable\")) {\r\n\t\t\tthis._toggleEditable(this.get(\"editable\", true));\r\n\t\t}\r\n\t}\r\n\r\n\tpublic clearAll() {\r\n\t\tthis.yAxis.deleteAll();\r\n\t\tthis._customColor = undefined;\r\n\t\tthis.get(\"colors\")?.reset();\r\n\t\tthis.colorPickerButton.set(\"color\", undefined);\r\n\t\tthis._nextColor();\r\n\r\n\t\tconst today = new Date();\r\n\t\ttoday.setHours(0, 0, 0, 0);\r\n\r\n\t\tthis.xAxis.setPrivate(\"min\", today.getTime());\r\n\t\tthis.xAxis.setPrivate(\"max\", today.getTime() + this.xAxis.baseDuration() * 5);\r\n\r\n\t\tfor (let i = this.xAxisMinor.axisRanges.length - 1; i >= 0; i--) {\r\n\t\t\tconst axisRange = this.xAxisMinor.axisRanges.getIndex(i);\r\n\t\t\tif (axisRange) {\r\n\t\t\t\tthis.unmarkDate(axisRange.get(\"value\") as number);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tif (this.isDirty(\"linkNewTasks\")) {\r\n\t\t\tthis.linkButton.set(\"active\", this.get(\"linkNewTasks\", false));\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"editable\")) {\r\n\t\t\tthis.editButton.set(\"active\", this.get(\"editable\", true));\r\n\t\t}\r\n\r\n\t\tif (this._sizeDirty || this.isDirty(\"sidebarWidth\")) {\r\n\t\t\tlet width = $utils.relativeToValue(this.get(\"sidebarWidth\", percent(20)), this.innerWidth());\r\n\t\t\twidth = Math.max(width, this.yAxis.get(\"minWidth\", 100));\r\n\t\t\tthis.yAxis.labelsContainer.set(\"width\", width);\r\n\t\t\tthis._updateScrollbar();\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"durationUnit\")) {\r\n\t\t\tconst durationUnit = this.get(\"durationUnit\");\r\n\t\t\tif (durationUnit) {\r\n\t\t\t\tthis.xAxis.set(\"baseInterval\", { timeUnit: durationUnit, count: 1 });\r\n\t\t\t\tthis.xAxisMinor.set(\"baseInterval\", { timeUnit: durationUnit, count: 1 });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.colorPickerButton.getPrivate(\"color\") === undefined) {\r\n\t\t\tthis._nextColor();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _updateScrollbar() {\r\n\t\tconst point = this.xyChart.plotContainer.toGlobal({ x: 0, y: 0 });\r\n\t\tthis.scrollbarX.setAll({\r\n\t\t\tx: point.x,\r\n\t\t\twidth: this.xyChart.plotContainer.width()\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a new task to the Gantt chart.\r\n\t * \r\n\t * @param category The category name for the task. If not provided, will be auto-generated.\r\n\t * @param start The start time of the task in milliseconds. If not provided, will be determined based on context.\r\n\t * @param duration The duration of the task. If not provided, defaults to 1.\r\n\t * @param parentId The parent category if this is a subtask.\r\n\t * @param progress The initial progress of the task (0-1). Defaults to 0.\r\n\t * @param linkToPrevious Should the task automatically link to the previous one?\r\n\t */\r\n\tpublic addNewTask(name?: string, start?: number, duration: number = 1, parentId?: string, progress: number = 0, linkToPrevious?: boolean) {\r\n\t\t// Generate a unique ID for the new task\r\n\t\tlet len = this.series.dataItems.length;\r\n\t\tlet c = this.yAxis.dataItems.length;\r\n\r\n\t\t$array.each(this.yAxis.dataItems, (dataItem) => {\r\n\t\t\tif (dataItem.get(\"id\") == \"gantt_\" + c) {\r\n\t\t\t\tc++;\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tconst uid = \"gantt_\" + c;\r\n\r\n\t\tif (!name) {\r\n\t\t\tname = \"New Task\";\r\n\t\t}\r\n\r\n\t\tif (linkToPrevious === undefined) {\r\n\t\t\tlinkToPrevious = this.get(\"linkNewTasks\", false);\r\n\t\t}\r\n\r\n\t\tlet parentDataItem: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\t\t// Find parent data item either by specified category or selected item\r\n\t\tif (parentId != undefined) {\r\n\t\t\tparentDataItem = this.yAxis.getDataItemById(parentId);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tparentDataItem = this.yAxis.get(\"selectedDataItem\");\r\n\t\t}\r\n\r\n\t\tlet childCount = 0;\r\n\t\t// Handle parent-child relationship if a parent exists\r\n\t\tif (parentDataItem) {\r\n\t\t\tparentId = parentDataItem.get(\"id\");\r\n\t\t\tif (parentId) {\r\n\t\t\t\t// If start time not specified, try to use parent's start time\r\n\t\t\t\tif (start === undefined) {\r\n\t\t\t\t\tconst seriesDataItem = this.series.getDataItemById(parentId);\r\n\t\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\t\tstart = seriesDataItem.get(\"valueX\", new Date().getTime());\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Initialize or get the children array for the parent\r\n\t\t\tlet children = parentDataItem.get(\"children\");\r\n\t\t\tif (!children) {\r\n\t\t\t\tchildren = parentDataItem.set(\"children\", []);\r\n\t\t\t}\r\n\t\t\tchildCount = children.length;\r\n\t\t}\r\n\r\n\t\t// Determine start time if not specified\r\n\t\tif (start === undefined) {\r\n\t\t\tstart = $time.roun(this.xAxis.getPrivate(\"min\", 0), this.get(\"durationUnit\", \"day\"), 1, this.root);\r\n\r\n\t\t\tif (this.series.dataItems.length > 0) {\r\n\t\t\t\tstart = this.series.dataItems[len - 1].get(\"valueX\", new Date().getTime());\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst dataObject: any = {\r\n\t\t\tname: name,\r\n\t\t\tid: uid\r\n\t\t}\r\n\t\tif (parentId) {\r\n\t\t\tdataObject[\"parentId\"] = parentId;\r\n\t\t}\r\n\t\t// Add the category data\r\n\t\tlet index = 0;\r\n\t\tlet previousDataItem: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\t\tif (parentDataItem) {\r\n\t\t\tindex = this.yAxis.dataItems.indexOf(parentDataItem) + 1 + childCount;\r\n\t\t\tconst children = parentDataItem.get(\"children\", []);\r\n\t\t\tlet len = this.yAxis.dataItems.length;\r\n\t\t\tif (index >= len) {\r\n\t\t\t\tif (children.length > 0) {\r\n\t\t\t\t\tpreviousDataItem = children[children.length - 1];\r\n\t\t\t\t}\r\n\t\t\t\tthis.yAxis.data.push(dataObject);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (children.length > 0) {\r\n\t\t\t\t\tpreviousDataItem = this.yAxis.dataItems[index - 1];\r\n\t\t\t\t}\r\n\t\t\t\tthis.yAxis.data.insertIndex(index, dataObject);\r\n\t\t\t}\r\n\t\t\tindex++;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// go backwards and find the first item that has no parent\r\n\t\t\tfor (let i = this.yAxis.dataItems.length - 1; i >= 0; i--) {\r\n\t\t\t\tconst dataItem = this.yAxis.dataItems[i];\r\n\t\t\t\tif (!dataItem.get(\"parentId\")) {\r\n\t\t\t\t\tpreviousDataItem = dataItem;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.yAxis.data.push(dataObject);\r\n\t\t\tindex = this.yAxis.dataItems.length;\r\n\t\t}\r\n\r\n\t\t// Add the task data with slightly offset start time to avoid overlapping\r\n\t\tconst baseDuration = this.xAxis.baseDuration();\r\n\r\n\t\tconst seriesDataObject: any = {\r\n\t\t\tstart: start,\r\n\t\t\tend: start + 1,\r\n\t\t\tduration: duration,\r\n\t\t\tprogress: progress,\r\n\t\t\tid: uid,\r\n\t\t\tname: name\r\n\t\t}\r\n\r\n\t\t// create link to previous task if needed\r\n\t\tif (linkToPrevious && previousDataItem) {\r\n\t\t\tconst seriesDataItem = this.series.getDataItemById(previousDataItem.get(\"id\")!);\r\n\r\n\t\t\tif (seriesDataItem) {\r\n\t\t\t\tconst linkTo: Array<string> = seriesDataItem.get(\"linkTo\", []);\r\n\r\n\t\t\t\tif (!linkTo.includes(uid)) {\r\n\t\t\t\t\tlinkTo.push(uid);\r\n\t\t\t\t\tseriesDataItem.set(\"linkTo\", linkTo);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.series.data.moveValue(seriesDataObject, index - 1);\r\n\r\n\t\tconst newSeriesDataItem = this.series.dataItems[index - 1];\r\n\t\tnewSeriesDataItem.animate({ key: \"valueX\", to: start + baseDuration * duration, duration: this.series.get(\"interpolationDuration\", 0), easing: this.series.get(\"interpolationEasing\") });\r\n\r\n\t\tthis.yAxis._disposeXHideDP();\r\n\t\tthis.yAxis.xButton.hide(0);\r\n\r\n\t\tconst maxZoomCount = this.yAxis.get(\"maxZoomCount\", 20);\r\n\t\tlet startIndex = Math.max(0, Math.round(index - maxZoomCount / 2));\r\n\t\tlet endIndex = startIndex + maxZoomCount;\r\n\r\n\t\tlen = this.yAxis.dataItems.length;\r\n\t\tif (endIndex > len) {\r\n\t\t\tendIndex = len;\r\n\t\t\tstartIndex = Math.max(0, endIndex - maxZoomCount);\r\n\t\t}\r\n\r\n\t\tthis.yAxis.zoomToIndexes(startIndex, endIndex);\r\n\t\tthis.yAxis.adjustZoom();\r\n\t}\r\n\r\n\r\n\t// Get next color from the color set\r\n\tpublic _nextColor(): Color | undefined {\r\n\t\tif (this._customColor) {\r\n\t\t\treturn this._customColor;\r\n\t\t}\r\n\t\tconst fill = this.get(\"colors\")?.next();\r\n\t\tthis.colorPickerButton.setPrivate(\"color\", fill);\r\n\r\n\t\treturn fill;\r\n\t}\r\n\r\n\t/**\r\n\t * Marks a date on the minor date axis.\r\n\t * \r\n\t * @param date Date to be marked\r\n\t */\r\n\tpublic markDate(date: number) {\r\n\r\n\t\tconst xAxisMinor = this.xAxisMinor;\r\n\t\tconst dataItem = xAxisMinor.createAxisRange(xAxisMinor.makeDataItem({\r\n\t\t\tvalue: date\r\n\t\t}))\r\n\r\n\t\tconst eventType = \"datemarked\";\r\n\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\tthis.events.dispatch(eventType, { type: eventType, target: this, dataItem: dataItem, date: date });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Unmarks a date on the minor date axis.\r\n\t * \r\n\t * @param date Date to be unmarked\r\n\t */\r\n\tpublic unmarkDate(date: number) {\r\n\t\tconst xAxisMinor = this.xAxisMinor;\r\n\t\tlet dataItem = undefined;\r\n\t\txAxisMinor.axisRanges.each((axisRange) => {\r\n\t\t\t// remove axis range if already exists\r\n\t\t\tif (axisRange && axisRange.get(\"value\") === date) {\r\n\t\t\t\txAxisMinor.axisRanges.removeValue(axisRange);\r\n\t\t\t\tdataItem = axisRange;\r\n\t\t\t}\r\n\t\t})\r\n\t\tconst eventType = \"dateunmarked\";\r\n\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\tthis.events.dispatch(eventType, { type: eventType, target: this, dataItem: dataItem, date: date });\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _toggleEditable(value: boolean) {\r\n\t\tconst forceHidden = \"forceHidden\";\r\n\t\tconst forceInactive = \"forceInactive\";\r\n\t\tconst draggable = \"draggable\";\r\n\r\n\t\tthis.series.markDirtyValues();\r\n\r\n\t\tthis.addButton.set(forceHidden, !value);\r\n\t\tthis.colorPickerButton.set(forceHidden, !value);\r\n\t\tthis.clearButton.set(forceHidden, !value);\r\n\t\tthis.linkButton.set(forceHidden, !value);\r\n\r\n\t\tconst renderer = this.yAxis.get(\"renderer\");\r\n\t\trenderer.labels.template.set(forceInactive, !value);\r\n\r\n\t\trenderer.grips.template.set(forceHidden, !value);\r\n\t\trenderer.containers.template.set(draggable, value);\r\n\r\n\t\trenderer.controlsContainers.template.set(forceInactive, !value);\r\n\r\n\t\tthis.series.columns.template.set(draggable, value);\r\n\t\tthis.series.startGrips.template.set(forceHidden, !value);\r\n\t\tthis.series.endGrips.template.set(forceHidden, !value);\r\n\t\tthis.series.progressGrips.template.set(forceHidden, !value);\r\n\r\n\t\tthis.series.startBullets.template.set(forceHidden, !value);\r\n\t\tthis.series.endBullets.template.set(forceHidden, !value);\r\n\r\n\t\tthis.series.links.template.set(forceInactive, !value);\r\n\r\n\t\tthis.xAxisMinor.set(forceInactive, !value);\r\n\t}\r\n}"]}