@transunion-ui/tablejs
Version:
Tablejs ========
165 lines (164 loc) • 7.61 kB
TypeScript
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnInit, TemplateRef, OnDestroy, RendererFactory2 } from '@angular/core';
import { GridService } from './../../services/grid/grid.service';
import { DirectiveRegistrationService } from './../../services/directive-registration/directive-registration.service';
import { Range } from './../../shared/classes/scrolling/range';
import { ScrollDispatcherService } from './../../services/scroll-dispatcher/scroll-dispatcher.service';
import { GridDirective } from './../../directives/grid/grid.directive';
import { IVirtualNexus } from './../../shared/interfaces/i-virtual-nexus';
import { OperatingSystemService } from './../../services/operating-system/operating-system.service';
import { Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export declare class ScrollViewportDirective implements AfterViewInit, OnDestroy, OnInit {
elementRef: ElementRef;
gridService: GridService;
private document;
private directiveRegistrationService;
private scrollDispatcherService;
private operatingSystem;
private cdr;
private rendererFactory;
templateRef: TemplateRef<any> | null;
templateID: string | null;
generateCloneMethod: ((template: HTMLElement, items: any[], index: number) => Node) | null;
private _arrowUpSpeed;
get arrowUpSpeed(): string | number;
set arrowUpSpeed(value: string | number);
private _arrowDownSpeed;
get arrowDownSpeed(): string | number;
set arrowDownSpeed(value: string | number);
private _preItemOverflow;
get preItemOverflow(): string | number;
set preItemOverflow(value: string | number);
private _postItemOverflow;
get postItemOverflow(): string | number;
set postItemOverflow(value: string | number);
private _itemLoadLimit;
get itemLoadLimit(): string | number;
set itemLoadLimit(value: string | number);
timeoutID: any;
items: any[] | null;
templateid: string | null;
preitemoverflow: number;
postitemoverflow: number;
arrowupspeed: number;
arrowdownspeed: number;
itemloadlimit: number;
fillViewportScrolling: any;
itemAdded: EventEmitter<any>;
itemRemoved: EventEmitter<any>;
itemUpdated: EventEmitter<any>;
rangeUpdated: EventEmitter<any>;
viewportScrolled: EventEmitter<any>;
viewportReady: EventEmitter<any>;
viewportInitialized: EventEmitter<any>;
private containerHeight;
private heightLookup;
private itemVisibilityLookup;
listElm: HTMLElement | null;
listContent: HTMLElement | null;
prevSpacer: HTMLElement | null;
postSpacer: HTMLElement | null;
gridDirective: GridDirective | null;
virtualForChangesSubscription$: Subscription;
preGridInitializeSubscription$: Subscription;
pauseViewportRenderUpdates: boolean;
range: Range;
lastRange: Range;
lastScrollTop: number;
currentScrollTop: number;
currentScrollChange: number;
template: HTMLElement | null;
private estimatedFullContentHeight;
private estimatedPreListHeight;
private estimatedPostListHeight;
private totalItemsCounted;
private totalHeightCount;
private itemName;
private avgItemHeight;
private overflowHeightCount;
scrollChangeByFirstIndexedItem: number;
private lastVisibleItemHeight;
private adjustedStartIndex;
private forcedEndIndex;
private placeholderObject;
private postItemOverflowCount;
private preItemOverflowCount;
private lastVisibleItemOverflow;
private preOverflowHeight;
private mouseIsOverViewport;
private lastHeight;
private observer;
private handleMouseOver;
private handleMouseOut;
private handleKeyDown;
private handleListContentScroll;
private cloneFromTemplateRef;
private viewportHasScrolled;
private templateContext;
virtualNexus: IVirtualNexus | null;
private _cloneMethod;
private renderer;
constructor(elementRef: ElementRef, gridService: GridService, document: any, directiveRegistrationService: DirectiveRegistrationService, scrollDispatcherService: ScrollDispatcherService, operatingSystem: OperatingSystemService, cdr: ChangeDetectorRef | null, rendererFactory: RendererFactory2);
handleScroll(e: Event): void;
private registerViewportToElement;
private attachMutationObserver;
private updateMutations;
private getChildNodes;
registerCustomElementsInputs(viewport: HTMLElement): void;
private convertCustomElementsVariables;
private createTBodies;
private addScrollHandler;
rerenderRowAt(index: number, updateScrollPosition?: boolean): void;
private viewportRendered;
scrollToBottom(): void;
scrollToTop(): void;
pageUp(): void;
pageDown(): void;
private addArrowListeners;
ngAfterViewInit(): void;
ngOnInit(): void;
ngOnDestroy(): void;
private setScrollSpacers;
private setHeightByListHeightDifference;
private removePreScrollItems;
private removePostScrollItems;
updateItems(items: any[], scrollToOptions?: any): void;
resetToInitialValues(): void;
recalculateRowHeight(index: number): void;
private updateEstimatedHeightFromResize;
private updateEstimatedHeight;
getPreviousSibling(el: Node | Element | null): any;
getNextSibling(el: Element | null): any;
private getEstimatedChildInsertions;
private setLastRangeToCurrentRange;
private resetLastHeight;
private maintainIndexInBounds;
private maintainEndIndexInBounds;
showRange(startIndex: number, endIndex: number, overflow?: number): void;
getDisplayedContentsHeight(): number;
refreshContainerHeight(): void;
allItemsFitViewport(recalculateContainerHeight?: boolean, refreshViewport?: boolean): boolean;
getCurrentScrollPosition(): any;
private setHeightsForOverflowCalculations;
private addResizeSensor;
private removeResizeSensor;
onTransitionEnd: (_e: any) => void;
onTransitionRun: (_e: any) => void;
onTransitionStart: (_e: any) => void;
onTransitionCancel: (_e: any) => void;
getCloneFromTemplateRef(index: number): HTMLElement;
private addScrollItems;
private addMissingPostScrollItemsAndUpdateOverflow;
scrollToExact(index: number, overflow?: number): void;
private getRangeChange;
refreshViewport(recalculateRows?: boolean): void;
updateScrollFromRange(newRange: Range): void;
private initScroll;
private verifyViewportIsReady;
private initFirstScroll;
private itemsAreSet;
private cloneMethodIsSet;
private templateIsSet;
static ɵfac: i0.ɵɵFactoryDeclaration<ScrollViewportDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<ScrollViewportDirective, "[tablejsScrollViewport], [tablejsscrollviewport], [tablejs-scroll-viewport]", never, { "templateID": "templateID"; "generateCloneMethod": "generateCloneMethod"; "arrowUpSpeed": "arrowUpSpeed"; "arrowDownSpeed": "arrowDownSpeed"; "preItemOverflow": "preItemOverflow"; "postItemOverflow": "postItemOverflow"; "itemLoadLimit": "itemLoadLimit"; "templateid": "templateid"; "preitemoverflow": "preitemoverflow"; "postitemoverflow": "postitemoverflow"; "arrowupspeed": "arrowupspeed"; "arrowdownspeed": "arrowdownspeed"; "itemloadlimit": "itemloadlimit"; "fillViewportScrolling": "fillViewportScrolling"; }, { "itemAdded": "itemAdded"; "itemRemoved": "itemRemoved"; "itemUpdated": "itemUpdated"; "rangeUpdated": "rangeUpdated"; "viewportScrolled": "viewportScrolled"; "viewportReady": "viewportReady"; "viewportInitialized": "viewportInitialized"; }, ["templateRef"]>;
}