@zag-js/collection
Version:
Utilities to manage a collection of items.
32 lines (29 loc) • 1.34 kB
text/typescript
import { CollectionItem } from './types.mjs';
interface SelectionMapCollection<T extends CollectionItem = CollectionItem> {
find: (value: string | null | undefined) => T | null;
getItemValue: (item: T | null | undefined) => string | null;
}
declare function resolveSelectedItems<T extends CollectionItem>({ values, collection, selectedItemMap, }: {
values: string[];
collection: SelectionMapCollection<T>;
selectedItemMap: Map<string, T>;
}): T[];
declare function updateSelectedItemMap<T extends CollectionItem>({ selectedItemMap, values, selectedItems, collection, }: {
selectedItemMap: Map<string, T>;
values: string[];
selectedItems: T[];
collection: SelectionMapCollection<T>;
}): Map<string, T>;
declare function deriveSelectionState<T extends CollectionItem>({ values, collection, selectedItemMap, }: {
values: string[];
collection: SelectionMapCollection<T>;
selectedItemMap: Map<string, T>;
}): {
selectedItems: T[];
nextSelectedItemMap: Map<string, T>;
};
declare function createSelectedItemMap<T extends CollectionItem>({ selectedItems, collection, }: {
selectedItems: T[];
collection: SelectionMapCollection<T>;
}): Map<string, T>;
export { type SelectionMapCollection, createSelectedItemMap, deriveSelectionState, resolveSelectedItems, updateSelectedItemMap };