@syncfusion/ej2-gantt 23.1.41 → 23.1.42

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 (57) hide show
  1. package/CHANGELOG.md +13 -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 +160 -123
  6. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  7. package/dist/es6/ej2-gantt.es5.js +160 -123
  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 +10 -10
  13. package/src/gantt/actions/chart-scroll.js +6 -1
  14. package/src/gantt/actions/critical-path.js +1 -0
  15. package/src/gantt/actions/edit.js +5 -2
  16. package/src/gantt/actions/rowdragdrop.js +6 -6
  17. package/src/gantt/actions/taskbar-edit.d.ts +4 -1
  18. package/src/gantt/actions/taskbar-edit.js +65 -80
  19. package/src/gantt/base/gantt-chart.js +35 -18
  20. package/src/gantt/export/export-helper.js +11 -11
  21. package/src/gantt/renderer/chart-rows.js +26 -5
  22. package/src/gantt/renderer/connector-line.js +6 -1
  23. package/styles/bootstrap-dark.css +1 -1
  24. package/styles/bootstrap.css +1 -1
  25. package/styles/bootstrap4.css +1 -1
  26. package/styles/bootstrap5-dark.css +1 -1
  27. package/styles/bootstrap5.css +1 -1
  28. package/styles/fabric-dark.css +1 -1
  29. package/styles/fabric.css +1 -1
  30. package/styles/fluent-dark.css +1 -1
  31. package/styles/fluent.css +1 -1
  32. package/styles/gantt/_layout.scss +1 -1
  33. package/styles/gantt/bootstrap-dark.css +1 -1
  34. package/styles/gantt/bootstrap.css +1 -1
  35. package/styles/gantt/bootstrap4.css +1 -1
  36. package/styles/gantt/bootstrap5-dark.css +1 -1
  37. package/styles/gantt/bootstrap5.css +1 -1
  38. package/styles/gantt/fabric-dark.css +1 -1
  39. package/styles/gantt/fabric.css +1 -1
  40. package/styles/gantt/fluent-dark.css +1 -1
  41. package/styles/gantt/fluent.css +1 -1
  42. package/styles/gantt/highcontrast-light.css +1 -1
  43. package/styles/gantt/highcontrast.css +1 -1
  44. package/styles/gantt/material-dark.css +1 -1
  45. package/styles/gantt/material.css +1 -1
  46. package/styles/gantt/material3-dark.css +1 -1
  47. package/styles/gantt/material3.css +1 -1
  48. package/styles/gantt/tailwind-dark.css +1 -1
  49. package/styles/gantt/tailwind.css +1 -1
  50. package/styles/highcontrast-light.css +1 -1
  51. package/styles/highcontrast.css +1 -1
  52. package/styles/material-dark.css +1 -1
  53. package/styles/material.css +1 -1
  54. package/styles/material3-dark.css +1 -1
  55. package/styles/material3.css +1 -1
  56. package/styles/tailwind-dark.css +1 -1
  57. package/styles/tailwind.css +1 -1
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 23.1.41
3
+ * version : 23.1.42
4
4
  * Copyright Syncfusion Inc. 2001 - 2023. 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@23.1.39",
3
+ "_id": "@syncfusion/ej2-gantt@23.1.41",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-qmaxSxoGo8FGSqkz9vwQ5ZwJUzq/09DO/DKLY7frot25EBgT1cF3xUvWpi/9qrgyqAz7vjy4gUfHSTu09XSplQ==",
5
+ "_integrity": "sha512-jcs4HoOTCFjd5sg6HO6k4E4cnFZBYamHgtWru3YhD1fcQ1cDEl5j3sxBHdh1dPqSkD/1R9mRrPPMk2EMSW+BqQ==",
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-23.1.39.tgz",
27
- "_shasum": "d505c2c3910ba7b673aff9c4a980f87c3e4af30d",
26
+ "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-gantt/-/ej2-gantt-23.1.41.tgz",
27
+ "_shasum": "a46af0dab1574ccd5e24f13fc8cff8e239743030",
28
28
  "_spec": "@syncfusion/ej2-gantt@*",
29
29
  "_where": "/jenkins/workspace/elease-automation_release_23.1.1/packages/included",
30
30
  "author": {
@@ -36,14 +36,14 @@
36
36
  "bundleDependencies": false,
37
37
  "dependencies": {
38
38
  "@syncfusion/ej2-base": "~23.1.41",
39
- "@syncfusion/ej2-buttons": "~23.1.41",
39
+ "@syncfusion/ej2-buttons": "~23.1.42",
40
40
  "@syncfusion/ej2-calendars": "~23.1.41",
41
41
  "@syncfusion/ej2-data": "~23.1.36",
42
- "@syncfusion/ej2-dropdowns": "~23.1.41",
43
- "@syncfusion/ej2-grids": "~23.1.41",
44
- "@syncfusion/ej2-inputs": "~23.1.40",
42
+ "@syncfusion/ej2-dropdowns": "~23.1.42",
43
+ "@syncfusion/ej2-grids": "~23.1.42",
44
+ "@syncfusion/ej2-inputs": "~23.1.42",
45
45
  "@syncfusion/ej2-layouts": "~23.1.36",
46
- "@syncfusion/ej2-lists": "~23.1.36",
46
+ "@syncfusion/ej2-lists": "~23.1.42",
47
47
  "@syncfusion/ej2-navigations": "~23.1.41",
48
48
  "@syncfusion/ej2-notifications": "~23.1.40",
49
49
  "@syncfusion/ej2-popups": "~23.1.38",
@@ -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": "23.1.41",
77
+ "version": "23.1.42",
78
78
  "sideEffects": false
79
79
  }
@@ -91,7 +91,12 @@ var ChartScroll = /** @class */ (function () {
91
91
  for (var i = 0; i < parent.currentViewData.length; i++) {
92
92
  var tr = parent.chartRowsModule.ganttChartTableBody.childNodes[i];
93
93
  if (tr['style'].display !== 'none' && parent.currentViewData[i].hasChildRecords && !parent.currentViewData[i].expanded) {
94
- parent.treeGrid.getRowByIndex(i)['style'].height = tr['style'].height;
94
+ if (parent.ganttChartModule.isExpandAll || parent.ganttChartModule.isCollapseAll) {
95
+ parent.treeGrid.getRowByIndex(i)['style'].height = tr['style'].height;
96
+ }
97
+ else {
98
+ parent.treeGrid.getRows()[i]['style'].height = tr['style'].height;
99
+ }
95
100
  }
96
101
  }
97
102
  parent.contentHeight = parent.enableRtl ? parent['element'].getElementsByClassName('e-content')[2].children[0]['offsetHeight'] :
@@ -648,6 +648,7 @@ var CriticalPath = /** @class */ (function () {
648
648
  fromRecord.isCritical = record.ganttProperties.isCritical;
649
649
  fromRecord.ganttProperties.isCritical = record.ganttProperties.isCritical;
650
650
  if (criticalPathIds.indexOf(fromRecord.ganttProperties.taskId) === -1 && fromRecord.ganttProperties.isCritical && fromRecord.ganttProperties.progress < 100) {
651
+ criticalPathIds.push(fromRecord.ganttProperties.taskId);
651
652
  this.validatedids.push(parseInt(fromRecord.ganttProperties.taskId));
652
653
  if (this.criticalTasks.indexOf(fromRecord) === -1) {
653
654
  this.criticalTasks.push(fromRecord);
@@ -1301,7 +1301,7 @@ var Edit = /** @class */ (function () {
1301
1301
  this.parent.editedRecords[parseInt(i.toString(), 10)].ganttProperties['endDate'] = rec[this.parent.taskFields.endDate];
1302
1302
  }
1303
1303
  if (this.parent.taskFields.duration !== null) {
1304
- this.parent.editedRecords[parseInt(i.toString(), 10)].ganttProperties['duration'] = parseInt(rec[this.parent.taskFields.duration]);
1304
+ this.parent.editedRecords[parseInt(i.toString(), 10)].ganttProperties['duration'] = parseFloat(rec[this.parent.taskFields.duration]);
1305
1305
  }
1306
1306
  if (this.parent.taskFields.durationUnit !== null) {
1307
1307
  this.parent.editedRecords[parseInt(i.toString(), 10)].ganttProperties['durationUnit'] = rec[this.parent.taskFields.durationUnit];
@@ -1390,6 +1390,9 @@ var Edit = /** @class */ (function () {
1390
1390
  this.parent.editModule.dialogModule.previousResource = [];
1391
1391
  }
1392
1392
  if (!this.isTreeGridRefresh) {
1393
+ if (this.parent.editSettings.allowEditing && this.parent.treeGrid.element.getElementsByClassName('e-editedbatchcell').length > 0) {
1394
+ this.parent.treeGrid.endEdit();
1395
+ }
1393
1396
  this.parent.chartRowsModule.refreshRecords(this.parent.editedRecords);
1394
1397
  if (this.parent.viewType === 'ResourceView' && !this.parent.allowTaskbarOverlap && this.parent.showOverAllocation) {
1395
1398
  this.parent.contentHeight = this.parent['element'].getElementsByClassName('e-content')[0].children[0]['offsetHeight'];
@@ -2927,7 +2930,7 @@ var Edit = /** @class */ (function () {
2927
2930
  args.data.ganttProperties['endDate'] = serverReturnedValue[this.parent.taskFields.endDate];
2928
2931
  }
2929
2932
  if (this.parent.taskFields.duration !== null) {
2930
- args.data.ganttProperties['duration'] = parseInt(serverReturnedValue[this.parent.taskFields.duration]);
2933
+ args.data.ganttProperties['duration'] = parseFloat(serverReturnedValue[this.parent.taskFields.duration]);
2931
2934
  }
2932
2935
  if (this.parent.taskFields.durationUnit !== null) {
2933
2936
  args.data.ganttProperties['durationUnit'] = serverReturnedValue[this.parent.taskFields.durationUnit];
@@ -467,12 +467,12 @@ var RowDD = /** @class */ (function () {
467
467
  RowDD.prototype.deleteSharedResourceTask = function () {
468
468
  for (var i = 0; i < this.parent.getTaskIds().length; i++) {
469
469
  if (this.parent.getTaskIds()[i] === 'T' + this.draggedRecord.ganttProperties.taskId) {
470
- if (this.parent.getTaskByUniqueID(this.parent.currentViewData[i].parentItem.uniqueID).ganttProperties.taskName !== 'Unassigned Task') {
471
- this.removeRecords(this.parent.currentViewData[i]);
470
+ if (this.parent.getTaskByUniqueID(this.parent.flatData[i].parentItem.uniqueID).ganttProperties.taskName !== 'Unassigned Task') {
471
+ this.removeRecords(this.parent.flatData[i]);
472
472
  }
473
473
  /* eslint-disable-next-line */
474
- if (!isNullOrUndefined(this.parent.currentViewData[i].parentItem && this.updateParentRecords.indexOf(this.parent.currentViewData[i].parentItem) !== -1)) {
475
- this.updateParentRecords.push(this.parent.currentViewData[i].parentItem);
474
+ if (!isNullOrUndefined(this.parent.flatData[i].parentItem && this.updateParentRecords.indexOf(this.parent.flatData[i].parentItem) !== -1)) {
475
+ this.updateParentRecords.push(this.parent.flatData[i].parentItem);
476
476
  }
477
477
  }
478
478
  }
@@ -496,7 +496,7 @@ var RowDD = /** @class */ (function () {
496
496
  this.parent.editModule.updateGanttProperties(this.draggedRecord, this.parent.flatData[i]);
497
497
  this.parent.dataOperation.updateTaskData(this.parent.flatData[i]);
498
498
  /* eslint-disable-next-line */
499
- if (!isNullOrUndefined(this.parent.flatData[i].parentItem && this.updateParentRecords.indexOf(this.parent.currentViewData[i].parentItem) !== -1)) {
499
+ if (!isNullOrUndefined(this.parent.flatData[i].parentItem && this.updateParentRecords.indexOf(this.parent.flatData[i].parentItem) !== -1)) {
500
500
  this.updateParentRecords.push(this.parent.flatData[i].parentItem);
501
501
  }
502
502
  }
@@ -927,7 +927,7 @@ var RowDD = /** @class */ (function () {
927
927
  }
928
928
  var data = [];
929
929
  for (var i = 0; i < fromIndexes.length; i++) {
930
- data[i] = this.parent.updatedRecords[fromIndexes[i]];
930
+ data[i] = this.parent.flatData[fromIndexes[i]];
931
931
  }
932
932
  var isByMethod = true;
933
933
  var args = {
@@ -10,6 +10,9 @@ export declare class TaskbarEdit extends DateProcessor {
10
10
  taskBarEditRecord: IGanttData;
11
11
  taskBarEditAction: string;
12
12
  roundOffDuration: boolean;
13
+ private droppedTarget;
14
+ leftValue: number;
15
+ private previousLeftValue;
13
16
  private mouseDownX;
14
17
  private mouseDownY;
15
18
  mouseMoveX: number;
@@ -50,7 +53,7 @@ export declare class TaskbarEdit extends DateProcessor {
50
53
  currentItemTop: number;
51
54
  currentItemPrevTop: number;
52
55
  topValue: number;
53
- draggedRecordMarginTop: number;
56
+ draggedRecordMarginTop: string;
54
57
  dragMoveY: number;
55
58
  private realTaskbarElement;
56
59
  private cloneTaskbarElement;
@@ -34,6 +34,8 @@ var TaskbarEdit = /** @class */ (function (_super) {
34
34
  __extends(TaskbarEdit, _super);
35
35
  function TaskbarEdit(ganttObj) {
36
36
  var _this = _super.call(this, ganttObj) || this;
37
+ _this.leftValue = 0;
38
+ _this.previousLeftValue = 0;
37
39
  _this.isMouseDragged = false;
38
40
  _this.dependencyCancel = false;
39
41
  _this.editElement = null;
@@ -45,7 +47,7 @@ var TaskbarEdit = /** @class */ (function (_super) {
45
47
  _this.currentItemTop = 0;
46
48
  _this.currentItemPrevTop = 0;
47
49
  _this.topValue = 0;
48
- _this.draggedRecordMarginTop = 0;
50
+ _this.draggedRecordMarginTop = '0px';
49
51
  _this.parent = ganttObj;
50
52
  _this.initPublicProp();
51
53
  _this.wireEvents();
@@ -516,17 +518,6 @@ var TaskbarEdit = /** @class */ (function (_super) {
516
518
  this.mouseDownY = this.dragMoveY = e.pageY - containerPosition.top +
517
519
  this.parent.ganttChartModule.scrollObject.previousScroll.top;
518
520
  }
519
- if (this.parent.viewType == "ResourceView" && this.parent.allowTaskbarDragAndDrop) {
520
- var toolbarHeight = 0;
521
- if (!isNullOrUndefined(this.parent.toolbarModule) && !isNullOrUndefined(this.parent.toolbarModule.element)) {
522
- toolbarHeight = this.parent.toolbarModule.element.offsetHeight;
523
- }
524
- this.topValue = this.parent.getOffsetRect(event.target).top - this.parent.getOffsetRect(this.parent.element).top -
525
- parseInt((closest(event.target, '.e-taskbar-main-container'))['style'].marginTop) -
526
- this.parent.element.getElementsByClassName('e-timeline-header-container')[0]['offsetHeight'] -
527
- toolbarHeight + document.getElementsByClassName('e-chart-scroll-container e-content')[0].scrollTop;
528
- this.currentItemPrevTop = this.currentItemTop = this.topValue;
529
- }
530
521
  if (this.taskBarEditAction === 'ConnectorPointLeftDrag' || this.taskBarEditAction === 'ConnectorPointRightDrag') {
531
522
  this.fromPredecessorText = this.taskBarEditAction === 'ConnectorPointLeftDrag' ? 'start' : 'finish';
532
523
  this.parent.connectorLineModule.tooltipTable.innerHTML = this.parent.connectorLineModule.getConnectorLineTooltipInnerTd(this.taskBarEditRecord.ganttProperties.taskName, this.fromPredecessorText, '', '');
@@ -590,7 +581,12 @@ var TaskbarEdit = /** @class */ (function (_super) {
590
581
  currentElement.parentElement.appendChild(this.taskbarElement);
591
582
  }
592
583
  else {
593
- currentElement.appendChild(this.taskbarElement);
584
+ if (this.parent.allowTaskbarDragAndDrop && this.taskBarEditAction !== 'LeftResizing' && this.taskBarEditAction !== 'RightResizing' && this.taskBarEditAction !== 'ProgressResizing') {
585
+ this.parent.chartPane.getElementsByClassName('e-gantt-chart')[0].appendChild(this.taskbarElement);
586
+ }
587
+ else {
588
+ currentElement.appendChild(this.taskbarElement);
589
+ }
594
590
  }
595
591
  if (this.taskBarEditAction !== 'ProgressResizing') {
596
592
  var rootElement = this.parent.ganttChartModule.chartBodyContainer.querySelectorAll(".e-chart-rows-container");
@@ -673,26 +669,40 @@ var TaskbarEdit = /** @class */ (function (_super) {
673
669
  this.triggerDependencyEvent(e);
674
670
  this.drawFalseLine();
675
671
  }
676
- if (this.parent.viewType == 'ResourceView' && this.parent.allowTaskbarDragAndDrop) {
677
- if (this.dragMoveY > this.mouseMoveY) {
678
- this.mouseMoveY = this.dragMoveY - this.mouseMoveY;
679
- this.currentItemTop = this.currentItemTop - this.mouseMoveY;
680
- }
681
- else {
682
- this.mouseMoveY -= this.dragMoveY;
683
- this.currentItemTop = this.currentItemTop + this.mouseMoveY;
684
- }
685
- var containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
686
- if (this.parent.isAdaptive || e.touches) {
687
- this.dragMoveY = e.touches[0].pageY - containerPosition.top + this.parent.ganttChartModule.scrollObject.previousScroll.top;
672
+ if (this.parent.viewType == 'ResourceView' && this.parent.allowTaskbarDragAndDrop && this.taskBarEditAction !== 'LeftResizing' && this.taskBarEditAction !== 'RightResizing' && this.taskBarEditAction !== 'ProgressResizing') {
673
+ var parentClientRect = this.parent.getOffsetRect(this.parent.chartPane);
674
+ var coordinates = this.getCoordinate(e);
675
+ var position = { top: coordinates.pageY, left: coordinates.pageX };
676
+ var pos = { left: Math.abs(position.left - parentClientRect.left), top: position.top - parentClientRect.top };
677
+ var parentRecord = this.parent.getRecordByID(this.taskBarEditRecord.parentItem.taskId);
678
+ if (!this.parent.allowTaskbarOverlap && this.taskBarEditRecord.parentItem && !parentRecord.expanded) {
679
+ var reduceHeight = 0;
680
+ if (parseInt(this.editElement['style'].marginTop) > this.parent.rowHeight) {
681
+ for (var i = 0; i < parentRecord.childRecords.length; i++) {
682
+ if (parentRecord.childRecords[i].ganttProperties.taskId !== this.taskBarEditRecord.ganttProperties.taskId) {
683
+ reduceHeight = reduceHeight + this.parent.rowHeight;
684
+ }
685
+ else {
686
+ break;
687
+ }
688
+ }
689
+ pos.top = pos.top - reduceHeight;
690
+ }
688
691
  }
689
- else {
690
- this.dragMoveY = e.pageY - containerPosition.top + this.parent.ganttChartModule.scrollObject.previousScroll.top;
692
+ this.topValue = pos.top;
693
+ this.leftValue = pos.left - (e.pageX - this.parent.getOffsetRect(this.taskBarEditElement).left) + (this.previousLeftValue !== 0 ? e.pageX - this.previousLeftValue : 0);
694
+ if (this.previousLeftValue == 0) {
695
+ if (!this.parent.enableRtl) {
696
+ this.leftValue = this.leftValue - this.parent.ganttChartModule.scrollObject.previousScroll.left + 4;
697
+ }
698
+ else {
699
+ this.leftValue = this.leftValue + Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left) + 4;
700
+ }
691
701
  }
692
- this.topValue = this.currentItemTop;
693
- this.currentItemPrevTop = (this.currentItemPrevTop === 0 ||
694
- this.topValue == this.currentItemTop) ? this.topValue :
695
- this.currentItemPrevTop;
702
+ this.previousLeftValue = e.pageX;
703
+ }
704
+ else {
705
+ this.leftValue = this.taskBarEditRecord.ganttProperties.left;
696
706
  }
697
707
  this.setItemPosition();
698
708
  this.updateEditedItem();
@@ -1581,7 +1591,7 @@ var TaskbarEdit = /** @class */ (function (_super) {
1581
1591
  }
1582
1592
  }
1583
1593
  }
1584
- taskBarMainContainer.style.setProperty(position, (item.left) + 'px');
1594
+ taskBarMainContainer.style.setProperty(position, (this.parent.allowTaskbarDragAndDrop ? this.leftValue : (item.left)) + 'px');
1585
1595
  taskBarMainContainer.style.width = (width) + 'px';
1586
1596
  if (segmentedTaskBarContainer && segmentConnectorPointRight) {
1587
1597
  segmentConnectorPointRight.style.left = (this.parent.isAdaptive ? (width + 10) : (width + 2)) + 'px';
@@ -1601,7 +1611,7 @@ var TaskbarEdit = /** @class */ (function (_super) {
1601
1611
  segmentElement.style.width = (segment_4.width) + 'px';
1602
1612
  if (i === 0) {
1603
1613
  resizeLine.style.width = (segment_4.width) + "px";
1604
- resizeLine.style.left = (segment_4.left + item.left) + "px";
1614
+ resizeLine.style.setProperty(position, (segment_4.left + item.left) + 'px');
1605
1615
  }
1606
1616
  if (this.parent.enableRtl) {
1607
1617
  segmentElement.style.right = (segment_4.left) + 'px';
@@ -1613,7 +1623,7 @@ var TaskbarEdit = /** @class */ (function (_super) {
1613
1623
  }
1614
1624
  if (this.taskBarEditAction === 'ChildDrag' && this.segmentIndex === 0) {
1615
1625
  resizeLine.style.width = (width) + "px";
1616
- resizeLine.style.left = (item.left) + "px";
1626
+ resizeLine.style.setProperty(position, item.left + 'px');
1617
1627
  taskBarMainContainer.style.setProperty("opacity", '.75');
1618
1628
  }
1619
1629
  }
@@ -1627,7 +1637,7 @@ var TaskbarEdit = /** @class */ (function (_super) {
1627
1637
  }
1628
1638
  if (this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone) {
1629
1639
  taskBarMainContainer.style.setProperty(position, (item.left - (width / 2)) + 'px');
1630
- resizeLine.style.left = (item.left - (width / 2)) + 'px';
1640
+ resizeLine.style.setProperty(position, (item.left - (width / 2)) + 'px');
1631
1641
  resizeLine.style.width = (width) + "px";
1632
1642
  }
1633
1643
  else if (this.taskBarEditAction === 'ProgressResizing') {
@@ -1662,7 +1672,7 @@ var TaskbarEdit = /** @class */ (function (_super) {
1662
1672
  }
1663
1673
  }
1664
1674
  else if (this.taskBarEditAction === 'ParentDrag') {
1665
- resizeLine.style.left = (item.left) + 'px';
1675
+ resizeLine.style.setProperty(position, item.left + 'px');
1666
1676
  resizeLine.style.width = (width) + "px";
1667
1677
  resizeLine.style.width = (item.width) + 'px';
1668
1678
  if (!isNullOrUndefined(traceParentTaskBar)) {
@@ -1675,13 +1685,13 @@ var TaskbarEdit = /** @class */ (function (_super) {
1675
1685
  }
1676
1686
  else if (this.taskBarEditAction === 'ParentResizing') {
1677
1687
  resizeLine.style.width = (item.width) + 'px';
1678
- resizeLine.style.left = item.left + 'px';
1688
+ resizeLine.style.setProperty(position, item.left + 'px');
1679
1689
  manualParentTaskbar.style.width = manualTaskbar.style.width = (item.width) + 'px';
1680
1690
  manualParentRight.style.setProperty(position, item.width - manualParentLeft.offsetLeft + 'px');
1681
1691
  }
1682
1692
  else if (this.taskBarEditAction === 'ManualParentDrag') {
1683
1693
  resizeLine.style.width = (item.width) + 'px';
1684
- resizeLine.style.left = item.left + 'px';
1694
+ resizeLine.style.setProperty(position, item.left + 'px');
1685
1695
  manualParentTaskbar.style.setProperty(position, item.left - item.autoLeft + 'px');
1686
1696
  }
1687
1697
  else {
@@ -1689,8 +1699,8 @@ var TaskbarEdit = /** @class */ (function (_super) {
1689
1699
  traceChildTaskBar.style.width = (item.width) + 'px';
1690
1700
  traceChildTaskBar.style.left = (item.left) + 'px';
1691
1701
  this.taskBarEditElement.style.width = (item.width) + 'px';
1692
- this.taskBarEditElement.style.left = (item.left) + "px";
1693
- resizeLine.style.left = (item.left) + 'px';
1702
+ this.taskBarEditElement.style.left = ((this.parent.allowTaskbarDragAndDrop ? this.leftValue : (item.left))) + "px";
1703
+ resizeLine.style.setProperty(position, item.left + 'px');
1694
1704
  resizeLine.style.width = (item.width) + "px";
1695
1705
  }
1696
1706
  if (!isNullOrUndefined(traceChildProgressBar)) {
@@ -1724,6 +1734,13 @@ var TaskbarEdit = /** @class */ (function (_super) {
1724
1734
  if (this.taskBarEditAction && this.isMouseDragged) {
1725
1735
  if ((!this.dragMouseLeave && this.taskBarEditedAction) || (this.parent.viewType === 'ResourceView' &&
1726
1736
  this.parent.allowTaskbarDragAndDrop)) {
1737
+ if (e.type === 'touchmove' || e.type === 'touchstart' || e.type === 'touchend') {
1738
+ var coordinates = this.getCoordinate(e);
1739
+ this['droppedTarget'] = document.elementFromPoint(coordinates.pageX, coordinates.pageY);
1740
+ }
1741
+ else {
1742
+ this['droppedTarget'] = document.elementFromPoint(e.x, e.y);
1743
+ }
1727
1744
  this.taskBarEditedAction(e);
1728
1745
  this.isMouseDragged = false;
1729
1746
  }
@@ -1834,7 +1851,7 @@ var TaskbarEdit = /** @class */ (function (_super) {
1834
1851
  var args = extend({}, arg);
1835
1852
  var ganttRecord = args.data;
1836
1853
  var taskData = ganttRecord.ganttProperties;
1837
- var draggedRecIndex = this.parent.currentViewData.indexOf(ganttRecord);
1854
+ var draggedRecIndex = this.parent.flatData.indexOf(ganttRecord);
1838
1855
  if ((args.taskBarEditAction === 'MilestoneDrag' || args.taskBarEditAction === 'ChildDrag') && this.parent.viewType === "ResourceView"
1839
1856
  && this.parent.allowTaskbarDragAndDrop && this.dragMoveY > 0) {
1840
1857
  if (this.parent.rowDragAndDropModule) {
@@ -1842,45 +1859,13 @@ var TaskbarEdit = /** @class */ (function (_super) {
1842
1859
  if (flatRecordCol[this.taskBarEditRecord.parentItem.index] && ((this.parent.editedRecords.indexOf(flatRecordCol[this.taskBarEditRecord.parentItem.index]) === -1))) {
1843
1860
  this.parent.editedRecords.push(flatRecordCol[this.taskBarEditRecord.parentItem.index]);
1844
1861
  }
1845
- var ganttrec = void 0;
1846
- var resHeight = 0;
1847
- var rowCount = 0;
1848
- var childIndex_1;
1849
- var droppedRecord = void 0;
1850
- var treeGridrows = this.parent.treeGrid.getRows().length;
1851
- for (var i = 0; i < treeGridrows; i++) {
1852
- if (resHeight < this.dragMoveY && this.parent.getRowByIndex(i).style.display !== 'none') {
1853
- rowCount = i;
1854
- resHeight = resHeight + parseInt(this.parent.getRowByIndex(i).style.height);
1855
- if (!flatRecordCol[i].parentItem) {
1856
- ganttrec = flatRecordCol[i];
1857
- }
1858
- else {
1859
- ganttrec = this.parent.getRecordByID(flatRecordCol[i].parentItem.taskId);
1860
- }
1861
- }
1862
- }
1863
- var draggedRecordtaskbar = this.parent.getRowByIndex(draggedRecIndex).getElementsByClassName('e-taskbar-main-container');
1864
- var taskbarContainer = this.parent.getRowByIndex(rowCount).getElementsByClassName('e-taskbar-main-container');
1865
- for (var j = 0; j < taskbarContainer.length; j++) {
1866
- if (taskbarContainer[j]['offsetTop'] < this.dragMoveY && draggedRecordtaskbar[0].getAttribute('rowuniqueid') !==
1867
- taskbarContainer[j].getAttribute('rowuniqueid')) {
1868
- this.draggedRecordMarginTop = taskbarContainer[j]['style'].marginTop;
1869
- childIndex_1 = taskbarContainer[j].getAttribute('rowuniqueid');
1870
- }
1871
- }
1872
- if (childIndex_1) {
1873
- droppedRecord = this.parent.currentViewData.filter(function (data) {
1874
- if (data['rowUniqueID'] === childIndex_1) {
1875
- return data;
1876
- }
1877
- else {
1878
- return null;
1879
- }
1880
- });
1881
- }
1882
- if (droppedRecord) {
1883
- var droppedRecordIndex = this.parent.currentViewData.indexOf(droppedRecord[0]);
1862
+ var droppedRecord = [];
1863
+ this.draggedRecordMarginTop = this.taskBarEditElement.style.marginTop;
1864
+ var row = closest(this.droppedTarget, 'tr.' + cls.chartRow);
1865
+ var recordIndex = parseInt(row.getAttribute('aria-rowindex'));
1866
+ droppedRecord.push(this.parent.flatData[recordIndex]);
1867
+ if (droppedRecord.length > 0) {
1868
+ var droppedRecordIndex = this.parent.flatData.indexOf(droppedRecord[0]);
1884
1869
  var position = (droppedRecord[0].hasChildRecords || (!droppedRecord[0].parentItem &&
1885
1870
  droppedRecord[0].childRecords.length == 0)) ? 'child' : 'below';
1886
1871
  if (this.parent.rowDragAndDropModule) {
@@ -343,8 +343,14 @@ var GanttChart = /** @class */ (function () {
343
343
  this.parent.notify('chartMouseDown', e);
344
344
  this.parent.element.tabIndex = 0;
345
345
  }
346
- if (this.parent.editSettings.allowEditing && this.parent.treeGrid.element.getElementsByClassName('e-editedbatchcell').length > 0) {
347
- this.parent.treeGrid.endEdit();
346
+ var isTaskbarEdited = false;
347
+ if (this.parent.editSettings.allowTaskbarEditing && this.parent.element.querySelector('.e-left-resize-gripper')) {
348
+ isTaskbarEdited = true;
349
+ }
350
+ if (!isTaskbarEdited) {
351
+ if (this.parent.editSettings.allowEditing && this.parent.treeGrid.element.getElementsByClassName('e-editedbatchcell').length > 0) {
352
+ this.parent.treeGrid.endEdit();
353
+ }
348
354
  }
349
355
  };
350
356
  GanttChart.prototype.ganttChartMouseClick = function (e) {
@@ -354,6 +360,22 @@ var GanttChart = /** @class */ (function () {
354
360
  this.parent.notify('chartMouseClick', e);
355
361
  };
356
362
  GanttChart.prototype.ganttChartMouseUp = function (e) {
363
+ if (e.type === "touchend") {
364
+ var resizeCheck = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-taskbar-resize-div');
365
+ if (!isNullOrUndefined(resizeCheck)) {
366
+ resizeCheck.remove();
367
+ }
368
+ var Check = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-clone-taskbar') || this.parent.chartPane.querySelector('.e-clone-taskbar');
369
+ if (!isNullOrUndefined(Check)) {
370
+ var clonetbody = Check.parentElement;
371
+ var cloneTable = clonetbody.parentElement;
372
+ cloneTable.remove();
373
+ }
374
+ var falseline = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-gantt-false-line');
375
+ if (!isNullOrUndefined(falseline)) {
376
+ this.parent.editModule.taskbarEditModule.removeFalseLine(true);
377
+ }
378
+ }
357
379
  if (this.parent.editSettings.allowTaskbarEditing) {
358
380
  this.parent.notify('chartMouseUp', e);
359
381
  }
@@ -377,22 +399,6 @@ var GanttChart = /** @class */ (function () {
377
399
  }
378
400
  }
379
401
  }
380
- if (e.type === "touchend") {
381
- var resizeCheck = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-taskbar-resize-div');
382
- if (!isNullOrUndefined(resizeCheck)) {
383
- resizeCheck.remove();
384
- }
385
- var Check = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-clone-taskbar');
386
- if (!isNullOrUndefined(Check)) {
387
- var clonetbody = Check.parentElement;
388
- var cloneTable = clonetbody.parentElement;
389
- cloneTable.remove();
390
- }
391
- var falseline = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-gantt-false-line');
392
- if (!isNullOrUndefined(falseline)) {
393
- this.parent.editModule.taskbarEditModule.removeFalseLine(true);
394
- }
395
- }
396
402
  };
397
403
  /**
398
404
  *
@@ -446,6 +452,9 @@ var GanttChart = /** @class */ (function () {
446
452
  if (!isNullOrUndefined(resizeCheck)) {
447
453
  resizeCheck.remove();
448
454
  }
455
+ if (this.parent.allowTaskbarDragAndDrop && this.parent.editModule && this.parent.editModule.taskbarEditModule) {
456
+ this.parent.editModule.taskbarEditModule['previousLeftValue'] = 0;
457
+ }
449
458
  if (this.parent.allowRowDragAndDrop) {
450
459
  var ganttDragElemet = this.parent.element.querySelector('.e-ganttdrag');
451
460
  if (ganttDragElemet) {
@@ -592,6 +601,14 @@ var GanttChart = /** @class */ (function () {
592
601
  if (this.parent.allowFiltering && this.parent.filterModule) {
593
602
  this.parent.filterModule.closeFilterOnContextClick(e.srcElement);
594
603
  }
604
+ if (this.parent.allowTaskbarDragAndDrop) {
605
+ var Check = this.parent.chartPane.querySelector('.e-clone-taskbar');
606
+ if (!isNullOrUndefined(Check)) {
607
+ var clonetbody = Check.parentElement;
608
+ var cloneTable = clonetbody.parentElement;
609
+ cloneTable.remove();
610
+ }
611
+ }
595
612
  };
596
613
  /**
597
614
  * Method to trigger while perform mouse move on Gantt.
@@ -6,7 +6,7 @@ import { PdfFontStyle, PdfColor, PdfPen, PdfSolidBrush } from '@syncfusion/ej2-p
6
6
  import { PdfBorders, PdfPaddings } from './pdf-base/index';
7
7
  import { isNullOrUndefined, Internationalization, getValue, extend } from '@syncfusion/ej2-base';
8
8
  import { getForeignData, ValueFormatter } from '@syncfusion/ej2-grids';
9
- import { pixelToPoint, isScheduledTask } from '../base/utils';
9
+ import { pixelToPoint, isScheduledTask, pointToPixel } from '../base/utils';
10
10
  /**
11
11
  * @hidden
12
12
  * `ExportHelper` for `PdfExport` & `ExcelExport`
@@ -241,10 +241,10 @@ var ExportHelper = /** @class */ (function () {
241
241
  this.parent.predecessorModule.createConnectorLinesCollection();
242
242
  this.parent.updatedConnectorLineCollection.forEach(function (data) {
243
243
  var predecessor = _this.gantt.predecessor.add();
244
- predecessor.parentLeft = data.parentLeft;
245
- predecessor.childLeft = data.childLeft;
246
- predecessor.parentWidth = data.parentWidth;
247
- predecessor.childWidth = data.childWidth;
244
+ predecessor.parentLeft = pointToPixel(data.parentLeft);
245
+ predecessor.childLeft = pointToPixel(data.childLeft);
246
+ predecessor.parentWidth = pointToPixel(data.parentWidth);
247
+ predecessor.childWidth = pointToPixel(data.childWidth);
248
248
  predecessor.parentIndex = data.parentIndex;
249
249
  predecessor.childIndex = data.childIndex;
250
250
  predecessor.rowHeight = data.rowHeight;
@@ -329,8 +329,8 @@ var ExportHelper = /** @class */ (function () {
329
329
  flatData.forEach(function (data) {
330
330
  var taskbar = _this.gantt.taskbar.add();
331
331
  var ganttProp = data.ganttProperties;
332
- taskbar.left = ganttProp.left;
333
- taskbar.width = ganttProp.width;
332
+ taskbar.left = pointToPixel(ganttProp.left);
333
+ taskbar.width = pointToPixel(ganttProp.width);
334
334
  if (taskbar.left < 0) {
335
335
  taskbar.width = taskbar.width + taskbar.left;
336
336
  taskbar.left = 0;
@@ -371,8 +371,8 @@ var ExportHelper = /** @class */ (function () {
371
371
  taskbar.isMilestone = ganttProp.isMilestone;
372
372
  taskbar.baselineStartDate = ganttProp.baselineStartDate;
373
373
  taskbar.baselineEndDate = ganttProp.baselineEndDate;
374
- taskbar.baselineLeft = ganttProp.baselineLeft;
375
- taskbar.baselineWidth = ganttProp.baselineWidth;
374
+ taskbar.baselineLeft = pointToPixel(ganttProp.baselineLeft);
375
+ taskbar.baselineWidth = pointToPixel(ganttProp.baselineWidth);
376
376
  taskbar.milestoneColor = new PdfColor(_this.ganttStyle.taskbar.milestoneColor);
377
377
  taskbar.isParentTask = data.hasChildRecords;
378
378
  if (ganttProp.isMilestone) {
@@ -388,9 +388,9 @@ var ExportHelper = /** @class */ (function () {
388
388
  taskbar.taskLabel = data[_this.parent.labelSettings.taskLabel].toString();
389
389
  }
390
390
  var reduceLeft = ganttProp.isMilestone ? Math.floor(_this.parent.chartRowsModule.taskBarHeight / 2) + 33 : 33; // 33 indicates default timeline cell width
391
- taskbar.rightTaskLabel.left = ganttProp.left + ganttProp.width + reduceLeft; // right label left value
391
+ taskbar.rightTaskLabel.left = pointToPixel(ganttProp.left) + pointToPixel(ganttProp.width) + reduceLeft; // right label left value
392
392
  taskbar.fontFamily = _this.ganttStyle.fontFamily;
393
- taskbar.progressWidth = ganttProp.progressWidth;
393
+ taskbar.progressWidth = pointToPixel(ganttProp.progressWidth);
394
394
  taskbar.labelColor = new PdfColor(_this.ganttStyle.label.fontColor);
395
395
  taskbar.progressFontColor = new PdfColor(_this.ganttStyle.taskbar.progressFontColor);
396
396
  if (taskbar.isParentTask) {
@@ -1851,7 +1851,12 @@ var ChartRows = /** @class */ (function (_super) {
1851
1851
  if (!tr) {
1852
1852
  tr = this.ganttChartTableBody.childNodes[rowIndex];
1853
1853
  }
1854
- tr['style'].height = this.parent.treeGrid.getRowByIndex(rowIndex)['style'].height = this.parent.rowHeight + 'px';
1854
+ if (this.parent.ganttChartModule.isExpandAll || this.parent.ganttChartModule.isCollapseAll) {
1855
+ tr['style'].height = this.parent.treeGrid.getRowByIndex(rowIndex)['style'].height = this.parent.rowHeight + 'px';
1856
+ }
1857
+ else {
1858
+ tr['style'].height = this.parent.treeGrid.getRows()[rowIndex]['style'].height = this.parent.rowHeight + 'px';
1859
+ }
1855
1860
  this.parent.contentHeight = treeGridContentHeight;
1856
1861
  var rowIDs = [];
1857
1862
  var rowCounts = 0;
@@ -1868,7 +1873,12 @@ var ChartRows = /** @class */ (function (_super) {
1868
1873
  rowCounts++;
1869
1874
  tr.children[0]['style'].verticalAlign = 'baseline';
1870
1875
  tr.getElementsByClassName('e-taskbar-main-container')[k]['style'].marginTop = (rowCounts * this.parent.rowHeight) + this.taskBarMarginTop + 'px';
1871
- tr['style'].height = this.parent.treeGrid.getRowByIndex(rowIndex)['style'].height = parseInt(tr['style'].height) + this.parent.rowHeight + 'px';
1876
+ if (this.parent.ganttChartModule.isExpandAll || this.parent.ganttChartModule.isCollapseAll) {
1877
+ tr['style'].height = this.parent.treeGrid.getRowByIndex(rowIndex)['style'].height = parseInt(tr['style'].height) + this.parent.rowHeight + 'px';
1878
+ }
1879
+ else {
1880
+ tr['style'].height = this.parent.treeGrid.getRows()[rowIndex]['style'].height = parseInt(tr['style'].height) + this.parent.rowHeight + 'px';
1881
+ }
1872
1882
  }
1873
1883
  }
1874
1884
  else {
@@ -1901,7 +1911,12 @@ var ChartRows = /** @class */ (function (_super) {
1901
1911
  if (index !== -1 && selectedItem) {
1902
1912
  var data = selectedItem;
1903
1913
  if (!this.parent.allowTaskbarOverlap && this.parent.viewType === 'ResourceView' && data.expanded) {
1904
- tr['style'].height = this.parent.treeGrid.getRowByIndex(index)['style'].height = this.parent.rowHeight + 'px';
1914
+ if (this.parent.ganttChartModule.isExpandAll || this.parent.ganttChartModule.isCollapseAll) {
1915
+ tr['style'].height = this.parent.treeGrid.getRowByIndex(index)['style'].height = this.parent.rowHeight + 'px';
1916
+ }
1917
+ else {
1918
+ tr['style'].height = this.parent.treeGrid.getRows()[index]['style'].height = this.parent.rowHeight + 'px';
1919
+ }
1905
1920
  }
1906
1921
  if (this.parent.viewType === 'ResourceView' && data.hasChildRecords && !data.expanded && this.parent.enableMultiTaskbar) {
1907
1922
  tr.replaceChild(this.getResourceParent(data).childNodes[0], tr.childNodes[0]);
@@ -1962,8 +1977,14 @@ var ChartRows = /** @class */ (function (_super) {
1962
1977
  addClass([cloneElement], 'collpse-parent-border');
1963
1978
  var id = tRow.querySelector('.' + cls.taskBarMainContainer).getAttribute('rowUniqueId');
1964
1979
  var ganttData = this.parent.getRecordByID(id);
1965
- var mainTaskbar = (cloneElement.querySelector('.e-gantt-child-taskbar'));
1966
- if (this.parent.queryTaskbarInfo) {
1980
+ if (!(isNullOrUndefined(ganttData)) && ganttData.ganttProperties.segments && ganttData.ganttProperties.segments.length > 0) {
1981
+ var segmentedTasks = cloneElement.getElementsByClassName('e-segmented-taskbar');
1982
+ for (var i = 0; i < segmentedTasks.length; i++) {
1983
+ this.triggerQueryTaskbarInfoByIndex(segmentedTasks[i], ganttData);
1984
+ }
1985
+ }
1986
+ else if (this.parent.queryTaskbarInfo) {
1987
+ var mainTaskbar = (cloneElement.querySelector('.e-gantt-child-taskbar'));
1967
1988
  this.triggerQueryTaskbarInfoByIndex(mainTaskbar, ganttData);
1968
1989
  }
1969
1990
  var zIndex = "";