Some ignored filles was missing

This commit is contained in:
Janus C. H. Knudsen 2026-02-03 00:02:25 +01:00
parent 7db22245e2
commit fd5ab6bc0d
268 changed files with 31970 additions and 4 deletions

View file

@ -0,0 +1,52 @@
/**
* OverlapDetector - Ren tidbaseret overlap detection
* Ingen DOM manipulation, kun tidsberegninger
*/
export class OverlapDetector {
/**
* Resolver hvilke events et givent event overlapper med i en kolonne
* @param event - CalendarEvent der skal checkes for overlap
* @param columnEvents - Array af CalendarEvent objekter i kolonnen
* @returns Array af events som det givne event overlapper med
*/
resolveOverlap(event, columnEvents) {
return columnEvents.filter(existingEvent => {
// To events overlapper hvis:
// event starter før existing slutter OG
// event slutter efter existing starter
return event.start < existingEvent.end && event.end > existingEvent.start;
});
}
/**
* Dekorerer events med stack linking data
* @param newEvent - Det nye event der skal tilføjes
* @param overlappingEvents - Events som det nye event overlapper med
* @returns OverlapResult med overlappende events og stack links
*/
decorateWithStackLinks(newEvent, overlappingEvents) {
const stackLinks = new Map();
if (overlappingEvents.length === 0) {
return {
overlappingEvents: [],
stackLinks
};
}
// Kombiner nyt event med eksisterende og sortér efter start tid (tidligste første)
const allEvents = [...overlappingEvents, newEvent].sort((a, b) => a.start.getTime() - b.start.getTime());
// Opret sammenhængende kæde - alle events bindes sammen
allEvents.forEach((event, index) => {
const stackLink = {
stackLevel: index,
prev: index > 0 ? allEvents[index - 1].id : undefined,
next: index < allEvents.length - 1 ? allEvents[index + 1].id : undefined
};
stackLinks.set(event.id, stackLink);
});
overlappingEvents.push(newEvent);
return {
overlappingEvents,
stackLinks
};
}
}
//# sourceMappingURL=OverlapDetector.js.map