import { AfterViewInit, ChangeDetectorRef, ElementRef, OnChanges, OnDestroy, OnInit, QueryList } from '@angular/core'; import { GalleryLightboxComponent } from '../lightbox/lightbox.gallery.component'; import { GridMedia } from './GridMedia'; import { GalleryPhotoComponent } from './photo/photo.grid.gallery.component'; import { OverlayService } from '../overlay.service'; import { Subscription } from 'rxjs'; import { ActivatedRoute, Router } from '@angular/router'; import { QueryService } from '../../../model/query.service'; import { MediaDTO } from '../../../../../common/entities/MediaDTO'; import { GallerySortingService, MediaGroup } from '../navigator/sorting.service'; import { GalleryNavigatorService } from '../navigator/navigator.service'; import { BlogService } from '../blog/blog.service'; export declare class GalleryGridComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy { private overlayService; private changeDetector; queryService: QueryService; private router; sortingService: GallerySortingService; navigatorService: GalleryNavigatorService; private route; blogService: BlogService; gridContainer: ElementRef; gridPhotoQL: QueryList; lightbox: GalleryLightboxComponent; mediaGroups: MediaGroup[]; mediaToRender: GridMediaGroup[]; containerWidth: number; containerMinHeight: number; screenHeight: number; isAfterViewInit: boolean; subscriptions: { girdSize: Subscription; route: Subscription; }; delayedRenderUpToPhoto: string; IMAGE_MARGIN: number; renderDelayTimer: number; readonly GroupByTypes: { [x: number]: string; NoGrouping: import("../../../../../common/entities/SortingMethods").GroupByBasicTypes.NoGrouping; Name: import("../../../../../common/entities/SortingMethods").SortByDirectionalTypes.Name; Date: import("../../../../../common/entities/SortingMethods").SortByDirectionalTypes.Date; Rating: import("../../../../../common/entities/SortingMethods").SortByDirectionalTypes.Rating; PersonCount: import("../../../../../common/entities/SortingMethods").SortByDirectionalTypes.PersonCount; FileSize: import("../../../../../common/entities/SortingMethods").SortByDirectionalTypes.FileSize; }; readonly blogOpen: boolean; private scrollListenerPhotos; private TARGET_COL_COUNT; private MIN_ROW_COUNT; private MAX_ROW_COUNT; private onScrollFired; private helperTime; constructor(overlayService: OverlayService, changeDetector: ChangeDetectorRef, queryService: QueryService, router: Router, sortingService: GallerySortingService, navigatorService: GalleryNavigatorService, route: ActivatedRoute, blogService: BlogService); ngOnChanges(): void; ngOnInit(): void; ngOnDestroy(): void; onResize(): void; photoClicked(media: MediaDTO): void; ngAfterViewInit(): void; mergeNewPhotos(): void; renderARow(): number; onScroll(): void; getNumberOfRenderedMedia(): number; private renderMinimalPhotos; private getMaxRowHeight; /** * Makes sure that the photo with the given mediaString is visible on the screen */ private renderUpToMedia; private clearRenderedPhotos; /** * Returns true, if scroll is >= 70% to render more images. * Or of onscroll rendering is off: return always to render all the images at once * @param offset Add height to the client height (content is not yet added to the dom, but calculate with it) * @returns boolean */ private shouldRenderMore; private renderPhotos; private isMoreToRender; private updateContainerDimensions; } interface GridMediaGroup { media: GridMedia[]; name: string; date?: Date; } export {};