@syncfusion/ej2-gantt 19.3.46 → 19.3.55

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 (59) hide show
  1. package/CHANGELOG.md +41 -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 +53 -12
  5. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  6. package/dist/es6/ej2-gantt.es5.js +103 -53
  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/context-menu.js +5 -0
  13. package/src/gantt/actions/dialog-edit.js +9 -7
  14. package/src/gantt/actions/edit.js +3 -2
  15. package/src/gantt/actions/rowdragdrop.js +74 -41
  16. package/src/gantt/actions/taskbar-edit.js +3 -1
  17. package/src/gantt/base/date-processor.js +4 -1
  18. package/src/gantt/base/gantt.js +3 -0
  19. package/src/gantt/base/task-processor.js +1 -0
  20. package/src/gantt/base/utils.js +1 -1
  21. package/styles/bootstrap-dark.css +96 -100
  22. package/styles/bootstrap.css +96 -100
  23. package/styles/bootstrap4.css +96 -100
  24. package/styles/bootstrap5-dark.css +97 -100
  25. package/styles/bootstrap5.css +97 -100
  26. package/styles/fabric-dark.css +96 -100
  27. package/styles/fabric.css +96 -100
  28. package/styles/gantt/_bootstrap-dark-definition.scss +0 -1
  29. package/styles/gantt/_bootstrap-definition.scss +0 -1
  30. package/styles/gantt/_bootstrap4-definition.scss +0 -1
  31. package/styles/gantt/_bootstrap5-definition.scss +0 -1
  32. package/styles/gantt/_fabric-dark-definition.scss +0 -1
  33. package/styles/gantt/_fabric-definition.scss +0 -1
  34. package/styles/gantt/_highcontrast-definition.scss +0 -1
  35. package/styles/gantt/_highcontrast-light-definition.scss +0 -1
  36. package/styles/gantt/_layout.scss +95 -94
  37. package/styles/gantt/_material-dark-definition.scss +0 -1
  38. package/styles/gantt/_material-definition.scss +0 -1
  39. package/styles/gantt/_tailwind-definition.scss +0 -1
  40. package/styles/gantt/_theme.scss +76 -81
  41. package/styles/gantt/bootstrap-dark.css +96 -100
  42. package/styles/gantt/bootstrap.css +96 -100
  43. package/styles/gantt/bootstrap4.css +96 -100
  44. package/styles/gantt/bootstrap5-dark.css +97 -100
  45. package/styles/gantt/bootstrap5.css +97 -100
  46. package/styles/gantt/fabric-dark.css +96 -100
  47. package/styles/gantt/fabric.css +96 -100
  48. package/styles/gantt/highcontrast-light.css +96 -100
  49. package/styles/gantt/highcontrast.css +96 -100
  50. package/styles/gantt/material-dark.css +96 -100
  51. package/styles/gantt/material.css +96 -100
  52. package/styles/gantt/tailwind-dark.css +96 -100
  53. package/styles/gantt/tailwind.css +96 -100
  54. package/styles/highcontrast-light.css +96 -100
  55. package/styles/highcontrast.css +96 -100
  56. package/styles/material-dark.css +96 -100
  57. package/styles/material.css +96 -100
  58. package/styles/tailwind-dark.css +96 -100
  59. package/styles/tailwind.css +96 -100
@@ -114,7 +114,7 @@ function getTaskData(records, isNotExtend, eventArgs, parent) {
114
114
  for (var i = 0; i < records.length; i++) {
115
115
  var data = void 0;
116
116
  if (!isNullOrUndefined(parent) && parent.timezone) {
117
- this.updateDates(records[i], parent);
117
+ updateDates(records[i], parent);
118
118
  }
119
119
  // eslint-disable-next-line
120
120
  data = isNotExtend ? (records[i].taskData) : extend({}, records[i].taskData, {}, true);
@@ -1208,7 +1208,10 @@ var DateProcessor = /** @__PURE__ @class */ (function () {
1208
1208
  }
1209
1209
  };
1210
1210
  DateProcessor.prototype.remove = function (date, timezone) {
1211
- return this.reverse(date, timezone, date.getTimezoneOffset());
1211
+ if (!isNullOrUndefined(date)) {
1212
+ date = this.reverse(date, timezone, date.getTimezoneOffset());
1213
+ }
1214
+ return date;
1212
1215
  };
1213
1216
  DateProcessor.prototype.reverse = function (date, fromOffset, toOffset) {
1214
1217
  if (typeof fromOffset === 'string') {
@@ -2359,6 +2362,7 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
2359
2362
  if (!isNullOrUndefined(ganttProperties.duration)) {
2360
2363
  this.parent.setRecordValue('duration', updatedDuration, ganttProperties, true);
2361
2364
  }
2365
+ this.parent.dataOperation.updateMappingData(ganttData, 'duration');
2362
2366
  }
2363
2367
  };
2364
2368
  /**
@@ -13430,6 +13434,9 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13430
13434
  if (this.keyboardModule) {
13431
13435
  this.keyboardModule.destroy();
13432
13436
  }
13437
+ if (this.editModule && this.editModule.dialogModule) {
13438
+ this.editModule.dialogModule.destroy();
13439
+ }
13433
13440
  _super.prototype.destroy.call(this);
13434
13441
  this.chartVerticalLineContainer = null;
13435
13442
  this.element.innerHTML = '';
@@ -16583,6 +16590,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
16583
16590
  TaskbarEdit.prototype.showHideTaskBarEditingElements = function (element, secondElement, fadeConnectorLine) {
16584
16591
  secondElement = secondElement ? secondElement : this.editElement;
16585
16592
  var isShowProgressResizer = this.parent.taskFields.progress ? true : false;
16593
+ var isShowConnectorPoints = true;
16586
16594
  if (this.parent.readOnly) {
16587
16595
  return;
16588
16596
  }
@@ -16592,6 +16600,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
16592
16600
  if (!isNullOrUndefined(parentRecord)) {
16593
16601
  if (!parentRecord.expanded) {
16594
16602
  isShowProgressResizer = false;
16603
+ isShowConnectorPoints = false;
16595
16604
  }
16596
16605
  }
16597
16606
  }
@@ -16618,7 +16627,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
16618
16627
  if (!isNullOrUndefined(this.parent.taskFields.dependency)
16619
16628
  && (element.querySelector('.' + connectorPointLeft)
16620
16629
  || element.parentElement.querySelector('.' + connectorPointLeft))
16621
- && isShowProgressResizer) {
16630
+ && isShowConnectorPoints) {
16622
16631
  var connectorElement = !isNullOrUndefined(element.querySelector('.' + connectorPointLeft)) ?
16623
16632
  element : element.parentElement;
16624
16633
  addClass([connectorElement.querySelector('.' + connectorPointLeft)], [connectorPointLeftHover]);
@@ -18219,7 +18228,8 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
18219
18228
  datetimepickeredit: DateTimePicker,
18220
18229
  maskededit: MaskedTextBox,
18221
18230
  numericedit: NumericTextBox,
18222
- stringedit: TextBox
18231
+ stringedit: TextBox,
18232
+ defaultedit: TextBox
18223
18233
  };
18224
18234
  this.processDialogFields();
18225
18235
  this.wireEvents();
@@ -18526,7 +18536,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
18526
18536
  dialogModel.position = position;
18527
18537
  //dialogModel.width = '750px';
18528
18538
  dialogModel.height = this.parent.isAdaptive ? '100%' : 'auto';
18529
- dialogModel.target = this.parent.element;
18539
+ dialogModel.target = document.body;
18530
18540
  dialogModel.close = this.dialogClose.bind(this);
18531
18541
  dialogModel.closeOnEscape = true;
18532
18542
  dialogModel.open = function (args) {
@@ -18813,15 +18823,15 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
18813
18823
  this.resourceSelection(id);
18814
18824
  }
18815
18825
  else if (id === ganttObj.element.id + 'NotesTabContainer') {
18816
- ganttObj.element.querySelector('#' + id).ej2_instances[0].refresh();
18826
+ document.getElementById(id).ej2_instances[0].refresh();
18817
18827
  }
18818
18828
  else if (id === ganttObj.element.id + 'SegmentsTabContainer') {
18819
18829
  if (isNullOrUndefined(this.beforeOpenArgs.rowData.ganttProperties.startDate)) {
18820
- ganttObj.element.querySelector('#' + id).ej2_instances[0]
18830
+ document.getElementById(id).ej2_instances[0]
18821
18831
  .enableToolbarItems([this.parent.element.id + 'SegmentsTabContainer' + '_add'], false);
18822
18832
  }
18823
18833
  else {
18824
- ganttObj.element.querySelector('#' + id).ej2_instances[0]
18834
+ document.getElementById(id).ej2_instances[0]
18825
18835
  .enableToolbarItems([this.parent.element.id + 'SegmentsTabContainer' + '_add'], true);
18826
18836
  }
18827
18837
  }
@@ -18875,6 +18885,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
18875
18885
  fieldsModel[column.field] = checkboxModel;
18876
18886
  break;
18877
18887
  }
18888
+ case 'defaultedit':
18878
18889
  case 'stringedit':
18879
18890
  {
18880
18891
  var textBox = common;
@@ -19781,7 +19792,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19781
19792
  DialogEdit.prototype.updateResourceCollection = function (args, resourceTreeGridId) {
19782
19793
  if (!isNullOrUndefined(args.data) && Object.keys(args.data).length) {
19783
19794
  var ganttObj = this.parent;
19784
- var treeGridId = ganttObj.element.querySelector('#' + resourceTreeGridId);
19795
+ var treeGridId = document.querySelector('#' + resourceTreeGridId);
19785
19796
  var resourceTreeGrid = treeGridId.ej2_instances[0];
19786
19797
  if (!isNullOrUndefined(resourceTreeGrid) && resourceTreeGrid.getSelectedRecords().length > 0) {
19787
19798
  var tempRecords = resourceTreeGrid.getSelectedRecords();
@@ -19856,7 +19867,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19856
19867
  };
19857
19868
  DialogEdit.prototype.resourceSelection = function (id) {
19858
19869
  var _this = this;
19859
- var resourceTreeGrid = this.parent.element.querySelector('#' + id).ej2_instances[0];
19870
+ var resourceTreeGrid = document.querySelector('#' + id).ej2_instances[0];
19860
19871
  var currentViewData = resourceTreeGrid.getCurrentViewRecords();
19861
19872
  var resources = this.ganttResources;
19862
19873
  if (resources && resources.length > 0) {
@@ -22263,6 +22274,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22263
22274
  var eventArgs = {};
22264
22275
  eventArgs.requestType = 'beforeSave';
22265
22276
  eventArgs.data = args.data;
22277
+ eventArgs.cancel = false;
22266
22278
  eventArgs.modifiedRecords = this.parent.editedRecords;
22267
22279
  if (!isNullOrUndefined(args.target)) {
22268
22280
  eventArgs.target = args.target;
@@ -23093,13 +23105,13 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23093
23105
  changedRecords: eventArg.modifiedTaskData
23094
23106
  };
23095
23107
  var adaptor = data_1.adaptor;
23108
+ var query_1 = _this.parent.query instanceof Query ? _this.parent.query : new Query();
23096
23109
  if (!(adaptor instanceof WebApiAdaptor && adaptor instanceof ODataAdaptor) || data_1.dataSource.batchUrl) {
23097
- var crud = data_1.saveChanges(updatedData_1, _this.parent.taskFields.id);
23110
+ var crud = data_1.saveChanges(updatedData_1, _this.parent.taskFields.id, null, query_1);
23098
23111
  crud.then(function () { return _this.deleteSuccess(args); })
23099
23112
  .catch(function (e) { return _this.dmFailure(e, args); });
23100
23113
  }
23101
23114
  else {
23102
- var query_1 = _this.parent.query instanceof Query ? _this.parent.query : new Query();
23103
23115
  var deletedRecords = 'deletedRecords';
23104
23116
  var deleteCrud = null;
23105
23117
  for (var i = 0; i < updatedData_1[deletedRecords].length; i++) {
@@ -26589,6 +26601,11 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
26589
26601
  var target = args.event ? args.event.target :
26590
26602
  !this.parent.focusModule ? this.parent.focusModule.getActiveElement() :
26591
26603
  this.parent.ganttChartModule.targetElement;
26604
+ // Closed edited cell before opening context menu
26605
+ // eslint-disable-next-line
26606
+ if (!isNullOrUndefined(this.parent.editModule) && this.parent.editModule.cellEditModule && this.parent.editModule.cellEditModule.isCellEdit && target.parentElement.classList.contains('e-row')) {
26607
+ this.parent.treeGrid.closeEdit();
26608
+ }
26592
26609
  if (!isNullOrUndefined(args.element) && args.element.id === this.parent.element.id + '_contextmenu') {
26593
26610
  this.clickedPosition = getValue('event', args).clientX;
26594
26611
  }
@@ -27282,80 +27299,113 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
27282
27299
  }
27283
27300
  var count = 0;
27284
27301
  var dragLength = dragRecords.length;
27285
- for (var i = 0; i < dragLength; i++) {
27286
- this.parent.isOnEdit = true;
27302
+ var _loop_1 = function (i) {
27303
+ this_1.parent.isOnEdit = true;
27287
27304
  draggedRecord = dragRecords[i];
27288
- this.draggedRecord = draggedRecord;
27289
- if (this.dropPosition !== 'Invalid') {
27290
- if (this.parent.viewType === 'ResourceView') {
27291
- this.checkisSharedTask();
27292
- this.previousParent = this.draggedRecord.parentItem.uniqueID;
27305
+ this_1.draggedRecord = draggedRecord;
27306
+ if (this_1.dropPosition !== 'Invalid') {
27307
+ if (this_1.parent.viewType === 'ResourceView') {
27308
+ this_1.checkisSharedTask();
27309
+ this_1.previousParent = this_1.draggedRecord.parentItem.uniqueID;
27293
27310
  }
27294
- if (this.isSharedTask) {
27295
- return;
27311
+ if (this_1.isSharedTask) {
27312
+ return { value: void 0 };
27296
27313
  }
27297
27314
  if (isByMethod) {
27298
- this.deleteDragRow();
27315
+ this_1.deleteDragRow();
27299
27316
  }
27300
- var recordIndex1 = this.treeGridData.indexOf(droppedRecord);
27301
- if (this.dropPosition === 'topSegment') {
27302
- this.dropAtTop(recordIndex1);
27317
+ var recordIndex1 = this_1.treeGridData.indexOf(droppedRecord);
27318
+ if (this_1.dropPosition === 'topSegment') {
27319
+ this_1.dropAtTop(recordIndex1);
27303
27320
  }
27304
- if (this.dropPosition === 'bottomSegment') {
27305
- if (!this.isSharedTask) {
27321
+ if (this_1.dropPosition === 'bottomSegment') {
27322
+ if (!this_1.isSharedTask) {
27306
27323
  if (!droppedRecord.hasChildRecords) {
27307
- if (this.parent.taskFields.parentID && this.ganttData.length > 0) {
27308
- this.ganttData.splice(recordIndex1 + 1, 0, this.draggedRecord.taskData);
27324
+ if (this_1.parent.taskFields.parentID && this_1.ganttData.length > 0) {
27325
+ this_1.ganttData.splice(recordIndex1 + 1, 0, this_1.draggedRecord.taskData);
27309
27326
  }
27310
- this.treeGridData.splice(recordIndex1 + 1, 0, this.draggedRecord);
27311
- this.parent.ids.splice(recordIndex1 + 1, 0, this.draggedRecord.ganttProperties.rowUniqueID.toString());
27312
- if (this.parent.viewType === 'ResourceView') {
27313
- var taskId = this.draggedRecord.level === 0 ? 'R' + this.draggedRecord.ganttProperties.taskId : 'T' + this.draggedRecord.ganttProperties.taskId;
27314
- this.parent.getTaskIds().splice(recordIndex1 + 1, 0, taskId);
27327
+ this_1.treeGridData.splice(recordIndex1 + 1, 0, this_1.draggedRecord);
27328
+ this_1.parent.ids.splice(recordIndex1 + 1, 0, this_1.draggedRecord.ganttProperties.rowUniqueID.toString());
27329
+ if (this_1.parent.viewType === 'ResourceView') {
27330
+ var taskId = this_1.draggedRecord.level === 0 ? 'R' + this_1.draggedRecord.ganttProperties.taskId : 'T' + this_1.draggedRecord.ganttProperties.taskId;
27331
+ this_1.parent.getTaskIds().splice(recordIndex1 + 1, 0, taskId);
27315
27332
  }
27316
27333
  }
27317
27334
  else {
27318
- count = this.parent.editModule.getChildCount(droppedRecord, 0);
27319
- if (this.parent.taskFields.parentID && this.ganttData.length > 0) {
27320
- this.ganttData.splice(recordIndex1 + count + 1, 0, this.draggedRecord.taskData);
27335
+ count = this_1.parent.editModule.getChildCount(droppedRecord, 0);
27336
+ if (this_1.parent.taskFields.parentID && this_1.ganttData.length > 0) {
27337
+ this_1.ganttData.splice(recordIndex1 + count + 1, 0, this_1.draggedRecord.taskData);
27321
27338
  }
27322
- this.treeGridData.splice(recordIndex1 + count + 1, 0, this.draggedRecord);
27339
+ this_1.treeGridData.splice(recordIndex1 + count + 1, 0, this_1.draggedRecord);
27323
27340
  /* eslint-disable-next-line */
27324
- this.parent.ids.splice(recordIndex1 + count + 1, 0, this.draggedRecord.ganttProperties.rowUniqueID.toString());
27325
- if (this.parent.viewType === 'ResourceView') {
27326
- var spliceId = this.draggedRecord.level === 0 ? 'R' + this.draggedRecord.ganttProperties.taskId : 'T' + this.draggedRecord.ganttProperties.taskId;
27327
- this.parent.getTaskIds().splice(recordIndex1 + count + 1, 0, spliceId);
27341
+ this_1.parent.ids.splice(recordIndex1 + count + 1, 0, this_1.draggedRecord.ganttProperties.rowUniqueID.toString());
27342
+ if (this_1.parent.viewType === 'ResourceView') {
27343
+ var spliceId = this_1.draggedRecord.level === 0 ? 'R' + this_1.draggedRecord.ganttProperties.taskId : 'T' + this_1.draggedRecord.ganttProperties.taskId;
27344
+ this_1.parent.getTaskIds().splice(recordIndex1 + count + 1, 0, spliceId);
27328
27345
  }
27329
27346
  }
27330
- this.parent.setRecordValue('parentItem', this.treeGridData[recordIndex1].parentItem, draggedRecord);
27331
- this.parent.setRecordValue('parentUniqueID', this.treeGridData[recordIndex1].parentUniqueID, draggedRecord);
27332
- this.parent.setRecordValue('level', this.treeGridData[recordIndex1].level, draggedRecord);
27347
+ this_1.parent.setRecordValue('parentItem', this_1.treeGridData[recordIndex1].parentItem, draggedRecord);
27348
+ this_1.parent.setRecordValue('parentUniqueID', this_1.treeGridData[recordIndex1].parentUniqueID, draggedRecord);
27349
+ this_1.parent.setRecordValue('level', this_1.treeGridData[recordIndex1].level, draggedRecord);
27333
27350
  if (draggedRecord.hasChildRecords) {
27334
27351
  var level = 1;
27335
- this.updateChildRecordLevel(draggedRecord, level);
27336
- this.updateChildRecord(draggedRecord, recordIndex1 + count + 1);
27352
+ this_1.updateChildRecordLevel(draggedRecord, level);
27353
+ this_1.updateChildRecord(draggedRecord, recordIndex1 + count + 1);
27337
27354
  }
27338
27355
  if (droppedRecord.parentItem) {
27339
- var rec = this.parent.getParentTask(droppedRecord.parentItem).childRecords;
27356
+ var rec = this_1.parent.getParentTask(droppedRecord.parentItem).childRecords;
27340
27357
  var childRecords = rec;
27341
27358
  var droppedRecordIndex = childRecords.indexOf(droppedRecord) + 1;
27342
27359
  childRecords.splice(droppedRecordIndex, 0, draggedRecord);
27343
27360
  }
27344
27361
  }
27345
27362
  }
27346
- if (this.dropPosition === 'middleSegment') {
27347
- this.dropMiddle(recordIndex1);
27363
+ if (this_1.dropPosition === 'middleSegment') {
27364
+ this_1.dropMiddle(recordIndex1);
27348
27365
  if (droppedRecord.childRecords.length > 0) {
27349
27366
  delete droppedRecord.ganttProperties.segments;
27350
- delete droppedRecord.taskData[this.parent.taskFields.segments];
27367
+ delete droppedRecord.taskData[this_1.parent.taskFields.segments];
27351
27368
  }
27352
27369
  }
27353
27370
  // eslint-disable-next-line
27354
- if (!isNullOrUndefined(draggedRecord.parentItem && this.updateParentRecords.indexOf(draggedRecord.parentItem) !== -1)) {
27355
- this.updateParentRecords.push(draggedRecord.parentItem);
27371
+ if (!isNullOrUndefined(draggedRecord.parentItem && this_1.updateParentRecords.indexOf(draggedRecord.parentItem) !== -1)) {
27372
+ this_1.updateParentRecords.push(draggedRecord.parentItem);
27373
+ }
27374
+ }
27375
+ if (!this_1.parent.enableVirtualization) {
27376
+ var data_1 = gObj.flatData;
27377
+ var startIndex = void 0;
27378
+ var endIndex = void 0;
27379
+ if (draggedRecord.index < droppedRecord.index) {
27380
+ startIndex = draggedRecord.index;
27381
+ endIndex = droppedRecord.index;
27382
+ }
27383
+ else {
27384
+ startIndex = droppedRecord.index;
27385
+ endIndex = draggedRecord.index;
27386
+ }
27387
+ var _loop_2 = function (i_1) {
27388
+ if (!isNullOrUndefined(data_1[i_1])) {
27389
+ data_1[i_1].index = i_1;
27390
+ if (!isNullOrUndefined(data_1[i_1].parentItem)) {
27391
+ var updatedParent = data_1.filter(function (e) {
27392
+ return e.uniqueID === data_1[i_1].parentUniqueID;
27393
+ })[0];
27394
+ data_1[i_1].parentItem.index = updatedParent.index;
27395
+ }
27396
+ }
27397
+ };
27398
+ for (var i_1 = startIndex; i_1 <= endIndex; i_1++) {
27399
+ _loop_2(i_1);
27356
27400
  }
27357
27401
  }
27358
27402
  gObj.rowDragAndDropModule.refreshDataSource();
27403
+ };
27404
+ var this_1 = this;
27405
+ for (var i = 0; i < dragLength; i++) {
27406
+ var state_1 = _loop_1(i);
27407
+ if (typeof state_1 === "object")
27408
+ return state_1.value;
27359
27409
  }
27360
27410
  if (this.dropPosition === 'middleSegment') {
27361
27411
  if (droppedRecord.ganttProperties.predecessor) {