@syncfusion/ej2-gantt 20.2.38 → 20.2.44

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 (70) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/ej2-gantt.umd.min.js +2 -2
  3. package/dist/ej2-gantt.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-gantt.es2015.js +115 -46
  5. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  6. package/dist/es6/ej2-gantt.es5.js +115 -46
  7. package/dist/es6/ej2-gantt.es5.js.map +1 -1
  8. package/dist/global/ej2-gantt.min.js +2 -2
  9. package/dist/global/ej2-gantt.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +18 -18
  12. package/src/gantt/actions/cell-edit.js +3 -0
  13. package/src/gantt/actions/context-menu.js +1 -1
  14. package/src/gantt/actions/critical-path.js +2 -8
  15. package/src/gantt/actions/edit.js +3 -2
  16. package/src/gantt/actions/rowdragdrop.js +8 -2
  17. package/src/gantt/base/date-processor.js +9 -3
  18. package/src/gantt/base/gantt-chart.d.ts +4 -0
  19. package/src/gantt/base/gantt-chart.js +36 -4
  20. package/src/gantt/base/gantt.d.ts +1 -0
  21. package/src/gantt/base/gantt.js +46 -26
  22. package/src/gantt/base/tree-grid.js +1 -0
  23. package/src/gantt/renderer/chart-rows.js +6 -0
  24. package/src/gantt/renderer/tooltip.js +1 -1
  25. package/styles/bootstrap-dark.css +4 -4
  26. package/styles/bootstrap.css +4 -4
  27. package/styles/bootstrap4.css +4 -4
  28. package/styles/bootstrap5-dark.css +4 -4
  29. package/styles/bootstrap5.css +4 -4
  30. package/styles/fabric-dark.css +4 -4
  31. package/styles/fabric.css +4 -4
  32. package/styles/fluent-dark.css +4 -4
  33. package/styles/fluent.css +4 -4
  34. package/styles/gantt/_layout.scss +9 -19
  35. package/styles/gantt/_theme.scss +1 -19
  36. package/styles/gantt/bootstrap-dark.css +4 -4
  37. package/styles/gantt/bootstrap.css +4 -4
  38. package/styles/gantt/bootstrap4.css +4 -4
  39. package/styles/gantt/bootstrap5-dark.css +4 -4
  40. package/styles/gantt/bootstrap5.css +4 -4
  41. package/styles/gantt/fabric-dark.css +4 -4
  42. package/styles/gantt/fabric.css +4 -4
  43. package/styles/gantt/fluent-dark.css +4 -4
  44. package/styles/gantt/fluent.css +4 -4
  45. package/styles/gantt/highcontrast-light.css +4 -4
  46. package/styles/gantt/highcontrast.css +4 -4
  47. package/styles/gantt/icons/_bootstrap-dark.scss +3 -3
  48. package/styles/gantt/icons/_bootstrap.scss +3 -3
  49. package/styles/gantt/icons/_bootstrap4.scss +5 -5
  50. package/styles/gantt/icons/_bootstrap5.scss +3 -3
  51. package/styles/gantt/icons/_fabric-dark.scss +3 -3
  52. package/styles/gantt/icons/_fabric.scss +3 -3
  53. package/styles/gantt/icons/_fluent.scss +3 -3
  54. package/styles/gantt/icons/_fusionnew.scss +3 -3
  55. package/styles/gantt/icons/_highcontrast.scss +3 -3
  56. package/styles/gantt/icons/_material-dark.scss +3 -3
  57. package/styles/gantt/icons/_material.scss +3 -3
  58. package/styles/gantt/icons/_material3.scss +3 -3
  59. package/styles/gantt/icons/_tailwind-dark.scss +3 -3
  60. package/styles/gantt/icons/_tailwind.scss +3 -3
  61. package/styles/gantt/material-dark.css +4 -4
  62. package/styles/gantt/material.css +4 -4
  63. package/styles/gantt/tailwind-dark.css +4 -4
  64. package/styles/gantt/tailwind.css +4 -4
  65. package/styles/highcontrast-light.css +4 -4
  66. package/styles/highcontrast.css +4 -4
  67. package/styles/material-dark.css +4 -4
  68. package/styles/material.css +4 -4
  69. package/styles/tailwind-dark.css +4 -4
  70. package/styles/tailwind.css +4 -4
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 20.2.38
3
+ * version : 20.2.44
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@20.2.36",
3
+ "_id": "@syncfusion/ej2-gantt@20.2.43",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-7nClwwDPnrsSRqXw3okXeWajAGJUG7LDDgYZHbaTLopCL9EasuMZ+aFbFCqM2Ly9GXjONYH0Wo4J2kQ7VPrVBw==",
5
+ "_integrity": "sha512-VDzQ7VV68IMZBz7NCb1rHFjC15ida3IqeFVfF+z3SIXddalUkhZSeNITlKsY+s+3ZOIWiKG7ch9XDY/mQkugTQ==",
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": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-gantt/-/ej2-gantt-20.2.36.tgz",
27
- "_shasum": "9df96357502324bbdb4eeef866fe6f62a28c6eef",
26
+ "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-gantt/-/ej2-gantt-20.2.43.tgz",
27
+ "_shasum": "0ee7a7133101b7e2886d1f4064f27cccdefa4eac",
28
28
  "_spec": "@syncfusion/ej2-gantt@*",
29
29
  "_where": "/jenkins/workspace/automation_release_19.1.0.1-ZPMUBNQ6AUYH6YGEFBPVYMEQLRRW2SLD4XCZ6GATNZJFYJ3RIAOA/packages/included",
30
30
  "author": {
@@ -35,19 +35,19 @@
35
35
  },
36
36
  "bundleDependencies": false,
37
37
  "dependencies": {
38
- "@syncfusion/ej2-base": "~20.2.38",
39
- "@syncfusion/ej2-buttons": "~20.2.38",
40
- "@syncfusion/ej2-calendars": "~20.2.38",
41
- "@syncfusion/ej2-data": "~20.2.38",
42
- "@syncfusion/ej2-dropdowns": "~20.2.38",
43
- "@syncfusion/ej2-grids": "~20.2.38",
44
- "@syncfusion/ej2-inputs": "~20.2.38",
45
- "@syncfusion/ej2-layouts": "~20.2.38",
46
- "@syncfusion/ej2-lists": "~20.2.38",
47
- "@syncfusion/ej2-navigations": "~20.2.38",
48
- "@syncfusion/ej2-popups": "~20.2.38",
49
- "@syncfusion/ej2-richtexteditor": "~20.2.38",
50
- "@syncfusion/ej2-treegrid": "~20.2.38"
38
+ "@syncfusion/ej2-base": "~20.2.43",
39
+ "@syncfusion/ej2-buttons": "~20.2.43",
40
+ "@syncfusion/ej2-calendars": "~20.2.43",
41
+ "@syncfusion/ej2-data": "~20.2.43",
42
+ "@syncfusion/ej2-dropdowns": "~20.2.44",
43
+ "@syncfusion/ej2-grids": "~20.2.44",
44
+ "@syncfusion/ej2-inputs": "~20.2.44",
45
+ "@syncfusion/ej2-layouts": "~20.2.43",
46
+ "@syncfusion/ej2-lists": "~20.2.43",
47
+ "@syncfusion/ej2-navigations": "~20.2.44",
48
+ "@syncfusion/ej2-popups": "~20.2.43",
49
+ "@syncfusion/ej2-richtexteditor": "~20.2.44",
50
+ "@syncfusion/ej2-treegrid": "~20.2.44"
51
51
  },
52
52
  "deprecated": false,
53
53
  "description": "Essential JS 2 Gantt Component",
@@ -75,6 +75,6 @@
75
75
  "url": "git+https://github.com/syncfusion/ej2-gantt.git"
76
76
  },
77
77
  "typings": "index.d.ts",
78
- "version": "20.2.38",
78
+ "version": "20.2.44",
79
79
  "sideEffects": false
80
80
  }
@@ -190,6 +190,9 @@ var CellEdit = /** @class */ (function () {
190
190
  this.parent.editModule.endEditAction(args);
191
191
  }
192
192
  this.isCellEdit = false;
193
+ if (!isNullOrUndefined(this.parent.editModule.cellEditModule.editedColumn)) {
194
+ this.parent.editModule.cellEditModule.editedColumn = null;
195
+ }
193
196
  if (!isNOU(this.parent.toolbarModule)) {
194
197
  this.parent.toolbarModule.refreshToolbarItems();
195
198
  }
@@ -290,7 +290,7 @@ var ContextMenu = /** @class */ (function () {
290
290
  var rowIndex = -1;
291
291
  if (args.gridRow) {
292
292
  // eslint-disable-next-line
293
- rowIndex = parseInt(args.gridRow.getAttribute('aria-rowindex'), 0);
293
+ rowIndex = parseInt(args.gridRow.getAttribute('data-rowindex'), 0);
294
294
  }
295
295
  else if (args.chartRow) {
296
296
  // eslint-disable-next-line
@@ -1,5 +1,5 @@
1
1
  import { isNullOrUndefined } from "@syncfusion/ej2-base";
2
- import { addClass, removeClass } from '@syncfusion/ej2-base';
2
+ import { addClass } from '@syncfusion/ej2-base';
3
3
  import * as cls from '../base/css-constants';
4
4
  var CriticalPath = /** @class */ (function () {
5
5
  function CriticalPath(parent) {
@@ -646,10 +646,7 @@ var CriticalPath = /** @class */ (function () {
646
646
  /* eslint-disable-next-line */
647
647
  CriticalPath.prototype.criticalConnectorLine = function (criticalPathIds, collection, condition, collectionTaskId) {
648
648
  var ganttChartElement = this.parent.ganttChartModule.chartElement;
649
- removeClass(ganttChartElement.querySelectorAll('.e-gantt-child-taskbar-inner-div'), cls.criticalChildTaskBarInnerDiv);
650
- removeClass(ganttChartElement.querySelectorAll('.e-gantt-child-progressbar-inner-div'), cls.criticalChildProgressBarInnerDiv);
651
- removeClass(ganttChartElement.querySelectorAll('.e-milestone-top'), cls.criticalMilestoneTop);
652
- removeClass(ganttChartElement.querySelectorAll('.e-milestone-bottom'), cls.criticalMilestoneBottom);
649
+ this.parent.removeCriticalPathStyles();
653
650
  for (var i = 0; i < criticalPathIds.length; i++) {
654
651
  var criticalData = void 0;
655
652
  if (this.parent.viewType === 'ProjectView') {
@@ -684,9 +681,6 @@ var CriticalPath = /** @class */ (function () {
684
681
  }
685
682
  }
686
683
  }
687
- removeClass(this.parent.element.querySelectorAll('.e-line'), cls.criticalConnectorLine);
688
- removeClass(this.parent.element.querySelectorAll('.e-connector-line-right-arrow'), cls.criticalConnectorLineRightArrow);
689
- removeClass(this.parent.element.querySelectorAll('.e-connector-line-left-arrow'), cls.criticalConnectorLineLeftArrow);
690
684
  if (collection.length !== 0) {
691
685
  var index = 0;
692
686
  var currentdata = void 0;
@@ -75,7 +75,7 @@ var Edit = /** @class */ (function () {
75
75
  if (column.field === this.parent.taskFields.id) {
76
76
  this.updateIDColumnEditParams(column);
77
77
  }
78
- else if (column.field === this.parent.taskFields.progress) {
78
+ else if (column.field === this.parent.taskFields.progress && isNullOrUndefined(column.edit)) {
79
79
  this.updateProgessColumnEditParams(column);
80
80
  }
81
81
  else if (column.field === this.parent.taskFields.resourceInfo) {
@@ -2042,6 +2042,7 @@ var Edit = /** @class */ (function () {
2042
2042
  eventArgs.modifiedRecords = args.updatedRecordCollection;
2043
2043
  eventArgs.modifiedTaskData = getTaskData(args.updatedRecordCollection, null, null, this.parent);
2044
2044
  setValue('action', args.action, eventArgs);
2045
+ this.parent.isOnDelete = false;
2045
2046
  this.parent.trigger('actionComplete', eventArgs);
2046
2047
  this.deletedTaskDetails = [];
2047
2048
  this.parent.initiateEditAction(false);
@@ -2662,7 +2663,7 @@ var Edit = /** @class */ (function () {
2662
2663
  else {
2663
2664
  if (_this.parent.viewType === 'ProjectView') {
2664
2665
  if ((rowPosition === 'Top' || rowPosition === 'Bottom') ||
2665
- ((rowPosition === 'Above' || rowPosition === 'Below' || rowPosition === 'Child') && !args.data.parentItem)) {
2666
+ ((rowPosition === 'Above' || rowPosition === 'Below' || rowPosition === 'Child') || isNullOrUndefined(rowPosition) && !args.data.parentItem)) {
2666
2667
  if (args.data instanceof Array) {
2667
2668
  _this.updateRealDataSource(args.data, rowPosition);
2668
2669
  }
@@ -132,7 +132,7 @@ var RowDD = /** @class */ (function () {
132
132
  ganttDragelem.remove();
133
133
  }
134
134
  var gridRow = closest(args.target, '.e-row');
135
- var dropIndex = gridRow ? parseInt(gridRow.getAttribute('aria-rowindex'), 10) : args.dropIndex;
135
+ var dropIndex = gridRow ? parseInt(gridRow.getAttribute('data-rowindex'), 10) : args.dropIndex;
136
136
  args.dropIndex = dropIndex;
137
137
  args.dropRecord = this.parent.updatedRecords[args.dropIndex];
138
138
  this.parent.trigger('rowDrop', args);
@@ -460,6 +460,7 @@ var RowDD = /** @class */ (function () {
460
460
  var proxy = this.parent;
461
461
  var tempDataSource;
462
462
  var idx;
463
+ var ganttFields = this.parent.taskFields;
463
464
  if (this.parent.dataSource instanceof DataManager) {
464
465
  tempDataSource = getValue('dataOperation.dataArray', this.parent);
465
466
  }
@@ -468,7 +469,12 @@ var RowDD = /** @class */ (function () {
468
469
  }
469
470
  if (tempDataSource.length > 0 && (!isNullOrUndefined(droppedRecord) && !droppedRecord.parentItem)) {
470
471
  for (var i = 0; i < Object.keys(tempDataSource).length; i++) {
471
- if (tempDataSource[i][this.parent.taskFields.child] === droppedRecord.taskData[this.parent.taskFields.child]) {
472
+ if (!isNullOrUndefined(droppedRecord.taskData[ganttFields.child]) &&
473
+ tempDataSource[i][ganttFields.child] === droppedRecord.taskData[ganttFields.child]) {
474
+ idx = i;
475
+ }
476
+ else if (isNullOrUndefined(droppedRecord.taskData[ganttFields.child]) &&
477
+ droppedRecord.taskData[ganttFields.id] === tempDataSource[i][ganttFields.id]) {
472
478
  idx = i;
473
479
  }
474
480
  }
@@ -165,7 +165,7 @@ var DateProcessor = /** @class */ (function () {
165
165
  if (hour < this.parent.defaultStartTime) {
166
166
  this.setTime(this.parent.defaultStartTime, cloneDate);
167
167
  }
168
- else if (hour >= this.parent.defaultEndTime) {
168
+ else if (hour > this.parent.defaultEndTime) {
169
169
  cloneDate.setDate(cloneDate.getDate() + 1);
170
170
  this.setTime(this.parent.defaultStartTime, cloneDate);
171
171
  }
@@ -199,7 +199,7 @@ var DateProcessor = /** @class */ (function () {
199
199
  if (hour > this.parent.defaultEndTime) {
200
200
  this.setTime(this.parent.defaultEndTime, cloneDate);
201
201
  }
202
- else if (hour <= this.parent.defaultStartTime && !ganttProp.isMilestone) {
202
+ else if (hour <= this.parent.defaultStartTime && !isNullOrUndefined(ganttProp) && !ganttProp.isMilestone) {
203
203
  cloneDate.setDate(cloneDate.getDate() - 1);
204
204
  this.setTime(this.parent.defaultEndTime, cloneDate);
205
205
  }
@@ -1271,7 +1271,13 @@ var DateProcessor = /** @class */ (function () {
1271
1271
  }
1272
1272
  sortDates(taskRange);
1273
1273
  if (!minStartDate || !maxEndDate) {
1274
- minStartDate = isNullOrUndefined(minStartDate) ? this.getDateFromFormat(new Date()) : minStartDate;
1274
+ if (!minStartDate) {
1275
+ minStartDate = isNullOrUndefined(minStartDate) ? this.getDateFromFormat(new Date()) : minStartDate;
1276
+ minStartDate.setHours(0, 0, 0, 0);
1277
+ }
1278
+ else {
1279
+ minStartDate = isNullOrUndefined(minStartDate) ? this.getDateFromFormat(new Date()) : minStartDate;
1280
+ }
1275
1281
  maxEndDate = this.getDateFromFormat(new Date(minStartDate.getTime()));
1276
1282
  maxEndDate.setDate(maxEndDate.getDate() + 20);
1277
1283
  }
@@ -24,6 +24,10 @@ export declare class GanttChart {
24
24
  keyboardModule: KeyboardEvents;
25
25
  targetElement: Element;
26
26
  virtualRender: VirtualContentRenderer;
27
+ isEditableElement: any;
28
+ tempNextElement: any;
29
+ nextElementIndex: any;
30
+ childrenIndex: any;
27
31
  constructor(parent: Gantt);
28
32
  private addEventListener;
29
33
  private renderChartContents;
@@ -718,7 +718,7 @@ var GanttChart = /** @class */ (function () {
718
718
  * @private
719
719
  */
720
720
  GanttChart.prototype.expandedGanttRow = function (args) {
721
- if (isNullOrUndefined(args['gridRow'])) {
721
+ if ((isNullOrUndefined(args['gridRow']) || isNullOrUndefined(args['chartRow'])) && this.parent.enableVirtualization) {
722
722
  return;
723
723
  }
724
724
  var record = getValue('data', args);
@@ -928,6 +928,23 @@ var GanttChart = /** @class */ (function () {
928
928
  $target.closest('.e-chart-row') ? $target.closest('.e-chart-row').rowIndex : -1;
929
929
  var isTab = (e.action === 'tab') ? true : false;
930
930
  var nextElement = this.getNextElement($target, isTab, isInEditedState);
931
+ this.tempNextElement = nextElement;
932
+ if (!isNullOrUndefined(nextElement['cellIndex'])) {
933
+ if (this.parent.allowRowDragAndDrop) {
934
+ this.childrenIndex = nextElement['cellIndex'];
935
+ this.nextElementIndex = nextElement['cellIndex'] - 1;
936
+ }
937
+ else {
938
+ this.childrenIndex = nextElement['cellIndex'];
939
+ this.nextElementIndex = nextElement['cellIndex'];
940
+ }
941
+ if (!this.parent.ganttColumns[this.nextElementIndex]['allowEditing'] && this.parent.ganttColumns[this.nextElementIndex]['field'] !== this.parent.taskFields.id) {
942
+ this.isEditableElement = true;
943
+ }
944
+ else {
945
+ this.isEditableElement = false;
946
+ }
947
+ }
931
948
  if (nextElement === 'noNextRow') {
932
949
  this.manageFocus($target, 'remove', true);
933
950
  return;
@@ -946,7 +963,7 @@ var GanttChart = /** @class */ (function () {
946
963
  if (isTab) {
947
964
  if (this.parent.editSettings.allowNextRowEdit) {
948
965
  var rowData = this.parent.currentViewData[this.focusedRowIndex];
949
- var columnName = this.parent.ganttColumns[nextElement.getAttribute('aria-colindex')].field;
966
+ var columnName = this.parent.ganttColumns[nextElement.getAttribute('data-colindex')].field;
950
967
  if (rowData.hasChildRecords) {
951
968
  if (columnName === this.parent.taskFields.endDate || columnName ===
952
969
  this.parent.taskFields.duration || columnName === this.parent.taskFields.dependency ||
@@ -960,7 +977,9 @@ var GanttChart = /** @class */ (function () {
960
977
  }
961
978
  else {
962
979
  this.parent.treeGrid.grid.notify('key-pressed', e);
963
- this.parent.treeGrid.editCell(this.focusedRowIndex, columnName); // eslint-disable-line
980
+ if (isInEditedState) {
981
+ this.parent.treeGrid.editCell(this.focusedRowIndex, columnName); // eslint-disable-line
982
+ }
964
983
  }
965
984
  }
966
985
  else {
@@ -975,7 +994,8 @@ var GanttChart = /** @class */ (function () {
975
994
  this.parent.treeGrid.grid.notify('key-pressed', e);
976
995
  }
977
996
  }
978
- if (!isNullOrUndefined(isInEditedState) && !this.parent.editModule.cellEditModule.isCellEdit) {
997
+ if (!(this.parent.editModule && this.parent.editModule.cellEditModule
998
+ && !isNullOrUndefined(this.parent.editModule.cellEditModule.editedColumn))) {
979
999
  if (nextElement) {
980
1000
  if ($target.classList.contains('e-rowcell')) {
981
1001
  this.manageFocus($target, 'remove', false);
@@ -1179,6 +1199,18 @@ var GanttChart = /** @class */ (function () {
1179
1199
  childElement = element;
1180
1200
  }
1181
1201
  }
1202
+ if (element.classList.contains('e-right-label-temp-container') || element.classList.contains('e-left-label-temp-container') || element.classList.contains('e-indicator-span')) {
1203
+ if (focus === 'add') {
1204
+ element.setAttribute('tabIndex', '0');
1205
+ addClass([element], 'e-active-container');
1206
+ element.focus();
1207
+ }
1208
+ else {
1209
+ removeClass([element], 'e-active-container');
1210
+ element.setAttribute('tabIndex', '-1');
1211
+ element.blur();
1212
+ }
1213
+ }
1182
1214
  if (focus === 'add' && !isNullOrUndefined(childElement)) {
1183
1215
  element.setAttribute('tabIndex', '0');
1184
1216
  addClass([childElement], 'e-active-container');
@@ -1297,6 +1297,7 @@ export declare class Gantt extends Component<HTMLElement> implements INotifyProp
1297
1297
  * @private
1298
1298
  */
1299
1299
  renderGantt(isChange?: boolean): void;
1300
+ removeCriticalPathStyles(): void;
1300
1301
  private wireEvents;
1301
1302
  /**
1302
1303
  * Method trigger while user perform window resize.
@@ -418,6 +418,16 @@ var Gantt = /** @class */ (function (_super) {
418
418
  this.renderChartVerticalLines();
419
419
  }
420
420
  };
421
+ Gantt.prototype.removeCriticalPathStyles = function () {
422
+ var ganttChartElement = this.ganttChartModule.chartElement;
423
+ removeClass(ganttChartElement.querySelectorAll('.e-gantt-child-taskbar-inner-div'), cls.criticalChildTaskBarInnerDiv);
424
+ removeClass(ganttChartElement.querySelectorAll('.e-gantt-child-progressbar-inner-div'), cls.criticalChildProgressBarInnerDiv);
425
+ removeClass(ganttChartElement.querySelectorAll('.e-milestone-top'), cls.criticalMilestoneTop);
426
+ removeClass(ganttChartElement.querySelectorAll('.e-milestone-bottom'), cls.criticalMilestoneBottom);
427
+ removeClass(this.element.querySelectorAll('.e-line'), cls.criticalConnectorLine);
428
+ removeClass(this.element.querySelectorAll('.e-connector-line-right-arrow'), cls.criticalConnectorLineRightArrow);
429
+ removeClass(this.element.querySelectorAll('.e-connector-line-left-arrow'), cls.criticalConnectorLineLeftArrow);
430
+ };
421
431
  Gantt.prototype.wireEvents = function () {
422
432
  if (this.allowKeyboard) {
423
433
  this.keyboardModule = new KeyboardEvents(this.element, {
@@ -581,139 +591,140 @@ var Gantt = /** @class */ (function (_super) {
581
591
  * @private
582
592
  */
583
593
  Gantt.prototype.getZoomingLevels = function () {
594
+ var _WeekStartDay = this.timelineSettings.weekStartDay;
584
595
  var zoomingLevels = [
585
596
  {
586
597
  topTier: { unit: 'Year', format: 'yyyy', count: 50 },
587
598
  bottomTier: { unit: 'Year', format: 'yyyy', count: 10 }, timelineUnitSize: 99, level: 0,
588
- timelineViewMode: 'Year', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
599
+ timelineViewMode: 'Year', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
589
600
  },
590
601
  {
591
602
  topTier: { unit: 'Year', format: 'yyyy', count: 20 },
592
603
  bottomTier: { unit: 'Year', format: 'yyyy', count: 5 }, timelineUnitSize: 99, level: 1,
593
- timelineViewMode: 'Year', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
604
+ timelineViewMode: 'Year', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
594
605
  },
595
606
  {
596
607
  topTier: { unit: 'Year', format: 'yyyy', count: 5 },
597
608
  bottomTier: { unit: 'Year', format: 'yyyy', count: 1 }, timelineUnitSize: 99, level: 2,
598
- timelineViewMode: 'Year', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
609
+ timelineViewMode: 'Year', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
599
610
  },
600
611
  {
601
612
  topTier: { unit: 'Year', format: 'MMM, yy', count: 1 },
602
613
  bottomTier: {
603
614
  unit: 'Month', formatter: this.displayHalfValue, count: 6
604
615
  }, timelineUnitSize: 66, level: 3,
605
- timelineViewMode: 'Year', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
616
+ timelineViewMode: 'Year', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
606
617
  },
607
618
  {
608
619
  topTier: { unit: 'Year', format: 'MMM, yy', count: 1 },
609
620
  bottomTier: {
610
621
  unit: 'Month', formatter: this.displayHalfValue, count: 6
611
622
  }, timelineUnitSize: 99, level: 4,
612
- timelineViewMode: 'Year', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
623
+ timelineViewMode: 'Year', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
613
624
  },
614
625
  {
615
626
  topTier: { unit: 'Year', format: 'MMM, yy', count: 1 },
616
627
  bottomTier: {
617
628
  unit: 'Month', formatter: this.displayQuarterValue, count: 3
618
629
  }, timelineUnitSize: 66, level: 5,
619
- timelineViewMode: 'Year', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
630
+ timelineViewMode: 'Year', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
620
631
  },
621
632
  {
622
633
  topTier: { unit: 'Year', format: 'yyyy', count: 1 },
623
634
  bottomTier: {
624
635
  unit: 'Month', formatter: this.displayQuarterValue, count: 3
625
636
  }, timelineUnitSize: 99, level: 6,
626
- timelineViewMode: 'Year', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
637
+ timelineViewMode: 'Year', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
627
638
  },
628
639
  {
629
640
  topTier: { unit: 'Year', format: 'yyyy', count: 1 },
630
641
  bottomTier: { unit: 'Month', format: 'MMM yyyy', count: 1 }, timelineUnitSize: 99, level: 7,
631
- timelineViewMode: 'Year', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
642
+ timelineViewMode: 'Year', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
632
643
  },
633
644
  {
634
645
  topTier: { unit: 'Month', format: 'MMM, yy', count: 1 },
635
646
  bottomTier: { unit: 'Week', format: 'dd', count: 1 }, timelineUnitSize: 33, level: 8,
636
- timelineViewMode: 'Month', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
647
+ timelineViewMode: 'Month', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
637
648
  },
638
649
  {
639
650
  topTier: { unit: 'Month', format: 'MMM, yyyy', count: 1 },
640
651
  bottomTier: { unit: 'Week', format: 'dd MMM', count: 1 }, timelineUnitSize: 66, level: 9,
641
- timelineViewMode: 'Month', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
652
+ timelineViewMode: 'Month', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
642
653
  },
643
654
  {
644
655
  topTier: { unit: 'Month', format: 'MMM, yyyy', count: 1 },
645
656
  bottomTier: { unit: 'Week', format: 'dd MMM', count: 1 }, timelineUnitSize: 99, level: 10,
646
- timelineViewMode: 'Month', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
657
+ timelineViewMode: 'Month', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
647
658
  },
648
659
  {
649
660
  topTier: { unit: 'Week', format: 'MMM dd, yyyy', count: 1 },
650
661
  bottomTier: { unit: 'Day', format: 'd', count: 1 }, timelineUnitSize: 33, level: 11,
651
- timelineViewMode: 'Week', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
662
+ timelineViewMode: 'Week', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
652
663
  },
653
664
  {
654
665
  topTier: { unit: 'Week', format: 'MMM dd, yyyy', count: 1 },
655
666
  bottomTier: { unit: 'Day', format: 'd', count: 1 }, timelineUnitSize: 66, level: 12,
656
- timelineViewMode: 'Week', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
667
+ timelineViewMode: 'Week', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
657
668
  },
658
669
  {
659
670
  topTier: { unit: 'Week', format: 'MMM dd, yyyy', count: 1 },
660
671
  bottomTier: { unit: 'Day', format: 'd', count: 1 }, timelineUnitSize: 99, level: 13,
661
- timelineViewMode: 'Week', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
672
+ timelineViewMode: 'Week', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
662
673
  },
663
674
  {
664
675
  topTier: { unit: 'Day', format: 'E dd yyyy', count: 1 },
665
676
  bottomTier: { unit: 'Hour', format: 'hh a', count: 12 }, timelineUnitSize: 66, level: 14,
666
- timelineViewMode: 'Day', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
677
+ timelineViewMode: 'Day', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
667
678
  },
668
679
  {
669
680
  topTier: { unit: 'Day', format: 'E dd yyyy', count: 1 },
670
681
  bottomTier: { unit: 'Hour', format: 'hh a', count: 12 }, timelineUnitSize: 99, level: 15,
671
- timelineViewMode: 'Day', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
682
+ timelineViewMode: 'Day', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
672
683
  },
673
684
  {
674
685
  topTier: { unit: 'Day', format: 'E dd yyyy', count: 1 },
675
686
  bottomTier: { unit: 'Hour', format: 'hh a', count: 6 }, timelineUnitSize: 66, level: 16,
676
- timelineViewMode: 'Day', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
687
+ timelineViewMode: 'Day', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
677
688
  },
678
689
  {
679
690
  topTier: { unit: 'Day', format: 'E dd yyyy', count: 1 },
680
691
  bottomTier: { unit: 'Hour', format: 'hh a', count: 6 }, timelineUnitSize: 99, level: 17,
681
- timelineViewMode: 'Day', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
692
+ timelineViewMode: 'Day', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
682
693
  },
683
694
  {
684
695
  topTier: { unit: 'Day', format: 'E dd yyyy', count: 1 },
685
696
  bottomTier: { unit: 'Hour', format: 'hh a', count: 2 }, timelineUnitSize: 66, level: 18,
686
- timelineViewMode: 'Day', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
697
+ timelineViewMode: 'Day', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
687
698
  },
688
699
  {
689
700
  topTier: { unit: 'Day', format: 'E dd yyyy', count: 1 },
690
701
  bottomTier: { unit: 'Hour', format: 'hh a', count: 2 }, timelineUnitSize: 99, level: 19,
691
- timelineViewMode: 'Day', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
702
+ timelineViewMode: 'Day', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
692
703
  },
693
704
  {
694
705
  topTier: { unit: 'Day', format: 'E dd yyyy', count: 1 },
695
706
  bottomTier: { unit: 'Hour', format: 'hh a', count: 1 }, timelineUnitSize: 66, level: 20,
696
- timelineViewMode: 'Day', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
707
+ timelineViewMode: 'Day', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
697
708
  },
698
709
  {
699
710
  topTier: { unit: 'Day', format: 'E dd yyyy', count: 1 },
700
711
  bottomTier: { unit: 'Hour', format: 'hh a', count: 1 }, timelineUnitSize: 99, level: 21,
701
- timelineViewMode: 'Day', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
712
+ timelineViewMode: 'Day', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
702
713
  },
703
714
  {
704
715
  topTier: { unit: 'Hour', format: 'ddd MMM, h a', count: 1 },
705
716
  bottomTier: { unit: 'Minutes', format: 'mm', count: 30 }, timelineUnitSize: 66, level: 22,
706
- timelineViewMode: 'Hour', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
717
+ timelineViewMode: 'Hour', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
707
718
  },
708
719
  {
709
720
  topTier: { unit: 'Hour', format: 'ddd MMM, h a', count: 1 },
710
721
  bottomTier: { unit: 'Minutes', format: 'mm', count: 15 }, timelineUnitSize: 66, level: 23,
711
- timelineViewMode: 'Hour', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
722
+ timelineViewMode: 'Hour', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
712
723
  },
713
724
  {
714
725
  topTier: { unit: 'Hour', format: 'ddd MMM, h a', count: 1 },
715
726
  bottomTier: { unit: 'Minutes', format: 'mm', count: 1 }, timelineUnitSize: 66, level: 24,
716
- timelineViewMode: 'Hour', weekStartDay: 0, updateTimescaleView: true, weekendBackground: null, showTooltip: true
727
+ timelineViewMode: 'Hour', weekStartDay: _WeekStartDay, updateTimescaleView: true, weekendBackground: null, showTooltip: true
717
728
  }
718
729
  ];
719
730
  return zoomingLevels;
@@ -960,9 +971,18 @@ var Gantt = /** @class */ (function (_super) {
960
971
  }
961
972
  break;
962
973
  case 'timezone':
963
- case 'enableCriticalPath':
964
974
  this.dataOperation.checkDataBinding(true);
965
975
  break;
976
+ case 'enableCriticalPath':
977
+ if (this.enableCriticalPath && this.criticalPathModule) {
978
+ this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
979
+ var criticalModule = this.criticalPathModule;
980
+ this.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
981
+ }
982
+ else {
983
+ this.removeCriticalPathStyles();
984
+ }
985
+ break;
966
986
  case 'filterSettings':
967
987
  this.treeGrid.filterSettings = getActualProperties(this.filterSettings);
968
988
  this.treeGrid.dataBind();
@@ -99,6 +99,7 @@ var GanttTreeGrid = /** @class */ (function () {
99
99
  };
100
100
  GanttTreeGrid.prototype.composeProperties = function () {
101
101
  this.parent.treeGrid.showColumnMenu = this.parent.showColumnMenu;
102
+ this.parent.treeGrid.enableCollapseAll = this.parent.collapseAllParentTasks;
102
103
  this.parent.treeGrid.columnMenuItems = this.parent.columnMenuItems;
103
104
  this.parent.treeGrid.childMapping = isNullOrUndefined(this.parent.taskFields.child) ? '' : this.parent.taskFields.child;
104
105
  this.parent.treeGrid.treeColumnIndex = this.parent.treeColumnIndex;
@@ -1676,6 +1676,12 @@ var ChartRows = /** @class */ (function (_super) {
1676
1676
  }
1677
1677
  var dataId = this.parent.viewType === 'ProjectView' ? data.ganttProperties.taskId : data.ganttProperties.rowUniqueID;
1678
1678
  this.parent.treeGrid.grid.setRowData(dataId, data);
1679
+ var nextEditableElement = this.parent.ganttChartModule.tempNextElement;
1680
+ if (this.parent.ganttChartModule.isEditableElement && nextEditableElement) {
1681
+ this.parent.treeGrid.grid.focusModule.focus();
1682
+ addClass([this.parent.treeGrid.getRows()[tr['ariaRowIndex']].children[this.parent.ganttChartModule.childrenIndex]], 'e-focused');
1683
+ this.parent.ganttChartModule.tempNextElement = null;
1684
+ }
1679
1685
  var row = this.parent.treeGrid.grid.getRowObjectFromUID(this.parent.treeGrid.grid.getDataRows()[index].getAttribute('data-uid'));
1680
1686
  row.data = data;
1681
1687
  }
@@ -240,7 +240,7 @@ var Tooltip = /** @class */ (function () {
240
240
  if (ganttData) {
241
241
  data = ganttData.ganttProperties;
242
242
  taskName = !isNullOrUndefined(data.taskName) ? '<tr class = "e-gantt-tooltip-rowcell"><td colspan="3">' +
243
- data.taskName + '</td></tr>' : '';
243
+ (this.parent.disableHtmlEncode ? data.taskName.replace(/</g, "&lt;").replace(/>/g, "&gt;") : data.taskName) + '</td></tr>' : '';
244
244
  }
245
245
  switch (elementType) {
246
246
  case 'milestone':
@@ -621,14 +621,13 @@
621
621
  }
622
622
  .e-gantt .e-gantt-chart .e-timeline-header-container {
623
623
  border-bottom-style: solid;
624
- border-right-width: 0;
624
+ border-right: 1px solid;
625
625
  overflow: hidden;
626
626
  position: relative;
627
627
  z-index: 6;
628
628
  }
629
629
  .e-gantt .e-gantt-chart .e-timeline-header-table-container > thead > tr > th {
630
630
  border-left: 0;
631
- padding: 0 3px;
632
631
  }
633
632
  .e-gantt .e-gantt-chart .e-timeline-header-table-container {
634
633
  border-collapse: collapse;
@@ -680,7 +679,7 @@
680
679
  }
681
680
  .e-gantt .e-gantt-chart .e-timeline-top-header-cell .e-gantt-top-cell-text,
682
681
  .e-gantt .e-gantt-chart .e-timeline-single-header-cell .e-gantt-top-cell-text {
683
- padding-left: 8px;
682
+ padding-left: 11px;
684
683
  text-align: left;
685
684
  }
686
685
  .e-gantt .e-gantt-chart .e-gantt-grid-lines {
@@ -784,7 +783,7 @@
784
783
  .e-gantt .e-gantt-chart .e-indicator-span {
785
784
  display: inline-block;
786
785
  font-size: 13px;
787
- font-weight: 400;
786
+ font-weight: normal;
788
787
  overflow: hidden;
789
788
  position: absolute;
790
789
  text-overflow: ellipsis;
@@ -1177,6 +1176,7 @@
1177
1176
  .e-gantt-dialog .e-richtexteditor .e-rte-content {
1178
1177
  border-bottom-width: 0px;
1179
1178
  height: 200px;
1179
+ overflow: hidden;
1180
1180
  }
1181
1181
  .e-gantt-dialog > .e-dlg-content {
1182
1182
  padding: 0 !important;
@@ -765,14 +765,13 @@
765
765
  }
766
766
  .e-gantt .e-gantt-chart .e-timeline-header-container {
767
767
  border-bottom-style: solid;
768
- border-right-width: 0;
768
+ border-right: 1px solid;
769
769
  overflow: hidden;
770
770
  position: relative;
771
771
  z-index: 6;
772
772
  }
773
773
  .e-gantt .e-gantt-chart .e-timeline-header-table-container > thead > tr > th {
774
774
  border-left: 0;
775
- padding: 0 3px;
776
775
  }
777
776
  .e-gantt .e-gantt-chart .e-timeline-header-table-container {
778
777
  border-collapse: collapse;
@@ -824,7 +823,7 @@
824
823
  }
825
824
  .e-gantt .e-gantt-chart .e-timeline-top-header-cell .e-gantt-top-cell-text,
826
825
  .e-gantt .e-gantt-chart .e-timeline-single-header-cell .e-gantt-top-cell-text {
827
- padding-left: 8px;
826
+ padding-left: 11px;
828
827
  text-align: left;
829
828
  }
830
829
  .e-gantt .e-gantt-chart .e-gantt-grid-lines {
@@ -928,7 +927,7 @@
928
927
  .e-gantt .e-gantt-chart .e-indicator-span {
929
928
  display: inline-block;
930
929
  font-size: 13px;
931
- font-weight: 400;
930
+ font-weight: normal;
932
931
  overflow: hidden;
933
932
  position: absolute;
934
933
  text-overflow: ellipsis;
@@ -1321,6 +1320,7 @@
1321
1320
  .e-gantt-dialog .e-richtexteditor .e-rte-content {
1322
1321
  border-bottom-width: 0px;
1323
1322
  height: 200px;
1323
+ overflow: hidden;
1324
1324
  }
1325
1325
  .e-gantt-dialog > .e-dlg-content {
1326
1326
  padding: 0 !important;