UNPKG

angular-calendar-scheduler

Version:

This project provide a scheduler view component for [mattlewis92/angular-calendar](https://github.com/mattlewis92/angular-calendar).

58 lines 11.4 kB
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 const trackByDayOrEvent = (index, event) => (event.event.id ? event.event.id : event.event); export const trackByHourColumn = (index, day) => day.hours[0] ? day.hours[0].segments[0].date.toISOString() : day; export const trackByHour = (index, hour) => hour.segments[0].date.toISOString(); export const trackByHourSegment = (index, segment) => 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) { const draggedInPixelsSnapSize = roundToNearest(movedY, eventSnapSize || hourSegmentHeight); const pixelAmountInMinutes = MINUTES_IN_HOUR / (hourSegments * hourSegmentHeight); return draggedInPixelsSnapSize * pixelAmountInMinutes; } export function isDraggedWithinPeriod(newStart, newEnd, period) { const 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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TyxDQUNILFNBQVMsQ0FBQyxRQUFRO1FBQ2xCLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSztRQUN4QixTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQy9DLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIFNjaGVkdWxlclZpZXdQZXJpb2QsXHJcbiAgICBTY2hlZHVsZXJWaWV3RXZlbnQsXHJcbiAgICBTY2hlZHVsZXJWaWV3RGF5LFxyXG4gICAgQ2FsZW5kYXJTY2hlZHVsZXJFdmVudCxcclxuICAgIFNjaGVkdWxlclZpZXdIb3VyLFxyXG4gICAgU2NoZWR1bGVyVmlld0hvdXJTZWdtZW50XHJcbn0gZnJvbSAnLi4vc2NoZWR1bGVyL21vZGVscyc7XHJcbmltcG9ydCB7XHJcbiAgICBEYXlWaWV3SG91clxyXG59IGZyb20gJ2NhbGVuZGFyLXV0aWxzJztcclxuaW1wb3J0IHtcclxuICAgIENhbGVuZGFyVmlldyxcclxuICAgIERhdGVBZGFwdGVyXHJcbn0gZnJvbSAnYW5ndWxhci1jYWxlbmRhcic7XHJcbmltcG9ydCB7IE1JTlVURVNfSU5fSE9VUiB9IGZyb20gJy4uL3NjaGVkdWxlci91dGlscy9jYWxlbmRhci1zY2hlZHVsZXItdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFBlcmlvZChkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXIsIHBlcmlvZDogQ2FsZW5kYXJWaWV3LCBkYXRlOiBEYXRlLCBhbW91bnQ6IG51bWJlcik6IERhdGUge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBkYXk6IGRhdGVBZGFwdGVyLmFkZERheXMsXHJcbiAgICAgICAgd2VlazogZGF0ZUFkYXB0ZXIuYWRkV2Vla3MsXHJcbiAgICAgICAgbW9udGg6IGRhdGVBZGFwdGVyLmFkZE1vbnRoc1xyXG4gICAgfVtwZXJpb2RdKGRhdGUsIGFtb3VudCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzdWJQZXJpb2QoZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyLCBwZXJpb2Q6IENhbGVuZGFyVmlldywgZGF0ZTogRGF0ZSwgYW1vdW50OiBudW1iZXIpOiBEYXRlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF5OiBkYXRlQWRhcHRlci5zdWJEYXlzLFxyXG4gICAgICAgIHdlZWs6IGRhdGVBZGFwdGVyLnN1YldlZWtzLFxyXG4gICAgICAgIG1vbnRoOiBkYXRlQWRhcHRlci5zdWJNb250aHNcclxuICAgIH1bcGVyaW9kXShkYXRlLCBhbW91bnQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3RhcnRPZlBlcmlvZChkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXIsIHBlcmlvZDogQ2FsZW5kYXJWaWV3LCBkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGRheTogZGF0ZUFkYXB0ZXIuc3RhcnRPZkRheSxcclxuICAgICAgICB3ZWVrOiBkYXRlQWRhcHRlci5zdGFydE9mV2VlayxcclxuICAgICAgICBtb250aDogZGF0ZUFkYXB0ZXIuc3RhcnRPZk1vbnRoXHJcbiAgICB9W3BlcmlvZF0oZGF0ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBlbmRPZlBlcmlvZChkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXIsIHBlcmlvZDogQ2FsZW5kYXJWaWV3LCBkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGRheTogZGF0ZUFkYXB0ZXIuZW5kT2ZEYXksXHJcbiAgICAgICAgd2VlazogZGF0ZUFkYXB0ZXIuZW5kT2ZXZWVrLFxyXG4gICAgICAgIG1vbnRoOiBkYXRlQWRhcHRlci5lbmRPZk1vbnRoXHJcbiAgICB9W3BlcmlvZF0oZGF0ZSk7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY29uc3QgdHJhY2tCeURheU9yRXZlbnQgPSAoaW5kZXg6IG51bWJlciwgZXZlbnQ6IFNjaGVkdWxlclZpZXdFdmVudCApID0+XHJcbiAgICAoZXZlbnQuZXZlbnQuaWQgPyBldmVudC5ldmVudC5pZCA6IGV2ZW50LmV2ZW50KTtcclxuXHJcbmV4cG9ydCBjb25zdCB0cmFja0J5SG91ckNvbHVtbiA9IChpbmRleDogbnVtYmVyLCBkYXk6IFNjaGVkdWxlclZpZXdEYXkpID0+XHJcbiAgICBkYXkuaG91cnNbMF0gPyBkYXkuaG91cnNbMF0uc2VnbWVudHNbMF0uZGF0ZS50b0lTT1N0cmluZygpIDogZGF5O1xyXG5cclxuZXhwb3J0IGNvbnN0IHRyYWNrQnlIb3VyID0gKGluZGV4OiBudW1iZXIsIGhvdXI6IERheVZpZXdIb3VyIHwgU2NoZWR1bGVyVmlld0hvdXIpID0+XHJcbiAgICBob3VyLnNlZ21lbnRzWzBdLmRhdGUudG9JU09TdHJpbmcoKTtcclxuXHJcbmV4cG9ydCBjb25zdCB0cmFja0J5SG91clNlZ21lbnQgPSAoaW5kZXg6IG51bWJlciwgc2VnbWVudDogU2NoZWR1bGVyVmlld0hvdXJTZWdtZW50KSA9PlxyXG4gICAgc2VnbWVudC5kYXRlLnRvSVNPU3RyaW5nKCk7XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE1pbmltdW1FdmVudEhlaWdodEluTWludXRlcyhob3VyU2VnbWVudHM6IG51bWJlciwgaG91clNlZ21lbnRIZWlnaHQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIChNSU5VVEVTX0lOX0hPVVIgLyAoaG91clNlZ21lbnRzICogaG91clNlZ21lbnRIZWlnaHQpKSAqIGhvdXJTZWdtZW50SGVpZ2h0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdEV2ZW50RW5kKGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlciwgZXZlbnQ6IENhbGVuZGFyU2NoZWR1bGVyRXZlbnQsIG1pbmltdW1NaW51dGVzOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIHJldHVybiBldmVudC5lbmQgPyBldmVudC5lbmQgOiBkYXRlQWRhcHRlci5hZGRNaW51dGVzKGV2ZW50LnN0YXJ0LCBtaW5pbXVtTWludXRlcyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByb3VuZFRvTmVhcmVzdChhbW91bnQ6IG51bWJlciwgcHJlY2lzaW9uOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoYW1vdW50IC8gcHJlY2lzaW9uKSAqIHByZWNpc2lvbjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE1pbnV0ZXNNb3ZlZChtb3ZlZFk6IG51bWJlciwgaG91clNlZ21lbnRzOiBudW1iZXIsIGhvdXJTZWdtZW50SGVpZ2h0OiBudW1iZXIsIGV2ZW50U25hcFNpemU6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBjb25zdCBkcmFnZ2VkSW5QaXhlbHNTbmFwU2l6ZSA9IHJvdW5kVG9OZWFyZXN0KG1vdmVkWSwgZXZlbnRTbmFwU2l6ZSB8fCBob3VyU2VnbWVudEhlaWdodCk7XHJcbiAgICBjb25zdCBwaXhlbEFtb3VudEluTWludXRlcyA9IE1JTlVURVNfSU5fSE9VUiAvIChob3VyU2VnbWVudHMgKiBob3VyU2VnbWVudEhlaWdodCk7XHJcbiAgICByZXR1cm4gZHJhZ2dlZEluUGl4ZWxzU25hcFNpemUgKiBwaXhlbEFtb3VudEluTWludXRlcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRHJhZ2dlZFdpdGhpblBlcmlvZChuZXdTdGFydDogRGF0ZSwgbmV3RW5kOiBEYXRlLCBwZXJpb2Q6IFNjaGVkdWxlclZpZXdQZXJpb2QpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGVuZCA9IG5ld0VuZCB8fCBuZXdTdGFydDtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgKHBlcmlvZC5zdGFydCA8PSBuZXdTdGFydCAmJiBuZXdTdGFydCA8PSBwZXJpb2QuZW5kKSB8fFxyXG4gICAgICAgIChwZXJpb2Quc3RhcnQgPD0gZW5kICYmIGVuZCA8PSBwZXJpb2QuZW5kKVxyXG4gICAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZEZpcmVEcm9wcGVkRXZlbnQoZHJvcEV2ZW50OiB7IGRyb3BEYXRhPzogeyBldmVudD86IENhbGVuZGFyU2NoZWR1bGVyRXZlbnQ7IGNhbGVuZGFySWQ/OiBzeW1ib2wgfSB9LCBkYXRlOiBEYXRlLCBjYWxlbmRhcklkOiBzeW1ib2wpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgZHJvcEV2ZW50LmRyb3BEYXRhICYmXHJcbiAgICAgICAgZHJvcEV2ZW50LmRyb3BEYXRhLmV2ZW50ICYmXHJcbiAgICAgICAgZHJvcEV2ZW50LmRyb3BEYXRhLmNhbGVuZGFySWQgIT09IGNhbGVuZGFySWRcclxuICAgICk7XHJcbn1cclxuIl19