angular-calendar-scheduler
Version:
This project provide a scheduler view component for [mattlewis92/angular-calendar](https://github.com/mattlewis92/angular-calendar).
66 lines • 11.5 kB
JavaScript
import { MINUTES_IN_HOUR } from '../scheduler/utils/calendar-scheduler-utils';
export function addPeriod(dateAdapter, period, date, amount) {
return {
day: dateAdapter.addDays,
week: dateAdapter.addWeeks,
month: dateAdapter.addMonths
}[period](date, amount);
}
export function subPeriod(dateAdapter, period, date, amount) {
return {
day: dateAdapter.subDays,
week: dateAdapter.subWeeks,
month: dateAdapter.subMonths
}[period](date, amount);
}
export function startOfPeriod(dateAdapter, period, date) {
return {
day: dateAdapter.startOfDay,
week: dateAdapter.startOfWeek,
month: dateAdapter.startOfMonth
}[period](date);
}
export function endOfPeriod(dateAdapter, period, date) {
return {
day: dateAdapter.endOfDay,
week: dateAdapter.endOfWeek,
month: dateAdapter.endOfMonth
}[period](date);
}
export var trackByDayOrEvent = function (index, event) {
return (event.event.id ? event.event.id : event.event);
};
export var trackByHourColumn = function (index, day) {
return day.hours[0] ? day.hours[0].segments[0].date.toISOString() : day;
};
export var trackByHour = function (index, hour) {
return hour.segments[0].date.toISOString();
};
export var trackByHourSegment = function (index, segment) {
return segment.date.toISOString();
};
export function getMinimumEventHeightInMinutes(hourSegments, hourSegmentHeight) {
return (MINUTES_IN_HOUR / (hourSegments * hourSegmentHeight)) * hourSegmentHeight;
}
export function getDefaultEventEnd(dateAdapter, event, minimumMinutes) {
return event.end ? event.end : dateAdapter.addMinutes(event.start, minimumMinutes);
}
export function roundToNearest(amount, precision) {
return Math.round(amount / precision) * precision;
}
export function getMinutesMoved(movedY, hourSegments, hourSegmentHeight, eventSnapSize) {
var draggedInPixelsSnapSize = roundToNearest(movedY, eventSnapSize || hourSegmentHeight);
var pixelAmountInMinutes = MINUTES_IN_HOUR / (hourSegments * hourSegmentHeight);
return draggedInPixelsSnapSize * pixelAmountInMinutes;
}
export function isDraggedWithinPeriod(newStart, newEnd, period) {
var end = newEnd || newStart;
return ((period.start <= newStart && newStart <= period.end) ||
(period.start <= end && end <= period.end));
}
export function shouldFireDroppedEvent(dropEvent, date, calendarId) {
return (dropEvent.dropData &&
dropEvent.dropData.event &&
dropEvent.dropData.calendarId !== calendarId);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWNhbGVuZGFyLXNjaGVkdWxlci8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvY29tbW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUU5RSxNQUFNLFVBQVUsU0FBUyxDQUFDLFdBQXdCLEVBQUUsTUFBb0IsRUFBRSxJQUFVLEVBQUUsTUFBYztJQUNoRyxPQUFPO1FBQ0gsR0FBRyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1FBQ3hCLElBQUksRUFBRSxXQUFXLENBQUMsUUFBUTtRQUMxQixLQUFLLEVBQUUsV0FBVyxDQUFDLFNBQVM7S0FDL0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsV0FBd0IsRUFBRSxNQUFvQixFQUFFLElBQVUsRUFBRSxNQUFjO0lBQ2hHLE9BQU87UUFDSCxHQUFHLEVBQUUsV0FBVyxDQUFDLE9BQU87UUFDeEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxRQUFRO1FBQzFCLEtBQUssRUFBRSxXQUFXLENBQUMsU0FBUztLQUMvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxXQUF3QixFQUFFLE1BQW9CLEVBQUUsSUFBVTtJQUNwRixPQUFPO1FBQ0gsR0FBRyxFQUFFLFdBQVcsQ0FBQyxVQUFVO1FBQzNCLElBQUksRUFBRSxXQUFXLENBQUMsV0FBVztRQUM3QixLQUFLLEVBQUUsV0FBVyxDQUFDLFlBQVk7S0FDbEMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxXQUF3QixFQUFFLE1BQW9CLEVBQUUsSUFBVTtJQUNs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QUUsSUFBVSxFQUFFLFVBQWtCO0lBQ3BKLE9BQU8sQ0FDSCxTQUFTLENBQUMsUUFBUTtRQUNsQixTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUs7UUFDeEIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUMvQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBTY2hlZHVsZXJWaWV3UGVyaW9kLFxyXG4gICAgU2NoZWR1bGVyVmlld0V2ZW50LFxyXG4gICAgU2NoZWR1bGVyVmlld0RheSxcclxuICAgIENhbGVuZGFyU2NoZWR1bGVyRXZlbnQsXHJcbiAgICBTY2hlZHVsZXJWaWV3SG91cixcclxuICAgIFNjaGVkdWxlclZpZXdIb3VyU2VnbWVudFxyXG59IGZyb20gJy4uL3NjaGVkdWxlci9tb2RlbHMnO1xyXG5pbXBvcnQge1xyXG4gICAgRGF5Vmlld0hvdXJcclxufSBmcm9tICdjYWxlbmRhci11dGlscyc7XHJcbmltcG9ydCB7XHJcbiAgICBDYWxlbmRhclZpZXcsXHJcbiAgICBEYXRlQWRhcHRlclxyXG59IGZyb20gJ2FuZ3VsYXItY2FsZW5kYXInO1xyXG5pbXBvcnQgeyBNSU5VVEVTX0lOX0hPVVIgfSBmcm9tICcuLi9zY2hlZHVsZXIvdXRpbHMvY2FsZW5kYXItc2NoZWR1bGVyLXV0aWxzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRQZXJpb2QoZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyLCBwZXJpb2Q6IENhbGVuZGFyVmlldywgZGF0ZTogRGF0ZSwgYW1vdW50OiBudW1iZXIpOiBEYXRlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF5OiBkYXRlQWRhcHRlci5hZGREYXlzLFxyXG4gICAgICAgIHdlZWs6IGRhdGVBZGFwdGVyLmFkZFdlZWtzLFxyXG4gICAgICAgIG1vbnRoOiBkYXRlQWRhcHRlci5hZGRNb250aHNcclxuICAgIH1bcGVyaW9kXShkYXRlLCBhbW91bnQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3ViUGVyaW9kKGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlciwgcGVyaW9kOiBDYWxlbmRhclZpZXcsIGRhdGU6IERhdGUsIGFtb3VudDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGRheTogZGF0ZUFkYXB0ZXIuc3ViRGF5cyxcclxuICAgICAgICB3ZWVrOiBkYXRlQWRhcHRlci5zdWJXZWVrcyxcclxuICAgICAgICBtb250aDogZGF0ZUFkYXB0ZXIuc3ViTW9udGhzXHJcbiAgICB9W3BlcmlvZF0oZGF0ZSwgYW1vdW50KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHN0YXJ0T2ZQZXJpb2QoZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyLCBwZXJpb2Q6IENhbGVuZGFyVmlldywgZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBkYXk6IGRhdGVBZGFwdGVyLnN0YXJ0T2ZEYXksXHJcbiAgICAgICAgd2VlazogZGF0ZUFkYXB0ZXIuc3RhcnRPZldlZWssXHJcbiAgICAgICAgbW9udGg6IGRhdGVBZGFwdGVyLnN0YXJ0T2ZNb250aFxyXG4gICAgfVtwZXJpb2RdKGRhdGUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZW5kT2ZQZXJpb2QoZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyLCBwZXJpb2Q6IENhbGVuZGFyVmlldywgZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBkYXk6IGRhdGVBZGFwdGVyLmVuZE9mRGF5LFxyXG4gICAgICAgIHdlZWs6IGRhdGVBZGFwdGVyLmVuZE9mV2VlayxcclxuICAgICAgICBtb250aDogZGF0ZUFkYXB0ZXIuZW5kT2ZNb250aFxyXG4gICAgfVtwZXJpb2RdKGRhdGUpO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHRyYWNrQnlEYXlPckV2ZW50ID0gKGluZGV4OiBudW1iZXIsIGV2ZW50OiBTY2hlZHVsZXJWaWV3RXZlbnQgKSA9PlxyXG4gICAgKGV2ZW50LmV2ZW50LmlkID8gZXZlbnQuZXZlbnQuaWQgOiBldmVudC5ldmVudCk7XHJcblxyXG5leHBvcnQgY29uc3QgdHJhY2tCeUhvdXJDb2x1bW4gPSAoaW5kZXg6IG51bWJlciwgZGF5OiBTY2hlZHVsZXJWaWV3RGF5KSA9PlxyXG4gICAgZGF5LmhvdXJzWzBdID8gZGF5LmhvdXJzWzBdLnNlZ21lbnRzWzBdLmRhdGUudG9JU09TdHJpbmcoKSA6IGRheTtcclxuXHJcbmV4cG9ydCBjb25zdCB0cmFja0J5SG91ciA9IChpbmRleDogbnVtYmVyLCBob3VyOiBEYXlWaWV3SG91ciB8IFNjaGVkdWxlclZpZXdIb3VyKSA9PlxyXG4gICAgaG91ci5zZWdtZW50c1swXS5kYXRlLnRvSVNPU3RyaW5nKCk7XHJcblxyXG5leHBvcnQgY29uc3QgdHJhY2tCeUhvdXJTZWdtZW50ID0gKGluZGV4OiBudW1iZXIsIHNlZ21lbnQ6IFNjaGVkdWxlclZpZXdIb3VyU2VnbWVudCkgPT5cclxuICAgIHNlZ21lbnQuZGF0ZS50b0lTT1N0cmluZygpO1xyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRNaW5pbXVtRXZlbnRIZWlnaHRJbk1pbnV0ZXMoaG91clNlZ21lbnRzOiBudW1iZXIsIGhvdXJTZWdtZW50SGVpZ2h0OiBudW1iZXIpIHtcclxuICAgIHJldHVybiAoTUlOVVRFU19JTl9IT1VSIC8gKGhvdXJTZWdtZW50cyAqIGhvdXJTZWdtZW50SGVpZ2h0KSkgKiBob3VyU2VnbWVudEhlaWdodDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRFdmVudEVuZChkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXIsIGV2ZW50OiBDYWxlbmRhclNjaGVkdWxlckV2ZW50LCBtaW5pbXVtTWludXRlczogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gZXZlbnQuZW5kID8gZXZlbnQuZW5kIDogZGF0ZUFkYXB0ZXIuYWRkTWludXRlcyhldmVudC5zdGFydCwgbWluaW11bU1pbnV0ZXMpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcm91bmRUb05lYXJlc3QoYW1vdW50OiBudW1iZXIsIHByZWNpc2lvbjogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLnJvdW5kKGFtb3VudCAvIHByZWNpc2lvbikgKiBwcmVjaXNpb247XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRNaW51dGVzTW92ZWQobW92ZWRZOiBudW1iZXIsIGhvdXJTZWdtZW50czogbnVtYmVyLCBob3VyU2VnbWVudEhlaWdodDogbnVtYmVyLCBldmVudFNuYXBTaXplOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgY29uc3QgZHJhZ2dlZEluUGl4ZWxzU25hcFNpemUgPSByb3VuZFRvTmVhcmVzdChtb3ZlZFksIGV2ZW50U25hcFNpemUgfHwgaG91clNlZ21lbnRIZWlnaHQpO1xyXG4gICAgY29uc3QgcGl4ZWxBbW91bnRJbk1pbnV0ZXMgPSBNSU5VVEVTX0lOX0hPVVIgLyAoaG91clNlZ21lbnRzICogaG91clNlZ21lbnRIZWlnaHQpO1xyXG4gICAgcmV0dXJuIGRyYWdnZWRJblBpeGVsc1NuYXBTaXplICogcGl4ZWxBbW91bnRJbk1pbnV0ZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0RyYWdnZWRXaXRoaW5QZXJpb2QobmV3U3RhcnQ6IERhdGUsIG5ld0VuZDogRGF0ZSwgcGVyaW9kOiBTY2hlZHVsZXJWaWV3UGVyaW9kKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBlbmQgPSBuZXdFbmQgfHwgbmV3U3RhcnQ7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIChwZXJpb2Quc3RhcnQgPD0gbmV3U3RhcnQgJiYgbmV3U3RhcnQgPD0gcGVyaW9kLmVuZCkgfHxcclxuICAgICAgICAocGVyaW9kLnN0YXJ0IDw9IGVuZCAmJiBlbmQgPD0gcGVyaW9kLmVuZClcclxuICAgICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRGaXJlRHJvcHBlZEV2ZW50KGRyb3BFdmVudDogeyBkcm9wRGF0YT86IHsgZXZlbnQ/OiBDYWxlbmRhclNjaGVkdWxlckV2ZW50OyBjYWxlbmRhcklkPzogc3ltYm9sIH0gfSwgZGF0ZTogRGF0ZSwgY2FsZW5kYXJJZDogc3ltYm9sKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIGRyb3BFdmVudC5kcm9wRGF0YSAmJlxyXG4gICAgICAgIGRyb3BFdmVudC5kcm9wRGF0YS5ldmVudCAmJlxyXG4gICAgICAgIGRyb3BFdmVudC5kcm9wRGF0YS5jYWxlbmRhcklkICE9PSBjYWxlbmRhcklkXHJcbiAgICApO1xyXG59XHJcbiJdfQ==