import React, { Component } from 'react'; import { RenderOptions } from 'amis-core'; import type { Schema } from 'amis'; import { EditorStoreType } from '../store/editor'; import { EditorManager } from '../manager'; export interface PreviewProps { theme?: string; /** 应用语言类型 */ appLocale?: string; amisEnv?: any; className?: string; editable?: boolean; isMobile?: boolean; store: EditorStoreType; manager: EditorManager; data?: any; autoFocus?: boolean; toolbarContainer?: () => any; readonly?: boolean; ref?: any; } export interface PreviewState { ready?: boolean; } export default class Preview extends Component { currentDom: React.RefObject; dialogReaction: any; env: RenderOptions; doingSelection: boolean; componentDidMount(): void; componentWillUnmount(): void; unSensor?: () => void; layer?: HTMLDivElement; scrollLayer?: HTMLDivElement; handleLayerScroll(e: WheelEvent): void; contentsRef(ref: HTMLDivElement | null): void; readonly unReaction: () => void; handlePreviewViewChange(): void; getHighlightNodes(): string[]; calculateHighlightBox(ids: Array): void; handeMouseDown(e: MouseEvent): void; /** 拖拽多选 */ doSelection(rect: { x: number; y: number; w: number; h: number; }): void; handleClick(e: MouseEvent): void; handleDBClick(e: MouseEvent): void; handleNavSwitch(id: string): void; handleMouseMove(e: MouseEvent): void; getElementPoint(e: MouseEvent): { x: number; y: number; }; handleMouseLeave(): void; handeMouseOver(e: MouseEvent): void; handleSubmit(e: Event): void; handleDragEnter(e: React.DragEvent): void; handleDragLeave(e: React.DragEvent): void; handleDragOver(e: React.DragEvent): void; handleDrop(e: React.DragEvent): void; handleWidgetsDragEnter(e: React.DragEvent): void; getCurrentTarget(): HTMLDivElement; rendererResolver(path: string, schema: Schema, props: any): RendererConfig; render(): React.JSX.Element; } /** * 这个用了 observer,所以能最小程度的刷新,数据不变按理是不会刷新的。 */ export interface SmartPreviewProps { editable?: boolean; autoFocus?: boolean; store: EditorStoreType; env: any; data?: any; manager: EditorManager; /** 应用语言类型 */ appLocale?: string; }