angular-calendar-timeline
Version:
A timeline for angular that shows events on a timeline board in different modes: days, weeks, and months.
54 lines • 8.09 kB
JavaScript
import { TimelineViewMode } from "./models";
import { Inject, Injectable } from "@angular/core";
import { DayScaleGenerator } from "./scale-generator/day-scale-generator";
import { WeekScaleGenerator } from "./scale-generator/week-scale-generator";
import { MonthScaleGenerator } from "./scale-generator/month-scale-generator";
import { DaysViewModeAdaptor } from "./view-mode-adaptor/days-view-mode-adaptor";
import { WeeksViewModeAdaptor } from "./view-mode-adaptor/weeks-view-mode-adaptor";
import { MonthsViewModeAdaptor } from "./view-mode-adaptor/months-view-mode-adaptor";
import * as i0 from "@angular/core";
export class DefaultStrategyManager {
constructor(_dayGenerator, _weekGenerator, _monthGenerator) {
this._dayGenerator = _dayGenerator;
this._weekGenerator = _weekGenerator;
this._monthGenerator = _monthGenerator;
this._generatorsDictionary = {
[TimelineViewMode.Day]: this._dayGenerator,
[TimelineViewMode.Week]: this._weekGenerator,
[TimelineViewMode.Month]: this._monthGenerator,
};
this._calculatorsDictionary = {
[TimelineViewMode.Day]: new DaysViewModeAdaptor(),
[TimelineViewMode.Week]: new WeeksViewModeAdaptor(),
[TimelineViewMode.Month]: new MonthsViewModeAdaptor(),
};
}
getViewModeAdaptor(viewMode) {
return this._calculatorsDictionary[viewMode];
}
getScaleGenerator(viewMode) {
return this._generatorsDictionary[viewMode];
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultStrategyManager, deps: [{ token: DayScaleGenerator }, { token: WeekScaleGenerator }, { token: MonthScaleGenerator }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultStrategyManager }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultStrategyManager, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: undefined, decorators: [{
type: Inject,
args: [DayScaleGenerator]
}] }, { type: undefined, decorators: [{
type: Inject,
args: [WeekScaleGenerator]
}] }, { type: undefined, decorators: [{
type: Inject,
args: [MonthScaleGenerator]
}] }] });
export class StrategyManager extends DefaultStrategyManager {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StrategyManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StrategyManager }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StrategyManager, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ3ktbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY2FsZW5kYXItdGltZWxpbmUvc3JjL2xpYi9zdHJhdGVneS1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxnQkFBZ0IsRUFDakIsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBU3JGLE1BQU0sT0FBTyxzQkFBc0I7SUFhakMsWUFBaUQsYUFBOEIsRUFDN0IsY0FBK0IsRUFDOUIsZUFBZ0M7UUFGbEMsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBQzdCLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUM5QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFkekUsMEJBQXFCLEdBQUc7WUFDaEMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUMxQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQzVDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWU7U0FDL0MsQ0FBQztRQUVRLDJCQUFzQixHQUFHO1lBQ2pDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxtQkFBbUIsRUFBRTtZQUNqRCxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksb0JBQW9CLEVBQUU7WUFDbkQsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLHFCQUFxQixFQUFFO1NBQ3RELENBQUM7SUFNRixDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBa0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBdUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxRQUFrQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUF1QyxDQUFDLENBQUM7SUFDN0UsQ0FBQzsrR0F6QlUsc0JBQXNCLGtCQWFiLGlCQUFpQixhQUNqQixrQkFBa0IsYUFDbEIsbUJBQW1CO21IQWY1QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVU7OzBCQWNJLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLG1CQUFtQjs7QUFjekMsTUFBTSxPQUFPLGVBQTZDLFNBQVEsc0JBQWdDOytHQUFyRixlQUFlO21IQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIElWaWV3TW9kZUFkYXB0b3IsXHJcbiAgSVNjYWxlR2VuZXJhdG9yLFxyXG4gIFRpbWVsaW5lVmlld01vZGVcclxufSBmcm9tIFwiLi9tb2RlbHNcIjtcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGF5U2NhbGVHZW5lcmF0b3IgfSBmcm9tIFwiLi9zY2FsZS1nZW5lcmF0b3IvZGF5LXNjYWxlLWdlbmVyYXRvclwiO1xyXG5pbXBvcnQgeyBXZWVrU2NhbGVHZW5lcmF0b3IgfSBmcm9tIFwiLi9zY2FsZS1nZW5lcmF0b3Ivd2Vlay1zY2FsZS1nZW5lcmF0b3JcIjtcclxuaW1wb3J0IHsgTW9udGhTY2FsZUdlbmVyYXRvciB9IGZyb20gXCIuL3NjYWxlLWdlbmVyYXRvci9tb250aC1zY2FsZS1nZW5lcmF0b3JcIjtcclxuaW1wb3J0IHsgRGF5c1ZpZXdNb2RlQWRhcHRvciB9IGZyb20gXCIuL3ZpZXctbW9kZS1hZGFwdG9yL2RheXMtdmlldy1tb2RlLWFkYXB0b3JcIjtcclxuaW1wb3J0IHsgV2Vla3NWaWV3TW9kZUFkYXB0b3IgfSBmcm9tIFwiLi92aWV3LW1vZGUtYWRhcHRvci93ZWVrcy12aWV3LW1vZGUtYWRhcHRvclwiO1xyXG5pbXBvcnQgeyBNb250aHNWaWV3TW9kZUFkYXB0b3IgfSBmcm9tIFwiLi92aWV3LW1vZGUtYWRhcHRvci9tb250aHMtdmlldy1tb2RlLWFkYXB0b3JcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVN0cmF0ZWd5TWFuYWdlcjxWaWV3TW9kZSA9IFRpbWVsaW5lVmlld01vZGU+IHtcclxuICBnZXRTY2FsZUdlbmVyYXRvcih2aWV3TW9kZTogVmlld01vZGUpOiBJU2NhbGVHZW5lcmF0b3I7XHJcblxyXG4gIGdldFZpZXdNb2RlQWRhcHRvcih2aWV3TW9kZTogVmlld01vZGUpOiBJVmlld01vZGVBZGFwdG9yO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0U3RyYXRlZ3lNYW5hZ2VyPFZpZXdNb2RlPiBpbXBsZW1lbnRzIElTdHJhdGVneU1hbmFnZXI8Vmlld01vZGU+IHtcclxuICBwcm90ZWN0ZWQgX2dlbmVyYXRvcnNEaWN0aW9uYXJ5ID0ge1xyXG4gICAgW1RpbWVsaW5lVmlld01vZGUuRGF5XTogdGhpcy5fZGF5R2VuZXJhdG9yLFxyXG4gICAgW1RpbWVsaW5lVmlld01vZGUuV2Vla106IHRoaXMuX3dlZWtHZW5lcmF0b3IsXHJcbiAgICBbVGltZWxpbmVWaWV3TW9kZS5Nb250aF06IHRoaXMuX21vbnRoR2VuZXJhdG9yLFxyXG4gIH07XHJcblxyXG4gIHByb3RlY3RlZCBfY2FsY3VsYXRvcnNEaWN0aW9uYXJ5ID0ge1xyXG4gICAgW1RpbWVsaW5lVmlld01vZGUuRGF5XTogbmV3IERheXNWaWV3TW9kZUFkYXB0b3IoKSxcclxuICAgIFtUaW1lbGluZVZpZXdNb2RlLldlZWtdOiBuZXcgV2Vla3NWaWV3TW9kZUFkYXB0b3IoKSxcclxuICAgIFtUaW1lbGluZVZpZXdNb2RlLk1vbnRoXTogbmV3IE1vbnRoc1ZpZXdNb2RlQWRhcHRvcigpLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRGF5U2NhbGVHZW5lcmF0b3IpIHByb3RlY3RlZCBfZGF5R2VuZXJhdG9yOiBJU2NhbGVHZW5lcmF0b3IsXHJcbiAgICAgICAgICAgICAgQEluamVjdChXZWVrU2NhbGVHZW5lcmF0b3IpIHByb3RlY3RlZCBfd2Vla0dlbmVyYXRvcjogSVNjYWxlR2VuZXJhdG9yLFxyXG4gICAgICAgICAgICAgIEBJbmplY3QoTW9udGhTY2FsZUdlbmVyYXRvcikgcHJvdGVjdGVkIF9tb250aEdlbmVyYXRvcjogSVNjYWxlR2VuZXJhdG9yLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgZ2V0Vmlld01vZGVBZGFwdG9yKHZpZXdNb2RlOiBWaWV3TW9kZSk6IElWaWV3TW9kZUFkYXB0b3Ige1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhbGN1bGF0b3JzRGljdGlvbmFyeVt2aWV3TW9kZSBhcyB1bmtub3duIGFzIFRpbWVsaW5lVmlld01vZGVdO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2NhbGVHZW5lcmF0b3Iodmlld01vZGU6IFZpZXdNb2RlKTogSVNjYWxlR2VuZXJhdG9yIHtcclxuICAgIHJldHVybiB0aGlzLl9nZW5lcmF0b3JzRGljdGlvbmFyeVt2aWV3TW9kZSBhcyB1bmtub3duIGFzIFRpbWVsaW5lVmlld01vZGVdO1xyXG4gIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU3RyYXRlZ3lNYW5hZ2VyPFZpZXdNb2RlID0gVGltZWxpbmVWaWV3TW9kZT4gZXh0ZW5kcyBEZWZhdWx0U3RyYXRlZ3lNYW5hZ2VyPFZpZXdNb2RlPiB7XHJcbn1cclxuIl19