import { Type } from '@angular/core'; import { CssCoordinate } from '../../../core'; import { DraggerConfig } from '../../drag-and-drop'; import { ResizerConfig, ResizerEnum } from '../../resizer'; import { DynamicWindowFullscreenOffset } from './fullscreen-offset.interface'; import { SafeAny } from '@pkt/utils'; /** 设置动态窗口的参数,并为将在内部渲染的组件传递一些自定义数据 */ export interface DynamicWindowConfig { /** 动态窗口标题栏的标题文本 */ title?: string; /** 可以通过在动态窗口内呈现的组件访问自定义数据 */ data?: D; /** * 可以使用自定义数据以您想要的方式标记您的窗口. * 当您想像使用一组窗口一样使用一堆窗口时,它会很有用. * 例如,您需要关闭一组类型为: MY_TYPE1的窗口 */ type?: T; /** 标题栏的组件,其内容将被呈现而不是默认内容 */ titleBarCustomContent?: Type; /** 动态窗口的宽度 */ width?: number; /** 动态窗口的高度 */ height?: number; /** 动态窗口的最小宽度 */ minWidth?: number; /** 动态窗口的最小高度 */ minHeight?: number; /** 动态窗口的最大宽度 */ maxWidth?: number; /** 动态窗口的最大高度 */ maxHeight?: number; /** 动态窗口允许调整大小的边 */ allowedResizers?: ResizerEnum[]; /** X轴动态窗口的位置 */ positionX?: number; /** Y轴动态窗口的位置 */ positionY?: number; /** 图标的链接。 将显示在窗口的标题栏中 */ iconUrl?: string; /** 全屏模式下距屏幕边缘的偏移量参数 */ fullscreenOffset?: DynamicWindowFullscreenOffset; /** Coordinates as CSS strings the dynamic window will be hidden into */ hidesInto?: CssCoordinate; /** 动态窗口创建后将处于全屏模式 */ isFullscreenByDefault?: boolean; /** 动态窗口创建后会隐藏 */ isHiddenByDefault?: boolean; /** 定义动态窗口是否可以被用户隐藏 */ isAllowHide?: boolean; /** 定义动态窗口可以在全屏模式和用户窗口模式下切换 */ isAllowFullscreen?: boolean; /** 定义用户是否可以关闭动态窗口 */ isAllowClose?: boolean; /** 具有此标志的动态窗口将始终高于其他没有此标志的动态窗口 */ isAlwaysOnTop?: boolean; /** 允许通过双击标题栏切换到全屏模式和窗口模式 */ isToggleFullscreenByDblClickOnTitleBar?: boolean; /** 允许通过拖动动态窗口的标题栏从全屏模式进入窗口模式 */ isExitFullscreenByDragTitleBar?: boolean; /** 是否标题栏可见 */ isTitleBarVisible?: boolean; /** Stylelist for the dynamic window */ style?: object; /** 动态窗口样式class列表 */ styleClass?: string | string[] | object; /** 动态窗口标题栏的样式列表 */ titleBarStyle?: object; /** 动态窗口标题栏的样式class列表 */ titleBarStyleClass?: string | string[] | object; /** 窗口滚动视图组件的造型师 */ scrollViewStyle?: object; /** 窗口滚动视图组件的类列表 */ scrollViewStyleClass?: string | string[] | object; /** Configuration for {@link DraggableDirective} */ draggerConfig?: DraggerConfig; /** * Configuration for {@link ResizableDirective} * 调整大小配置 */ resizerConfig?: ResizerConfig; }