in src/gantt.ts [1105:1146]
public static sortTasksWithParents(tasks: Task[], sortingOptions: SortingOptions): Task[] {
const sortingFunction = ((a: Task, b: Task) => {
if (a.name < b.name) {
return sortingOptions.sortingDirection === SortDirection.Ascending ? -1 : 1;
}
if (a.name > b.name) {
return sortingOptions.sortingDirection === SortDirection.Ascending ? 1 : -1;
}
return 0;
});
if (sortingOptions.isCustomSortingNeeded) {
tasks.sort(sortingFunction);
}
let index: number = 0;
tasks.forEach(task => {
if (!task.index && !task.parent) {
task.index = index++;
if (task.children) {
if (sortingOptions.isCustomSortingNeeded) {
task.children.sort(sortingFunction);
}
task.children.forEach(subtask => {
subtask.index = subtask.index === null ? index++ : subtask.index;
});
}
}
});
let resultTasks: Task[] = [];
tasks.forEach((task) => {
resultTasks[task.index] = task;
});
return resultTasks;
}