UNPKG

angular-calendar-timeline

Version:

A timeline for angular that shows events on a timeline board in different modes: days, weeks, and months.

50 lines 7.78 kB
import { BaseScaleGenerator } from './base-scale-generator'; import { DateHelpers } from "../helpers/date-helpers"; import { inject, Injectable, InjectionToken } from "@angular/core"; import { DayScaleFormatter } from "../formatters/day-scale-formatter"; import * as i0 from "@angular/core"; export const DAY_SCALE_GENERATOR_CONFIG = new InjectionToken('Day scale config'); const DefaultConfig = { formatter: new DayScaleFormatter(), }; export class DefaultDayScaleGenerator extends BaseScaleGenerator { _getConfig() { return { ...DefaultConfig, ...inject(DAY_SCALE_GENERATOR_CONFIG, {}) }; } _validateStartDate(startDate) { const countOfEmptyMonthsBefore = 1; startDate = new Date(startDate); startDate.setDate(1); startDate = DateHelpers.dayBeginningTime(startDate); startDate.setMonth(startDate.getMonth() - countOfEmptyMonthsBefore); return startDate; } _validateEndDate(endDate) { const countOfEmptyMonthsAfter = 1; endDate = new Date(endDate); return new Date(DateHelpers.lastDayOfMonth(endDate).setMonth(endDate.getMonth() + countOfEmptyMonthsAfter)); } _generateGroups(date) { date = new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0, 0); return [{ date, id: DateHelpers.generateDateId(date), coverageInPercents: 100 }]; } _getColumnIndex(date) { return date.getDate(); } _getNextColumnDate(date) { return new Date(date.setDate(date.getDate() + 1)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultDayScaleGenerator, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultDayScaleGenerator }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultDayScaleGenerator, decorators: [{ type: Injectable }] }); export class DayScaleGenerator extends DefaultDayScaleGenerator { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DayScaleGenerator, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DayScaleGenerator }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DayScaleGenerator, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXNjYWxlLWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY2FsZW5kYXItdGltZWxpbmUvc3JjL2xpYi9zY2FsZS1nZW5lcmF0b3IvZGF5LXNjYWxlLWdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUV0RSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FBd0Isa0JBQWtCLENBQUMsQ0FBQztBQUd4RyxNQUFNLGFBQWEsR0FBMEI7SUFDM0MsU0FBUyxFQUFFLElBQUksaUJBQWlCLEVBQUU7Q0FDbkMsQ0FBQTtBQUdELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxrQkFBa0I7SUFDcEQsVUFBVTtRQUNsQixPQUFPLEVBQUMsR0FBRyxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxDQUFDLEVBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRVMsa0JBQWtCLENBQUMsU0FBb0I7UUFDL0MsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLENBQUM7UUFDbkMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsU0FBUyxHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRCxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyx3QkFBd0IsQ0FBQyxDQUFDO1FBRXBFLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxPQUFrQjtRQUMzQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsQ0FBQztRQUNsQyxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsT0FBTyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFUyxlQUFlLENBQUMsSUFBVTtRQUNsQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEUsT0FBTyxDQUFDLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVTLGVBQWUsQ0FBQyxJQUFVO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxJQUFVO1FBQ3JDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDOytHQWhDVSx3QkFBd0I7bUhBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7QUFxQ1gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHdCQUF3QjsrR0FBbEQsaUJBQWlCO21IQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlU2NhbGVHZW5lcmF0b3IgfSBmcm9tICcuL2Jhc2Utc2NhbGUtZ2VuZXJhdG9yJztcclxuaW1wb3J0IHsgRGF0ZUlucHV0LCBJU2NhbGVHZW5lcmF0b3IsIElTY2FsZUdlbmVyYXRvckNvbmZpZywgSVNjYWxlR3JvdXAgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBEYXRlSGVscGVycyB9IGZyb20gXCIuLi9oZWxwZXJzL2RhdGUtaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGF5U2NhbGVGb3JtYXR0ZXIgfSBmcm9tIFwiLi4vZm9ybWF0dGVycy9kYXktc2NhbGUtZm9ybWF0dGVyXCI7XHJcblxyXG5leHBvcnQgY29uc3QgREFZX1NDQUxFX0dFTkVSQVRPUl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVNjYWxlR2VuZXJhdG9yQ29uZmlnPignRGF5IHNjYWxlIGNvbmZpZycpO1xyXG5cclxuXHJcbmNvbnN0IERlZmF1bHRDb25maWc6IElTY2FsZUdlbmVyYXRvckNvbmZpZyA9IHtcclxuICBmb3JtYXR0ZXI6IG5ldyBEYXlTY2FsZUZvcm1hdHRlcigpLFxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0RGF5U2NhbGVHZW5lcmF0b3IgZXh0ZW5kcyBCYXNlU2NhbGVHZW5lcmF0b3IgaW1wbGVtZW50cyBJU2NhbGVHZW5lcmF0b3Ige1xyXG4gIHByb3RlY3RlZCBfZ2V0Q29uZmlnKCk6IElTY2FsZUdlbmVyYXRvckNvbmZpZyB7XHJcbiAgICByZXR1cm4gey4uLkRlZmF1bHRDb25maWcsIC4uLmluamVjdChEQVlfU0NBTEVfR0VORVJBVE9SX0NPTkZJRywge30pfTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfdmFsaWRhdGVTdGFydERhdGUoc3RhcnREYXRlOiBEYXRlSW5wdXQpOiBEYXRlIHtcclxuICAgIGNvbnN0IGNvdW50T2ZFbXB0eU1vbnRoc0JlZm9yZSA9IDE7XHJcbiAgICBzdGFydERhdGUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG4gICAgc3RhcnREYXRlLnNldERhdGUoMSk7XHJcbiAgICBzdGFydERhdGUgPSBEYXRlSGVscGVycy5kYXlCZWdpbm5pbmdUaW1lKHN0YXJ0RGF0ZSk7XHJcbiAgICBzdGFydERhdGUuc2V0TW9udGgoc3RhcnREYXRlLmdldE1vbnRoKCkgLSBjb3VudE9mRW1wdHlNb250aHNCZWZvcmUpO1xyXG5cclxuICAgIHJldHVybiBzdGFydERhdGU7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX3ZhbGlkYXRlRW5kRGF0ZShlbmREYXRlOiBEYXRlSW5wdXQpOiBEYXRlIHtcclxuICAgIGNvbnN0IGNvdW50T2ZFbXB0eU1vbnRoc0FmdGVyID0gMTtcclxuICAgIGVuZERhdGUgPSBuZXcgRGF0ZShlbmREYXRlKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlSGVscGVycy5sYXN0RGF5T2ZNb250aChlbmREYXRlKS5zZXRNb250aChlbmREYXRlLmdldE1vbnRoKCkgKyBjb3VudE9mRW1wdHlNb250aHNBZnRlcikpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9nZW5lcmF0ZUdyb3VwcyhkYXRlOiBEYXRlKTogSVNjYWxlR3JvdXBbXSB7XHJcbiAgICBkYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEsIDAsIDAsIDAsIDApO1xyXG4gICAgcmV0dXJuIFt7ZGF0ZSwgaWQ6IERhdGVIZWxwZXJzLmdlbmVyYXRlRGF0ZUlkKGRhdGUpLCBjb3ZlcmFnZUluUGVyY2VudHM6IDEwMH1dO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9nZXRDb2x1bW5JbmRleChkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBkYXRlLmdldERhdGUoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfZ2V0TmV4dENvbHVtbkRhdGUoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIDEpKTtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERheVNjYWxlR2VuZXJhdG9yIGV4dGVuZHMgRGVmYXVsdERheVNjYWxlR2VuZXJhdG9yIHtcclxufVxyXG4iXX0=