UNPKG

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
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==