UNPKG

angular-calendar-timeline

Version:

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

58 lines 8.81 kB
import { __decorate } from "tslib"; import { Injectable } from "@angular/core"; import { DateHelpers } from "../helpers/date-helpers"; import { DatesCacheDecorator } from "../helpers/cache"; import * as i0 from "@angular/core"; export class BaseScaleGenerator { constructor() { this._config = this._getConfig(); this.formatter = this._config.formatter; } getStartDate(itemsBuilder) { if (this._config.getStartDate) { return this._config.getStartDate(itemsBuilder); } const firstItem = itemsBuilder.getFirstItem(false); const now = Date.now(); const firstItemTime = new Date(firstItem?.startDate ?? now).getTime(); return this._validateStartDate(firstItemTime < now ? firstItemTime : now); } getEndDate(itemsBuilder) { if (this._config.getEndDate) { return this._config.getEndDate(itemsBuilder); } const lastItem = itemsBuilder.getLastItem(false); const now = Date.now(); const lastItemDate = new Date(lastItem?.endDate ?? now); return this._validateEndDate(lastItemDate.getTime() < now ? now : lastItemDate); } generateScale(startDate, endDate) { let currentDate = new Date(startDate); const endTime = endDate.getTime(); const columns = []; while (currentDate.getTime() <= endTime) { const date = new Date(currentDate); columns.push({ id: DateHelpers.generateDateId(date), date: date, index: this._getColumnIndex(date), groups: this._generateGroups(date), }); currentDate = this._getNextColumnDate(currentDate); } return { startDate, endDate, columns }; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseScaleGenerator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseScaleGenerator }); } } __decorate([ DatesCacheDecorator() ], BaseScaleGenerator.prototype, "generateScale", null); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseScaleGenerator, decorators: [{ type: Injectable }], ctorParameters: () => [], propDecorators: { generateScale: [] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zY2FsZS1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNhbGVuZGFyLXRpbWVsaW5lL3NyYy9saWIvc2NhbGUtZ2VuZXJhdG9yL2Jhc2Utc2NhbGUtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFVQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHdkQsTUFBTSxPQUFnQixrQkFBa0I7SUFLdEM7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQzFDLENBQUM7SUFjTSxZQUFZLENBQUMsWUFBNEI7UUFDOUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sYUFBYSxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFdEUsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sVUFBVSxDQUFDLFlBQTRCO1FBQzVDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRXhELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUdELGFBQWEsQ0FBQyxTQUFlLEVBQUUsT0FBYTtRQUMxQyxJQUFJLFdBQVcsR0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QyxNQUFNLE9BQU8sR0FBVyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUMsTUFBTSxPQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUNuQyxPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLEVBQUUsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDcEMsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUNqQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7YUFDbkMsQ0FBQyxDQUFDO1lBRUgsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBRUQsT0FBTztZQUNMLFNBQVM7WUFDVCxPQUFPO1lBQ1AsT0FBTztTQUNSLENBQUM7SUFDSixDQUFDOytHQXBFbUIsa0JBQWtCO21IQUFsQixrQkFBa0I7O0FBK0N0QztJQURDLG1CQUFtQixFQUFFO3VEQXNCckI7NEZBcEVtQixrQkFBa0I7a0JBRHZDLFVBQVU7d0RBZ0RULGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERhdGVJbnB1dCxcclxuICBJSXRlbXNJdGVyYXRvcixcclxuICBJU2NhbGUsXHJcbiAgSVNjYWxlQ29sdW1uLFxyXG4gIElTY2FsZUZvcm1hdHRlcixcclxuICBJU2NhbGVHZW5lcmF0b3IsXHJcbiAgSVNjYWxlR2VuZXJhdG9yQ29uZmlnLFxyXG4gIElTY2FsZUdyb3VwXHJcbn0gZnJvbSBcIi4uL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGF0ZUhlbHBlcnMgfSBmcm9tIFwiLi4vaGVscGVycy9kYXRlLWhlbHBlcnNcIjtcclxuaW1wb3J0IHsgRGF0ZXNDYWNoZURlY29yYXRvciB9IGZyb20gXCIuLi9oZWxwZXJzL2NhY2hlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU2NhbGVHZW5lcmF0b3IgaW1wbGVtZW50cyBJU2NhbGVHZW5lcmF0b3Ige1xyXG4gIHByb3RlY3RlZCBfY29uZmlnOiBJU2NhbGVHZW5lcmF0b3JDb25maWc7XHJcblxyXG4gIHB1YmxpYyBmb3JtYXR0ZXI6IElTY2FsZUZvcm1hdHRlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9jb25maWcgPSB0aGlzLl9nZXRDb25maWcoKTtcclxuICAgIHRoaXMuZm9ybWF0dGVyID0gdGhpcy5fY29uZmlnLmZvcm1hdHRlcjtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfZ2V0Q29uZmlnKCk6IElTY2FsZUdlbmVyYXRvckNvbmZpZztcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF92YWxpZGF0ZVN0YXJ0RGF0ZShzdGFydERhdGU6IERhdGVJbnB1dCk6IERhdGU7XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfdmFsaWRhdGVFbmREYXRlKGVuZERhdGU6IERhdGVJbnB1dCk6IERhdGU7XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfZ2VuZXJhdGVHcm91cHMoZGF0ZTogRGF0ZSk6IElTY2FsZUdyb3VwW107XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfZ2V0Q29sdW1uSW5kZXgoZGF0ZTogRGF0ZSk6IG51bWJlcjtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF9nZXROZXh0Q29sdW1uRGF0ZShkYXRlOiBEYXRlKTogRGF0ZTtcclxuXHJcbiAgcHVibGljIGdldFN0YXJ0RGF0ZShpdGVtc0J1aWxkZXI6IElJdGVtc0l0ZXJhdG9yKTogRGF0ZSB7XHJcbiAgICBpZiAodGhpcy5fY29uZmlnLmdldFN0YXJ0RGF0ZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmdldFN0YXJ0RGF0ZShpdGVtc0J1aWxkZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpcnN0SXRlbSA9IGl0ZW1zQnVpbGRlci5nZXRGaXJzdEl0ZW0oZmFsc2UpO1xyXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcclxuICAgIGNvbnN0IGZpcnN0SXRlbVRpbWUgPSBuZXcgRGF0ZShmaXJzdEl0ZW0/LnN0YXJ0RGF0ZSA/PyBub3cpLmdldFRpbWUoKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVTdGFydERhdGUoZmlyc3RJdGVtVGltZSA8IG5vdyA/IGZpcnN0SXRlbVRpbWUgOiBub3cpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEVuZERhdGUoaXRlbXNCdWlsZGVyOiBJSXRlbXNJdGVyYXRvcik6IERhdGUge1xyXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5nZXRFbmREYXRlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9jb25maWcuZ2V0RW5kRGF0ZShpdGVtc0J1aWxkZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxhc3RJdGVtID0gaXRlbXNCdWlsZGVyLmdldExhc3RJdGVtKGZhbHNlKTtcclxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XHJcbiAgICBjb25zdCBsYXN0SXRlbURhdGUgPSBuZXcgRGF0ZShsYXN0SXRlbT8uZW5kRGF0ZSA/PyBub3cpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZUVuZERhdGUobGFzdEl0ZW1EYXRlLmdldFRpbWUoKSA8IG5vdyA/IG5vdyA6IGxhc3RJdGVtRGF0ZSk7XHJcbiAgfVxyXG5cclxuICBARGF0ZXNDYWNoZURlY29yYXRvcigpXHJcbiAgZ2VuZXJhdGVTY2FsZShzdGFydERhdGU6IERhdGUsIGVuZERhdGU6IERhdGUpOiBJU2NhbGUge1xyXG4gICAgbGV0IGN1cnJlbnREYXRlOiBEYXRlID0gbmV3IERhdGUoc3RhcnREYXRlKTtcclxuICAgIGNvbnN0IGVuZFRpbWU6IG51bWJlciA9IGVuZERhdGUuZ2V0VGltZSgpO1xyXG4gICAgY29uc3QgY29sdW1uczogSVNjYWxlQ29sdW1uW10gPSBbXTtcclxuICAgIHdoaWxlIChjdXJyZW50RGF0ZS5nZXRUaW1lKCkgPD0gZW5kVGltZSkge1xyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoY3VycmVudERhdGUpO1xyXG4gICAgICBjb2x1bW5zLnB1c2goe1xyXG4gICAgICAgIGlkOiBEYXRlSGVscGVycy5nZW5lcmF0ZURhdGVJZChkYXRlKSxcclxuICAgICAgICBkYXRlOiBkYXRlLFxyXG4gICAgICAgIGluZGV4OiB0aGlzLl9nZXRDb2x1bW5JbmRleChkYXRlKSxcclxuICAgICAgICBncm91cHM6IHRoaXMuX2dlbmVyYXRlR3JvdXBzKGRhdGUpLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGN1cnJlbnREYXRlID0gdGhpcy5fZ2V0TmV4dENvbHVtbkRhdGUoY3VycmVudERhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHN0YXJ0RGF0ZSxcclxuICAgICAgZW5kRGF0ZSxcclxuICAgICAgY29sdW1uc1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19