UNPKG

angular-holiday-planner

Version:

A calendar for Angular 2+ focused on displaying long intervals, with an infinite scrollable view.

102 lines (101 loc) 3.33 kB
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnInit } from '@angular/core'; import dayjs from 'dayjs'; import { ResourceViewRowDirective } from './resource-view-row.directive'; import { ResourceViewTitleDirective } from './resource-view-title.directive'; interface Day { title: string; value: number; date: dayjs.Dayjs; key: string; class: string | string[]; headerClass: string | string[]; left: number; } export interface Resource { id: number; title: string; subtitle?: string; img?: string; days: { date: dayjs.Dayjs; class: string | string[]; }[]; } export interface RowClickEvent { event: MouseEvent; row: Resource; } export interface DayClickEvent { event: MouseEvent; row: Resource; date: dayjs.Dayjs; } export interface HeaderClickEvent { event: MouseEvent; date: dayjs.Dayjs; } export declare class ResourceViewComponent implements OnInit, AfterViewInit { private cdr; private zone; constructor(cdr: ChangeDetectorRef, zone: NgZone); set rows(value: Resource[]); get rows(): Resource[]; startDate: dayjs.Dayjs; sideContainerWidth: string; maxDate: dayjs.Dayjs; minDate: dayjs.Dayjs; infiniteScroll: boolean; customDays: {}; getClassFn: (date: dayjs.Dayjs) => string | string[]; getHeaderClassFn: (date: dayjs.Dayjs) => any; getDayValueFn: (date: dayjs.Dayjs) => any; getDayHeaderFn: (date: dayjs.Dayjs) => any; scrollHeader: ElementRef<HTMLElement>; scrollBody: ElementRef<HTMLElement>; _classes: { [rowId: number]: { [key: string]: any; }; }; days: Day[]; to: dayjs.Dayjs; from: dayjs.Dayjs; private _rows; private _today; private _referenceDate; private _referenceScrollLeft; private _scrollableFrom; private _scrollableTo; private _scrollableLeft; private _scrollableRight; private _scrollableLeftThreshold; private _scrollableRightThreshold; private checkScrollableThresholdHit; private updateRange; rowTemplate: ResourceViewRowDirective; titleTemplate: ResourceViewTitleDirective; rowClick: EventEmitter<RowClickEvent>; dayClick: EventEmitter<DayClickEvent>; headerClick: EventEmitter<HeaderClickEvent>; createDays(): void; ngAfterViewChecked(): void; getKey(value: dayjs.Dayjs): string; ngAfterViewInit(): void; ngOnInit(): void; centerOn(date: dayjs.Dayjs, behavior?: ScrollBehavior): void; onBodyScroll(event: Event): void; _checkScrollableThresholdHit(scrollLeft: any, clientWidth: any): void; _expandScrollableRange(scrollableLeft: number, scrollableRight: number): void; _updateRange(left: number, right: number): void; _getDateClasses(row: Resource, day: Day): any; _getHeaderClasses(day: Day): any; _dateClass(date: dayjs.Dayjs): string; onWindowResize(): void; positionToDate(x: number): dayjs.Dayjs; dateToPosition(date: dayjs.Dayjs): number; onBodyClick(event: MouseEvent): void; onHeaderClick(event: MouseEvent): void; trackById(index: any, item: any): any; trackByKey(index: any, item: any): any; } export {};