jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
123 lines (122 loc) • 2.73 kB
TypeScript
import type { Option, SchemaBoolean, SchemaClassName, SchemaExpression } from 'jamis-core';
import type { ActionSchema, BaseSchema, FormBaseControl, OptionsControlProps, SizeUnit } from '../types';
/**
* Button Group 渲染器。
*
* button-group组件, 会默认当成formitem处理, 逻辑在compact.ts里
*/
export interface ButtonGroupSchema extends BaseSchema, FormBaseControl {
/**
* 指定为提交按钮类型
*/
type: 'button-group';
/**
* 给 Button 配置 className。建议用btnLevel
*/
btnClassName?: SchemaClassName;
/**
* 给选中态 Button 配置 className。建议用btnActiveLevel
* @deprecated 使用 btnActiveLevel
*/
btnActiveClassName?: string;
/**
* 按钮集合
*/
buttons?: Array<ActionSchema>;
/**
* 按钮样式级别
*/
btnLevel?: string;
/**
* 按钮选中的样式级别
*/
btnActiveLevel?: string;
/**
* 垂直展示?
*/
vertical?: boolean;
/**
* 平铺展示?
*/
tiled?: boolean;
/**
* 是否为禁用状态。
*/
disabled?: boolean;
/**
* 通过 JS 表达式来配置当前表单项的禁用状态。
*/
disabledOn?: SchemaBoolean;
/**
* 是否显示
*/
visible?: boolean;
/**
* 通过 JS 表达式来配置当前表单项是否显示
*/
visibleOn?: SchemaBoolean;
/**
* 按钮大小
*/
size?: SizeUnit;
/**
* 按钮选项
*/
options?: Array<Option>;
/**
* @todo 没有实现
*/
multiple?: boolean;
}
export interface ButtonGroupProps extends OptionsControlProps {
/**
* 给 Button 配置 className。建议用btnLevel
*/
btnClassName?: string;
/**
* 给选中态 Button 配置 className。建议用btnActiveLevel
*/
btnActiveClassName?: string;
/**
* 按钮集合
*/
buttons?: Array<ActionSchema>;
/**
* 按钮样式级别
*/
btnLevel?: string;
/**
* 按钮选中的样式级别
*/
btnActiveLevel?: string;
/**
* 垂直展示?
*/
vertical?: boolean;
/**
* 平铺展示?
*/
tiled?: boolean;
/**
* 是否为禁用状态。
*/
disabled?: boolean;
/**
* 通过 JS 表达式来配置当前表单项的禁用状态。
*/
disabledOn?: SchemaBoolean;
/**
* 是否显示
*/
visible?: boolean;
/**
* 通过 JS 表达式来配置当前表单项是否显示
*/
visibleOn?: SchemaExpression;
/**
* 按钮大小
*/
size?: 'xs' | 'sm' | 'md' | 'lg';
clearable?: boolean;
[key: string]: any;
}