UNPKG

bonree-cascader

Version:

cascade select ui component for react

71 lines (70 loc) 3.26 kB
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;