@trademe/ng-defer-load
Version:
Angular directive to load elements lazily
30 lines (29 loc) • 1.28 kB
TypeScript
import { AfterViewInit, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from '@angular/core';
import * as i0 from "@angular/core";
export declare class DeferLoadDirective implements OnInit, AfterViewInit, OnDestroy {
private _element;
private _zone;
private platformId;
preRender: boolean;
fallbackEnabled: boolean;
removeListenersAfterLoad: boolean;
deferLoad: EventEmitter<any>;
private _intersectionObserver?;
private _scrollSubscription?;
constructor(_element: ElementRef, _zone: NgZone, platformId: Object);
ngOnInit(): void;
ngAfterViewInit(): void;
hasCompatibleBrowser(): boolean;
ngOnDestroy(): void;
private registerIntersectionObserver;
private checkForIntersection;
private checkIfIntersecting;
private load;
private addScrollListeners;
private removeListeners;
private onScroll;
private isVisible;
private getScrollPosition;
static ɵfac: i0.ɵɵFactoryDeclaration<DeferLoadDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<DeferLoadDirective, "[deferLoad]", never, { "preRender": "preRender"; "fallbackEnabled": "fallbackEnabled"; "removeListenersAfterLoad": "removeListenersAfterLoad"; }, { "deferLoad": "deferLoad"; }, never, never, false>;
}