import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; import * as i0 from '@angular/core'; import { AfterViewInit, OnDestroy, EventEmitter, TemplateRef, ElementRef, QueryList } from '@angular/core'; import { MatSort, Sort } from '@angular/material/sort'; import { MatTable } from '@angular/material/table'; import { ILfSelectable, ItemWithId } from '@laserfiche/lf-ui-components/shared'; import { DataSource, CollectionViewer } from '@angular/cdk/collections'; import { Subject, Subscription, BehaviorSubject, Observable } from 'rxjs'; /** * @internal */ declare class GridSelectionListDataSource extends DataSource { private viewport; private itemSize; pageSize: number; private _data; private readonly visibleData; private requestedDataLength?; private totalContentSizeSyncQueued; private suppressScrollEvents; checkForData: Subject; indexChangeSub: Subscription; currentScrollIndex: number; dataStart: number; dataEnd: number; offset: number; offsetChange: BehaviorSubject; extraData: number; bufferToEnd: number; get allData(): ILfSelectable[]; set allData(data: ILfSelectable[]); private resetView; constructor(initialData: ILfSelectable[], viewport: CdkVirtualScrollViewport, itemSize: number, pageSize: number); private reassertViewportLayout; private getNumItemsInView; private refreshViewAtCurrentIndex; private getCurrentViewportIndex; private refreshViewAtIndex; private getRenderableScrollIndex; private shouldRequestMoreData; private scheduleViewportSync; connect(collectionViewer: CollectionViewer): Observable>; disconnect(collectionViewer: CollectionViewer): void; } interface ColumnOrderBy { columnId: string; isDesc: boolean; } interface ColumnDef { id: string; displayName: string; defaultWidth: string; minWidthPx?: number; sortable?: boolean; resizable?: boolean; } /** @internal */ interface SelectedItemEvent { selected: ILfSelectable; selectedItems: ILfSelectable[] | undefined; } /** @internal */ interface RepositoryBrowserData { columns: Record; } /** @internal */ declare class LfSelectionListComponent implements AfterViewInit, OnDestroy { /**@internal */ private focusMonitor; /**@internal */ private ref; scrollChanged: EventEmitter; itemDoubleClicked: EventEmitter; itemSelected: EventEmitter; itemFocused: EventEmitter; refreshData: EventEmitter; itemSize: number; private _pageSize; set pageSize(value: number); get pageSize(): number; listItemRef?: TemplateRef; alwaysShowHeader?: boolean; set listItems(items: ILfSelectable[]); private setNewWidths; set uniqueIdentifier(key: string); set multipleSelection(value: boolean); get multipleSelection(): boolean; get columnOrderBy(): ColumnOrderBy | undefined; set columnOrderBy(orderBy: ColumnOrderBy | undefined); set columns(cols: ColumnDef[]); get columns(): ColumnDef[]; private setDefaultWidths; /** @internal */ viewport?: CdkVirtualScrollViewport; /** @internal */ private scrollDirective?; /** @internal */ matTable?: ElementRef; /** @internal */ matTables?: QueryList>; /** @internal */ headerTable?: ElementRef; /** @internal */ sort?: MatSort; /** @internal */ private additionalColumnDefs; /** @internal */ private _uniqueIdentifier?; /** @internal */ private allSubscriptions?; /** @internal */ private _columnOrderBy; /** @internal */ private selectable; /** @internal */ private _multipleSelectEnabled; /** @internal */ allColumnHeaders?: string[]; /** @internal */ dataSource?: GridSelectionListDataSource; /** @internal */ items: ILfSelectable[]; /** @internal */ allColumnDefs: ColumnDef[]; /** @internal */ columnsWidth: string | undefined; /** @internal */ resizePosition: number; /** @internal */ _showHeader: boolean; /** @internal */ currentFocusIndex: number; /** @internal */ ngAfterViewInit(): void; ngOnDestroy(): void; clearSelectedValues(clearCached?: boolean): void; placeholderWhen(index: number, _: any): index is 0; focus(): void; sortData(sort: Sort): void; focusCurrentIndex(): void; /** @internal */ onClickMatListOption(event: MouseEvent, option: ILfSelectable, index: number): Promise; /** @internal */ onDblClick(event: MouseEvent | KeyboardEvent, item: ILfSelectable): void; /** @internal */ onItemKeyDown(event: KeyboardEvent, item: ILfSelectable): Promise; /** @internal */ onItemKeyUp(event: KeyboardEvent, item: ILfSelectable): void; /** @internal */ onFocused(index: number): void; /** @internal */ onViewportKeyDown(event: KeyboardEvent): void; setInitialWidth(): void; private getRepositoryBrowserData; resetCachedNodesAsync(): Promise; setSelectedNodesAsync(nodesToSelect: ILfSelectable[] | undefined, checkForMoreDataCallback: () => Promise, maxFetchIterations: number): Promise; /** @internal */ _computeRowId(index: number): string; /** @internal */ _checkFocused(rowIndex: number): boolean; /** @internal */ private _checkRowInView; /** @internal */ private _focus; placeholderHeight: number; onColumnWidthChanges(width: number, index: number): void; private updateRepositoryBrowserData; setColumnWidthChanges(width: number, index: number): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export { LfSelectionListComponent }; export type { ColumnDef, ColumnOrderBy, RepositoryBrowserData, SelectedItemEvent };