@web-atoms/core
Version:
57 lines • 1.75 kB
TypeScript
export type valuePathOrFunc<T> = ((item: T) => any);
export default class AtomSelectableList<T> {
allowMultipleSelection: boolean;
valuePath?: valuePathOrFunc<T>;
labelPath?: valuePathOrFunc<T>;
readonly items: Array<ISelectableItem<T>>;
readonly selectedItems: Array<ISelectableItem<T>>;
/**
* Reference for Paging
*/
start: number;
/**
* Reference for paging
*/
total: number;
get selectedIndex(): number;
set selectedIndex(n: number);
get selectedItem(): T;
set selectedItem(item: T);
get label(): any;
get selectAll(): boolean;
set selectAll(v: boolean);
private mValue;
get value(): any;
set value(v: any);
constructor(allowMultipleSelection?: boolean, valuePath?: valuePathOrFunc<T>, labelPath?: valuePathOrFunc<T>);
/**
* Remove all items
* @param clearValue clear Selection
*/
clear(clearValue?: boolean): void;
/**
* Append to existing items
* @param source source items
* @param total total number of items
*/
append(source: T[], total?: number): void;
replace(source: T[], start?: number, size?: number): void;
find(item: T | ((i: T) => boolean)): ISelectableItem<T>;
select(item: T | ISelectableItem<T>): void;
deselect(item: T | ISelectableItem<T>): void;
toggle(item: T | ISelectableItem<T>): void;
replaceSelected(va: T[]): void;
private replaceSelectedInternal;
private updateBindings;
private newItem;
private clearSelected;
}
export interface ISelectableItem<T> {
selected: boolean;
item: T;
itemType: any;
select: () => void;
deselect: () => void;
toggle: () => void;
}
//# sourceMappingURL=AtomSelectableList.d.ts.map