UNPKG

react-cascading-menu

Version:

A powerful React cascading dropdown component with multi-selection, search functionality, and hierarchical navigation. Perfect for building category selectors, dependent dropdowns, and nested menu systems with TypeScript support.

39 lines (38 loc) 1.92 kB
import { CompleteObj, FormatedSelections, ItemId, MenuGroup, MenuGroupMap, SelectedItemType } from "../types"; /** * convert menuGroup tree to map * for each node access without need to store the node details redundantly * and simplify the management complexity * * downward propogation through childIds * upward propogation through parentId */ export declare const menuGroupTreeToMap: (menuGroup: MenuGroup) => MenuGroupMap; export declare const getConnectedItemByDirection: (obj: MenuGroupMap, isForward: boolean | undefined, nodeId: ItemId, selectedItems: SelectedItemType, isSingleSelection?: boolean) => SelectedItemType; export declare const getConnectedItems: (obj: MenuGroupMap, nodeId: ItemId, selectedItems: SelectedItemType, isSingleSelection?: boolean) => SelectedItemType; export declare const addItemSelection: (menuGroupMap: MenuGroupMap, selectedItems: SelectedItemType, itemId: ItemId) => SelectedItemType; /** * * cascading item removal and highlights the next available selection */ export declare const cascadeSelectionRemovalWithProps: (menuGroupMap: MenuGroupMap, selectedItems: SelectedItemType, itemId: ItemId, additionalProps?: { isParentUpdateRequired?: boolean; getNextAvailableSelection?: boolean; isMultiSelection?: boolean; }) => { newSelectedItems: SelectedItemType; newChildId?: ItemId; }; export declare const initPreSelections: (selections: FormatedSelections | null) => { newSelectedItems: SelectedItemType; newActiveItems: {}; } | { newSelectedItems: SelectedItemType; newActiveItems?: undefined; }; /** * Cascading item removal(current+children) * Removes the current selection and its children selections */ export declare const cascadeSelectionRemoval: (obj: MenuGroupMap, selectedItems: SelectedItemType, nodeId: ItemId) => SelectedItemType; export declare function getAllLeafNodes(treeObj: MenuGroup, index: number): CompleteObj[];