UNPKG

tablor-core

Version:

Core features for data tables, grids, and advanced search, pagination, and sorting in Angular.

73 lines (72 loc) 3.49 kB
import { AugmentedItem, DynamicImmutableAugmentedItem, ImmutableAugmentedItem, ImmutableAugmentedPartialRegularItem, ImmutablePartialRegularItem, ImmutableRegularItem, ItemsAddedPayload, ItemsRemovedPayload, ItemsUpdatedPayload, Item, StoreLoadingStateChangedPayload } from './interfaces'; import { FieldsStore } from '../fields-store/fields-store'; import { Subject } from 'rxjs'; /** * Manages the items with methods for adding, removing, and updating them. */ export declare class ItemsStore<T extends Item<T>> { protected readonly getFieldsAsArray: FieldsStore<T>['getFieldsAsArray']; protected allItems: AugmentedItem<T>[]; protected _uuidCounter: number; protected _loading: boolean; readonly $loadingStateChanged: Subject<StoreLoadingStateChangedPayload<T>>; readonly $itemsAdded: Subject<ItemsAddedPayload<T>>; readonly $itemsRemoved: Subject<ItemsRemovedPayload<T>>; readonly $itemsUpdated: Subject<ItemsUpdatedPayload<T>>; constructor(getFieldsAsArray: FieldsStore<T>['getFieldsAsArray']); /** * Returns the total number of items in the store. */ getNbOfItems(): number; /** * Returns the loading state. */ getLoadingState(): boolean; getItems(strictlyTyped?: true): ImmutableAugmentedItem<T>[]; getItems(strictlyTyped?: false): DynamicImmutableAugmentedItem[]; getMutableItems(): AugmentedItem<T>[]; /** * Sets the loading state and triggers the corresponding event. */ protected setLoading(state: boolean): void; /** * Initializes the store with an array of items. */ initialize(items: Readonly<ImmutableRegularItem<T>[]>): void; /** * Adds new items to the store. */ add(items: Readonly<(ImmutableAugmentedItem<T> | ImmutableRegularItem<T>)[]>): void; /** * Removes items from the store by UUID or item reference. */ remove(itemsAndUuids: Readonly<(ImmutableAugmentedItem<T> | ImmutableRegularItem<T> | number | undefined)[]>): boolean[]; /** * Updates items in the store using augmented data. */ updateByInItemUuid(items: Readonly<ImmutableAugmentedPartialRegularItem<T>[]>): boolean[]; /** * Updates items in the store by matching UUIDs. */ updateByExternalUuids(items: Readonly<ImmutablePartialRegularItem<T>[]>, uuids: number[]): boolean[]; /** * Updates items at specified indexes. */ updateByIndex(items: Readonly<ImmutablePartialRegularItem<T>[]>, indexes: number[]): boolean[]; /** * Finds and returns items matching the given UUIDs or item references. */ findOneMatchingItemForEach(itemsAndUuids: Readonly<(ImmutableAugmentedItem<T> | ImmutableRegularItem<T> | number | undefined)[]>): (ImmutableAugmentedItem<T> | undefined)[]; /** * Finds and returns the indexes of items matching the given UUIDs or item references. */ findOneIndexForEach(itemsAndUuids: Readonly<(ImmutableAugmentedItem<T> | ImmutableRegularItem<T> | ImmutableAugmentedPartialRegularItem<T> | number | undefined)[]>): number[]; /** * Finds and returns all the possible indexes of items matching the given UUIDs or item references. */ findAllPossibleIndexesForEach(itemsAndUuids: Readonly<(ImmutableAugmentedItem<T> | ImmutableRegularItem<T> | ImmutableAugmentedPartialRegularItem<T> | number | undefined)[]>): number[][]; /** * Generates a unique identifier (UUID) for items. */ protected getNewUuid(): number; }