UNPKG

@realsee/dnalogel

Version:
75 lines (74 loc) 3 kB
import type { PartialDeep } from 'type-fest'; import type { BaseOptions } from '../../base/BasePlugin'; import type { Five } from '@realsee/five'; import type { FloorplanServerData } from '../typings/floorplanServerData'; import type { State, Config, EventMap, Parameters, PluginData, PluginServerData, HighlightData } from './typing'; import * as BasePlugin from '../../base/BasePluginWithData'; export declare class Controller extends BasePlugin.Controller<State, EventMap, PluginServerData, PluginData> { name: string; state: State; protected data?: PluginData; private app?; private selector?; private panoIndex; private floorIndex; /** 户型图父容器 */ private wrapper?; /** 户型图主容器 */ private container; /** 展示户型图图前,Five 的 Panorama Longitude */ private lastPanoramaLongitude; /** 户型图大小 */ private size; private defaultMissingFloorConfig; /** 是否已经执行过事件监听 */ private hasAddedEventListener; /** 上一次隐藏是否是用户调用了 hide 导致的 */ private isHiddenByHideFunc; /** 高亮区域 */ private highlightData; constructor(five: Five, params?: Parameters); load(serverData: PluginServerData | FloorplanServerData, state?: Partial<State>, userAction?: boolean): Promise<void>; /** 更新户型图大小 */ updateSize: () => boolean; /** 更新户型图位置 */ updatePosition(): void; /** 把插件的渲染DOM插入到对应的容器中去 */ appendTo(wrapper: Element): this; show(options?: BaseOptions): Promise<void>; hide(options?: BaseOptions): Promise<void>; enable(options?: BaseOptions): void; disable(options?: BaseOptions): void; /** 销毁插件 */ dispose: () => void; /** 更改插件 State */ setState(state: PartialDeep<State>, options?: BaseOptions): void; changeConfigs(config: Partial<Config>, userAction?: boolean): void; highlight: (highlightData: HighlightData) => void; unhighlight: () => void; protected formatData(serverData: PluginServerData): Promise<PluginData>; private _show; private _hide; private _enable; private _disable; private updateState; private addEventListener; private removeEventListener; /** modelLoaded 之后自动执行 append container 操作 */ private onFiveModelLoaded; /** 非 Topview 态隐藏户型图 */ private onFiveModeChange; private onFivePanoArrived; private onFiveCameraUpdate; private onFiveWantsGesture; private onFiveWantsMoveToPano; /** 动画结束后是 Topview 态就展示户型图 */ private onFiveInitAnimationEnded; private onModelShownFloorChange; /** 如果用户是通过 selector 设置父容器,需要在 modelLoaded 之后把 container 自动放到父容器里 * * - TODO: 等 selector 功能下掉之后删除这个逻辑 */ private initContainer; private render; }