jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
74 lines (73 loc) • 3.13 kB
TypeScript
import React from 'react';
import type { ActionObject, Option } from 'jamis-core';
import type { ItemRenderStates, TreeCompRef, TreeDropInfo, TreeSelectProps } from '../types';
interface TreeSelectState {
isOpened: boolean;
inputValue: string;
}
declare class TreeRenderer extends React.Component<TreeSelectProps, TreeSelectState> {
static defaultProps: Partial<TreeSelectProps>;
treeRef: TreeCompRef;
targetRef: React.RefObject<HTMLDivElement>;
container: React.RefObject<HTMLDivElement>;
input: React.RefObject<HTMLInputElement>;
cache: {
[propName: string]: any;
};
/** 是否加载过一次 */
autoCompleteLoadOnce: boolean;
/** 在loading的时候, 是否保留dom */
keepTreeDOM: boolean;
/** 标识已经发送了change事件的值 */
valueEmitedChangeEvent: any;
constructor(props: TreeSelectProps);
componentDidMount(): void;
componentDidUpdate(prevProps: Readonly<TreeSelectProps>, prevState: Readonly<TreeSelectState>): void;
open(fn?: () => void): void;
close(): void;
handleFocus: (e: any) => void;
handleBlur: (e: any) => void;
handleKeyPress: (e: React.KeyboardEvent) => void;
validate(): any;
removeItem(index: number, e?: React.MouseEvent<HTMLElement>): void;
handleChange: (value: any, changedOption?: Option) => Promise<boolean>;
handleInputChange: (value: string) => void;
handleInputKeyDown: (event: React.KeyboardEvent) => void;
handleSort: (parent: Option | undefined, index: number, mode: "desc" | "asc") => void;
/**
* 处理拖拽移动节点
*/
handleMove: (dropInfo: TreeDropInfo) => Promise<void>;
clearValue(): void;
/**
* 计算出过滤后的项
*/
getFilteredOptions: () => Option[];
loadRemote(input: string): Promise<{
options: Option[];
} | undefined>;
mergeOptions(options: Array<object>): Option[];
reload(): void;
handleOutClick: (e: React.MouseEvent<any>) => void;
handleResultChange: (value: Array<Option>, changedOption?: Option) => void;
doAction(action: ActionObject, data: any, throwErrors: boolean): any;
resultChangeEvent: (value: any, changedOption?: Option) => Promise<boolean>;
renderItem: (item: Option) => any;
/**
* 以树状样式渲染选中的项
*/
renderSelectedItemAsTree: (item: Option, onRemove: (ev: React.MouseEvent, item: Option) => void) => JSX.Element;
renderSelectedItems: (selectedItems: Option[]) => JSX.Element[] | Option[];
domRef(ref: TreeCompRef): void;
renderOptionItem: (option: Option, states: ItemRenderStates) => JSX.Element;
dispatchTreeEvent: (eventName: "click" | "sort-asc" | "sort-desc", value: Record<string, any>) => Promise<boolean>;
calcPlaceholder: (useAutoComplete: boolean) => string;
renderChild: (region: string, schema: any, childProps?: Record<string, any>) => JSX.Element;
renderOuter(): JSX.Element;
render(): JSX.Element;
}
export declare class TreeSelectControlRenderer extends TreeRenderer {
}
export declare class TreeControlRenderer extends TreeRenderer {
}
export {};