UNPKG

jamis

Version:

一种支持通过JSON配置方式生成页面的组件库

80 lines (79 loc) 3.23 kB
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; }