bonree-cascader
Version:
cascade select ui component for react
71 lines (70 loc) • 3.26 kB
TypeScript
import * as React from 'react';
import type { TreeSelectProps } from 'bonree-tree-select';
import type { LabelValueType } from 'bonree-tree-select/lib/interface';
import type { Placement } from 'bonree-select/lib/generate';
import type { CascaderValueType, DataNode, FieldNames, ShowSearchType } from './interface';
interface BaseCascaderProps extends Omit<TreeSelectProps, 'value' | 'defaultValue' | 'filterTreeNode' | 'labelInValue' | 'loadData' | 'multiple' | 'showCheckedStrategy' | 'showSearch' | 'treeCheckable' | 'treeDataSimpleMode' | 'treeNodeFilterProp' | 'treeNodeLabelProp' | 'treeDefaultExpandAll' | 'treeDefaultExpandedKeys' | 'treeExpandedKeys' | 'treeIcon' | 'onChange'> {
options?: DataNode[];
children?: React.ReactElement;
value?: CascaderValueType | CascaderValueType[];
defaultValue?: CascaderValueType | CascaderValueType[];
changeOnSelect?: boolean;
allowClear?: boolean;
disabled?: boolean;
fieldNames?: FieldNames;
displayRender?: (label: React.ReactNode[], selectedOptions: DataNode[]) => React.ReactNode;
showSearch?: boolean | ShowSearchType;
searchValue?: string;
onSearch?: (search: string) => void;
/** @deprecated Use `open` instead */
popupVisible?: boolean;
/** @deprecated Use `dropdownClassName` instead */
popupClassName?: string;
dropdownClassName?: string;
/** @deprecated Use `placement` instead */
popupPlacement?: Placement;
placement?: Placement;
/** @deprecated Use `onDropdownVisibleChange` instead */
onPopupVisibleChange?: (open: boolean) => void;
onDropdownVisibleChange?: (open: boolean) => void;
expandTrigger?: 'hover' | 'click';
dropdownMenuColumnStyle?: React.CSSProperties;
/** @private Internal usage. Do not use in your production. */
dropdownPrefixCls?: string;
loadData?: (selectOptions: DataNode[]) => void;
expandIcon?: React.ReactNode;
loadingIcon?: React.ReactNode;
requestFailureIcon?: React.ReactNode;
requestFailureText?: string;
refreshText?: string;
empty?: React.ReactNode;
/** 是否显示"全部"选项 */
showAll?: boolean;
/** "全部"选项的文案 */
selectAllText?: React.ReactNode;
/** 当选中第一层所有选项后是否只反显"全部"一项 */
isSelectAll?: boolean;
}
declare type OnSingleChange = (value: CascaderValueType, selectOptions: DataNode[]) => void;
declare type OnMultipleChange = (value: CascaderValueType[], selectOptions: DataNode[][]) => void;
export declare enum LOAD_STATUS {
LOADING = "RC_LOADING_RC",
EMPTY = "RC_EMPTY_RC",
FAILED = "RC_LOADED_FAILED_RC"
}
export interface SingleCascaderProps extends BaseCascaderProps {
checkable?: false;
onChange?: OnSingleChange;
}
export interface MultipleCascaderProps extends BaseCascaderProps {
checkable: true | React.ReactNode;
maxTagPlaceholder?: (omittedValues: LabelValueType[]) => React.ReactNode;
onChange?: OnMultipleChange;
}
export declare type CascaderProps = SingleCascaderProps | MultipleCascaderProps;
interface CascaderRef {
focus: () => void;
blur: () => void;
}
declare const Cascader: React.ForwardRefExoticComponent<CascaderProps & React.RefAttributes<CascaderRef>>;
export default Cascader;