@fesjs/fes-design
Version:
fes-design for PC
64 lines (63 loc) • 1.81 kB
TypeScript
declare enum DIRECTION_TYPE {
FRONT = "FRONT",
BEHIND = "BEHIND"
}
declare enum CALC_TYPE {
INIT = "INIT",
FIXED = "FIXED",
DYNAMIC = "DYNAMIC"
}
interface Range {
start: number;
end: number;
padFront: number;
padBehind: number;
}
interface VirtualParams {
slotHeaderSize?: number;
slotFooterSize?: number;
keeps?: number;
estimateSize?: number;
buffer?: number;
uniqueIds?: (string | number)[];
}
export default class Virtual {
param: VirtualParams;
sizes: Map<number | string, number>;
firstRangeTotalSize: number;
firstRangeAverageSize: number;
fixedSizeValue: number;
calcType: CALC_TYPE;
offset: number;
direction: DIRECTION_TYPE;
range: Range;
callUpdate: (range: Range) => void;
private _scrollRAF;
private _scrollPositionCache;
constructor(param: VirtualParams, callUpdate: (range: Range) => void);
init(param?: VirtualParams, callUpdate?: (range: Range) => void): void;
destroy(): void;
getRange(): any;
isBehind(): boolean;
isFront(): boolean;
getOffset(start: number): number;
updateParam(key: keyof VirtualParams, value: any): void;
saveSize(id: number | string, size: number): void;
handleDataSourcesChange(): void;
handleSlotSizeChange(): void;
handleScroll(offset: number): void;
handleFront(): void;
handleBehind(): void;
getScrollOvers(): number;
getIndexOffset(givenIndex: number): number;
isFixedType(): boolean;
getLastIndex(): number;
checkRange(start: number, end: number): void;
updateRange(start: number, end: number): void;
getEndByStart(start: number): number;
getPadFront(): number;
getPadBehind(): number;
getEstimateSize(): number;
getTotalSize(): number;
}
export {};