UNPKG

rsuite

Version:

A suite of react components

72 lines (71 loc) 2.52 kB
/// <reference types="react" /> import { MultiCascaderProps, ValueType } from './MultiCascader'; import { ItemDataType } from '../@types/common'; export interface ItemType extends ItemDataType { parent?: ItemType; } interface ItemKeys { valueKey: string; labelKey: string; childrenKey: string; } declare type MayHasParent<T extends Record<string, unknown>> = T & { parent?: MayHasParent<T>; }; /** * Get all parents of a node * @param node */ export declare const getParents: <T extends Record<string, unknown>>(node: MayHasParent<T>) => MayHasParent<T>[]; /** * Check if any child nodes are selected. * @param node * @param value * @param itemKeys */ export declare const isSomeChildChecked: <T extends Record<string, unknown>>(node: T, value: ValueType, itemKeys: Omit<ItemKeys, 'labelKey'>) => any; /** * Check if the parent is selected. * @param node * @param value * @param itemKeys */ export declare const isSomeParentChecked: <T extends Record<string, unknown>>(node: MayHasParent<T>, value: ValueType, itemKeys: Pick<ItemKeys, 'valueKey'>) => any; export declare const getOtherItemValuesByUnselectChild: <T>(itemNode: ItemType, value: any, itemKeys: Omit<ItemKeys, 'labelKey'>) => T[]; /** * Remove the values of all children. */ export declare const removeAllChildrenValue: <T>(value: T[], item: ItemType, itemKeys: Omit<ItemKeys, 'labelKey'>) => T[] | undefined; /** * A hook to flatten tree structure data * @param data */ export declare function useFlattenData<T>(data: T[], itemKeys: ItemKeys): { addFlattenData: (children: T[], parent: T) => void; flattenData: T[]; }; /** * A hook for column data * @param flattenData */ export declare function useColumnData<T extends MayHasParent<Record<string, unknown>>>(flattenData: T[]): { columnData: T[][]; addColumn: (column: T[], index: number) => void; romoveColumnByIndex: (index: number) => void; setColumnData: import("react").Dispatch<import("react").SetStateAction<T[][]>>; enforceUpdateColumnData: (nextData: T[]) => void; }; /** * A hook that converts the value into a cascading value * @param props * @param flattenData */ export declare function useCascadeValue<T>(props: Partial<MultiCascaderProps<T[]>> & ItemKeys, flattenData: ItemType[]): { value: T[]; setValue: import("react").Dispatch<import("react").SetStateAction<T[]>>; splitValue: (item: ItemType, checked: boolean, value: T[]) => { value: T[]; removedValue: T[]; }; }; export {};