@syncfusion/ej2-gantt 22.2.5 → 22.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/ej2-gantt.min.js +2 -2
  3. package/dist/ej2-gantt.umd.min.js +2 -2
  4. package/dist/ej2-gantt.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-gantt.es2015.js +299 -214
  6. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  7. package/dist/es6/ej2-gantt.es5.js +299 -214
  8. package/dist/es6/ej2-gantt.es5.js.map +1 -1
  9. package/dist/global/ej2-gantt.min.js +2 -2
  10. package/dist/global/ej2-gantt.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +15 -15
  13. package/src/gantt/actions/context-menu.js +7 -1
  14. package/src/gantt/actions/critical-path.js +14 -3
  15. package/src/gantt/actions/edit.js +5 -2
  16. package/src/gantt/actions/taskbar-edit.js +29 -2
  17. package/src/gantt/base/css-constants.d.ts +1 -0
  18. package/src/gantt/base/css-constants.js +1 -0
  19. package/src/gantt/base/gantt-chart.js +3 -0
  20. package/src/gantt/base/gantt.js +7 -0
  21. package/src/gantt/base/interface.d.ts +0 -2
  22. package/src/gantt/base/task-processor.js +1 -0
  23. package/src/gantt/base/tree-grid.js +20 -4
  24. package/src/gantt/renderer/chart-rows.js +25 -6
  25. package/src/gantt/renderer/connector-line.d.ts +0 -2
  26. package/src/gantt/renderer/connector-line.js +130 -153
  27. package/src/gantt/renderer/edit-tooltip.js +7 -7
  28. package/src/gantt/renderer/timeline.js +1 -2
  29. package/src/gantt/renderer/tooltip.js +28 -29
  30. package/styles/bootstrap-dark.css +1 -1
  31. package/styles/bootstrap.css +1 -1
  32. package/styles/bootstrap4.css +1 -1
  33. package/styles/bootstrap5-dark.css +1 -1
  34. package/styles/bootstrap5.css +1 -1
  35. package/styles/fabric-dark.css +1 -1
  36. package/styles/fabric.css +1 -1
  37. package/styles/fluent-dark.css +1 -1
  38. package/styles/fluent.css +1 -1
  39. package/styles/gantt/_layout.scss +1 -1
  40. package/styles/gantt/bootstrap-dark.css +1 -1
  41. package/styles/gantt/bootstrap.css +1 -1
  42. package/styles/gantt/bootstrap4.css +1 -1
  43. package/styles/gantt/bootstrap5-dark.css +1 -1
  44. package/styles/gantt/bootstrap5.css +1 -1
  45. package/styles/gantt/fabric-dark.css +1 -1
  46. package/styles/gantt/fabric.css +1 -1
  47. package/styles/gantt/fluent-dark.css +1 -1
  48. package/styles/gantt/fluent.css +1 -1
  49. package/styles/gantt/highcontrast-light.css +1 -1
  50. package/styles/gantt/highcontrast.css +1 -1
  51. package/styles/gantt/material-dark.css +1 -1
  52. package/styles/gantt/material.css +1 -1
  53. package/styles/gantt/material3-dark.css +1 -1
  54. package/styles/gantt/material3.css +1 -1
  55. package/styles/gantt/tailwind-dark.css +1 -1
  56. package/styles/gantt/tailwind.css +1 -1
  57. package/styles/highcontrast-light.css +1 -1
  58. package/styles/highcontrast.css +1 -1
  59. package/styles/material-dark.css +1 -1
  60. package/styles/material.css +1 -1
  61. package/styles/material3-dark.css +1 -1
  62. package/styles/material3.css +1 -1
  63. package/styles/tailwind-dark.css +1 -1
  64. package/styles/tailwind.css +1 -1
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 22.2.5
3
+ * version : 22.2.8
4
4
  * Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-gantt@*",
3
- "_id": "@syncfusion/ej2-gantt@22.1.39",
3
+ "_id": "@syncfusion/ej2-gantt@22.2.7",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-BaZToryAhXozcJBwqEyD9K9htNmV3PTYvCDPk8h1v/Je1zOdHHgWDK7J4fjBZpHPvXhDV5oVqMFRSEzanRuGaw==",
5
+ "_integrity": "sha512-qEmtJ4SVLRUtGVQ4ydjKAujo32uBoR2yLYtG/4EZHulkKvcO7R7w5unKRejOf79CewBiNYJsXnaKa1qVEAPhPg==",
6
6
  "_location": "/@syncfusion/ej2-gantt",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -23,8 +23,8 @@
23
23
  "/@syncfusion/ej2-react-gantt",
24
24
  "/@syncfusion/ej2-vue-gantt"
25
25
  ],
26
- "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-gantt/-/ej2-gantt-22.1.39.tgz",
27
- "_shasum": "5c1001858679a9709c098c4d2f36870ac74bbe52",
26
+ "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-gantt/-/ej2-gantt-22.2.7.tgz",
27
+ "_shasum": "d1938874bfb2e708939be14a9a22d732ef197433",
28
28
  "_spec": "@syncfusion/ej2-gantt@*",
29
29
  "_where": "/jenkins/workspace/elease-automation_release_21.1.1/packages/included",
30
30
  "author": {
@@ -36,20 +36,20 @@
36
36
  "bundleDependencies": false,
37
37
  "dependencies": {
38
38
  "@syncfusion/ej2-base": "~22.2.5",
39
- "@syncfusion/ej2-buttons": "~22.2.5",
40
- "@syncfusion/ej2-calendars": "~22.2.5",
39
+ "@syncfusion/ej2-buttons": "~22.2.8",
40
+ "@syncfusion/ej2-calendars": "~22.2.8",
41
41
  "@syncfusion/ej2-data": "~22.2.5",
42
- "@syncfusion/ej2-dropdowns": "~22.2.5",
43
- "@syncfusion/ej2-grids": "~22.2.5",
44
- "@syncfusion/ej2-inputs": "~22.2.5",
42
+ "@syncfusion/ej2-dropdowns": "~22.2.8",
43
+ "@syncfusion/ej2-grids": "~22.2.8",
44
+ "@syncfusion/ej2-inputs": "~22.2.7",
45
45
  "@syncfusion/ej2-layouts": "~22.2.5",
46
- "@syncfusion/ej2-lists": "~22.2.5",
47
- "@syncfusion/ej2-navigations": "~22.2.5",
46
+ "@syncfusion/ej2-lists": "~22.2.8",
47
+ "@syncfusion/ej2-navigations": "~22.2.8",
48
48
  "@syncfusion/ej2-notifications": "~22.2.5",
49
- "@syncfusion/ej2-popups": "~22.2.5",
49
+ "@syncfusion/ej2-popups": "~22.2.7",
50
50
  "@syncfusion/ej2-richtexteditor": "~22.2.5",
51
- "@syncfusion/ej2-svg-base": "~22.2.5",
52
- "@syncfusion/ej2-treegrid": "~22.2.5"
51
+ "@syncfusion/ej2-svg-base": "~22.2.8",
52
+ "@syncfusion/ej2-treegrid": "~22.2.7"
53
53
  },
54
54
  "deprecated": false,
55
55
  "description": "Essential JS 2 Gantt Component",
@@ -74,6 +74,6 @@
74
74
  "url": "git+https://github.com/syncfusion/ej2-gantt.git"
75
75
  },
76
76
  "typings": "index.d.ts",
77
- "version": "22.2.5",
77
+ "version": "22.2.8",
78
78
  "sideEffects": false
79
79
  }
@@ -151,7 +151,13 @@ var ContextMenu = /** @class */ (function () {
151
151
  }
152
152
  break;
153
153
  case 'DeleteTask':
154
- this.parent.editModule.deleteRecord(this.rowData);
154
+ if ((this.parent.selectionSettings.mode !== 'Cell' && this.parent.selectionModule.selectedRowIndexes.length > 1)
155
+ || (this.parent.selectionSettings.mode === 'Cell' && this.parent.selectionModule.getSelectedRowCellIndexes().length)) {
156
+ this.parent.editModule.startDeleteAction();
157
+ }
158
+ else {
159
+ this.parent.editModule.deleteRecord(this.rowData);
160
+ }
155
161
  break;
156
162
  case 'ToTask':
157
163
  if (!isNullOrUndefined(this.rowData)) {
@@ -619,7 +619,7 @@ var CriticalPath = /** @class */ (function () {
619
619
  }
620
620
  var predecessorLength = flatRecords[index].ganttProperties.predecessor;
621
621
  var noSlackValue = 0 + ' ' + flatRecords[index].ganttProperties.durationUnit;
622
- for (var i = 0; i < predecessorLength.length; i++) {
622
+ for (var i = predecessorLength.length - 1; i >= 0; i--) {
623
623
  var toID = void 0;
624
624
  if (this.parent.viewType === 'ProjectView') {
625
625
  toID = this.parent.ids.indexOf(predecessorLength[i].to);
@@ -630,8 +630,19 @@ var CriticalPath = /** @class */ (function () {
630
630
  var dateDifference = void 0;
631
631
  var currentData = flatRecords[index].ganttProperties;
632
632
  if (predecessorLength[i].type === 'FS') {
633
- /* eslint-disable-next-line */
634
- dateDifference = this.parent.dataOperation.getDuration(currentData.endDate, flatRecords[toID].ganttProperties.startDate, currentData.durationUnit, currentData.isAutoSchedule, currentData.isMilestone);
633
+ if (predecessorLength[i].to != currentData.taskId.toString() || this.parent.viewType === 'ResourceView') {
634
+ /* eslint-disable-next-line */
635
+ dateDifference = this.parent.dataOperation.getDuration(currentData.endDate, flatRecords[toID].ganttProperties.startDate, currentData.durationUnit, currentData.isAutoSchedule, currentData.isMilestone);
636
+ }
637
+ else {
638
+ toID = this.parent.ids.indexOf(predecessorLength[i].from);
639
+ /* eslint-disable-next-line */
640
+ dateDifference = this.parent.dataOperation.getDuration(flatRecords[toID].ganttProperties.endDate, currentData.startDate, currentData.durationUnit, currentData.isAutoSchedule, currentData.isMilestone);
641
+ if (dateDifference === 0 && index !== toID && flatRecords[index].slack == noSlackValue) {
642
+ flatRecords[toID].slack = flatRecords[index].slack;
643
+ flatRecords[toID].ganttProperties.slack = flatRecords[index].slack;
644
+ }
645
+ }
635
646
  if (dateDifference === 0 && index !== toID && flatRecords[index].slack !== noSlackValue) {
636
647
  flatRecords[index].slack = flatRecords[toID].slack;
637
648
  flatRecords[index].ganttProperties.slack = flatRecords[toID].slack;
@@ -1,5 +1,5 @@
1
1
  import { isNullOrUndefined, isUndefined, extend, setValue, getValue, deleteObject, createElement } from '@syncfusion/ej2-base';
2
- import { DataManager, Query, ODataAdaptor, WebApiAdaptor } from '@syncfusion/ej2-data';
2
+ import { DataManager, Query, ODataAdaptor, WebApiAdaptor, ODataV4Adaptor } from '@syncfusion/ej2-data';
3
3
  import { getUid } from '@syncfusion/ej2-grids';
4
4
  import { getSwapKey, isScheduledTask, getTaskData, isRemoteData, getIndex, isCountRequired, updateDates } from '../base/utils';
5
5
  import { CellEdit } from './cell-edit';
@@ -2926,7 +2926,7 @@ var Edit = /** @class */ (function () {
2926
2926
  /* tslint:disable-next-line */
2927
2927
  var query = _this.parent.query instanceof Query ? _this.parent.query : new Query();
2928
2928
  var adaptor = data_2.adaptor;
2929
- if (!(adaptor instanceof WebApiAdaptor && adaptor instanceof ODataAdaptor) || data_2.dataSource.batchUrl) {
2929
+ if (!(adaptor instanceof WebApiAdaptor && adaptor instanceof ODataAdaptor && adaptor instanceof ODataV4Adaptor) || data_2.dataSource.batchUrl) {
2930
2930
  /* tslint:disable-next-line */
2931
2931
  var crud = data_2.saveChanges(updatedData_2, _this.parent.taskFields.id, null, query);
2932
2932
  crud.then(function (e) {
@@ -3061,6 +3061,9 @@ var Edit = /** @class */ (function () {
3061
3061
  else if (ganttColumns[i].field === 'taskType') {
3062
3062
  tempRecord[fieldName] = this.parent.taskType;
3063
3063
  }
3064
+ else if (ganttColumns[i].field === taskSettingsFields.milestone) {
3065
+ tempRecord[fieldName] = null;
3066
+ }
3064
3067
  else {
3065
3068
  tempRecord[this.parent.ganttColumns[i].field] = '';
3066
3069
  }
@@ -482,6 +482,12 @@ var TaskbarEdit = /** @class */ (function (_super) {
482
482
  */
483
483
  TaskbarEdit.prototype.updateMouseDownProperties = function (event) {
484
484
  var e = this.getCoordinate(event);
485
+ var parentWithZoomStyle = this.parent.element.closest('[style*="zoom"]');
486
+ if (parentWithZoomStyle) {
487
+ var zoom1 = parseFloat(getComputedStyle(parentWithZoomStyle).zoom);
488
+ e.pageX = e.pageX / zoom1;
489
+ e.pageY = e.pageY / zoom1;
490
+ }
485
491
  if (e.pageX || e.pageY) {
486
492
  var containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
487
493
  if (this.parent.enableRtl) {
@@ -693,6 +699,12 @@ var TaskbarEdit = /** @class */ (function (_super) {
693
699
  TaskbarEdit.prototype.updateMouseMoveProperties = function (event) {
694
700
  var containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
695
701
  var e = this.getCoordinate(event);
702
+ var parentWithZoomStyle = this.parent.element.closest('[style*="zoom"]');
703
+ if (parentWithZoomStyle) {
704
+ var zoom1 = parseFloat(getComputedStyle(parentWithZoomStyle).zoom);
705
+ e.pageX = e.pageX / zoom1;
706
+ e.pageY = e.pageY / zoom1;
707
+ }
696
708
  if (e.pageX || e.pageY) {
697
709
  if (this.parent.enableRtl) {
698
710
  this.mouseMoveX = Math.abs(e.pageX - (containerPosition.left +
@@ -1110,7 +1122,16 @@ var TaskbarEdit = /** @class */ (function (_super) {
1110
1122
  }
1111
1123
  else {
1112
1124
  if (this.mouseMoveX < (item.left + segment.left)) {
1113
- segment.width = this.parent.perDayWidth;
1125
+ var segmentWidth = (this.parent.timelineModule.isSingleTier &&
1126
+ (this.parent.timelineModule.customTimelineSettings.bottomTier.unit === "Hour" ||
1127
+ this.parent.timelineModule.customTimelineSettings.topTier.unit === "Hour" ||
1128
+ this.parent.timelineModule.customTimelineSettings.bottomTier.unit === "Minutes" ||
1129
+ this.parent.timelineModule.customTimelineSettings.topTier.unit === "Minutes")) ||
1130
+ (this.parent.timelineModule.customTimelineSettings.bottomTier.unit === "Hour" ||
1131
+ this.parent.timelineModule.customTimelineSettings.bottomTier.unit === "Minutes") ?
1132
+ this.parent.timelineModule.customTimelineSettings.timelineUnitSize :
1133
+ this.parent.perDayWidth;
1134
+ segment.width = segmentWidth;
1114
1135
  }
1115
1136
  }
1116
1137
  }
@@ -2075,6 +2096,12 @@ var TaskbarEdit = /** @class */ (function (_super) {
2075
2096
  };
2076
2097
  // eslint-disable-next-line
2077
2098
  TaskbarEdit.prototype.triggerDependencyEvent = function (e, mouseUp) {
2099
+ var parentWithZoomStyle = this.parent.element.closest('[style*="zoom"]');
2100
+ var zoomedPageY;
2101
+ if (parentWithZoomStyle) {
2102
+ var zoom1 = parseFloat(getComputedStyle(parentWithZoomStyle).zoom);
2103
+ zoomedPageY = e.pageY / zoom1;
2104
+ }
2078
2105
  var fromItem = this.taskBarEditRecord.ganttProperties;
2079
2106
  var toItem = this.connectorSecondRecord ? this.connectorSecondRecord.ganttProperties : null;
2080
2107
  var predecessor;
@@ -2136,7 +2163,7 @@ var TaskbarEdit = /** @class */ (function (_super) {
2136
2163
  table[1].innerText = toItem.taskName;
2137
2164
  table[2].innerText = this.parent.localeObj.getConstant(currentTarget);
2138
2165
  var tooltipElement = this.parent.connectorLineModule.tooltipTable.parentElement.parentElement;
2139
- if (tooltipElement.offsetTop + tooltipElement.offsetHeight > e.pageY) {
2166
+ if (tooltipElement.offsetTop + tooltipElement.offsetHeight > zoomedPageY) {
2140
2167
  tooltipElement.style.top = (e.pageY - tooltipElement.offsetHeight - 20) + 'px';
2141
2168
  }
2142
2169
  }
@@ -46,6 +46,7 @@ export declare const chartRowCell: string;
46
46
  export declare const chartRow: string;
47
47
  export declare const rowExpand: string;
48
48
  export declare const rowCollapse: string;
49
+ export declare const collapseParent: string;
49
50
  export declare const taskBarLeftResizer: string;
50
51
  export declare const taskBarRightResizer: string;
51
52
  export declare const childProgressResizer: string;
@@ -48,6 +48,7 @@ export var chartRowCell = 'e-chart-row-cell';
48
48
  export var chartRow = 'e-chart-row';
49
49
  export var rowExpand = 'e-row-expand';
50
50
  export var rowCollapse = 'e-row-collapse';
51
+ export var collapseParent = 'e-collapse-parent';
51
52
  export var taskBarLeftResizer = 'e-taskbar-left-resizer';
52
53
  export var taskBarRightResizer = 'e-taskbar-right-resizer';
53
54
  export var childProgressResizer = 'e-child-progress-resizer';
@@ -120,6 +120,9 @@ var GanttChart = /** @class */ (function () {
120
120
  }
121
121
  this.updateWidthAndHeight();
122
122
  this.parent.notify('selectRowByIndex', {});
123
+ if (this.parent.timelineModule.isZoomToFit) {
124
+ this.parent.timelineModule.processZoomToFit();
125
+ }
123
126
  };
124
127
  /**
125
128
  * @param {IGanttData[]} records .
@@ -831,6 +831,13 @@ var Gantt = /** @class */ (function (_super) {
831
831
  if (this.enableCriticalPath && criticalModule && criticalModule.criticalPathCollection) {
832
832
  this.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
833
833
  }
834
+ this.calculateDimensions();
835
+ var pane1 = this.splitterModule.splitterObject.element.querySelectorAll('.e-pane')[0];
836
+ var pane2 = this.splitterModule.splitterObject.element.querySelectorAll('.e-pane')[1];
837
+ this.splitterModule.splitterPreviousPositionGrid = pane1.scrollWidth + 1 + 'px';
838
+ this.splitterModule.splitterPreviousPositionChart = pane2.scrollWidth + 1 + 'px';
839
+ this.splitterModule.splitterObject.paneSettings[0].size = this.splitterModule['getSpliterPositionInPercentage'](this.splitterModule.splitterPreviousPositionGrid);
840
+ this.splitterModule.splitterObject.paneSettings[1].size = this.splitterModule.splitterPreviousPositionChart;
834
841
  }
835
842
  };
836
843
  Gantt.prototype.keyActionHandler = function (e) {
@@ -401,8 +401,6 @@ export interface IConnectorLineObject {
401
401
  isCritical?: boolean;
402
402
  parentEndPoint?: number;
403
403
  childEndPoint?: number;
404
- isManualChild?: boolean;
405
- isManualParent?: boolean;
406
404
  }
407
405
  export interface ISplitterResizedEventArgs {
408
406
  /** Defines the element. */
@@ -2430,6 +2430,7 @@ var TaskProcessor = /** @class */ (function (_super) {
2430
2430
  this.parent.setRecordValue('progress', Math.floor(parentProgress), parentProp, true);
2431
2431
  this.parent.setRecordValue('totalProgress', totalProgress, parentProp, true);
2432
2432
  this.parent.setRecordValue('totalDuration', totalDuration, parentProp, true);
2433
+ this.parent.setRecordValue('autoDuration', parentProp.duration, parentProp, true);
2433
2434
  if (!parentProp.isAutoSchedule) {
2434
2435
  this.parent.setRecordValue('autoDuration', this.calculateAutoDuration(parentProp), parentProp, true);
2435
2436
  this.updateAutoWidthLeft(parentData);
@@ -620,8 +620,16 @@ var GanttTreeGrid = /** @class */ (function () {
620
620
  this.parent.getDateFormat().toLowerCase().indexOf('hh') !== -1 ? 'datetimepickeredit' : 'datepickeredit';
621
621
  column.format = column.format ? column.format : { type: 'date', format: this.parent.getDateFormat() };
622
622
  column.width = column.width ? column.width : 150;
623
- if (!column.edit || (column.edit && !column.edit.create)) {
624
- column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
623
+ if (column.edit && column.edit.params) {
624
+ column.edit.params['renderDayCell'] = this.parent.renderWorkingDayCell.bind(this.parent);
625
+ }
626
+ else {
627
+ if (column.edit) {
628
+ column.edit.params = { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) };
629
+ }
630
+ else {
631
+ column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
632
+ }
625
633
  }
626
634
  }
627
635
  else if (taskSettings.endDate === column.field) {
@@ -635,8 +643,16 @@ var GanttTreeGrid = /** @class */ (function () {
635
643
  column.editType = column.editType ? column.editType :
636
644
  this.parent.getDateFormat().toLowerCase().indexOf('hh') !== -1 ? 'datetimepickeredit' : 'datepickeredit';
637
645
  column.width = column.width ? column.width : 150;
638
- if (!column.edit || (column.edit && !column.edit.create)) {
639
- column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
646
+ if (column.edit && column.edit.params) {
647
+ column.edit.params['renderDayCell'] = this.parent.renderWorkingDayCell.bind(this.parent);
648
+ }
649
+ else {
650
+ if (column.edit) {
651
+ column.edit.params = { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) };
652
+ }
653
+ else {
654
+ column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
655
+ }
640
656
  }
641
657
  }
642
658
  else if (taskSettings.duration === column.field) {
@@ -256,7 +256,7 @@ var ChartRows = /** @class */ (function (_super) {
256
256
  childTaskbarNode = this.createDivElement(template);
257
257
  }
258
258
  }
259
- if (this.parent.enableRtl && childTaskbarNode[0] && childTaskbarNode[0].querySelector('.e-task-label')) {
259
+ if (this.parent.enableRtl && !isNullOrUndefined(childTaskbarNode) && childTaskbarNode[0] && childTaskbarNode[0].querySelector('.e-task-label')) {
260
260
  childTaskbarNode[0].querySelector('.e-task-label').style.marginLeft = '15px';
261
261
  childTaskbarNode[0].querySelector('.e-task-label').style.marginRight = '8px';
262
262
  if (childTaskbarNode[0].querySelector('.e-gantt-child-progressbar')) {
@@ -638,8 +638,8 @@ var ChartRows = /** @class */ (function (_super) {
638
638
  milestoneNode = this.milestoneTemplateFunction(extend({ index: i }, data), this.parent, 'MilestoneTemplate', this.getTemplateID('MilestoneTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
639
639
  }
640
640
  else {
641
- var template = '<div class="' + cls.traceMilestone + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;height:' +
642
- ((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;position:absolute;transform: rotate(45deg);top:' + (this.parent.rowHeight > 40 ? 0 : 2) + 'px;left:' + (this.parent.renderBaseline ? 2 : 1) + 'px;"> </div>';
641
+ var template = '<div class="' + cls.traceMilestone + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight : this.taskBarHeight - 6)) + 'px;height:' +
642
+ ((this.parent.renderBaseline ? this.taskBarHeight : this.taskBarHeight - 6)) + 'px;position:absolute;transform: rotate(45deg);top:' + (this.parent.rowHeight > 40 ? 0 : 1) + 'px;left:' + 1 + 'px;"> </div>';
643
643
  milestoneNode = this.createDivElement(template);
644
644
  }
645
645
  return milestoneNode;
@@ -667,9 +667,9 @@ var ChartRows = /** @class */ (function (_super) {
667
667
  ChartRows.prototype.getMilestoneBaselineNode = function () {
668
668
  var data = this.templateData;
669
669
  var baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
670
- var template = '<div class="' + cls.baselineMilestoneContainer + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 5 : this.taskBarHeight - 10) + 2) + 'px;height:' +
671
- ((this.parent.renderBaseline ? this.taskBarHeight - 5 : this.taskBarHeight - 10) + 2) + 'px;position:absolute;transform:rotate(45deg);' + (this.parent.enableRtl ? 'right:' : 'left:') + (this.parent.enableRtl ? (data.ganttProperties.left -
672
- (this.milestoneHeight / 2) + 3) : (data.ganttProperties.baselineLeft - (this.milestoneHeight / 2) + 2)) + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + 'margin-top:' + ((-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) + 3) + 'px"> </div>';
670
+ var template = '<div class="' + cls.baselineMilestoneContainer + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight : this.taskBarHeight - 10)) + 'px;height:' +
671
+ ((this.parent.renderBaseline ? this.taskBarHeight : this.taskBarHeight - 10)) + 'px;position:absolute;transform:rotate(45deg);' + (this.parent.enableRtl ? 'right:' : 'left:') + (this.parent.enableRtl ? (data.ganttProperties.left -
672
+ (this.milestoneHeight / 2) + 3) : (data.ganttProperties.left - (this.milestoneHeight / 2) + 1)) + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + 'margin-top:' + ((-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) + 2) + 'px"> </div>';
673
673
  return this.createDivElement(template);
674
674
  };
675
675
  /**
@@ -1355,6 +1355,12 @@ var ChartRows = /** @class */ (function (_super) {
1355
1355
  (_a = this.ganttChartTableBody).replaceChildren.apply(_a, dupChartBody.childNodes);
1356
1356
  this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
1357
1357
  }
1358
+ if (this.parent.enableCriticalPath && this.parent.criticalPathModule) {
1359
+ var criticalModule = this.parent.criticalPathModule;
1360
+ if (criticalModule.criticalPathCollection) {
1361
+ this.parent.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
1362
+ }
1363
+ }
1358
1364
  this.parent.renderTemplates();
1359
1365
  this.triggerQueryTaskbarInfo();
1360
1366
  this.parent.modifiedRecords = [];
@@ -1369,6 +1375,7 @@ var ChartRows = /** @class */ (function (_super) {
1369
1375
  }
1370
1376
  }
1371
1377
  }
1378
+ this.parent.isGanttChartRendered = true;
1372
1379
  this.parent.renderTemplates();
1373
1380
  };
1374
1381
  /**
@@ -1691,6 +1698,18 @@ var ChartRows = /** @class */ (function (_super) {
1691
1698
  }
1692
1699
  }
1693
1700
  else if (taskbarElement) {
1701
+ if (taskbarElement && this.parent.enableVirtualization && !args.data.expanded) {
1702
+ var childElement = trElement.querySelector('.' + cls.collapseParent);
1703
+ if (childElement) {
1704
+ for (var i = 0; i < childElement.childNodes.length; i++) {
1705
+ var taskbar = childElement.childNodes[i];
1706
+ var mainTaskbar = taskbar.querySelector('.' + cls.traceChildTaskBar);
1707
+ if (mainTaskbar) {
1708
+ mainTaskbar.style.backgroundColor = args.taskbarBgColor;
1709
+ }
1710
+ }
1711
+ }
1712
+ }
1694
1713
  if (taskbarElement.querySelector(classCollections[0]) &&
1695
1714
  getComputedStyle(taskbarElement.querySelector(classCollections[0])).backgroundColor !== args.taskbarBgColor) {
1696
1715
  taskbarElement.querySelector(classCollections[0]).style.backgroundColor = args.taskbarBgColor;
@@ -17,8 +17,6 @@ export declare class ConnectorLine {
17
17
  private y2;
18
18
  private y3;
19
19
  private y4;
20
- private manualParent;
21
- private manualChild;
22
20
  private point1;
23
21
  private point2;
24
22
  private parent;