UNPKG

angular-calendar-timeline

Version:

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

52 lines 7.85 kB
import { BaseScaleGenerator } from './base-scale-generator'; import { DateHelpers } from "../helpers/date-helpers"; import { inject, Injectable, InjectionToken } from "@angular/core"; import { MonthScaleFormatter } from "../formatters/month-scale-formatter"; import * as i0 from "@angular/core"; export const MONTH_SCALE_GENERATOR_CONFIG = new InjectionToken('Month scale config'); const DefaultConfig = { formatter: new MonthScaleFormatter(), }; export class DefaultMonthScaleGenerator extends BaseScaleGenerator { _getConfig() { return { ...DefaultConfig, ...inject(MONTH_SCALE_GENERATOR_CONFIG, {}) }; } _validateStartDate(startDate) { const newDate = new Date(startDate); const countOfEmptyYearsBefore = 1; newDate.setDate(1); newDate.setMonth(0); newDate.setFullYear(newDate.getFullYear() - countOfEmptyYearsBefore); return newDate; } _validateEndDate(endDate) { const newDate = DateHelpers.lastDayOfMonth(endDate); const countOfEmptyYearsAfter = 1; newDate.setMonth(11); newDate.setFullYear(newDate.getFullYear() + countOfEmptyYearsAfter); return newDate; } _generateGroups(date) { date = new Date(date.getFullYear(), 1, 0, 0, 0, 0, 0); return [{ date, id: DateHelpers.generateDateId(date), coverageInPercents: 100 }]; } _getColumnIndex(date) { return date.getMonth() + 1; } _getNextColumnDate(date) { return new Date(date.setMonth(date.getMonth() + 1)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultMonthScaleGenerator, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultMonthScaleGenerator }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultMonthScaleGenerator, decorators: [{ type: Injectable }] }); export class MonthScaleGenerator extends DefaultMonthScaleGenerator { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonthScaleGenerator, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonthScaleGenerator }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonthScaleGenerator, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtc2NhbGUtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jYWxlbmRhci10aW1lbGluZS9zcmMvbGliL3NjYWxlLWdlbmVyYXRvci9tb250aC1zY2FsZS1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFMUUsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQXdCLG9CQUFvQixDQUFDLENBQUM7QUFFNUcsTUFBTSxhQUFhLEdBQTBCO0lBQzNDLFNBQVMsRUFBRSxJQUFJLG1CQUFtQixFQUFFO0NBQ3JDLENBQUE7QUFHRCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsa0JBQWtCO0lBQ3RELFVBQVU7UUFDbEIsT0FBTyxFQUFDLEdBQUcsYUFBYSxFQUFFLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixFQUFFLEVBQUUsQ0FBQyxFQUFDLENBQUM7SUFDekUsQ0FBQztJQUVTLGtCQUFrQixDQUFDLFNBQW9CO1FBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDO1FBRXJFLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxPQUFrQjtRQUMzQyxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztRQUVwRSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRVMsZUFBZSxDQUFDLElBQVU7UUFDbEMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFUyxlQUFlLENBQUMsSUFBVTtRQUNsQyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVTLGtCQUFrQixDQUFDLElBQVU7UUFDckMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7K0dBbkNVLDBCQUEwQjttSEFBMUIsMEJBQTBCOzs0RkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVOztBQXdDWCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsMEJBQTBCOytHQUF0RCxtQkFBbUI7bUhBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VTY2FsZUdlbmVyYXRvciB9IGZyb20gJy4vYmFzZS1zY2FsZS1nZW5lcmF0b3InO1xyXG5pbXBvcnQgeyBEYXRlSW5wdXQsIElTY2FsZUdlbmVyYXRvciwgSVNjYWxlR2VuZXJhdG9yQ29uZmlnLCBJU2NhbGVHcm91cCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IERhdGVIZWxwZXJzIH0gZnJvbSBcIi4uL2hlbHBlcnMvZGF0ZS1oZWxwZXJzXCI7XHJcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNb250aFNjYWxlRm9ybWF0dGVyIH0gZnJvbSBcIi4uL2Zvcm1hdHRlcnMvbW9udGgtc2NhbGUtZm9ybWF0dGVyXCI7XHJcblxyXG5leHBvcnQgY29uc3QgTU9OVEhfU0NBTEVfR0VORVJBVE9SX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJU2NhbGVHZW5lcmF0b3JDb25maWc+KCdNb250aCBzY2FsZSBjb25maWcnKTtcclxuXHJcbmNvbnN0IERlZmF1bHRDb25maWc6IElTY2FsZUdlbmVyYXRvckNvbmZpZyA9IHtcclxuICBmb3JtYXR0ZXI6IG5ldyBNb250aFNjYWxlRm9ybWF0dGVyKCksXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERlZmF1bHRNb250aFNjYWxlR2VuZXJhdG9yIGV4dGVuZHMgQmFzZVNjYWxlR2VuZXJhdG9yIGltcGxlbWVudHMgSVNjYWxlR2VuZXJhdG9yIHtcclxuICBwcm90ZWN0ZWQgX2dldENvbmZpZygpOiBJU2NhbGVHZW5lcmF0b3JDb25maWcge1xyXG4gICAgcmV0dXJuIHsuLi5EZWZhdWx0Q29uZmlnLCAuLi5pbmplY3QoTU9OVEhfU0NBTEVfR0VORVJBVE9SX0NPTkZJRywge30pfTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfdmFsaWRhdGVTdGFydERhdGUoc3RhcnREYXRlOiBEYXRlSW5wdXQpOiBEYXRlIHtcclxuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG4gICAgY29uc3QgY291bnRPZkVtcHR5WWVhcnNCZWZvcmUgPSAxO1xyXG4gICAgbmV3RGF0ZS5zZXREYXRlKDEpO1xyXG4gICAgbmV3RGF0ZS5zZXRNb250aCgwKTtcclxuICAgIG5ld0RhdGUuc2V0RnVsbFllYXIobmV3RGF0ZS5nZXRGdWxsWWVhcigpIC0gY291bnRPZkVtcHR5WWVhcnNCZWZvcmUpO1xyXG5cclxuICAgIHJldHVybiBuZXdEYXRlO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF92YWxpZGF0ZUVuZERhdGUoZW5kRGF0ZTogRGF0ZUlucHV0KTogRGF0ZSB7XHJcbiAgICBjb25zdCBuZXdEYXRlID0gRGF0ZUhlbHBlcnMubGFzdERheU9mTW9udGgoZW5kRGF0ZSk7XHJcbiAgICBjb25zdCBjb3VudE9mRW1wdHlZZWFyc0FmdGVyID0gMTtcclxuICAgIG5ld0RhdGUuc2V0TW9udGgoMTEpO1xyXG4gICAgbmV3RGF0ZS5zZXRGdWxsWWVhcihuZXdEYXRlLmdldEZ1bGxZZWFyKCkgKyBjb3VudE9mRW1wdHlZZWFyc0FmdGVyKTtcclxuXHJcbiAgICByZXR1cm4gbmV3RGF0ZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfZ2VuZXJhdGVHcm91cHMoZGF0ZTogRGF0ZSk6IElTY2FsZUdyb3VwW10ge1xyXG4gICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMSwgMCwgMCwgMCwgMCwgMCk7XHJcbiAgICByZXR1cm4gW3tkYXRlLCBpZDogRGF0ZUhlbHBlcnMuZ2VuZXJhdGVEYXRlSWQoZGF0ZSksIGNvdmVyYWdlSW5QZXJjZW50czogMTAwfV07XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2dldENvbHVtbkluZGV4KGRhdGU6IERhdGUpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGRhdGUuZ2V0TW9udGgoKSArIDE7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2dldE5leHRDb2x1bW5EYXRlKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSArIDEpKTtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE1vbnRoU2NhbGVHZW5lcmF0b3IgZXh0ZW5kcyBEZWZhdWx0TW9udGhTY2FsZUdlbmVyYXRvciB7XHJcbn1cclxuIl19