@syncfusion/ej2-gantt 21.2.9 → 22.1.34
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/.eslintrc.json +1 -0
- package/CHANGELOG.md +23 -0
- package/dist/ej2-gantt.min.js +2 -2
- 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 +751 -715
- package/dist/es6/ej2-gantt.es2015.js.map +1 -1
- package/dist/es6/ej2-gantt.es5.js +790 -755
- 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 +19 -18
- package/src/gantt/actions/connector-line-edit.js +21 -26
- package/src/gantt/actions/context-menu.js +2 -2
- package/src/gantt/actions/critical-path.js +4 -9
- package/src/gantt/actions/day-markers.js +4 -1
- package/src/gantt/actions/edit.js +9 -6
- package/src/gantt/actions/pdf-export.js +1 -1
- package/src/gantt/actions/taskbar-edit.d.ts +6 -0
- package/src/gantt/actions/taskbar-edit.js +120 -45
- package/src/gantt/base/css-constants.d.ts +5 -10
- package/src/gantt/base/css-constants.js +5 -10
- package/src/gantt/base/date-processor.js +10 -20
- package/src/gantt/base/enum.d.ts +215 -231
- package/src/gantt/base/gantt-chart.js +112 -5
- package/src/gantt/base/gantt-model.d.ts +6 -3
- package/src/gantt/base/gantt.d.ts +7 -3
- package/src/gantt/base/gantt.js +17 -13
- package/src/gantt/base/interface.d.ts +36 -1
- package/src/gantt/base/task-processor.js +21 -18
- package/src/gantt/base/tree-grid.js +1 -1
- package/src/gantt/export/export-helper.js +1 -0
- package/src/gantt/export/pdf-connector-line.d.ts +4 -4
- package/src/gantt/export/pdf-connector-line.js +11 -22
- package/src/gantt/export/pdf-gantt.d.ts +1 -2
- package/src/gantt/export/pdf-gantt.js +4 -4
- package/src/gantt/models/column.d.ts +8 -4
- package/src/gantt/models/edit-settings-model.d.ts +1 -0
- package/src/gantt/models/edit-settings.d.ts +1 -0
- package/src/gantt/models/filter-settings-model.d.ts +3 -0
- package/src/gantt/models/filter-settings.d.ts +3 -0
- package/src/gantt/models/search-settings-model.d.ts +1 -0
- package/src/gantt/models/search-settings.d.ts +1 -0
- package/src/gantt/models/sort-settings-model.d.ts +1 -0
- package/src/gantt/models/sort-settings.d.ts +1 -0
- package/src/gantt/models/tooltip-settings-model.d.ts +8 -4
- package/src/gantt/models/tooltip-settings.d.ts +8 -4
- package/src/gantt/renderer/chart-rows.d.ts +1 -1
- package/src/gantt/renderer/chart-rows.js +27 -65
- package/src/gantt/renderer/connector-line.d.ts +23 -0
- package/src/gantt/renderer/connector-line.js +287 -384
- package/src/gantt/renderer/edit-tooltip.js +4 -4
- package/src/gantt/renderer/nonworking-day.js +2 -2
- package/src/gantt/renderer/tooltip.d.ts +3 -3
- package/src/gantt/renderer/tooltip.js +103 -76
- package/styles/bootstrap-dark.css +27 -47
- package/styles/bootstrap.css +29 -49
- package/styles/bootstrap4.css +29 -49
- package/styles/bootstrap5-dark.css +27 -47
- package/styles/bootstrap5.css +27 -47
- package/styles/fabric-dark.css +27 -47
- package/styles/fabric.css +27 -47
- package/styles/fluent-dark.css +28 -47
- package/styles/fluent.css +28 -47
- package/styles/gantt/_layout.scss +53 -7
- package/styles/gantt/_material3-dark-definition.scss +1 -0
- package/styles/gantt/_material3-definition.scss +220 -0
- package/styles/gantt/_theme.scss +53 -53
- package/styles/gantt/bootstrap-dark.css +27 -47
- package/styles/gantt/bootstrap.css +29 -49
- package/styles/gantt/bootstrap4.css +29 -49
- package/styles/gantt/bootstrap5-dark.css +27 -47
- package/styles/gantt/bootstrap5.css +27 -47
- package/styles/gantt/fabric-dark.css +27 -47
- package/styles/gantt/fabric.css +27 -47
- package/styles/gantt/fluent-dark.css +28 -47
- package/styles/gantt/fluent.css +28 -47
- package/styles/gantt/highcontrast-light.css +27 -47
- package/styles/gantt/highcontrast.css +27 -47
- package/styles/gantt/icons/_material3-dark.scss +1 -0
- package/styles/gantt/material-dark.css +27 -47
- package/styles/gantt/material.css +27 -47
- package/styles/gantt/material3-dark.css +2184 -0
- package/styles/gantt/material3-dark.scss +23 -0
- package/styles/gantt/material3.css +2240 -0
- package/styles/gantt/material3.scss +23 -0
- package/styles/gantt/tailwind-dark.css +27 -47
- package/styles/gantt/tailwind.css +27 -47
- package/styles/highcontrast-light.css +27 -47
- package/styles/highcontrast.css +27 -47
- package/styles/material-dark.css +27 -47
- package/styles/material.css +27 -47
- package/styles/material3-dark.css +2184 -0
- package/styles/material3-dark.scss +3 -0
- package/styles/material3.css +2240 -0
- package/styles/material3.scss +3 -0
- package/styles/tailwind-dark.css +27 -47
- package/styles/tailwind.css +27 -47
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Browser, ChildProperty, Collection, Complex, Component, Event, EventHandler, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, SanitizeHtmlHelper, addClass, append, classList, closest, compile, createElement, deleteObject, extend, formatUnit, getValue, isNullOrUndefined, isObject, isObjectArray, isUndefined, merge, remove, removeClass, setValue } from '@syncfusion/ej2-base';
|
|
1
|
+
import { Browser, ChildProperty, Collection, Complex, Component, Event, EventHandler, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, SanitizeHtmlHelper, addClass, append, classList, closest, compile, createElement, deleteObject, extend, formatUnit, getValue, initializeCSPTemplate, isNullOrUndefined, isObject, isObjectArray, isUndefined, merge, remove, removeClass, setValue } from '@syncfusion/ej2-base';
|
|
2
2
|
import { Dialog, Tooltip, createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';
|
|
3
3
|
import { Edit, ForeignKey, Grid, Page, Predicate, Toolbar, ValueFormatter, click, filterAfterOpen, getActualProperties, getCustomDateFormat, getFilterMenuPostion, getForeignData, getObject, getUid, parentsUntil, setCssInGridPopUp } from '@syncfusion/ej2-grids';
|
|
4
4
|
import { CacheAdaptor, DataManager, DataUtil, Deferred, ODataAdaptor, ODataV4Adaptor, Query, RemoteSaveAdaptor, UrlAdaptor, WebApiAdaptor, WebMethodAdaptor } from '@syncfusion/ej2-data';
|
|
5
5
|
import { ColumnMenu, ContextMenu, Edit as Edit$1, ExcelExport, Filter, Reorder, Resize, RowDD, Selection, Sort, TreeGrid, VirtualScroll } from '@syncfusion/ej2-treegrid';
|
|
6
|
+
import { SvgRenderer } from '@syncfusion/ej2-svg-base';
|
|
6
7
|
import { Splitter } from '@syncfusion/ej2-layouts';
|
|
7
8
|
import { ContextMenu as ContextMenu$1, Tab, Toolbar as Toolbar$1 } from '@syncfusion/ej2-navigations';
|
|
8
9
|
import { Count, HtmlEditor, Link, QuickToolbar, RichTextEditor, Toolbar as Toolbar$2 } from '@syncfusion/ej2-richtexteditor';
|
|
@@ -734,24 +735,7 @@ class DateProcessor {
|
|
|
734
735
|
this.setTime(this.parent.defaultStartTime, sDate);
|
|
735
736
|
}
|
|
736
737
|
else if (!isNullOrUndefined(duration)) {
|
|
737
|
-
this.
|
|
738
|
-
if (record.ganttProperties.taskId == ganttProp.taskId) {
|
|
739
|
-
if ((!isNullOrUndefined(record.parentItem)) && (record.parentItem.taskId)) {
|
|
740
|
-
this.parent.flatData.map((data) => {
|
|
741
|
-
if (data.ganttProperties.taskId === record.parentItem.taskId) {
|
|
742
|
-
if (!isNullOrUndefined(data.ganttProperties.startDate))
|
|
743
|
-
sDate = data.ganttProperties.startDate;
|
|
744
|
-
}
|
|
745
|
-
else {
|
|
746
|
-
sDate = this.getProjectStartDate(ganttProp);
|
|
747
|
-
}
|
|
748
|
-
});
|
|
749
|
-
}
|
|
750
|
-
else {
|
|
751
|
-
sDate = this.getProjectStartDate(ganttProp);
|
|
752
|
-
}
|
|
753
|
-
}
|
|
754
|
-
});
|
|
738
|
+
sDate = this.getProjectStartDate(ganttProp);
|
|
755
739
|
}
|
|
756
740
|
}
|
|
757
741
|
else {
|
|
@@ -1557,7 +1541,15 @@ class DateProcessor {
|
|
|
1557
1541
|
const segment = segments[i];
|
|
1558
1542
|
const sDate = segment.startDate;
|
|
1559
1543
|
const eDate = segment.endDate;
|
|
1560
|
-
|
|
1544
|
+
if (this.parent.timelineModule.bottomTier === "Hour") {
|
|
1545
|
+
duration += Math.ceil(this.getTimeDifference(sDate, eDate) / (1000 * 60 * 60));
|
|
1546
|
+
}
|
|
1547
|
+
else if (this.parent.timelineModule.bottomTier === "Minutes") {
|
|
1548
|
+
duration += Math.ceil(this.getTimeDifference(sDate, eDate) / (1000 * 60));
|
|
1549
|
+
}
|
|
1550
|
+
else {
|
|
1551
|
+
duration += Math.ceil(this.getTimeDifference(sDate, eDate) / (1000 * 60 * 60 * 24));
|
|
1552
|
+
}
|
|
1561
1553
|
}
|
|
1562
1554
|
return duration;
|
|
1563
1555
|
}
|
|
@@ -1885,7 +1877,7 @@ class TaskProcessor extends DateProcessor {
|
|
|
1885
1877
|
(this.parent.taskMode === 'Manual') ? false :
|
|
1886
1878
|
data[taskSettings.manual] === true ? false : true;
|
|
1887
1879
|
this.parent.setRecordValue('ganttProperties', ganttProperties, ganttData);
|
|
1888
|
-
if (!isNullOrUndefined(data[taskSettings.id])
|
|
1880
|
+
if (!isNullOrUndefined(data[taskSettings.id])) {
|
|
1889
1881
|
id = data[taskSettings.id];
|
|
1890
1882
|
name = data[taskSettings.name];
|
|
1891
1883
|
this.addTaskData(ganttData, data, isLoad);
|
|
@@ -2326,7 +2318,7 @@ class TaskProcessor extends DateProcessor {
|
|
|
2326
2318
|
startDate = this.getDateFromFormat(data[taskSettings.startDate], true);
|
|
2327
2319
|
endDate = this.getDateFromFormat(data[taskSettings.endDate], true);
|
|
2328
2320
|
}
|
|
2329
|
-
const segments = taskSettings.segments
|
|
2321
|
+
const segments = taskSettings.segments ? (data[taskSettings.segments] ||
|
|
2330
2322
|
ganttData.taskData[taskSettings.segments]) : null;
|
|
2331
2323
|
const isMileStone = taskSettings.milestone ? data[taskSettings.milestone] ? true : false : false;
|
|
2332
2324
|
const durationMapping = data[taskSettings.durationUnit] ? data[taskSettings.durationUnit] : '';
|
|
@@ -2948,7 +2940,7 @@ class TaskProcessor extends DateProcessor {
|
|
|
2948
2940
|
const data = [];
|
|
2949
2941
|
for (let k = 0; k < preTaskResources.length; k++) {
|
|
2950
2942
|
resourceData.filter((resourceInfo) => {
|
|
2951
|
-
if (resourceInfo[resourceSettings.id] === preTaskResources[k][resourceSettings.id]) {
|
|
2943
|
+
if (resourceInfo[resourceSettings.id] === preTaskResources[k][resourceSettings.id] && data.indexOf(preTaskResources[k]) === -1) {
|
|
2952
2944
|
data.push(preTaskResources[k]);
|
|
2953
2945
|
}
|
|
2954
2946
|
});
|
|
@@ -3014,7 +3006,7 @@ class TaskProcessor extends DateProcessor {
|
|
|
3014
3006
|
setDataSource(data) {
|
|
3015
3007
|
let createData = [];
|
|
3016
3008
|
let length = data.length;
|
|
3017
|
-
for (
|
|
3009
|
+
for (let i = 0; i < length; i++) {
|
|
3018
3010
|
let record = data[i];
|
|
3019
3011
|
createData.push(record);
|
|
3020
3012
|
if (!(isNullOrUndefined(data[i][this.parent.taskFields.child]))) {
|
|
@@ -3031,15 +3023,17 @@ class TaskProcessor extends DateProcessor {
|
|
|
3031
3023
|
else {
|
|
3032
3024
|
hierarchicalData = this.parent.dataSource;
|
|
3033
3025
|
}
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
if (
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3026
|
+
this.parent.flatData.map((data) => {
|
|
3027
|
+
hierarchicalData.map((record) => {
|
|
3028
|
+
if (data.ganttProperties.taskId === record[this.parent.taskFields.id]) {
|
|
3029
|
+
if (!isNullOrUndefined(this.parent.taskFields.startDate)) {
|
|
3030
|
+
task[this.parent.taskFields.endDate] = record[this.parent.taskFields.endDate];
|
|
3031
|
+
}
|
|
3032
|
+
if (!isNullOrUndefined(this.parent.taskFields.endDate)) {
|
|
3033
|
+
task[this.parent.taskFields.endDate] = record[this.parent.taskFields.endDate];
|
|
3034
|
+
}
|
|
3041
3035
|
}
|
|
3042
|
-
}
|
|
3036
|
+
});
|
|
3043
3037
|
});
|
|
3044
3038
|
}
|
|
3045
3039
|
getWorkInHour(work, workUnit) {
|
|
@@ -3149,9 +3143,6 @@ class TaskProcessor extends DateProcessor {
|
|
|
3149
3143
|
return resourceIdCollection;
|
|
3150
3144
|
}
|
|
3151
3145
|
resourceIdCollection = data[this.parent.taskFields.resourceInfo];
|
|
3152
|
-
if (resourceIdCollection != "" && typeof resourceIdCollection == "string") {
|
|
3153
|
-
resourceIdCollection = resourceIdCollection.split(',');
|
|
3154
|
-
}
|
|
3155
3146
|
let resourceData;
|
|
3156
3147
|
if (!isNullOrUndefined(this.parent.editModule) && !isNullOrUndefined(this.parent.editModule.dialogModule)
|
|
3157
3148
|
&& this.parent.editModule.dialogModule.isAddNewResource) {
|
|
@@ -3161,7 +3152,6 @@ class TaskProcessor extends DateProcessor {
|
|
|
3161
3152
|
resourceData = this.parent.resources;
|
|
3162
3153
|
}
|
|
3163
3154
|
const resourceIDMapping = this.parent.resourceFields.id;
|
|
3164
|
-
const resourceNameMapping = this.parent.resourceFields.name;
|
|
3165
3155
|
const resourceUnitMapping = this.parent.resourceFields.unit;
|
|
3166
3156
|
const resourceGroup = this.parent.resourceFields.group;
|
|
3167
3157
|
const resources = [];
|
|
@@ -3172,7 +3162,7 @@ class TaskProcessor extends DateProcessor {
|
|
|
3172
3162
|
return true;
|
|
3173
3163
|
}
|
|
3174
3164
|
else {
|
|
3175
|
-
return (resourceIdCollection[count] === resourceInfo[resourceIDMapping])
|
|
3165
|
+
return (resourceIdCollection[count] === resourceInfo[resourceIDMapping]);
|
|
3176
3166
|
}
|
|
3177
3167
|
});
|
|
3178
3168
|
const ganttDataResource = extend({}, resource[0]);
|
|
@@ -3226,7 +3216,9 @@ class TaskProcessor extends DateProcessor {
|
|
|
3226
3216
|
if (resourceUnit !== 100) {
|
|
3227
3217
|
resName += '[' + resourceUnit + '%' + ']';
|
|
3228
3218
|
}
|
|
3229
|
-
|
|
3219
|
+
if (!isNullOrUndefined(resName)) {
|
|
3220
|
+
resourceName.push(resName);
|
|
3221
|
+
}
|
|
3230
3222
|
if (data.taskData) {
|
|
3231
3223
|
const mapping = taskMapping.resourceInfo;
|
|
3232
3224
|
// eslint-disable-next-line
|
|
@@ -3727,7 +3719,8 @@ class TaskProcessor extends DateProcessor {
|
|
|
3727
3719
|
if (!isNullOrUndefined(ganttRecord.segments) && ganttRecord.segments.length > 0) {
|
|
3728
3720
|
const segments = ganttRecord.segments;
|
|
3729
3721
|
let fixedWidth = true;
|
|
3730
|
-
const totalTaskWidth = this.splitTasksDuration(segments) * this.parent.perDayWidth;
|
|
3722
|
+
const totalTaskWidth = this.splitTasksDuration(segments) * ((this.parent.timelineModule.bottomTier === "Hour" || this.parent.timelineModule.bottomTier === "Minutes") ? this.parent.timelineSettings.timelineUnitSize : this.parent.perDayWidth);
|
|
3723
|
+
|
|
3731
3724
|
let totalProgressWidth = this.parent.dataOperation.getProgressWidth(totalTaskWidth, ganttRecord.progress);
|
|
3732
3725
|
for (let i = 0; i < segments.length; i++) {
|
|
3733
3726
|
const segment = segments[i];
|
|
@@ -3775,6 +3768,8 @@ class TaskProcessor extends DateProcessor {
|
|
|
3775
3768
|
const ganttRecord = data.ganttProperties;
|
|
3776
3769
|
this.parent.setRecordValue('autoWidth', this.calculateWidth(data, true), ganttRecord, true);
|
|
3777
3770
|
this.parent.setRecordValue('autoLeft', this.calculateLeft(ganttRecord, true), ganttRecord, true);
|
|
3771
|
+
this.parent.setRecordValue('progressWidth', this.parent.dataOperation.getProgressWidth((ganttRecord.isAutoSchedule ||
|
|
3772
|
+
!data.hasChildRecords ? ganttRecord.width : ganttRecord.autoWidth), ganttRecord.progress), ganttRecord, true);
|
|
3778
3773
|
}
|
|
3779
3774
|
/**
|
|
3780
3775
|
* To calculate parent progress value
|
|
@@ -3999,15 +3994,10 @@ const childTaskBarInnerDiv = 'e-gantt-child-taskbar-inner-div';
|
|
|
3999
3994
|
const childProgressBarInnerDiv = 'e-gantt-child-progressbar-inner-div';
|
|
4000
3995
|
const criticalChildTaskBarInnerDiv = 'e-gantt-child-critical-taskbar-inner-div';
|
|
4001
3996
|
const criticalChildProgressBarInnerDiv = 'e-gantt-child-critical-progressbar-inner-div';
|
|
4002
|
-
const
|
|
4003
|
-
const milestoneBottom = 'e-milestone-bottom';
|
|
4004
|
-
const criticalMilestoneTop = 'e-critical-milestone-top';
|
|
4005
|
-
const criticalMilestoneBottom = 'e-critical-milestone-bottom';
|
|
3997
|
+
const criticalMilestone = 'e-critical-milestone';
|
|
4006
3998
|
const baselineBar = 'e-baseline-bar';
|
|
4007
3999
|
const baselineMilestoneContainer = 'e-baseline-gantt-milestone-container';
|
|
4008
|
-
|
|
4009
|
-
const baselineMilestoneTop = 'e-baseline-milestone-top';
|
|
4010
|
-
const baselineMilestoneBottom = 'e-baseline-milestone-bottom';
|
|
4000
|
+
|
|
4011
4001
|
const chartRowCell = 'e-chart-row-cell';
|
|
4012
4002
|
const chartRow = 'e-chart-row';
|
|
4013
4003
|
const rowExpand = 'e-row-expand';
|
|
@@ -4021,15 +4011,11 @@ const progressBarHandlerAfter = 'e-progressbar-handler-after';
|
|
|
4021
4011
|
const icon = 'e-icon';
|
|
4022
4012
|
const traceMilestone = 'e-gantt-milestone';
|
|
4023
4013
|
const parentMilestone = 'e-gantt-parent-milestone';
|
|
4024
|
-
const parentMilestoneTop = 'e-parent-milestone-top';
|
|
4025
|
-
const parentMilestoneBottom = 'e-parent-milestone-bottom';
|
|
4026
4014
|
const traceChildTaskBar = 'e-gantt-child-taskbar';
|
|
4027
4015
|
const traceChildProgressBar = 'e-gantt-child-progressbar';
|
|
4028
4016
|
const manualParentMainContainer = 'e-manualparent-main-container';
|
|
4029
4017
|
const manualParentTaskBar = 'e-gantt-manualparenttaskbar';
|
|
4030
4018
|
const manualParentMilestone = 'e-gantt-manualparent-milestone';
|
|
4031
|
-
const manualParentMilestoneTop = 'e-manualparent-milestone-top';
|
|
4032
|
-
const manualParentMilestoneBottom = 'e-manualparent-milestone-bottom';
|
|
4033
4019
|
const manualChildTaskBar = 'e-gantt-child-manualtaskbar';
|
|
4034
4020
|
const manualChildProgressBar = 'e-gantt-child-manualprogressbar';
|
|
4035
4021
|
const manualParentRightResizer = 'e-gantt-manualparenttaskbar-right';
|
|
@@ -4060,25 +4046,29 @@ const weekend = 'e-weekend';
|
|
|
4060
4046
|
const unscheduledTaskbarLeft = 'e-gantt-unscheduled-taskbar-left';
|
|
4061
4047
|
const unscheduledTaskbarRight = 'e-gantt-unscheduled-taskbar-right';
|
|
4062
4048
|
const unscheduledTaskbar = 'e-gantt-unscheduled-taskbar';
|
|
4063
|
-
|
|
4064
|
-
|
|
4049
|
+
|
|
4050
|
+
|
|
4065
4051
|
//Connector Line
|
|
4066
4052
|
const dependencyViewContainer = 'e-gantt-dependency-view-container';
|
|
4067
4053
|
const connectorLineContainer = 'e-connector-line-container';
|
|
4068
|
-
|
|
4069
|
-
const
|
|
4070
|
-
const
|
|
4071
|
-
const
|
|
4072
|
-
const
|
|
4073
|
-
|
|
4054
|
+
|
|
4055
|
+
const connectorLineSVG = 'e-connector-line';
|
|
4056
|
+
const criticalConnectorLineSVG = 'e-critical-line';
|
|
4057
|
+
const criticalConnectorArrowSVG = 'e-critical-line-arrow';
|
|
4058
|
+
const connectorLineArrow = 'e-connector-line-arrow';
|
|
4059
|
+
|
|
4060
|
+
|
|
4061
|
+
|
|
4062
|
+
|
|
4063
|
+
|
|
4074
4064
|
const connectorLineZIndex = 'e-connector-line-z-index';
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
|
|
4081
|
-
|
|
4065
|
+
|
|
4066
|
+
|
|
4067
|
+
|
|
4068
|
+
|
|
4069
|
+
|
|
4070
|
+
|
|
4071
|
+
|
|
4082
4072
|
|
|
4083
4073
|
const connectorPointLeft = 'e-connectorpoint-left';
|
|
4084
4074
|
const connectorPointRight = 'e-connectorpoint-right';
|
|
@@ -4806,6 +4796,16 @@ class GanttChart {
|
|
|
4806
4796
|
if (this.parent.isDestroyed || e.which === 3) {
|
|
4807
4797
|
return;
|
|
4808
4798
|
}
|
|
4799
|
+
var resizeCheck = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-taskbar-resize-div');
|
|
4800
|
+
if (!isNullOrUndefined(resizeCheck)) {
|
|
4801
|
+
resizeCheck.remove();
|
|
4802
|
+
}
|
|
4803
|
+
var Check = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-clone-taskbar');
|
|
4804
|
+
if (!isNullOrUndefined(Check)) {
|
|
4805
|
+
var clonetbody = Check.parentElement;
|
|
4806
|
+
var cloneTable = clonetbody.parentElement;
|
|
4807
|
+
cloneTable.remove();
|
|
4808
|
+
}
|
|
4809
4809
|
let isTaskbarEdited = false;
|
|
4810
4810
|
if (this.parent.editSettings.allowTaskbarEditing &&
|
|
4811
4811
|
getValue('editModule.taskbarEditModule.isMouseDragged', this.parent) &&
|
|
@@ -5364,7 +5364,72 @@ class GanttChart {
|
|
|
5364
5364
|
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
|
|
5365
5365
|
$target.closest('.e-chart-row') ? $target.closest('.e-chart-row').rowIndex : -1;
|
|
5366
5366
|
const isTab = (e.action === 'tab') ? true : false;
|
|
5367
|
-
|
|
5367
|
+
let nextElement = this.getNextElement($target, isTab, isInEditedState);
|
|
5368
|
+
if (nextElement && $target.classList.contains('e-headercell')) {
|
|
5369
|
+
let colIndex = parseInt(nextElement.getAttribute('data-colindex'));
|
|
5370
|
+
if (e.action === 'shiftTab') {
|
|
5371
|
+
while (colIndex != -1 && !this.parent.treeGrid.columns[colIndex]['visible']) {
|
|
5372
|
+
colIndex = colIndex - 1;
|
|
5373
|
+
}
|
|
5374
|
+
if (colIndex != -1) {
|
|
5375
|
+
nextElement = document.getElementsByClassName('e-columnheader')[0].childNodes[colIndex];
|
|
5376
|
+
}
|
|
5377
|
+
else {
|
|
5378
|
+
let toolbarItems = document.getElementsByClassName('e-toolbar-item');
|
|
5379
|
+
for (let i = toolbarItems.length - 1; i > 0; i--) {
|
|
5380
|
+
if (!document.getElementsByClassName('e-toolbar-item')[i].classList.contains('e-hidden')) {
|
|
5381
|
+
nextElement = document.getElementsByClassName('e-toolbar-item')[i];
|
|
5382
|
+
break;
|
|
5383
|
+
}
|
|
5384
|
+
}
|
|
5385
|
+
}
|
|
5386
|
+
}
|
|
5387
|
+
else {
|
|
5388
|
+
while (!this.parent.treeGrid.columns[colIndex]['visible']) {
|
|
5389
|
+
colIndex = colIndex + 1;
|
|
5390
|
+
}
|
|
5391
|
+
nextElement = document.getElementsByClassName('e-columnheader')[0].childNodes[colIndex];
|
|
5392
|
+
}
|
|
5393
|
+
}
|
|
5394
|
+
if (!nextElement && e.action === 'shiftTab' && $target.classList.contains('e-headercell')) {
|
|
5395
|
+
let toolbarItems = document.getElementsByClassName('e-toolbar-item');
|
|
5396
|
+
for (let i = toolbarItems.length - 1; i > 0; i--) {
|
|
5397
|
+
if (!document.getElementsByClassName('e-toolbar-item')[i].classList.contains('e-hidden')) {
|
|
5398
|
+
nextElement = document.getElementsByClassName('e-toolbar-item')[i];
|
|
5399
|
+
break;
|
|
5400
|
+
}
|
|
5401
|
+
}
|
|
5402
|
+
}
|
|
5403
|
+
if ($target.classList.contains('e-treegrid') && !nextElement) {
|
|
5404
|
+
for (let i = 0; i < this.parent.treeGrid.columns.length; i++) {
|
|
5405
|
+
if (this.parent.treeGrid.columns[i]['visible']) {
|
|
5406
|
+
nextElement = document.getElementsByClassName('e-columnheader')[0].childNodes[i];
|
|
5407
|
+
break;
|
|
5408
|
+
}
|
|
5409
|
+
}
|
|
5410
|
+
}
|
|
5411
|
+
if (!nextElement && $target.classList.contains('e-headercell')) {
|
|
5412
|
+
nextElement = document.getElementsByClassName('e-timeline-header-container')[0];
|
|
5413
|
+
}
|
|
5414
|
+
if (e.action !== 'shiftTab' && $target.classList.contains('e-timeline-header-container')) {
|
|
5415
|
+
for (let i = 0; i < this.parent.treeGrid.columns.length; i++) {
|
|
5416
|
+
if (this.parent.treeGrid.columns[i]['visible']) {
|
|
5417
|
+
nextElement = document.getElementsByClassName('e-row')[0].childNodes[i];
|
|
5418
|
+
break;
|
|
5419
|
+
}
|
|
5420
|
+
}
|
|
5421
|
+
}
|
|
5422
|
+
if (e.action === 'shiftTab' && !nextElement) {
|
|
5423
|
+
nextElement = document.getElementsByClassName('e-timeline-header-container')[0];
|
|
5424
|
+
}
|
|
5425
|
+
if (e.action === 'shiftTab' && $target.classList.contains('e-timeline-header-container')) {
|
|
5426
|
+
for (let i = this.parent.treeGrid.columns.length - 1; i > 0; i--) {
|
|
5427
|
+
if (this.parent.treeGrid.columns[i]['visible']) {
|
|
5428
|
+
nextElement = document.getElementsByClassName('e-columnheader')[0].childNodes[i];
|
|
5429
|
+
break;
|
|
5430
|
+
}
|
|
5431
|
+
}
|
|
5432
|
+
}
|
|
5368
5433
|
this.tempNextElement = nextElement;
|
|
5369
5434
|
if (!isNullOrUndefined(nextElement) && !isNullOrUndefined(nextElement['cellIndex'])) {
|
|
5370
5435
|
if (this.parent.allowRowDragAndDrop) {
|
|
@@ -5388,7 +5453,7 @@ class GanttChart {
|
|
|
5388
5453
|
}
|
|
5389
5454
|
if (typeof nextElement !== 'string') {
|
|
5390
5455
|
if ($target.classList.contains('e-rowcell') || $target.closest('.e-chart-row-cell') ||
|
|
5391
|
-
$target.classList.contains('e-headercell') || $target.closest('.e-segmented-taskbar')) {
|
|
5456
|
+
$target.classList.contains('e-headercell') || $target.closest('.e-segmented-taskbar') || $target.classList.contains('e-timeline-header-container')) {
|
|
5392
5457
|
e.preventDefault();
|
|
5393
5458
|
}
|
|
5394
5459
|
if (isTab && $target.classList.contains('e-rowdragdrop')) {
|
|
@@ -5424,11 +5489,21 @@ class GanttChart {
|
|
|
5424
5489
|
}
|
|
5425
5490
|
}
|
|
5426
5491
|
else {
|
|
5427
|
-
|
|
5492
|
+
if (!nextElement || nextElement && !nextElement.classList.contains('e-headercell')) {
|
|
5493
|
+
if ($target.classList.contains('e-headercell')) {
|
|
5494
|
+
this.manageFocus($target, 'remove', false);
|
|
5495
|
+
}
|
|
5496
|
+
if (!nextElement || $target.classList.contains('e-editedbatchcell')) {
|
|
5497
|
+
this.parent.treeGrid.grid.notify('key-pressed', e);
|
|
5498
|
+
}
|
|
5499
|
+
}
|
|
5428
5500
|
}
|
|
5429
5501
|
}
|
|
5430
5502
|
else {
|
|
5431
|
-
|
|
5503
|
+
if (!nextElement.classList.contains('e-headercell') && !nextElement.classList.contains('e-rowcell')
|
|
5504
|
+
&& !nextElement.classList.contains('e-toolbar-item')) {
|
|
5505
|
+
this.parent.treeGrid.grid.notify('key-pressed', e);
|
|
5506
|
+
}
|
|
5432
5507
|
}
|
|
5433
5508
|
}
|
|
5434
5509
|
if (!(this.parent.editModule && this.parent.editModule.cellEditModule
|
|
@@ -5440,7 +5515,8 @@ class GanttChart {
|
|
|
5440
5515
|
else {
|
|
5441
5516
|
this.manageFocus($target, 'remove', true);
|
|
5442
5517
|
}
|
|
5443
|
-
if ((nextElement.classList.contains('e-rowcell') && $target.nextElementSibling
|
|
5518
|
+
if ((nextElement.classList.contains('e-rowcell') && $target.nextElementSibling && !$target.classList.contains('e-timeline-header-container'))
|
|
5519
|
+
|| $target.classList.contains('e-right-label-container')) {
|
|
5444
5520
|
if (!$target.classList.contains('e-rowcell')) {
|
|
5445
5521
|
this.parent.treeGrid.grid.notify('key-pressed', e);
|
|
5446
5522
|
const fmodule = getValue('focusModule', this.parent.treeGrid.grid);
|
|
@@ -5452,7 +5528,17 @@ class GanttChart {
|
|
|
5452
5528
|
this.manageFocus(nextElement, 'add', false);
|
|
5453
5529
|
}
|
|
5454
5530
|
else {
|
|
5455
|
-
|
|
5531
|
+
if (nextElement && (nextElement.classList.contains('e-toolbar-item') || nextElement.classList.contains('e-headercell')
|
|
5532
|
+
|| nextElement.classList.contains("e-rowcell"))) {
|
|
5533
|
+
this.manageFocus($target, 'remove', false);
|
|
5534
|
+
this.manageFocus(nextElement, 'add', false);
|
|
5535
|
+
if ($target.classList.contains('e-treegrid')) {
|
|
5536
|
+
e.preventDefault();
|
|
5537
|
+
}
|
|
5538
|
+
}
|
|
5539
|
+
else {
|
|
5540
|
+
this.manageFocus(nextElement, 'add', true);
|
|
5541
|
+
}
|
|
5456
5542
|
}
|
|
5457
5543
|
this.parent.focusModule.setActiveElement(nextElement);
|
|
5458
5544
|
}
|
|
@@ -5539,6 +5625,17 @@ class GanttChart {
|
|
|
5539
5625
|
const childElement = this.getChildElement(rowElement, isTab);
|
|
5540
5626
|
return childElement;
|
|
5541
5627
|
}
|
|
5628
|
+
nextElement = $target;
|
|
5629
|
+
if (nextElement && nextElement.parentElement.classList.contains('e-toolbar-item') && this.parent.toolbarModule) {
|
|
5630
|
+
while (nextElement && nextElement.parentElement.classList.contains('e-toolbar-item') && nextElement.parentElement.nextElementSibling.classList.contains('e-toolbar-item')) {
|
|
5631
|
+
if (nextElement.parentElement.nextElementSibling.classList.contains('e-hidden')) {
|
|
5632
|
+
nextElement = nextElement.parentElement.nextElementSibling.childNodes[0];
|
|
5633
|
+
}
|
|
5634
|
+
else {
|
|
5635
|
+
return nextElement.parentElement.nextElementSibling;
|
|
5636
|
+
}
|
|
5637
|
+
}
|
|
5638
|
+
}
|
|
5542
5639
|
}
|
|
5543
5640
|
return null;
|
|
5544
5641
|
}
|
|
@@ -8045,7 +8142,7 @@ class GanttTreeGrid {
|
|
|
8045
8142
|
}
|
|
8046
8143
|
} // eslint-disable-next-line
|
|
8047
8144
|
durationValueAccessor(field, data, column) {
|
|
8048
|
-
const ganttProp =
|
|
8145
|
+
const ganttProp = data.ganttProperties;
|
|
8049
8146
|
if (!isNullOrUndefined(ganttProp)) {
|
|
8050
8147
|
return this.parent.dataOperation.getDurationString(ganttProp.duration, ganttProp.durationUnit);
|
|
8051
8148
|
}
|
|
@@ -8671,7 +8768,7 @@ class ChartRows extends DateProcessor {
|
|
|
8671
8768
|
createChartTable() {
|
|
8672
8769
|
this.taskTable = createElement('table', {
|
|
8673
8770
|
className: taskTable + ' ' + zeroSpacing, id: 'GanttTaskTable' + this.parent.element.id,
|
|
8674
|
-
styles: '
|
|
8771
|
+
styles: 'position: absolute;width:' + this.parent.timelineModule.totalTimelineWidth + 'px;',
|
|
8675
8772
|
attrs: { cellspacing: '0.25px' }
|
|
8676
8773
|
});
|
|
8677
8774
|
const colgroup = createElement('colgroup');
|
|
@@ -8755,7 +8852,7 @@ class ChartRows extends DateProcessor {
|
|
|
8755
8852
|
taskbarInnerDiv = this.createDivElement('<div class="' + childTaskBarInnerDiv + ' ' + traceChildTaskBar +
|
|
8756
8853
|
' ' + (data.ganttProperties.isAutoSchedule ? '' : manualChildTaskBar) + '"' +
|
|
8757
8854
|
'style="width:' + data.ganttProperties.width + 'px;height:' +
|
|
8758
|
-
(this.taskBarHeight) + 'px;"></div>');
|
|
8855
|
+
(this.taskBarHeight) + 'px; margin-top :-1px"></div>');
|
|
8759
8856
|
progressDiv = this.createDivElement('<div class="' + childProgressBarInnerDiv + ' ' +
|
|
8760
8857
|
traceChildProgressBar + ' ' + (data.ganttProperties.isAutoSchedule ?
|
|
8761
8858
|
'' : manualChildProgressBar) + '"' +
|
|
@@ -9234,15 +9331,8 @@ class ChartRows extends DateProcessor {
|
|
|
9234
9331
|
milestoneNode = this.milestoneTemplateFunction(extend({ index: i }, data), this.parent, 'MilestoneTemplate', this.getTemplateID('MilestoneTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
|
|
9235
9332
|
}
|
|
9236
9333
|
else {
|
|
9237
|
-
const template = '<div class="' + traceMilestone + '" style="
|
|
9238
|
-
'
|
|
9239
|
-
unscheduledMilestoneTop : '') + '" style="border-right-width:' +
|
|
9240
|
-
this.milesStoneRadius + 'px;border-left-width:' + this.milesStoneRadius + 'px;border-bottom-width:' +
|
|
9241
|
-
this.milesStoneRadius + 'px;"></div>' +
|
|
9242
|
-
'<div class="' + milestoneBottom + ' ' + ((!data.ganttProperties.startDate && !data.ganttProperties.endDate) ?
|
|
9243
|
-
unscheduledMilestoneBottom : '') + '" style="top:' +
|
|
9244
|
-
(this.milesStoneRadius) + 'px;border-right-width:' + this.milesStoneRadius + 'px; border-left-width:' +
|
|
9245
|
-
this.milesStoneRadius + 'px; border-top-width:' + this.milesStoneRadius + 'px;"></div></div>';
|
|
9334
|
+
const template = '<div class="' + traceMilestone + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;height:' +
|
|
9335
|
+
((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;position:absolute;transform: rotate(45deg);top:' + (this.parent.rowHeight > 40 ? 0 : 2) + 'px;left:' + (this.parent.renderBaseline ? 2 : 1) + 'px;"> </div>';
|
|
9246
9336
|
milestoneNode = this.createDivElement(template);
|
|
9247
9337
|
}
|
|
9248
9338
|
return milestoneNode;
|
|
@@ -9270,25 +9360,9 @@ class ChartRows extends DateProcessor {
|
|
|
9270
9360
|
getMilestoneBaselineNode() {
|
|
9271
9361
|
const data = this.templateData;
|
|
9272
9362
|
let baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
|
|
9273
|
-
const template = '<div class="' + baselineMilestoneContainer + ' ' +
|
|
9274
|
-
(this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.
|
|
9275
|
-
'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) +
|
|
9276
|
-
'px">' + '<div class="' + baselineMilestoneDiv + '">' + '<div class="' + baselineMilestoneDiv +
|
|
9277
|
-
' ' + baselineMilestoneTop + '" ' +
|
|
9278
|
-
'style="top:' + (-this.milestoneHeight) + 'px;border-right:' + this.milesStoneRadius +
|
|
9279
|
-
'px solid transparent;border-left:' + this.milesStoneRadius +
|
|
9280
|
-
'px solid transparent;border-top:0px' +
|
|
9281
|
-
'solid transparent;border-bottom-width:' + this.milesStoneRadius + 'px;' +
|
|
9282
|
-
'border-bottom-style: solid;' + (this.baselineColor ? 'border-bottom-color: ' + this.baselineColor + ';' : '') +
|
|
9283
|
-
'"></div>' +
|
|
9284
|
-
'<div class="' + baselineMilestoneDiv + ' ' + baselineMilestoneBottom + '" ' +
|
|
9285
|
-
'style="top:' + (this.milesStoneRadius - this.milestoneHeight) + 'px;border-right:' + this.milesStoneRadius +
|
|
9286
|
-
'px solid transparent;border-left:' + this.milesStoneRadius +
|
|
9287
|
-
'px solid transparent;border-bottom:0px' +
|
|
9288
|
-
'solid transparent;border-top-width:' + this.milesStoneRadius + 'px;' +
|
|
9289
|
-
'border-top-style: solid;' +
|
|
9290
|
-
(this.baselineColor ? 'border-top-color: ' + this.baselineColor + ';' : '') + '"></div>' +
|
|
9291
|
-
'</div></div>';
|
|
9363
|
+
const template = '<div class="' + baselineMilestoneContainer + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 5 : this.taskBarHeight - 10) + 2) + 'px;height:' +
|
|
9364
|
+
((this.parent.renderBaseline ? this.taskBarHeight - 5 : this.taskBarHeight - 10) + 2) + 'px;position:absolute;transform:rotate(45deg);' + (this.parent.enableRtl ? 'right:' : 'left:') + (this.parent.enableRtl ? (data.ganttProperties.left -
|
|
9365
|
+
(this.milestoneHeight / 2) + 3) : (data.ganttProperties.left - (this.milestoneHeight / 2) + 2)) + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + 'margin-top:' + ((-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) + 3) + 'px"> </div>';
|
|
9292
9366
|
return this.createDivElement(template);
|
|
9293
9367
|
}
|
|
9294
9368
|
/**
|
|
@@ -9414,16 +9488,8 @@ class ChartRows extends DateProcessor {
|
|
|
9414
9488
|
(this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.width - Math.floor(((taskbarHeight / 5) + 8) / 5)) + 'px;height:' +
|
|
9415
9489
|
((taskbarHeight / 5) + 8) + 'px;border-right-width:' + taskbarHeight / 5 + 'px;border-bottom:' +
|
|
9416
9490
|
taskbarHeight / 5 + 'px solid transparent;>' + '</div></div>' : '');
|
|
9417
|
-
const milestoneTemplate = '<div class="' + manualParentMilestone + '" style="
|
|
9418
|
-
(this.parent.
|
|
9419
|
-
(data.ganttProperties.left - data.ganttProperties.autoLeft - (this.milestoneHeight / 2)) +
|
|
9420
|
-
'px;width:' + (this.milesStoneRadius * 2) +
|
|
9421
|
-
'px;">' + '<div class="' + manualParentMilestoneTop + '" style="border-right-width:' +
|
|
9422
|
-
this.milesStoneRadius + 'px;border-left-width:' + this.milesStoneRadius + 'px;border-bottom-width:' +
|
|
9423
|
-
this.milesStoneRadius + 'px;"></div>' +
|
|
9424
|
-
'<div class="' + manualParentMilestoneBottom + '" style="top:' +
|
|
9425
|
-
(this.milesStoneRadius) + 'px;border-right-width:' + this.milesStoneRadius + 'px; border-left-width:' +
|
|
9426
|
-
this.milesStoneRadius + 'px; border-top-width:' + this.milesStoneRadius + 'px;"></div></div>';
|
|
9491
|
+
const milestoneTemplate = '<div class="' + manualParentMilestone + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;height:' +
|
|
9492
|
+
((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;position:absolute;transform: rotate(45deg);top:' + (this.parent.rowHeight > 40 ? 0 : 2) + 'px;left:' + (this.parent.renderBaseline ? 2 : 1) + 'px;"> </div>';
|
|
9427
9493
|
return this.createDivElement(data.ganttProperties.duration !== 0 ? template : milestoneTemplate);
|
|
9428
9494
|
}
|
|
9429
9495
|
/**
|
|
@@ -9448,8 +9514,8 @@ class ChartRows extends DateProcessor {
|
|
|
9448
9514
|
this.getExpandClass(data) + ' ' + traceParentTaskBar + '"' +
|
|
9449
9515
|
' style="width:' + (data.ganttProperties.isAutoSchedule ? data.ganttProperties.width :
|
|
9450
9516
|
data.ganttProperties.autoWidth) + 'px;height:' + (data.ganttProperties.isAutoSchedule ? this.taskBarHeight :
|
|
9451
|
-
(tHeight * 3)) + 'px;margin-top:' + (data.ganttProperties.isAutoSchedule ?
|
|
9452
|
-
(tHeight * 2)) + 'px;">' +
|
|
9517
|
+
(tHeight * 3)) + 'px;margin-top:' + (data.ganttProperties.isAutoSchedule ? -1 :
|
|
9518
|
+
(tHeight * 2)) + 'px; ">' +
|
|
9453
9519
|
'</div>');
|
|
9454
9520
|
const progressBarInnerDiv = this.createDivElement('<div class="' + parentProgressBarInnerDiv + ' ' +
|
|
9455
9521
|
this.getExpandClass(data) + ' ' + traceParentProgressBar + '"' +
|
|
@@ -9514,13 +9580,8 @@ class ChartRows extends DateProcessor {
|
|
|
9514
9580
|
parentLabel && !parentLabel['elementRef'] && div.innerHTML !== '')
|
|
9515
9581
|
progressBarInnerDiv[0].querySelectorAll('.e-task-label')[0].textContent = parentLabel;
|
|
9516
9582
|
}
|
|
9517
|
-
const milestoneTemplate = '<div class="' + parentMilestone + '" style="
|
|
9518
|
-
'
|
|
9519
|
-
this.milesStoneRadius + 'px;border-left-width:' + this.milesStoneRadius + 'px;border-bottom-width:' +
|
|
9520
|
-
this.milesStoneRadius + 'px;"></div>' +
|
|
9521
|
-
'<div class="' + parentMilestoneBottom + '" style="top:' +
|
|
9522
|
-
(this.milesStoneRadius) + 'px;border-right-width:' + this.milesStoneRadius + 'px; border-left-width:' +
|
|
9523
|
-
this.milesStoneRadius + 'px; border-top-width:' + this.milesStoneRadius + 'px;"></div></div>';
|
|
9583
|
+
const milestoneTemplate = '<div class="' + parentMilestone + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;height:' +
|
|
9584
|
+
((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;position:absolute;transform: rotate(45deg);top:' + (this.parent.rowHeight > 40 ? 0 : 2) + 'px;left:' + (this.parent.renderBaseline ? 2 : 1) + 'px;"> </div>';
|
|
9524
9585
|
template[0].appendChild([].slice.call(progressBarInnerDiv)[0]);
|
|
9525
9586
|
parentTaskbarNode = data.ganttProperties.isMilestone ?
|
|
9526
9587
|
this.createDivElement(data.ganttProperties.isAutoSchedule ? milestoneTemplate : '') : template;
|
|
@@ -9897,8 +9958,8 @@ class ChartRows extends DateProcessor {
|
|
|
9897
9958
|
this.milestoneMarginTop = Math.floor((this.parent.rowHeight - this.milestoneHeight) / 2);
|
|
9898
9959
|
this.milesStoneRadius = Math.floor((this.milestoneHeight) / 2);
|
|
9899
9960
|
this.baselineTop = -(Math.floor((this.parent.rowHeight - (this.taskBarHeight + this.taskBarMarginTop))) - 4);
|
|
9900
|
-
this.connectorPointWidth = this.parent.isAdaptive ? Math.round(this.taskBarHeight / 2) :
|
|
9901
|
-
this.connectorPointMargin = Math.floor((this.taskBarHeight / 2) - (this.connectorPointWidth / 2));
|
|
9961
|
+
this.connectorPointWidth = this.parent.isAdaptive ? Math.round(this.taskBarHeight / 2) : 10;
|
|
9962
|
+
this.connectorPointMargin = Math.floor((this.taskBarHeight / 2) - (this.connectorPointWidth / 2)) - 1;
|
|
9902
9963
|
}
|
|
9903
9964
|
/**
|
|
9904
9965
|
* Function used to refresh Gantt rows.
|
|
@@ -9966,7 +10027,6 @@ class ChartRows extends DateProcessor {
|
|
|
9966
10027
|
const tempTemplateData = this.parent.currentViewData[i];
|
|
9967
10028
|
if (this.parent.viewType === 'ResourceView') {
|
|
9968
10029
|
if (this.parent.editModule && this.parent.editModule.isResourceTaskDeleted || this.parent.isFromOnPropertyChange) {
|
|
9969
|
-
this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
|
|
9970
10030
|
this.parent.editModule.isResourceTaskDeleted = false;
|
|
9971
10031
|
}
|
|
9972
10032
|
if (!tempTemplateData.expanded && this.parent.enableMultiTaskbar) {
|
|
@@ -9985,11 +10045,12 @@ class ChartRows extends DateProcessor {
|
|
|
9985
10045
|
}
|
|
9986
10046
|
}
|
|
9987
10047
|
this.ganttChartTableBody.replaceChildren(...dupChartBody.childNodes);
|
|
10048
|
+
this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
|
|
9988
10049
|
}
|
|
9989
10050
|
this.parent.renderTemplates();
|
|
9990
10051
|
this.triggerQueryTaskbarInfo();
|
|
9991
10052
|
this.parent.modifiedRecords = [];
|
|
9992
|
-
if (this.parent.viewType
|
|
10053
|
+
if (this.parent.viewType == 'ResourceView' && this.parent.showOverAllocation) {
|
|
9993
10054
|
this.updateOverlapped();
|
|
9994
10055
|
}
|
|
9995
10056
|
if (collapsedResourceRecord.length) {
|
|
@@ -10062,7 +10123,7 @@ class ChartRows extends DateProcessor {
|
|
|
10062
10123
|
else if (this.templateData.ganttProperties.isMilestone) {
|
|
10063
10124
|
const milestoneTemplateNode = this.getMilestoneNode(i, taskbarContainerNode);
|
|
10064
10125
|
if (milestoneTemplateNode && milestoneTemplateNode.length > 0) {
|
|
10065
|
-
|
|
10126
|
+
append(milestoneTemplateNode, taskbarContainerNode[0]);
|
|
10066
10127
|
}
|
|
10067
10128
|
if (this.parent.renderBaseline && this.templateData.ganttProperties.baselineStartDate &&
|
|
10068
10129
|
this.templateData.ganttProperties.baselineEndDate) {
|
|
@@ -10238,9 +10299,9 @@ class ChartRows extends DateProcessor {
|
|
|
10238
10299
|
const classCollections = this.getClassName(args);
|
|
10239
10300
|
if (args.taskbarType === 'Milestone') {
|
|
10240
10301
|
args.milestoneColor = taskbarElement.querySelector(classCollections[0]) ?
|
|
10241
|
-
getComputedStyle(taskbarElement.querySelector(classCollections[0])).
|
|
10302
|
+
getComputedStyle(taskbarElement.querySelector(classCollections[0])).backgroundColor : null;
|
|
10242
10303
|
args.baselineColor = trElement.querySelector(classCollections[1]) ?
|
|
10243
|
-
getComputedStyle(trElement.querySelector(classCollections[1])).
|
|
10304
|
+
getComputedStyle(trElement.querySelector(classCollections[1])).backgroundColor :
|
|
10244
10305
|
(trElement.querySelector('.' + baselineBar) ? getComputedStyle(trElement.querySelector('.' + baselineBar)).backgroundColor : null);
|
|
10245
10306
|
}
|
|
10246
10307
|
else if (taskbarElement) {
|
|
@@ -10308,14 +10369,12 @@ class ChartRows extends DateProcessor {
|
|
|
10308
10369
|
}
|
|
10309
10370
|
if (args.taskbarType === 'Milestone') {
|
|
10310
10371
|
if (taskbarElement.querySelector(classCollections[0]) &&
|
|
10311
|
-
getComputedStyle(taskbarElement.querySelector(classCollections[0])).
|
|
10312
|
-
taskbarElement.querySelector(classCollections[0]).style.
|
|
10313
|
-
taskbarElement.querySelector('.' + milestoneBottom).style.borderTopColor = args.milestoneColor;
|
|
10372
|
+
getComputedStyle(taskbarElement.querySelector(classCollections[0])).backgroundColor !== args.milestoneColor) {
|
|
10373
|
+
taskbarElement.querySelector(classCollections[0]).style.backgroundColor = args.milestoneColor;
|
|
10314
10374
|
}
|
|
10315
10375
|
if (trElement.querySelector(classCollections[1]) &&
|
|
10316
|
-
getComputedStyle(trElement.querySelector(classCollections[1])).
|
|
10317
|
-
trElement.querySelector(classCollections[1]).style.
|
|
10318
|
-
trElement.querySelector('.' + baselineMilestoneBottom).style.borderTopColor = args.baselineColor;
|
|
10376
|
+
getComputedStyle(trElement.querySelector(classCollections[1])).backgroundColor !== args.baselineColor) {
|
|
10377
|
+
trElement.querySelector(classCollections[1]).style.backgroundColor = args.baselineColor;
|
|
10319
10378
|
}
|
|
10320
10379
|
if (trElement.querySelector('.' + baselineBar) &&
|
|
10321
10380
|
getComputedStyle(trElement.querySelector('.' + baselineBar)).borderTopColor !== args.baselineColor) {
|
|
@@ -10396,9 +10455,9 @@ class ChartRows extends DateProcessor {
|
|
|
10396
10455
|
getClassName(args) {
|
|
10397
10456
|
const classCollection = [];
|
|
10398
10457
|
classCollection.push('.' + (args.taskbarType === 'ParentTask' ?
|
|
10399
|
-
traceParentTaskBar : args.taskbarType === 'ChildTask' ? traceChildTaskBar :
|
|
10458
|
+
traceParentTaskBar : args.taskbarType === 'ChildTask' ? traceChildTaskBar : traceMilestone));
|
|
10400
10459
|
classCollection.push('.' + (args.taskbarType === 'ParentTask' ?
|
|
10401
|
-
traceParentProgressBar : args.taskbarType === 'ChildTask' ? traceChildProgressBar :
|
|
10460
|
+
traceParentProgressBar : args.taskbarType === 'ChildTask' ? traceChildProgressBar : baselineMilestoneContainer));
|
|
10402
10461
|
return classCollection;
|
|
10403
10462
|
}
|
|
10404
10463
|
/**
|
|
@@ -10411,7 +10470,7 @@ class ChartRows extends DateProcessor {
|
|
|
10411
10470
|
templateCompiler(template) {
|
|
10412
10471
|
if (!isNullOrUndefined(template) && template !== '') {
|
|
10413
10472
|
try {
|
|
10414
|
-
if (document.querySelectorAll(template).length) {
|
|
10473
|
+
if (typeof template !== 'function' && document.querySelectorAll(template).length) {
|
|
10415
10474
|
return compile(document.querySelector(template).innerHTML.trim(), this.parent);
|
|
10416
10475
|
}
|
|
10417
10476
|
else {
|
|
@@ -11561,11 +11620,28 @@ class Dependency {
|
|
|
11561
11620
|
*/
|
|
11562
11621
|
class ConnectorLine {
|
|
11563
11622
|
constructor(ganttObj) {
|
|
11623
|
+
this.transform = '';
|
|
11624
|
+
this.connectorLinePath = '';
|
|
11625
|
+
this.arrowPath = '';
|
|
11564
11626
|
this.expandedRecords = [];
|
|
11565
11627
|
this.parent = ganttObj;
|
|
11566
11628
|
this.dependencyViewContainer =
|
|
11567
|
-
createElement('div', { className: dependencyViewContainer
|
|
11629
|
+
createElement('div', { className: dependencyViewContainer,
|
|
11630
|
+
});
|
|
11631
|
+
Object.assign(this.dependencyViewContainer.style, {
|
|
11632
|
+
width: "100%",
|
|
11633
|
+
height: "100%",
|
|
11634
|
+
zIndex: 2,
|
|
11635
|
+
position: "absolute",
|
|
11636
|
+
pointerEvents: "none"
|
|
11637
|
+
});
|
|
11638
|
+
this.renderer = new SvgRenderer(this.parent.element.id);
|
|
11568
11639
|
this.initPublicProp();
|
|
11640
|
+
this.svgObject = this.renderer.createSvg({
|
|
11641
|
+
id: this.parent.element.id + '_svg'
|
|
11642
|
+
});
|
|
11643
|
+
this.svgObject.setAttribute('height', '100%');
|
|
11644
|
+
this.svgObject.setAttribute('width', '100%');
|
|
11569
11645
|
}
|
|
11570
11646
|
/**
|
|
11571
11647
|
* To get connector line gap.
|
|
@@ -11594,7 +11670,7 @@ class ConnectorLine {
|
|
|
11594
11670
|
}
|
|
11595
11671
|
getTaskbarMidpoint(isMilestone) {
|
|
11596
11672
|
return Math.floor(isMilestone ?
|
|
11597
|
-
(this.parent.chartRowsModule.milestoneMarginTop + (this.parent.chartRowsModule.milestoneHeight / 2)) :
|
|
11673
|
+
(this.parent.chartRowsModule.milestoneMarginTop + (this.parent.chartRowsModule.milestoneHeight / 2)) + 1 :
|
|
11598
11674
|
(this.parent.chartRowsModule.taskBarMarginTop + (this.parent.chartRowsModule.taskBarHeight / 2))) + 1;
|
|
11599
11675
|
}
|
|
11600
11676
|
/**
|
|
@@ -11643,6 +11719,10 @@ class ConnectorLine {
|
|
|
11643
11719
|
connectorObj.connectorLineId = 'parent' + parentId + 'child' + childId;
|
|
11644
11720
|
connectorObj.milestoneParent = parentGanttRecord.isMilestone ? true : false;
|
|
11645
11721
|
connectorObj.milestoneChild = childGanttRecord.isMilestone ? true : false;
|
|
11722
|
+
connectorObj.isManualParent = (!(this.parent.flatData[parentIndex].ganttProperties.isAutoSchedule) && this.parent.flatData[parentIndex].hasChildRecords);
|
|
11723
|
+
connectorObj.isManualChild = (!(this.parent.flatData[childIndex].ganttProperties.isAutoSchedule) && this.parent.flatData[childIndex].hasChildRecords);
|
|
11724
|
+
connectorObj.parentEndPoint = connectorObj.parentLeft + connectorObj.parentWidth;
|
|
11725
|
+
connectorObj.childEndPoint = connectorObj.childLeft + connectorObj.childWidth;
|
|
11646
11726
|
if (isNullOrUndefined(isScheduledTask(parentGanttRecord)) || isNullOrUndefined(isScheduledTask(childGanttRecord))) {
|
|
11647
11727
|
return null;
|
|
11648
11728
|
}
|
|
@@ -11665,8 +11745,8 @@ class ConnectorLine {
|
|
|
11665
11745
|
connectorLine$$1 = connectorLine$$1 + this.getConnectorLineTemplate(connectorLinesCollection[index]);
|
|
11666
11746
|
ariaConnector.push(connectorLinesCollection[index]);
|
|
11667
11747
|
}
|
|
11668
|
-
this.
|
|
11669
|
-
const childNodes = this.parent.connectorLineModule.
|
|
11748
|
+
this.svgObject.innerHTML = connectorLine$$1;
|
|
11749
|
+
const childNodes = this.parent.connectorLineModule.svgObject.childNodes;
|
|
11670
11750
|
for (let i = 0; i < childNodes.length; i++) {
|
|
11671
11751
|
const innerChild = childNodes[i].childNodes;
|
|
11672
11752
|
for (let j = 0; j < innerChild.length; j++) {
|
|
@@ -11674,9 +11754,10 @@ class ConnectorLine {
|
|
|
11674
11754
|
innerChild[j].setAttribute('aria-label', ariaString);
|
|
11675
11755
|
}
|
|
11676
11756
|
}
|
|
11677
|
-
this.parent.ganttChartModule.chartBodyContent.
|
|
11678
|
-
|
|
11679
|
-
|
|
11757
|
+
this.parent.ganttChartModule.chartBodyContent.insertBefore(this.dependencyViewContainer, this.parent.ganttChartModule.chartBodyContent.lastChild);
|
|
11758
|
+
this.dependencyViewContainer.appendChild(this.svgObject);
|
|
11759
|
+
for (let i = 0; i < this.svgObject.children.length; i++) {
|
|
11760
|
+
this.svgObject.children[i].children[0].setAttribute('tabindex', '-1');
|
|
11680
11761
|
}
|
|
11681
11762
|
}
|
|
11682
11763
|
/**
|
|
@@ -11934,16 +12015,15 @@ class ConnectorLine {
|
|
|
11934
12015
|
const height = this.getHeightValue(data);
|
|
11935
12016
|
const isMilestoneParent = data.milestoneParent ? true : false;
|
|
11936
12017
|
const isMilestone = data.milestoneChild ? true : false;
|
|
11937
|
-
let connectorContainer = '';
|
|
11938
12018
|
const isVirtual = this.parent.virtualScrollModule && this.parent.enableVirtualization;
|
|
11939
12019
|
const connectorLine$$1 = this.getPosition(data, this.getParentPosition(data), height);
|
|
12020
|
+
const rowPosition = this.getPosition(data, this.getParentPosition(data), height);
|
|
12021
|
+
let rowPositionHeight = rowPosition.top;
|
|
11940
12022
|
let isMilestoneValue = 0;
|
|
11941
12023
|
if (this.parent.renderBaseline) {
|
|
11942
12024
|
isMilestoneValue = (data.milestoneParent && data.milestoneChild) ? 0 : data.milestoneParent ? -5 : data.milestoneChild ? 5 : 0;
|
|
11943
12025
|
}
|
|
11944
12026
|
let heightValue = isVirtual ? connectorLine$$1.height : (height + isMilestoneValue);
|
|
11945
|
-
let borderTopWidth = 0;
|
|
11946
|
-
let addTop = 0;
|
|
11947
12027
|
let parentOverlapTopValue = 0;
|
|
11948
12028
|
let childOverlapTopValue = 0;
|
|
11949
12029
|
let count = 0;
|
|
@@ -11980,454 +12060,318 @@ class ConnectorLine {
|
|
|
11980
12060
|
}
|
|
11981
12061
|
if (isValid) {
|
|
11982
12062
|
if (((fromRecordIsParent && !fromRecordIsManual) && (toRecordIsParent && !toRecordIsManual))) {
|
|
11983
|
-
|
|
12063
|
+
|
|
11984
12064
|
}
|
|
11985
12065
|
else if (!((fromRecordIsParent && !fromRecordIsManual) && (toRecordIsParent && !toRecordIsManual))) {
|
|
11986
12066
|
if (data.childIndex > data.parentIndex) {
|
|
11987
|
-
|
|
11988
|
-
borderTopWidth = -11;
|
|
11989
|
-
}
|
|
11990
|
-
else {
|
|
11991
|
-
borderTopWidth = 11;
|
|
11992
|
-
addTop = -11;
|
|
11993
|
-
}
|
|
12067
|
+
|
|
11994
12068
|
}
|
|
11995
12069
|
else {
|
|
11996
|
-
|
|
11997
|
-
borderTopWidth = -11;
|
|
11998
|
-
}
|
|
11999
|
-
else {
|
|
12000
|
-
borderTopWidth = 11;
|
|
12001
|
-
addTop = -11;
|
|
12002
|
-
}
|
|
12070
|
+
|
|
12003
12071
|
}
|
|
12004
12072
|
}
|
|
12005
12073
|
if (this.parent.currentViewData[data.parentIndex].ganttProperties.isMilestone) {
|
|
12006
12074
|
if (data.parentIndex > data.childIndex) {
|
|
12007
|
-
|
|
12008
|
-
borderTopWidth = 10;
|
|
12075
|
+
|
|
12009
12076
|
}
|
|
12010
12077
|
else if (data.type === 'SS' || data.type === 'FF') {
|
|
12011
|
-
|
|
12078
|
+
|
|
12012
12079
|
}
|
|
12013
12080
|
}
|
|
12014
12081
|
else if (this.parent.currentViewData[data.childIndex].ganttProperties.isMilestone) {
|
|
12015
12082
|
if (data.parentIndex > data.childIndex) {
|
|
12016
|
-
|
|
12017
|
-
borderTopWidth = -10;
|
|
12083
|
+
|
|
12018
12084
|
}
|
|
12019
12085
|
else if (data.type === 'SS' || data.type === 'FF') {
|
|
12020
|
-
|
|
12086
|
+
|
|
12021
12087
|
}
|
|
12022
12088
|
}
|
|
12023
12089
|
}
|
|
12024
12090
|
}
|
|
12025
12091
|
if (this.getParentPosition(data)) {
|
|
12026
|
-
|
|
12027
|
-
|
|
12028
|
-
|
|
12029
|
-
|
|
12030
|
-
|
|
12031
|
-
|
|
12032
|
-
|
|
12033
|
-
|
|
12034
|
-
|
|
12035
|
-
|
|
12036
|
-
|
|
12037
|
-
|
|
12038
|
-
|
|
12039
|
-
|
|
12040
|
-
|
|
12041
|
-
|
|
12042
|
-
|
|
12043
|
-
|
|
12044
|
-
|
|
12045
|
-
|
|
12046
|
-
|
|
12047
|
-
|
|
12048
|
-
|
|
12049
|
-
|
|
12050
|
-
const duplicateStingTwo = this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
12051
|
-
'top:' + (-6) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
12052
|
-
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
|
|
12053
|
-
const duplicateStingThree = this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>' + eLine +
|
|
12054
|
-
'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
12055
|
-
this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
|
|
12056
|
-
const duplicateStingFour = leftArrow + (this.parent.enableRtl ? 'right:' : 'left:') +
|
|
12057
|
-
(((data.childLeft + data.childWidth) - (data.parentLeft)) + 10) + 'px;' +
|
|
12058
|
-
this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10);
|
|
12059
|
-
const duplicateStingFive = 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;' +
|
|
12060
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
12092
|
+
// Create the group element
|
|
12093
|
+
this.transform = this.parent.enableRtl ? `translate(${this.parent.timelineModule.totalTimelineWidth}, 0) scale(-1, 1)` : '';
|
|
12094
|
+
this.connectorId = "ConnectorLine" + data.connectorLineId;
|
|
12095
|
+
this.groupObject = this.renderer.createGroup({
|
|
12096
|
+
id: this.connectorId,
|
|
12097
|
+
transform: this.transform,
|
|
12098
|
+
style: 'pointer-events: stroke',
|
|
12099
|
+
class: connectorLineContainer,
|
|
12100
|
+
});
|
|
12101
|
+
// Create the path element for the connector line
|
|
12102
|
+
this.connectorPath = this.renderer.drawPath({
|
|
12103
|
+
class: connectorLineSVG,
|
|
12104
|
+
d: this.connectorLinePath,
|
|
12105
|
+
fill: 'transparent',
|
|
12106
|
+
"stroke-width": 1,
|
|
12107
|
+
});
|
|
12108
|
+
// Create the path element for the arrow
|
|
12109
|
+
this.arrowlinePath = this.renderer.drawPath({
|
|
12110
|
+
d: this.arrowPath,
|
|
12111
|
+
class: connectorLineArrow
|
|
12112
|
+
});
|
|
12113
|
+
// Append the path element to the group element
|
|
12114
|
+
this.groupObject.appendChild(this.connectorPath);
|
|
12115
|
+
this.groupObject.appendChild(this.arrowlinePath);
|
|
12061
12116
|
if (this.getParentPosition(data) === 'FSType1') {
|
|
12062
|
-
|
|
12063
|
-
|
|
12064
|
-
|
|
12065
|
-
|
|
12066
|
-
|
|
12067
|
-
|
|
12068
|
-
|
|
12069
|
-
|
|
12070
|
-
|
|
12071
|
-
|
|
12072
|
-
|
|
12073
|
-
this.
|
|
12074
|
-
div = div + eLine;
|
|
12075
|
-
div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;width:10px;' +
|
|
12076
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
12077
|
-
div = div + rightArrow;
|
|
12078
|
-
div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
|
|
12079
|
-
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
|
|
12080
|
-
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
12117
|
+
this.taskLineValue = data.milestoneChild ? 1 : 0;
|
|
12118
|
+
this.x1 = data.parentEndPoint + (data.milestoneParent ? -1 : (data.milestoneChild ? -1 : 0));
|
|
12119
|
+
this.x2 = data.milestoneParent ? ((((data.childLeft - (data.parentEndPoint + 10)) + 1) - 10) + 1) : (((data.childLeft - (data.parentEndPoint + 10))) - 10);
|
|
12120
|
+
this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12121
|
+
this.y2 = heightValue + this.taskLineValue;
|
|
12122
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12123
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12124
|
+
this.connectorLinePath = "M " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x1 + this.x2) + " " + (this.y1 + this.y2) +
|
|
12125
|
+
" L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2);
|
|
12126
|
+
this.arrowPath = "M " + (this.x1 + this.x2 + 18) + " " + (this.y1 + this.y2 + this.manualChild) +
|
|
12127
|
+
" L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
|
|
12128
|
+
" L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12081
12129
|
}
|
|
12082
12130
|
if (this.getParentPosition(data) === 'FSType2') {
|
|
12083
|
-
|
|
12084
|
-
|
|
12085
|
-
|
|
12086
|
-
|
|
12087
|
-
|
|
12088
|
-
|
|
12089
|
-
|
|
12090
|
-
|
|
12091
|
-
|
|
12092
|
-
|
|
12093
|
-
|
|
12094
|
-
|
|
12095
|
-
|
|
12096
|
-
|
|
12097
|
-
this.
|
|
12098
|
-
|
|
12099
|
-
div = div + direction + (data.parentWidth - (((data.parentLeft +
|
|
12100
|
-
data.parentWidth) - data.childLeft) + 20)) + 'px;width:0px;' +
|
|
12101
|
-
this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) +
|
|
12102
|
-
this.getBorderStyles('left', this.lineStroke) + 'position:relative;"></div>';
|
|
12103
|
-
div = div + eLine;
|
|
12104
|
-
div = div + direction + (data.parentWidth - (((data.parentLeft +
|
|
12105
|
-
data.parentWidth) - data.childLeft) + 20)) + 'px;width:10px;' +
|
|
12106
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
12107
|
-
div = div + rightArrow;
|
|
12108
|
-
div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 10)) + 'px;' +
|
|
12109
|
-
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
12110
|
-
'border-top-width:' + (5 + this.lineStroke) + 'px;top:' + (-6 - this.lineStroke) +
|
|
12111
|
-
'px;width:0;height:0;position:relative;"></div></div>';
|
|
12131
|
+
this.taskLineValue = data.milestoneChild ? 1 : 0;
|
|
12132
|
+
this.x1 = data.parentLeft + (data.milestoneChild ? -1 : 0);
|
|
12133
|
+
this.x2 = data.parentWidth + (data.milestoneParent ? 1 : 0);
|
|
12134
|
+
this.x3 = this.x2 + (data.milestoneParent ? 11 : 10);
|
|
12135
|
+
this.x4 = data.parentWidth - ((data.parentEndPoint - data.childLeft) + 20);
|
|
12136
|
+
this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12137
|
+
this.y2 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
|
|
12138
|
+
this.y3 = this.getconnectorLineGap(data);
|
|
12139
|
+
this.y4 = this.y1 + this.y2 - ((this.y1 + this.y2) % data.rowHeight);
|
|
12140
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12141
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12142
|
+
this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " " + " L " + (this.x1 + this.x3) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x1 + this.x3) + " " + this.y4 +
|
|
12143
|
+
" L " + (this.x1 + this.x4) + " " + this.y4 + " L " + (this.x1 + this.x4) + " " + (this.y1 + this.y2 + this.y3) + " L " + (this.x1 + this.x4 + 11) + " " + (this.y1 + this.y2 + this.y3);
|
|
12144
|
+
this.arrowPath = "M " + (this.x1 + this.x4 + 18) + " " + (this.y1 + this.y2 + this.y3 + this.manualChild) +
|
|
12145
|
+
" L " + (this.x1 + this.x4 + 11) + " " + (this.y1 + this.y2 + this.y3 - (4 + this.lineStroke) + this.manualChild) +
|
|
12146
|
+
" L " + (this.x1 + this.x4 + 11) + " " + (this.y1 + this.y2 + this.y3 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12112
12147
|
}
|
|
12113
12148
|
if (this.getParentPosition(data) === 'FSType3') {
|
|
12114
|
-
|
|
12115
|
-
|
|
12116
|
-
|
|
12117
|
-
|
|
12118
|
-
|
|
12119
|
-
|
|
12120
|
-
|
|
12121
|
-
|
|
12122
|
-
|
|
12123
|
-
|
|
12124
|
-
|
|
12125
|
-
|
|
12126
|
-
|
|
12127
|
-
|
|
12128
|
-
|
|
12129
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
|
|
12130
|
-
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
|
|
12131
|
-
div = div + eLine;
|
|
12132
|
-
div = div + direction + (((data.parentLeft + data.parentWidth) - data.childLeft) + (30 - this.lineStroke)) +
|
|
12133
|
-
'px;width:0px;' + 'height:' + (this.getconnectorLineGap(data) - this.lineStroke) + 'px;' +
|
|
12134
|
-
this.getBorderStyles('left', this.lineStroke) + 'position:relative;' +
|
|
12135
|
-
'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
|
|
12136
|
-
div = div + eLine;
|
|
12137
|
-
div = div + (isMilestoneParent ? direction + (((data.parentLeft +
|
|
12138
|
-
data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' : direction +
|
|
12139
|
-
(((data.parentLeft + data.parentWidth) - data.childLeft) + 20) + 'px;width:10px;') +
|
|
12140
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
|
|
12141
|
-
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div></div>';
|
|
12149
|
+
this.taskLineValue = data.milestoneChild ? 1 : 0;
|
|
12150
|
+
this.point1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
|
|
12151
|
+
this.x1 = (data.childLeft + (data.milestoneChild ? -1 : 0) + (data.milestoneParent ? 1 : 0)) - 20;
|
|
12152
|
+
this.x2 = (data.parentEndPoint - data.childLeft) + 30;
|
|
12153
|
+
this.y1 = this.point1 + ((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12154
|
+
this.y2 = this.point1 + heightValue - this.getconnectorLineGap(data) + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneChild ? -10 : 0) : 0);
|
|
12155
|
+
this.y3 = this.getconnectorLineGap(data) + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
|
|
12156
|
+
this.y4 = this.y2 - (this.y2 % data.rowHeight);
|
|
12157
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12158
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12159
|
+
this.connectorLinePath = "M " + (this.x1 + 12) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + this.y4 +
|
|
12160
|
+
" L " + (this.x1 + this.x2) + " " + this.y4 + " L " + (this.x1 + this.x2) + " " + (this.y2 + this.y3) + " L " + (this.x1 + this.x2 - 12) + " " + (this.y2 + this.y3);
|
|
12161
|
+
this.arrowPath = "M " + (this.x1 + 18) + " " + (this.y1 + this.manualChild) +
|
|
12162
|
+
" L " + (this.x1 + 11) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
|
|
12163
|
+
" L " + (this.x1 + 11) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12142
12164
|
}
|
|
12143
12165
|
if (this.getParentPosition(data) === 'FSType4') {
|
|
12144
|
-
|
|
12145
|
-
|
|
12146
|
-
|
|
12147
|
-
|
|
12148
|
-
|
|
12149
|
-
|
|
12150
|
-
|
|
12151
|
-
|
|
12152
|
-
|
|
12153
|
-
|
|
12154
|
-
|
|
12155
|
-
this.
|
|
12156
|
-
|
|
12157
|
-
div = div + eLine;
|
|
12158
|
-
div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' + direction +
|
|
12159
|
-
(data.childLeft - (data.parentLeft + data.parentWidth) - 20) + 'px;width:0px;' +
|
|
12160
|
-
this.getBorderStyles('left', this.lineStroke) +
|
|
12161
|
-
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
|
|
12162
|
-
div = div + eLine;
|
|
12163
|
-
div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'top:' +
|
|
12164
|
-
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
|
|
12165
|
-
(isMilestoneParent ? ((data.childLeft - (data.parentLeft + data.parentWidth + 20) + 1) + this.lineStroke) :
|
|
12166
|
-
((data.childLeft - (data.parentLeft + data.parentWidth + 20)) + this.lineStroke)) + 'px;' +
|
|
12167
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
12166
|
+
this.point1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
|
|
12167
|
+
this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
|
|
12168
|
+
this.x1 = data.parentEndPoint + (data.milestoneChild ? -1 : 0) + (data.milestoneParent ? 1 : 0);
|
|
12169
|
+
this.x2 = data.childLeft - data.parentEndPoint - 20;
|
|
12170
|
+
this.y1 = this.point1 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12171
|
+
this.y2 = this.point1 + heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
|
|
12172
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12173
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12174
|
+
this.connectorLinePath = "M " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x1 + this.x2) + " " + this.y2 +
|
|
12175
|
+
" L " + this.x1 + " " + this.y2;
|
|
12176
|
+
this.arrowPath = "M " + (this.x1 + this.x2 + 18) + " " + (this.y1 + this.manualChild) +
|
|
12177
|
+
" L " + (this.x1 + this.x2 + 11) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
|
|
12178
|
+
" L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12168
12179
|
}
|
|
12169
12180
|
if (this.getParentPosition(data) === 'SSType4') {
|
|
12170
|
-
|
|
12171
|
-
|
|
12172
|
-
|
|
12173
|
-
|
|
12174
|
-
|
|
12175
|
-
|
|
12176
|
-
|
|
12177
|
-
|
|
12178
|
-
|
|
12179
|
-
|
|
12180
|
-
this.
|
|
12181
|
+
this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
|
|
12182
|
+
this.point1 = heightValue + this.taskLineValue;
|
|
12183
|
+
this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
|
|
12184
|
+
this.x1 = data.parentLeft - 8;
|
|
12185
|
+
this.x2 = data.childLeft - data.parentLeft;
|
|
12186
|
+
this.y1 = this.point2 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12187
|
+
this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
|
|
12188
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12189
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12190
|
+
this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) +
|
|
12191
|
+
" L " + this.x1 + " " + this.y2 + " L " + (this.x1 + 10) + " " + this.y2;
|
|
12192
|
+
this.arrowPath = "M " + (this.x1 + this.x2 + 8) + " " + (this.y1 + this.manualChild) +
|
|
12193
|
+
" L " + (this.x1 + this.x2) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
|
|
12194
|
+
" L " + (this.x1 + this.x2) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12181
12195
|
}
|
|
12182
12196
|
if (this.getParentPosition(data) === 'SSType3') {
|
|
12183
|
-
|
|
12184
|
-
|
|
12185
|
-
|
|
12186
|
-
|
|
12187
|
-
|
|
12188
|
-
|
|
12189
|
-
|
|
12190
|
-
|
|
12191
|
-
|
|
12192
|
-
|
|
12193
|
-
|
|
12197
|
+
this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
|
|
12198
|
+
this.point1 = heightValue + this.taskLineValue;
|
|
12199
|
+
this.x1 = data.childLeft - 20;
|
|
12200
|
+
this.y1 = (data.milestoneChild ? 1 : 0) + ((this.parent.enableVirtualization ? rowPositionHeight : (!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild))) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12201
|
+
this.x2 = data.parentLeft - data.childLeft + 21;
|
|
12202
|
+
this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild ? -11 : data.milestoneParent ? 10 : 0) : 0);
|
|
12203
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12204
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12205
|
+
this.connectorLinePath = "M " + (this.x1 + 12) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) +
|
|
12206
|
+
" L " + this.x1 + " " + this.y2 + " L " + (this.x1 + this.x2) + " " + this.y2;
|
|
12207
|
+
this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y1 + this.manualChild) +
|
|
12208
|
+
" L " + (this.x1 + 12) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
|
|
12209
|
+
" L " + (this.x1 + 12) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12194
12210
|
}
|
|
12195
12211
|
if (this.getParentPosition(data) === 'SSType2') {
|
|
12196
|
-
|
|
12197
|
-
|
|
12198
|
-
|
|
12199
|
-
|
|
12200
|
-
|
|
12201
|
-
|
|
12202
|
-
|
|
12203
|
-
|
|
12204
|
-
|
|
12205
|
-
|
|
12206
|
-
|
|
12207
|
-
this.
|
|
12208
|
-
|
|
12209
|
-
div = div + direction + setInnerElementWidthSSType2 + 'px;' +
|
|
12210
|
-
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
12211
|
-
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
|
|
12212
|
-
(5 + this.lineStroke) + 'px;width:0;' +
|
|
12213
|
-
'height:0;position:relative;"></div></div>';
|
|
12212
|
+
this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
|
|
12213
|
+
this.point1 = heightValue + this.taskLineValue;
|
|
12214
|
+
this.x1 = setInnerElementLeftSSType2;
|
|
12215
|
+
this.x2 = setInnerChildWidthSSType2 + 1;
|
|
12216
|
+
this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12217
|
+
this.y2 = this.y1 + this.point1;
|
|
12218
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12219
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12220
|
+
this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + this.y2 +
|
|
12221
|
+
" L " + (this.x1 + setInnerElementWidthSSType2) + " " + this.y2;
|
|
12222
|
+
this.arrowPath = "M " + (this.x1 + setInnerElementWidthSSType2 + 8) + " " + (this.y2 + this.manualChild) +
|
|
12223
|
+
" L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
|
|
12224
|
+
" L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12214
12225
|
}
|
|
12215
12226
|
if (this.getParentPosition(data) === 'SSType1') {
|
|
12216
|
-
|
|
12217
|
-
|
|
12218
|
-
|
|
12219
|
-
|
|
12220
|
-
|
|
12221
|
-
|
|
12222
|
-
|
|
12223
|
-
|
|
12224
|
-
|
|
12225
|
-
|
|
12226
|
-
|
|
12227
|
-
|
|
12228
|
-
|
|
12229
|
-
div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
12230
|
-
'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
12231
|
-
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
12227
|
+
this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
|
|
12228
|
+
this.point1 = heightValue + this.taskLineValue;
|
|
12229
|
+
this.x1 = data.childLeft - 20;
|
|
12230
|
+
this.x2 = data.parentLeft - data.childLeft + 21;
|
|
12231
|
+
this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12232
|
+
this.y2 = this.y1 + this.point1;
|
|
12233
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12234
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12235
|
+
this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + this.y2 +
|
|
12236
|
+
" L " + (this.x1 + 12) + " " + this.y2;
|
|
12237
|
+
this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y2 + this.manualChild) +
|
|
12238
|
+
" L " + (this.x1 + 12) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
|
|
12239
|
+
" L " + (this.x1 + 12) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12232
12240
|
}
|
|
12233
12241
|
if (this.getParentPosition(data) === 'FFType1') {
|
|
12234
|
-
|
|
12235
|
-
|
|
12236
|
-
|
|
12237
|
-
|
|
12238
|
-
|
|
12239
|
-
|
|
12240
|
-
|
|
12241
|
-
|
|
12242
|
-
|
|
12243
|
-
|
|
12244
|
-
|
|
12245
|
-
|
|
12246
|
-
this.
|
|
12247
|
-
|
|
12248
|
-
div = div + direction + (isMilestone ? 4 : 10) + 'px;width:' + (isMilestone ?
|
|
12249
|
-
(((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (16 + this.lineStroke)) :
|
|
12250
|
-
(((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (10 + this.lineStroke))) + 'px;' +
|
|
12251
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
12252
|
-
div = div + leftArrow;
|
|
12253
|
-
div = div + (isMilestone ? direction + '0px;' : '') + this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
12254
|
-
'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
12255
|
-
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
12242
|
+
this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? 1 : 0);
|
|
12243
|
+
this.x1 = data.childEndPoint;
|
|
12244
|
+
this.x2 = data.parentEndPoint + (data.milestoneParent ? -1 : 0);
|
|
12245
|
+
this.x3 = data.milestoneParent ? 22 : 21;
|
|
12246
|
+
this.x4 = data.milestoneChild ? 4 : 8;
|
|
12247
|
+
this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12248
|
+
this.y2 = heightValue + this.taskLineValue;
|
|
12249
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12250
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12251
|
+
this.connectorLinePath = "M " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x2 + this.x3) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x2 + this.x3) + " " + (this.y1 + this.y2) +
|
|
12252
|
+
" L " + (this.x1 + this.x4) + " " + (this.y1 + this.y2);
|
|
12253
|
+
this.arrowPath = "M " + this.x1 + " " + (this.y1 + this.y2 + this.manualChild) +
|
|
12254
|
+
" L " + (this.x1 + 8) + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
|
|
12255
|
+
" L " + (this.x1 + 8) + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12256
12256
|
}
|
|
12257
12257
|
if (this.getParentPosition(data) === 'FFType2') {
|
|
12258
|
-
|
|
12259
|
-
|
|
12260
|
-
|
|
12261
|
-
|
|
12262
|
-
|
|
12263
|
-
|
|
12264
|
-
|
|
12265
|
-
|
|
12266
|
-
|
|
12267
|
-
|
|
12268
|
-
|
|
12269
|
-
|
|
12270
|
-
this.
|
|
12271
|
-
'position:relative;"></div>';
|
|
12272
|
-
div = div + eLine;
|
|
12273
|
-
div = div + direction + (isMilestone ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 4) :
|
|
12274
|
-
(((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 10)) + 'px;' +
|
|
12275
|
-
'width:' + (isMilestone ? (16 + this.lineStroke) : (10 + this.lineStroke)) + 'px;' +
|
|
12276
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
12277
|
-
div = div + leftArrow;
|
|
12278
|
-
div = div + direction + ((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 'px;' +
|
|
12279
|
-
this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
12280
|
-
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) +
|
|
12281
|
-
'px;width:0;height:0;position:relative;"></div></div>';
|
|
12258
|
+
this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? 1 : 0);
|
|
12259
|
+
this.x1 = data.parentEndPoint;
|
|
12260
|
+
this.x2 = data.childEndPoint + (data.milestoneParent ? 22 : 21);
|
|
12261
|
+
this.x3 = data.childEndPoint + (data.milestoneChild ? 9 : 8);
|
|
12262
|
+
this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12263
|
+
this.y2 = heightValue + this.taskLineValue;
|
|
12264
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12265
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12266
|
+
this.connectorLinePath = "M " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x2 + " " + (this.y1 + this.y2) +
|
|
12267
|
+
" L " + this.x3 + " " + (this.y1 + this.y2);
|
|
12268
|
+
this.arrowPath = "M " + (this.x3 - 8) + " " + (this.y1 + this.y2 + this.manualChild) +
|
|
12269
|
+
" L " + this.x3 + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
|
|
12270
|
+
" L " + this.x3 + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12282
12271
|
}
|
|
12283
12272
|
if (this.getParentPosition(data) === 'FFType3') {
|
|
12284
|
-
|
|
12285
|
-
|
|
12286
|
-
|
|
12287
|
-
|
|
12288
|
-
|
|
12289
|
-
|
|
12290
|
-
|
|
12291
|
-
|
|
12292
|
-
|
|
12293
|
-
|
|
12294
|
-
|
|
12295
|
-
|
|
12296
|
-
|
|
12297
|
-
|
|
12298
|
-
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
|
|
12299
|
-
div = div + eLine;
|
|
12300
|
-
div = div + (isMilestoneParent ? (direction + (((data.parentLeft + data.parentWidth) -
|
|
12301
|
-
(data.childLeft + data.childWidth)) - 1) + 'px;width:21') : (direction + ((data.parentLeft + data.parentWidth) -
|
|
12302
|
-
(data.childLeft + data.childWidth)) + 'px;width:20')) +
|
|
12303
|
-
'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
|
|
12304
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
12273
|
+
this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
|
|
12274
|
+
this.x1 = data.childEndPoint;
|
|
12275
|
+
this.x2 = this.x1 + (data.milestoneChild ? 4 : 8);
|
|
12276
|
+
this.x3 = data.parentEndPoint - data.childEndPoint + (data.milestoneChild ? 16 : 10);
|
|
12277
|
+
this.x4 = data.parentEndPoint + (data.milestoneParent ? -1 : 0);
|
|
12278
|
+
this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12279
|
+
this.y2 = heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
|
|
12280
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12281
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12282
|
+
this.connectorLinePath = "M " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x2 + this.x3) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x2 + this.x3) + " " + (this.y1 + this.y2) +
|
|
12283
|
+
" L " + this.x4 + " " + (this.y1 + this.y2);
|
|
12284
|
+
this.arrowPath = "M " + this.x1 + " " + (this.y1 + this.manualChild) +
|
|
12285
|
+
" L " + (this.x1 + 8) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
|
|
12286
|
+
" L " + (this.x1 + 8) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12305
12287
|
}
|
|
12306
12288
|
if (this.getParentPosition(data) === 'FFType4') {
|
|
12307
|
-
|
|
12308
|
-
|
|
12309
|
-
|
|
12310
|
-
|
|
12311
|
-
|
|
12312
|
-
|
|
12313
|
-
|
|
12314
|
-
|
|
12315
|
-
|
|
12316
|
-
|
|
12317
|
-
|
|
12318
|
-
|
|
12319
|
-
(
|
|
12320
|
-
'px;width:' + (16 + this.lineStroke)) : (direction + (((data.childLeft + data.childWidth) -
|
|
12321
|
-
(data.parentLeft + data.parentWidth)) + 10) + 'px;width:' + (10 + this.lineStroke))) +
|
|
12322
|
-
'px;' + duplicateStingFive;
|
|
12323
|
-
div = div + eLine;
|
|
12324
|
-
div = div + direction + (((data.childLeft + data.childWidth) -
|
|
12325
|
-
(data.parentLeft + data.parentWidth)) + 20) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) +
|
|
12326
|
-
'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
12327
|
-
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
|
|
12328
|
-
div = div + eLine;
|
|
12329
|
-
div = div + (isMilestoneParent ? (direction + '-1px;width:' + (((data.childLeft + data.childWidth) -
|
|
12330
|
-
(data.parentLeft + data.parentWidth)) + (21 + this.lineStroke))) : ('width:' + (((data.childLeft + data.childWidth) -
|
|
12331
|
-
(data.parentLeft + data.parentWidth)) + (20 + this.lineStroke)))) + 'px;top:' +
|
|
12332
|
-
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
|
|
12333
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
12289
|
+
this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
|
|
12290
|
+
this.x1 = data.parentEndPoint;
|
|
12291
|
+
this.x2 = data.childEndPoint + (data.milestoneChild ? 7 : 8);
|
|
12292
|
+
this.x3 = this.x2 + (data.milestoneChild ? 12 : 11);
|
|
12293
|
+
this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12294
|
+
this.y2 = heightValue + this.taskLineValue + +(this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
|
|
12295
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12296
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12297
|
+
this.connectorLinePath = "M " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x3 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x3 + " " + (this.y1 + this.y2) +
|
|
12298
|
+
" L " + this.x1 + " " + (this.y1 + this.y2);
|
|
12299
|
+
this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
|
|
12300
|
+
" L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
|
|
12301
|
+
" L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12334
12302
|
}
|
|
12335
12303
|
if (this.getParentPosition(data) === 'SFType4') {
|
|
12336
|
-
|
|
12337
|
-
|
|
12338
|
-
|
|
12339
|
-
|
|
12340
|
-
|
|
12341
|
-
|
|
12342
|
-
|
|
12343
|
-
|
|
12344
|
-
|
|
12345
|
-
|
|
12346
|
-
|
|
12347
|
-
|
|
12348
|
-
|
|
12349
|
-
|
|
12350
|
-
|
|
12351
|
-
|
|
12352
|
-
|
|
12353
|
-
(((data.childLeft + data.childWidth) - (data.parentLeft)) + (30 + this.lineStroke)) + 'px;' +
|
|
12354
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
12355
|
-
div = div + eLine;
|
|
12356
|
-
div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
|
|
12357
|
-
this.getBorderStyles('left', this.lineStroke) +
|
|
12358
|
-
this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
|
|
12359
|
-
div = div + eLine;
|
|
12360
|
-
div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:11px;' +
|
|
12361
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
12304
|
+
this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? -1 : 0);
|
|
12305
|
+
this.point1 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
|
|
12306
|
+
this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
|
|
12307
|
+
this.x1 = data.parentLeft - 10;
|
|
12308
|
+
this.x2 = this.x1 + ((data.childEndPoint - data.parentLeft) + 18);
|
|
12309
|
+
this.x3 = this.x2 + (data.milestoneChild ? 16 : 11);
|
|
12310
|
+
this.y1 = this.point2 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12311
|
+
this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild ? -11 : 0) : 0);
|
|
12312
|
+
this.y3 = this.getconnectorLineGap(data) + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
|
|
12313
|
+
this.y4 = this.y2 - (this.y2 % data.rowHeight);
|
|
12314
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12315
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12316
|
+
this.connectorLinePath = "M " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x3 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x3 + " " + this.y4 + " L " + this.x1 + " " + this.y4 +
|
|
12317
|
+
" L " + this.x1 + " " + (this.y2 + this.y3) + " L " + (this.x1 + 11) + " " + (this.y2 + this.y3);
|
|
12318
|
+
this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
|
|
12319
|
+
" L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
|
|
12320
|
+
" L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12362
12321
|
}
|
|
12363
12322
|
if (this.getParentPosition(data) === 'SFType3') {
|
|
12364
|
-
|
|
12365
|
-
|
|
12366
|
-
|
|
12367
|
-
|
|
12368
|
-
|
|
12369
|
-
|
|
12370
|
-
|
|
12371
|
-
|
|
12372
|
-
|
|
12373
|
-
|
|
12374
|
-
|
|
12375
|
-
this.
|
|
12376
|
-
|
|
12377
|
-
|
|
12378
|
-
|
|
12379
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
12323
|
+
this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
|
|
12324
|
+
this.point1 = (data.parentLeft - (data.childEndPoint + (data.milestoneParent ? 25 : 20))) + 1 + (this.parent.renderBaseline ? (data.milestoneParent ? 5 : 0) : 0);
|
|
12325
|
+
this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
|
|
12326
|
+
this.x1 = data.childEndPoint;
|
|
12327
|
+
this.x2 = this.x1 + (data.milestoneChild ? 9 : 8);
|
|
12328
|
+
this.x3 = this.x2 + (data.milestoneChild ? 17 : 11);
|
|
12329
|
+
this.y1 = this.point2 + ((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12330
|
+
this.y2 = this.y1 + heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
|
|
12331
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12332
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12333
|
+
this.connectorLinePath = "M " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x3 + " " + (this.y1 + this.manualParent + this.manualChild) +
|
|
12334
|
+
" L " + this.x3 + " " + this.y2 + " L " + (this.x3 + this.point1) + " " + this.y2;
|
|
12335
|
+
this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
|
|
12336
|
+
" L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
|
|
12337
|
+
" L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12380
12338
|
}
|
|
12381
12339
|
if (this.getParentPosition(data) === 'SFType1') {
|
|
12382
|
-
|
|
12383
|
-
|
|
12384
|
-
|
|
12385
|
-
|
|
12386
|
-
|
|
12387
|
-
|
|
12388
|
-
|
|
12389
|
-
|
|
12390
|
-
|
|
12391
|
-
|
|
12392
|
-
|
|
12393
|
-
|
|
12394
|
-
|
|
12395
|
-
|
|
12396
|
-
this.
|
|
12397
|
-
|
|
12398
|
-
div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
|
|
12399
|
-
(data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : (direction +
|
|
12400
|
-
(((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' + (10 + this.lineStroke))) + 'px;' +
|
|
12401
|
-
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
12402
|
-
div = div + duplicateStingFour + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
12403
|
-
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
|
|
12404
|
-
(5 + this.lineStroke) + 'px;position:relative;"></div></div>';
|
|
12340
|
+
this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
|
|
12341
|
+
this.point1 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
|
|
12342
|
+
this.point2 = this.getconnectorLineGap(data);
|
|
12343
|
+
this.x1 = data.parentLeft - 10;
|
|
12344
|
+
this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12345
|
+
this.x2 = (data.childEndPoint - data.parentLeft) + 31;
|
|
12346
|
+
this.y2 = this.y1 + this.point1;
|
|
12347
|
+
this.x3 = (data.childEndPoint - data.parentLeft) + 18;
|
|
12348
|
+
this.y3 = this.y2 - (this.y2 % data.rowHeight);
|
|
12349
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12350
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12351
|
+
this.connectorLinePath = "M " + (this.x1 + 11) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + this.y3 +
|
|
12352
|
+
" L " + (this.x1 + this.x2) + " " + this.y3 + " L " + (this.x1 + this.x2) + " " + (this.y2 + this.point2) + " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2);
|
|
12353
|
+
this.arrowPath = "M " + (this.x1 + this.x3 - 8) + " " + (this.y2 + this.point2 + this.manualChild) +
|
|
12354
|
+
" L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 - (4 + this.lineStroke) + this.manualChild) +
|
|
12355
|
+
" L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12405
12356
|
}
|
|
12406
12357
|
if (this.getParentPosition(data) === 'SFType2') {
|
|
12407
|
-
|
|
12408
|
-
|
|
12409
|
-
|
|
12410
|
-
|
|
12411
|
-
|
|
12412
|
-
|
|
12413
|
-
|
|
12414
|
-
|
|
12415
|
-
|
|
12416
|
-
|
|
12417
|
-
|
|
12418
|
-
|
|
12419
|
-
|
|
12420
|
-
|
|
12421
|
-
|
|
12422
|
-
|
|
12423
|
-
|
|
12424
|
-
'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
|
|
12425
|
-
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
12426
|
-
}
|
|
12427
|
-
connectorContainer += div;
|
|
12428
|
-
connectorContainer += '</div>';
|
|
12429
|
-
}
|
|
12430
|
-
return connectorContainer;
|
|
12358
|
+
this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
|
|
12359
|
+
this.x1 = data.childEndPoint;
|
|
12360
|
+
this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
|
|
12361
|
+
this.x2 = (data.parentLeft - data.childEndPoint);
|
|
12362
|
+
this.y2 = this.y1 + heightValue + this.taskLineValue;
|
|
12363
|
+
this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
|
|
12364
|
+
this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
|
|
12365
|
+
this.connectorLinePath = "M " + (this.x1 + this.x2 + 1) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x1 + this.x2 - 10) + " " + (this.y1 + this.manualParent + this.manualChild) +
|
|
12366
|
+
" L " + (this.x1 + this.x2 - 10) + " " + this.y2 + " L " + (this.x1 + 8) + " " + this.y2;
|
|
12367
|
+
this.arrowPath = "M " + this.x1 + " " + (this.y2 + this.manualChild) +
|
|
12368
|
+
" L " + (this.x1 + 8) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
|
|
12369
|
+
" L " + (this.x1 + 8) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
|
|
12370
|
+
}
|
|
12371
|
+
this.connectorPath.setAttribute("d", this.connectorLinePath);
|
|
12372
|
+
this.arrowlinePath.setAttribute("d", this.arrowPath);
|
|
12373
|
+
}
|
|
12374
|
+
return this.groupObject.outerHTML;
|
|
12431
12375
|
}
|
|
12432
12376
|
/**
|
|
12433
12377
|
* @param {IConnectorLineObject} data .
|
|
@@ -12493,10 +12437,10 @@ class ConnectorLine {
|
|
|
12493
12437
|
* @private
|
|
12494
12438
|
*/
|
|
12495
12439
|
getConnectorLineTooltipInnerTd(fromTaskName, fromPredecessorText, toTaskName, toPredecessorText) {
|
|
12496
|
-
let innerTd = '<tr id="fromPredecessor"><td >' + this.parent.localeObj.getConstant('from') + '</td><td> ';
|
|
12497
|
-
innerTd = innerTd + fromTaskName + ' </td><td> ' + this.parent.localeObj.getConstant(fromPredecessorText) + ' </td> </tr>';
|
|
12498
|
-
innerTd = innerTd + '<tr id="toPredecessor"><td>' + this.parent.localeObj.getConstant('to') + '</td><td> ' + toTaskName;
|
|
12499
|
-
innerTd = innerTd + ' </td><td> ' + this.parent.localeObj.getConstant(toPredecessorText) + ' </td></tr></tbody><table>';
|
|
12440
|
+
let innerTd = '<tr id="fromPredecessor"><td style="padding: 4px;">' + this.parent.localeObj.getConstant('from') + '</td><td> ';
|
|
12441
|
+
innerTd = innerTd + fromTaskName + ' </td><td style="padding: 2px;"> ' + this.parent.localeObj.getConstant(fromPredecessorText) + ' </td> </tr>';
|
|
12442
|
+
innerTd = innerTd + '<tr id="toPredecessor"><td style="padding: 4px;">' + this.parent.localeObj.getConstant('to') + '</td><td> ' + toTaskName;
|
|
12443
|
+
innerTd = innerTd + ' </td><td style="padding: 2px;"> ' + this.parent.localeObj.getConstant(toPredecessorText) + ' </td></tr></tbody><table>';
|
|
12500
12444
|
return innerTd;
|
|
12501
12445
|
}
|
|
12502
12446
|
/**
|
|
@@ -13006,7 +12950,7 @@ class Tooltip$1 {
|
|
|
13006
12950
|
* @param {IGanttData} ganttData .
|
|
13007
12951
|
* @param {Gantt} parent .
|
|
13008
12952
|
* @param {TooltipEventArgs} args .
|
|
13009
|
-
* @returns {string} .
|
|
12953
|
+
* @returns {string | Function} .
|
|
13010
12954
|
*/
|
|
13011
12955
|
getTooltipContent(elementType, ganttData, parent, args) {
|
|
13012
12956
|
let content$$1;
|
|
@@ -13038,8 +12982,11 @@ class Tooltip$1 {
|
|
|
13038
12982
|
let sDate = !isNullOrUndefined(milestoneStartDate) ? '<tr><td class = "e-gantt-tooltip-label"> Date</td><td>:</td>' +
|
|
13039
12983
|
'<td class = "e-gantt-tooltip-value">' +
|
|
13040
12984
|
sDateValue + '</td></tr>' : '';
|
|
13041
|
-
|
|
13042
|
-
|
|
12985
|
+
let contentTemp = function () {
|
|
12986
|
+
return '<table class = "e-gantt-tooltiptable"><tbody>' +
|
|
12987
|
+
taskName + sDate + '</tbody></table>';
|
|
12988
|
+
};
|
|
12989
|
+
content$$1 = initializeCSPTemplate(contentTemp);
|
|
13043
12990
|
break;
|
|
13044
12991
|
}
|
|
13045
12992
|
case 'taskbar':
|
|
@@ -13057,19 +13004,22 @@ class Tooltip$1 {
|
|
|
13057
13004
|
}
|
|
13058
13005
|
let startDate = data.startDate ? '<tr><td class = "e-gantt-tooltip-label">' +
|
|
13059
13006
|
this.parent.localeObj.getConstant(scheduledTask ? 'startDate' : 'subTasksStartDate') +
|
|
13060
|
-
'</td><td>:</td>' + '<td class = "e-gantt-tooltip-value"> ' + startDateValue + '</td></tr>' : '';
|
|
13007
|
+
'</td><td style="padding: 2px;">:</td>' + '<td class = "e-gantt-tooltip-value"> ' + startDateValue + '</td></tr>' : '';
|
|
13061
13008
|
let endDate = data.endDate ? '<tr><td class = "e-gantt-tooltip-label">' +
|
|
13062
13009
|
this.parent.localeObj.getConstant(scheduledTask ? 'endDate' : 'subTasksEndDate') +
|
|
13063
|
-
'</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' + endDateValue + '</td></tr>' : '';
|
|
13010
|
+
'</td><td style="padding: 2px;">:</td>' + '<td class = "e-gantt-tooltip-value">' + endDateValue + '</td></tr>' : '';
|
|
13064
13011
|
let duration = !isNullOrUndefined(data.duration) ? '<tr><td class = "e-gantt-tooltip-label">' +
|
|
13065
|
-
this.parent.localeObj.getConstant('duration') + '</td><td>:</td>' +
|
|
13012
|
+
this.parent.localeObj.getConstant('duration') + '</td><td style="padding: 2px;">:</td>' +
|
|
13066
13013
|
'<td class = "e-gantt-tooltip-value"> ' + durationValue +
|
|
13067
13014
|
'</td></tr>' : '';
|
|
13068
13015
|
let progress = !isNullOrUndefined(data.progress) ? '<tr><td class = "e-gantt-tooltip-label">' +
|
|
13069
|
-
this.parent.localeObj.getConstant('progress') + '</td><td>:</td><td>' + progressValue +
|
|
13016
|
+
this.parent.localeObj.getConstant('progress') + '</td><td style="padding: 2px;">:</td><td>' + progressValue +
|
|
13070
13017
|
'</td></tr>' : '';
|
|
13071
|
-
|
|
13072
|
-
|
|
13018
|
+
let contentTemp = function () {
|
|
13019
|
+
return '<table class = "e-gantt-tooltiptable"><tbody>' +
|
|
13020
|
+
taskName + startDate + endDate + duration + progress + '</tbody></table>';
|
|
13021
|
+
};
|
|
13022
|
+
content$$1 = initializeCSPTemplate(contentTemp);
|
|
13073
13023
|
break;
|
|
13074
13024
|
}
|
|
13075
13025
|
case 'baseline':
|
|
@@ -13080,13 +13030,16 @@ class Tooltip$1 {
|
|
|
13080
13030
|
baselineStartDateValue = typeof (baselineStartDateValue) === 'string' ? SanitizeHtmlHelper.sanitize(baselineStartDateValue) : baselineStartDateValue;
|
|
13081
13031
|
baselineEndDateValue = typeof (baselineEndDateValue) === 'string' ? SanitizeHtmlHelper.sanitize(baselineEndDateValue) : baselineEndDateValue;
|
|
13082
13032
|
}
|
|
13083
|
-
|
|
13084
|
-
|
|
13085
|
-
|
|
13086
|
-
|
|
13087
|
-
|
|
13088
|
-
|
|
13089
|
-
|
|
13033
|
+
let contentTemp = function () {
|
|
13034
|
+
return '<table class = "e-gantt-tooltiptable"><tbody>' +
|
|
13035
|
+
taskName + '<tr><td class = "e-gantt-tooltip-label">' +
|
|
13036
|
+
this.parent.localeObj.getConstant('baselineStartDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
|
|
13037
|
+
baselineStartDateValue + '</td></tr><tr>' +
|
|
13038
|
+
'<td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('baselineEndDate') +
|
|
13039
|
+
'</td><td>:</td><td class = "e-gantt-tooltip-value">' +
|
|
13040
|
+
baselineEndDateValue + '</td></tr></tbody></table>';
|
|
13041
|
+
};
|
|
13042
|
+
content$$1 = initializeCSPTemplate(contentTemp, this);
|
|
13090
13043
|
break;
|
|
13091
13044
|
}
|
|
13092
13045
|
case 'marker':
|
|
@@ -13098,8 +13051,11 @@ class Tooltip$1 {
|
|
|
13098
13051
|
markerLabel = typeof (markerLabel) === 'string' ? SanitizeHtmlHelper.sanitize(markerLabel) : markerLabel;
|
|
13099
13052
|
markerTooltipElementValue = typeof (markerTooltipElementValue) === 'string' ? SanitizeHtmlHelper.sanitize(markerTooltipElementValue) : markerTooltipElementValue;
|
|
13100
13053
|
}
|
|
13101
|
-
|
|
13102
|
-
|
|
13054
|
+
let contentTemp = function () {
|
|
13055
|
+
return '<table class = "e-gantt-tooltiptable"><tbody><tr><td>' +
|
|
13056
|
+
markerTooltipElementValue + '</td></tr><tr><td>' + (this.parent.disableHtmlEncode ? markerLabel.replace(/</g, "<").replace(/>/g, ">") : markerLabel) + '</td></tr></tbody></table>';
|
|
13057
|
+
};
|
|
13058
|
+
content$$1 = initializeCSPTemplate(contentTemp, this);
|
|
13103
13059
|
break;
|
|
13104
13060
|
}
|
|
13105
13061
|
case 'connectorLine':
|
|
@@ -13118,16 +13074,19 @@ class Tooltip$1 {
|
|
|
13118
13074
|
linkTextValue = typeof (linkTextValue) === 'string' ? SanitizeHtmlHelper.sanitize(linkTextValue) : linkTextValue;
|
|
13119
13075
|
offsetStringValue = typeof (offsetStringValue) === 'string' ? SanitizeHtmlHelper.sanitize(offsetStringValue) : offsetStringValue;
|
|
13120
13076
|
}
|
|
13121
|
-
|
|
13122
|
-
|
|
13123
|
-
|
|
13124
|
-
|
|
13125
|
-
|
|
13126
|
-
|
|
13127
|
-
|
|
13128
|
-
|
|
13129
|
-
|
|
13130
|
-
|
|
13077
|
+
let contentTemp = function () {
|
|
13078
|
+
return '<table class = "e-gantt-tooltiptable"><tbody><tr><td class = "e-gantt-tooltip-label">' +
|
|
13079
|
+
this.parent.localeObj.getConstant('from') + '</td><td>:</td>' +
|
|
13080
|
+
'<td class = "e-gantt-tooltip-value">' + (this.parent.disableHtmlEncode ? fromNameValue.replace(/</g, "<").replace(/>/g, ">") : fromNameValue) + ' (' +
|
|
13081
|
+
(this.parent.disableHtmlEncode ? (typeof (fromIdValue) === 'string' ? fromIdValue.replace(/</g, "<").replace(/>/g, ">") : fromIdValue) : fromIdValue) + ')' + '</td></tr><tr><td class = "e-gantt-tooltip-label">' +
|
|
13082
|
+
this.parent.localeObj.getConstant('to') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
|
|
13083
|
+
(this.parent.disableHtmlEncode ? toNameValue.replace(/</g, "<").replace(/>/g, ">") : toNameValue) + ' (' + toIdValue + ')' + '</td></tr><tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('taskLink') +
|
|
13084
|
+
'</td><td>:</td><td class = "e-gantt-tooltip-value"> ' + linkTextValue +
|
|
13085
|
+
'</td></tr><tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('lag') +
|
|
13086
|
+
'</td><td>:</td><td class = "e-gantt-tooltip-value">' +
|
|
13087
|
+
offsetStringValue + '</td></tr></tbody></table>';
|
|
13088
|
+
};
|
|
13089
|
+
content$$1 = initializeCSPTemplate(contentTemp, this);
|
|
13131
13090
|
break;
|
|
13132
13091
|
}
|
|
13133
13092
|
case 'indicator':
|
|
@@ -13136,7 +13095,10 @@ class Tooltip$1 {
|
|
|
13136
13095
|
if (this.parent.enableHtmlSanitizer && typeof (titleValue) === 'string') {
|
|
13137
13096
|
titleValue = SanitizeHtmlHelper.sanitize(titleValue);
|
|
13138
13097
|
}
|
|
13139
|
-
|
|
13098
|
+
let contentTemp = function () {
|
|
13099
|
+
return '<table class = "e-gantt-tooltiptable"><tbody><tr>' + titleValue + '</tr></tbody></table>';
|
|
13100
|
+
};
|
|
13101
|
+
content$$1 = initializeCSPTemplate(contentTemp);
|
|
13140
13102
|
}
|
|
13141
13103
|
break;
|
|
13142
13104
|
case 'timeline':
|
|
@@ -13144,7 +13106,10 @@ class Tooltip$1 {
|
|
|
13144
13106
|
if (this.parent.enableHtmlSanitizer && typeof (timlineTitleValue) === 'string') {
|
|
13145
13107
|
timlineTitleValue = SanitizeHtmlHelper.sanitize(timlineTitleValue);
|
|
13146
13108
|
}
|
|
13147
|
-
|
|
13109
|
+
let contentTemp = function () {
|
|
13110
|
+
return '<table class = "e-gantt-tooltiptable"><tbody><tr>' + timlineTitleValue + '</tr></tbody></table>';
|
|
13111
|
+
};
|
|
13112
|
+
content$$1 = initializeCSPTemplate(contentTemp);
|
|
13148
13113
|
break;
|
|
13149
13114
|
case 'manualtaskbar':
|
|
13150
13115
|
{
|
|
@@ -13176,8 +13141,11 @@ class Tooltip$1 {
|
|
|
13176
13141
|
let manualEndDate = data.endDate ? '<tr><td class = "e-gantt-tooltip-label">' +
|
|
13177
13142
|
this.parent.localeObj.getConstant('endDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
|
|
13178
13143
|
manualEndDateValue + '</td></tr>' : '';
|
|
13179
|
-
|
|
13180
|
-
|
|
13144
|
+
let contentTemp = function () {
|
|
13145
|
+
return '<table class = "e-gantt-tooltiptable"><tbody>' +
|
|
13146
|
+
taskName + manualStartDate + autoStartDate + manualEndDate + autoEndDate + durationValue + '</tbody></table>';
|
|
13147
|
+
};
|
|
13148
|
+
content$$1 = initializeCSPTemplate(contentTemp);
|
|
13181
13149
|
break;
|
|
13182
13150
|
}
|
|
13183
13151
|
case 'manualmilestone':
|
|
@@ -13199,8 +13167,11 @@ class Tooltip$1 {
|
|
|
13199
13167
|
let date = '<tr><td class = "e-gantt-tooltip-label"> Date</td><td>:</td>' +
|
|
13200
13168
|
'<td class = "e-gantt-tooltip-value">' +
|
|
13201
13169
|
dateValue + '</tr>';
|
|
13202
|
-
|
|
13203
|
-
|
|
13170
|
+
let contentTemp = function () {
|
|
13171
|
+
return '<table class = "e-gantt-tooltiptable"><tbody>' +
|
|
13172
|
+
taskName + date + autoStart + autoEnd + '</tbody></table>';
|
|
13173
|
+
};
|
|
13174
|
+
content$$1 = initializeCSPTemplate(contentTemp);
|
|
13204
13175
|
break;
|
|
13205
13176
|
}
|
|
13206
13177
|
}
|
|
@@ -13226,7 +13197,7 @@ class Tooltip$1 {
|
|
|
13226
13197
|
* @private
|
|
13227
13198
|
*/
|
|
13228
13199
|
getPredecessorTooltipData(args) {
|
|
13229
|
-
let predeceesorParent = args.target.
|
|
13200
|
+
let predeceesorParent = args.target.id;
|
|
13230
13201
|
if (this.parent.enableHtmlSanitizer && typeof (predeceesorParent) === 'string') {
|
|
13231
13202
|
predeceesorParent = SanitizeHtmlHelper.sanitize(predeceesorParent);
|
|
13232
13203
|
}
|
|
@@ -13259,7 +13230,7 @@ class Tooltip$1 {
|
|
|
13259
13230
|
/**
|
|
13260
13231
|
* To compile template string.
|
|
13261
13232
|
*
|
|
13262
|
-
* @param {string} template .
|
|
13233
|
+
* @param {string | Function} template .
|
|
13263
13234
|
* @param {Gantt} parent .
|
|
13264
13235
|
* @param {IGanttData|PredecessorTooltip} data .
|
|
13265
13236
|
* @param {string} propName .
|
|
@@ -14321,19 +14292,17 @@ let Gantt = class Gantt extends Component {
|
|
|
14321
14292
|
this.notify('initPredessorDialog', {});
|
|
14322
14293
|
}
|
|
14323
14294
|
this.splitterModule.updateSplitterPosition();
|
|
14324
|
-
if (this.gridLines === 'Vertical' || this.gridLines === 'Both') {
|
|
14325
|
-
|
|
14326
|
-
}
|
|
14295
|
+
// if (this.gridLines === 'Vertical' || this.gridLines === 'Both') {
|
|
14296
|
+
// this.renderChartVerticalLines();
|
|
14297
|
+
// }
|
|
14327
14298
|
}
|
|
14328
14299
|
removeCriticalPathStyles() {
|
|
14329
14300
|
const ganttChartElement = this.ganttChartModule.chartElement;
|
|
14330
14301
|
removeClass(ganttChartElement.querySelectorAll('.e-gantt-child-taskbar-inner-div'), criticalChildTaskBarInnerDiv);
|
|
14331
14302
|
removeClass(ganttChartElement.querySelectorAll('.e-gantt-child-progressbar-inner-div'), criticalChildProgressBarInnerDiv);
|
|
14332
|
-
removeClass(ganttChartElement.querySelectorAll('.e-milestone
|
|
14333
|
-
removeClass(
|
|
14334
|
-
removeClass(this.element.querySelectorAll('.e-line'),
|
|
14335
|
-
removeClass(this.element.querySelectorAll('.e-connector-line-right-arrow'), criticalConnectorLineRightArrow);
|
|
14336
|
-
removeClass(this.element.querySelectorAll('.e-connector-line-left-arrow'), criticalConnectorLineLeftArrow);
|
|
14303
|
+
removeClass(ganttChartElement.querySelectorAll('.e-critical-milestone'), criticalMilestone);
|
|
14304
|
+
removeClass(this.element.querySelectorAll('.e-connector-line'), criticalConnectorLineSVG);
|
|
14305
|
+
removeClass(this.element.querySelectorAll('.e-connector-line-arrow'), criticalConnectorArrowSVG);
|
|
14337
14306
|
}
|
|
14338
14307
|
wireEvents() {
|
|
14339
14308
|
if (this.allowKeyboard) {
|
|
@@ -14345,6 +14314,15 @@ let Gantt = class Gantt extends Component {
|
|
|
14345
14314
|
}
|
|
14346
14315
|
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
|
|
14347
14316
|
EventHandler.add(window, 'resize', this.windowResize, this);
|
|
14317
|
+
EventHandler.add(document.body, 'keydown', this.keyDownHandler, this);
|
|
14318
|
+
}
|
|
14319
|
+
keyDownHandler(e) {
|
|
14320
|
+
if (e.altKey) {
|
|
14321
|
+
if (e.keyCode === 74) { //alt j
|
|
14322
|
+
this.ganttChartModule.manageFocus(this.treeGrid.element.childNodes[1], 'remove', false);
|
|
14323
|
+
this.ganttChartModule.manageFocus(this.element, 'add', false);
|
|
14324
|
+
}
|
|
14325
|
+
}
|
|
14348
14326
|
}
|
|
14349
14327
|
/**
|
|
14350
14328
|
* Method trigger while user perform window resize.
|
|
@@ -15445,9 +15423,9 @@ let Gantt = class Gantt extends Component {
|
|
|
15445
15423
|
if (!this.element.contains(this.chartVerticalLineContainer)) {
|
|
15446
15424
|
this.chartVerticalLineContainer = createElement('div', {
|
|
15447
15425
|
id: this.element.id + 'line-container',
|
|
15448
|
-
styles: 'position:absolute;height:100%;
|
|
15426
|
+
styles: 'position:absolute;height:100%;'
|
|
15449
15427
|
});
|
|
15450
|
-
this.ganttChartModule.chartBodyContent.
|
|
15428
|
+
this.ganttChartModule.chartBodyContent.insertBefore(this.chartVerticalLineContainer, this.ganttChartModule.chartBodyContent.lastChild);
|
|
15451
15429
|
}
|
|
15452
15430
|
this.chartVerticalLineContainer.innerHTML = '';
|
|
15453
15431
|
let headerTable = this.element.getElementsByClassName('e-timeline-header-table-container')[1];
|
|
@@ -15836,9 +15814,6 @@ let Gantt = class Gantt extends Component {
|
|
|
15836
15814
|
this.timelineModule.updateChartByNewTimeline();
|
|
15837
15815
|
this.ganttChartModule.chartBodyContent.style.width = formatUnit(this.timelineModule.totalTimelineWidth);
|
|
15838
15816
|
this.ganttChartModule.updateLastRowBottomWidth();
|
|
15839
|
-
if (this.gridLines === 'Vertical' || this.gridLines === 'Both') {
|
|
15840
|
-
this.renderChartVerticalLines();
|
|
15841
|
-
}
|
|
15842
15817
|
if (this.taskFields.dependency) {
|
|
15843
15818
|
this.ganttChartModule.reRenderConnectorLines();
|
|
15844
15819
|
}
|
|
@@ -18068,23 +18043,23 @@ class EditTooltip {
|
|
|
18068
18043
|
let duration;
|
|
18069
18044
|
if (!isNullOrUndefined(editRecord.startDate)) {
|
|
18070
18045
|
startDate = '<tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('startDate') +
|
|
18071
|
-
'</td><td>:</td><td class = "e-gantt-tooltip-value">' +
|
|
18046
|
+
'</td><td style="padding: 2px;">:</td><td class = "e-gantt-tooltip-value">' +
|
|
18072
18047
|
instance.formatDate(editRecord.startDate, { format: this.parent.getDateFormat() }) + '</td></tr>';
|
|
18073
18048
|
}
|
|
18074
18049
|
if (!isNullOrUndefined(editRecord.endDate)) {
|
|
18075
18050
|
endDate = '<tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('endDate') +
|
|
18076
|
-
'</td><td>:</td><td class = "e-gantt-tooltip-value">' +
|
|
18051
|
+
'</td><td style="padding: 2px;">:</td><td class = "e-gantt-tooltip-value">' +
|
|
18077
18052
|
instance.formatDate(editRecord.endDate, { format: this.parent.getDateFormat() }) + '</td></tr>';
|
|
18078
18053
|
}
|
|
18079
18054
|
if (!isNullOrUndefined(editRecord.duration)) {
|
|
18080
18055
|
duration = '<tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('duration') +
|
|
18081
|
-
'</td><td>:</td><td class = "e-gantt-tooltip-value">' +
|
|
18056
|
+
'</td><td style="padding: 2px;">:</td><td class = "e-gantt-tooltip-value">' +
|
|
18082
18057
|
this.parent.getDurationString(editRecord.duration, editRecord.durationUnit) + '</td></tr>';
|
|
18083
18058
|
}
|
|
18084
18059
|
switch (this.taskbarEdit.taskBarEditAction) {
|
|
18085
18060
|
case 'ProgressResizing':
|
|
18086
18061
|
const progress = '<tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('progress') +
|
|
18087
|
-
'</td><td>:</td><td class = "e-gantt-tooltip-value">' + editRecord.progress + '</td></tr>';
|
|
18062
|
+
'</td><td style="padding: 2px;">:</td><td class = "e-gantt-tooltip-value">' + editRecord.progress + '</td></tr>';
|
|
18088
18063
|
tooltipString = '<table class = "e-gantt-tooltiptable"><tbody>' +
|
|
18089
18064
|
progress + '</tbody></table>';
|
|
18090
18065
|
break;
|
|
@@ -18341,8 +18316,7 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18341
18316
|
|| target.classList.contains(manualParentTaskBar)) {
|
|
18342
18317
|
element = parentsUntil$1(target, manualParentMainContainer);
|
|
18343
18318
|
}
|
|
18344
|
-
else if (target.classList.contains(
|
|
18345
|
-
|| target.classList.contains(manualParentMilestone)) {
|
|
18319
|
+
else if (target.classList.contains(manualParentMilestone)) {
|
|
18346
18320
|
element = parentsUntil$1(target, manualParentMilestone);
|
|
18347
18321
|
}
|
|
18348
18322
|
else {
|
|
@@ -18358,18 +18332,60 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18358
18332
|
if (this.parent.editSettings.allowTaskbarEditing && element) {
|
|
18359
18333
|
this.showHideTaskBarEditingElements(element, this.taskBarEditElement);
|
|
18360
18334
|
this.editElement = element;
|
|
18361
|
-
this.
|
|
18362
|
-
const index = this.
|
|
18335
|
+
this.realTaskbarElement = this.editElement;
|
|
18336
|
+
const index = this.editElement.getAttribute('data-segment-index');
|
|
18363
18337
|
if (!isNullOrUndefined(index)) {
|
|
18364
18338
|
this.segmentIndex = Number(index);
|
|
18365
18339
|
}
|
|
18366
18340
|
else {
|
|
18367
18341
|
this.segmentIndex = -1;
|
|
18368
18342
|
}
|
|
18369
|
-
this.taskBarEditRecord = this.parent.ganttChartModule.getRecordByTaskBar(this.
|
|
18343
|
+
this.taskBarEditRecord = this.parent.ganttChartModule.getRecordByTaskBar(this.editElement);
|
|
18370
18344
|
if (e.type === 'mousedown' || e.type === 'touchstart' || e.type === 'click') {
|
|
18371
|
-
this.roundOffDuration = true;
|
|
18372
18345
|
this.taskBarEditAction = this.getTaskBarAction(e);
|
|
18346
|
+
const index = this.editElement.getAttribute('data-segment-index');
|
|
18347
|
+
const currentRecord = this.parent.ganttChartModule.getRecordByTaskBar(element);
|
|
18348
|
+
const ganttprop = currentRecord.ganttProperties;
|
|
18349
|
+
const parentleft = this.editElement.parentElement.offsetLeft;
|
|
18350
|
+
this.currentData = currentRecord;
|
|
18351
|
+
const resizeElement = createElement('div', { styles: 'height:100%;border-style:dashed;border-bottom:none;border-top:none;border-width:1px;position:absolute;z-index:10000' });
|
|
18352
|
+
addClass([resizeElement], 'e-taskbar-resize-div');
|
|
18353
|
+
resizeElement.style.setProperty("width", ganttprop.width + "px");
|
|
18354
|
+
const currentindex = this.editElement.getAttribute('data-segment-index');
|
|
18355
|
+
resizeElement.style.setProperty("left", ((!isNullOrUndefined(ganttprop.segments) ? parentleft + ganttprop.segments[Number(currentindex)].left + "px" : (ganttprop.left) + "px")));
|
|
18356
|
+
const resizeTable = this.parent.createElement('table');
|
|
18357
|
+
const resizetableBody = this.parent.createElement("tbody");
|
|
18358
|
+
resizetableBody.appendChild(resizeElement);
|
|
18359
|
+
resizeTable.appendChild(resizetableBody);
|
|
18360
|
+
var Check = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-clone-taskbar');
|
|
18361
|
+
let createTable = null;
|
|
18362
|
+
if ((this.taskBarEditAction === 'ChildDrag' || this.taskBarEditAction === 'LeftResizing') && !isNullOrUndefined(index) && !isNullOrUndefined(index) ? Number(index) === 0 : false) {
|
|
18363
|
+
var cloneTaskBar = this.editElement.parentElement.cloneNode(true);
|
|
18364
|
+
}
|
|
18365
|
+
else {
|
|
18366
|
+
var cloneTaskBar = this.editElement.cloneNode(true);
|
|
18367
|
+
}
|
|
18368
|
+
if (!Check) {
|
|
18369
|
+
addClass([cloneTaskBar], 'e-clone-taskbar');
|
|
18370
|
+
cloneTaskBar.style.setProperty("position", "absolute");
|
|
18371
|
+
cloneTaskBar.style.setProperty("top", 0 + "px");
|
|
18372
|
+
createTable = this.parent.createElement('table');
|
|
18373
|
+
const tableBody = this.parent.createElement("tbody");
|
|
18374
|
+
tableBody.appendChild(cloneTaskBar);
|
|
18375
|
+
createTable.appendChild(tableBody);
|
|
18376
|
+
}
|
|
18377
|
+
if ((this.taskBarEditAction === 'ChildDrag' || this.taskBarEditAction === 'LeftResizing') && !isNullOrUndefined(index) && !isNullOrUndefined(index) ? Number(index) === 0 : false) {
|
|
18378
|
+
const segmentedTasks = cloneTaskBar.getElementsByClassName('e-segmented-taskbar');
|
|
18379
|
+
this.cloneTaskbarElement = segmentedTasks[Number(index)];
|
|
18380
|
+
}
|
|
18381
|
+
else {
|
|
18382
|
+
this.cloneTaskbarElement = cloneTaskBar;
|
|
18383
|
+
}
|
|
18384
|
+
this.taskBarEditElement = this.cloneTaskbarElement;
|
|
18385
|
+
this.taskbarElement = createTable;
|
|
18386
|
+
this.taskbarResizer = resizeTable;
|
|
18387
|
+
this.currentIndex = index;
|
|
18388
|
+
this.roundOffDuration = true;
|
|
18373
18389
|
if ((this.taskBarEditAction === 'ConnectorPointLeftDrag' || this.taskBarEditAction === 'ConnectorPointRightDrag') &&
|
|
18374
18390
|
isNullOrUndefined(this.parent.taskFields.dependency)) {
|
|
18375
18391
|
this.taskBarEditAction = null;
|
|
@@ -18400,7 +18416,7 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18400
18416
|
this.initPublicProp();
|
|
18401
18417
|
}
|
|
18402
18418
|
else {
|
|
18403
|
-
this.showHideTaskBarEditingElements(element, this.
|
|
18419
|
+
this.showHideTaskBarEditingElements(element, this.editElement);
|
|
18404
18420
|
}
|
|
18405
18421
|
}
|
|
18406
18422
|
}
|
|
@@ -18435,9 +18451,10 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18435
18451
|
addClass([element.querySelector('.' + taskBarLeftResizer)], [leftResizeGripper]);
|
|
18436
18452
|
addClass([element.querySelector('.' + taskBarRightResizer)], [rightResizeGripper]);
|
|
18437
18453
|
if (isShowProgressResizer) {
|
|
18438
|
-
const
|
|
18439
|
-
if (
|
|
18440
|
-
addClass([
|
|
18454
|
+
const progressElement = element.querySelector('.' + childProgressResizer);
|
|
18455
|
+
if (!isNullOrUndefined(progressElement)) {
|
|
18456
|
+
addClass([progressElement], [progressResizeGripper]);
|
|
18457
|
+
progressElement.style.top = '3px';
|
|
18441
18458
|
}
|
|
18442
18459
|
}
|
|
18443
18460
|
}
|
|
@@ -18518,9 +18535,6 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18518
18535
|
}
|
|
18519
18536
|
else if (mouseDownElement.classList.contains(manualParentTaskBar) ||
|
|
18520
18537
|
mouseDownElement.classList.contains(manualParentMainContainer) ||
|
|
18521
|
-
mouseDownElement.classList.contains(manualParentMilestone) ||
|
|
18522
|
-
mouseDownElement.classList.contains(manualParentMilestoneTop) ||
|
|
18523
|
-
mouseDownElement.classList.contains(manualParentMilestoneBottom) ||
|
|
18524
18538
|
mouseDownElement.classList.contains(manualParentMilestone)) {
|
|
18525
18539
|
action = 'ManualParentDrag';
|
|
18526
18540
|
}
|
|
@@ -18616,6 +18630,21 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18616
18630
|
this.dragMouseLeave = false;
|
|
18617
18631
|
this.isMouseDragCheck();
|
|
18618
18632
|
if (this.isMouseDragged && this.taskBarEditAction) {
|
|
18633
|
+
if (!isNullOrUndefined(this.taskbarElement) && !isNullOrUndefined(this.editElement) && (this.taskBarEditAction !== "ConnectorPointRightDrag" && this.taskBarEditAction !== "ConnectorPointLeftDrag") && !(this.parent.viewType === 'ResourceView' && this.currentData.hasChildRecords)) {
|
|
18634
|
+
var currentElement = this.editElement.parentElement;
|
|
18635
|
+
currentElement.style.setProperty("position", "absolute");
|
|
18636
|
+
if ((this.taskBarEditAction === 'ChildDrag' || this.taskBarEditAction === 'LeftResizing') && !isNullOrUndefined(this.currentIndex) && !isNullOrUndefined(this.currentIndex) ? Number(this.currentIndex) === 0 : false) {
|
|
18637
|
+
this.taskbarElement.childNodes[0].childNodes[0].style.setProperty("top", currentElement.parentElement.offsetTop + "px");
|
|
18638
|
+
currentElement.parentElement.appendChild(this.taskbarElement);
|
|
18639
|
+
}
|
|
18640
|
+
else {
|
|
18641
|
+
currentElement.appendChild(this.taskbarElement);
|
|
18642
|
+
}
|
|
18643
|
+
if (this.taskBarEditAction !== 'ProgressResizing') {
|
|
18644
|
+
const rootElement = this.parent.ganttChartModule.chartBodyContainer.querySelectorAll(".e-chart-rows-container");
|
|
18645
|
+
rootElement[0].appendChild(this.taskbarResizer);
|
|
18646
|
+
}
|
|
18647
|
+
}
|
|
18619
18648
|
const args = {
|
|
18620
18649
|
cancel: false,
|
|
18621
18650
|
requestType: 'taskbarediting',
|
|
@@ -18721,16 +18750,6 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18721
18750
|
merge(this.taskBarEditRecord.ganttProperties, arg.previousData);
|
|
18722
18751
|
}
|
|
18723
18752
|
});
|
|
18724
|
-
this.parent.flatData.map((data) => {
|
|
18725
|
-
if ((!isNullOrUndefined(this.taskBarEditRecord.parentItem)) && data.ganttProperties.taskId === this.taskBarEditRecord.parentItem.taskId) {
|
|
18726
|
-
data.childRecords.map((s) => {
|
|
18727
|
-
if (isNullOrUndefined(s.ganttProperties.startDate) || isNullOrUndefined(s.ganttProperties.endDate) ||
|
|
18728
|
-
isNullOrUndefined(s.ganttProperties.duration)) {
|
|
18729
|
-
this.parent.dataOperation.updateGanttData();
|
|
18730
|
-
}
|
|
18731
|
-
});
|
|
18732
|
-
}
|
|
18733
|
-
});
|
|
18734
18753
|
}
|
|
18735
18754
|
}
|
|
18736
18755
|
/**
|
|
@@ -19535,6 +19554,15 @@ class TaskbarEdit extends DateProcessor {
|
|
|
19535
19554
|
* @private
|
|
19536
19555
|
*/
|
|
19537
19556
|
setItemPosition() {
|
|
19557
|
+
if (!isNullOrUndefined(this.editElement)) {
|
|
19558
|
+
var currentElement = this.editElement.parentElement;
|
|
19559
|
+
if (this.parent.viewType == 'ResourceView' && this.parent.allowTaskbarDragAndDrop && this.taskBarEditAction === 'ChildDrag') {
|
|
19560
|
+
currentElement.style.position = null;
|
|
19561
|
+
}
|
|
19562
|
+
else {
|
|
19563
|
+
currentElement.style.setProperty("position", "absolute");
|
|
19564
|
+
}
|
|
19565
|
+
}
|
|
19538
19566
|
const item = this.taskBarEditRecord.ganttProperties;
|
|
19539
19567
|
let position = this.parent.enableRtl ? "right" : "left";
|
|
19540
19568
|
const segment = !isNullOrUndefined(item.segments) ? item.segments[this.segmentIndex] : null;
|
|
@@ -19544,13 +19572,10 @@ class TaskbarEdit extends DateProcessor {
|
|
|
19544
19572
|
if (!isNullOrUndefined(segment)) {
|
|
19545
19573
|
rightResizer = this.parent.isAdaptive ? (segment.width - 2) : (segment.width - 10);
|
|
19546
19574
|
}
|
|
19547
|
-
|
|
19575
|
+
this.taskBarEditElement.style.setProperty("opacity", '.75');
|
|
19576
|
+
const taskBarMainContainer$$1 = (!this.taskBarEditElement.classList.contains(taskBarMainContainer)) ? ((this.taskBarEditAction === 'ChildDrag' || this.taskBarEditAction === 'LeftResizing') && this.segmentIndex === 0) ? this.taskBarEditElement.parentElement : closest(this.taskBarEditElement, 'tr.' + chartRow)
|
|
19548
19577
|
.querySelector('.' + taskBarMainContainer) : this.taskBarEditElement;
|
|
19549
19578
|
const segmentedTaskBarContainer = this.taskBarEditElement.classList.contains('e-segmented-taskbar');
|
|
19550
|
-
const leftLabelContainer$$1 = closest(this.taskBarEditElement, 'tr.' + chartRow)
|
|
19551
|
-
.querySelector('.' + leftLabelContainer);
|
|
19552
|
-
const rightLabelContainer$$1 = closest(this.taskBarEditElement, 'tr.' + chartRow)
|
|
19553
|
-
.querySelector('.' + rightLabelContainer);
|
|
19554
19579
|
const traceChildProgressBar$$1 = this.taskBarEditElement.querySelector('.' + traceChildProgressBar);
|
|
19555
19580
|
const traceChildTaskBar$$1 = this.taskBarEditElement.querySelector('.' + traceChildTaskBar);
|
|
19556
19581
|
const childProgressResizer$$1 = this.taskBarEditElement.querySelector('.' + childProgressResizer);
|
|
@@ -19562,34 +19587,45 @@ class TaskbarEdit extends DateProcessor {
|
|
|
19562
19587
|
const manualTaskbar = this.taskBarEditElement.querySelector('.' + manualParentTaskBar);
|
|
19563
19588
|
const manualParentRight = this.taskBarEditElement.querySelector('.' + manualParentRightResizer);
|
|
19564
19589
|
const manualParentLeft = this.taskBarEditElement.querySelector('.' + manualParentLeftResizer);
|
|
19590
|
+
const resizeLine = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-taskbar-resize-div');
|
|
19565
19591
|
if (this.taskBarEditAction !== 'ConnectorPointRightDrag' &&
|
|
19566
19592
|
this.taskBarEditAction !== 'ConnectorPointLeftDrag') {
|
|
19567
19593
|
if (this.taskBarEditAction !== 'ParentResizing' && this.taskBarEditAction !== 'ManualParentDrag') {
|
|
19568
19594
|
if (segmentedTaskBarContainer && !isNullOrUndefined(item.segments)
|
|
19569
19595
|
&& (this.taskBarEditAction === 'RightResizing' || this.segmentIndex !== 0)) {
|
|
19596
|
+
if (!isNullOrUndefined(resizeLine)) {
|
|
19597
|
+
resizeLine.style.width = (segment.width) + "px";
|
|
19598
|
+
}
|
|
19570
19599
|
this.taskBarEditElement.style.width = (segment.width) + 'px';
|
|
19571
19600
|
if (this.parent.enableRtl) {
|
|
19572
19601
|
this.taskBarEditElement.style.right = (segment.left) + 'px';
|
|
19573
19602
|
}
|
|
19574
19603
|
else {
|
|
19575
19604
|
this.taskBarEditElement.style.left = (segment.left) + 'px';
|
|
19605
|
+
if (!isNullOrUndefined(resizeLine)) {
|
|
19606
|
+
resizeLine.style.left = (segment.left + this.editElement.parentElement.offsetLeft) + "px";
|
|
19607
|
+
}
|
|
19576
19608
|
}
|
|
19577
19609
|
}
|
|
19578
|
-
taskBarMainContainer$$1.style.width = (width) + 'px';
|
|
19579
|
-
leftLabelContainer$$1.style.width = (item.left) + 'px';
|
|
19580
19610
|
taskBarMainContainer$$1.style.setProperty(position, (item.left) + 'px');
|
|
19611
|
+
taskBarMainContainer$$1.style.width = (width) + 'px';
|
|
19581
19612
|
if (this.parent.viewType === 'ResourceView' && this.parent.allowTaskbarDragAndDrop && this.parent.rowDragAndDropModule &&
|
|
19582
19613
|
(this.taskBarEditAction === 'ChildDrag' || this.taskBarEditAction === 'MilestoneDrag')) {
|
|
19583
19614
|
taskBarMainContainer$$1.style.setProperty('top', (this.topValue) + 'px');
|
|
19584
19615
|
taskBarMainContainer$$1.style.zIndex = '4';
|
|
19585
19616
|
}
|
|
19586
19617
|
if (this.taskBarEditAction === 'LeftResizing' && this.segmentIndex === 0) {
|
|
19618
|
+
this.taskBarEditElement.style.setProperty("opacity", '.75');
|
|
19587
19619
|
const parent = this.taskBarEditElement.parentElement;
|
|
19588
19620
|
const segmentedTasks = parent.getElementsByClassName('e-segmented-taskbar');
|
|
19589
19621
|
for (let i = 0; i < item.segments.length; i++) {
|
|
19590
19622
|
const segment = item.segments[i];
|
|
19591
19623
|
const segmentElement = segmentedTasks[i];
|
|
19592
19624
|
segmentElement.style.width = (segment.width) + 'px';
|
|
19625
|
+
if (i === 0) {
|
|
19626
|
+
resizeLine.style.width = (segment.width) + "px";
|
|
19627
|
+
resizeLine.style.left = (segment.left + item.left) + "px";
|
|
19628
|
+
}
|
|
19593
19629
|
if (this.parent.enableRtl) {
|
|
19594
19630
|
segmentElement.style.right = (segment.left) + 'px';
|
|
19595
19631
|
}
|
|
@@ -19598,8 +19634,10 @@ class TaskbarEdit extends DateProcessor {
|
|
|
19598
19634
|
}
|
|
19599
19635
|
}
|
|
19600
19636
|
}
|
|
19601
|
-
if (
|
|
19602
|
-
|
|
19637
|
+
if (this.taskBarEditAction === 'ChildDrag' && this.segmentIndex === 0) {
|
|
19638
|
+
resizeLine.style.width = (width) + "px";
|
|
19639
|
+
resizeLine.style.left = (item.left) + "px";
|
|
19640
|
+
taskBarMainContainer$$1.style.setProperty("opacity", '.75');
|
|
19603
19641
|
}
|
|
19604
19642
|
}
|
|
19605
19643
|
if (traceConnectorPointRight) {
|
|
@@ -19612,10 +19650,8 @@ class TaskbarEdit extends DateProcessor {
|
|
|
19612
19650
|
}
|
|
19613
19651
|
if (this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone) {
|
|
19614
19652
|
taskBarMainContainer$$1.style.setProperty(position, (item.left - (width / 2)) + 'px');
|
|
19615
|
-
|
|
19616
|
-
|
|
19617
|
-
rightLabelContainer$$1.style.setProperty(position, (item.left + (width / 2)) + 'px');
|
|
19618
|
-
}
|
|
19653
|
+
resizeLine.style.left = (item.left - (width / 2)) + 'px';
|
|
19654
|
+
resizeLine.style.width = (width) + "px";
|
|
19619
19655
|
}
|
|
19620
19656
|
else if (this.taskBarEditAction === 'ProgressResizing') {
|
|
19621
19657
|
if (this.segmentIndex === -1) {
|
|
@@ -19638,6 +19674,7 @@ class TaskbarEdit extends DateProcessor {
|
|
|
19638
19674
|
}
|
|
19639
19675
|
}
|
|
19640
19676
|
else if (this.taskBarEditAction === 'RightResizing' && !isNullOrUndefined(traceChildTaskBar$$1)) {
|
|
19677
|
+
resizeLine.style.width = (width) + 'px';
|
|
19641
19678
|
traceChildTaskBar$$1.style.width = (width) + 'px';
|
|
19642
19679
|
if (!isNullOrUndefined(traceChildProgressBar$$1)) {
|
|
19643
19680
|
traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
|
|
@@ -19648,23 +19685,36 @@ class TaskbarEdit extends DateProcessor {
|
|
|
19648
19685
|
}
|
|
19649
19686
|
}
|
|
19650
19687
|
else if (this.taskBarEditAction === 'ParentDrag') {
|
|
19688
|
+
resizeLine.style.left = (item.left) + 'px';
|
|
19689
|
+
resizeLine.style.width = (width) + "px";
|
|
19690
|
+
resizeLine.style.width = (item.width) + 'px';
|
|
19651
19691
|
if (!isNullOrUndefined(traceParentTaskBar$$1)) {
|
|
19652
19692
|
traceParentTaskBar$$1.style.width = (width) + 'px';
|
|
19693
|
+
resizeLine.style.width = (item.width) + 'px';
|
|
19653
19694
|
}
|
|
19654
19695
|
if (!isNullOrUndefined(traceChildProgressBar$$1)) {
|
|
19655
19696
|
traceParentProgressBar$$1.style.width = (item.progressWidth) + 'px';
|
|
19656
19697
|
}
|
|
19657
19698
|
}
|
|
19658
19699
|
else if (this.taskBarEditAction === 'ParentResizing') {
|
|
19700
|
+
resizeLine.style.width = (item.width) + 'px';
|
|
19701
|
+
resizeLine.style.left = item.left + 'px';
|
|
19659
19702
|
manualParentTaskbar.style.width = manualTaskbar.style.width = (item.width) + 'px';
|
|
19660
19703
|
manualParentRight.style.setProperty(position, item.width - manualParentLeft.offsetLeft + 'px');
|
|
19661
19704
|
}
|
|
19662
19705
|
else if (this.taskBarEditAction === 'ManualParentDrag') {
|
|
19706
|
+
resizeLine.style.width = (item.width) + 'px';
|
|
19707
|
+
resizeLine.style.left = item.left + 'px';
|
|
19663
19708
|
manualParentTaskbar.style.setProperty(position, item.left - item.autoLeft + 'px');
|
|
19664
19709
|
}
|
|
19665
19710
|
else {
|
|
19666
19711
|
if (!isNullOrUndefined(traceChildTaskBar$$1) && !segmentedTaskBarContainer) {
|
|
19667
|
-
traceChildTaskBar$$1.style.width = (width) + 'px';
|
|
19712
|
+
traceChildTaskBar$$1.style.width = (item.width) + 'px';
|
|
19713
|
+
traceChildTaskBar$$1.style.left = (item.left) + 'px';
|
|
19714
|
+
this.taskBarEditElement.style.width = (item.width) + 'px';
|
|
19715
|
+
this.taskBarEditElement.style.left = (item.left) + "px";
|
|
19716
|
+
resizeLine.style.left = (item.left) + 'px';
|
|
19717
|
+
resizeLine.style.width = (item.width) + "px";
|
|
19668
19718
|
}
|
|
19669
19719
|
if (!isNullOrUndefined(traceChildProgressBar$$1)) {
|
|
19670
19720
|
taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
|
|
@@ -20060,21 +20110,21 @@ class TaskbarEdit extends DateProcessor {
|
|
|
20060
20110
|
if ((this.parent.virtualScrollModule && this.parent.enableVirtualization &&
|
|
20061
20111
|
!this.elementOffsetLeft) || !this.parent.enableVirtualization) {
|
|
20062
20112
|
if (!this.parent.allowParentDependency) {
|
|
20063
|
-
this.elementOffsetLeft = this.
|
|
20064
|
-
this.elementOffsetTop = this.
|
|
20113
|
+
this.elementOffsetLeft = this.realTaskbarElement.offsetLeft;
|
|
20114
|
+
this.elementOffsetTop = this.realTaskbarElement.parentElement.offsetTop + this.realTaskbarElement.offsetHeight / 3 + scrollTop;
|
|
20065
20115
|
}
|
|
20066
20116
|
else {
|
|
20067
20117
|
if (this.taskBarEditElement.children[0].classList.contains('e-manualparent-main-container')) {
|
|
20068
|
-
this.elementOffsetLeft = this.
|
|
20069
|
-
this.elementOffsetTop = ((this.
|
|
20118
|
+
this.elementOffsetLeft = this.realTaskbarElement.children[0]['offsetLeft'] + this.realTaskbarElement.offsetLeft;
|
|
20119
|
+
this.elementOffsetTop = ((this.realTaskbarElement.parentElement.offsetTop + this.realTaskbarElement.offsetHeight / 3 - 5) + this.taskBarEditElement.children[0]['offsetTop']) + scrollTop;
|
|
20070
20120
|
}
|
|
20071
20121
|
else {
|
|
20072
|
-
this.elementOffsetLeft = this.
|
|
20073
|
-
this.elementOffsetTop = this.
|
|
20122
|
+
this.elementOffsetLeft = this.realTaskbarElement.offsetLeft;
|
|
20123
|
+
this.elementOffsetTop = this.realTaskbarElement.parentElement.offsetTop + this.realTaskbarElement.offsetHeight / 3 + scrollTop;
|
|
20074
20124
|
}
|
|
20075
20125
|
}
|
|
20076
|
-
this.elementOffsetWidth = this.
|
|
20077
|
-
this.elementOffsetHeight = this.
|
|
20126
|
+
this.elementOffsetWidth = this.realTaskbarElement.offsetWidth;
|
|
20127
|
+
this.elementOffsetHeight = this.realTaskbarElement.offsetHeight;
|
|
20078
20128
|
}
|
|
20079
20129
|
this.showHideTaskBarEditingElements(element, this.highlightedSecondElement, true);
|
|
20080
20130
|
}
|
|
@@ -22609,10 +22659,11 @@ class ConnectorLineEdit {
|
|
|
22609
22659
|
* @private
|
|
22610
22660
|
*/
|
|
22611
22661
|
getConnectorLineHoverElement(target) {
|
|
22612
|
-
const isOnLine = parentsUntil$1(target,
|
|
22613
|
-
const
|
|
22614
|
-
const
|
|
22615
|
-
|
|
22662
|
+
const isOnLine = parentsUntil$1(target, connectorLineSVG);
|
|
22663
|
+
const isArrow = parentsUntil$1(target, connectorLineArrow);
|
|
22664
|
+
const isCriticalLine = parentsUntil$1(target, criticalConnectorLineSVG);
|
|
22665
|
+
var isCriticalArrow = parentsUntil$1(target, criticalConnectorArrowSVG);
|
|
22666
|
+
if (isOnLine || isArrow || isCriticalLine || isCriticalArrow) {
|
|
22616
22667
|
return parentsUntil$1(target, connectorLineContainer);
|
|
22617
22668
|
}
|
|
22618
22669
|
else {
|
|
@@ -22646,16 +22697,13 @@ class ConnectorLineEdit {
|
|
|
22646
22697
|
*/
|
|
22647
22698
|
addHighlight(element) {
|
|
22648
22699
|
this.connectorLineElement = element;
|
|
22649
|
-
|
|
22650
|
-
|
|
22651
|
-
|
|
22652
|
-
|
|
22653
|
-
addClass(element.querySelectorAll('.' + connectorLineLeftArrow), [criticalConnectorLineLeftArrowHover]);
|
|
22700
|
+
const pathElement = element.querySelector('.' + connectorLineSVG);
|
|
22701
|
+
const criticalElement = element.querySelector('.' + criticalConnectorLineSVG);
|
|
22702
|
+
if (pathElement) {
|
|
22703
|
+
pathElement.setAttribute('stroke-width', '2');
|
|
22654
22704
|
}
|
|
22655
22705
|
else {
|
|
22656
|
-
|
|
22657
|
-
addClass(element.querySelectorAll('.' + connectorLineRightArrow), [connectorLineRightArrowHover]);
|
|
22658
|
-
addClass(element.querySelectorAll('.' + connectorLineLeftArrow), [connectorLineLeftArrowHover]);
|
|
22706
|
+
criticalElement.setAttribute('stroke-width', '2');
|
|
22659
22707
|
}
|
|
22660
22708
|
}
|
|
22661
22709
|
/**
|
|
@@ -22665,17 +22713,14 @@ class ConnectorLineEdit {
|
|
|
22665
22713
|
* @private
|
|
22666
22714
|
*/
|
|
22667
22715
|
removeHighlight() {
|
|
22668
|
-
if (
|
|
22669
|
-
|
|
22670
|
-
|
|
22671
|
-
|
|
22672
|
-
|
|
22673
|
-
removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLineLeftArrow), [criticalConnectorLineLeftArrowHover]);
|
|
22716
|
+
if (this.connectorLineElement) {
|
|
22717
|
+
const pathElement = this.connectorLineElement.querySelector('.' + connectorLineSVG);
|
|
22718
|
+
const criticalElement = this.connectorLineElement.querySelector('.' + criticalConnectorLineSVG);
|
|
22719
|
+
if (pathElement) {
|
|
22720
|
+
pathElement.setAttribute('stroke-width', '1');
|
|
22674
22721
|
}
|
|
22675
22722
|
else {
|
|
22676
|
-
|
|
22677
|
-
removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLineRightArrow), [connectorLineRightArrowHover]);
|
|
22678
|
-
removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLineLeftArrow), [connectorLineLeftArrowHover]);
|
|
22723
|
+
criticalElement.setAttribute('stroke-width', '1');
|
|
22679
22724
|
}
|
|
22680
22725
|
this.connectorLineElement = null;
|
|
22681
22726
|
}
|
|
@@ -22742,8 +22787,8 @@ class ConnectorLineEdit {
|
|
|
22742
22787
|
this.parent.connectorLineModule.expandedRecords = this.parent.virtualScrollModule && this.parent.enableVirtualization ?
|
|
22743
22788
|
this.parent.updatedRecords : this.parent.getExpandedRecords(this.parent.updatedRecords);
|
|
22744
22789
|
const editedConnectorLineString = this.getEditedConnectorLineString(editedRecord);
|
|
22745
|
-
this.parent.connectorLineModule.
|
|
22746
|
-
this.parent.connectorLineModule.
|
|
22790
|
+
this.parent.connectorLineModule.svgObject.innerHTML =
|
|
22791
|
+
this.parent.connectorLineModule.svgObject.innerHTML + editedConnectorLineString;
|
|
22747
22792
|
}
|
|
22748
22793
|
idFromPredecessor(pre) {
|
|
22749
22794
|
const preArray = pre.split(',');
|
|
@@ -23363,9 +23408,9 @@ class ConnectorLineEdit {
|
|
|
23363
23408
|
validateTypes(ganttRecord, data) {
|
|
23364
23409
|
const predecessor = this.parent.predecessorModule.getValidPredecessor(ganttRecord);
|
|
23365
23410
|
let parentGanttRecord;
|
|
23366
|
-
let ganttTaskData;
|
|
23367
23411
|
this.validationPredecessor = [];
|
|
23368
23412
|
let violatedParent;
|
|
23413
|
+
let ganttTaskData;
|
|
23369
23414
|
let violateType;
|
|
23370
23415
|
const startDate = this.parent.predecessorModule.getPredecessorDate(ganttRecord, predecessor);
|
|
23371
23416
|
if (data) {
|
|
@@ -24438,6 +24483,10 @@ class Edit$2 {
|
|
|
24438
24483
|
if (data.hasChildRecords && ganttProp.isAutoSchedule) {
|
|
24439
24484
|
this.parent.setRecordValue('startDate', ganttProp.autoStartDate, ganttProp, true);
|
|
24440
24485
|
this.parent.setRecordValue('endDate', ganttProp.autoEndDate, ganttProp, true);
|
|
24486
|
+
this.parent.setRecordValue('StartDate', ganttProp.autoStartDate, data, true);
|
|
24487
|
+
this.parent.setRecordValue('EndDate', ganttProp.autoEndDate, data, true);
|
|
24488
|
+
this.parent.setRecordValue('taskData.StartDate', ganttProp.autoStartDate, data, true);
|
|
24489
|
+
this.parent.setRecordValue('taskData.EndDate', ganttProp.autoEndDate, data, true);
|
|
24441
24490
|
this.parent.setRecordValue('width', this.parent.dataOperation.calculateWidth(data, true), ganttProp, true);
|
|
24442
24491
|
this.parent.setRecordValue('left', this.parent.dataOperation.calculateLeft(ganttProp, true), ganttProp, true);
|
|
24443
24492
|
this.parent.setRecordValue('progressWidth', this.parent.dataOperation.getProgressWidth(ganttProp.width, ganttProp.progress), ganttProp, true);
|
|
@@ -24446,8 +24495,8 @@ class Edit$2 {
|
|
|
24446
24495
|
else if (data.hasChildRecords && !ganttProp.isAutoSchedule) {
|
|
24447
24496
|
this.parent.dataOperation.updateWidthLeft(data);
|
|
24448
24497
|
this.parent.dataOperation.calculateDuration(data);
|
|
24449
|
-
this.parent.setRecordValue('autoStartDate', ganttProp.
|
|
24450
|
-
this.parent.setRecordValue('autoEndDate', ganttProp.
|
|
24498
|
+
this.parent.setRecordValue('autoStartDate', ganttProp.autoStartDate, ganttProp, true);
|
|
24499
|
+
this.parent.setRecordValue('autoEndDate', ganttProp.autoEndDate, ganttProp, true);
|
|
24451
24500
|
this.parent.setRecordValue('autoDuration', this.parent.dataOperation.calculateAutoDuration(data), ganttProp, true);
|
|
24452
24501
|
this.parent.dataOperation.updateAutoWidthLeft(data);
|
|
24453
24502
|
}
|
|
@@ -24672,7 +24721,6 @@ class Edit$2 {
|
|
|
24672
24721
|
}
|
|
24673
24722
|
if (childRecords.length) {
|
|
24674
24723
|
this.parent.dataOperation.updateParentItems(ganttRecord, true);
|
|
24675
|
-
this.parent.dataOperation.updateGanttData();
|
|
24676
24724
|
}
|
|
24677
24725
|
}
|
|
24678
24726
|
/**
|
|
@@ -24884,8 +24932,8 @@ class Edit$2 {
|
|
|
24884
24932
|
}
|
|
24885
24933
|
}
|
|
24886
24934
|
if (this.parent.isConnectorLineUpdate && !isNullOrUndefined(this.parent.connectorLineEditModule)) {
|
|
24887
|
-
this.parent.updatedConnectorLineCollection = [];
|
|
24888
|
-
this.parent.connectorLineIds = [];
|
|
24935
|
+
// this.parent.updatedConnectorLineCollection = [];
|
|
24936
|
+
// this.parent.connectorLineIds = [];
|
|
24889
24937
|
this.parent.connectorLineEditModule.refreshEditedRecordConnectorLine(this.parent.editedRecords);
|
|
24890
24938
|
this.updateScheduleDatesOnEditing(args);
|
|
24891
24939
|
}
|
|
@@ -26254,6 +26302,7 @@ class Edit$2 {
|
|
|
26254
26302
|
this.parent.treeGrid.parentData = [];
|
|
26255
26303
|
this.parent.addDeleteRecord = true;
|
|
26256
26304
|
this.parent.selectedRowIndex = 0;
|
|
26305
|
+
this.parent.treeGrid['isAddedFromGantt'] = true;
|
|
26257
26306
|
this.parent.treeGrid.refresh();
|
|
26258
26307
|
if (this.parent.enableImmutableMode) {
|
|
26259
26308
|
this.parent.modifiedRecords = args.modifiedRecords;
|
|
@@ -26398,7 +26447,6 @@ class Edit$2 {
|
|
|
26398
26447
|
let args = {};
|
|
26399
26448
|
args = this.constructTaskAddedEventArgs(cAddedRecord, this.parent.editedRecords, 'beforeAdd');
|
|
26400
26449
|
this.parent.trigger('actionBegin', args, (args) => {
|
|
26401
|
-
this.parent.previousRecords = {};
|
|
26402
26450
|
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
26403
26451
|
this.parent.showMaskRow();
|
|
26404
26452
|
}
|
|
@@ -28940,7 +28988,7 @@ class NonWorkingDay {
|
|
|
28940
28988
|
this.nonworkingContainer = createElement('div', {
|
|
28941
28989
|
className: nonworkingContainer
|
|
28942
28990
|
});
|
|
28943
|
-
this.parent.ganttChartModule.chartBodyContent.
|
|
28991
|
+
this.parent.ganttChartModule.chartBodyContent.insertBefore(this.nonworkingContainer, this.parent.ganttChartModule.chartBodyContent.lastChild);
|
|
28944
28992
|
}
|
|
28945
28993
|
}
|
|
28946
28994
|
/**
|
|
@@ -29089,7 +29137,7 @@ class NonWorkingDay {
|
|
|
29089
29137
|
}
|
|
29090
29138
|
updateHolidayLabelHeight() {
|
|
29091
29139
|
const height = this.parent.getContentHeight();
|
|
29092
|
-
let gantttable =
|
|
29140
|
+
let gantttable = document.getElementById("ganttContainer");
|
|
29093
29141
|
// eslint-disable-next-line
|
|
29094
29142
|
let toolbarHeight = 0;
|
|
29095
29143
|
if (!isNullOrUndefined(this.parent.toolbarModule) && !isNullOrUndefined(this.parent.toolbarModule.element)) {
|
|
@@ -29277,9 +29325,12 @@ class DayMarkers {
|
|
|
29277
29325
|
}
|
|
29278
29326
|
}
|
|
29279
29327
|
refreshMarkers() {
|
|
29280
|
-
this.eventMarkerRender.renderEventMarkers();
|
|
29281
29328
|
this.nonworkingDayRender.renderWeekends();
|
|
29282
29329
|
this.nonworkingDayRender.renderHolidays();
|
|
29330
|
+
if (this.parent.gridLines === 'Vertical' || this.parent.gridLines === 'Both') {
|
|
29331
|
+
this.parent['renderChartVerticalLines']();
|
|
29332
|
+
}
|
|
29333
|
+
this.eventMarkerRender.renderEventMarkers();
|
|
29283
29334
|
}
|
|
29284
29335
|
updateHeight() {
|
|
29285
29336
|
this.nonworkingDayRender.updateContainerHeight();
|
|
@@ -30041,11 +30092,8 @@ class CriticalPath {
|
|
|
30041
30092
|
}
|
|
30042
30093
|
if (element && (this.parent.viewType === 'ProjectView' || (this.parent.viewType === 'ResourceView' &&
|
|
30043
30094
|
!criticalData.hasChildRecords))) {
|
|
30044
|
-
if (element.getElementsByClassName('e-milestone
|
|
30045
|
-
addClass(element.querySelectorAll('.e-milestone
|
|
30046
|
-
}
|
|
30047
|
-
if (element.getElementsByClassName('e-milestone-bottom')[0]) {
|
|
30048
|
-
addClass(element.querySelectorAll('.e-milestone-bottom'), criticalMilestoneBottom);
|
|
30095
|
+
if (element.getElementsByClassName('e-gantt-milestone')[0]) {
|
|
30096
|
+
addClass(element.querySelectorAll('.e-gantt-milestone'), criticalMilestone);
|
|
30049
30097
|
}
|
|
30050
30098
|
if (element.getElementsByClassName('e-gantt-child-taskbar-inner-div').length > 0) {
|
|
30051
30099
|
addClass(element.querySelectorAll('.e-gantt-child-taskbar-inner-div'), criticalChildTaskBarInnerDiv);
|
|
@@ -30081,11 +30129,9 @@ class CriticalPath {
|
|
|
30081
30129
|
currentdata['taskid'] + 'child' + checkint);
|
|
30082
30130
|
if (lineElement.length > 0) {
|
|
30083
30131
|
addClass(this.parent.element.querySelectorAll('#ConnectorLineparent' + currentdata['taskid'] + 'child' +
|
|
30084
|
-
checkint)[0].querySelectorAll('.e-line'),
|
|
30085
|
-
addClass(this.parent.element.querySelectorAll('#ConnectorLineparent' + currentdata['taskid'] + 'child' +
|
|
30086
|
-
checkint)[0].querySelectorAll('.e-connector-line-right-arrow'), criticalConnectorLineRightArrow);
|
|
30132
|
+
checkint)[0].querySelectorAll('.e-connector-line'), criticalConnectorLineSVG);
|
|
30087
30133
|
addClass(this.parent.element.querySelectorAll('#ConnectorLineparent' + currentdata['taskid'] + 'child' +
|
|
30088
|
-
checkint)[0].querySelectorAll('.e-connector-line-
|
|
30134
|
+
checkint)[0].querySelectorAll('.e-connector-line-arrow'), criticalConnectorArrowSVG);
|
|
30089
30135
|
}
|
|
30090
30136
|
}
|
|
30091
30137
|
}
|
|
@@ -30384,7 +30430,7 @@ class ContextMenu$2 {
|
|
|
30384
30430
|
splitTaskDuration = Math.ceil(currentTaskDifference / this.parent.timelineSettings.timelineUnitSize);
|
|
30385
30431
|
splitTaskDuration -= 1;
|
|
30386
30432
|
}
|
|
30387
|
-
const contextMenuClickDate = this.parent.dataOperation.getEndDate(startDate, splitTaskDuration, (this.parent.
|
|
30433
|
+
const contextMenuClickDate = this.parent.dataOperation.getEndDate(startDate, splitTaskDuration, (this.parent.timelineModule.customTimelineSettings.bottomTier.unit !== "None") ? this.parent.timelineModule.customTimelineSettings.bottomTier.unit.toLocaleLowerCase() : this.parent.timelineModule.customTimelineSettings.topTier.unit.toLocaleLowerCase(), this.rowData, false);
|
|
30388
30434
|
return contextMenuClickDate;
|
|
30389
30435
|
}
|
|
30390
30436
|
contextMenuBeforeOpen(args) {
|
|
@@ -30393,7 +30439,7 @@ class ContextMenu$2 {
|
|
|
30393
30439
|
this.parent.ganttChartModule.targetElement;
|
|
30394
30440
|
// Closed edited cell before opening context menu
|
|
30395
30441
|
// eslint-disable-next-line
|
|
30396
|
-
if (!isNullOrUndefined(this.parent.editModule) && this.parent.editModule.cellEditModule && this.parent.editModule.cellEditModule.isCellEdit && target.parentElement.classList.contains('e-row')
|
|
30442
|
+
if (!isNullOrUndefined(this.parent.editModule) && this.parent.editModule.cellEditModule && this.parent.editModule.cellEditModule.isCellEdit && target.parentElement.classList.contains('e-row')) {
|
|
30397
30443
|
this.parent.treeGrid.closeEdit();
|
|
30398
30444
|
}
|
|
30399
30445
|
if (!isNullOrUndefined(args.element) && args.element.id === this.parent.element.id + '_contextmenu') {
|
|
@@ -34088,6 +34134,7 @@ class ExportHelper {
|
|
|
34088
34134
|
predecessor.type = data.type;
|
|
34089
34135
|
predecessor.milestoneParent = data.milestoneParent;
|
|
34090
34136
|
predecessor.milestoneChild = data.milestoneChild;
|
|
34137
|
+
predecessor.parentEndPoint = data.parentEndPoint;
|
|
34091
34138
|
predecessor.lineWidth = this.parent.connectorLineWidth > 5 ? pixelToPoint(5) : pixelToPoint(this.parent.connectorLineWidth);
|
|
34092
34139
|
if (data.isCritical) {
|
|
34093
34140
|
predecessor.connectorLineColor = this.ganttStyle.criticalConnectorLineColor;
|
|
@@ -35073,22 +35120,11 @@ class PdfGanttPredecessor {
|
|
|
35073
35120
|
this.parent = parent;
|
|
35074
35121
|
this.pdfGantt = pdfGantt;
|
|
35075
35122
|
}
|
|
35076
|
-
findindex(num
|
|
35123
|
+
findindex(num) {
|
|
35077
35124
|
var dataindex;
|
|
35078
|
-
if (
|
|
35079
|
-
|
|
35080
|
-
|
|
35081
|
-
dataindex = index;
|
|
35082
|
-
}
|
|
35083
|
-
});
|
|
35084
|
-
}
|
|
35085
|
-
else {
|
|
35086
|
-
this.parent.flatData.map(function (data, index) {
|
|
35087
|
-
if (data.index == num) {
|
|
35088
|
-
dataindex = index;
|
|
35089
|
-
}
|
|
35090
|
-
});
|
|
35091
|
-
}
|
|
35125
|
+
this.parent.currentViewData.map((data, index) => { if (data.index == num) {
|
|
35126
|
+
dataindex = index;
|
|
35127
|
+
} });
|
|
35092
35128
|
return dataindex;
|
|
35093
35129
|
}
|
|
35094
35130
|
/**
|
|
@@ -35098,11 +35134,11 @@ class PdfGanttPredecessor {
|
|
|
35098
35134
|
* @returns {void}
|
|
35099
35135
|
* @private
|
|
35100
35136
|
*/
|
|
35101
|
-
drawPredecessor(pdfGantt
|
|
35137
|
+
drawPredecessor(pdfGantt) {
|
|
35102
35138
|
this.pdfGantt = pdfGantt;
|
|
35103
35139
|
const pages = pdfGantt.result.page.section.getPages();
|
|
35104
|
-
const parentTask = pdfGantt.taskbarCollection[this.findindex(this.parentIndex
|
|
35105
|
-
const childTask = pdfGantt.taskbarCollection[this.findindex(this.childIndex
|
|
35140
|
+
const parentTask = pdfGantt.taskbarCollection[this.findindex(this.parentIndex)];
|
|
35141
|
+
const childTask = pdfGantt.taskbarCollection[this.findindex(this.childIndex)];
|
|
35106
35142
|
let startPage = new PdfPage();
|
|
35107
35143
|
let endPage = new PdfPage();
|
|
35108
35144
|
let predecessorType = '';
|
|
@@ -35112,7 +35148,7 @@ class PdfGanttPredecessor {
|
|
|
35112
35148
|
let childY = 0;
|
|
35113
35149
|
switch (this.type) {
|
|
35114
35150
|
case 'FS':
|
|
35115
|
-
if (
|
|
35151
|
+
if (childTask.startPage > -1 && parentTask.endPage > -1) {
|
|
35116
35152
|
startPage = pages[parentTask.endPage];
|
|
35117
35153
|
endPage = pages[childTask.startPage];
|
|
35118
35154
|
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
@@ -35139,7 +35175,7 @@ class PdfGanttPredecessor {
|
|
|
35139
35175
|
}
|
|
35140
35176
|
break;
|
|
35141
35177
|
case 'SF':
|
|
35142
|
-
if (
|
|
35178
|
+
if (childTask.endPage > -1 && parentTask.startPage > -1) {
|
|
35143
35179
|
startPage = pages[parentTask.startPage];
|
|
35144
35180
|
endPage = pages[childTask.endPage];
|
|
35145
35181
|
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
@@ -35166,7 +35202,7 @@ class PdfGanttPredecessor {
|
|
|
35166
35202
|
}
|
|
35167
35203
|
break;
|
|
35168
35204
|
case 'FF':
|
|
35169
|
-
if (
|
|
35205
|
+
if (childTask.endPage > -1 && parentTask.endPage > -1) {
|
|
35170
35206
|
startPage = pages[parentTask.endPage];
|
|
35171
35207
|
endPage = pages[childTask.endPage];
|
|
35172
35208
|
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
@@ -35193,7 +35229,7 @@ class PdfGanttPredecessor {
|
|
|
35193
35229
|
}
|
|
35194
35230
|
break;
|
|
35195
35231
|
case 'SS':
|
|
35196
|
-
if (
|
|
35232
|
+
if (childTask.startPage > -1 && parentTask.startPage > -1) {
|
|
35197
35233
|
startPage = pages[parentTask.startPage];
|
|
35198
35234
|
endPage = pages[childTask.startPage];
|
|
35199
35235
|
parentPageData = pdfGantt.pdfPageDetail[parentTask.startPage - pdfGantt.chartPageIndex];
|
|
@@ -35520,12 +35556,12 @@ class PdfGantt extends PdfTreeGrid {
|
|
|
35520
35556
|
}
|
|
35521
35557
|
return this.taskbars;
|
|
35522
35558
|
}
|
|
35523
|
-
drawChart(result
|
|
35559
|
+
drawChart(result) {
|
|
35524
35560
|
this.result = result;
|
|
35525
35561
|
this.totalPages = this.result.page.section.count;
|
|
35526
35562
|
this.perColumnPages = this.totalPages / this.layouter.columnRanges.length;
|
|
35527
35563
|
this.calculateRange();
|
|
35528
|
-
this.drawGantttChart(
|
|
35564
|
+
this.drawGantttChart();
|
|
35529
35565
|
this.drawPageBorder();
|
|
35530
35566
|
}
|
|
35531
35567
|
//Calcualte the header range for each pdf page based on schedule start and end date.
|
|
@@ -35674,7 +35710,7 @@ class PdfGantt extends PdfTreeGrid {
|
|
|
35674
35710
|
}
|
|
35675
35711
|
}
|
|
35676
35712
|
//Draw the gantt chart side
|
|
35677
|
-
drawGantttChart(
|
|
35713
|
+
drawGantttChart() {
|
|
35678
35714
|
let taskbarPoint = this.startPoint;
|
|
35679
35715
|
const pagePoint = new PointF();
|
|
35680
35716
|
let pageStartX = 0;
|
|
@@ -35748,7 +35784,7 @@ class PdfGantt extends PdfTreeGrid {
|
|
|
35748
35784
|
// Draw predecessor line.
|
|
35749
35785
|
for (let i = 0; i < this.predecessorCollection.length; i++) {
|
|
35750
35786
|
const predecessor = this.predecessorCollection[i];
|
|
35751
|
-
predecessor.drawPredecessor(this
|
|
35787
|
+
predecessor.drawPredecessor(this);
|
|
35752
35788
|
}
|
|
35753
35789
|
}
|
|
35754
35790
|
}
|
|
@@ -35861,7 +35897,7 @@ class PdfExport {
|
|
|
35861
35897
|
const format = new PdfTreeGridLayoutFormat();
|
|
35862
35898
|
format.break = PdfLayoutBreakType.FitElement;
|
|
35863
35899
|
const layouter = this.gantt.drawGrid(pdfPage, 0, 0, format);
|
|
35864
|
-
this.gantt.drawChart(layouter
|
|
35900
|
+
this.gantt.drawChart(layouter);
|
|
35865
35901
|
if (!isMultipleExport) {
|
|
35866
35902
|
if (!this.isBlob) {
|
|
35867
35903
|
// save the PDF
|