@syncfusion/ej2-gantt 19.3.53 → 19.4.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- 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 +127 -51
- package/dist/es6/ej2-gantt.es2015.js.map +1 -1
- package/dist/es6/ej2-gantt.es5.js +124 -48
- 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 +18 -18
- package/src/gantt/actions/context-menu.js +36 -15
- package/src/gantt/actions/dialog-edit.js +7 -2
- package/src/gantt/actions/edit.js +4 -0
- package/src/gantt/actions/rowdragdrop.js +2 -0
- package/src/gantt/actions/taskbar-edit.d.ts +0 -15
- package/src/gantt/actions/taskbar-edit.js +6 -24
- package/src/gantt/base/gantt.d.ts +17 -0
- package/src/gantt/base/gantt.js +32 -3
- package/src/gantt/base/task-processor.js +20 -3
- package/src/gantt/renderer/timeline.js +17 -1
- package/styles/bootstrap-dark.css +1 -1
- package/styles/bootstrap.css +1 -1
- package/styles/bootstrap4.css +1 -1
- package/styles/bootstrap5-dark.css +7 -6
- package/styles/bootstrap5.css +7 -6
- package/styles/fabric-dark.css +1 -1
- package/styles/fabric.css +1 -1
- package/styles/gantt/_bootstrap4-definition.scss +1 -0
- package/styles/gantt/_bootstrap5-definition.scss +1 -1
- package/styles/gantt/_fluent-definition.scss +163 -0
- package/styles/gantt/_layout.scss +2 -7
- package/styles/gantt/_theme.scss +2 -1
- package/styles/gantt/bootstrap-dark.css +1 -1
- package/styles/gantt/bootstrap.css +1 -1
- package/styles/gantt/bootstrap4.css +1 -1
- package/styles/gantt/bootstrap5-dark.css +7 -6
- package/styles/gantt/bootstrap5.css +7 -6
- package/styles/gantt/fabric-dark.css +1 -1
- package/styles/gantt/fabric.css +1 -1
- package/styles/gantt/highcontrast-light.css +1 -1
- package/styles/gantt/highcontrast.css +1 -1
- package/styles/gantt/icons/_fluent.scss +112 -0
- package/styles/gantt/icons/_tailwind-dark.scss +112 -112
- package/styles/gantt/material-dark.css +1 -1
- package/styles/gantt/material.css +1 -1
- package/styles/gantt/tailwind-dark.css +2 -2
- package/styles/gantt/tailwind.css +2 -2
- package/styles/highcontrast-light.css +1 -1
- package/styles/highcontrast.css +1 -1
- package/styles/material-dark.css +1 -1
- package/styles/material.css +1 -1
- package/styles/tailwind-dark.css +2 -2
- package/styles/tailwind.css +2 -2
|
@@ -2190,8 +2190,16 @@ class TaskProcessor extends DateProcessor {
|
|
|
2190
2190
|
const ganttProperties = ganttData.ganttProperties;
|
|
2191
2191
|
let duration = data[taskSettings.duration];
|
|
2192
2192
|
duration = isNullOrUndefined(duration) || duration === '' ? null : duration;
|
|
2193
|
-
|
|
2194
|
-
|
|
2193
|
+
let startDate;
|
|
2194
|
+
let endDate;
|
|
2195
|
+
if (ganttProperties.startDate && ganttProperties.endDate) {
|
|
2196
|
+
startDate = this.getDateFromFormat(ganttProperties.startDate, true);
|
|
2197
|
+
endDate = this.getDateFromFormat(ganttProperties.endDate, true);
|
|
2198
|
+
}
|
|
2199
|
+
else {
|
|
2200
|
+
startDate = this.getDateFromFormat(data[taskSettings.startDate], true);
|
|
2201
|
+
endDate = this.getDateFromFormat(data[taskSettings.endDate], true);
|
|
2202
|
+
}
|
|
2195
2203
|
const segments = taskSettings.segments ? (data[taskSettings.segments] ||
|
|
2196
2204
|
ganttData.taskData[taskSettings.segments]) : null;
|
|
2197
2205
|
const isMileStone = taskSettings.milestone ? data[taskSettings.milestone] ? true : false : false;
|
|
@@ -2790,7 +2798,10 @@ class TaskProcessor extends DateProcessor {
|
|
|
2790
2798
|
if (!isNullOrUndefined(value)) {
|
|
2791
2799
|
value = new Date(tempDate.getTime());
|
|
2792
2800
|
}
|
|
2793
|
-
this.parent.
|
|
2801
|
+
if (!this.parent.isLoad && !this.parent.isDynamicData) {
|
|
2802
|
+
this.parent.setRecordValue('taskData.' + mapping, value, task);
|
|
2803
|
+
}
|
|
2804
|
+
this.parent.isDynamicData = false;
|
|
2794
2805
|
}
|
|
2795
2806
|
getDurationInDay(duration, durationUnit) {
|
|
2796
2807
|
if (durationUnit === 'day') {
|
|
@@ -3608,8 +3619,14 @@ class TaskProcessor extends DateProcessor {
|
|
|
3608
3619
|
}
|
|
3609
3620
|
continue;
|
|
3610
3621
|
}
|
|
3611
|
-
|
|
3612
|
-
|
|
3622
|
+
let startDate = this.getValidStartDate(childData.ganttProperties);
|
|
3623
|
+
if (parentData.hasChildRecords && !ganttProp.isAutoSchedule && !isNullOrUndefined(childData.ganttProperties.autoStartDate)) {
|
|
3624
|
+
startDate = childData.ganttProperties.autoStartDate;
|
|
3625
|
+
}
|
|
3626
|
+
let endDate = this.getValidEndDate(childData.ganttProperties);
|
|
3627
|
+
if (parentData.hasChildRecords && !ganttProp.isAutoSchedule && !isNullOrUndefined(childData.ganttProperties.autoEndDate)) {
|
|
3628
|
+
endDate = childData.ganttProperties.autoEndDate;
|
|
3629
|
+
}
|
|
3613
3630
|
if (isNullOrUndefined(minStartDate)) {
|
|
3614
3631
|
minStartDate = this.getDateFromFormat(startDate);
|
|
3615
3632
|
}
|
|
@@ -6024,6 +6041,9 @@ class Timeline {
|
|
|
6024
6041
|
parentTr = this.getHeaterTemplateString(new Date(startDate.toString()), mode, tier, false, count, timelineCell);
|
|
6025
6042
|
scheduleDateCollection.push(new Date(startDate.toString()));
|
|
6026
6043
|
increment = this.getIncrement(startDate, count, mode);
|
|
6044
|
+
if (this.parent.isInDst(startDate)) {
|
|
6045
|
+
increment = increment + (1000 * 60 * 60);
|
|
6046
|
+
}
|
|
6027
6047
|
newTime = startDate.getTime() + increment;
|
|
6028
6048
|
startDate.setTime(newTime);
|
|
6029
6049
|
if (startDate >= endDate) {
|
|
@@ -6087,11 +6107,19 @@ class Timeline {
|
|
|
6087
6107
|
dayIntervel - 1 : dayIntervel : dayIntervel;
|
|
6088
6108
|
lastDay.setDate(lastDay.getDate() + (dayIntervel + (7 * count)));
|
|
6089
6109
|
increment = lastDay.getTime() - firstDay.getTime();
|
|
6110
|
+
if ((this.parent.isInDst(lastDay) && !this.parent.isInDst(firstDay)) ||
|
|
6111
|
+
(!this.parent.isInDst(lastDay) && this.parent.isInDst(firstDay))) {
|
|
6112
|
+
increment = increment - (1000 * 60 * 60);
|
|
6113
|
+
}
|
|
6090
6114
|
break;
|
|
6091
6115
|
}
|
|
6092
6116
|
case 'Day':
|
|
6093
6117
|
lastDay.setHours(24, 0, 0, 0);
|
|
6094
6118
|
increment = (lastDay.getTime() - firstDay.getTime()) + (1000 * 60 * 60 * 24 * (count - 1));
|
|
6119
|
+
if ((this.parent.isInDst(lastDay) && !this.parent.isInDst(firstDay)) ||
|
|
6120
|
+
(!this.parent.isInDst(lastDay) && this.parent.isInDst(firstDay))) {
|
|
6121
|
+
increment -= (1000 * 60 * 60);
|
|
6122
|
+
}
|
|
6095
6123
|
break;
|
|
6096
6124
|
case 'Hour':
|
|
6097
6125
|
lastDay.setMinutes(60);
|
|
@@ -6186,7 +6214,12 @@ class Timeline {
|
|
|
6186
6214
|
* @private
|
|
6187
6215
|
*/
|
|
6188
6216
|
calculateWidthBetweenTwoDate(mode, scheduleWeeks, endDate) {
|
|
6189
|
-
|
|
6217
|
+
let timeDifference = (endDate.getTime() - scheduleWeeks.getTime());
|
|
6218
|
+
if ((this.parent.isInDst(scheduleWeeks) && !this.parent.isInDst(endDate)) ||
|
|
6219
|
+
(!this.parent.isInDst(scheduleWeeks) && this.parent.isInDst(endDate))) {
|
|
6220
|
+
timeDifference = timeDifference - (1000 * 60 * 60);
|
|
6221
|
+
}
|
|
6222
|
+
const balanceDay = (timeDifference / (1000 * 60 * 60 * 24));
|
|
6190
6223
|
return balanceDay * this.parent.perDayWidth;
|
|
6191
6224
|
}
|
|
6192
6225
|
/**
|
|
@@ -11985,6 +12018,8 @@ let Gantt = class Gantt extends Component {
|
|
|
11985
12018
|
/** @hidden */
|
|
11986
12019
|
this.isExpandCollapseLevelMethod = false;
|
|
11987
12020
|
/** @hidden */
|
|
12021
|
+
this.isDynamicData = false;
|
|
12022
|
+
/** @hidden */
|
|
11988
12023
|
this.isConnectorLineUpdate = false;
|
|
11989
12024
|
/** @hidden */
|
|
11990
12025
|
this.staticSelectedRowIndex = -1;
|
|
@@ -12141,6 +12176,27 @@ let Gantt = class Gantt extends Component {
|
|
|
12141
12176
|
return ganttDateFormat;
|
|
12142
12177
|
}
|
|
12143
12178
|
}
|
|
12179
|
+
/**
|
|
12180
|
+
* To get timezone offset.
|
|
12181
|
+
*
|
|
12182
|
+
* @returns {number} .
|
|
12183
|
+
* @private
|
|
12184
|
+
*/
|
|
12185
|
+
getDefaultTZOffset() {
|
|
12186
|
+
const janMonth = new Date(new Date().getFullYear(), 0, 1);
|
|
12187
|
+
const julMonth = new Date(new Date().getFullYear(), 6, 1); //Because there is no reagions DST inbetwwen this range
|
|
12188
|
+
return Math.max(janMonth.getTimezoneOffset(), julMonth.getTimezoneOffset());
|
|
12189
|
+
}
|
|
12190
|
+
/**
|
|
12191
|
+
* To check whether the date is in DST.
|
|
12192
|
+
*
|
|
12193
|
+
* @param {Date} date .
|
|
12194
|
+
* @returns {boolean} .
|
|
12195
|
+
* @private
|
|
12196
|
+
*/
|
|
12197
|
+
isInDst(date) {
|
|
12198
|
+
return date.getTimezoneOffset() < this.getDefaultTZOffset();
|
|
12199
|
+
}
|
|
12144
12200
|
/**
|
|
12145
12201
|
* Method to map resource fields.
|
|
12146
12202
|
*
|
|
@@ -12272,6 +12328,8 @@ let Gantt = class Gantt extends Component {
|
|
|
12272
12328
|
renderGantt(isChange) {
|
|
12273
12329
|
// predecessor calculation
|
|
12274
12330
|
if (this.predecessorModule && this.taskFields.dependency) {
|
|
12331
|
+
this.predecessorModule['parentIds'] = [];
|
|
12332
|
+
this.predecessorModule['parentRecord'] = [];
|
|
12275
12333
|
this.predecessorModule.updatePredecessors();
|
|
12276
12334
|
if (this.isInPredecessorValidation && this.enableValidation) {
|
|
12277
12335
|
this.predecessorModule.updatedRecordsDateByPredecessor();
|
|
@@ -12291,7 +12349,7 @@ let Gantt = class Gantt extends Component {
|
|
|
12291
12349
|
this.treeGrid.dataSource = { result: this.flatData, count: count };
|
|
12292
12350
|
}
|
|
12293
12351
|
else {
|
|
12294
|
-
this.treeGrid.dataSource = this.flatData
|
|
12352
|
+
this.treeGrid.dataSource = this.flatData;
|
|
12295
12353
|
}
|
|
12296
12354
|
}
|
|
12297
12355
|
else {
|
|
@@ -14337,6 +14395,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14337
14395
|
* @public
|
|
14338
14396
|
*/
|
|
14339
14397
|
updateDataSource(dataSource, args) {
|
|
14398
|
+
this.isDynamicData = true;
|
|
14340
14399
|
if (!isNullOrUndefined(args)) {
|
|
14341
14400
|
for (let prop of Object.keys(args)) { // eslint-disable-line
|
|
14342
14401
|
switch (prop) {
|
|
@@ -14539,12 +14598,15 @@ let Gantt = class Gantt extends Component {
|
|
|
14539
14598
|
if (!isNullOrUndefined(rowData)) {
|
|
14540
14599
|
const data = extend({}, {}, rowData.taskData, true);
|
|
14541
14600
|
const taskfields = this.taskFields;
|
|
14601
|
+
if (data[taskfields.startDate]) {
|
|
14602
|
+
this.setRecordValue(taskfields.startDate, rowData.ganttProperties.startDate, data, true);
|
|
14603
|
+
}
|
|
14542
14604
|
if (!isNullOrUndefined(taskfields.duration)) {
|
|
14543
14605
|
data[taskfields.duration] = 0;
|
|
14544
14606
|
}
|
|
14545
14607
|
else {
|
|
14546
|
-
data[taskfields.startDate] = new Date(rowData.
|
|
14547
|
-
data[taskfields.endDate] = new Date(rowData.
|
|
14608
|
+
data[taskfields.startDate] = new Date(rowData.ganttProperties.startDate);
|
|
14609
|
+
data[taskfields.endDate] = new Date(rowData.ganttProperties.endDate);
|
|
14548
14610
|
}
|
|
14549
14611
|
if (!isNullOrUndefined(taskfields.milestone)) {
|
|
14550
14612
|
if (data[taskfields.milestone] === false) {
|
|
@@ -16320,8 +16382,11 @@ class TaskbarEdit extends DateProcessor {
|
|
|
16320
16382
|
if (this.isMouseDragged && this.taskBarEditAction) {
|
|
16321
16383
|
const args = {
|
|
16322
16384
|
cancel: false,
|
|
16323
|
-
requestType: '
|
|
16385
|
+
requestType: 'taskbarediting'
|
|
16324
16386
|
};
|
|
16387
|
+
if (this.segmentIndex !== -1) {
|
|
16388
|
+
args.requestType = 'mergeSegment';
|
|
16389
|
+
}
|
|
16325
16390
|
this.parent.trigger('actionBegin', args, (arg) => {
|
|
16326
16391
|
if (arg.cancel === false) {
|
|
16327
16392
|
this.taskBarEditingAction(event, false);
|
|
@@ -17146,36 +17211,15 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17146
17211
|
const tierMode = this.parent.timelineModule.bottomTier !== 'None' ? this.parent.timelineModule.topTier :
|
|
17147
17212
|
this.parent.timelineModule.bottomTier;
|
|
17148
17213
|
if (tierMode !== 'Hour' && tierMode !== 'Minutes') {
|
|
17149
|
-
if (this.isInDst(new Date(this.parent.timelineModule.timelineStartDate.toString())) && !this.isInDst(pStartDate)) {
|
|
17214
|
+
if (this.parent.isInDst(new Date(this.parent.timelineModule.timelineStartDate.toString())) && !this.parent.isInDst(pStartDate)) {
|
|
17150
17215
|
pStartDate.setTime(pStartDate.getTime() + (60 * 60 * 1000));
|
|
17151
17216
|
}
|
|
17152
|
-
else if (!this.isInDst(new Date(this.parent.timelineModule.timelineStartDate.toString())) && this.isInDst(pStartDate)) {
|
|
17217
|
+
else if (!this.parent.isInDst(new Date(this.parent.timelineModule.timelineStartDate.toString())) && this.parent.isInDst(pStartDate)) {
|
|
17153
17218
|
pStartDate.setTime(pStartDate.getTime() - (60 * 60 * 1000));
|
|
17154
17219
|
}
|
|
17155
17220
|
}
|
|
17156
17221
|
return pStartDate;
|
|
17157
17222
|
}
|
|
17158
|
-
/**
|
|
17159
|
-
* To get timezone offset.
|
|
17160
|
-
*
|
|
17161
|
-
* @returns {number} .
|
|
17162
|
-
* @private
|
|
17163
|
-
*/
|
|
17164
|
-
getDefaultTZOffset() {
|
|
17165
|
-
const janMonth = new Date(new Date().getFullYear(), 0, 1);
|
|
17166
|
-
const julMonth = new Date(new Date().getFullYear(), 6, 1); //Because there is no reagions DST inbetwwen this range
|
|
17167
|
-
return Math.max(janMonth.getTimezoneOffset(), julMonth.getTimezoneOffset());
|
|
17168
|
-
}
|
|
17169
|
-
/**
|
|
17170
|
-
* To check whether the date is in DST.
|
|
17171
|
-
*
|
|
17172
|
-
* @param {Date} date .
|
|
17173
|
-
* @returns {boolean} .
|
|
17174
|
-
* @private
|
|
17175
|
-
*/
|
|
17176
|
-
isInDst(date) {
|
|
17177
|
-
return date.getTimezoneOffset() < this.getDefaultTZOffset();
|
|
17178
|
-
}
|
|
17179
17223
|
/**
|
|
17180
17224
|
* To set item position.
|
|
17181
17225
|
*
|
|
@@ -17773,7 +17817,8 @@ class DialogEdit {
|
|
|
17773
17817
|
datetimepickeredit: DateTimePicker,
|
|
17774
17818
|
maskededit: MaskedTextBox,
|
|
17775
17819
|
numericedit: NumericTextBox,
|
|
17776
|
-
stringedit: TextBox
|
|
17820
|
+
stringedit: TextBox,
|
|
17821
|
+
defaultedit: TextBox
|
|
17777
17822
|
};
|
|
17778
17823
|
this.processDialogFields();
|
|
17779
17824
|
this.wireEvents();
|
|
@@ -18425,6 +18470,7 @@ class DialogEdit {
|
|
|
18425
18470
|
fieldsModel[column.field] = checkboxModel;
|
|
18426
18471
|
break;
|
|
18427
18472
|
}
|
|
18473
|
+
case 'defaultedit':
|
|
18428
18474
|
case 'stringedit':
|
|
18429
18475
|
{
|
|
18430
18476
|
const textBox = common;
|
|
@@ -18818,7 +18864,7 @@ class DialogEdit {
|
|
|
18818
18864
|
const datePickerModel = this.beforeOpenArgs[generalTabString][this.parent.taskFields[fields[i]]];
|
|
18819
18865
|
const value = args.rowData[args.column.field];
|
|
18820
18866
|
setValue('value', value, datePickerModel);
|
|
18821
|
-
const datePicker = new
|
|
18867
|
+
const datePicker = new this.inputs[this.parent.columnByField[this.parent.taskFields[fields[i]]].editType](datePickerModel);
|
|
18822
18868
|
datePicker.appendTo(args.element);
|
|
18823
18869
|
},
|
|
18824
18870
|
read: (args) => {
|
|
@@ -19690,6 +19736,9 @@ class DialogEdit {
|
|
|
19690
19736
|
this.rowData.ganttProperties.segments = dataSource;
|
|
19691
19737
|
this.parent.setRecordValue('segments', this.parent.dataOperation.setSegmentsInfo(this.rowData, false), this.rowData.ganttProperties, true);
|
|
19692
19738
|
this.parent.setRecordValue('taskData.' + this.parent.taskFields.segments, userData, this.rowData);
|
|
19739
|
+
if (dataSource.length <= 0) {
|
|
19740
|
+
this.validateDuration(this.rowData);
|
|
19741
|
+
}
|
|
19693
19742
|
}
|
|
19694
19743
|
}
|
|
19695
19744
|
// eslint-disable-next-line
|
|
@@ -23102,8 +23151,11 @@ class Edit$2 {
|
|
|
23102
23151
|
*/
|
|
23103
23152
|
updateRealDataSource(addedRecord, rowPosition) {
|
|
23104
23153
|
const taskFields = this.parent.taskFields;
|
|
23105
|
-
|
|
23154
|
+
let dataSource = isCountRequired(this.parent) ? getValue('result', this.parent.dataSource) :
|
|
23106
23155
|
this.parent.dataSource;
|
|
23156
|
+
if (this.parent.dataSource instanceof DataManager) {
|
|
23157
|
+
dataSource = this.parent.dataSource.dataSource.json;
|
|
23158
|
+
}
|
|
23107
23159
|
for (let i = 0; i < addedRecord.length; i++) {
|
|
23108
23160
|
if (isNullOrUndefined(rowPosition) || isNullOrUndefined(this.addRowSelectedItem)) {
|
|
23109
23161
|
rowPosition = 'Top';
|
|
@@ -23175,6 +23227,7 @@ class Edit$2 {
|
|
|
23175
23227
|
*/
|
|
23176
23228
|
addRecord(data, rowPosition, rowIndex) {
|
|
23177
23229
|
if (this.parent.editModule && this.parent.editSettings.allowAdding) {
|
|
23230
|
+
this.parent.isDynamicData = true;
|
|
23178
23231
|
const cAddedRecord = [];
|
|
23179
23232
|
if (isNullOrUndefined(data)) {
|
|
23180
23233
|
this.validateTaskPosition(data, rowPosition, rowIndex, cAddedRecord);
|
|
@@ -25924,6 +25977,12 @@ class ContextMenu$2 {
|
|
|
25924
25977
|
position = this.item;
|
|
25925
25978
|
data = extend({}, {}, this.rowData.taskData, true);
|
|
25926
25979
|
taskfields = this.parent.taskFields;
|
|
25980
|
+
if (data[taskfields.startDate]) {
|
|
25981
|
+
this.parent.setRecordValue(taskfields.startDate, this.rowData.ganttProperties.startDate, data, true);
|
|
25982
|
+
}
|
|
25983
|
+
if (data[taskfields.endDate]) {
|
|
25984
|
+
this.parent.setRecordValue(taskfields.endDate, this.rowData.ganttProperties.endDate, data, true);
|
|
25985
|
+
}
|
|
25927
25986
|
if (!isNullOrUndefined(taskfields.dependency)) {
|
|
25928
25987
|
data[taskfields.dependency] = null;
|
|
25929
25988
|
}
|
|
@@ -26113,7 +26172,12 @@ class ContextMenu$2 {
|
|
|
26113
26172
|
for (const item of args.items) {
|
|
26114
26173
|
// let target: EventTarget = target;
|
|
26115
26174
|
if (!item.separator) {
|
|
26116
|
-
this.
|
|
26175
|
+
if ((target.classList.contains('e-gantt-unscheduled-taskbar')) && ((item.text === this.getLocale('splitTask')) || (item.text === this.getLocale('mergeTask')))) {
|
|
26176
|
+
this.hideItems.push(item.text);
|
|
26177
|
+
}
|
|
26178
|
+
else {
|
|
26179
|
+
this.updateItemStatus(item, target, rowIndex);
|
|
26180
|
+
}
|
|
26117
26181
|
}
|
|
26118
26182
|
}
|
|
26119
26183
|
args.rowData = this.rowData;
|
|
@@ -26225,24 +26289,34 @@ class ContextMenu$2 {
|
|
|
26225
26289
|
break;
|
|
26226
26290
|
case 'Indent':
|
|
26227
26291
|
{
|
|
26228
|
-
|
|
26229
|
-
|
|
26230
|
-
|
|
26231
|
-
|
|
26232
|
-
|
|
26233
|
-
this.parent.
|
|
26234
|
-
|
|
26292
|
+
if (!this.parent.allowSelection) {
|
|
26293
|
+
this.hideItems.push(item.text);
|
|
26294
|
+
}
|
|
26295
|
+
else {
|
|
26296
|
+
const index = this.parent.selectedRowIndex;
|
|
26297
|
+
const isSelected = this.parent.selectionModule ? this.parent.selectionModule.selectedRowIndexes.length === 1 ||
|
|
26298
|
+
this.parent.selectionModule.getSelectedRowCellIndexes().length === 1 ? true : false : false;
|
|
26299
|
+
const prevRecord = this.parent.updatedRecords[this.parent.selectionModule.getSelectedRowIndexes()[0] - 1];
|
|
26300
|
+
if (!this.parent.editSettings.allowEditing || index === 0 || index === -1 || !isSelected ||
|
|
26301
|
+
this.parent.viewType === 'ResourceView' || this.parent.updatedRecords[index].level - prevRecord.level === 1) {
|
|
26302
|
+
this.updateItemVisibility(item.text);
|
|
26303
|
+
}
|
|
26235
26304
|
}
|
|
26236
26305
|
break;
|
|
26237
26306
|
}
|
|
26238
26307
|
case 'Outdent':
|
|
26239
26308
|
{
|
|
26240
|
-
|
|
26241
|
-
|
|
26242
|
-
|
|
26243
|
-
|
|
26244
|
-
|
|
26245
|
-
this.
|
|
26309
|
+
if (!this.parent.allowSelection) {
|
|
26310
|
+
this.hideItems.push(item.text);
|
|
26311
|
+
}
|
|
26312
|
+
else {
|
|
26313
|
+
const ind = this.parent.selectionModule.getSelectedRowIndexes()[0];
|
|
26314
|
+
const isSelect = this.parent.selectionModule ? this.parent.selectionModule.selectedRowIndexes.length === 1 ||
|
|
26315
|
+
this.parent.selectionModule.getSelectedRowCellIndexes().length === 1 ? true : false : false;
|
|
26316
|
+
if (!this.parent.editSettings.allowEditing || ind === -1 || ind === 0 || !isSelect ||
|
|
26317
|
+
this.parent.viewType === 'ResourceView' || this.parent.updatedRecords[ind].level === 0) {
|
|
26318
|
+
this.updateItemVisibility(item.text);
|
|
26319
|
+
}
|
|
26246
26320
|
}
|
|
26247
26321
|
break;
|
|
26248
26322
|
}
|
|
@@ -26305,7 +26379,7 @@ class ContextMenu$2 {
|
|
|
26305
26379
|
}
|
|
26306
26380
|
contextMenuOpen(args) {
|
|
26307
26381
|
this.isOpen = true;
|
|
26308
|
-
const firstMenuItem = args.element.querySelectorAll('li:not(.e-menu-hide)')[0];
|
|
26382
|
+
const firstMenuItem = args.element.querySelectorAll('li:not(.e-menu-hide):not(.e-disabled)')[0];
|
|
26309
26383
|
addClass([firstMenuItem], 'e-focused');
|
|
26310
26384
|
}
|
|
26311
26385
|
getMenuItems() {
|
|
@@ -27112,6 +27186,7 @@ class RowDD$1 {
|
|
|
27112
27186
|
else {
|
|
27113
27187
|
const level = 1;
|
|
27114
27188
|
draggedRecord.level = droppedRecord.level + 1;
|
|
27189
|
+
this.parent.setRecordValue('level', this.draggedRecord.level, this.draggedRecord);
|
|
27115
27190
|
this.updateChildRecordLevel(draggedRecord, level);
|
|
27116
27191
|
}
|
|
27117
27192
|
droppedRecord.expanded = true;
|
|
@@ -27196,6 +27271,7 @@ class RowDD$1 {
|
|
|
27196
27271
|
parentData = this.parent.treeGrid[id][record.parentItem.uniqueID];
|
|
27197
27272
|
}
|
|
27198
27273
|
currentRecord.level = record.parentItem ? parentData.level + level : record.level + 1;
|
|
27274
|
+
this.parent.setRecordValue('level', currentRecord.level, currentRecord);
|
|
27199
27275
|
if (currentRecord.hasChildRecords) {
|
|
27200
27276
|
level--;
|
|
27201
27277
|
level = this.updateChildRecordLevel(currentRecord, level);
|