react-cascading-menu
Version:
React-Cascading-Menu is a multi-selectable cascading menu component for React, providing horizontal navigation and global search for efficient option selection.
39 lines (38 loc) • 1.92 kB
TypeScript
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[];