import { TemplateRef, EventEmitter, ElementRef, ChangeDetectorRef, NgZone, SimpleChanges, InjectionToken, OnInit, OnDestroy, OnChanges } from '@angular/core'; import { Subject } from 'rxjs'; import { GanttItem, GanttGroup, GanttViewType, GanttLoadOnScrollEvent, GanttDragEvent, GanttGroupInternal, GanttItemInternal, GanttBarClickEvent, GanttLinkDragEvent, GanttToolbarOptions, DragToOtherRowEvent } from './class'; import { GanttView, GanttViewOptions } from './views/view'; import { GanttStyles } from './gantt.styles'; import { Dictionary } from './utils/helpers'; import { GanttDragContainer } from './gantt-drag-container'; import { GanttGlobalConfig } from './gantt.config'; import { GanttLinkOptions } from './class/link'; import { SelectionModel } from '@angular/cdk/collections'; import { BooleanInput } from '@angular/cdk/coercion'; import { GanttBaselineItem, GanttBaselineItemInternal } from './class/baseline'; import { NgxGanttTableComponent } from './table/gantt-table.component'; import * as i0 from "@angular/core"; export declare abstract class GanttUpper implements OnChanges, OnInit, OnDestroy { protected elementRef: ElementRef; protected cdr: ChangeDetectorRef; protected ngZone: NgZone; config: GanttGlobalConfig; originItems: GanttItem[]; originGroups: GanttGroup[]; originBaselineItems: GanttBaselineItem[]; viewType: GanttViewType; start: number; end: number; showTodayLine: boolean; _draggable: boolean; set draggable(val: boolean); get draggable(): boolean; draggableEnable: boolean; styles: GanttStyles; showToolbar: boolean; restrictToBounds: boolean; toolbarOptions: GanttToolbarOptions; viewOptions: GanttViewOptions; set linkOptions(options: GanttLinkOptions); get linkOptions(): GanttLinkOptions; disabledLoadOnScroll: boolean; set selectable(value: BooleanInput); get selectable(): boolean; set multiple(value: BooleanInput); get multiple(): boolean; loadOnScroll: EventEmitter; dragStarted: EventEmitter>; dragMoved: EventEmitter>; dragEnded: EventEmitter>; dragToOtherRow: EventEmitter>; draggableChange: EventEmitter; barClick: EventEmitter>; barDbClick: EventEmitter>; barContentMenu: EventEmitter>; barMouseenter: EventEmitter>; viewChange: EventEmitter; expandChange: EventEmitter; barTemplate: TemplateRef; rangeTemplate: TemplateRef; itemTemplate: TemplateRef; baselineTemplate: TemplateRef; groupTemplate: TemplateRef; groupHeaderTemplate: TemplateRef; toolbarTemplate: TemplateRef; linkable: boolean; computeAllRefs: boolean; linkDragEnded: EventEmitter>; view: GanttView; items: GanttItemInternal[]; groups: GanttGroupInternal[]; baselineItems: GanttBaselineItemInternal[]; baselineItemsMap: Dictionary; get element(): HTMLElement; firstChange: boolean; dragContainer: GanttDragContainer; unsubscribe$: Subject; selectionModel: SelectionModel; table?: NgxGanttTableComponent; private groupsMap; private _selectable; private _multiple; private _linkOptions; ganttClass: boolean; constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, ngZone: NgZone, config: GanttGlobalConfig); private createView; private setupGroups; private setupItems; private setupBaselineItems; private setupExpandedState; private getViewDate; computeRefs(): void; computeOverlap(): void; /** * 检查数组中每个元素是否与其它元素有重叠,并返回重叠部分的时间段 * @param {Array} periods - 包含时间段的数组,每个时间段包含start和end属性 * @returns {Array} - 返回包含重叠信息的数组 */ private checkOverlappingPeriods; /** * 检查两个时间段是否有重叠,并返回重叠部分 * @param {Object} period1 - 第一个时间段,包含start和end属性 * @param {Object} period2 - 第二个时间段,包含start和end属性 * @returns {Object|null} - 如果有重叠,返回重叠部分的时间段,否则返回null */ private getOverlapPeriod; private initSelectionModel; expandGroups(expanded: boolean): void; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; computeItemsRefs(...items: GanttItemInternal[] | GanttBaselineItemInternal[]): void; trackBy(index: number, item: GanttGroupInternal | GanttItemInternal): string | number; detectChanges(): void; expandGroup(group: GanttGroupInternal): void; expandAll(): void; collapseAll(): void; getGanttItem(id: string): GanttItemInternal; getGanttItems(ids: string[]): GanttItemInternal[]; isSelected(id: string): boolean; changeView(type: GanttViewType): void; rerenderView(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } export declare const GANTT_UPPER_TOKEN: InjectionToken;