forked from daren.hsu/line_push
37 lines
1.7 KiB
JavaScript
37 lines
1.7 KiB
JavaScript
import { parseTimestamp, getDayIdentifier, getTimestampIdentifier, OFFSET_TIME, isTimedless, updateHasTime } from './timestamp';
|
|
export function parseEvent(input, index, startProperty, endProperty, timed = false, category = false) {
|
|
const startInput = input[startProperty];
|
|
const endInput = input[endProperty];
|
|
const startParsed = parseTimestamp(startInput, true);
|
|
const endParsed = endInput ? parseTimestamp(endInput, true) : startParsed;
|
|
const start = isTimedless(startInput) ? updateHasTime(startParsed, timed) : startParsed;
|
|
const end = isTimedless(endInput) ? updateHasTime(endParsed, timed) : endParsed;
|
|
const startIdentifier = getDayIdentifier(start);
|
|
const startTimestampIdentifier = getTimestampIdentifier(start);
|
|
const endIdentifier = getDayIdentifier(end);
|
|
const endOffset = start.hasTime ? 0 : 2359;
|
|
const endTimestampIdentifier = getTimestampIdentifier(end) + endOffset;
|
|
const allDay = !start.hasTime;
|
|
return {
|
|
input,
|
|
start,
|
|
startIdentifier,
|
|
startTimestampIdentifier,
|
|
end,
|
|
endIdentifier,
|
|
endTimestampIdentifier,
|
|
allDay,
|
|
index,
|
|
category
|
|
};
|
|
}
|
|
export function isEventOn(event, dayIdentifier) {
|
|
return dayIdentifier >= event.startIdentifier && dayIdentifier <= event.endIdentifier && dayIdentifier * OFFSET_TIME !== event.endTimestampIdentifier;
|
|
}
|
|
export function isEventStart(event, day, dayIdentifier, firstWeekday) {
|
|
return dayIdentifier === event.startIdentifier || firstWeekday === day.weekday && isEventOn(event, dayIdentifier);
|
|
}
|
|
export function isEventOverlapping(event, startIdentifier, endIdentifier) {
|
|
return startIdentifier <= event.endIdentifier && endIdentifier >= event.startIdentifier;
|
|
}
|
|
//# sourceMappingURL=events.js.map
|