import { HttpClient } from '@angular/common/http'; import { ChangeDetectorRef, ElementRef, EventEmitter, QueryList, SimpleChanges } from '@angular/core'; import { SCBaseComponent } from './../core/sc-basecomponent.component'; import { SCCoreService } from './../core/sc-core.service'; import { ResizedEvent } from '../directives/sc-resize-event'; import * as i0 from "@angular/core"; declare global { interface Date { getBasicDateTimeString(): string; getBasicDateString(): string; getStartOfWeekTimestamp(): number; getEndOfWeekTimestamp(): number; getStartOfMonthTimestamp(): number; getEndOfMonthTimestamp(): number; isSameDayAndHour(refDate: string): boolean; isSameDay(refDate: string): boolean; getCountOfDays(): number; resetTime(): any; } interface Number { toLeadingZeroString(): string; } } export interface SCSchedulingTimelineConfig { dateFormat: SCSchedulingTimelineDateFormatConfig; } export interface SCSchedulingTimelineDateFormatConfig { hourBased: string; dayBased: string; } export interface SCSchedulingTimelineDateRangeConfig { current_datestring: string; weeks_before?: number; weeks_after?: number; months_before?: number; months_after?: number; } export interface SCSchedulingTimelineWeekRange { week: SCSchedulingTimelineWeek; } export interface SCSchedulingTimelineMonthRange { month: SCSchedulingTimelineMonth; } export interface SCSchedulingTimelineWeek { start_date: string; end_date: string; start_date_ref: Date; end_date_ref: Date; dates: number[]; } export interface SCSchedulingTimelineMonth { start_date: string; end_date: string; start_date_ref: Date; end_date_ref: Date; dates: string[]; } export interface SCSchedulingRowData { label: string; tooltip?: string; tooltipPosition?: string; tooltipShowDelay?: number; events: SCSchedulingEvent[]; hide?: boolean; } export interface SCSchedulingEvent { id: string | number; start_date: string; end_date: string; label: string; color: string; borderColor: string; backgroundColor: string; } export interface SCSchedulingVerticalHeaderClick { index: number; data: T; event: MouseEvent; } export interface SCSchedulingEventClick { data: SCSchedulingEvent; event: MouseEvent; } export interface SCSchedulingTimelineUrlConfig { timelineDataUrl?: string; paramConfig?: SCSchedulingTimelineUrlParamConfig; httpParams?: { key: string; values: string[]; }[]; } export interface SCSchedulingTimelineUrlParamConfig { dateFromKey: string; dateToKey: string; } export declare class SCSchedulingTimelineComponent extends SCBaseComponent { private cdr; private http; private scCoreService; timelineBody: ElementRef; timelineHighlighterVertical: ElementRef; timelineHighlighterHorizontal: ElementRef; timelineContainer: ElementRef; timelineRows: QueryList; timelineRowVerticalHeaders: QueryList; dayBased: boolean; dataIn: any[]; scale: number; scaleWithViewport: boolean; blocksInViewport: number; timelineConfig: SCSchedulingTimelineDateRangeConfig; mapFunction: (data: any) => any; urlConfig: SCSchedulingTimelineUrlConfig; isLazyLoading: boolean; verticalHeaderClicked: EventEmitter>; eventClicked: EventEmitter; timelineTypeChangeFinished: EventEmitter; hoursHelper: number[]; private dayHelper; showActiveLabels: boolean; currentActiveLabels: { weekIndex: number; dayIndex: number; hourIndex: number; rowIndex: number; monthIndex: number; dayString: string; }; private fieldSize; private rowHeight; reloadTimeline: boolean; weekRanges: SCSchedulingTimelineWeekRange[]; monthRanges: SCSchedulingTimelineMonthRange[]; private daysBetween; private searchString; private currentOnLoad; eventCollapsed: boolean; private eventTemplate; rowData: SCSchedulingRowData[]; isInit: boolean; weekDataInit: boolean; private lastMouseEvent; private lastScrollLeft; private lastScrollTop; private lastClickTime; private readonly CLICK_DELAY; get httpHeaders(): import("@angular/common/http").HttpHeaders; get httpParams(): any; constructor(cdr: ChangeDetectorRef, http: HttpClient, scCoreService: SCCoreService); ngOnInit(): void; ngAfterViewInit(): void; handleViewPortScale(): void; rowIdentify(index: any, row: any): any; ngOnChanges(event: SimpleChanges): void; handleNewUrlConfig(newUrlConfig: SCSchedulingTimelineUrlConfig): void; private initWeekData; private printEvents; checkIfSameEventGroup(firstEvent: any, secondEvent: any): boolean; collapseEvents(): void; resizeRowVerticalHeader(): void; detectRowPosition(event: any, rowArray: any): number; private registerEventClickEvents; removeElementFromView(elementId: number | string): void; private createInitDateRange; private getWeekRange; private getMonthRange; handleTimelineBodyMouseLeave(): void; private cancleMouseHighlightEvent; handleTimelineBodyMouseOver(event: any): void; handleTimelineBodyScroll(event: any): void; calculateNewEventPosition(additionalWidth: number): void; calculateEventMaxWidth(): void; private getParentBody; private getDatesArray; private getWeeksArray; private calculateMonths; private calculateDiff; private calculateSizeByHours; private countDaysInMonth; private countDaysInMonthRange; private detectChanges; private getEventTemplate; private setRowLabelHeight; setScale(scale: number): void; handleVerticalHeaderClicked(rowIndex: number, event: MouseEvent): void; private handleEventClicked; private handleEventMouseover; private handleNewTableData; private mapData; getUrlTimelineData(): void; private getHttpParamsForConfig; jumpToDate(dateString: string): void; nextTimelinePage(): void; lastTimelinePage(): void; calculateBodyWidth(event: ResizedEvent): void; handleSearchFilter(search: string): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }