@web-atoms/core
Version:
101 lines • 2.98 kB
TypeScript
import { IDisposable } from "./types";
/**
*
*
* @export
* @class AtomList
* @extends {Array<T>}
* @template T
*/
export declare class AtomList<T> extends Array<T> {
next: (() => any);
prev: (() => any);
private startValue;
private totalValue;
private sizeValue;
constructor();
get start(): number;
set start(v: number);
get total(): number;
set total(v: number);
get size(): number;
set size(v: number);
/**
* Adds the item in the list and refresh bindings
* @param {T} item
* @returns {number}
* @memberof AtomList
*/
add(item: T): number;
/**
* Add given items in the list and refresh bindings
* @param {Array<T>} items
* @memberof AtomList
*/
addAll(items: T[]): void;
/**
* Replaces list with given items, use this
* to avoid flickering in screen
* @param {T[]} items
* @memberof AtomList
*/
replace(items: T[], start?: number, size?: number): void;
/**
* Inserts given number in the list at position `i`
* and refreshes the bindings.
* @param {number} i
* @param {T} item
* @memberof AtomList
*/
insert(i: number, item: T): void;
/**
* Replaces given item in the list at position `i`
* and refreshes the bindings.
* @param {number} i
* @param {T} item
* @memberof AtomList
*/
set(i: number, item: T): void;
/**
* Removes item at given index i and refresh the bindings
* @param {number} i
* @memberof AtomList
*/
removeAt(i: number): T;
/**
* Removes given item or removes all items that match
* given lambda as true and refresh the bindings
* @param {(T | ((i:T) => boolean))} item
* @returns {boolean} `true` if any item was removed
* @memberof AtomList
*/
remove(item: T | ((i: T) => boolean)): boolean;
/**
* Removes all items from the list and refreshes the bindings
* @memberof AtomList
*/
clear(): void;
refresh(): void;
watch(f: (target: any, key: string, index?: number, item?: any) => void, wrap?: boolean): IDisposable;
count(f: (item: any) => boolean): number;
avg(f: (item: any) => number): number;
includes(item: any): boolean;
}
declare global {
interface Array<T> {
add?(item: T): number;
addAll?(item: T[]): void;
clear?(): void;
refresh?(): void;
insert?(index: number, item: T): void;
remove?(item: T | ((i: T) => boolean)): boolean;
removeAt?(i: number): T;
set?(index: number, item: T): void;
watch?(f: (target: any, key: string, index?: number, item?: any) => void, wrap?: boolean): IDisposable;
replace(items: T[], start?: number, size?: number): void;
includes(item: T): boolean;
count?(f: (item: T) => boolean): number;
avg?(f: (item: T) => number): number;
}
}
//# sourceMappingURL=AtomList.d.ts.map