@furystack/shades-common-components
Version:
39 lines • 1.29 kB
TypeScript
import { ObservableValue } from '@furystack/utils';
export interface CollectionData<T> {
entries: T[];
count: number;
}
export interface CollectionServiceOptions<T> {
/**
* An optional field that can be used for quick search
*/
searchField?: keyof T;
/**
* @param entry The clicked entry
* optional callback for row clicks
*/
onRowClick?: (entry: T) => void;
/**
* Optional callback for row double clicks
* @param entry The clicked entry
*/
onRowDoubleClick?: (entry: T) => void;
}
export declare class CollectionService<T> implements Disposable {
private options;
[Symbol.dispose](): void;
isSelected: (entry: T) => boolean;
addToSelection: (entry: T) => void;
removeFromSelection: (entry: T) => void;
toggleSelection: (entry: T) => void;
data: ObservableValue<CollectionData<T>>;
focusedEntry: ObservableValue<T | undefined>;
selection: ObservableValue<T[]>;
searchTerm: ObservableValue<string>;
hasFocus: ObservableValue<boolean>;
handleKeyDown(ev: KeyboardEvent): void;
handleRowClick(entry: T, ev: MouseEvent): void;
constructor(options?: CollectionServiceOptions<T>);
handleRowDoubleClick(entry: T): void;
}
//# sourceMappingURL=collection-service.d.ts.map