import { IDestroyable } from '../../common'; import { IModelSource } from '../model'; import { IRegion } from '../region'; import { Dimensions, GraphicOption } from '../../interface'; /** * 数据报告page 用户接口 * 为了避免用户意外调用内部方法,将页面实例包裹在IPage中 */ export interface IPage extends IDestroyable { readonly element: HTMLElement; /** * 设置页面缩放比例 */ scale: number; /** * 修改页面尺寸,页面内的图表的尺寸同步缩放 * @param dimensions */ adapt(dimensions: Dimensions | 'screen'): any; /** * 页面进入全屏模式 * note:全屏API支持IE 11+ 和所有现代的Chrome、Firefox桌面浏览器 */ enterFullScreen(): any; /** * 页面退出全屏(该方法的实现只需要简单调用document.exitFullscreen方法) * 方式一:按 ESC 或 F11 键退出全屏 * 方式二:[keydown event] + document.exitFullscreen自定义全屏退出逻辑 * @return A Promise which is resolved once the user agent has finished exiting full-screen mode. * If an error occurs while attempting to exit full-screen mode, * the catch() handler for the promise is called. * note:exitFullscreen方法只存在于document对象上,而不存在与elem */ exitFullScreen(): Promise; } /** * 页面逻辑实现的核心 */ export interface IPageKernel extends IDestroyable { asPage(): IPage; asPageInner(): IPageInner; } export interface IPageInner { addChild(child: IRegion): any; removeChild(child: IRegion): any; getModelSource(graphicOption: GraphicOption): IModelSource; }