@syncfusion/ej2-gantt 19.4.53 → 19.4.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/README.md +1 -1
- package/dist/ej2-gantt.umd.min.js +2 -2
- package/dist/ej2-gantt.umd.min.js.map +1 -1
- package/dist/es6/ej2-gantt.es2015.js +111 -83
- package/dist/es6/ej2-gantt.es2015.js.map +1 -1
- package/dist/es6/ej2-gantt.es5.js +115 -83
- package/dist/es6/ej2-gantt.es5.js.map +1 -1
- package/dist/global/ej2-gantt.min.js +2 -2
- package/dist/global/ej2-gantt.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +14 -14
- package/src/gantt/actions/cell-edit.js +2 -1
- package/src/gantt/actions/edit.js +33 -15
- package/src/gantt/actions/rowdragdrop.js +7 -1
- package/src/gantt/actions/selection.js +3 -0
- package/src/gantt/base/date-processor.js +2 -1
- package/src/gantt/base/gantt-chart.js +28 -2
- package/src/gantt/base/gantt.js +14 -55
- package/src/gantt/renderer/chart-rows.js +23 -8
- package/src/gantt/renderer/timeline.js +3 -0
|
@@ -478,7 +478,8 @@ class DateProcessor {
|
|
|
478
478
|
calculateDuration(ganttData) {
|
|
479
479
|
const ganttProperties = ganttData.ganttProperties;
|
|
480
480
|
let tDuration;
|
|
481
|
-
if (!isNullOrUndefined(ganttProperties.segments) && ganttProperties.segments.length > 0
|
|
481
|
+
if (!isNullOrUndefined(ganttProperties.segments) && ganttProperties.segments.length > 0 &&
|
|
482
|
+
!isNullOrUndefined(this.parent.editModule.taskbarEditModule)) {
|
|
482
483
|
tDuration = this.parent.editModule.taskbarEditModule.sumOfDuration(ganttProperties.segments);
|
|
483
484
|
}
|
|
484
485
|
else {
|
|
@@ -4278,7 +4279,19 @@ class GanttChart {
|
|
|
4278
4279
|
//empty row height
|
|
4279
4280
|
const emptydivHeight = 36;
|
|
4280
4281
|
const emptyHeight = this.parent.contentHeight === 0 ? this.parent.flatData.length > 1 ? emptydivHeight : 0 : this.parent.contentHeight;
|
|
4281
|
-
this.
|
|
4282
|
+
let contentElement = this.parent.element.getElementsByClassName('e-chart-scroll-container e-content')[0];
|
|
4283
|
+
if (emptyHeight >= contentElement['offsetHeight']) {
|
|
4284
|
+
this.chartBodyContent.style.height = formatUnit(emptyHeight);
|
|
4285
|
+
}
|
|
4286
|
+
else {
|
|
4287
|
+
let scrollHeight = this.parent.element.getElementsByClassName('e-chart-rows-container')[0]['offsetHeight'];
|
|
4288
|
+
if (contentElement['offsetHeight'] >= scrollHeight) {
|
|
4289
|
+
this.chartBodyContent.style.height = contentElement['offsetHeight'] - 17 + 'px';
|
|
4290
|
+
}
|
|
4291
|
+
else {
|
|
4292
|
+
this.chartBodyContent.style.height = contentElement['offsetHeight'] + 'px';
|
|
4293
|
+
}
|
|
4294
|
+
}
|
|
4282
4295
|
//let element: HTMLElement = this.chartTimelineContainer.querySelector('.' + cls.timelineHeaderTableContainer);
|
|
4283
4296
|
this.chartBodyContent.style.width = formatUnit(this.parent.timelineModule.totalTimelineWidth);
|
|
4284
4297
|
this.setVirtualHeight();
|
|
@@ -4311,7 +4324,21 @@ class GanttChart {
|
|
|
4311
4324
|
if (this.chartBodyContent.clientHeight < this.chartBodyContainer.clientHeight) {
|
|
4312
4325
|
if (lastRow) {
|
|
4313
4326
|
addClass(lastRow.querySelectorAll('td'), 'e-lastrow');
|
|
4314
|
-
|
|
4327
|
+
const emptydivHeight = 36;
|
|
4328
|
+
const emptyHeight = this.parent.contentHeight === 0 ? this.parent.flatData.length > 1 ? emptydivHeight : 0 : this.parent.contentHeight;
|
|
4329
|
+
let contentElement = this.parent.element.getElementsByClassName('e-chart-scroll-container e-content')[0];
|
|
4330
|
+
if (emptyHeight >= contentElement['offsetHeight']) {
|
|
4331
|
+
this.chartBodyContent.style.height = formatUnit(emptyHeight);
|
|
4332
|
+
}
|
|
4333
|
+
else {
|
|
4334
|
+
let scrollHeight = this.parent.element.getElementsByClassName('e-chart-rows-container')[0]['offsetHeight'];
|
|
4335
|
+
if (contentElement['offsetHeight'] >= scrollHeight) {
|
|
4336
|
+
this.chartBodyContent.style.height = contentElement['offsetHeight'] - 17 + 'px';
|
|
4337
|
+
}
|
|
4338
|
+
else {
|
|
4339
|
+
this.chartBodyContent.style.height = contentElement['offsetHeight'] + 'px';
|
|
4340
|
+
}
|
|
4341
|
+
}
|
|
4315
4342
|
}
|
|
4316
4343
|
}
|
|
4317
4344
|
}
|
|
@@ -5355,7 +5382,7 @@ class Timeline {
|
|
|
5355
5382
|
const currentZoomingLevel = this.checkCurrentZoomingLevel();
|
|
5356
5383
|
this.isZoomIn = isZoomIn;
|
|
5357
5384
|
this.isZooming = true;
|
|
5358
|
-
|
|
5385
|
+
let currentLevel = isZoomIn ? currentZoomingLevel + 1 : currentZoomingLevel - 1;
|
|
5359
5386
|
if (this.parent.toolbarModule) {
|
|
5360
5387
|
if (isZoomIn) {
|
|
5361
5388
|
if (currentLevel === this.parent.zoomingLevels[this.parent.zoomingLevels.length - 1].level) {
|
|
@@ -5374,6 +5401,9 @@ class Timeline {
|
|
|
5374
5401
|
}
|
|
5375
5402
|
}
|
|
5376
5403
|
}
|
|
5404
|
+
currentLevel = this.parent.zoomingLevels.findIndex((tempLevel) => {
|
|
5405
|
+
return tempLevel.level === currentLevel;
|
|
5406
|
+
});
|
|
5377
5407
|
let newTimeline = this.parent.zoomingLevels[currentLevel];
|
|
5378
5408
|
const args = {
|
|
5379
5409
|
requestType: isZoomIn ? 'beforeZoomIn' : 'beforeZoomOut',
|
|
@@ -7945,7 +7975,7 @@ class ChartRows extends DateProcessor {
|
|
|
7945
7975
|
let childTaskbarNode = null;
|
|
7946
7976
|
const data = this.templateData;
|
|
7947
7977
|
if (this.childTaskbarTemplateFunction) {
|
|
7948
|
-
childTaskbarNode = this.childTaskbarTemplateFunction(extend({ index: i }, data), this.parent, 'TaskbarTemplate', this.getTemplateID('TaskbarTemplate'), false, undefined, rootElement[0]);
|
|
7978
|
+
childTaskbarNode = this.childTaskbarTemplateFunction(extend({ index: i }, data), this.parent, 'TaskbarTemplate', this.getTemplateID('TaskbarTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
|
|
7949
7979
|
}
|
|
7950
7980
|
else {
|
|
7951
7981
|
let labelString = '';
|
|
@@ -8384,7 +8414,7 @@ class ChartRows extends DateProcessor {
|
|
|
8384
8414
|
let milestoneNode = null;
|
|
8385
8415
|
const data = this.templateData;
|
|
8386
8416
|
if (this.milestoneTemplateFunction) {
|
|
8387
|
-
milestoneNode = this.milestoneTemplateFunction(extend({ index: i }, data), this.parent, 'MilestoneTemplate', this.getTemplateID('MilestoneTemplate'), false, undefined, rootElement[0]);
|
|
8417
|
+
milestoneNode = this.milestoneTemplateFunction(extend({ index: i }, data), this.parent, 'MilestoneTemplate', this.getTemplateID('MilestoneTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
|
|
8388
8418
|
}
|
|
8389
8419
|
else {
|
|
8390
8420
|
const template = '<div class="' + traceMilestone + '" style="position:absolute;">' +
|
|
@@ -8455,7 +8485,7 @@ class ChartRows extends DateProcessor {
|
|
|
8455
8485
|
leftLabelNode[0].setAttribute('aria-label', this.generateTaskLabelAriaLabel('left'));
|
|
8456
8486
|
let leftLabelTemplateNode = null;
|
|
8457
8487
|
if (this.leftTaskLabelTemplateFunction) {
|
|
8458
|
-
leftLabelTemplateNode = this.leftTaskLabelTemplateFunction(extend({ index: i }, this.templateData), this.parent, 'LeftLabelTemplate', this.getTemplateID('LeftLabelTemplate'), false, undefined, leftLabelNode[0]);
|
|
8488
|
+
leftLabelTemplateNode = this.leftTaskLabelTemplateFunction(extend({ index: i }, this.templateData), this.parent, 'LeftLabelTemplate', this.getTemplateID('LeftLabelTemplate'), false, undefined, leftLabelNode[0], this.parent.treeGrid['root']);
|
|
8459
8489
|
}
|
|
8460
8490
|
else {
|
|
8461
8491
|
const field = this.parent.labelSettings.leftLabel;
|
|
@@ -8466,6 +8496,9 @@ class ChartRows extends DateProcessor {
|
|
|
8466
8496
|
}
|
|
8467
8497
|
}
|
|
8468
8498
|
if (leftLabelTemplateNode && leftLabelTemplateNode.length > 0) {
|
|
8499
|
+
if (leftLabelTemplateNode[0]['data'] === 'null') {
|
|
8500
|
+
leftLabelTemplateNode[0]['data'] = '';
|
|
8501
|
+
}
|
|
8469
8502
|
leftLabelNode[0].appendChild([].slice.call(leftLabelTemplateNode)[0]);
|
|
8470
8503
|
}
|
|
8471
8504
|
return leftLabelNode;
|
|
@@ -8495,7 +8528,7 @@ class ChartRows extends DateProcessor {
|
|
|
8495
8528
|
rightLabelNode[0].setAttribute('aria-label', this.generateTaskLabelAriaLabel('right'));
|
|
8496
8529
|
let rightLabelTemplateNode = null;
|
|
8497
8530
|
if (this.rightTaskLabelTemplateFunction) {
|
|
8498
|
-
rightLabelTemplateNode = this.rightTaskLabelTemplateFunction(extend({ index: i }, this.templateData), this.parent, 'RightLabelTemplate', this.getTemplateID('RightLabelTemplate'), false, undefined, rightLabelNode[0]);
|
|
8531
|
+
rightLabelTemplateNode = this.rightTaskLabelTemplateFunction(extend({ index: i }, this.templateData), this.parent, 'RightLabelTemplate', this.getTemplateID('RightLabelTemplate'), false, undefined, rightLabelNode[0], this.parent.treeGrid['root']);
|
|
8499
8532
|
}
|
|
8500
8533
|
else {
|
|
8501
8534
|
const field = this.parent.labelSettings.rightLabel;
|
|
@@ -8506,6 +8539,9 @@ class ChartRows extends DateProcessor {
|
|
|
8506
8539
|
}
|
|
8507
8540
|
}
|
|
8508
8541
|
if (rightLabelTemplateNode && rightLabelTemplateNode.length > 0) {
|
|
8542
|
+
if (rightLabelTemplateNode[0]['data'] === 'null') {
|
|
8543
|
+
rightLabelTemplateNode[0]['data'] = '';
|
|
8544
|
+
}
|
|
8509
8545
|
rightLabelNode[0].appendChild([].slice.call(rightLabelTemplateNode)[0]);
|
|
8510
8546
|
}
|
|
8511
8547
|
return rightLabelNode;
|
|
@@ -8560,7 +8596,7 @@ class ChartRows extends DateProcessor {
|
|
|
8560
8596
|
let parentTaskbarNode = null;
|
|
8561
8597
|
const data = this.templateData;
|
|
8562
8598
|
if (this.parentTaskbarTemplateFunction) {
|
|
8563
|
-
parentTaskbarNode = this.parentTaskbarTemplateFunction(extend({ index: i }, data), this.parent, 'ParentTaskbarTemplate', this.getTemplateID('ParentTaskbarTemplate'), false, undefined, rootElement[0]);
|
|
8599
|
+
parentTaskbarNode = this.parentTaskbarTemplateFunction(extend({ index: i }, data), this.parent, 'ParentTaskbarTemplate', this.getTemplateID('ParentTaskbarTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
|
|
8564
8600
|
}
|
|
8565
8601
|
else {
|
|
8566
8602
|
let labelString = '';
|
|
@@ -8674,10 +8710,19 @@ class ChartRows extends DateProcessor {
|
|
|
8674
8710
|
}
|
|
8675
8711
|
isTemplate(template) {
|
|
8676
8712
|
let result = false;
|
|
8713
|
+
for (let i = 0; i < this.parent.ganttColumns.length; i++) {
|
|
8714
|
+
if (template === this.parent.ganttColumns[i].field) {
|
|
8715
|
+
result = true;
|
|
8716
|
+
break;
|
|
8717
|
+
}
|
|
8718
|
+
}
|
|
8677
8719
|
if (typeof template !== 'string' || template.indexOf('#') === 0 || template.indexOf('<') > -1
|
|
8678
|
-
|| template.indexOf('$') > -1) {
|
|
8720
|
+
|| template.indexOf('$') > -1 || !result) {
|
|
8679
8721
|
result = true;
|
|
8680
8722
|
}
|
|
8723
|
+
else {
|
|
8724
|
+
result = false;
|
|
8725
|
+
}
|
|
8681
8726
|
return result;
|
|
8682
8727
|
}
|
|
8683
8728
|
/**
|
|
@@ -8692,7 +8737,7 @@ class ChartRows extends DateProcessor {
|
|
|
8692
8737
|
leftLabelContainer() {
|
|
8693
8738
|
const template = '<div class="' + ((this.leftTaskLabelTemplateFunction) ? leftLabelTempContainer :
|
|
8694
8739
|
leftLabelContainer) + ' ' + '" tabindex="-1" style="height:' +
|
|
8695
|
-
(this.parent.rowHeight -
|
|
8740
|
+
(this.parent.rowHeight - 2) + 'px;width:' + this.taskNameWidth(this.templateData) + '"></div>';
|
|
8696
8741
|
return this.createDivElement(template);
|
|
8697
8742
|
}
|
|
8698
8743
|
taskbarContainer() {
|
|
@@ -8715,7 +8760,7 @@ class ChartRows extends DateProcessor {
|
|
|
8715
8760
|
rightLabelContainer() {
|
|
8716
8761
|
const template = '<div class="' + ((this.rightTaskLabelTemplateFunction) ? rightLabelTempContainer :
|
|
8717
8762
|
rightLabelContainer) + '" ' + ' tabindex="-1" style="left:' + this.getRightLabelLeft(this.templateData) + 'px;height:'
|
|
8718
|
-
+ (this.parent.rowHeight -
|
|
8763
|
+
+ (this.parent.rowHeight - 2) + 'px;"></div>';
|
|
8719
8764
|
return this.createDivElement(template);
|
|
8720
8765
|
}
|
|
8721
8766
|
childTaskbarLeftResizer() {
|
|
@@ -12312,25 +12357,7 @@ let Gantt = class Gantt extends Component {
|
|
|
12312
12357
|
* @returns {void} .
|
|
12313
12358
|
*/
|
|
12314
12359
|
calculateDimensions() {
|
|
12315
|
-
let settingsHeight;
|
|
12316
|
-
if (typeof (this.height) !== 'number' && this.height.indexOf('%') !== -1 && (this.element.parentElement &&
|
|
12317
|
-
!this.element.parentElement.style.height || this.element.parentElement.style.height.indexOf('%') !== -1)) {
|
|
12318
|
-
let ganttHeight;
|
|
12319
|
-
if (this.element.parentElement.style.height.indexOf('%') == -1) {
|
|
12320
|
-
ganttHeight = Number(this.height.split("%")[0]);
|
|
12321
|
-
}
|
|
12322
|
-
else {
|
|
12323
|
-
ganttHeight = Number(this.element.parentElement.style.height.split("%")[0]);
|
|
12324
|
-
}
|
|
12325
|
-
ganttHeight = (ganttHeight * window.innerHeight) / 100;
|
|
12326
|
-
if (this.height === '100%') {
|
|
12327
|
-
ganttHeight = ganttHeight - 16;
|
|
12328
|
-
}
|
|
12329
|
-
settingsHeight = this.validateDimentionValue(ganttHeight);
|
|
12330
|
-
}
|
|
12331
|
-
else {
|
|
12332
|
-
settingsHeight = this.validateDimentionValue(this.height);
|
|
12333
|
-
}
|
|
12360
|
+
let settingsHeight = this.validateDimentionValue(this.height);
|
|
12334
12361
|
let settingsWidth = this.validateDimentionValue(this.width);
|
|
12335
12362
|
if (!isNullOrUndefined(this.width) && typeof (this.width) === 'string' && this.width.indexOf('%') !== -1) {
|
|
12336
12363
|
settingsWidth = this.width;
|
|
@@ -12473,40 +12500,6 @@ let Gantt = class Gantt extends Component {
|
|
|
12473
12500
|
*/
|
|
12474
12501
|
windowResize() {
|
|
12475
12502
|
if (!isNullOrUndefined(this.element)) {
|
|
12476
|
-
let settingsHeight;
|
|
12477
|
-
if (this.height.indexOf('%') !== -1) {
|
|
12478
|
-
let ganttHeight = Number(this.height.split("%")[0]);
|
|
12479
|
-
if (this.element.parentElement && (this.element.parentElement.style.height)) {
|
|
12480
|
-
let containerHeight;
|
|
12481
|
-
if (this.element.parentElement.style.height.indexOf('%') == -1) {
|
|
12482
|
-
containerHeight = Number(this.element.parentElement.style.height.split("px")[0]);
|
|
12483
|
-
ganttHeight = (ganttHeight * containerHeight) / 100;
|
|
12484
|
-
}
|
|
12485
|
-
else {
|
|
12486
|
-
containerHeight = Number(this.element.parentElement.style.height.split("%")[0]);
|
|
12487
|
-
ganttHeight = (window.innerHeight * containerHeight) / 100;
|
|
12488
|
-
}
|
|
12489
|
-
}
|
|
12490
|
-
else {
|
|
12491
|
-
ganttHeight = Number(this.height.split("%")[0]);
|
|
12492
|
-
ganttHeight = (ganttHeight * window.innerHeight) / 100;
|
|
12493
|
-
}
|
|
12494
|
-
if (this.height === '100%') {
|
|
12495
|
-
ganttHeight = ganttHeight - 16;
|
|
12496
|
-
}
|
|
12497
|
-
let toolbarHeight = 0;
|
|
12498
|
-
if (!isNullOrUndefined(this.toolbarModule) && !isNullOrUndefined(this.toolbarModule.element)) {
|
|
12499
|
-
toolbarHeight = this.toolbarModule.element.offsetHeight;
|
|
12500
|
-
}
|
|
12501
|
-
let contentHeight = ganttHeight - this.ganttChartModule.chartTimelineContainer.offsetHeight - toolbarHeight;
|
|
12502
|
-
settingsHeight = this.validateDimentionValue(ganttHeight);
|
|
12503
|
-
this.element.style.height = settingsHeight;
|
|
12504
|
-
this.element.querySelectorAll('.e-content')[0]['style'].height = contentHeight + 'px';
|
|
12505
|
-
this.element.querySelectorAll('.e-content')[2]['style'].height = contentHeight + 'px';
|
|
12506
|
-
}
|
|
12507
|
-
else {
|
|
12508
|
-
settingsHeight = this.validateDimentionValue(this.height);
|
|
12509
|
-
}
|
|
12510
12503
|
this.updateContentHeight();
|
|
12511
12504
|
this.ganttChartModule.updateWidthAndHeight(); // Updating chart scroll conatiner height for row mismatch
|
|
12512
12505
|
this.treeGridModule.ensureScrollBar();
|
|
@@ -12851,6 +12844,18 @@ let Gantt = class Gantt extends Component {
|
|
|
12851
12844
|
* @private
|
|
12852
12845
|
*/
|
|
12853
12846
|
treeDataBound(args) {
|
|
12847
|
+
this.element.getElementsByClassName('e-chart-root-container')[0]['style'].height = '100%';
|
|
12848
|
+
let gridHeight = this.element.getElementsByClassName('e-gridcontent')[0]['style'].height;
|
|
12849
|
+
let timelineContainer = this.element.getElementsByClassName('e-timeline-header-container')[0]['offsetHeight'];
|
|
12850
|
+
gridHeight = 'calc(100% - ' + timelineContainer + 'px)';
|
|
12851
|
+
// eslint-disable-next-line
|
|
12852
|
+
this.element.getElementsByClassName('e-chart-scroll-container e-content')[0]['style'].height = 'calc(100% - ' + timelineContainer + 'px)';
|
|
12853
|
+
if (!isNullOrUndefined(this.toolbarModule)) {
|
|
12854
|
+
this.splitterElement.style.height = 'calc(100% - ' + this.toolbarModule.element.offsetHeight + 'px)';
|
|
12855
|
+
}
|
|
12856
|
+
else {
|
|
12857
|
+
this.splitterElement.style.height = '100%';
|
|
12858
|
+
}
|
|
12854
12859
|
if (this.isLoad) {
|
|
12855
12860
|
this.updateCurrentViewData();
|
|
12856
12861
|
if (!this.enableVirtualization) {
|
|
@@ -12870,8 +12875,7 @@ let Gantt = class Gantt extends Component {
|
|
|
12870
12875
|
removeClass(this.treeGrid.element.querySelectorAll('.e-headercell'), timelineSingleHeaderOuterDiv);
|
|
12871
12876
|
removeClass(this.treeGrid.element.querySelectorAll('.e-columnheader'), timelineSingleHeaderOuterDiv);
|
|
12872
12877
|
}
|
|
12873
|
-
this.treeGrid.height =
|
|
12874
|
-
this.treeGrid.grid.getHeaderContent().offsetHeight;
|
|
12878
|
+
this.treeGrid.height = '100%';
|
|
12875
12879
|
this.notify('tree-grid-created', {});
|
|
12876
12880
|
this.createGanttPopUpElement();
|
|
12877
12881
|
this.hideSpinner();
|
|
@@ -15638,7 +15642,8 @@ class CellEdit {
|
|
|
15638
15642
|
if (!ganttRecord.ganttProperties.isAutoSchedule) {
|
|
15639
15643
|
this.parent.setRecordValue('autoWidth', this.parent.dataOperation.calculateWidth(ganttRecord, false), ganttRecord.ganttProperties, true);
|
|
15640
15644
|
}
|
|
15641
|
-
if (!isNullOrUndefined(args.data.ganttProperties.segments) && args.data.ganttProperties.segments.length > 0
|
|
15645
|
+
if (!isNullOrUndefined(args.data.ganttProperties.segments) && args.data.ganttProperties.segments.length > 0 &&
|
|
15646
|
+
!isNullOrUndefined(this.parent.editModule.taskbarEditModule)) {
|
|
15642
15647
|
this.parent.editModule.taskbarEditModule.updateSegmentProgress(args.data.ganttProperties);
|
|
15643
15648
|
}
|
|
15644
15649
|
if (!args.data.hasChildRecords) {
|
|
@@ -23178,23 +23183,22 @@ class Edit$2 {
|
|
|
23178
23183
|
}
|
|
23179
23184
|
/* data Source update */
|
|
23180
23185
|
if (!isNullOrUndefined(parentItem)) {
|
|
23181
|
-
|
|
23182
|
-
|
|
23186
|
+
if (rowPosition == 'Above') {
|
|
23187
|
+
childIndex = parentItem.childRecords.indexOf(this.addRowSelectedItem);
|
|
23188
|
+
}
|
|
23189
|
+
else if (rowPosition == 'Below') {
|
|
23190
|
+
childIndex = parentItem.childRecords.indexOf(this.addRowSelectedItem) + 1;
|
|
23191
|
+
}
|
|
23192
|
+
else {
|
|
23193
|
+
childIndex = parentItem.childRecords.length;
|
|
23194
|
+
} /*Child collection update*/
|
|
23183
23195
|
parentItem.childRecords.splice(childIndex, 0, record);
|
|
23184
23196
|
if ((this.parent.dataSource instanceof DataManager &&
|
|
23185
23197
|
isNullOrUndefined(parentItem.taskData[this.parent.taskFields.parentID])) ||
|
|
23186
23198
|
!isNullOrUndefined(this.parent.dataSource)) {
|
|
23187
23199
|
const child = this.parent.taskFields.child;
|
|
23188
23200
|
if (parentItem.taskData[child] && parentItem.taskData[child].length > 0) {
|
|
23189
|
-
|
|
23190
|
-
parentItem.taskData[child].splice(childIndex, 0, record.taskData);
|
|
23191
|
-
}
|
|
23192
|
-
else if (rowPosition === 'Below') {
|
|
23193
|
-
parentItem.taskData[child].splice(childIndex + 1, 0, record.taskData);
|
|
23194
|
-
}
|
|
23195
|
-
else {
|
|
23196
|
-
parentItem.taskData[child].push(record.taskData);
|
|
23197
|
-
}
|
|
23201
|
+
parentItem.taskData[child].splice(childIndex, 0, record.taskData);
|
|
23198
23202
|
}
|
|
23199
23203
|
else {
|
|
23200
23204
|
parentItem.taskData[child] = [];
|
|
@@ -23259,9 +23263,21 @@ class Edit$2 {
|
|
|
23259
23263
|
refreshRecordInImmutableMode() {
|
|
23260
23264
|
for (let i = 0; i < this.parent.modifiedRecords.length; i++) {
|
|
23261
23265
|
const originalData = this.parent.modifiedRecords[i];
|
|
23262
|
-
|
|
23263
|
-
|
|
23264
|
-
this.parent.
|
|
23266
|
+
let treeIndex = this.parent.allowRowDragAndDrop ? 1 : 0;
|
|
23267
|
+
let uniqueTaskID = this.parent.taskFields.id;
|
|
23268
|
+
var originalIndex = this.parent.currentViewData.findIndex((data) => {
|
|
23269
|
+
return (data[uniqueTaskID] == originalData[uniqueTaskID]);
|
|
23270
|
+
});
|
|
23271
|
+
if (this.parent.treeGrid.getRows()[originalIndex]) {
|
|
23272
|
+
this.parent.treeGrid.renderModule.cellRender({
|
|
23273
|
+
data: originalData, cell: this.parent.treeGrid.getRows()[originalIndex].cells[this.parent.treeColumnIndex + treeIndex],
|
|
23274
|
+
column: this.parent.treeGrid.grid.getColumns()[this.parent.treeColumnIndex],
|
|
23275
|
+
requestType: 'rowDragAndDrop'
|
|
23276
|
+
});
|
|
23277
|
+
this.parent.treeGrid.renderModule.RowModifier({
|
|
23278
|
+
data: originalData, row: this.parent.treeGrid.getRows()[originalIndex], rowHeight: this.parent.rowHeight
|
|
23279
|
+
});
|
|
23280
|
+
}
|
|
23265
23281
|
}
|
|
23266
23282
|
}
|
|
23267
23283
|
/**
|
|
@@ -24012,15 +24028,18 @@ class Edit$2 {
|
|
|
24012
24028
|
if (this.dropPosition === 'topSegment' || this.dropPosition === 'bottomSegment') {
|
|
24013
24029
|
draggedRec[this.parent.taskFields.parentID] = droppedRec[this.parent.taskFields.parentID];
|
|
24014
24030
|
draggedRec.taskData[this.parent.taskFields.parentID] = droppedRec[this.parent.taskFields.parentID];
|
|
24031
|
+
draggedRec.ganttProperties['parentId'] = droppedRec[this.parent.taskFields.parentID];
|
|
24015
24032
|
}
|
|
24016
24033
|
else {
|
|
24017
24034
|
draggedRec[this.parent.taskFields.parentID] = droppedRec[this.parent.taskFields.id];
|
|
24018
24035
|
draggedRec.taskData[this.parent.taskFields.parentID] = droppedRec[this.parent.taskFields.id];
|
|
24036
|
+
draggedRec.ganttProperties['parentId'] = droppedRec[this.parent.taskFields.id];
|
|
24019
24037
|
}
|
|
24020
24038
|
}
|
|
24021
24039
|
else {
|
|
24022
24040
|
draggedRec[this.parent.taskFields.parentID] = null;
|
|
24023
24041
|
draggedRec.taskData[this.parent.taskFields.parentID] = null;
|
|
24042
|
+
draggedRec.ganttProperties['parentId'] = null;
|
|
24024
24043
|
}
|
|
24025
24044
|
}
|
|
24026
24045
|
}
|
|
@@ -24873,6 +24892,9 @@ class Selection$1 {
|
|
|
24873
24892
|
this.addRemoveClass(index);
|
|
24874
24893
|
this.selectedRowIndexes = extend([], this.getSelectedRowIndexes(), [], true);
|
|
24875
24894
|
this.parent.setProperties({ selectedRowIndex: -1 }, true);
|
|
24895
|
+
if (this.selectedRowIndexes.length === 1) {
|
|
24896
|
+
this.parent.setProperties({ selectedRowIndex: this.selectedRowIndexes[0] }, true);
|
|
24897
|
+
}
|
|
24876
24898
|
if (!isNullOrUndefined(this.parent.toolbarModule)) {
|
|
24877
24899
|
this.parent.toolbarModule.refreshToolbarItems();
|
|
24878
24900
|
}
|
|
@@ -27106,7 +27128,13 @@ class RowDD$1 {
|
|
|
27106
27128
|
}
|
|
27107
27129
|
else {
|
|
27108
27130
|
startIndex = droppedRecord.index;
|
|
27109
|
-
|
|
27131
|
+
let rootChildRecord = draggedRecord;
|
|
27132
|
+
if (rootChildRecord.childRecords.length > 0) {
|
|
27133
|
+
do {
|
|
27134
|
+
rootChildRecord = rootChildRecord.childRecords[rootChildRecord.childRecords.length - 1];
|
|
27135
|
+
} while (rootChildRecord.childRecords.length > 0);
|
|
27136
|
+
}
|
|
27137
|
+
endIndex = rootChildRecord.index;
|
|
27110
27138
|
}
|
|
27111
27139
|
for (let i = startIndex; i <= endIndex; i++) {
|
|
27112
27140
|
if (!isNullOrUndefined(data[i])) {
|