@nativescript/core
Version:
A JavaScript library providing an easy to use api for interacting with iOS and Android platform APIs.
73 lines (72 loc) • 2.14 kB
TypeScript
import { Observable, EventData } from '../observable';
import { ChangedData } from '../observable-array';
/**
* Event args for "itemsLoading" event.
*/
export interface ItemsLoading extends EventData {
/**
* Start index.
*/
index: number;
/**
* Number of items to load.
*/
count: number;
}
/**
* Advanced array like class that helps loading items on demand.
*/
export declare class VirtualArray<T> extends Observable {
/**
* String value used when hooking to change event.
*/
static changeEvent: string;
/**
* String value used when hooking to itemsLoading event.
*/
static itemsLoadingEvent: string;
private _requestedIndexes;
private _loadedIndexes;
private _length;
private _cache;
constructor(length?: number);
/**
* Gets or sets length for the virtual array.
*/
get length(): number;
set length(value: number);
/**
* Gets or sets load size for the virtual array.
*/
private _loadSize;
get loadSize(): number;
set loadSize(value: number);
getItem(index: number): T;
setItem(index: number, value: T): void;
/**
* Loads items from an array starting at index.
*/
load(index: number, items: T[]): void;
private requestItems;
}
export interface VirtualArray<T> {
/**
* Adds a listener for the specified event name.
*
* @param eventName The name of the event.
* @param callback The event listener to add. Will be called when an event of
* the given name is raised.
* @param thisArg An optional parameter which, when set, will be bound as the
* `this` context when the callback is called. Falsy values will be not be
* bound.
*/
on(eventName: string, callback: (data: EventData) => void, thisArg?: any): void;
/**
* Raised when still not loaded items are requested.
*/
on(event: 'itemsLoading', callback: (args: ItemsLoading) => void, thisArg?: any): void;
/**
* Raised when a change occurs.
*/
on(event: 'change', callback: (args: ChangedData<T>) => void, thisArg?: any): void;
}