This commit is contained in:
Jeremy Funk 2023-03-23 22:54:58 +01:00
parent a535fe1679
commit 45c0c5fee0
2 changed files with 47 additions and 47 deletions

View File

@ -174,24 +174,24 @@
compact compact
section DB Clean section DB Clean
Clean: 12:00:00 , 10m Clean: 12:00:00, 10m
Clean: 12:30:00 , 12m Clean: 12:30:00, 12m
Clean: 13:00:00 , 8m Clean: 13:00:00, 8m
Clean: 13:30:00 , 9m Clean: 13:30:00, 9m
Clean: 14:00:00 , 13m Clean: 14:00:00, 13m
Clean: 14:30:00 , 10m Clean: 14:30:00, 10m
Clean: 15:00:00 , 11m Clean: 15:00:00, 11m
section Sessions section Sessions
A: 12:00:00 , 63m A: 12:00:00, 63m
B: 12:30:00 , 12m B: 12:30:00, 12m
C: 13:05:00 , 12m C: 13:05:00, 12m
D: 13:06:00 , 33m D: 13:06:00, 33m
E: 13:15:00 , 55m E: 13:15:00, 55m
F: 13:20:00 , 12m F: 13:20:00, 12m
G: 13:32:00 , 18m G: 13:32:00, 18m
H: 13:50:00 , 20m H: 13:50:00, 20m
I: 14:10:00 , 10m I: 14:10:00, 10m
</pre> </pre>
<hr /> <hr />

View File

@ -24,6 +24,37 @@ export const setConf = function () {
log.debug('Something is calling, setConf, remove the call'); log.debug('Something is calling, setConf, remove the call');
}; };
/**
* For this issue:
* https://github.com/mermaid-js/mermaid/issues/1618
*
* Finds the number of intersections between tasks that happen at any point in time.
* Used to figure out how many rows are needed to display the tasks when the compact
* flag is set to true.
*
* @param tasks
* @param orderOffset
*/
const getMaxIntersections = (tasks, orderOffset) => {
let timeline = [...tasks].map(() => -1);
let sorted = [...tasks].sort((a, b) => a.startTime - b.startTime || a.order - b.order);
let maxIntersections = 0;
for (const element of sorted) {
for (let j = 0; j < timeline.length; j++) {
if (element.startTime >= timeline[j]) {
timeline[j] = element.endTime;
element.order = j + orderOffset;
if (j > maxIntersections) {
maxIntersections = j;
}
break;
}
}
}
return maxIntersections;
};
let w; let w;
export const draw = function (text, id, version, diagObj) { export const draw = function (text, id, version, diagObj) {
const conf = getConfig().gantt; const conf = getConfig().gantt;
@ -704,37 +735,6 @@ export const draw = function (text, id, version, diagObj) {
} }
return result; return result;
} }
/**
* For this issue:
* https://github.com/mermaid-js/mermaid/issues/1618
*
* Finds the number of intersections between tasks that happen at any point in time.
* Used to figure out how many rows are needed to display the tasks when the compact
* flag is set to true.
*
* @param tasks
* @param orderOffset
*/
const getMaxIntersections = (tasks, orderOffset) => {
let timeline = [...tasks].map(() => -1);
let sorted = [...tasks].sort((a, b) => a.startTime - b.startTime || a.order - b.order);
let maxIntersections = 0;
for (const element of sorted) {
for (let j = 0; j < timeline.length; j++) {
if (element.startTime >= timeline[j]) {
timeline[j] = element.endTime;
element.order = j + orderOffset;
if (j > maxIntersections) {
maxIntersections = j;
}
break;
}
}
}
return maxIntersections;
};
}; };
export default { export default {