angular-calendar-timeline
Version:
A timeline for angular that shows events on a timeline board in different modes: days, weeks, and months.
33 lines • 5.33 kB
JavaScript
import { __decorate } from "tslib";
import { DatesCacheDecorator } from '../helpers/cache';
import { DateHelpers, MillisecondsToTime } from "../helpers/date-helpers";
import { BaseViewModeAdaptor } from "./base-view-mode-adaptor";
export class DaysViewModeAdaptor extends BaseViewModeAdaptor {
getUniqueColumnsWithinRange(start, end) {
const startDate = new Date(start.getFullYear(), start.getMonth(), start.getDate());
const endDate = new Date(end.getFullYear(), end.getMonth(), end.getDate());
return Math.round(Math.abs((startDate.getTime() - endDate.getTime()) / MillisecondsToTime.Day)) + 1;
}
getDurationInColumns(startDate, endDate) {
return Math.abs((startDate.getTime() - endDate.getTime()) / MillisecondsToTime.Day);
}
addColumnToDate(date, days) {
const newDate = new Date(date);
newDate.setDate(date.getDate() + days);
newDate.setHours(newDate.getHours() + ((days % 1) * 24));
return newDate;
}
getEndingDateOfColumn(date) {
return DateHelpers.dayEndingTime(date);
}
getBeginningDateOfColumn(date) {
return DateHelpers.dayBeginningTime(date);
}
}
__decorate([
DatesCacheDecorator()
], DaysViewModeAdaptor.prototype, "getUniqueColumnsWithinRange", null);
__decorate([
DatesCacheDecorator()
], DaysViewModeAdaptor.prototype, "getDurationInColumns", null);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cy12aWV3LW1vZGUtYWRhcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY2FsZW5kYXItdGltZWxpbmUvc3JjL2xpYi92aWV3LW1vZGUtYWRhcHRvci9kYXlzLXZpZXctbW9kZS1hZGFwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFHOUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLG1CQUFtQjtJQUUxRCwyQkFBMkIsQ0FBQyxLQUFXLEVBQUUsR0FBUztRQUNoRCxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFM0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUdELG9CQUFvQixDQUFDLFNBQWUsRUFBRSxPQUFhO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVUsRUFBRSxJQUFZO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV6RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBVTtRQUM5QixPQUFPLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELHdCQUF3QixDQUFDLElBQVU7UUFDakMsT0FBTyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBM0JDO0lBREMsbUJBQW1CLEVBQUU7c0VBTXJCO0FBR0Q7SUFEQyxtQkFBbUIsRUFBRTsrREFHckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlc0NhY2hlRGVjb3JhdG9yIH0gZnJvbSAnLi4vaGVscGVycy9jYWNoZSc7XHJcbmltcG9ydCB7IERhdGVIZWxwZXJzLCBNaWxsaXNlY29uZHNUb1RpbWUgfSBmcm9tIFwiLi4vaGVscGVycy9kYXRlLWhlbHBlcnNcIjtcclxuaW1wb3J0IHsgQmFzZVZpZXdNb2RlQWRhcHRvcn0gZnJvbSBcIi4vYmFzZS12aWV3LW1vZGUtYWRhcHRvclwiO1xyXG5pbXBvcnQgeyBJVmlld01vZGVBZGFwdG9yIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIERheXNWaWV3TW9kZUFkYXB0b3IgZXh0ZW5kcyBCYXNlVmlld01vZGVBZGFwdG9yIGltcGxlbWVudHMgSVZpZXdNb2RlQWRhcHRvciB7XHJcbiAgQERhdGVzQ2FjaGVEZWNvcmF0b3IoKVxyXG4gIGdldFVuaXF1ZUNvbHVtbnNXaXRoaW5SYW5nZShzdGFydDogRGF0ZSwgZW5kOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHN0YXJ0LmdldEZ1bGxZZWFyKCksIHN0YXJ0LmdldE1vbnRoKCksIHN0YXJ0LmdldERhdGUoKSk7XHJcbiAgICBjb25zdCBlbmREYXRlID0gbmV3IERhdGUoZW5kLmdldEZ1bGxZZWFyKCksIGVuZC5nZXRNb250aCgpLCBlbmQuZ2V0RGF0ZSgpKTtcclxuXHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZChNYXRoLmFicygoc3RhcnREYXRlLmdldFRpbWUoKSAtIGVuZERhdGUuZ2V0VGltZSgpKSAvIE1pbGxpc2Vjb25kc1RvVGltZS5EYXkpKSArIDE7XHJcbiAgfVxyXG5cclxuICBARGF0ZXNDYWNoZURlY29yYXRvcigpXHJcbiAgZ2V0RHVyYXRpb25JbkNvbHVtbnMoc3RhcnREYXRlOiBEYXRlLCBlbmREYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLmFicygoc3RhcnREYXRlLmdldFRpbWUoKSAtIGVuZERhdGUuZ2V0VGltZSgpKSAvIE1pbGxpc2Vjb25kc1RvVGltZS5EYXkpO1xyXG4gIH1cclxuXHJcbiAgYWRkQ29sdW1uVG9EYXRlKGRhdGU6IERhdGUsIGRheXM6IG51bWJlcik6IERhdGUge1xyXG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgbmV3RGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgZGF5cyk7XHJcbiAgICBuZXdEYXRlLnNldEhvdXJzKG5ld0RhdGUuZ2V0SG91cnMoKSArICgoZGF5cyAlIDEpICogMjQpKTtcclxuXHJcbiAgICByZXR1cm4gbmV3RGF0ZTtcclxuICB9XHJcblxyXG4gIGdldEVuZGluZ0RhdGVPZkNvbHVtbihkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gRGF0ZUhlbHBlcnMuZGF5RW5kaW5nVGltZShkYXRlKTtcclxuICB9XHJcblxyXG4gIGdldEJlZ2lubmluZ0RhdGVPZkNvbHVtbihkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gRGF0ZUhlbHBlcnMuZGF5QmVnaW5uaW5nVGltZShkYXRlKTtcclxuICB9XHJcbn1cclxuIl19