UNPKG

react-accessible-treeview

Version:

A react component that implements the treeview pattern as described by the WAI-ARIA Authoring Practices.

74 lines (73 loc) 4.59 kB
import { EventCallback, INode, INodeRef, NodeId } from "./types"; export declare const noop: () => void; export declare const composeHandlers: (...handlers: EventCallback[]) => EventCallback; export declare const difference: (a: Set<NodeId>, b: Set<NodeId>) => Set<NodeId>; export declare const symmetricDifference: (a: Set<NodeId>, b: Set<NodeId>) => Set<NodeId>; export declare const usePrevious: (x: Set<NodeId>) => Set<NodeId> | undefined; export declare const usePreviousData: (value: INode[]) => INode<IFlatMetadata>[] | undefined; export declare const isBranchNode: (data: INode[], i: NodeId) => boolean; export declare const getBranchNodesToExpand: (data: INode[], id: NodeId) => NodeId[]; export declare const scrollToRef: (ref: INodeRef) => void; export declare const focusRef: (ref: INodeRef) => void; export declare const getParent: (data: INode[], id: NodeId) => NodeId | null; export declare const getAncestors: (data: INode[], childId: NodeId, disabledIds: Set<NodeId>) => NodeId[]; export declare const getDescendants: (data: INode[], id: NodeId, disabledIds: Set<NodeId>) => NodeId[]; export declare const getChildren: (data: INode[], id: NodeId) => NodeId[]; export declare const getSibling: (data: INode[], id: NodeId, diff: number) => NodeId | null; export declare const getLastAccessible: (data: INode[], id: NodeId, expandedIds: Set<NodeId>) => NodeId; export declare const getPreviousAccessible: (data: INode[], id: NodeId, expandedIds: Set<NodeId>) => NodeId | null; export declare const getNextAccessible: (data: INode[], id: NodeId, expandedIds: Set<NodeId>) => NodeId | null; export declare const propagateSelectChange: (data: INode[], ids: Set<NodeId>, selectedIds: Set<NodeId>, disabledIds: Set<NodeId>, halfSelectedIds: Set<NodeId>, multiSelect?: boolean) => { every: Set<NodeId>; some: Set<NodeId>; none: Set<NodeId>; }; export declare const getAccessibleRange: ({ data, expandedIds, from, to, }: { data: INode[]; expandedIds: Set<NodeId>; from: NodeId; to: NodeId; }) => NodeId[]; /** * This is to help consumers to understand that we do not currently support metadata that is a nested object. If this is needed, make an issue in Github */ export type IFlatMetadata = Record<string, string | number | boolean | undefined | null>; interface ITreeNode<M extends IFlatMetadata = IFlatMetadata> { id?: NodeId; name: string; isBranch?: boolean; children?: ITreeNode<M>[]; metadata?: M; } export declare const flattenTree: <M extends IFlatMetadata = IFlatMetadata>(tree: ITreeNode<M>) => INode<M>[]; export declare const getAriaSelected: ({ isSelected, isDisabled, multiSelect, }: { isSelected: boolean; isDisabled: boolean; multiSelect: boolean; }) => boolean | undefined; export declare const getAriaChecked: ({ isSelected, isDisabled, isHalfSelected, multiSelect, }: { isSelected: boolean; isDisabled: boolean; isHalfSelected: boolean; multiSelect: boolean; }) => boolean | undefined | "mixed"; export declare const propagatedIds: (data: INode[], ids: NodeId[], disabledIds: Set<NodeId>) => NodeId[]; export declare const onComponentBlur: (event: React.FocusEvent, treeNode: HTMLUListElement | null, callback: () => void) => void; export declare const isBranchSelectedAndHasSelectedDescendants: (data: INode[], elementId: NodeId, selectedIds: Set<NodeId>) => boolean; export declare const isBranchSelectedAndHasAllSelectedEnabledDescendants: (data: INode[], elementId: NodeId, selectedIds: Set<NodeId>, disabledIds: Set<NodeId>) => boolean; export declare const isBranchNotSelectedAndHasOnlySelectedChild: (data: INode[], elementId: NodeId, selectedIds: Set<NodeId>) => boolean; export declare const isBranchSelectedAndHasOnlySelectedChild: (data: INode[], elementId: NodeId, selectedIds: Set<NodeId>) => boolean; export declare const getOnSelectTreeAction: (data: INode[], elementId: NodeId, selectedIds: Set<NodeId>, disabledIds: Set<NodeId>) => "HALF_SELECT" | "TOGGLE_SELECT"; export declare const getTreeParent: <M extends IFlatMetadata = IFlatMetadata>(data: INode<M>[]) => INode<M>; export declare const getTreeNode: <M extends IFlatMetadata = IFlatMetadata>(data: INode<M>[], id: NodeId) => INode<M>; /** * We need to validate a tree data for * - duplicates * - node references to itself * - node has duplicated children * - no root node in a tree * - more then one root node in a tree * - to have nodes to display * */ export declare const validateTreeViewData: (data: INode[]) => void; export {};