jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
80 lines (79 loc) • 3.23 kB
TypeScript
import type { RendererProps, SchemaBoolean, SchemaClassName } from 'jamis-core';
import type { Offset, SchemaCollection } from '../types';
export type PopOverPosition = 'auto' | 'center' | 'left-top' | 'left-top-left-top' | 'left-top-left-center' | 'left-top-left-bottom' | 'left-top-center-top' | 'left-top-center-center' | 'left-top-center-bottom' | 'left-top-right-top' | 'left-top-right-center' | 'left-top-right-bottom' | 'right-top' | 'right-top-left-top' | 'right-top-left-center' | 'right-top-left-bottom' | 'right-top-center-top' | 'right-top-center-center' | 'right-top-center-bottom' | 'right-top-right-top' | 'right-top-right-center' | 'right-top-right-bottom' | 'left-bottom' | 'left-bottom-left-top' | 'left-bottom-left-center' | 'left-bottom-left-bottom' | 'left-bottom-center-top' | 'left-bottom-center-center' | 'left-bottom-center-bottom' | 'left-bottom-right-top' | 'left-bottom-right-center' | 'left-bottom-right-bottom' | 'right-bottom' | 'right-bottom-left-top' | 'right-bottom-left-center' | 'right-bottom-left-bottom' | 'right-bottom-center-top' | 'right-bottom-center-center' | 'right-bottom-center-bottom' | 'right-bottom-right-top' | 'right-bottom-right-center' | 'right-bottom-right-bottom' | 'fixed-center' | 'fixed-left-top' | 'fixed-right-top' | 'fixed-left-bottom' | 'fixed-right-bottom';
export interface SchemaPopOverObject {
/**
* HOC弹框容器`.cxd-PopOverAble`
*/
className?: SchemaClassName;
/**
* 弹框外层`.cxd-PopOverAble-popover`类名
*/
popOverClassName?: SchemaClassName;
/**
* 元素`.cxd-PopOverWrap`的样式类
*/
popOverWrapClassName?: SchemaClassName;
popOverBtnClassName?: SchemaClassName;
popOverEnable?: boolean;
/**
* 配置当前行是否启动,要用表达式
*/
popOverEnableOn?: SchemaBoolean;
/**
* 弹出模式
*/
mode?: 'dialog' | 'drawer' | 'popOver';
/**
* 是弹窗形式的时候有用。
*/
size?: 'sm' | 'md' | 'lg' | 'xl';
/**
* 弹出位置
*/
position?: PopOverPosition;
/**
* 触发条件,默认是 click
*/
trigger?: 'click' | 'hover';
/**
* 是否显示查看更多的 icon,通常是放大图标。
*/
showIcon?: boolean;
/**
* 偏移量
*/
offset?: Partial<Offset>;
/**
* 标题
*/
title?: string;
body?: SchemaCollection;
/**
* 外部控制的打开状态
*/
isOpened?: boolean | SchemaBoolean;
isOpenedOn?: SchemaBoolean;
/**
* 点击外部时是否关闭popover
*/
closeOnOutside?: boolean;
closeOnOutsideOn?: SchemaBoolean;
/**
* 点击container时是否关闭popover, 默认是true
*/
closeOnContainer?: boolean;
}
export type SchemaPopOver = boolean | SchemaPopOverObject;
export interface PopOverHocProps extends RendererProps {
name?: string;
label?: string;
popOver: boolean | SchemaPopOverObject;
/**
* @deprecated 使用 popOverEnabled 替代
*/
popOverEnable?: boolean | string;
popOverEnabled?: boolean | string;
onPopOverOpened: (popover: any) => void | boolean;
onPopOverClosed: (popover: any) => void | boolean;
}