fastlion-amis
Version:
一种MIS页面生成工具
113 lines (112 loc) • 3.2 kB
TypeScript
import React from 'react';
import { RendererProps } from '../factory';
import type { TooltipObject, Trigger } from '../components/TooltipWrapper';
import { BaseSchema, SchemaClassName, SchemaIcon } from '../Schema';
import { ActionSchema } from './Action';
import { DividerSchema } from './Divider';
export declare type DropdownButton = (ActionSchema & {
children?: Array<DropdownButton>;
}) | DividerSchema | 'divider';
/**
* 下拉按钮渲染器。
* 文档:https://baidu.gitee.io/amis/docs/components/dropdown-button
*/
export interface DropdownButtonSchema extends BaseSchema {
/**
* 指定为 DropDown Button 类型
*/
type: 'dropdown-button';
/**
* 是否独占一行 `display: block`
*/
block?: boolean;
/**
* 给 Button 配置 className。
*/
btnClassName?: SchemaClassName;
/**
* 按钮集合
*/
buttons?: Array<ActionSchema | DividerSchema | 'divider'>;
/**
* 按钮文字
*/
label?: string;
/**
* 按钮级别,样式
*/
level?: 'info' | 'success' | 'danger' | 'warning' | 'primary' | 'link';
/**
* 按钮提示文字,hover 时显示
*/
/**
* 点击外部是否关闭
*/
closeOnOutside?: boolean;
/**
* 点击内容是否关闭
*/
closeOnClick?: boolean;
/**
* 按钮大小
*/
size?: 'xs' | 'sm' | 'md' | 'lg';
/**
* 对齐方式
*/
align?: 'left' | 'right';
/**
* 是否只显示图标。
*/
iconOnly?: boolean;
/**
* 右侧图标
*/
rightIcon?: SchemaIcon;
/**
* 触发条件,默认是 click
*/
trigger?: 'click' | 'hover';
/**
* 是否显示下拉按钮
*/
hideCaret?: boolean;
/**
* 菜单 CSS 样式
*/
menuClassName?: string;
}
export interface DropDownButtonProps extends RendererProps, Omit<DropdownButtonSchema, 'type' | 'className'> {
disabledTip?: string | TooltipObject;
/**
* 按钮提示文字,hover focus 时显示
*/
tooltip?: string | TooltipObject;
placement?: 'top' | 'right' | 'bottom' | 'left';
tooltipContainer?: any;
tooltipTrigger?: Trigger | Array<Trigger>;
tooltipRootClose?: boolean;
defaultIsOpened?: boolean;
label?: any;
isActived?: boolean;
menuClassName?: string;
}
export interface DropDownButtonState {
isOpened: boolean;
}
export default class DropDownButton extends React.Component<DropDownButtonProps, DropDownButtonState> {
state: DropDownButtonState;
static defaultProps: Pick<DropDownButtonProps, 'placement' | 'tooltipTrigger' | 'tooltipRootClose'>;
target: any;
constructor(props: DropDownButtonProps);
componentDidMount(): void;
domRef(ref: any): void;
toogle(e: React.MouseEvent<any>): void;
open(): void;
close(): void;
renderButton(button: DropdownButton, index: number | string): React.ReactNode;
renderOuter(): JSX.Element;
render(): JSX.Element;
}
export declare class DropDownButtonRenderer extends DropDownButton {
}