@amcharts/amcharts5 5.14.1 → 5.14.2
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/gantt/GanttCategoryAxis.d.ts.map +1 -1
- package/.internal/charts/gantt/GanttCategoryAxis.js +5 -9
- package/.internal/charts/gantt/GanttCategoryAxis.js.map +1 -1
- package/.internal/charts/gantt/GanttDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/gantt/GanttDefaultTheme.js +3 -3
- package/.internal/charts/gantt/GanttDefaultTheme.js.map +1 -1
- package/.internal/charts/gantt/GanttSeries.d.ts.map +1 -1
- package/.internal/charts/gantt/GanttSeries.js +16 -8
- package/.internal/charts/gantt/GanttSeries.js.map +1 -1
- package/.internal/charts/xy/axes/CategoryAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/CategoryAxis.js +13 -6
- package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
- package/.internal/core/Registry.js +1 -1
- package/.internal/core/Registry.js.map +1 -1
- package/.internal/core/Root.d.ts +1 -0
- package/.internal/core/Root.d.ts.map +1 -1
- package/.internal/core/Root.js +13 -1
- package/.internal/core/Root.js.map +1 -1
- package/CHANGELOG.md +11 -1
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GanttCategoryAxis.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/GanttCategoryAxis.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"GanttCategoryAxis.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/GanttCategoryAxis.ts"],"names":[],"mappings":"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"}
|
|
@@ -1146,15 +1146,7 @@ export class GanttCategoryAxis extends CategoryAxis {
|
|
|
1146
1146
|
bg.set("active", true);
|
|
1147
1147
|
}
|
|
1148
1148
|
const progressPie = dataItem.get("progressPie");
|
|
1149
|
-
|
|
1150
|
-
if (progressPie) {
|
|
1151
|
-
point = progressPie.toGlobal(point);
|
|
1152
|
-
point = this.toLocal(point);
|
|
1153
|
-
}
|
|
1154
|
-
this.xButton.setAll({
|
|
1155
|
-
y: point.y,
|
|
1156
|
-
x: point.x
|
|
1157
|
-
});
|
|
1149
|
+
progressPie === null || progressPie === void 0 ? void 0 : progressPie.children.push(this.xButton);
|
|
1158
1150
|
this.setRaw("selectedDataItem", dataItem);
|
|
1159
1151
|
if (this._xHideDP) {
|
|
1160
1152
|
this._xHideDP.dispose();
|
|
@@ -1169,6 +1161,10 @@ export class GanttCategoryAxis extends CategoryAxis {
|
|
|
1169
1161
|
this._delDp.dispose();
|
|
1170
1162
|
}
|
|
1171
1163
|
this._delDp = this.xButton.events.once("click", () => {
|
|
1164
|
+
const parent = this.xButton.parent;
|
|
1165
|
+
if (parent) {
|
|
1166
|
+
parent.children.removeValue(this.xButton);
|
|
1167
|
+
}
|
|
1172
1168
|
this.deleteDataItem(dataItem);
|
|
1173
1169
|
this.unselectDataItems();
|
|
1174
1170
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GanttCategoryAxis.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/GanttCategoryAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AxisRenderer } from \"../xy/axes/AxisRenderer\";\r\nimport type { GanttCategoryAxisRenderer } from \"./GanttCategoryAxisRenderer\";\r\nimport type { Container } from \"../../core/render/Container\";\r\nimport type { ProgressPie } from \"../../core/render/ProgressPie\";\r\nimport type { Gantt } from \"./Gantt\";\r\nimport type { AxisTick } from \"../xy/axes/AxisTick\";\r\nimport type { NumericStepper } from \"../../core/render/NumericStepper\";\r\nimport type { IGanttSeriesDataItem } from \"./GanttSeries\";\r\nimport type { Animation } from \"../../core/util/Entity\";\r\n\r\nimport { Rectangle } from \"../../core/render/Rectangle\";\r\nimport { CategoryAxis, ICategoryAxisSettings, ICategoryAxisPrivate, ICategoryAxisDataItem, ICategoryAxisEvents } from \"../xy/axes/CategoryAxis\";\r\nimport { Button, color, Color, DataItem, Graphics, IDisposer } from \"../../..\";\r\n\r\nimport * as $array from \"../../core/util/Array\";\r\nimport * as $type from \"../../core/util/Type\";\r\n\r\nexport interface IGanttCategoryAxisSettings<R extends AxisRenderer> extends ICategoryAxisSettings<R> {\r\n\r\n\t/**\r\n\t * Currently selected category data item, if any.\r\n\t */\r\n\tselectedDataItem?: DataItem<IGanttCategoryAxisDataItem>;\r\n\r\n\t/**\r\n\t * A field in data that holds parent id.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Category_data} for more info\r\n\t * @default \"parentId\"\r\n\t */\r\n\tparentIdField?: string;\r\n\r\n\t/**\r\n\t * A field in data that holds status whether the category is collapsed.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Category_data} for more info\r\n\t * @default \"collapsed\"\r\n\t */\r\n\tcollapsedField?: string;\r\n\r\n\t/**\r\n\t * Size of child categories relative to the top-level cell height. (`0` - `1`)\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Cell_height_for_child_categories} for more info\r\n\t * @default 0.8\r\n\t */\r\n\tchildCellSize?: number;\r\n\r\n\t/**\r\n\t * A shift in pixels to apply to child categories.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Cell_height_for_child_categories} for more info\r\n\t * @default 25\r\n\t */\r\n\tchildShift?: number;\r\n\r\n\t/**\r\n\t * A minimal height of the cell in pixels.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Cell_height} for more info\r\n\t * @default 70\r\n\t */\r\n\tminCellHeight?: number;\r\n\r\n\t/**\r\n\t * Field of a category name\r\n\t * @default \"name\"\r\n\t */\r\n\tnameField?: string;\r\n\r\n\t/**\r\n\t * Field of a category color\r\n\t * @default \"color\"\r\n\t */\r\n\tcolorField?: string;\r\n\r\n}\r\n\r\nexport interface IGanttCategoryAxisDataItem extends ICategoryAxisDataItem {\r\n\r\n\t/**\r\n\t * A container that holds all other elements of a axis label - label, controls, grip, etc.\r\n\t */\r\n\tcontainer?: Container;\r\n\r\n\t/**\r\n\t * A container that holds progress pie and duration stepper.\r\n\t */\r\n\tcontrolsContainer?: Container;\r\n\r\n\t/**\r\n\t * A grip for dragging the category.\r\n\t */\r\n\tgrip?: Rectangle;\r\n\r\n\t/**\r\n\t * A bullet to the left of a label (circle or triangle, if it has children)\r\n\t */\r\n\ttaskBullet?: Button;\r\n\r\n\t/**\r\n\t * A progress pie that shows progress of the task.\r\n\t */\r\n\tprogressPie?: ProgressPie;\r\n\r\n\t/**\r\n\t * Children of this category, if any.\r\n\t */\r\n\tchildren?: Array<DataItem<IGanttCategoryAxisDataItem>>;\r\n\r\n\t/**\r\n\t * Parent id of data item.\r\n\t */\r\n\tparentId?: string;\r\n\r\n\t/**\r\n\t * A reference to the parent category data item.\r\n\t */\r\n\tparent?: DataItem<IGanttCategoryAxisDataItem>;\r\n\r\n\t/**\r\n\t * Progress of the task, from `0` to `1`. If this item has children, this will be the average of all children's progress.\r\n\t */\r\n\tprogress?: number;\r\n\r\n\t/**\r\n\t * A stepper that allows to change task duration.\r\n\t */\r\n\tdurationStepper?: NumericStepper;\r\n\r\n\t/**\r\n\t * A flag indicating whether the category is collapsed.\r\n\t */\r\n\tcollapsed?: boolean;\r\n\r\n\t/**\r\n\t * Duration of the task (in days or other units, depending on `durationUnit` setting of a `Gantt`).\r\n\t */\r\n\tduration?: number;\r\n\r\n\t/**\r\n\t * Color of a task.\r\n\t */\r\n\tcolor?: Color\r\n\r\n\t/**\r\n\t * Custom color for the task, if any.\r\n\t */\r\n\tcustomColor?: Color;\r\n\r\n\t/**\r\n\t * Displayed name of a category.\r\n\t */\r\n\tname?: string;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tdeleting?: boolean;\r\n\r\n\t/**\r\n\t * A reference to the series data item.\r\n\t */\r\n\tseriesDataItem?: DataItem<IGanttSeriesDataItem>;\r\n}\r\n\r\n\r\nexport interface IGanttCategoryAxisPrivate extends ICategoryAxisPrivate { }\r\n\r\nexport interface IGanttCategoryAxisEvents extends ICategoryAxisEvents { }\r\n\r\n\r\n/**\r\n * A category axis that is used as a Y (vertical) axis for [[Gantt]] charts.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Category_vertical_axis} for more info\r\n * @since 5.14.0\r\n * @important\r\n */\r\nexport class GanttCategoryAxis<R extends GanttCategoryAxisRenderer> extends CategoryAxis<R> {\r\n\tpublic static className: string = \"GanttCategoryAxis\";\r\n\tpublic static classNames: Array<string> = CategoryAxis.classNames.concat([GanttCategoryAxis.className]);\r\n\r\n\tdeclare public _settings: IGanttCategoryAxisSettings<R>;\r\n\tdeclare public _privateSettings: IGanttCategoryAxisPrivate;\r\n\tdeclare public _dataItemSettings: IGanttCategoryAxisDataItem;\r\n\tdeclare public _events: IGanttCategoryAxisEvents;\r\n\r\n\tprotected _downX: number | undefined;\r\n\tprotected _downW: number | undefined;\r\n\tprotected _xHideDP: IDisposer | undefined;\r\n\tprotected _insertAfter: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\tprotected _makeChildOf: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\tprotected _draggedItem: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\tprotected _previousTick: AxisTick | undefined;\r\n\r\n\tprotected _delDp: IDisposer | undefined;\r\n\tprotected _firstDataItem!: DataItem<IGanttCategoryAxisDataItem>;\r\n\r\n\tprotected _updDP: IDisposer | undefined;\r\n\tprotected _dataChangeDp: IDisposer | undefined;\r\n\tprotected _treeDirty: boolean = false;\r\n\r\n\t/**\r\n\t * A reference to the parent [[Gantt]] chart.\r\n\t */\r\n\tpublic gantt?: Gantt;\r\n\r\n\t/**\r\n\t * A [[Button]] used for deleting categories.\r\n\t */\r\n\tpublic xButton: Button = this.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"xbutton\"],\r\n\t\ticon: Graphics.new(this._root, {\r\n\t\t\tthemeTags: [\"icon\"]\r\n\t\t})\r\n\t}));\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis.fields.push(\"parentId\", \"collapsed\", \"name\");\r\n\t\tsuper._afterNew();\r\n\r\n\t\tthis.events.on(\"wheel\", (event) => {\r\n\t\t\tthis.chart!.handleWheel(event);\r\n\t\t});\r\n\r\n\t\tthis.xButton.hide(0);\r\n\r\n\t\tconst renderer = this.get(\"renderer\");\r\n\t\tthis._firstDataItem = this.makeDataItem({ cellSize: 0.0001 });\r\n\t\tconst tick = renderer.makeTick(this._firstDataItem, []);\r\n\t\ttick.set(\"dy\", 0.5);\r\n\t\tconst grid = renderer.makeGrid(this._firstDataItem, []);\r\n\t\tgrid.set(\"dy\", 0.5);\r\n\r\n\t\tthis.labelsContainer.setAll({\r\n\t\t\tmaskContent: true\r\n\t\t});\r\n\r\n\t\tconst resizer = this.children.push(Rectangle.new(this._root, {\r\n\t\t\tthemeTags: [\"axisresizer\"]\r\n\t\t}))\r\n\r\n\t\tresizer.events.on(\"pointerdown\", (e) => {\r\n\t\t\tthis._downX = this.toLocal(e.point).x;\r\n\t\t\tthis._downW = this.width();\r\n\t\t})\r\n\r\n\t\tresizer.events.on(\"globalpointermove\", (e) => {\r\n\t\t\tif (this._downX !== undefined) {\r\n\t\t\t\tconst point = this.toLocal(e.point);\r\n\t\t\t\tconst dy = point.x - this._downX;\r\n\t\t\t\tif (this._downW !== undefined) {\r\n\t\t\t\t\tlet newWidth = this._downW + dy;\r\n\t\t\t\t\tnewWidth = Math.max(newWidth, this.get(\"minWidth\", 100));\r\n\t\t\t\t\tthis.labelsContainer.set(\"width\", newWidth);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tresizer.events.on(\"globalpointerup\", () => {\r\n\t\t\tthis._downX = undefined;\r\n\t\t})\r\n\r\n\t\tconst containersTemplate = renderer.containers.template;\r\n\r\n\t\tcontainersTemplate.events.on(\"dragged\", (e) => {\r\n\t\t\tthis.xButton.hide(0);\r\n\t\t\t// get all columns from series of this category and move them together\r\n\t\t\tconst dataItem = e.target.dataItem as DataItem<IGanttCategoryAxisDataItem>;\r\n\t\t\tconst container = e.target as Container;\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tconst deltaPosition = (e.target.y() - startY) / this.chart!.plotContainer.height() * (this.get(\"end\", 1) - this.get(\"start\", 0));\r\n\t\t\t\tdataItem.set(\"deltaPosition\", deltaPosition);\r\n\r\n\t\t\t\t// dragg all children together\r\n\t\t\t\tconst updateDeltaPositionRecursively = (dataItem: DataItem<IGanttCategoryAxisDataItem>, deltaPosition: number) => {\r\n\t\t\t\t\tconst children = dataItem.get(\"children\");\r\n\r\n\t\t\t\t\tif (children) {\r\n\t\t\t\t\t\t$array.each(children, (child) => {\r\n\t\t\t\t\t\t\tchild.set(\"deltaPosition\", deltaPosition);\r\n\t\t\t\t\t\t\tupdateDeltaPositionRecursively(child, deltaPosition);\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\tupdateDeltaPositionRecursively(dataItem, deltaPosition);\r\n\r\n\t\t\t\tconst tick = dataItem.get(\"tick\")\r\n\t\t\t\tconst grid = dataItem.get(\"grid\");\r\n\t\t\t\tconst dy = Math.ceil(startY - container.y());\r\n\r\n\t\t\t\tif (tick) {\r\n\t\t\t\t\tconst children = dataItem.get(\"children\");\r\n\t\t\t\t\tif (!children || children.length == 0) {\r\n\t\t\t\t\t\ttick.set(\"dy\", dy);\r\n\r\n\t\t\t\t\t\tif (grid) {\r\n\t\t\t\t\t\t\tgrid.set(\"dy\", dy);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst y = container.y();\r\n\r\n\t\t\t\t\t// Check if y is close to other containers and apply hover state\r\n\t\t\t\t\tconst allContainers = renderer.containers;\r\n\r\n\t\t\t\t\tif (this._makeChildOf) {\r\n\t\t\t\t\t\tthis._makeChildOf.get(\"container\")?.get(\"background\")?.unhover();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis._makeChildOf = undefined;\r\n\t\t\t\t\tfor (let i = 0; i < allContainers.length; i++) {\r\n\t\t\t\t\t\tconst otherContainer = allContainers.getIndex(i);\r\n\t\t\t\t\t\tif (otherContainer && otherContainer.isVisible() && otherContainer !== container) {\r\n\t\t\t\t\t\t\tconst otherDataItem = otherContainer.dataItem as DataItem<IGanttCategoryAxisDataItem>;\r\n\r\n\t\t\t\t\t\t\tif (otherDataItem.get(\"cellSize\", 0) > 0) {\r\n\t\t\t\t\t\t\t\t// Check if otherDataItem is already a child of the dragged item's container\r\n\t\t\t\t\t\t\t\tconst otherChildren = otherDataItem.get(\"children\");\r\n\t\t\t\t\t\t\t\tif (otherChildren) {\r\n\t\t\t\t\t\t\t\t\tif (otherChildren.indexOf(dataItem) !== -1) {\r\n\t\t\t\t\t\t\t\t\t\tcontinue; // Skip if the dragged item is already a child of the other item\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tconst background = otherContainer.get(\"background\");\r\n\t\t\t\t\t\t\t\tif (background) {\r\n\t\t\t\t\t\t\t\t\tconst otherY = otherContainer.y();\r\n\t\t\t\t\t\t\t\t\tif (Math.abs((y + container.height() / 2) - (otherY + otherContainer.height() / 2)) < 5) {\r\n\t\t\t\t\t\t\t\t\t\tbackground.hover();\r\n\t\t\t\t\t\t\t\t\t\tthis._makeChildOf = otherDataItem;\r\n\t\t\t\t\t\t\t\t\t}\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\r\n\r\n\t\t\t\t\tif (!this._makeChildOf) {\r\n\t\t\t\t\t\tif (this._previousTick) {\r\n\t\t\t\t\t\t\tthis._previousTick.states.applyAnimate(\"default\");\r\n\t\t\t\t\t\t\tthis._previousTick = undefined;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet closestDataItem: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\t\t\t\t\t\tlet closestDistance = Infinity;\r\n\t\t\t\t\t\t//find closest tick\r\n\t\t\t\t\t\tfor (let i = renderer.ticks.length; i >= 0; i--) {\r\n\t\t\t\t\t\t\tconst t = renderer.ticks.getIndex(i);\r\n\t\t\t\t\t\t\tif (t && tick.isVisible()) {\r\n\t\t\t\t\t\t\t\tconst dataItem = t.dataItem as DataItem<IGanttCategoryAxisDataItem>;\r\n\t\t\t\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\t\t\t\tconst index = dataItem.get(\"index\", 0);\r\n\r\n\t\t\t\t\t\t\t\t\tif (index >= this.startIndex() && index <= this.endIndex()) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (dataItem.get(\"cellSize\", 0) == 0) {\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue; // Skip if the other item is collapsed\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// recursively check if dataItem is not a child of the dragged item\r\n\t\t\t\t\t\t\t\t\t\tlet isChild = false;\r\n\t\t\t\t\t\t\t\t\t\tlet parent = dataItem.get(\"parent\");\r\n\t\t\t\t\t\t\t\t\t\twhile (parent) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (parent === dataItem) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tisChild = true;\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tparent = parent.get(\"parent\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (isChild) {\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tconst distance = Math.abs(t.y() + t.get(\"dy\", 0) - y - container.height() / 2);\r\n\t\t\t\t\t\t\t\t\t\tif (distance < closestDistance) {\r\n\t\t\t\t\t\t\t\t\t\t\tclosestDistance = distance;\r\n\t\t\t\t\t\t\t\t\t\t\tclosestDataItem = t.dataItem as DataItem<IGanttCategoryAxisDataItem>;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (Math.abs(dy) < 10) {\r\n\t\t\t\t\t\t\tclosestDataItem = undefined;\r\n\t\t\t\t\t\t\tthis._insertAfter = undefined;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (closestDataItem && closestDataItem !== dataItem) {\r\n\t\t\t\t\t\t\t// also check if closestDataItem is not a child of the dragged item\r\n\t\t\t\t\t\t\tlet isChild = false;\r\n\t\t\t\t\t\t\tlet parent = closestDataItem.get(\"parent\");\r\n\t\t\t\t\t\t\twhile (parent) {\r\n\t\t\t\t\t\t\t\tif (parent === dataItem) {\r\n\t\t\t\t\t\t\t\t\tisChild = true;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tparent = parent.get(\"parent\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (isChild) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// color tick\r\n\t\t\t\t\t\t\tconst tick = closestDataItem.get(\"tick\")\r\n\t\t\t\t\t\t\tif (tick) {\r\n\t\t\t\t\t\t\t\ttick.hover();\r\n\t\t\t\t\t\t\t\tthis._previousTick = tick;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis._insertAfter = closestDataItem;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (this._previousTick) {\r\n\t\t\t\t\t\t\tthis._previousTick.unhover();\r\n\t\t\t\t\t\t\tthis._previousTick = undefined;\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\tcontainersTemplate.events.on(\"dragstop\", (e) => {\r\n\t\t\tthis._draggedItem = e.target.dataItem as DataItem<IGanttCategoryAxisDataItem>;\r\n\t\t\tthis._sortCategoryAxis();\r\n\r\n\t\t\tif (this._makeChildOf) {\r\n\t\t\t\tthis._makeChildOf.get(\"container\")?.get(\"background\")?.unhover();\r\n\r\n\t\t\t\tif (this._makeChildOf.get(\"collapsed\")) {\r\n\t\t\t\t\tthis.toggleCollapse(this._makeChildOf, true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._updateCellSizes();\r\n\t\t\t}\r\n\r\n\t\t\t// disable interactivity of all containers\r\n\t\t\tconst renderer = this.get(\"renderer\");\r\n\t\t\trenderer.containers.each((container) => {\r\n\t\t\t\tcontainer.set(\"forceInactive\", false);\r\n\t\t\t});\r\n\t\t})\r\n\r\n\t\tlet startY: number = 0;\r\n\t\tcontainersTemplate.events.on(\"dragstart\", (e) => {\r\n\t\t\t// disable interactivity of all containers\r\n\t\t\tconst renderer = this.get(\"renderer\");\r\n\t\t\trenderer.containers.each((container) => {\r\n\t\t\t\tcontainer.set(\"forceInactive\", true);\r\n\t\t\t});\r\n\t\t\tstartY = e.target.y();\r\n\t\t})\r\n\t}\r\n\r\n\tpublic _changed() {\r\n\t\tsuper._changed();\r\n\t\tif (this.isDirty(\"selectedDataItem\")) {\r\n\t\t\tthis.selectDataItem(this.get(\"selectedDataItem\"));\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _processBullet(dataItem: DataItem<IGanttCategoryAxisDataItem>) {\r\n\t\tsuper._processBullet(dataItem);\r\n\r\n\t\tconst parent = dataItem.get(\"parent\");\r\n\t\tif (parent && parent.get(\"collapsed\")) {\r\n\t\t\tdataItem.get(\"container\")?.hide();\r\n\t\t\tdataItem.get(\"tick\")?.hide();\r\n\t\t\tdataItem.get(\"grid\")?.hide();\r\n\t\t\tdataItem.set(\"finalCellSize\", 0);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateChildren(): void {\r\n\t\tsuper._updateChildren();\r\n\r\n\r\n\t\tif (this._dataChanged) {\r\n\t\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\t\tconst parentId = dataItem.get(\"parentId\");\r\n\t\t\t\tif (!parentId) {\r\n\t\t\t\t\tlet fill = dataItem.get(\"customColor\", dataItem.get(\"color\"));\r\n\t\t\t\t\tconst dataContext = dataItem.dataContext as any;\r\n\t\t\t\t\tif (fill === undefined && dataContext && dataContext.color !== undefined) {\r\n\t\t\t\t\t\tfill = color(dataContext.color);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!fill) {\r\n\t\t\t\t\t\tfill = this.gantt?._nextColor();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdataItem.setRaw(\"color\", fill);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\t\tconst parentId = dataItem.get(\"parentId\");\r\n\r\n\t\t\t\tif (parentId) {\r\n\t\t\t\t\t// Find the parent data item by category\r\n\t\t\t\t\tconst parent = this.getDataItemById(parentId);\r\n\t\t\t\t\tif (parent) {\r\n\t\t\t\t\t\tdataItem.setRaw(\"parent\", parent);\r\n\t\t\t\t\t\tdataItem.setRaw(\"cellSize\", Math.pow(this.get(\"childCellSize\", 1), this._getItemDepth(dataItem)));\r\n\t\t\t\t\t\tdataItem.setRaw(\"finalCellSize\", dataItem.get(\"cellSize\"));\r\n\r\n\t\t\t\t\t\tlet fill = dataItem.get(\"customColor\", dataItem.get(\"color\"));\r\n\t\t\t\t\t\tconst dataContext = dataItem.dataContext as any;\r\n\t\t\t\t\t\tif (fill === undefined && dataContext && dataContext.color !== undefined) {\r\n\t\t\t\t\t\t\tfill = color(dataContext.color);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (fill == undefined) {\r\n\t\t\t\t\t\t\tdataItem.setRaw(\"color\", parent.get(\"customColor\", parent.get(\"color\")));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tdataItem.setRaw(\"color\", fill);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet children = parent.get(\"children\");\r\n\t\t\t\t\t\tif (!children) {\r\n\t\t\t\t\t\t\tchildren = [];\r\n\t\t\t\t\t\t\tparent.set(\"children\", children);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t$array.move(children, dataItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tdataItem.setRaw(\"cellSize\", 1);\r\n\t\t\t\t\tdataItem.setRaw(\"finalCellSize\", 1);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\t\tthis.toggleCollapse(dataItem, dataItem.get(\"collapsed\", false), 0);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (this._treeDirty) {\r\n\t\t\tthis._updateTree();\r\n\t\t}\r\n\r\n\t\tconst renderer = this.get(\"renderer\");\r\n\r\n\t\tconst firstDataItem = this._firstDataItem;\r\n\t\tif (firstDataItem) {\r\n\t\t\trenderer.updateTick(firstDataItem.get(\"tick\"), 0);\r\n\t\t\trenderer.updateGrid(firstDataItem.get(\"grid\"), 0);\r\n\t\t}\r\n\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tconst progressPie = dataItem.get(\"progressPie\");\r\n\t\t\tif (progressPie) {\r\n\t\t\t\tconst progress = dataItem.get(\"progress\", 0);\r\n\t\t\t\tprogressPie.set(\"value\", progress);\r\n\r\n\t\t\t\tconst color = dataItem.get(\"customColor\", dataItem.get(\"color\"));\r\n\r\n\t\t\t\t(dataItem.dataContext as any).color = color?.toString();\r\n\t\t\t\tprogressPie.slice.set(\"fill\", color);\r\n\t\t\t\tprogressPie.backgroundSlice.set(\"fill\", color);\r\n\t\t\t\tprogressPie.label.set(\"fill\", color);\r\n\t\t\t}\r\n\r\n\t\t\tconst cellSize = dataItem.get(\"cellSize\", 1);\r\n\t\t\tconst container = dataItem.get(\"container\");\r\n\t\t\tif (container) {\r\n\t\t\t\tif (cellSize < 0.0001) {\r\n\t\t\t\t\tcontainer.setPrivate(\"visible\", false);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tcontainer.setPrivate(\"visible\", true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst index = dataItem.get(\"index\", 0);\r\n\t\t\t\tconst p0 = this.indexToPosition(index, 0);\r\n\t\t\t\tconst p1 = this.indexToPosition(index, 1);\r\n\r\n\t\t\t\tconst y0 = renderer.positionToCoordinate(p0);\r\n\t\t\t\tconst y1 = renderer.positionToCoordinate(p1);\r\n\r\n\t\t\t\tcontainer.set(\"height\", Math.abs(y1 - y0));\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tpublic _clearDirty(): void {\r\n\t\tsuper._clearDirty();\r\n\t\tthis._treeDirty = false;\r\n\t}\r\n\r\n\tpublic getSeriesDataItem(dataItem: DataItem<IGanttCategoryAxisDataItem>): DataItem<IGanttSeriesDataItem> | undefined {\r\n\t\tif (dataItem.get(\"seriesDataItem\")) {\r\n\t\t\treturn dataItem.get(\"seriesDataItem\");\r\n\t\t}\r\n\t\tconst gantt = this.gantt;\r\n\t\tif (gantt) {\r\n\t\t\tconst di = gantt.series.getDataItemById(dataItem.get(\"id\")!);\r\n\t\t\tif (di) {\r\n\t\t\t\tdataItem.set(\"seriesDataItem\", di);\r\n\t\t\t\treturn di;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms the axis to relative locations.\r\n\t *\r\n\t * Both `start` and `end` are relative: 0 means start of the axis, 1 - end.\r\n\t *\r\n\t * @param start Relative start\r\n\t * @param end Relative end\r\n\t * @param duration Duration of the zoom animation in milliseconds\r\n\t * @return Zoom animation\r\n\t */\r\n\tpublic zoom(start: number, end: number, duration?: number): Animation<this[\"_settings\"][\"start\"]> | Animation<this[\"_settings\"][\"end\"]> | undefined {\r\n\t\tif (this.get(\"zoomable\", true)) {\r\n\t\t\tthis._updateFinals(start, end);\r\n\r\n\t\t\tif (this.get(\"start\") !== start || this.get(\"end\") != end) {\r\n\t\t\t\tlet sAnimation = this._sAnimation;\r\n\t\t\t\tlet eAnimation = this._eAnimation;\r\n\r\n\t\t\t\tif (start > end) {\r\n\t\t\t\t\t[start, end] = [end, start];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet maxDeviation = this.get(\"maxDeviation\", 0.5) * Math.min(1, (end - start));\r\n\r\n\t\t\t\tif (start < - maxDeviation) {\r\n\t\t\t\t\tstart = -maxDeviation;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (end > 1 + maxDeviation) {\r\n\t\t\t\t\tend = 1 + maxDeviation;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!$type.isNumber(duration)) {\r\n\t\t\t\t\tduration = this.get(\"interpolationDuration\", 0);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (((sAnimation && sAnimation.playing && sAnimation.to == start) || this.get(\"start\") == start) && ((eAnimation && eAnimation.playing && eAnimation.to == end) || this.get(\"end\") == end)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (duration > 0) {\r\n\t\t\t\t\tlet easing = this.get(\"interpolationEasing\");\r\n\t\t\t\t\tlet sAnimation, eAnimation;\r\n\t\t\t\t\tif (this.get(\"start\") != start) {\r\n\t\t\t\t\t\tsAnimation = this.animate({ key: \"start\", to: start, duration: duration, easing: easing });\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.get(\"end\") != end) {\r\n\t\t\t\t\t\teAnimation = this.animate({ key: \"end\", to: end, duration: duration, easing: easing });\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis._sAnimation = sAnimation;\r\n\t\t\t\t\tthis._eAnimation = eAnimation;\r\n\r\n\t\t\t\t\tif (sAnimation) {\r\n\t\t\t\t\t\treturn sAnimation;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (eAnimation) {\r\n\t\t\t\t\t\treturn eAnimation;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.set(\"start\", start);\r\n\t\t\t\t\tthis.set(\"end\", end);\r\n\t\t\t\t\tthis.root.events.once(\"frameended\", () => {\r\n\t\t\t\t\t\tthis.markDirtyKey(\"start\");\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this._sAnimation) {\r\n\t\t\t\t\tthis._sAnimation.stop();\r\n\t\t\t\t}\r\n\t\t\t\tif (this._eAnimation) {\r\n\t\t\t\t\tthis._eAnimation.stop();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _afterDataChange(): void {\r\n\t\tsuper._afterDataChange();\r\n\t\tconst chart = this.chart;\r\n\r\n\t\tif (chart) {\r\n\t\t\tconst availableHeight = chart.plotContainer.height();\r\n\r\n\t\t\tconst minCellHeight = this.get(\"minCellHeight\", 70);\r\n\t\t\tconst maxZoomCount = Math.floor(availableHeight / minCellHeight);\r\n\t\t\tthis.set(\"maxZoomCount\", maxZoomCount);\r\n\t\t\tthis.set(\"minZoomCount\", maxZoomCount);\r\n\r\n\t\t\t// to avoid many items to be drawn\r\n\t\t\tif (this.get(\"start\") == 0 && this.get(\"end\") == 1) {\r\n\t\t\t\tthis.zoomToIndexes(0, maxZoomCount);\r\n\t\t\t\tif (this._dataChangeDp) {\r\n\t\t\t\t\tthis._dataChangeDp.dispose();\r\n\t\t\t\t}\r\n\t\t\t\tthis._dataChangeDp = this.root.events.once(\"frameended\", () => {\r\n\t\t\t\t\tthis.adjustZoom();\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic markDirtyTree(): void {\r\n\t\tthis._treeDirty = true;\r\n\t\tthis.markDirty();\r\n\t}\r\n\r\n\r\n\tpublic _sortCategoryAxis(): void {\r\n\t\tlet insertAfter = this._insertAfter;\r\n\t\tconst draggedItem = this._draggedItem;\r\n\r\n\t\tif (this._previousTick) {\r\n\t\t\tthis._previousTick.states.applyAnimate(\"default\");\r\n\t\t\tthis._previousTick = undefined;\r\n\t\t}\r\n\r\n\t\tif (!draggedItem) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst currentParent = draggedItem.get(\"parent\");\r\n\t\tconst currentDepth = this._getItemDepth(draggedItem);\r\n\r\n\t\tif (this._makeChildOf) {\r\n\t\t\tif (this._makeChildOf && draggedItem !== this._makeChildOf) {\r\n\t\t\t\tdraggedItem.set(\"parent\", this._makeChildOf);\r\n\t\t\t\tlet children = this._makeChildOf.get(\"children\");\r\n\t\t\t\tif (!children) {\r\n\t\t\t\t\tchildren = this._makeChildOf.set(\"children\", []);\r\n\t\t\t\t}\r\n\t\t\t\tif (children && !children.includes(draggedItem)) {\r\n\t\t\t\t\tchildren.unshift(draggedItem);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// assign parent color to dragged item if it doesn't have custom color\t\t\t\r\n\t\t\t\tif (!draggedItem.get(\"customColor\")) {\r\n\t\t\t\t\tconst parentColor = this._makeChildOf.get(\"customColor\", this._makeChildOf.get(\"color\"));\r\n\t\t\t\t\tdraggedItem.setRaw(\"color\", parentColor);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst parentSeriesDataItem = this.getSeriesDataItem(this._makeChildOf);\r\n\t\t\t\tif (parentSeriesDataItem) {\r\n\t\t\t\t\tparentSeriesDataItem.setAll({\r\n\t\t\t\t\t\topenValueX: undefined,\r\n\t\t\t\t\t\tvalueX: undefined,\r\n\t\t\t\t\t\tduration: draggedItem.get(\"duration\", 0),\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tinsertAfter = this._makeChildOf;\r\n\t\t}\r\n\t\telse if (insertAfter && draggedItem !== insertAfter) {\r\n\t\t\tconst childrenOfInsertAfter = insertAfter.get(\"children\");\r\n\t\t\tconst parentOfInsertAfter = insertAfter.get(\"parent\");\r\n\r\n\t\t\t// if insertAfter has children\r\n\t\t\tif (childrenOfInsertAfter && childrenOfInsertAfter.length > 0 && !insertAfter.get(\"collapsed\", false)) {\r\n\t\t\t\t// make it child of insertAfter\r\n\t\t\t\tdraggedItem.set(\"parent\", insertAfter);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// if insertAfter has parent\r\n\t\t\t\tif (parentOfInsertAfter) {\r\n\t\t\t\t\tconst childrenOfParentOfInsertAfter = parentOfInsertAfter.get(\"children\");\r\n\r\n\t\t\t\t\tif (childrenOfParentOfInsertAfter) {\r\n\t\t\t\t\t\tconst lastChild = childrenOfParentOfInsertAfter[childrenOfParentOfInsertAfter.length - 1];\r\n\t\t\t\t\t\t// if insertAfter is last child of its parent, o not change parent of dragged item\r\n\t\t\t\t\t\tif (insertAfter == lastChild) {\r\n\t\t\t\t\t\t\t// if it is already child of parentOfInsertAfter, do not change parent\r\n\t\t\t\t\t\t\tif (draggedItem.get(\"parent\") === parentOfInsertAfter) {\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t// get children of one level up\r\n\t\t\t\t\t\t\t\tconst nextParent = parentOfInsertAfter.get(\"parent\");\r\n\t\t\t\t\t\t\t\tif (nextParent) {\r\n\t\t\t\t\t\t\t\t\tconst nextChildren = nextParent.get(\"children\");\r\n\t\t\t\t\t\t\t\t\tif (nextChildren) {\r\n\t\t\t\t\t\t\t\t\t\tdraggedItem.set(\"parent\", nextParent);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tif (draggedItem.get(\"parent\") !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\tdraggedItem.set(\"parent\", undefined);\r\n\t\t\t\t\t\t\t\t\t\tthis._setNewColor(draggedItem);\r\n\t\t\t\t\t\t\t\t\t}\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\telse {\r\n\t\t\t\t\t\t\tif (childrenOfInsertAfter && !insertAfter.get(\"collapsed\", false)) {\r\n\t\t\t\t\t\t\t\tdraggedItem.set(\"parent\", insertAfter);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tdraggedItem.set(\"parent\", parentOfInsertAfter);\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\t\t\t\telse {\r\n\t\t\t\t\t// if insertAfter has no parent, do not change parent of dragged item\r\n\t\t\t\t\tif (draggedItem.get(\"parent\") !== undefined) {\r\n\t\t\t\t\t\tdraggedItem.set(\"parent\", undefined);\r\n\t\t\t\t\t\tthis._setNewColor(draggedItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst newParent = draggedItem.get(\"parent\");\r\n\t\t\tif (newParent) {\r\n\t\t\t\t// assign parent color to dragged item if it doesn't have custom color\t\t\t\r\n\t\t\t\tif (!draggedItem.get(\"customColor\")) {\r\n\t\t\t\t\tconst parentColor = newParent.get(\"customColor\", newParent.get(\"color\"));\r\n\t\t\t\t\tdraggedItem.setRaw(\"color\", parentColor);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst newParentChildren = newParent.get(\"children\");\r\n\t\t\t\tif (newParentChildren) {\r\n\t\t\t\t\tif (newParentChildren.indexOf(insertAfter) !== -1) {\r\n\t\t\t\t\t\t$array.move(newParentChildren, draggedItem, newParentChildren.indexOf(insertAfter) + 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (newParent == insertAfter) {\r\n\t\t\t\t\t\t\tnewParentChildren.unshift(draggedItem);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tnewParentChildren.push(draggedItem);\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// remove from current parent children \r\n\t\tif (currentParent && currentParent != draggedItem.get(\"parent\")) {\r\n\t\t\tconst currentChildren = currentParent.get(\"children\");\r\n\t\t\tif (currentChildren) {\r\n\t\t\t\tconst index = currentChildren.indexOf(draggedItem);\r\n\t\t\t\tif (index !== -1) {\r\n\t\t\t\t\t$array.remove(currentChildren, draggedItem);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (insertAfter) {\r\n\t\t\tconst insertAfterIndex = this.dataItems.indexOf(insertAfter);\r\n\t\t\tconst currentIndex = this.dataItems.indexOf(draggedItem);\r\n\r\n\t\t\tconst updateChildrenIndexes = (dataItem: DataItem<IGanttCategoryAxisDataItem>, index: number) => {\r\n\t\t\t\tif (currentIndex >= insertAfterIndex) {\r\n\t\t\t\t\tindex++;\r\n\t\t\t\t\t$array.move(this.dataItems, dataItem, index);\r\n\t\t\t\t\tconst children = dataItem.get(\"children\");\r\n\t\t\t\t\tif (children) {\r\n\t\t\t\t\t\t$array.eachReverse(children, (child) => {\r\n\t\t\t\t\t\t\tupdateChildrenIndexes(child, index);\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\telse {\r\n\t\t\t\t\t$array.move(this.dataItems, dataItem, index);\r\n\t\t\t\t\tconst children = dataItem.get(\"children\");\r\n\t\t\t\t\tif (children) {\r\n\t\t\t\t\t\t$array.each(children, (child) => {\r\n\t\t\t\t\t\t\tupdateChildrenIndexes(child, index);\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\r\n\t\t\tif (this._getItemDepth(draggedItem) != currentDepth) {\r\n\t\t\t\tconst seriesDataItem = this.getSeriesDataItem(draggedItem);\r\n\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\tthis.gantt?.series.disposeLinks(seriesDataItem);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tupdateChildrenIndexes(draggedItem, insertAfterIndex);\r\n\t\t}\r\n\r\n\t\tthis.markDirtyTree();\r\n\r\n\t\tconst easing = this.get(\"interpolationEasing\");\r\n\t\tconst duration = this.get(\"interpolationDuration\", 0);\r\n\r\n\t\t$array.each(this.dataItems, (axisItem, index) => {\r\n\t\t\tconst container = axisItem.get(\"container\");\r\n\t\t\tif (container) {\r\n\t\t\t\tlet currentPosition = this.coordinateToPosition(container.y() + container.height() / 2);\r\n\t\t\t\tlet newPosition = this.indexToPosition(index) - axisItem.get(\"deltaPosition\", 0);\r\n\t\t\t\tlet deltaPosition = newPosition - currentPosition;\r\n\t\t\t\taxisItem.set(\"deltaPosition\", -deltaPosition);\r\n\t\t\t\taxisItem.animate({ key: \"deltaPosition\", to: 0, duration: duration, easing: easing });\r\n\t\t\t\taxisItem.get(\"tick\")?.animate({ key: \"dy\", to: 0, duration: duration, easing: easing });\r\n\t\t\t\taxisItem.get(\"grid\")?.animate({ key: \"dy\", to: 0, duration: duration, easing: easing });\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tpublic _setNewColor(dataItem: DataItem<IGanttCategoryAxisDataItem>, color?: Color): void {\r\n\t\tif (!color) {\r\n\t\t\tcolor = this.gantt?._nextColor();\r\n\t\t}\r\n\t\tdataItem.set(\"color\", color);\r\n\r\n\t\tconst children = dataItem.get(\"children\");\r\n\r\n\t\tif (children && children.length > 0) {\r\n\t\t\t$array.each(children, (child) => {\r\n\t\t\t\tthis._setNewColor(child, color);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateTree(): void {\r\n\t\tconst gantt = this.gantt;\r\n\r\n\t\tif (gantt) {\r\n\t\t\t$array.each(gantt.series.dataItems, (seriesDataItem) => {\r\n\t\t\t\tseriesDataItem.set(\"children\", []);\r\n\t\t\t\tseriesDataItem.set(\"parent\", undefined);\r\n\t\t\t})\r\n\r\n\t\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\t\tconst parent = dataItem.get(\"parent\");\r\n\r\n\t\t\t\tif (parent) {\r\n\t\t\t\t\tconst id = dataItem.get(\"id\")!;\r\n\t\t\t\t\tconst parentId = parent.get(\"id\")!;\r\n\r\n\t\t\t\t\tconst seriesDataItem = gantt.series.getDataItemById(id);\r\n\r\n\t\t\t\t\tdataItem.set(\"parentId\", parentId);\r\n\r\n\t\t\t\t\tconst parentSeriesDataItem = gantt.series.getDataItemById(parentId);\r\n\r\n\t\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\t\tif (parentSeriesDataItem) {\r\n\t\t\t\t\t\t\tseriesDataItem.set(\"parent\", parentSeriesDataItem);\r\n\r\n\t\t\t\t\t\t\tlet children = parentSeriesDataItem.get(\"children\", []);\r\n\t\t\t\t\t\t\t$array.move(children, seriesDataItem);\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\r\n\t\t\t// hide grips for those with children\r\n\t\t\t$array.each(gantt.series.dataItems, (seriesDataItem) => {\r\n\t\t\t\tconst children = seriesDataItem.get(\"children\");\r\n\t\t\t\tconst startGrip = seriesDataItem.get(\"startGrip\");\r\n\t\t\t\tconst endGrip = seriesDataItem.get(\"endGrip\");\r\n\t\t\t\tif (startGrip && endGrip) {\r\n\t\t\t\t\tif (!children || children.length === 0) {\r\n\t\t\t\t\t\tstartGrip.set(\"forceHidden\", false);\r\n\t\t\t\t\t\tendGrip.set(\"forceHidden\", false);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tstartGrip.set(\"forceHidden\", true);\r\n\t\t\t\t\t\tendGrip.set(\"forceHidden\", true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tthis.data.values.length = 0;\r\n\t\t\tgantt.series.data.values.length = 0;\r\n\r\n\t\t\t$array.each(this.dataItems, (dataItem, index) => {\r\n\t\t\t\tdataItem.setRaw(\"index\", index);\r\n\t\t\t\tthis.data.values.push(dataItem.dataContext);\r\n\r\n\t\t\t\tconst seriesDataItem = this.getSeriesDataItem(dataItem);\r\n\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\tgantt.series.data.values.push(seriesDataItem?.dataContext);\r\n\t\t\t\t\t$array.move(gantt.series.dataItems, seriesDataItem);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis._updateCellSizes();\t\t\t// all bullets exept the first one\r\n\t\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\t\tthis._updateBullet(dataItem);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateCellSizes(duration?: number): void {\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tif (duration === undefined) {\r\n\t\t\t\tduration = this.get(\"interpolationDuration\", 0);\r\n\t\t\t}\r\n\r\n\t\t\tconst depth = this._getItemDepth(dataItem);\r\n\t\t\tlet cellSize = this.get(\"childCellSize\", 1);\r\n\t\t\tconst parent = dataItem.get(\"parent\");\r\n\t\t\tif (parent && parent.get(\"collapsed\", false)) {\r\n\t\t\t\tcellSize = 0;\r\n\t\t\t}\r\n\r\n\t\t\tcellSize = Math.pow(cellSize, depth);\r\n\r\n\t\t\tif (dataItem.get(\"deleting\")) {\r\n\t\t\t\tcellSize = 0;\r\n\t\t\t}\r\n\r\n\t\t\t//dataItem.set(\"cellSize\", cellSize);\r\n\t\t\tif (dataItem.get(\"cellSize\", 1) != cellSize) {\r\n\t\t\t\tdataItem.set(\"finalCellSize\", cellSize);\r\n\t\t\t\tdataItem.animate({ key: \"cellSize\", to: cellSize, duration: duration!, easing: this.get(\"interpolationEasing\") });\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (this._dataChangeDp) {\r\n\t\t\tthis._dataChangeDp.dispose();\r\n\t\t}\r\n\t\tthis._dataChangeDp = this.root.events.once(\"frameended\", () => {\r\n\t\t\tthis.adjustZoom();\r\n\t\t})\r\n\t}\r\n\r\n\tpublic _updateBullet(dataItem: DataItem<IGanttCategoryAxisDataItem>): void {\r\n\t\tconst taskBullet = dataItem.get(\"taskBullet\");\r\n\r\n\t\tif (taskBullet) {\r\n\t\t\tconst depth = this._getItemDepth(dataItem);\r\n\t\t\tconst children = dataItem.get(\"children\");\r\n\r\n\t\t\ttaskBullet.setAll({\r\n\t\t\t\tmarginLeft: this.get(\"childShift\", 20) * depth\r\n\t\t\t});\r\n\r\n\t\t\tconst collapsed = dataItem.get(\"collapsed\", false);\r\n\t\t\tconst icon = taskBullet.get(\"icon\");\r\n\r\n\t\t\tlet hasChildren = false;\r\n\t\t\tif (children && children.length > 0) {\r\n\t\t\t\thasChildren = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (icon) {\r\n\t\t\t\tif (hasChildren) {\r\n\t\t\t\t\ttaskBullet.set(\"disabled\", false);\r\n\t\t\t\t\tthis.root.events.once(\"frameended\", () => {\r\n\t\t\t\t\t\ttaskBullet.set(\"active\", !collapsed);\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ttaskBullet.set(\"disabled\", true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Toggles collapse state of a data item.\r\n\t * @param dataItem \r\n\t * @param collapse \r\n\t * @param duration \r\n\t */\r\n\tpublic toggleCollapse(dataItem: DataItem<IGanttCategoryAxisDataItem>, collapse?: boolean, duration?: number): void {\r\n\t\tif (dataItem && dataItem.get(\"collapsed\", false) !== collapse) {\r\n\r\n\t\t\tconst children = dataItem.get(\"children\");\r\n\t\t\tdataItem.set(\"collapsed\", collapse);\r\n\r\n\t\t\tif (children && children.length > 0) {\r\n\r\n\t\t\t\t$array.each(children, (child) => {\r\n\t\t\t\t\tconst container = child.get(\"container\")!;\r\n\t\t\t\t\tconst grid = child.get(\"grid\")!;\r\n\t\t\t\t\tconst tick = child.get(\"tick\")!;\r\n\r\n\t\t\t\t\tif (container) {\r\n\t\t\t\t\t\tif (collapse) {\r\n\t\t\t\t\t\t\tcontainer.hide();\r\n\t\t\t\t\t\t\tgrid.hide();\r\n\t\t\t\t\t\t\ttick.hide();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tcontainer.show();\r\n\t\t\t\t\t\t\tgrid.show();\r\n\t\t\t\t\t\t\ttick.show();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst gantt = this.gantt;\r\n\t\t\t\t\tif (gantt && gantt.series) {\r\n\t\t\t\t\t\tconst series = gantt.series;\r\n\t\t\t\t\t\tconst seriesDataItem = series.dataItems.find((item) => item.get(\"categoryY\") === child.get(\"category\"));\r\n\t\t\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\t\t\tif (collapse) {\r\n\t\t\t\t\t\t\t\tseriesDataItem.hide();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tseriesDataItem.show();\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\r\n\t\t\t\t\tthis.toggleCollapse(child, collapse, duration);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis._updateBullet(dataItem);\r\n\r\n\t\t\tif (this._updDP) {\r\n\t\t\t\tthis._updDP.dispose();\r\n\t\t\t}\r\n\t\t\tthis._updDP = this.root.events.once(\"frameended\", () => {\r\n\t\t\t\tthis._updateCellSizes(duration);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Expands all categories in the axis.\r\n\t */\r\n\tpublic expandAll(): void {\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tif (dataItem.get(\"collapsed\", false)) {\r\n\t\t\t\tthis.toggleCollapse(dataItem, false);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Collapses all categories in the axis.\r\n\t */\r\n\tpublic collapseAll(): void {\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tif (!dataItem.get(\"collapsed\", false)) {\r\n\t\t\t\tthis.toggleCollapse(dataItem, true);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Deletes all data items from the axis.\r\n\t */\r\n\tpublic deleteAll(): void {\r\n\t\tthis.data.clear();\r\n\t\tthis.gantt?.series.data.clear();\r\n\t\tthis.selectDataItem(undefined);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Deletes a data item from the axis.\r\n\t *\r\n\t * @param dataItem Data item to delete\r\n\t */\r\n\tpublic deleteDataItem(dataItem: DataItem<IGanttCategoryAxisDataItem>, child?: boolean): void {\r\n\t\tconst series = this.gantt?.series;\r\n\r\n\t\tconst children = dataItem.get(\"children\");\r\n\t\tif (children && children.length > 0) {\r\n\t\t\tfor (let i = children.length - 1; i >= 0; i--) {\r\n\t\t\t\tthis.deleteDataItem(children[i], true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdataItem.set(\"deleting\", true);\r\n\r\n\t\tif (!child) {\r\n\t\t\tthis._updateCellSizes();\r\n\t\t}\r\n\r\n\t\tconst container = dataItem.get(\"container\");\r\n\r\n\t\tif (container) {\r\n\t\t\tconst promise = container.hide();\r\n\t\t\tpromise.then(() => {\r\n\t\t\t\tif (series && seriesDataItem) {\r\n\t\t\t\t\tseries.setPrivate(\"minX\", undefined);\r\n\t\t\t\t\tseries.setPrivate(\"maxX\", undefined);\r\n\t\t\t\t\tseries.data.removeValue(seriesDataItem.dataContext);\r\n\t\t\t\t}\r\n\t\t\t\tthis.data.removeValue(dataItem.dataContext);\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\t\tlet seriesDataItem: DataItem<IGanttSeriesDataItem> | undefined;\r\n\t\tif (series) {\r\n\t\t\tseriesDataItem = this.getSeriesDataItem(dataItem);\r\n\t\t\tif (seriesDataItem) {\r\n\t\t\t\tseriesDataItem.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Toggles progress pie for a data item. Toggling means that progress pie\r\n\t * will animate to 1 if it was less than 1, or animate to previous progress\r\n\t * value if it was 1.\r\n\t *\r\n\t * @param dataItem Data item to toggle progress pie for\r\n\t */\r\n\tpublic toggleProgressPie(dataItem?: DataItem<IGanttCategoryAxisDataItem>, value?: number): void {\r\n\t\tif (dataItem) {\r\n\t\t\tconst children = dataItem.get(\"children\");\r\n\t\t\tif (children && children.length > 0) {\r\n\r\n\t\t\t\tconst currentValue = dataItem.get(\"progress\", 0);\r\n\t\t\t\tlet toValue: number | undefined = undefined;\r\n\t\t\t\tif (currentValue !== 1) {\r\n\t\t\t\t\ttoValue = 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$array.each(children, (child: DataItem<IGanttCategoryAxisDataItem>) => {\r\n\t\t\t\t\tthis.toggleProgressPie(child, toValue);\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconst seriesDataItem = this.getSeriesDataItem(dataItem);\r\n\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\tconst progress = seriesDataItem.get(\"progress\", 0);\r\n\t\t\t\t\tconst prevProgress = seriesDataItem.get(\"prevProgress\", 0);\r\n\r\n\t\t\t\t\tlet toProgress = 1;\r\n\t\t\t\t\tif (progress == 1 && prevProgress != undefined) {\r\n\t\t\t\t\t\ttoProgress = prevProgress\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\ttoProgress = value;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tseriesDataItem.set(\"prevProgress\", progress);\r\n\t\t\t\t\tseriesDataItem.animate({\r\n\t\t\t\t\t\tkey: \"progress\",\r\n\t\t\t\t\t\tto: toProgress,\r\n\t\t\t\t\t\tduration: this.get(\"interpolationDuration\", 0), easing: this.get(\"interpolationEasing\")\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a custom color for a data item.\r\n\t *\r\n\t * @param dataItem Data item to set color for\r\n\t * @param c Color to set\r\n\t */\r\n\tpublic setDataItemColor(dataItem?: DataItem<IGanttCategoryAxisDataItem>, c?: Color): void {\r\n\t\tif (dataItem) {\r\n\t\t\tconst cc = dataItem.get(\"color\");\r\n\t\t\tif (c && cc && c.hex === cc.hex) {\r\n\t\t\t\tc = undefined;\r\n\t\t\t}\r\n\r\n\t\t\tdataItem.set(\"customColor\", c);\r\n\r\n\t\t\t// children\r\n\t\t\tconst children = dataItem.get(\"children\");\r\n\t\t\tif (children && children.length > 0) {\r\n\t\t\t\t$array.each(children, (child: DataItem<IGanttCategoryAxisDataItem>) => {\r\n\t\t\t\t\tthis.setDataItemColor(child, c);\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tthis.gantt?.series.markDirtyValues();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Hides axis's data item.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param duration Animation duration in milliseconds\r\n\t * @return Promise\r\n\t */\r\n\tpublic async hideDataItem(dataItem: DataItem<IGanttCategoryAxisDataItem>): Promise<void> {\r\n\t\tconst promise = super.hideDataItem(dataItem);\r\n\r\n\t\tconst container = dataItem.get(\"container\");\r\n\t\tif (container) {\r\n\t\t\tcontainer.hide();\r\n\t\t}\r\n\r\n\t\treturn promise;\r\n\t}\r\n\r\n\t/**\r\n\t * Shows axis's data item.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param duration Animation duration in milliseconds\r\n\t * @return Promise\r\n\t */\r\n\tpublic async showDataItem(dataItem: DataItem<IGanttCategoryAxisDataItem>): Promise<void> {\r\n\t\tconst promise = super.showDataItem(dataItem);\r\n\t\tconst container = dataItem.get(\"container\");\r\n\t\tif (container) {\r\n\t\t\tcontainer.show();\r\n\t\t}\r\n\t\treturn promise;\r\n\t}\r\n\r\n\tpublic _toggleFHDataItem(dataItem: DataItem<IGanttCategoryAxisDataItem>, forceHidden: boolean) {\r\n\t\tconst fh = \"forceHidden\";\r\n\t\tconst container = dataItem.get(\"container\");\r\n\t\tif (container) {\r\n\t\t\tcontainer.set(fh, forceHidden);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tpublic _toggleDataItem(dataItem: DataItem<IGanttCategoryAxisDataItem>, visible: boolean) {\r\n\t\tsuper._toggleDataItem(dataItem, visible);\r\n\t\tconst container = dataItem.get(\"container\");\r\n\t\tif (container) {\r\n\t\t\tcontainer.set(\"visible\", visible);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Disposes a data item.\r\n\t *\r\n\t * @param dataItem Data item to dispose\r\n\t */\r\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\r\n\t\tsuper.disposeDataItem(dataItem);\r\n\r\n\t\t// remove all elements\r\n\t\tconst renderer = this.get(\"renderer\");\r\n\t\tconst container = dataItem.get(\"container\");\r\n\t\tif (container) {\r\n\t\t\trenderer.containers.removeValue(container);\r\n\t\t\tcontainer.dispose();\r\n\t\t}\r\n\r\n\t\t// progress pie\r\n\t\tconst progressPie = dataItem.get(\"progressPie\");\r\n\t\tif (progressPie) {\r\n\t\t\trenderer.progressPies.removeValue(progressPie);\r\n\t\t\tprogressPie.dispose();\r\n\t\t}\r\n\r\n\t\t// grips\r\n\t\tconst grip = dataItem.get(\"grip\");\r\n\t\tif (grip) {\r\n\t\t\trenderer.grips.removeValue(grip);\r\n\t\t\tgrip.dispose();\r\n\t\t}\r\n\t\t// duration stepper\r\n\t\tconst durationStepper = dataItem.get(\"durationStepper\");\r\n\t\tif (durationStepper) {\r\n\t\t\trenderer.durationSteppers.removeValue(durationStepper);\r\n\t\t\tdurationStepper.dispose();\r\n\t\t}\r\n\r\n\t\t// task bullet\r\n\t\tconst taskBullet = dataItem.get(\"taskBullet\");\r\n\t\tif (taskBullet) {\r\n\t\t\trenderer.taskBullets.removeValue(taskBullet);\r\n\t\t\ttaskBullet.dispose();\r\n\t\t}\r\n\r\n\t\tconst parent = dataItem.get(\"parent\");\r\n\r\n\t\tif (parent) {\r\n\t\t\tconst children = parent.get(\"children\");\r\n\r\n\t\t\tif (children) {\r\n\t\t\t\t$array.remove(children, dataItem);\r\n\t\t\t}\r\n\t\t\tthis._updateBullet(parent);\r\n\t\t}\r\n\r\n\t\tthis._updateCellSizes();\r\n\t}\r\n\r\n\t/**\r\n\t * Selects a data item and shows the delete button. If the data item is\r\n\t * already selected, it will unselect it.\r\n\t *\r\n\t * @param dataItem Data item to select\r\n\t */\r\n\tpublic selectDataItem(dataItem?: DataItem<IGanttCategoryAxisDataItem>): void {\r\n\t\tif (!this.gantt?.get(\"editable\", true)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (dataItem === this.get(\"selectedDataItem\")) {\r\n\t\t\tthis.unselectDataItems();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.unselectDataItems();\r\n\r\n\t\tif (!dataItem) {\r\n\t\t\tthis.setRaw(\"selectedDataItem\", undefined);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst container = dataItem.get(\"container\");\r\n\t\tif (container) {\r\n\t\t\tconst bg = container.get(\"background\");\r\n\t\t\tif (bg) {\r\n\t\t\t\tbg.set(\"active\", true);\r\n\t\t\t}\r\n\r\n\t\t\tconst progressPie = dataItem.get(\"progressPie\");\r\n\t\t\tlet point = { x: 0, y: 0 };\r\n\t\t\tif (progressPie) {\r\n\t\t\t\tpoint = progressPie.toGlobal(point);\r\n\t\t\t\tpoint = this.toLocal(point);\r\n\t\t\t}\r\n\r\n\t\t\tthis.xButton.setAll({\r\n\t\t\t\ty: point.y,\r\n\t\t\t\tx: point.x\r\n\t\t\t});\r\n\r\n\r\n\t\t\tthis.setRaw(\"selectedDataItem\", dataItem);\r\n\r\n\t\t\tif (this._xHideDP) {\r\n\t\t\t\tthis._xHideDP.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tthis.gantt?.colorPickerButton.set(\"color\", dataItem.get(\"customColor\", dataItem.get(\"color\")));\r\n\r\n\t\t\tthis.setTimeout(() => {\r\n\t\t\t\tthis._xHideDP = this.events.once(\"globalpointerup\", () => {\r\n\t\t\t\t\tthis.unselectDataItems();\r\n\t\t\t\t})\r\n\t\t\t}, 200);\r\n\r\n\t\t\tif (this._delDp) {\r\n\t\t\t\tthis._delDp.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tthis._delDp = this.xButton.events.once(\"click\", () => {\r\n\t\t\t\tthis.deleteDataItem(dataItem);\r\n\t\t\t\tthis.unselectDataItems();\r\n\t\t\t})\r\n\r\n\t\t\tthis.xButton.show();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.unselectDataItems();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Unselects all data items.\r\n\t */\r\n\tpublic unselectDataItems(): void {\r\n\t\tthis.setRaw(\"selectedDataItem\", undefined);\r\n\t\tthis.xButton.hide(0);\r\n\t\t$array.each(this.dataItems, (dataItem: DataItem<IGanttCategoryAxisDataItem>) => {\r\n\t\t\tconst container = dataItem.get(\"container\");\r\n\t\t\tif (container) {\r\n\t\t\t\tconst bg = container.get(\"background\");\r\n\t\t\t\tif (bg) {\r\n\t\t\t\t\tbg.set(\"active\", false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic _disposeXHideDP() {\r\n\t\tif (this._xHideDP) {\r\n\t\t\tthis._xHideDP.dispose();\r\n\t\t\tthis._xHideDP = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * @param dataItem \r\n\t * @returns depth of the data item in the hierarchy\r\n\t */\r\n\tpublic _getItemDepth(dataItem: DataItem<IGanttCategoryAxisDataItem>): number {\r\n\t\tlet depth = 0;\r\n\t\tlet parent = dataItem.get(\"parent\");\r\n\t\twhile (parent) {\r\n\t\t\tdepth++;\r\n\t\t\tparent = parent.get(\"parent\");\r\n\t\t}\r\n\t\treturn depth;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * Overrides original method so that a ghost label is not created.\r\n\t */\r\n\tprotected _createGhostLabel() { }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"GanttCategoryAxis.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/GanttCategoryAxis.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AxisRenderer } from \"../xy/axes/AxisRenderer\";\r\nimport type { GanttCategoryAxisRenderer } from \"./GanttCategoryAxisRenderer\";\r\nimport type { Container } from \"../../core/render/Container\";\r\nimport type { ProgressPie } from \"../../core/render/ProgressPie\";\r\nimport type { Gantt } from \"./Gantt\";\r\nimport type { AxisTick } from \"../xy/axes/AxisTick\";\r\nimport type { NumericStepper } from \"../../core/render/NumericStepper\";\r\nimport type { IGanttSeriesDataItem } from \"./GanttSeries\";\r\nimport type { Animation } from \"../../core/util/Entity\";\r\n\r\nimport { Rectangle } from \"../../core/render/Rectangle\";\r\nimport { CategoryAxis, ICategoryAxisSettings, ICategoryAxisPrivate, ICategoryAxisDataItem, ICategoryAxisEvents } from \"../xy/axes/CategoryAxis\";\r\nimport { Button, color, Color, DataItem, Graphics, IDisposer } from \"../../..\";\r\n\r\nimport * as $array from \"../../core/util/Array\";\r\nimport * as $type from \"../../core/util/Type\";\r\n\r\nexport interface IGanttCategoryAxisSettings<R extends AxisRenderer> extends ICategoryAxisSettings<R> {\r\n\r\n\t/**\r\n\t * Currently selected category data item, if any.\r\n\t */\r\n\tselectedDataItem?: DataItem<IGanttCategoryAxisDataItem>;\r\n\r\n\t/**\r\n\t * A field in data that holds parent id.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Category_data} for more info\r\n\t * @default \"parentId\"\r\n\t */\r\n\tparentIdField?: string;\r\n\r\n\t/**\r\n\t * A field in data that holds status whether the category is collapsed.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Category_data} for more info\r\n\t * @default \"collapsed\"\r\n\t */\r\n\tcollapsedField?: string;\r\n\r\n\t/**\r\n\t * Size of child categories relative to the top-level cell height. (`0` - `1`)\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Cell_height_for_child_categories} for more info\r\n\t * @default 0.8\r\n\t */\r\n\tchildCellSize?: number;\r\n\r\n\t/**\r\n\t * A shift in pixels to apply to child categories.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Cell_height_for_child_categories} for more info\r\n\t * @default 25\r\n\t */\r\n\tchildShift?: number;\r\n\r\n\t/**\r\n\t * A minimal height of the cell in pixels.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Cell_height} for more info\r\n\t * @default 70\r\n\t */\r\n\tminCellHeight?: number;\r\n\r\n\t/**\r\n\t * Field of a category name\r\n\t * @default \"name\"\r\n\t */\r\n\tnameField?: string;\r\n\r\n\t/**\r\n\t * Field of a category color\r\n\t * @default \"color\"\r\n\t */\r\n\tcolorField?: string;\r\n\r\n}\r\n\r\nexport interface IGanttCategoryAxisDataItem extends ICategoryAxisDataItem {\r\n\r\n\t/**\r\n\t * A container that holds all other elements of a axis label - label, controls, grip, etc.\r\n\t */\r\n\tcontainer?: Container;\r\n\r\n\t/**\r\n\t * A container that holds progress pie and duration stepper.\r\n\t */\r\n\tcontrolsContainer?: Container;\r\n\r\n\t/**\r\n\t * A grip for dragging the category.\r\n\t */\r\n\tgrip?: Rectangle;\r\n\r\n\t/**\r\n\t * A bullet to the left of a label (circle or triangle, if it has children)\r\n\t */\r\n\ttaskBullet?: Button;\r\n\r\n\t/**\r\n\t * A progress pie that shows progress of the task.\r\n\t */\r\n\tprogressPie?: ProgressPie;\r\n\r\n\t/**\r\n\t * Children of this category, if any.\r\n\t */\r\n\tchildren?: Array<DataItem<IGanttCategoryAxisDataItem>>;\r\n\r\n\t/**\r\n\t * Parent id of data item.\r\n\t */\r\n\tparentId?: string;\r\n\r\n\t/**\r\n\t * A reference to the parent category data item.\r\n\t */\r\n\tparent?: DataItem<IGanttCategoryAxisDataItem>;\r\n\r\n\t/**\r\n\t * Progress of the task, from `0` to `1`. If this item has children, this will be the average of all children's progress.\r\n\t */\r\n\tprogress?: number;\r\n\r\n\t/**\r\n\t * A stepper that allows to change task duration.\r\n\t */\r\n\tdurationStepper?: NumericStepper;\r\n\r\n\t/**\r\n\t * A flag indicating whether the category is collapsed.\r\n\t */\r\n\tcollapsed?: boolean;\r\n\r\n\t/**\r\n\t * Duration of the task (in days or other units, depending on `durationUnit` setting of a `Gantt`).\r\n\t */\r\n\tduration?: number;\r\n\r\n\t/**\r\n\t * Color of a task.\r\n\t */\r\n\tcolor?: Color\r\n\r\n\t/**\r\n\t * Custom color for the task, if any.\r\n\t */\r\n\tcustomColor?: Color;\r\n\r\n\t/**\r\n\t * Displayed name of a category.\r\n\t */\r\n\tname?: string;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tdeleting?: boolean;\r\n\r\n\t/**\r\n\t * A reference to the series data item.\r\n\t */\r\n\tseriesDataItem?: DataItem<IGanttSeriesDataItem>;\r\n}\r\n\r\n\r\nexport interface IGanttCategoryAxisPrivate extends ICategoryAxisPrivate { }\r\n\r\nexport interface IGanttCategoryAxisEvents extends ICategoryAxisEvents { }\r\n\r\n\r\n/**\r\n * A category axis that is used as a Y (vertical) axis for [[Gantt]] charts.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Category_vertical_axis} for more info\r\n * @since 5.14.0\r\n * @important\r\n */\r\nexport class GanttCategoryAxis<R extends GanttCategoryAxisRenderer> extends CategoryAxis<R> {\r\n\tpublic static className: string = \"GanttCategoryAxis\";\r\n\tpublic static classNames: Array<string> = CategoryAxis.classNames.concat([GanttCategoryAxis.className]);\r\n\r\n\tdeclare public _settings: IGanttCategoryAxisSettings<R>;\r\n\tdeclare public _privateSettings: IGanttCategoryAxisPrivate;\r\n\tdeclare public _dataItemSettings: IGanttCategoryAxisDataItem;\r\n\tdeclare public _events: IGanttCategoryAxisEvents;\r\n\r\n\tprotected _downX: number | undefined;\r\n\tprotected _downW: number | undefined;\r\n\tprotected _xHideDP: IDisposer | undefined;\r\n\tprotected _insertAfter: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\tprotected _makeChildOf: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\tprotected _draggedItem: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\tprotected _previousTick: AxisTick | undefined;\r\n\r\n\tprotected _delDp: IDisposer | undefined;\r\n\tprotected _firstDataItem!: DataItem<IGanttCategoryAxisDataItem>;\r\n\r\n\tprotected _updDP: IDisposer | undefined;\r\n\tprotected _dataChangeDp: IDisposer | undefined;\r\n\tprotected _treeDirty: boolean = false;\r\n\r\n\t/**\r\n\t * A reference to the parent [[Gantt]] chart.\r\n\t */\r\n\tpublic gantt?: Gantt;\r\n\r\n\t/**\r\n\t * A [[Button]] used for deleting categories.\r\n\t */\r\n\tpublic xButton: Button = this.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"xbutton\"],\r\n\t\ticon: Graphics.new(this._root, {\r\n\t\t\tthemeTags: [\"icon\"]\r\n\t\t})\r\n\t}));\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis.fields.push(\"parentId\", \"collapsed\", \"name\");\r\n\t\tsuper._afterNew();\r\n\r\n\t\tthis.events.on(\"wheel\", (event) => {\r\n\t\t\tthis.chart!.handleWheel(event);\r\n\t\t});\r\n\r\n\t\tthis.xButton.hide(0);\r\n\r\n\t\tconst renderer = this.get(\"renderer\");\r\n\t\tthis._firstDataItem = this.makeDataItem({ cellSize: 0.0001 });\r\n\t\tconst tick = renderer.makeTick(this._firstDataItem, []);\r\n\t\ttick.set(\"dy\", 0.5);\r\n\t\tconst grid = renderer.makeGrid(this._firstDataItem, []);\r\n\t\tgrid.set(\"dy\", 0.5);\r\n\r\n\t\tthis.labelsContainer.setAll({\r\n\t\t\tmaskContent: true\r\n\t\t});\r\n\r\n\t\tconst resizer = this.children.push(Rectangle.new(this._root, {\r\n\t\t\tthemeTags: [\"axisresizer\"]\r\n\t\t}))\r\n\r\n\t\tresizer.events.on(\"pointerdown\", (e) => {\r\n\t\t\tthis._downX = this.toLocal(e.point).x;\r\n\t\t\tthis._downW = this.width();\r\n\t\t})\r\n\r\n\t\tresizer.events.on(\"globalpointermove\", (e) => {\r\n\t\t\tif (this._downX !== undefined) {\r\n\t\t\t\tconst point = this.toLocal(e.point);\r\n\t\t\t\tconst dy = point.x - this._downX;\r\n\t\t\t\tif (this._downW !== undefined) {\r\n\t\t\t\t\tlet newWidth = this._downW + dy;\r\n\t\t\t\t\tnewWidth = Math.max(newWidth, this.get(\"minWidth\", 100));\r\n\t\t\t\t\tthis.labelsContainer.set(\"width\", newWidth);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tresizer.events.on(\"globalpointerup\", () => {\r\n\t\t\tthis._downX = undefined;\r\n\t\t})\r\n\r\n\t\tconst containersTemplate = renderer.containers.template;\r\n\r\n\t\tcontainersTemplate.events.on(\"dragged\", (e) => {\r\n\t\t\tthis.xButton.hide(0);\r\n\t\t\t// get all columns from series of this category and move them together\r\n\t\t\tconst dataItem = e.target.dataItem as DataItem<IGanttCategoryAxisDataItem>;\r\n\t\t\tconst container = e.target as Container;\r\n\t\t\tif (dataItem) {\r\n\t\t\t\tconst deltaPosition = (e.target.y() - startY) / this.chart!.plotContainer.height() * (this.get(\"end\", 1) - this.get(\"start\", 0));\r\n\t\t\t\tdataItem.set(\"deltaPosition\", deltaPosition);\r\n\r\n\t\t\t\t// dragg all children together\r\n\t\t\t\tconst updateDeltaPositionRecursively = (dataItem: DataItem<IGanttCategoryAxisDataItem>, deltaPosition: number) => {\r\n\t\t\t\t\tconst children = dataItem.get(\"children\");\r\n\r\n\t\t\t\t\tif (children) {\r\n\t\t\t\t\t\t$array.each(children, (child) => {\r\n\t\t\t\t\t\t\tchild.set(\"deltaPosition\", deltaPosition);\r\n\t\t\t\t\t\t\tupdateDeltaPositionRecursively(child, deltaPosition);\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\tupdateDeltaPositionRecursively(dataItem, deltaPosition);\r\n\r\n\t\t\t\tconst tick = dataItem.get(\"tick\")\r\n\t\t\t\tconst grid = dataItem.get(\"grid\");\r\n\t\t\t\tconst dy = Math.ceil(startY - container.y());\r\n\r\n\t\t\t\tif (tick) {\r\n\t\t\t\t\tconst children = dataItem.get(\"children\");\r\n\t\t\t\t\tif (!children || children.length == 0) {\r\n\t\t\t\t\t\ttick.set(\"dy\", dy);\r\n\r\n\t\t\t\t\t\tif (grid) {\r\n\t\t\t\t\t\t\tgrid.set(\"dy\", dy);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst y = container.y();\r\n\r\n\t\t\t\t\t// Check if y is close to other containers and apply hover state\r\n\t\t\t\t\tconst allContainers = renderer.containers;\r\n\r\n\t\t\t\t\tif (this._makeChildOf) {\r\n\t\t\t\t\t\tthis._makeChildOf.get(\"container\")?.get(\"background\")?.unhover();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis._makeChildOf = undefined;\r\n\t\t\t\t\tfor (let i = 0; i < allContainers.length; i++) {\r\n\t\t\t\t\t\tconst otherContainer = allContainers.getIndex(i);\r\n\t\t\t\t\t\tif (otherContainer && otherContainer.isVisible() && otherContainer !== container) {\r\n\t\t\t\t\t\t\tconst otherDataItem = otherContainer.dataItem as DataItem<IGanttCategoryAxisDataItem>;\r\n\r\n\t\t\t\t\t\t\tif (otherDataItem.get(\"cellSize\", 0) > 0) {\r\n\t\t\t\t\t\t\t\t// Check if otherDataItem is already a child of the dragged item's container\r\n\t\t\t\t\t\t\t\tconst otherChildren = otherDataItem.get(\"children\");\r\n\t\t\t\t\t\t\t\tif (otherChildren) {\r\n\t\t\t\t\t\t\t\t\tif (otherChildren.indexOf(dataItem) !== -1) {\r\n\t\t\t\t\t\t\t\t\t\tcontinue; // Skip if the dragged item is already a child of the other item\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tconst background = otherContainer.get(\"background\");\r\n\t\t\t\t\t\t\t\tif (background) {\r\n\t\t\t\t\t\t\t\t\tconst otherY = otherContainer.y();\r\n\t\t\t\t\t\t\t\t\tif (Math.abs((y + container.height() / 2) - (otherY + otherContainer.height() / 2)) < 5) {\r\n\t\t\t\t\t\t\t\t\t\tbackground.hover();\r\n\t\t\t\t\t\t\t\t\t\tthis._makeChildOf = otherDataItem;\r\n\t\t\t\t\t\t\t\t\t}\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\r\n\r\n\t\t\t\t\tif (!this._makeChildOf) {\r\n\t\t\t\t\t\tif (this._previousTick) {\r\n\t\t\t\t\t\t\tthis._previousTick.states.applyAnimate(\"default\");\r\n\t\t\t\t\t\t\tthis._previousTick = undefined;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet closestDataItem: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\t\t\t\t\t\tlet closestDistance = Infinity;\r\n\t\t\t\t\t\t//find closest tick\r\n\t\t\t\t\t\tfor (let i = renderer.ticks.length; i >= 0; i--) {\r\n\t\t\t\t\t\t\tconst t = renderer.ticks.getIndex(i);\r\n\t\t\t\t\t\t\tif (t && tick.isVisible()) {\r\n\t\t\t\t\t\t\t\tconst dataItem = t.dataItem as DataItem<IGanttCategoryAxisDataItem>;\r\n\t\t\t\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\t\t\t\tconst index = dataItem.get(\"index\", 0);\r\n\r\n\t\t\t\t\t\t\t\t\tif (index >= this.startIndex() && index <= this.endIndex()) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (dataItem.get(\"cellSize\", 0) == 0) {\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue; // Skip if the other item is collapsed\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// recursively check if dataItem is not a child of the dragged item\r\n\t\t\t\t\t\t\t\t\t\tlet isChild = false;\r\n\t\t\t\t\t\t\t\t\t\tlet parent = dataItem.get(\"parent\");\r\n\t\t\t\t\t\t\t\t\t\twhile (parent) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (parent === dataItem) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tisChild = true;\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tparent = parent.get(\"parent\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (isChild) {\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tconst distance = Math.abs(t.y() + t.get(\"dy\", 0) - y - container.height() / 2);\r\n\t\t\t\t\t\t\t\t\t\tif (distance < closestDistance) {\r\n\t\t\t\t\t\t\t\t\t\t\tclosestDistance = distance;\r\n\t\t\t\t\t\t\t\t\t\t\tclosestDataItem = t.dataItem as DataItem<IGanttCategoryAxisDataItem>;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (Math.abs(dy) < 10) {\r\n\t\t\t\t\t\t\tclosestDataItem = undefined;\r\n\t\t\t\t\t\t\tthis._insertAfter = undefined;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (closestDataItem && closestDataItem !== dataItem) {\r\n\t\t\t\t\t\t\t// also check if closestDataItem is not a child of the dragged item\r\n\t\t\t\t\t\t\tlet isChild = false;\r\n\t\t\t\t\t\t\tlet parent = closestDataItem.get(\"parent\");\r\n\t\t\t\t\t\t\twhile (parent) {\r\n\t\t\t\t\t\t\t\tif (parent === dataItem) {\r\n\t\t\t\t\t\t\t\t\tisChild = true;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tparent = parent.get(\"parent\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (isChild) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// color tick\r\n\t\t\t\t\t\t\tconst tick = closestDataItem.get(\"tick\")\r\n\t\t\t\t\t\t\tif (tick) {\r\n\t\t\t\t\t\t\t\ttick.hover();\r\n\t\t\t\t\t\t\t\tthis._previousTick = tick;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis._insertAfter = closestDataItem;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (this._previousTick) {\r\n\t\t\t\t\t\t\tthis._previousTick.unhover();\r\n\t\t\t\t\t\t\tthis._previousTick = undefined;\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\tcontainersTemplate.events.on(\"dragstop\", (e) => {\r\n\t\t\tthis._draggedItem = e.target.dataItem as DataItem<IGanttCategoryAxisDataItem>;\r\n\t\t\tthis._sortCategoryAxis();\r\n\r\n\t\t\tif (this._makeChildOf) {\r\n\t\t\t\tthis._makeChildOf.get(\"container\")?.get(\"background\")?.unhover();\r\n\r\n\t\t\t\tif (this._makeChildOf.get(\"collapsed\")) {\r\n\t\t\t\t\tthis.toggleCollapse(this._makeChildOf, true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._updateCellSizes();\r\n\t\t\t}\r\n\r\n\t\t\t// disable interactivity of all containers\r\n\t\t\tconst renderer = this.get(\"renderer\");\r\n\t\t\trenderer.containers.each((container) => {\r\n\t\t\t\tcontainer.set(\"forceInactive\", false);\r\n\t\t\t});\r\n\t\t})\r\n\r\n\t\tlet startY: number = 0;\r\n\t\tcontainersTemplate.events.on(\"dragstart\", (e) => {\r\n\t\t\t// disable interactivity of all containers\r\n\t\t\tconst renderer = this.get(\"renderer\");\r\n\t\t\trenderer.containers.each((container) => {\r\n\t\t\t\tcontainer.set(\"forceInactive\", true);\r\n\t\t\t});\r\n\t\t\tstartY = e.target.y();\r\n\t\t})\r\n\t}\r\n\r\n\tpublic _changed() {\r\n\t\tsuper._changed();\r\n\t\tif (this.isDirty(\"selectedDataItem\")) {\r\n\t\t\tthis.selectDataItem(this.get(\"selectedDataItem\"));\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _processBullet(dataItem: DataItem<IGanttCategoryAxisDataItem>) {\r\n\t\tsuper._processBullet(dataItem);\r\n\r\n\t\tconst parent = dataItem.get(\"parent\");\r\n\t\tif (parent && parent.get(\"collapsed\")) {\r\n\t\t\tdataItem.get(\"container\")?.hide();\r\n\t\t\tdataItem.get(\"tick\")?.hide();\r\n\t\t\tdataItem.get(\"grid\")?.hide();\r\n\t\t\tdataItem.set(\"finalCellSize\", 0);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateChildren(): void {\r\n\t\tsuper._updateChildren();\r\n\r\n\r\n\t\tif (this._dataChanged) {\r\n\t\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\t\tconst parentId = dataItem.get(\"parentId\");\r\n\t\t\t\tif (!parentId) {\r\n\t\t\t\t\tlet fill = dataItem.get(\"customColor\", dataItem.get(\"color\"));\r\n\t\t\t\t\tconst dataContext = dataItem.dataContext as any;\r\n\t\t\t\t\tif (fill === undefined && dataContext && dataContext.color !== undefined) {\r\n\t\t\t\t\t\tfill = color(dataContext.color);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!fill) {\r\n\t\t\t\t\t\tfill = this.gantt?._nextColor();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdataItem.setRaw(\"color\", fill);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\t\tconst parentId = dataItem.get(\"parentId\");\r\n\r\n\t\t\t\tif (parentId) {\r\n\t\t\t\t\t// Find the parent data item by category\r\n\t\t\t\t\tconst parent = this.getDataItemById(parentId);\r\n\t\t\t\t\tif (parent) {\r\n\t\t\t\t\t\tdataItem.setRaw(\"parent\", parent);\r\n\t\t\t\t\t\tdataItem.setRaw(\"cellSize\", Math.pow(this.get(\"childCellSize\", 1), this._getItemDepth(dataItem)));\r\n\t\t\t\t\t\tdataItem.setRaw(\"finalCellSize\", dataItem.get(\"cellSize\"));\r\n\r\n\t\t\t\t\t\tlet fill = dataItem.get(\"customColor\", dataItem.get(\"color\"));\r\n\t\t\t\t\t\tconst dataContext = dataItem.dataContext as any;\r\n\t\t\t\t\t\tif (fill === undefined && dataContext && dataContext.color !== undefined) {\r\n\t\t\t\t\t\t\tfill = color(dataContext.color);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (fill == undefined) {\r\n\t\t\t\t\t\t\tdataItem.setRaw(\"color\", parent.get(\"customColor\", parent.get(\"color\")));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tdataItem.setRaw(\"color\", fill);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet children = parent.get(\"children\");\r\n\t\t\t\t\t\tif (!children) {\r\n\t\t\t\t\t\t\tchildren = [];\r\n\t\t\t\t\t\t\tparent.set(\"children\", children);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t$array.move(children, dataItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tdataItem.setRaw(\"cellSize\", 1);\r\n\t\t\t\t\tdataItem.setRaw(\"finalCellSize\", 1);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\t\tthis.toggleCollapse(dataItem, dataItem.get(\"collapsed\", false), 0);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (this._treeDirty) {\r\n\t\t\tthis._updateTree();\r\n\t\t}\r\n\r\n\t\tconst renderer = this.get(\"renderer\");\r\n\r\n\t\tconst firstDataItem = this._firstDataItem;\r\n\t\tif (firstDataItem) {\r\n\t\t\trenderer.updateTick(firstDataItem.get(\"tick\"), 0);\r\n\t\t\trenderer.updateGrid(firstDataItem.get(\"grid\"), 0);\r\n\t\t}\r\n\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tconst progressPie = dataItem.get(\"progressPie\");\r\n\t\t\tif (progressPie) {\r\n\t\t\t\tconst progress = dataItem.get(\"progress\", 0);\r\n\t\t\t\tprogressPie.set(\"value\", progress);\r\n\r\n\t\t\t\tconst color = dataItem.get(\"customColor\", dataItem.get(\"color\"));\r\n\r\n\t\t\t\t(dataItem.dataContext as any).color = color?.toString();\r\n\t\t\t\tprogressPie.slice.set(\"fill\", color);\r\n\t\t\t\tprogressPie.backgroundSlice.set(\"fill\", color);\r\n\t\t\t\tprogressPie.label.set(\"fill\", color);\r\n\t\t\t}\r\n\r\n\t\t\tconst cellSize = dataItem.get(\"cellSize\", 1);\r\n\t\t\tconst container = dataItem.get(\"container\");\r\n\t\t\tif (container) {\r\n\t\t\t\tif (cellSize < 0.0001) {\r\n\t\t\t\t\tcontainer.setPrivate(\"visible\", false);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tcontainer.setPrivate(\"visible\", true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst index = dataItem.get(\"index\", 0);\r\n\t\t\t\tconst p0 = this.indexToPosition(index, 0);\r\n\t\t\t\tconst p1 = this.indexToPosition(index, 1);\r\n\r\n\t\t\t\tconst y0 = renderer.positionToCoordinate(p0);\r\n\t\t\t\tconst y1 = renderer.positionToCoordinate(p1);\r\n\r\n\t\t\t\tcontainer.set(\"height\", Math.abs(y1 - y0));\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tpublic _clearDirty(): void {\r\n\t\tsuper._clearDirty();\r\n\t\tthis._treeDirty = false;\r\n\t}\r\n\r\n\tpublic getSeriesDataItem(dataItem: DataItem<IGanttCategoryAxisDataItem>): DataItem<IGanttSeriesDataItem> | undefined {\r\n\t\tif (dataItem.get(\"seriesDataItem\")) {\r\n\t\t\treturn dataItem.get(\"seriesDataItem\");\r\n\t\t}\r\n\t\tconst gantt = this.gantt;\r\n\t\tif (gantt) {\r\n\t\t\tconst di = gantt.series.getDataItemById(dataItem.get(\"id\")!);\r\n\t\t\tif (di) {\r\n\t\t\t\tdataItem.set(\"seriesDataItem\", di);\r\n\t\t\t\treturn di;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms the axis to relative locations.\r\n\t *\r\n\t * Both `start` and `end` are relative: 0 means start of the axis, 1 - end.\r\n\t *\r\n\t * @param start Relative start\r\n\t * @param end Relative end\r\n\t * @param duration Duration of the zoom animation in milliseconds\r\n\t * @return Zoom animation\r\n\t */\r\n\tpublic zoom(start: number, end: number, duration?: number): Animation<this[\"_settings\"][\"start\"]> | Animation<this[\"_settings\"][\"end\"]> | undefined {\r\n\t\tif (this.get(\"zoomable\", true)) {\r\n\t\t\tthis._updateFinals(start, end);\r\n\r\n\t\t\tif (this.get(\"start\") !== start || this.get(\"end\") != end) {\r\n\t\t\t\tlet sAnimation = this._sAnimation;\r\n\t\t\t\tlet eAnimation = this._eAnimation;\r\n\r\n\t\t\t\tif (start > end) {\r\n\t\t\t\t\t[start, end] = [end, start];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet maxDeviation = this.get(\"maxDeviation\", 0.5) * Math.min(1, (end - start));\r\n\r\n\t\t\t\tif (start < - maxDeviation) {\r\n\t\t\t\t\tstart = -maxDeviation;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (end > 1 + maxDeviation) {\r\n\t\t\t\t\tend = 1 + maxDeviation;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!$type.isNumber(duration)) {\r\n\t\t\t\t\tduration = this.get(\"interpolationDuration\", 0);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (((sAnimation && sAnimation.playing && sAnimation.to == start) || this.get(\"start\") == start) && ((eAnimation && eAnimation.playing && eAnimation.to == end) || this.get(\"end\") == end)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (duration > 0) {\r\n\t\t\t\t\tlet easing = this.get(\"interpolationEasing\");\r\n\t\t\t\t\tlet sAnimation, eAnimation;\r\n\t\t\t\t\tif (this.get(\"start\") != start) {\r\n\t\t\t\t\t\tsAnimation = this.animate({ key: \"start\", to: start, duration: duration, easing: easing });\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.get(\"end\") != end) {\r\n\t\t\t\t\t\teAnimation = this.animate({ key: \"end\", to: end, duration: duration, easing: easing });\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis._sAnimation = sAnimation;\r\n\t\t\t\t\tthis._eAnimation = eAnimation;\r\n\r\n\t\t\t\t\tif (sAnimation) {\r\n\t\t\t\t\t\treturn sAnimation;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (eAnimation) {\r\n\t\t\t\t\t\treturn eAnimation;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.set(\"start\", start);\r\n\t\t\t\t\tthis.set(\"end\", end);\r\n\t\t\t\t\tthis.root.events.once(\"frameended\", () => {\r\n\t\t\t\t\t\tthis.markDirtyKey(\"start\");\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this._sAnimation) {\r\n\t\t\t\t\tthis._sAnimation.stop();\r\n\t\t\t\t}\r\n\t\t\t\tif (this._eAnimation) {\r\n\t\t\t\t\tthis._eAnimation.stop();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _afterDataChange(): void {\r\n\t\tsuper._afterDataChange();\r\n\t\tconst chart = this.chart;\r\n\r\n\t\tif (chart) {\r\n\t\t\tconst availableHeight = chart.plotContainer.height();\r\n\r\n\t\t\tconst minCellHeight = this.get(\"minCellHeight\", 70);\r\n\t\t\tconst maxZoomCount = Math.floor(availableHeight / minCellHeight);\r\n\t\t\tthis.set(\"maxZoomCount\", maxZoomCount);\r\n\t\t\tthis.set(\"minZoomCount\", maxZoomCount);\r\n\r\n\t\t\t// to avoid many items to be drawn\r\n\t\t\tif (this.get(\"start\") == 0 && this.get(\"end\") == 1) {\r\n\t\t\t\tthis.zoomToIndexes(0, maxZoomCount);\r\n\t\t\t\tif (this._dataChangeDp) {\r\n\t\t\t\t\tthis._dataChangeDp.dispose();\r\n\t\t\t\t}\r\n\t\t\t\tthis._dataChangeDp = this.root.events.once(\"frameended\", () => {\r\n\t\t\t\t\tthis.adjustZoom();\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic markDirtyTree(): void {\r\n\t\tthis._treeDirty = true;\r\n\t\tthis.markDirty();\r\n\t}\r\n\r\n\r\n\tpublic _sortCategoryAxis(): void {\r\n\t\tlet insertAfter = this._insertAfter;\r\n\t\tconst draggedItem = this._draggedItem;\r\n\r\n\t\tif (this._previousTick) {\r\n\t\t\tthis._previousTick.states.applyAnimate(\"default\");\r\n\t\t\tthis._previousTick = undefined;\r\n\t\t}\r\n\r\n\t\tif (!draggedItem) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst currentParent = draggedItem.get(\"parent\");\r\n\t\tconst currentDepth = this._getItemDepth(draggedItem);\r\n\r\n\t\tif (this._makeChildOf) {\r\n\t\t\tif (this._makeChildOf && draggedItem !== this._makeChildOf) {\r\n\t\t\t\tdraggedItem.set(\"parent\", this._makeChildOf);\r\n\t\t\t\tlet children = this._makeChildOf.get(\"children\");\r\n\t\t\t\tif (!children) {\r\n\t\t\t\t\tchildren = this._makeChildOf.set(\"children\", []);\r\n\t\t\t\t}\r\n\t\t\t\tif (children && !children.includes(draggedItem)) {\r\n\t\t\t\t\tchildren.unshift(draggedItem);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// assign parent color to dragged item if it doesn't have custom color\t\t\t\r\n\t\t\t\tif (!draggedItem.get(\"customColor\")) {\r\n\t\t\t\t\tconst parentColor = this._makeChildOf.get(\"customColor\", this._makeChildOf.get(\"color\"));\r\n\t\t\t\t\tdraggedItem.setRaw(\"color\", parentColor);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst parentSeriesDataItem = this.getSeriesDataItem(this._makeChildOf);\r\n\t\t\t\tif (parentSeriesDataItem) {\r\n\t\t\t\t\tparentSeriesDataItem.setAll({\r\n\t\t\t\t\t\topenValueX: undefined,\r\n\t\t\t\t\t\tvalueX: undefined,\r\n\t\t\t\t\t\tduration: draggedItem.get(\"duration\", 0),\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tinsertAfter = this._makeChildOf;\r\n\t\t}\r\n\t\telse if (insertAfter && draggedItem !== insertAfter) {\r\n\t\t\tconst childrenOfInsertAfter = insertAfter.get(\"children\");\r\n\t\t\tconst parentOfInsertAfter = insertAfter.get(\"parent\");\r\n\r\n\t\t\t// if insertAfter has children\r\n\t\t\tif (childrenOfInsertAfter && childrenOfInsertAfter.length > 0 && !insertAfter.get(\"collapsed\", false)) {\r\n\t\t\t\t// make it child of insertAfter\r\n\t\t\t\tdraggedItem.set(\"parent\", insertAfter);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// if insertAfter has parent\r\n\t\t\t\tif (parentOfInsertAfter) {\r\n\t\t\t\t\tconst childrenOfParentOfInsertAfter = parentOfInsertAfter.get(\"children\");\r\n\r\n\t\t\t\t\tif (childrenOfParentOfInsertAfter) {\r\n\t\t\t\t\t\tconst lastChild = childrenOfParentOfInsertAfter[childrenOfParentOfInsertAfter.length - 1];\r\n\t\t\t\t\t\t// if insertAfter is last child of its parent, o not change parent of dragged item\r\n\t\t\t\t\t\tif (insertAfter == lastChild) {\r\n\t\t\t\t\t\t\t// if it is already child of parentOfInsertAfter, do not change parent\r\n\t\t\t\t\t\t\tif (draggedItem.get(\"parent\") === parentOfInsertAfter) {\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t// get children of one level up\r\n\t\t\t\t\t\t\t\tconst nextParent = parentOfInsertAfter.get(\"parent\");\r\n\t\t\t\t\t\t\t\tif (nextParent) {\r\n\t\t\t\t\t\t\t\t\tconst nextChildren = nextParent.get(\"children\");\r\n\t\t\t\t\t\t\t\t\tif (nextChildren) {\r\n\t\t\t\t\t\t\t\t\t\tdraggedItem.set(\"parent\", nextParent);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tif (draggedItem.get(\"parent\") !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\tdraggedItem.set(\"parent\", undefined);\r\n\t\t\t\t\t\t\t\t\t\tthis._setNewColor(draggedItem);\r\n\t\t\t\t\t\t\t\t\t}\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\telse {\r\n\t\t\t\t\t\t\tif (childrenOfInsertAfter && !insertAfter.get(\"collapsed\", false)) {\r\n\t\t\t\t\t\t\t\tdraggedItem.set(\"parent\", insertAfter);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tdraggedItem.set(\"parent\", parentOfInsertAfter);\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\t\t\t\telse {\r\n\t\t\t\t\t// if insertAfter has no parent, do not change parent of dragged item\r\n\t\t\t\t\tif (draggedItem.get(\"parent\") !== undefined) {\r\n\t\t\t\t\t\tdraggedItem.set(\"parent\", undefined);\r\n\t\t\t\t\t\tthis._setNewColor(draggedItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst newParent = draggedItem.get(\"parent\");\r\n\t\t\tif (newParent) {\r\n\t\t\t\t// assign parent color to dragged item if it doesn't have custom color\t\t\t\r\n\t\t\t\tif (!draggedItem.get(\"customColor\")) {\r\n\t\t\t\t\tconst parentColor = newParent.get(\"customColor\", newParent.get(\"color\"));\r\n\t\t\t\t\tdraggedItem.setRaw(\"color\", parentColor);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst newParentChildren = newParent.get(\"children\");\r\n\t\t\t\tif (newParentChildren) {\r\n\t\t\t\t\tif (newParentChildren.indexOf(insertAfter) !== -1) {\r\n\t\t\t\t\t\t$array.move(newParentChildren, draggedItem, newParentChildren.indexOf(insertAfter) + 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (newParent == insertAfter) {\r\n\t\t\t\t\t\t\tnewParentChildren.unshift(draggedItem);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tnewParentChildren.push(draggedItem);\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// remove from current parent children \r\n\t\tif (currentParent && currentParent != draggedItem.get(\"parent\")) {\r\n\t\t\tconst currentChildren = currentParent.get(\"children\");\r\n\t\t\tif (currentChildren) {\r\n\t\t\t\tconst index = currentChildren.indexOf(draggedItem);\r\n\t\t\t\tif (index !== -1) {\r\n\t\t\t\t\t$array.remove(currentChildren, draggedItem);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (insertAfter) {\r\n\t\t\tconst insertAfterIndex = this.dataItems.indexOf(insertAfter);\r\n\t\t\tconst currentIndex = this.dataItems.indexOf(draggedItem);\r\n\r\n\t\t\tconst updateChildrenIndexes = (dataItem: DataItem<IGanttCategoryAxisDataItem>, index: number) => {\r\n\t\t\t\tif (currentIndex >= insertAfterIndex) {\r\n\t\t\t\t\tindex++;\r\n\t\t\t\t\t$array.move(this.dataItems, dataItem, index);\r\n\t\t\t\t\tconst children = dataItem.get(\"children\");\r\n\t\t\t\t\tif (children) {\r\n\t\t\t\t\t\t$array.eachReverse(children, (child) => {\r\n\t\t\t\t\t\t\tupdateChildrenIndexes(child, index);\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\telse {\r\n\t\t\t\t\t$array.move(this.dataItems, dataItem, index);\r\n\t\t\t\t\tconst children = dataItem.get(\"children\");\r\n\t\t\t\t\tif (children) {\r\n\t\t\t\t\t\t$array.each(children, (child) => {\r\n\t\t\t\t\t\t\tupdateChildrenIndexes(child, index);\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\r\n\t\t\tif (this._getItemDepth(draggedItem) != currentDepth) {\r\n\t\t\t\tconst seriesDataItem = this.getSeriesDataItem(draggedItem);\r\n\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\tthis.gantt?.series.disposeLinks(seriesDataItem);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tupdateChildrenIndexes(draggedItem, insertAfterIndex);\r\n\t\t}\r\n\r\n\t\tthis.markDirtyTree();\r\n\r\n\t\tconst easing = this.get(\"interpolationEasing\");\r\n\t\tconst duration = this.get(\"interpolationDuration\", 0);\r\n\r\n\t\t$array.each(this.dataItems, (axisItem, index) => {\r\n\t\t\tconst container = axisItem.get(\"container\");\r\n\t\t\tif (container) {\r\n\t\t\t\tlet currentPosition = this.coordinateToPosition(container.y() + container.height() / 2);\r\n\t\t\t\tlet newPosition = this.indexToPosition(index) - axisItem.get(\"deltaPosition\", 0);\r\n\t\t\t\tlet deltaPosition = newPosition - currentPosition;\r\n\t\t\t\taxisItem.set(\"deltaPosition\", -deltaPosition);\r\n\t\t\t\taxisItem.animate({ key: \"deltaPosition\", to: 0, duration: duration, easing: easing });\r\n\t\t\t\taxisItem.get(\"tick\")?.animate({ key: \"dy\", to: 0, duration: duration, easing: easing });\r\n\t\t\t\taxisItem.get(\"grid\")?.animate({ key: \"dy\", to: 0, duration: duration, easing: easing });\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tpublic _setNewColor(dataItem: DataItem<IGanttCategoryAxisDataItem>, color?: Color): void {\r\n\t\tif (!color) {\r\n\t\t\tcolor = this.gantt?._nextColor();\r\n\t\t}\r\n\t\tdataItem.set(\"color\", color);\r\n\r\n\t\tconst children = dataItem.get(\"children\");\r\n\r\n\t\tif (children && children.length > 0) {\r\n\t\t\t$array.each(children, (child) => {\r\n\t\t\t\tthis._setNewColor(child, color);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateTree(): void {\r\n\t\tconst gantt = this.gantt;\r\n\r\n\t\tif (gantt) {\r\n\t\t\t$array.each(gantt.series.dataItems, (seriesDataItem) => {\r\n\t\t\t\tseriesDataItem.set(\"children\", []);\r\n\t\t\t\tseriesDataItem.set(\"parent\", undefined);\r\n\t\t\t})\r\n\r\n\t\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\t\tconst parent = dataItem.get(\"parent\");\r\n\r\n\t\t\t\tif (parent) {\r\n\t\t\t\t\tconst id = dataItem.get(\"id\")!;\r\n\t\t\t\t\tconst parentId = parent.get(\"id\")!;\r\n\r\n\t\t\t\t\tconst seriesDataItem = gantt.series.getDataItemById(id);\r\n\r\n\t\t\t\t\tdataItem.set(\"parentId\", parentId);\r\n\r\n\t\t\t\t\tconst parentSeriesDataItem = gantt.series.getDataItemById(parentId);\r\n\r\n\t\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\t\tif (parentSeriesDataItem) {\r\n\t\t\t\t\t\t\tseriesDataItem.set(\"parent\", parentSeriesDataItem);\r\n\r\n\t\t\t\t\t\t\tlet children = parentSeriesDataItem.get(\"children\", []);\r\n\t\t\t\t\t\t\t$array.move(children, seriesDataItem);\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\r\n\t\t\t// hide grips for those with children\r\n\t\t\t$array.each(gantt.series.dataItems, (seriesDataItem) => {\r\n\t\t\t\tconst children = seriesDataItem.get(\"children\");\r\n\t\t\t\tconst startGrip = seriesDataItem.get(\"startGrip\");\r\n\t\t\t\tconst endGrip = seriesDataItem.get(\"endGrip\");\r\n\t\t\t\tif (startGrip && endGrip) {\r\n\t\t\t\t\tif (!children || children.length === 0) {\r\n\t\t\t\t\t\tstartGrip.set(\"forceHidden\", false);\r\n\t\t\t\t\t\tendGrip.set(\"forceHidden\", false);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tstartGrip.set(\"forceHidden\", true);\r\n\t\t\t\t\t\tendGrip.set(\"forceHidden\", true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tthis.data.values.length = 0;\r\n\t\t\tgantt.series.data.values.length = 0;\r\n\r\n\t\t\t$array.each(this.dataItems, (dataItem, index) => {\r\n\t\t\t\tdataItem.setRaw(\"index\", index);\r\n\t\t\t\tthis.data.values.push(dataItem.dataContext);\r\n\r\n\t\t\t\tconst seriesDataItem = this.getSeriesDataItem(dataItem);\r\n\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\tgantt.series.data.values.push(seriesDataItem?.dataContext);\r\n\t\t\t\t\t$array.move(gantt.series.dataItems, seriesDataItem);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis._updateCellSizes();\t\t\t// all bullets exept the first one\r\n\t\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\t\tthis._updateBullet(dataItem);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateCellSizes(duration?: number): void {\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tif (duration === undefined) {\r\n\t\t\t\tduration = this.get(\"interpolationDuration\", 0);\r\n\t\t\t}\r\n\r\n\t\t\tconst depth = this._getItemDepth(dataItem);\r\n\t\t\tlet cellSize = this.get(\"childCellSize\", 1);\r\n\t\t\tconst parent = dataItem.get(\"parent\");\r\n\t\t\tif (parent && parent.get(\"collapsed\", false)) {\r\n\t\t\t\tcellSize = 0;\r\n\t\t\t}\r\n\r\n\t\t\tcellSize = Math.pow(cellSize, depth);\r\n\r\n\t\t\tif (dataItem.get(\"deleting\")) {\r\n\t\t\t\tcellSize = 0;\r\n\t\t\t}\r\n\r\n\t\t\t//dataItem.set(\"cellSize\", cellSize);\r\n\t\t\tif (dataItem.get(\"cellSize\", 1) != cellSize) {\r\n\t\t\t\tdataItem.set(\"finalCellSize\", cellSize);\r\n\t\t\t\tdataItem.animate({ key: \"cellSize\", to: cellSize, duration: duration!, easing: this.get(\"interpolationEasing\") });\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (this._dataChangeDp) {\r\n\t\t\tthis._dataChangeDp.dispose();\r\n\t\t}\r\n\t\tthis._dataChangeDp = this.root.events.once(\"frameended\", () => {\r\n\t\t\tthis.adjustZoom();\r\n\t\t})\r\n\t}\r\n\r\n\tpublic _updateBullet(dataItem: DataItem<IGanttCategoryAxisDataItem>): void {\r\n\t\tconst taskBullet = dataItem.get(\"taskBullet\");\r\n\r\n\t\tif (taskBullet) {\r\n\t\t\tconst depth = this._getItemDepth(dataItem);\r\n\t\t\tconst children = dataItem.get(\"children\");\r\n\r\n\t\t\ttaskBullet.setAll({\r\n\t\t\t\tmarginLeft: this.get(\"childShift\", 20) * depth\r\n\t\t\t});\r\n\r\n\t\t\tconst collapsed = dataItem.get(\"collapsed\", false);\r\n\t\t\tconst icon = taskBullet.get(\"icon\");\r\n\r\n\t\t\tlet hasChildren = false;\r\n\t\t\tif (children && children.length > 0) {\r\n\t\t\t\thasChildren = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (icon) {\r\n\t\t\t\tif (hasChildren) {\r\n\t\t\t\t\ttaskBullet.set(\"disabled\", false);\r\n\t\t\t\t\tthis.root.events.once(\"frameended\", () => {\r\n\t\t\t\t\t\ttaskBullet.set(\"active\", !collapsed);\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ttaskBullet.set(\"disabled\", true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Toggles collapse state of a data item.\r\n\t * @param dataItem \r\n\t * @param collapse \r\n\t * @param duration \r\n\t */\r\n\tpublic toggleCollapse(dataItem: DataItem<IGanttCategoryAxisDataItem>, collapse?: boolean, duration?: number): void {\r\n\t\tif (dataItem && dataItem.get(\"collapsed\", false) !== collapse) {\r\n\r\n\t\t\tconst children = dataItem.get(\"children\");\r\n\t\t\tdataItem.set(\"collapsed\", collapse);\r\n\r\n\t\t\tif (children && children.length > 0) {\r\n\r\n\t\t\t\t$array.each(children, (child) => {\r\n\t\t\t\t\tconst container = child.get(\"container\")!;\r\n\t\t\t\t\tconst grid = child.get(\"grid\")!;\r\n\t\t\t\t\tconst tick = child.get(\"tick\")!;\r\n\r\n\t\t\t\t\tif (container) {\r\n\t\t\t\t\t\tif (collapse) {\r\n\t\t\t\t\t\t\tcontainer.hide();\r\n\t\t\t\t\t\t\tgrid.hide();\r\n\t\t\t\t\t\t\ttick.hide();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tcontainer.show();\r\n\t\t\t\t\t\t\tgrid.show();\r\n\t\t\t\t\t\t\ttick.show();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst gantt = this.gantt;\r\n\t\t\t\t\tif (gantt && gantt.series) {\r\n\t\t\t\t\t\tconst series = gantt.series;\r\n\t\t\t\t\t\tconst seriesDataItem = series.dataItems.find((item) => item.get(\"categoryY\") === child.get(\"category\"));\r\n\t\t\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\t\t\tif (collapse) {\r\n\t\t\t\t\t\t\t\tseriesDataItem.hide();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tseriesDataItem.show();\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\r\n\t\t\t\t\tthis.toggleCollapse(child, collapse, duration);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis._updateBullet(dataItem);\r\n\r\n\t\t\tif (this._updDP) {\r\n\t\t\t\tthis._updDP.dispose();\r\n\t\t\t}\r\n\t\t\tthis._updDP = this.root.events.once(\"frameended\", () => {\r\n\t\t\t\tthis._updateCellSizes(duration);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Expands all categories in the axis.\r\n\t */\r\n\tpublic expandAll(): void {\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tif (dataItem.get(\"collapsed\", false)) {\r\n\t\t\t\tthis.toggleCollapse(dataItem, false);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Collapses all categories in the axis.\r\n\t */\r\n\tpublic collapseAll(): void {\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tif (!dataItem.get(\"collapsed\", false)) {\r\n\t\t\t\tthis.toggleCollapse(dataItem, true);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Deletes all data items from the axis.\r\n\t */\r\n\tpublic deleteAll(): void {\r\n\t\tthis.data.clear();\r\n\t\tthis.gantt?.series.data.clear();\r\n\t\tthis.selectDataItem(undefined);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Deletes a data item from the axis.\r\n\t *\r\n\t * @param dataItem Data item to delete\r\n\t */\r\n\tpublic deleteDataItem(dataItem: DataItem<IGanttCategoryAxisDataItem>, child?: boolean): void {\r\n\t\tconst series = this.gantt?.series;\r\n\r\n\t\tconst children = dataItem.get(\"children\");\r\n\t\tif (children && children.length > 0) {\r\n\t\t\tfor (let i = children.length - 1; i >= 0; i--) {\r\n\t\t\t\tthis.deleteDataItem(children[i], true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdataItem.set(\"deleting\", true);\r\n\r\n\t\tif (!child) {\r\n\t\t\tthis._updateCellSizes();\r\n\t\t}\r\n\r\n\t\tconst container = dataItem.get(\"container\");\r\n\r\n\t\tif (container) {\r\n\t\t\tconst promise = container.hide();\r\n\t\t\tpromise.then(() => {\r\n\t\t\t\tif (series && seriesDataItem) {\r\n\t\t\t\t\tseries.setPrivate(\"minX\", undefined);\r\n\t\t\t\t\tseries.setPrivate(\"maxX\", undefined);\r\n\t\t\t\t\tseries.data.removeValue(seriesDataItem.dataContext);\r\n\t\t\t\t}\r\n\t\t\t\tthis.data.removeValue(dataItem.dataContext);\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\t\tlet seriesDataItem: DataItem<IGanttSeriesDataItem> | undefined;\r\n\t\tif (series) {\r\n\t\t\tseriesDataItem = this.getSeriesDataItem(dataItem);\r\n\t\t\tif (seriesDataItem) {\r\n\t\t\t\tseriesDataItem.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Toggles progress pie for a data item. Toggling means that progress pie\r\n\t * will animate to 1 if it was less than 1, or animate to previous progress\r\n\t * value if it was 1.\r\n\t *\r\n\t * @param dataItem Data item to toggle progress pie for\r\n\t */\r\n\tpublic toggleProgressPie(dataItem?: DataItem<IGanttCategoryAxisDataItem>, value?: number): void {\r\n\t\tif (dataItem) {\r\n\t\t\tconst children = dataItem.get(\"children\");\r\n\t\t\tif (children && children.length > 0) {\r\n\r\n\t\t\t\tconst currentValue = dataItem.get(\"progress\", 0);\r\n\t\t\t\tlet toValue: number | undefined = undefined;\r\n\t\t\t\tif (currentValue !== 1) {\r\n\t\t\t\t\ttoValue = 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$array.each(children, (child: DataItem<IGanttCategoryAxisDataItem>) => {\r\n\t\t\t\t\tthis.toggleProgressPie(child, toValue);\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconst seriesDataItem = this.getSeriesDataItem(dataItem);\r\n\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\tconst progress = seriesDataItem.get(\"progress\", 0);\r\n\t\t\t\t\tconst prevProgress = seriesDataItem.get(\"prevProgress\", 0);\r\n\r\n\t\t\t\t\tlet toProgress = 1;\r\n\t\t\t\t\tif (progress == 1 && prevProgress != undefined) {\r\n\t\t\t\t\t\ttoProgress = prevProgress\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\ttoProgress = value;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tseriesDataItem.set(\"prevProgress\", progress);\r\n\t\t\t\t\tseriesDataItem.animate({\r\n\t\t\t\t\t\tkey: \"progress\",\r\n\t\t\t\t\t\tto: toProgress,\r\n\t\t\t\t\t\tduration: this.get(\"interpolationDuration\", 0), easing: this.get(\"interpolationEasing\")\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a custom color for a data item.\r\n\t *\r\n\t * @param dataItem Data item to set color for\r\n\t * @param c Color to set\r\n\t */\r\n\tpublic setDataItemColor(dataItem?: DataItem<IGanttCategoryAxisDataItem>, c?: Color): void {\r\n\t\tif (dataItem) {\r\n\t\t\tconst cc = dataItem.get(\"color\");\r\n\t\t\tif (c && cc && c.hex === cc.hex) {\r\n\t\t\t\tc = undefined;\r\n\t\t\t}\r\n\r\n\t\t\tdataItem.set(\"customColor\", c);\r\n\r\n\t\t\t// children\r\n\t\t\tconst children = dataItem.get(\"children\");\r\n\t\t\tif (children && children.length > 0) {\r\n\t\t\t\t$array.each(children, (child: DataItem<IGanttCategoryAxisDataItem>) => {\r\n\t\t\t\t\tthis.setDataItemColor(child, c);\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tthis.gantt?.series.markDirtyValues();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Hides axis's data item.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param duration Animation duration in milliseconds\r\n\t * @return Promise\r\n\t */\r\n\tpublic async hideDataItem(dataItem: DataItem<IGanttCategoryAxisDataItem>): Promise<void> {\r\n\t\tconst promise = super.hideDataItem(dataItem);\r\n\r\n\t\tconst container = dataItem.get(\"container\");\r\n\t\tif (container) {\r\n\t\t\tcontainer.hide();\r\n\t\t}\r\n\r\n\t\treturn promise;\r\n\t}\r\n\r\n\t/**\r\n\t * Shows axis's data item.\r\n\t *\r\n\t * @param dataItem Data item\r\n\t * @param duration Animation duration in milliseconds\r\n\t * @return Promise\r\n\t */\r\n\tpublic async showDataItem(dataItem: DataItem<IGanttCategoryAxisDataItem>): Promise<void> {\r\n\t\tconst promise = super.showDataItem(dataItem);\r\n\t\tconst container = dataItem.get(\"container\");\r\n\t\tif (container) {\r\n\t\t\tcontainer.show();\r\n\t\t}\r\n\t\treturn promise;\r\n\t}\r\n\r\n\tpublic _toggleFHDataItem(dataItem: DataItem<IGanttCategoryAxisDataItem>, forceHidden: boolean) {\r\n\t\tconst fh = \"forceHidden\";\r\n\t\tconst container = dataItem.get(\"container\");\r\n\t\tif (container) {\r\n\t\t\tcontainer.set(fh, forceHidden);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tpublic _toggleDataItem(dataItem: DataItem<IGanttCategoryAxisDataItem>, visible: boolean) {\r\n\t\tsuper._toggleDataItem(dataItem, visible);\r\n\t\tconst container = dataItem.get(\"container\");\r\n\t\tif (container) {\r\n\t\t\tcontainer.set(\"visible\", visible);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Disposes a data item.\r\n\t *\r\n\t * @param dataItem Data item to dispose\r\n\t */\r\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\r\n\t\tsuper.disposeDataItem(dataItem);\r\n\r\n\t\t// remove all elements\r\n\t\tconst renderer = this.get(\"renderer\");\r\n\t\tconst container = dataItem.get(\"container\");\r\n\t\tif (container) {\r\n\t\t\trenderer.containers.removeValue(container);\r\n\t\t\tcontainer.dispose();\r\n\t\t}\r\n\r\n\t\t// progress pie\r\n\t\tconst progressPie = dataItem.get(\"progressPie\");\r\n\t\tif (progressPie) {\r\n\t\t\trenderer.progressPies.removeValue(progressPie);\r\n\t\t\tprogressPie.dispose();\r\n\t\t}\r\n\r\n\t\t// grips\r\n\t\tconst grip = dataItem.get(\"grip\");\r\n\t\tif (grip) {\r\n\t\t\trenderer.grips.removeValue(grip);\r\n\t\t\tgrip.dispose();\r\n\t\t}\r\n\t\t// duration stepper\r\n\t\tconst durationStepper = dataItem.get(\"durationStepper\");\r\n\t\tif (durationStepper) {\r\n\t\t\trenderer.durationSteppers.removeValue(durationStepper);\r\n\t\t\tdurationStepper.dispose();\r\n\t\t}\r\n\r\n\t\t// task bullet\r\n\t\tconst taskBullet = dataItem.get(\"taskBullet\");\r\n\t\tif (taskBullet) {\r\n\t\t\trenderer.taskBullets.removeValue(taskBullet);\r\n\t\t\ttaskBullet.dispose();\r\n\t\t}\r\n\r\n\t\tconst parent = dataItem.get(\"parent\");\r\n\r\n\t\tif (parent) {\r\n\t\t\tconst children = parent.get(\"children\");\r\n\r\n\t\t\tif (children) {\r\n\t\t\t\t$array.remove(children, dataItem);\r\n\t\t\t}\r\n\t\t\tthis._updateBullet(parent);\r\n\t\t}\r\n\r\n\t\tthis._updateCellSizes();\r\n\t}\r\n\r\n\t/**\r\n\t * Selects a data item and shows the delete button. If the data item is\r\n\t * already selected, it will unselect it.\r\n\t *\r\n\t * @param dataItem Data item to select\r\n\t */\r\n\tpublic selectDataItem(dataItem?: DataItem<IGanttCategoryAxisDataItem>): void {\r\n\t\tif (!this.gantt?.get(\"editable\", true)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (dataItem === this.get(\"selectedDataItem\")) {\r\n\t\t\tthis.unselectDataItems();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.unselectDataItems();\r\n\r\n\t\tif (!dataItem) {\r\n\t\t\tthis.setRaw(\"selectedDataItem\", undefined);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst container = dataItem.get(\"container\");\r\n\t\tif (container) {\r\n\t\t\tconst bg = container.get(\"background\");\r\n\t\t\tif (bg) {\r\n\t\t\t\tbg.set(\"active\", true);\r\n\t\t\t}\r\n\r\n\t\t\tconst progressPie = dataItem.get(\"progressPie\");\r\n\t\t\tprogressPie?.children.push(this.xButton);\r\n\r\n\t\t\tthis.setRaw(\"selectedDataItem\", dataItem);\r\n\r\n\t\t\tif (this._xHideDP) {\r\n\t\t\t\tthis._xHideDP.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tthis.gantt?.colorPickerButton.set(\"color\", dataItem.get(\"customColor\", dataItem.get(\"color\")));\r\n\r\n\t\t\tthis.setTimeout(() => {\r\n\t\t\t\tthis._xHideDP = this.events.once(\"globalpointerup\", () => {\r\n\t\t\t\t\tthis.unselectDataItems();\r\n\t\t\t\t})\r\n\t\t\t}, 200);\r\n\r\n\t\t\tif (this._delDp) {\r\n\t\t\t\tthis._delDp.dispose();\r\n\t\t\t}\r\n\r\n\t\t\tthis._delDp = this.xButton.events.once(\"click\", () => {\r\n\t\t\t\tconst parent = this.xButton.parent;\r\n\t\t\t\tif (parent) {\r\n\t\t\t\t\tparent.children.removeValue(this.xButton);\r\n\t\t\t\t}\r\n\t\t\t\tthis.deleteDataItem(dataItem);\r\n\t\t\t\tthis.unselectDataItems();\r\n\t\t\t})\r\n\r\n\t\t\tthis.xButton.show();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.unselectDataItems();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Unselects all data items.\r\n\t */\r\n\tpublic unselectDataItems(): void {\r\n\t\tthis.setRaw(\"selectedDataItem\", undefined);\r\n\t\tthis.xButton.hide(0);\r\n\t\t$array.each(this.dataItems, (dataItem: DataItem<IGanttCategoryAxisDataItem>) => {\r\n\t\t\tconst container = dataItem.get(\"container\");\r\n\t\t\tif (container) {\r\n\t\t\t\tconst bg = container.get(\"background\");\r\n\t\t\t\tif (bg) {\r\n\t\t\t\t\tbg.set(\"active\", false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic _disposeXHideDP() {\r\n\t\tif (this._xHideDP) {\r\n\t\t\tthis._xHideDP.dispose();\r\n\t\t\tthis._xHideDP = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * @param dataItem \r\n\t * @returns depth of the data item in the hierarchy\r\n\t */\r\n\tpublic _getItemDepth(dataItem: DataItem<IGanttCategoryAxisDataItem>): number {\r\n\t\tlet depth = 0;\r\n\t\tlet parent = dataItem.get(\"parent\");\r\n\t\twhile (parent) {\r\n\t\t\tdepth++;\r\n\t\t\tparent = parent.get(\"parent\");\r\n\t\t}\r\n\t\treturn depth;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * Overrides original method so that a ghost label is not created.\r\n\t */\r\n\tprotected _createGhostLabel() { }\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GanttDefaultTheme.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/GanttDefaultTheme.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAQzC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC3C,SAAS,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"GanttDefaultTheme.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/GanttDefaultTheme.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAQzC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC3C,SAAS,CAAC,iBAAiB;CA62B3B"}
|
|
@@ -652,7 +652,7 @@ export class GanttDefaultTheme extends Theme {
|
|
|
652
652
|
{
|
|
653
653
|
const rule = r("Graphics", ["icon", "edit", "button"]);
|
|
654
654
|
rule.setAll({
|
|
655
|
-
svgPath: "M
|
|
655
|
+
svgPath: "M 11 -1 L 17 5 L 8 14 L 2 14 L 2 8 L 11 -1 M 7 11 L 15 3 M 5 9 L 13 1 M 2 8 L 5 9 L 5 11 L 7 11 L 8 14 M 2 12 L 4 14"
|
|
656
656
|
});
|
|
657
657
|
setColor(rule, "stroke", ic, "secondaryButton");
|
|
658
658
|
}
|
|
@@ -686,7 +686,8 @@ export class GanttDefaultTheme extends Theme {
|
|
|
686
686
|
{
|
|
687
687
|
const rule = r("Graphics", ["icon", "link", "button"]);
|
|
688
688
|
rule.setAll({
|
|
689
|
-
|
|
689
|
+
dy: 1,
|
|
690
|
+
svgPath: "M 5 4 L 13 4 C 17 4 17 11 13 11 L 8 11 C 4 11 4 18 8 18 L 16 18 L 14 16 L 14 20 L 16 18"
|
|
690
691
|
});
|
|
691
692
|
setColor(rule, "stroke", ic, "secondaryButton");
|
|
692
693
|
}
|
|
@@ -727,7 +728,6 @@ export class GanttDefaultTheme extends Theme {
|
|
|
727
728
|
}
|
|
728
729
|
// x button (shown when clicked on a task)
|
|
729
730
|
r("Button", ["xbutton"]).setAll({
|
|
730
|
-
position: "absolute",
|
|
731
731
|
width: 35,
|
|
732
732
|
height: 35,
|
|
733
733
|
centerX: p50,
|