@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.
- package/.internal/charts/flow/ArcDiagram.js +4 -24
- package/.internal/charts/flow/ArcDiagram.js.map +1 -1
- package/.internal/charts/flow/ArcDiagramLink.js +3 -30
- package/.internal/charts/flow/ArcDiagramLink.js.map +1 -1
- package/.internal/charts/flow/ArcDiagramNodes.js +5 -39
- package/.internal/charts/flow/ArcDiagramNodes.js.map +1 -1
- package/.internal/charts/flow/Chord.js +7 -42
- package/.internal/charts/flow/Chord.js.map +1 -1
- package/.internal/charts/flow/ChordDirected.js +5 -30
- package/.internal/charts/flow/ChordDirected.js.map +1 -1
- package/.internal/charts/flow/ChordLink.js +2 -33
- package/.internal/charts/flow/ChordLink.js.map +1 -1
- package/.internal/charts/flow/ChordLinkDirected.js +2 -12
- package/.internal/charts/flow/ChordLinkDirected.js.map +1 -1
- package/.internal/charts/flow/ChordNodes.js +6 -45
- package/.internal/charts/flow/ChordNodes.js.map +1 -1
- package/.internal/charts/flow/ChordNonRibbon.js +2 -12
- package/.internal/charts/flow/ChordNonRibbon.js.map +1 -1
- package/.internal/charts/flow/Flow.js +8 -48
- package/.internal/charts/flow/Flow.js.map +1 -1
- package/.internal/charts/flow/FlowLink.js +2 -33
- package/.internal/charts/flow/FlowLink.js.map +1 -1
- package/.internal/charts/flow/FlowNode.js +2 -24
- package/.internal/charts/flow/FlowNode.js.map +1 -1
- package/.internal/charts/flow/FlowNodes.js +5 -30
- package/.internal/charts/flow/FlowNodes.js.map +1 -1
- package/.internal/charts/flow/Sankey.js +7 -48
- package/.internal/charts/flow/Sankey.js.map +1 -1
- package/.internal/charts/flow/SankeyLink.js +4 -24
- package/.internal/charts/flow/SankeyLink.js.map +1 -1
- package/.internal/charts/flow/SankeyNodes.js +3 -27
- package/.internal/charts/flow/SankeyNodes.js.map +1 -1
- package/.internal/charts/funnel/FunnelSeries.js +8 -48
- package/.internal/charts/funnel/FunnelSeries.js.map +1 -1
- package/.internal/charts/funnel/FunnelSlice.js +15 -90
- package/.internal/charts/funnel/FunnelSlice.js.map +1 -1
- package/.internal/charts/funnel/PictorialStackedSeries.js +5 -30
- package/.internal/charts/funnel/PictorialStackedSeries.js.map +1 -1
- package/.internal/charts/funnel/PyramidSeries.js +3 -24
- package/.internal/charts/funnel/PyramidSeries.js.map +1 -1
- package/.internal/charts/funnel/SlicedChart.js +2 -12
- package/.internal/charts/funnel/SlicedChart.js.map +1 -1
- package/.internal/charts/gantt/Gantt.js +57 -188
- package/.internal/charts/gantt/Gantt.js.map +1 -1
- package/.internal/charts/gantt/GanttCategoryAxis.js +9 -110
- package/.internal/charts/gantt/GanttCategoryAxis.js.map +1 -1
- package/.internal/charts/gantt/GanttCategoryAxisRenderer.js +27 -72
- package/.internal/charts/gantt/GanttCategoryAxisRenderer.js.map +1 -1
- package/.internal/charts/gantt/GanttDateAxis.js +2 -24
- package/.internal/charts/gantt/GanttDateAxis.js.map +1 -1
- package/.internal/charts/gantt/GanttDateAxisRenderer.js +2 -12
- package/.internal/charts/gantt/GanttDateAxisRenderer.js.map +1 -1
- package/.internal/charts/gantt/GanttSeries.js +49 -173
- package/.internal/charts/gantt/GanttSeries.js.map +1 -1
- package/.internal/charts/hierarchy/BreadcrumbBar.js +8 -29
- package/.internal/charts/hierarchy/BreadcrumbBar.js.map +1 -1
- package/.internal/charts/hierarchy/ForceDirected.js +10 -60
- package/.internal/charts/hierarchy/ForceDirected.js.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.js +11 -64
- package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
- package/.internal/charts/hierarchy/HierarchyLink.js +3 -24
- package/.internal/charts/hierarchy/HierarchyLink.js.map +1 -1
- package/.internal/charts/hierarchy/HierarchyNode.js +2 -30
- package/.internal/charts/hierarchy/HierarchyNode.js.map +1 -1
- package/.internal/charts/hierarchy/LinkedHierarchy.js +18 -58
- package/.internal/charts/hierarchy/LinkedHierarchy.js.map +1 -1
- package/.internal/charts/hierarchy/LinkedHierarchyNode.js +2 -12
- package/.internal/charts/hierarchy/LinkedHierarchyNode.js.map +1 -1
- package/.internal/charts/hierarchy/Pack.js +7 -38
- package/.internal/charts/hierarchy/Pack.js.map +1 -1
- package/.internal/charts/hierarchy/Partition.js +7 -32
- package/.internal/charts/hierarchy/Partition.js.map +1 -1
- package/.internal/charts/hierarchy/Sunburst.js +10 -40
- package/.internal/charts/hierarchy/Sunburst.js.map +1 -1
- package/.internal/charts/hierarchy/Tree.js +4 -30
- package/.internal/charts/hierarchy/Tree.js.map +1 -1
- package/.internal/charts/hierarchy/Treemap.js +8 -38
- package/.internal/charts/hierarchy/Treemap.js.map +1 -1
- package/.internal/charts/hierarchy/VoronoiTreemap.js +7 -32
- package/.internal/charts/hierarchy/VoronoiTreemap.js.map +1 -1
- package/.internal/charts/map/ClusteredPointSeries.js +11 -72
- package/.internal/charts/map/ClusteredPointSeries.js.map +1 -1
- package/.internal/charts/map/GraticuleSeries.js +3 -18
- package/.internal/charts/map/GraticuleSeries.js.map +1 -1
- package/.internal/charts/map/MapChart.d.ts +39 -1
- package/.internal/charts/map/MapChart.d.ts.map +1 -1
- package/.internal/charts/map/MapChart.js +168 -187
- package/.internal/charts/map/MapChart.js.map +1 -1
- package/.internal/charts/map/MapLine.js +3 -18
- package/.internal/charts/map/MapLine.js.map +1 -1
- package/.internal/charts/map/MapLineSeries.js +4 -24
- package/.internal/charts/map/MapLineSeries.js.map +1 -1
- package/.internal/charts/map/MapPointSeries.js +3 -24
- package/.internal/charts/map/MapPointSeries.js.map +1 -1
- package/.internal/charts/map/MapPolygon.js +3 -27
- package/.internal/charts/map/MapPolygon.js.map +1 -1
- package/.internal/charts/map/MapPolygonSeries.js +4 -24
- package/.internal/charts/map/MapPolygonSeries.js.map +1 -1
- package/.internal/charts/map/MapSeries.js +7 -42
- package/.internal/charts/map/MapSeries.js.map +1 -1
- package/.internal/charts/map/ZoomControl.js +2 -12
- package/.internal/charts/map/ZoomControl.js.map +1 -1
- package/.internal/charts/percent/PercentChart.js +2 -12
- package/.internal/charts/percent/PercentChart.js.map +1 -1
- package/.internal/charts/percent/PercentSeries.js +11 -66
- package/.internal/charts/percent/PercentSeries.js.map +1 -1
- package/.internal/charts/pie/PieChart.js +3 -18
- package/.internal/charts/pie/PieChart.js.map +1 -1
- package/.internal/charts/pie/PieSeries.js +2 -12
- package/.internal/charts/pie/PieSeries.js.map +1 -1
- package/.internal/charts/radar/AxisRendererCircular.js +9 -34
- package/.internal/charts/radar/AxisRendererCircular.js.map +1 -1
- package/.internal/charts/radar/AxisRendererRadial.js +6 -26
- package/.internal/charts/radar/AxisRendererRadial.js.map +1 -1
- package/.internal/charts/radar/ClockHand.js +4 -24
- package/.internal/charts/radar/ClockHand.js.map +1 -1
- package/.internal/charts/radar/RadarChart.js +5 -30
- package/.internal/charts/radar/RadarChart.js.map +1 -1
- package/.internal/charts/radar/RadarColumnSeries.js +6 -21
- package/.internal/charts/radar/RadarColumnSeries.js.map +1 -1
- package/.internal/charts/radar/RadarCursor.js +3 -18
- package/.internal/charts/radar/RadarCursor.js.map +1 -1
- package/.internal/charts/radar/RadarLineSeries.js +2 -12
- package/.internal/charts/radar/RadarLineSeries.js.map +1 -1
- package/.internal/charts/radar/SmoothedRadarLineSeries.js +2 -12
- package/.internal/charts/radar/SmoothedRadarLineSeries.js.map +1 -1
- package/.internal/charts/stock/PanelControls.js +26 -56
- package/.internal/charts/stock/PanelControls.js.map +1 -1
- package/.internal/charts/stock/SettingsModal.js +3 -30
- package/.internal/charts/stock/SettingsModal.js.map +1 -1
- package/.internal/charts/stock/StockChart.js +11 -108
- package/.internal/charts/stock/StockChart.js.map +1 -1
- package/.internal/charts/stock/StockLegend.js +14 -34
- package/.internal/charts/stock/StockLegend.js.map +1 -1
- package/.internal/charts/stock/StockPanel.js +3 -38
- package/.internal/charts/stock/StockPanel.js.map +1 -1
- package/.internal/charts/stock/drawing/AverageSeries.js +3 -18
- package/.internal/charts/stock/drawing/AverageSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/CalloutSeries.js +3 -18
- package/.internal/charts/stock/drawing/CalloutSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/DoodleSeries.js +5 -42
- package/.internal/charts/stock/drawing/DoodleSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/DrawingSeries.js +32 -200
- package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/EllipseSeries.js +7 -42
- package/.internal/charts/stock/drawing/EllipseSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/FibonacciSeries.js +7 -42
- package/.internal/charts/stock/drawing/FibonacciSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js +3 -18
- package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/HorizontalLineSeries.js +3 -18
- package/.internal/charts/stock/drawing/HorizontalLineSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/HorizontalRaySeries.js +3 -18
- package/.internal/charts/stock/drawing/HorizontalRaySeries.js.map +1 -1
- package/.internal/charts/stock/drawing/IconSeries.js +3 -24
- package/.internal/charts/stock/drawing/IconSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/LabelSeries.js +5 -36
- package/.internal/charts/stock/drawing/LabelSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/LineArrowSeries.js +4 -24
- package/.internal/charts/stock/drawing/LineArrowSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/Measure.js +6 -36
- package/.internal/charts/stock/drawing/Measure.js.map +1 -1
- package/.internal/charts/stock/drawing/ParallelChannelSeries.js +5 -30
- package/.internal/charts/stock/drawing/ParallelChannelSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/PolylineSeries.js +4 -24
- package/.internal/charts/stock/drawing/PolylineSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/QuadrantLineSeries.js +3 -18
- package/.internal/charts/stock/drawing/QuadrantLineSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/RectangleSeries.js +4 -24
- package/.internal/charts/stock/drawing/RectangleSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/RegressionSeries.js +3 -18
- package/.internal/charts/stock/drawing/RegressionSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/SimpleLineSeries.js +9 -54
- package/.internal/charts/stock/drawing/SimpleLineSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/TrendLineSeries.js +3 -18
- package/.internal/charts/stock/drawing/TrendLineSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/VerticalLineSeries.js +3 -18
- package/.internal/charts/stock/drawing/VerticalLineSeries.js.map +1 -1
- package/.internal/charts/stock/indicators/AccelerationBands.js +23 -56
- package/.internal/charts/stock/indicators/AccelerationBands.js.map +1 -1
- package/.internal/charts/stock/indicators/AccumulationDistribution.js +11 -26
- package/.internal/charts/stock/indicators/AccumulationDistribution.js.map +1 -1
- package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js +15 -42
- package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/Aroon.js +15 -30
- package/.internal/charts/stock/indicators/Aroon.js.map +1 -1
- package/.internal/charts/stock/indicators/AverageTrueRange.js +11 -26
- package/.internal/charts/stock/indicators/AverageTrueRange.js.map +1 -1
- package/.internal/charts/stock/indicators/AwesomeOscillator.js +11 -26
- package/.internal/charts/stock/indicators/AwesomeOscillator.js.map +1 -1
- package/.internal/charts/stock/indicators/BollingerBands.js +33 -66
- package/.internal/charts/stock/indicators/BollingerBands.js.map +1 -1
- package/.internal/charts/stock/indicators/BullBearPower.js +11 -26
- package/.internal/charts/stock/indicators/BullBearPower.js.map +1 -1
- package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js +11 -26
- package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js.map +1 -1
- package/.internal/charts/stock/indicators/ChaikinOscillator.js +15 -30
- package/.internal/charts/stock/indicators/ChaikinOscillator.js.map +1 -1
- package/.internal/charts/stock/indicators/ChartIndicator.js +3 -54
- package/.internal/charts/stock/indicators/ChartIndicator.js.map +1 -1
- package/.internal/charts/stock/indicators/CommodityChannelIndex.js +2 -12
- package/.internal/charts/stock/indicators/CommodityChannelIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/DisparityIndex.js +21 -36
- package/.internal/charts/stock/indicators/DisparityIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/HeikinAshi.js +11 -26
- package/.internal/charts/stock/indicators/HeikinAshi.js.map +1 -1
- package/.internal/charts/stock/indicators/Indicator.js +4 -42
- package/.internal/charts/stock/indicators/Indicator.js.map +1 -1
- package/.internal/charts/stock/indicators/MACD.js +31 -64
- package/.internal/charts/stock/indicators/MACD.js.map +1 -1
- package/.internal/charts/stock/indicators/MACross.js +19 -34
- package/.internal/charts/stock/indicators/MACross.js.map +1 -1
- package/.internal/charts/stock/indicators/MedianPrice.js +11 -26
- package/.internal/charts/stock/indicators/MedianPrice.js.map +1 -1
- package/.internal/charts/stock/indicators/Momentum.js +18 -33
- package/.internal/charts/stock/indicators/Momentum.js.map +1 -1
- package/.internal/charts/stock/indicators/MovingAverage.js +25 -40
- package/.internal/charts/stock/indicators/MovingAverage.js.map +1 -1
- package/.internal/charts/stock/indicators/MovingAverageDeviation.js +33 -48
- package/.internal/charts/stock/indicators/MovingAverageDeviation.js.map +1 -1
- package/.internal/charts/stock/indicators/MovingAverageEnvelope.js +42 -75
- package/.internal/charts/stock/indicators/MovingAverageEnvelope.js.map +1 -1
- package/.internal/charts/stock/indicators/OnBalanceVolume.js +7 -22
- package/.internal/charts/stock/indicators/OnBalanceVolume.js.map +1 -1
- package/.internal/charts/stock/indicators/OverboughtOversold.js +19 -64
- package/.internal/charts/stock/indicators/OverboughtOversold.js.map +1 -1
- package/.internal/charts/stock/indicators/PVT.js +7 -22
- package/.internal/charts/stock/indicators/PVT.js.map +1 -1
- package/.internal/charts/stock/indicators/RelativeStrengthIndex.js +2 -24
- package/.internal/charts/stock/indicators/RelativeStrengthIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/StandardDeviation.js +16 -31
- package/.internal/charts/stock/indicators/StandardDeviation.js.map +1 -1
- package/.internal/charts/stock/indicators/StochasticMomentumIndex.js +2 -24
- package/.internal/charts/stock/indicators/StochasticMomentumIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/StochasticOscillator.js +2 -24
- package/.internal/charts/stock/indicators/StochasticOscillator.js.map +1 -1
- package/.internal/charts/stock/indicators/SuperTrend.js +19 -52
- package/.internal/charts/stock/indicators/SuperTrend.js.map +1 -1
- package/.internal/charts/stock/indicators/Trix.js +20 -49
- package/.internal/charts/stock/indicators/Trix.js.map +1 -1
- package/.internal/charts/stock/indicators/TypicalPrice.js +11 -26
- package/.internal/charts/stock/indicators/TypicalPrice.js.map +1 -1
- package/.internal/charts/stock/indicators/VWAP.js +16 -31
- package/.internal/charts/stock/indicators/VWAP.js.map +1 -1
- package/.internal/charts/stock/indicators/Volume.js +11 -26
- package/.internal/charts/stock/indicators/Volume.js.map +1 -1
- package/.internal/charts/stock/indicators/VolumeProfile.js +32 -65
- package/.internal/charts/stock/indicators/VolumeProfile.js.map +1 -1
- package/.internal/charts/stock/indicators/WilliamsR.js +2 -12
- package/.internal/charts/stock/indicators/WilliamsR.js.map +1 -1
- package/.internal/charts/stock/indicators/ZigZag.js +15 -30
- package/.internal/charts/stock/indicators/ZigZag.js.map +1 -1
- package/.internal/charts/stock/toolbar/ColorControl.js +2 -12
- package/.internal/charts/stock/toolbar/ColorControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/ComparisonControl.js +2 -12
- package/.internal/charts/stock/toolbar/ComparisonControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/DataSaveControl.js +2 -12
- package/.internal/charts/stock/toolbar/DataSaveControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/DateRangeSelector.js +2 -12
- package/.internal/charts/stock/toolbar/DateRangeSelector.js.map +1 -1
- package/.internal/charts/stock/toolbar/DrawingControl.js +4 -24
- package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/DrawingToolControl.js +2 -12
- package/.internal/charts/stock/toolbar/DrawingToolControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/Dropdown.js +2 -12
- package/.internal/charts/stock/toolbar/Dropdown.js.map +1 -1
- package/.internal/charts/stock/toolbar/DropdownColors.js +2 -12
- package/.internal/charts/stock/toolbar/DropdownColors.js.map +1 -1
- package/.internal/charts/stock/toolbar/DropdownControl.js +2 -12
- package/.internal/charts/stock/toolbar/DropdownControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/DropdownList.js +2 -21
- package/.internal/charts/stock/toolbar/DropdownList.js.map +1 -1
- package/.internal/charts/stock/toolbar/DropdownListControl.js +2 -12
- package/.internal/charts/stock/toolbar/DropdownListControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/IconControl.js +2 -12
- package/.internal/charts/stock/toolbar/IconControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/IndicatorControl.js +2 -12
- package/.internal/charts/stock/toolbar/IndicatorControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/IntervalControl.js +2 -12
- package/.internal/charts/stock/toolbar/IntervalControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/PeriodSelector.js +2 -27
- package/.internal/charts/stock/toolbar/PeriodSelector.js.map +1 -1
- package/.internal/charts/stock/toolbar/ResetControl.js +2 -12
- package/.internal/charts/stock/toolbar/ResetControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/SeriesTypeControl.js +2 -12
- package/.internal/charts/stock/toolbar/SeriesTypeControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/SettingsControl.js +2 -12
- package/.internal/charts/stock/toolbar/SettingsControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/StockControl.js +2 -12
- package/.internal/charts/stock/toolbar/StockControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/StockIcons.js +52 -57
- package/.internal/charts/stock/toolbar/StockIcons.js.map +1 -1
- package/.internal/charts/stock/toolbar/StockToolbar.js +2 -21
- package/.internal/charts/stock/toolbar/StockToolbar.js.map +1 -1
- package/.internal/charts/timeline/AxisRendererCurveX.js +11 -46
- package/.internal/charts/timeline/AxisRendererCurveX.js.map +1 -1
- package/.internal/charts/timeline/AxisRendererCurveY.js +6 -26
- package/.internal/charts/timeline/AxisRendererCurveY.js.map +1 -1
- package/.internal/charts/timeline/CurveChart.js +3 -18
- package/.internal/charts/timeline/CurveChart.js.map +1 -1
- package/.internal/charts/timeline/CurveColumnSeries.js +6 -21
- package/.internal/charts/timeline/CurveColumnSeries.js.map +1 -1
- package/.internal/charts/timeline/CurveCursor.js +2 -12
- package/.internal/charts/timeline/CurveCursor.js.map +1 -1
- package/.internal/charts/timeline/CurveLineSeries.js +2 -12
- package/.internal/charts/timeline/CurveLineSeries.js.map +1 -1
- package/.internal/charts/timeline/SerpentineChart.js +2 -12
- package/.internal/charts/timeline/SerpentineChart.js.map +1 -1
- package/.internal/charts/timeline/SpiralChart.js +2 -12
- package/.internal/charts/timeline/SpiralChart.js.map +1 -1
- package/.internal/charts/venn/Venn.js +8 -54
- package/.internal/charts/venn/Venn.js.map +1 -1
- package/.internal/charts/wordcloud/WordCloud.js +9 -66
- package/.internal/charts/wordcloud/WordCloud.js.map +1 -1
- package/.internal/charts/xy/XYChart.js +23 -149
- package/.internal/charts/xy/XYChart.js.map +1 -1
- package/.internal/charts/xy/XYChartScrollbar.js +15 -35
- package/.internal/charts/xy/XYChartScrollbar.js.map +1 -1
- package/.internal/charts/xy/XYCursor.js +16 -93
- package/.internal/charts/xy/XYCursor.js.map +1 -1
- package/.internal/charts/xy/axes/Axis.js +27 -166
- package/.internal/charts/xy/axes/Axis.js.map +1 -1
- package/.internal/charts/xy/axes/AxisBullet.js +2 -24
- package/.internal/charts/xy/axes/AxisBullet.js.map +1 -1
- package/.internal/charts/xy/axes/AxisLabel.js +3 -18
- package/.internal/charts/xy/axes/AxisLabel.js.map +1 -1
- package/.internal/charts/xy/axes/AxisLabelRadial.js +3 -18
- package/.internal/charts/xy/axes/AxisLabelRadial.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRenderer.js +21 -131
- package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRendererX.js +3 -18
- package/.internal/charts/xy/axes/AxisRendererX.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRendererY.js +3 -24
- package/.internal/charts/xy/axes/AxisRendererY.js.map +1 -1
- package/.internal/charts/xy/axes/AxisTick.js +3 -18
- package/.internal/charts/xy/axes/AxisTick.js.map +1 -1
- package/.internal/charts/xy/axes/CategoryAxis.js +4 -24
- package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
- package/.internal/charts/xy/axes/CategoryDateAxis.js +4 -24
- package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +9 -54
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/DurationAxis.js +5 -30
- package/.internal/charts/xy/axes/DurationAxis.js.map +1 -1
- package/.internal/charts/xy/axes/EditableAxisLabel.js +3 -18
- package/.internal/charts/xy/axes/EditableAxisLabel.js.map +1 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.js +5 -36
- package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/Grid.js +2 -12
- package/.internal/charts/xy/axes/Grid.js.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.js +15 -73
- package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
- package/.internal/charts/xy/series/BaseColumnSeries.js +5 -30
- package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
- package/.internal/charts/xy/series/Candlestick.js +2 -12
- package/.internal/charts/xy/series/Candlestick.js.map +1 -1
- package/.internal/charts/xy/series/CandlestickSeries.js +7 -22
- package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
- package/.internal/charts/xy/series/ColumnSeries.js +8 -33
- package/.internal/charts/xy/series/ColumnSeries.js.map +1 -1
- package/.internal/charts/xy/series/LineSeries.js +13 -89
- package/.internal/charts/xy/series/LineSeries.js.map +1 -1
- package/.internal/charts/xy/series/OHLC.js +2 -12
- package/.internal/charts/xy/series/OHLC.js.map +1 -1
- package/.internal/charts/xy/series/OHLCSeries.js +7 -22
- package/.internal/charts/xy/series/OHLCSeries.js.map +1 -1
- package/.internal/charts/xy/series/SmoothedXLineSeries.js +2 -12
- package/.internal/charts/xy/series/SmoothedXLineSeries.js.map +1 -1
- package/.internal/charts/xy/series/SmoothedXYLineSeries.js +2 -12
- package/.internal/charts/xy/series/SmoothedXYLineSeries.js.map +1 -1
- package/.internal/charts/xy/series/SmoothedYLineSeries.js +2 -12
- package/.internal/charts/xy/series/SmoothedYLineSeries.js.map +1 -1
- package/.internal/charts/xy/series/StepLineSeries.js +2 -12
- package/.internal/charts/xy/series/StepLineSeries.js.map +1 -1
- package/.internal/charts/xy/series/XYSeries.js +33 -282
- package/.internal/charts/xy/series/XYSeries.js.map +1 -1
- package/.internal/core/Registry.js +5 -30
- package/.internal/core/Registry.js.map +1 -1
- package/.internal/core/Root.d.ts.map +1 -1
- package/.internal/core/Root.js +38 -398
- package/.internal/core/Root.js.map +1 -1
- package/.internal/core/Theme.js +1 -12
- package/.internal/core/Theme.js.map +1 -1
- package/.internal/core/render/Bullet.js +2 -31
- package/.internal/core/render/Bullet.js.map +1 -1
- package/.internal/core/render/Button.js +2 -12
- package/.internal/core/render/Button.js.map +1 -1
- package/.internal/core/render/Chart.js +4 -24
- package/.internal/core/render/Chart.js.map +1 -1
- package/.internal/core/render/Circle.js +2 -12
- package/.internal/core/render/Circle.js.map +1 -1
- package/.internal/core/render/Component.js +11 -135
- package/.internal/core/render/Component.js.map +1 -1
- package/.internal/core/render/ConfirmButton.js +2 -21
- package/.internal/core/render/ConfirmButton.js.map +1 -1
- package/.internal/core/render/Container.js +13 -108
- package/.internal/core/render/Container.js.map +1 -1
- package/.internal/core/render/EditableLabel.js +2 -21
- package/.internal/core/render/EditableLabel.js.map +1 -1
- package/.internal/core/render/Ellipse.js +2 -12
- package/.internal/core/render/Ellipse.js.map +1 -1
- package/.internal/core/render/Graphics.js +4 -24
- package/.internal/core/render/Graphics.js.map +1 -1
- package/.internal/core/render/GridLayout.js +2 -12
- package/.internal/core/render/GridLayout.js.map +1 -1
- package/.internal/core/render/HeatLegend.js +9 -44
- package/.internal/core/render/HeatLegend.js.map +1 -1
- package/.internal/core/render/HorizontalLayout.js +2 -12
- package/.internal/core/render/HorizontalLayout.js.map +1 -1
- package/.internal/core/render/Label.js +41 -62
- package/.internal/core/render/Label.js.map +1 -1
- package/.internal/core/render/Layout.js +2 -12
- package/.internal/core/render/Layout.js.map +1 -1
- package/.internal/core/render/Legend.js +22 -57
- package/.internal/core/render/Legend.js.map +1 -1
- package/.internal/core/render/Line.js +2 -12
- package/.internal/core/render/Line.js.map +1 -1
- package/.internal/core/render/Link.js +10 -40
- package/.internal/core/render/Link.js.map +1 -1
- package/.internal/core/render/MonotoneXTension.js +8 -54
- package/.internal/core/render/MonotoneXTension.js.map +1 -1
- package/.internal/core/render/MonotoneYTension.js +8 -54
- package/.internal/core/render/MonotoneYTension.js.map +1 -1
- package/.internal/core/render/NumericStepper.js +6 -36
- package/.internal/core/render/NumericStepper.js.map +1 -1
- package/.internal/core/render/OrthogonalLine.js +2 -12
- package/.internal/core/render/OrthogonalLine.js.map +1 -1
- package/.internal/core/render/Picture.js +3 -18
- package/.internal/core/render/Picture.js.map +1 -1
- package/.internal/core/render/PointedRectangle.js +2 -12
- package/.internal/core/render/PointedRectangle.js.map +1 -1
- package/.internal/core/render/Polygon.js +2 -21
- package/.internal/core/render/Polygon.js.map +1 -1
- package/.internal/core/render/ProgressPie.js +8 -38
- package/.internal/core/render/ProgressPie.js.map +1 -1
- package/.internal/core/render/RadialLabel.js +3 -18
- package/.internal/core/render/RadialLabel.js.map +1 -1
- package/.internal/core/render/RadialText.js +3 -18
- package/.internal/core/render/RadialText.js.map +1 -1
- package/.internal/core/render/Rectangle.js +2 -12
- package/.internal/core/render/Rectangle.js.map +1 -1
- package/.internal/core/render/RoundedRectangle.js +2 -12
- package/.internal/core/render/RoundedRectangle.js.map +1 -1
- package/.internal/core/render/Scrollbar.js +9 -60
- package/.internal/core/render/Scrollbar.js.map +1 -1
- package/.internal/core/render/SerialChart.js +4 -24
- package/.internal/core/render/SerialChart.js.map +1 -1
- package/.internal/core/render/Series.js +8 -69
- package/.internal/core/render/Series.js.map +1 -1
- package/.internal/core/render/Slice.js +5 -30
- package/.internal/core/render/Slice.js.map +1 -1
- package/.internal/core/render/Slider.js +2 -12
- package/.internal/core/render/Slider.js.map +1 -1
- package/.internal/core/render/Sprite.js +86 -249
- package/.internal/core/render/Sprite.js.map +1 -1
- package/.internal/core/render/SpriteResizer.js +11 -72
- package/.internal/core/render/SpriteResizer.js.map +1 -1
- package/.internal/core/render/Star.js +2 -12
- package/.internal/core/render/Star.js.map +1 -1
- package/.internal/core/render/Text.js +35 -66
- package/.internal/core/render/Text.js.map +1 -1
- package/.internal/core/render/Tick.js +2 -12
- package/.internal/core/render/Tick.js.map +1 -1
- package/.internal/core/render/Tooltip.js +7 -78
- package/.internal/core/render/Tooltip.js.map +1 -1
- package/.internal/core/render/Triangle.js +2 -12
- package/.internal/core/render/Triangle.js.map +1 -1
- package/.internal/core/render/VerticalLayout.js +2 -12
- package/.internal/core/render/VerticalLayout.js.map +1 -1
- package/.internal/core/render/ZoomTools.js +5 -42
- package/.internal/core/render/ZoomTools.js.map +1 -1
- package/.internal/core/render/ZoomableContainer.js +17 -82
- package/.internal/core/render/ZoomableContainer.js.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.js +142 -1205
- package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
- package/.internal/core/render/gradients/Gradient.js +2 -12
- package/.internal/core/render/gradients/Gradient.js.map +1 -1
- package/.internal/core/render/gradients/LinearGradient.js +2 -12
- package/.internal/core/render/gradients/LinearGradient.js.map +1 -1
- package/.internal/core/render/gradients/RadialGradient.js +2 -12
- package/.internal/core/render/gradients/RadialGradient.js.map +1 -1
- package/.internal/core/render/patterns/CirclePattern.js +2 -12
- package/.internal/core/render/patterns/CirclePattern.js.map +1 -1
- package/.internal/core/render/patterns/GrainPattern.js +5 -30
- package/.internal/core/render/patterns/GrainPattern.js.map +1 -1
- package/.internal/core/render/patterns/LinePattern.js +2 -12
- package/.internal/core/render/patterns/LinePattern.js.map +1 -1
- package/.internal/core/render/patterns/PathPattern.js +2 -12
- package/.internal/core/render/patterns/PathPattern.js.map +1 -1
- package/.internal/core/render/patterns/Pattern.js +5 -36
- package/.internal/core/render/patterns/Pattern.js.map +1 -1
- package/.internal/core/render/patterns/PicturePattern.js +2 -21
- package/.internal/core/render/patterns/PicturePattern.js.map +1 -1
- package/.internal/core/render/patterns/RectanglePattern.js +2 -12
- package/.internal/core/render/patterns/RectanglePattern.js.map +1 -1
- package/.internal/core/util/Animation.js +6 -54
- package/.internal/core/util/Animation.js.map +1 -1
- package/.internal/core/util/Benchmark.js +3 -18
- package/.internal/core/util/Benchmark.js.map +1 -1
- package/.internal/core/util/Children.js +1 -18
- package/.internal/core/util/Children.js.map +1 -1
- package/.internal/core/util/Color.js +0 -6
- package/.internal/core/util/Color.js.map +1 -1
- package/.internal/core/util/ColorSet.js +2 -12
- package/.internal/core/util/ColorSet.js.map +1 -1
- package/.internal/core/util/Counter.js +2 -18
- package/.internal/core/util/Counter.js.map +1 -1
- package/.internal/core/util/Data.js +0 -26
- package/.internal/core/util/Data.js.map +1 -1
- package/.internal/core/util/DataProcessor.js +5 -30
- package/.internal/core/util/DataProcessor.js.map +1 -1
- package/.internal/core/util/Disposer.js +2 -66
- package/.internal/core/util/Disposer.js.map +1 -1
- package/.internal/core/util/DurationFormatter.js +8 -13
- package/.internal/core/util/DurationFormatter.js.map +1 -1
- package/.internal/core/util/Entity.js +31 -271
- package/.internal/core/util/Entity.js.map +1 -1
- package/.internal/core/util/EventDispatcher.js +0 -45
- package/.internal/core/util/EventDispatcher.js.map +1 -1
- package/.internal/core/util/InterfaceColors.js +2 -12
- package/.internal/core/util/InterfaceColors.js.map +1 -1
- package/.internal/core/util/List.js +3 -39
- package/.internal/core/util/List.js.map +1 -1
- package/.internal/core/util/Matrix.js +0 -36
- package/.internal/core/util/Matrix.js.map +1 -1
- package/.internal/core/util/Modal.js +2 -12
- package/.internal/core/util/Modal.js.map +1 -1
- package/.internal/core/util/PatternSet.js +2 -12
- package/.internal/core/util/PatternSet.js.map +1 -1
- package/.internal/core/util/Percent.js +0 -9
- package/.internal/core/util/Percent.js.map +1 -1
- package/.internal/core/util/ResizeSensor.js +5 -54
- package/.internal/core/util/ResizeSensor.js.map +1 -1
- package/.internal/core/util/States.js +2 -30
- package/.internal/core/util/States.js.map +1 -1
- package/.internal/core/util/Template.js +10 -96
- package/.internal/core/util/Template.js.map +1 -1
- package/.internal/core/util/TextFormatter.js +1 -6
- package/.internal/core/util/TextFormatter.js.map +1 -1
- package/.internal/core/util/Throttler.js +2 -18
- package/.internal/core/util/Throttler.js.map +1 -1
- package/.internal/core/util/Timezone.js +0 -18
- package/.internal/core/util/Timezone.js.map +1 -1
- package/.internal/core/util/Utils.js +0 -21
- package/.internal/core/util/Utils.js.map +1 -1
- package/.internal/core/util/Value.js +1 -18
- package/.internal/core/util/Value.js.map +1 -1
- package/.internal/plugins/colorPicker/ColorPicker.js +96 -235
- package/.internal/plugins/colorPicker/ColorPicker.js.map +1 -1
- package/.internal/plugins/colorPicker/ColorPickerButton.js +8 -34
- package/.internal/plugins/colorPicker/ColorPickerButton.js.map +1 -1
- package/.internal/plugins/exporting/Annotator.js +3 -36
- package/.internal/plugins/exporting/Annotator.js.map +1 -1
- package/.internal/plugins/exporting/Exporting.js +2 -12
- package/.internal/plugins/exporting/Exporting.js.map +1 -1
- package/.internal/plugins/exporting/ExportingMenu.js +6 -66
- package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
- package/.internal/plugins/json/ChartSerializer.js +8 -48
- package/.internal/plugins/json/ChartSerializer.js.map +1 -1
- package/.internal/plugins/json/Json.js +3 -24
- package/.internal/plugins/json/Json.js.map +1 -1
- package/.internal/plugins/json/Serializer.js +3 -18
- package/.internal/plugins/json/Serializer.js.map +1 -1
- package/.internal/plugins/sliceGrouper/SliceGrouper.js +2 -24
- package/.internal/plugins/sliceGrouper/SliceGrouper.js.map +1 -1
- package/.internal/themes/ResponsiveTheme.js +8 -54
- package/.internal/themes/ResponsiveTheme.js.map +1 -1
- package/CHANGELOG.md +12 -0
- package/examples/javascript/flow-arc-horizontal/package.json +1 -1
- package/examples/javascript/flow-arc-vertical/package.json +1 -1
- package/examples/javascript/flow-chord/package.json +1 -1
- package/examples/javascript/flow-chord-directed/package.json +1 -1
- package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/javascript/flow-sankey/package.json +1 -1
- package/examples/javascript/gantt/package.json +1 -1
- package/examples/javascript/gantt-multilevel/package.json +1 -1
- package/examples/javascript/gantt-simple/package.json +1 -1
- package/examples/javascript/gauge/package.json +1 -1
- package/examples/javascript/gauge-bands/package.json +1 -1
- package/examples/javascript/hierarchy-force-directed/package.json +1 -1
- package/examples/javascript/hierarchy-pack/package.json +1 -1
- package/examples/javascript/hierarchy-partition/package.json +1 -1
- package/examples/javascript/hierarchy-sunburst/package.json +1 -1
- package/examples/javascript/hierarchy-tree/package.json +1 -1
- package/examples/javascript/hierarchy-treemap/package.json +1 -1
- package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/javascript/jest/package.json +1 -1
- package/examples/javascript/json-pie/package.json +1 -1
- package/examples/javascript/json-xy/package.json +1 -1
- package/examples/javascript/map-animating-along-lines/package.json +1 -1
- package/examples/javascript/map-clustered-points/package.json +1 -1
- package/examples/javascript/map-day-and-night/package.json +1 -1
- package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/javascript/map-with-bubbles/package.json +1 -1
- package/examples/javascript/map-zoom-to-country/package.json +1 -1
- package/examples/javascript/misc-40-charts/package.json +1 -1
- package/examples/javascript/misc-microchart-grid/package.json +1 -1
- package/examples/javascript/pie-chart/package.json +1 -1
- package/examples/javascript/pie-donut-chart/package.json +1 -1
- package/examples/javascript/pie-variable-radius/package.json +1 -1
- package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
- package/examples/javascript/radar-heat-map/package.json +1 -1
- package/examples/javascript/radar-line/package.json +1 -1
- package/examples/javascript/radar-time-line/package.json +1 -1
- package/examples/javascript/sliced-funnel/package.json +1 -1
- package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/javascript/sliced-pyramid/package.json +1 -1
- package/examples/javascript/stock-chart/package.json +1 -1
- package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
- package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
- package/examples/javascript/stock-chart-intraday/package.json +1 -1
- package/examples/javascript/stock-chart-live/package.json +1 -1
- package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/javascript/timeline-horizontal-serpentine-chart/package.json +1 -1
- package/examples/javascript/timeline-linear-process-diagram/package.json +1 -1
- package/examples/javascript/timeline-serpentine-chart/package.json +1 -1
- package/examples/javascript/timeline-spiral-chart/package.json +1 -1
- package/examples/javascript/venn-diagram/package.json +1 -1
- package/examples/javascript/wordcloud-with-data/package.json +1 -1
- package/examples/javascript/wordcloud-with-text/package.json +1 -1
- package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/javascript/xy-bubble/package.json +1 -1
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/javascript/xy-live-data/package.json +1 -1
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/package.json +1 -1
- package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/javascript/xy-smoothed-line/package.json +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/javascript/xy-stacked-column/package.json +1 -1
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/flow-arc-horizontal/package.json +1 -1
- package/examples/typescript/flow-arc-vertical/package.json +1 -1
- package/examples/typescript/flow-chord/package.json +1 -1
- package/examples/typescript/flow-chord-directed/package.json +1 -1
- package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/typescript/flow-sankey/package.json +1 -1
- package/examples/typescript/gantt/package.json +1 -1
- package/examples/typescript/gantt-multilevel/package.json +1 -1
- package/examples/typescript/gantt-simple/package.json +1 -1
- package/examples/typescript/gauge/package.json +1 -1
- package/examples/typescript/gauge-bands/package.json +1 -1
- package/examples/typescript/hierarchy-force-directed/package.json +1 -1
- package/examples/typescript/hierarchy-pack/package.json +1 -1
- package/examples/typescript/hierarchy-partition/package.json +1 -1
- package/examples/typescript/hierarchy-sunburst/package.json +1 -1
- package/examples/typescript/hierarchy-tree/package.json +1 -1
- package/examples/typescript/hierarchy-treemap/package.json +1 -1
- package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/typescript/jest/package.json +1 -1
- package/examples/typescript/json-pie/package.json +1 -1
- package/examples/typescript/json-xy/package.json +1 -1
- package/examples/typescript/map-animating-along-lines/package.json +1 -1
- package/examples/typescript/map-clustered-points/package.json +1 -1
- package/examples/typescript/map-day-and-night/package.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/typescript/map-with-bubbles/package.json +1 -1
- package/examples/typescript/map-zoom-to-country/package.json +1 -1
- package/examples/typescript/misc-40-charts/package.json +1 -1
- package/examples/typescript/misc-microchart-grid/package.json +1 -1
- package/examples/typescript/pie-chart/package.json +1 -1
- package/examples/typescript/pie-donut-chart/package.json +1 -1
- package/examples/typescript/pie-variable-radius/package.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
- package/examples/typescript/radar-heat-map/package.json +1 -1
- package/examples/typescript/radar-line/package.json +1 -1
- package/examples/typescript/radar-time-line/package.json +1 -1
- package/examples/typescript/sliced-funnel/package.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/typescript/sliced-pyramid/package.json +1 -1
- package/examples/typescript/stock-chart/package.json +1 -1
- package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
- package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
- package/examples/typescript/stock-chart-intraday/package.json +1 -1
- package/examples/typescript/stock-chart-live/package.json +1 -1
- package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/typescript/timeline-horizontal-serpentine-chart/package.json +1 -1
- package/examples/typescript/timeline-linear-process-diagram/package.json +1 -1
- package/examples/typescript/timeline-serpentine-chart/package.json +1 -1
- package/examples/typescript/timeline-spiral-chart/package.json +1 -1
- package/examples/typescript/venn-diagram/package.json +1 -1
- package/examples/typescript/wordcloud-with-data/package.json +1 -1
- package/examples/typescript/wordcloud-with-text/package.json +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/typescript/xy-bubble/package.json +1 -1
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/typescript/xy-live-data/package.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-ohlc/package.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/typescript/xy-smoothed-line/package.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/typescript/xy-stacked-column/package.json +1 -1
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- 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
|
-
|
|
34
|
-
|
|
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
|
-
|
|
45
|
-
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
110
|
-
|
|
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
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
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
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
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
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
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
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
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
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
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
|
-
|
|
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
|
-
|
|
791
|
-
|
|
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":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAW,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAA0B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAmB,SAAS,EAAqE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC/J,OAAO,EAAE,iBAAiB,EAA8B,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AA8F9C;;;;;;GAMG;AACH,MAAM,OAAO,KAAM,SAAQ,SAAS;IAApC;;QAOC;;WAEG;QACI,eAAU,GAAc,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACxD,WAAW,EAAE,YAAY;SACzB,CAAC,CAAC;QAEH;;WAEG;QACI,eAAU,GAAc,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACxD,WAAW,EAAE,UAAU;SACvB,CAAC,CAAC;QA2BH;;WAEG;QACI,aAAQ,GAAc,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACtD,SAAS,EAAE,CAAC,UAAU,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB;SACnC,CAAC,CAAA;QAEK,iBAAY,GAAc,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YAC1D,aAAa,EAAE,CAAC,cAAc,CAAC;SAC/B,CAAC,CAAC;QAEH;;WAEG;QACa,cAAS,GAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACtF,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;YAC1B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;YAChC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;SACvD,CAAC,CAAC,CAAC;QAEJ;;WAEG;QACa,sBAAiB,GAAsB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACpH,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;SAChC,CAAC,CAAC,CAAC;QAEJ;;WAEG;QACa,iBAAY,GAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACzF,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC;YAChD,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;SAChC,CAAC,CAAC,CAAC;QAEJ;;WAEG;QACa,mBAAc,GAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YAC3F,SAAS,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC;YAClD,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;SAChC,CAAC,CAAC,CAAC;QAEJ;;WAEG;QACa,eAAU,GAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACvF,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC;YAC9C,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;SAChC,CAAC,CAAC,CAAC;QAEJ;;WAEG;QACa,cAAS,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YAC1F,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC;YAC7C,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;SAChC,CAAC,CAAC,CAAC;QAEJ;;WAEG;QACa,kBAAa,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9F,SAAS,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC;YACjD,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;SAChC,CAAC,CAAC,CAAC;QAEJ;;;;WAIG;QACa,eAAU,GAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACvF,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC;YAC9C,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;SAChC,CAAC,CAAC,CAAC;QAEJ;;WAEG;QACa,gBAAW,GAAkB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACtG,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC;YAC5C,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;YAChC,MAAM,EAAE,KAAK;SACb,CAAC,CAAC,CAAC;QAEJ;;WAEG;QACa,gBAAW,GAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAuoBhH,CAAC;IAnoBO,YAAY,CAAC,QAAiB,KAAK;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,MAAM,EAAE;YACX,MAAM,CAAC,KAAK,EAAE,CAAC;SACf;QACD,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAES,SAAS;QAClB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACvB,WAAW,EAAE,IAAI,CAAC,iBAAiB;aACnC,CAAC,CAAA;YACF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;YAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtC,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAExD,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAE7C,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;YACtC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC,CAAC,CAAC;QAEJ,MAAM,SAAS,GAAG,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE1D,gDAAgD;QAChD,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;YACpD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAA;QAEF,oEAAoE;QACpE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAC7B,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE;YAC3B,aAAa,EAAE,IAAI;YACnB,aAAa,EAAE,UAAU;YACzB,cAAc,EAAE,WAAW;YAC3B,aAAa,EAAE,UAAU;YACzB,UAAU,EAAE,OAAO;YACnB,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,MAAM;YACjB,QAAQ,EAAE,SAAS;SACnB,CAAC,CACF,CAAC;QAEF,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QAEnB,mDAAmD;QACnD,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;gBACxC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE1F,sDAAsD;QACtD,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE;YACzF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAA4C,CAAC;YACrE,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACvC,OAAO,IAAI,CAAC;aACZ;YACD,OAAO,WAAW,CAAC;QACpB,CAAC,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAClC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE;YACvB,SAAS,EAAE,CAAC,OAAO,CAAC;YACpB,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;YAC3C,QAAQ,EAAE,uBAAuB;YACjC,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE;gBAC/B,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;gBAClB,WAAW,EAAE,CAAC;aACd,CAAC;SACF,CAAC,CACF,CAAC;QAEF,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;QAExB,sCAAsC;QACtC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YACvC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,0BAA0B;QAC1B,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClC,IAAI,WAAW,EAAE;gBAChB,MAAM,QAAQ,GAAG,WAAW,CAAC,QAA4C,CAAC;gBAC1E,IAAI,QAAQ,EAAE;oBACb,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACvC,IAAI,KAAK,KAAK,SAAS,EAAE;wBACxB,IAAI,KAAK,GAAG,KAAK,CAAC;wBAClB,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;4BACxC,sCAAsC;4BACtC,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE;gCACrC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gCACvB,KAAK,GAAG,IAAI,CAAC;6BACb;wBACF,CAAC,CAAC,CAAA;wBACF,+BAA+B;wBAC/B,IAAI,CAAC,KAAK,EAAE;4BACX,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;4BAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;yBACrB;qBACD;iBACD;aACD;QACF,CAAC,CAAC,CAAA;QAEF,kCAAkC;QAClC,IAAI,WAA6B,CAAC;QAClC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,EAAE;YAChD,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE;gBACzB,4BAA4B;gBAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnE,IAAI,IAAI,GAAG,QAAQ,CAAC;gBACpB,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1C,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;wBACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA4C,CAAC;wBACnE,IAAI,QAAQ,EAAE;4BACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gCAC7B,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gCAE5C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oCACxB,IAAI,CAAC,OAAO,EAAE,CAAC;iCACf;gCAED,IAAI,QAAQ,GAAG,IAAI,EAAE;oCACpB,IAAI,GAAG,QAAQ,CAAC;oCAChB,WAAW,GAAG,IAAI,CAAC;iCACnB;6BACD;yBACD;qBACD;gBACF,CAAC,CAAC,CAAA;gBAEF,IAAI,WAAW,EAAE;oBAChB,WAAW,CAAC,KAAK,EAAE,CAAC;iBACpB;aACD;QACF,CAAC,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAC7B,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE;YACvB,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;YAC3C,QAAQ,EAAE,kBAAkB;YAC5B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;SAC9B,CAAC,CACF,CAAC;QAEF,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QAEnB,qCAAqC;QACrC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YAChC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YAChC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3B,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACzB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,yBAAyB;QACzB,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;YAC1C,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;SAC9C;QACD,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;YAC1C,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;SACjE;QAED,oBAAoB;QACpB,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;YACzC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAChD,IAAI,aAAa,IAAI,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACnD,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC/D;QACF,CAAC,CAAC,CAAC;QAEH,aAAa;QACb,2DAA2D;QAC3D,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE;YACpD,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,KAAK;YACf,eAAe,EAAE,OAAO;YACxB,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,UAAU;YACzB,aAAa,EAAE,UAAU;YACzB,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,IAAI;SACb,CAAC,CAAC,CAAC;QAEJ,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QAEpB,iBAAiB;QACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAEjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,MAAM,SAAS,GAAG,eAAe,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACzB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;oBACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACnE;aACD;QACF,CAAC,CAAC,CAAA;QAEF,0BAA0B;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACzC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACxB,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3C,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjB,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACvC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACvC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAEtC,IAAI,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YAChD,IAAI,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAE5C,KAAK,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;YAE/E;;;;;;;;;;;;;;;;;eAiBG;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC1C,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClD,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;gBAC9C,OAAO,GAAG,IAAI,CAAC;aACf;SACD;QACD,IAAI,CAAC,OAAO,EAAE;YACb,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC3B;aACI;YACJ,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC7B;IACF,CAAC;IACD,kBAAkB;IAEX,gBAAgB;QACtB,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC7B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;SACjD;IACF,CAAC;IAEM,QAAQ;;QACd,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,MAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;QAE9E,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAChE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzD,IAAI,SAAS,EAAE;gBACd,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAW,CAAC,CAAC;aAClD;SACD;QAAA,CAAC;IACH,CAAC;IAEM,eAAe;QACrB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;SAC/D;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;SAC1D;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YACpD,IAAI,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC7F,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxB;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YACjC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC9C,IAAI,YAAY,EAAE;gBACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;aAC1E;SACD;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;YAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;SAClB;IACF,CAAC;IAES,gBAAgB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACtB,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE;SACzC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACI,UAAU,CAAC,IAAa,EAAE,KAAc,EAAE,WAAmB,CAAC,EAAE,QAAiB,EAAE,WAAmB,CAAC,EAAE,cAAwB;QACvI,wCAAwC;QACxC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;QAEpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC9C,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;gBACvC,CAAC,EAAE,CAAC;aACJ;QACF,CAAC,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,QAAQ,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,EAAE;YACV,IAAI,GAAG,UAAU,CAAC;SAClB;QAED,IAAI,cAAc,KAAK,SAAS,EAAE;YACjC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;SACjD;QAED,IAAI,cAAgE,CAAC;QACrE,sEAAsE;QACtE,IAAI,QAAQ,IAAI,SAAS,EAAE;YAC1B,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;SACtD;aACI;YACJ,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;SACpD;QAED,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,sDAAsD;QACtD,IAAI,cAAc,EAAE;YACnB,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,QAAQ,EAAE;gBACb,8DAA8D;gBAC9D,IAAI,KAAK,KAAK,SAAS,EAAE;oBACxB,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC7D,IAAI,cAAc,EAAE;wBACnB,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;qBAC3D;iBACD;aACD;YACD,sDAAsD;YACtD,IAAI,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,EAAE;gBACd,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;aAC9C;YACD,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;SAC7B;QAED,wCAAwC;QACxC,IAAI,KAAK,KAAK,SAAS,EAAE;YACxB,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;aAC3E;SACD;QAED,MAAM,UAAU,GAAQ;YACvB,IAAI,EAAE,IAAI;YACV,EAAE,EAAE,GAAG;SACP,CAAA;QACD,IAAI,QAAQ,EAAE;YACb,UAAU,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;SAClC;QACD,wBAAwB;QACxB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,gBAAkE,CAAC;QACvE,IAAI,cAAc,EAAE;YACnB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;YACtE,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;YACtC,IAAI,KAAK,IAAI,GAAG,EAAE;gBACjB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBACjD;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACjC;iBACI;gBACJ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;iBACnD;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;aAC/C;YACD,KAAK,EAAE,CAAC;SACR;aACI;YACJ,0DAA0D;YAC1D,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;oBAC9B,gBAAgB,GAAG,QAAQ,CAAC;oBAC5B,MAAM;iBACN;aACD;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;SACpC;QAED,yEAAyE;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE/C,MAAM,gBAAgB,GAAQ;YAC7B,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,KAAK,GAAG,CAAC;YACd,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;YAClB,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,IAAI;SACV,CAAA;QAED,yCAAyC;QACzC,IAAI,cAAc,IAAI,gBAAgB,EAAE;YACvC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC;YAEhF,IAAI,cAAc,EAAE;gBACnB,MAAM,MAAM,GAAkB,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAE/D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjB,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;iBACrC;aACD;SACD;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAExD,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3D,iBAAiB,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,GAAG,YAAY,GAAG,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAEzL,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE3B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;QAEzC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;QAClC,IAAI,QAAQ,GAAG,GAAG,EAAE;YACnB,QAAQ,GAAG,GAAG,CAAC;YACf,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,CAAC;SAClD;QAED,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IACzB,CAAC;IAGD,oCAAoC;IAC7B,UAAU;;QAChB,IAAI,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO,IAAI,CAAC,YAAY,CAAC;SACzB;QACD,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEjD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,IAAY;QAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC;YACnE,KAAK,EAAE,IAAI;SACX,CAAC,CAAC,CAAA;QAEH,MAAM,SAAS,GAAG,YAAY,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;SACnG;IACF,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,IAAY;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,QAAQ,GAAG,SAAS,CAAC;QACzB,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YACxC,sCAAsC;YACtC,IAAI,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;gBACjD,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC7C,QAAQ,GAAG,SAAS,CAAC;aACrB;QACF,CAAC,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,cAAc,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;SACnG;IACF,CAAC;IAES,eAAe,CAAC,KAAc;QACvC,MAAM,WAAW,GAAG,aAAa,CAAC;QAClC,MAAM,aAAa,GAAG,eAAe,CAAC;QACtC,MAAM,SAAS,GAAG,WAAW,CAAC;QAE9B,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAE9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QAEpD,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QACjD,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEnD,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QAEhE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QAEzD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QAEtD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;;AAlxBa,eAAS,GAAW,OAAO,CAAC;AAC5B,gBAAU,GAAkB,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC","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}"]}
|