fastlion-amis
Version:
一种MIS页面生成工具
106 lines (105 loc) • 2.54 kB
TypeScript
import React from 'react';
import { RendererProps } from '../../factory';
import type { TooltipObject } from '../../components/TooltipWrapper';
import { IColumn } from '../../store/table';
export interface ColumnTogglerProps extends RendererProps {
/**
* 按钮文字
*/
label?: string | React.ReactNode;
/**
* 按钮提示文字,hover focus 时显示
*/
tooltip?: string | TooltipObject;
/**
* 禁用状态下的提示
*/
disabledTip?: string | TooltipObject;
/**
* 点击外部是否关闭
*/
closeOnOutside?: boolean;
/**
* 点击内容是否关闭
*/
closeOnClick?: boolean;
/**
* 下拉菜单对齐方式
*/
align?: 'left' | 'right';
/**
* ColumnToggler的CSS类名
*/
className?: string;
/**
* 按钮的CSS类名
*/
btnClassName?: string;
/**
* 按钮大小
*/
size?: 'xs' | 'sm' | 'md' | 'lg';
/**
* 按钮级别,样式
*/
level?: 'info' | 'success' | 'danger' | 'warning' | 'primary' | 'link';
/**
* 是否独占一行 `display: block`
*/
block?: boolean;
/**
* 是否可通过拖拽排序
*/
draggable?: boolean;
/**
* 默认是否展开
*/
defaultIsOpened?: boolean;
/**
* 激活状态
*/
isActived?: boolean;
/**
* ICON名称
*/
icon?: string | React.ReactNode;
/**
* 是否只显示图标。
*/
iconOnly?: boolean;
/**
* 是否隐藏展开的Icon
*/
hideExpandIcon?: boolean;
/**
* 是否显示遮罩层
*/
overlay?: boolean;
/**
* 列数据
*/
columns: Array<IColumn>;
getRawColumns?: () => Array<IColumn>;
onColumnToggle: (columns: Array<IColumn> | undefined, saveCols: Record<string, any>, canFetch: boolean, targetTemp?: Temp) => void;
modalContainer?: () => HTMLElement;
filteredColumns?: Array<IColumn>;
saveColApi?: {
data?: {
[key: string]: string;
};
method: 'string';
url: string;
};
}
declare type SaveColType = Record<string, {
index: number;
hidden: 0 | 1;
fixed?: string;
}>;
export interface Temp {
tempKey: string;
tempName: string;
columnInfo: SaveColType;
}
declare const ColumnToggler: (props: ColumnTogglerProps) => JSX.Element;
export default ColumnToggler;