tablor-core
Version:
Core features for data tables, grids, and advanced search, pagination, and sorting in Angular.
51 lines (50 loc) • 2.75 kB
TypeScript
import { ImmutableAugmentedPartialRegularItem, ImmutableAugmentedItem, ImmutableRegularItem, Item, ItemsRemovedPayload } from '../stores/items-store/interfaces';
import { Subject } from 'rxjs';
import { ItemsSelectionChangedPayload } from './interfaces';
import { ItemsStore } from '../stores/items-store/items-store';
import { Paginator } from '../paginator/paginator';
/**
* Represents a selector.
*/
export declare class Selector<T extends Item<T>> {
protected readonly getAllItems: ItemsStore<T>['getMutableItems'];
protected readonly getPaginatedItems: Paginator<T>['getItems'];
protected readonly findOneIndexForEach: ItemsStore<T>['findOneIndexForEach'];
protected readonly $itemsRemoved: Subject<ItemsRemovedPayload<T>>;
protected _selectedUuids: number[];
readonly $itemsSelectionChanged: Subject<ItemsSelectionChangedPayload<T>>;
constructor(getAllItems: ItemsStore<T>['getMutableItems'], getPaginatedItems: Paginator<T>['getItems'], findOneIndexForEach: ItemsStore<T>['findOneIndexForEach'], $itemsRemoved: Subject<ItemsRemovedPayload<T>>);
/**
* Returns the number of selected items.
*/
getNbOfSelectedItems(): number;
getNbOfUnselectedItems(): number;
getNbOfSelectedPaginatedItems(): number;
getNbOfUnselectedPaginatedItems(): number;
/**
* Returns the number of selected items in the given items.
*/
getNbOfSelectedItemsIn(items: Readonly<(ImmutableAugmentedPartialRegularItem<T> | number | undefined)[]>): number;
getSelectedItems(): ImmutableAugmentedItem<T>[];
getUnselectedItems(): ImmutableAugmentedItem<T>[];
getSelectedItemUuids(): number[];
getUnselectedItemUuids(): number[];
getSelectedPaginatedItems(): ImmutableAugmentedItem<T>[];
getUnselectedPaginatedItems(): ImmutableAugmentedItem<T>[];
/**
* Selects or deselects an item.
*/
select(item: ImmutableAugmentedItem<T> | ImmutableRegularItem<T> | ImmutableAugmentedPartialRegularItem<T> | number | undefined, state: boolean | 'toggle'): void;
/**
* Selects or deselects multiple items.
*/
selectMultiple(items: Readonly<(ImmutableAugmentedItem<T> | ImmutableRegularItem<T> | ImmutableAugmentedPartialRegularItem<T> | number | undefined)[]>, states: (boolean | 'toggle')[] | (boolean | 'toggle')): void;
/**
* Verifies that the selected items are still valid after items have been removed.
*/
protected verifySelectedItemsOnRemoval({ removedItems }: ItemsRemovedPayload<T>): void;
/**
* Selects or deselects an item.
*/
protected selectInternal(item: ImmutableAugmentedItem<T> | ImmutableRegularItem<T> | ImmutableAugmentedPartialRegularItem<T> | number | undefined, state: boolean | 'toggle'): number;
}