UNPKG

map-sdk-lite

Version:

地图SDK - 基于Mapbox的定制开发,支持区域标绘、数据展示、3D地形等功能

1,035 lines (983 loc) 28.1 kB
import * as turf from '@turf/turf'; /** * 底图配置接口 */ export declare interface BaseMapConfig { /** 底图名称 */ name: string; /** 瓦片服务URL,支持单个URL或URL数组(用于负载均衡) */ tiles: string | string[]; /** 瓦片大小 */ tileSize?: number; /** 最小缩放级别 */ minzoom?: number; /** 最大缩放级别 */ maxzoom?: number; /** 属性信息 */ attribution?: string; } /** * BD09 转 GCJ02 */ export declare function bd09ToGcj02(lng: number, lat: number): [number, number]; /** * BD09 转 WGS84 */ export declare function bd09ToWgs84(lng: number, lat: number): [number, number]; /** * 计算两点间的方位角(度) * @param lng1 起点经度 * @param lat1 起点纬度 * @param lng2 终点经度 * @param lat2 终点纬度 * @returns 方位角(0-360度) */ export declare function calculateBearing(lng1: number, lat1: number, lng2: number, lat2: number): number; /** * 计算两点之间的距离(米) * @param coord1 点1 [经度, 纬度] * @param coord2 点2 [经度, 纬度] * @returns 距离(米) */ export declare function calculateDistance(coord1: [number, number], coord2: [number, number]): number; /** * 计算两点间的距离(米) * 使用 Haversine 公式 * @param lng1 第一点经度 * @param lat1 第一点纬度 * @param lng2 第二点经度 * @param lat2 第二点纬度 * @returns 距离(米) */ declare function calculateDistance_2(lng1: number, lat1: number, lng2: number, lat2: number): number; /** * 计算线段长度(米) * @param coordinates 坐标数组 [[lng, lat], ...] * @returns 总长度(米) */ export declare function calculateLineLength(coordinates: [number, number][]): number; /** * 计算多边形面积(平方米) * 使用 Shoelace 公式 * @param coordinates 坐标数组 [[lng, lat], ...] * @returns 面积(平方米) */ export declare function calculatePolygonArea(coordinates: [number, number][]): number; /** * 计算多边形的中心点 * @param coordinates 坐标数组 [[lng, lat], ...] * @returns 中心点 [lng, lat] */ export declare function calculatePolygonCenter(coordinates: [number, number][]): [number, number]; /** * 坐标转换选项 */ export declare interface CoordinateOptions { /** 源坐标系 */ from: CoordinateSystem; /** 目标坐标系 */ to: CoordinateSystem; } /** * 坐标系类型 */ export declare type CoordinateSystem = 'WGS84' | 'GCJ02' | 'BD09'; /** * 数学计算工具类 * 提供地图相关的几何计算功能 */ /** * 角度转弧度 */ export declare function degToRad(deg: number): number; /** * 绘制模式枚举 - 只包含面绘制相关模式 */ export declare enum DrawMode { /** 简单选择模式 */ SIMPLE_SELECT = "simple_select", /** 直接选择模式 */ DIRECT_SELECT = "direct_select", /** 绘制多边形模式 */ DRAW_POLYGON = "draw_polygon", /** 静态模式 */ STATIC = "static" } /** * 面绘制控件选项接口 - 专用于面绘制功能 */ export declare interface DrawOptions { /** 默认绘制模式 */ defaultMode?: DrawMode; /** 是否启用键盘快捷键 */ keybindings?: boolean; /** 是否启用触摸操作 */ touchEnabled?: boolean; /** 是否启用框选 */ boxSelect?: boolean; /** 点击缓冲区像素大小 */ clickBuffer?: number; /** 触摸缓冲区像素大小 */ touchBuffer?: number; /** 控制工具配置 */ controls?: DrawToolsConfig; /** 是否显示测量信息 */ displayControlsDefault?: boolean; /** 用户自定义属性 */ userProperties?: boolean; } /** * 面绘制工具配置接口 - 只包含面绘制相关配置 */ export declare interface DrawToolsConfig { /** 是否显示多边形绘制工具 */ polygon?: boolean; /** 是否显示删除工具 */ trash?: boolean; } /** * 缓动动画选项接口 */ export declare interface EaseToOptions { /** 目标中心点 */ center?: [number, number]; /** 目标缩放级别 */ zoom?: number; /** 目标方位角 */ bearing?: number; /** 目标倾斜角 */ pitch?: number; /** 动画持续时间(毫秒) */ duration?: number; /** 缓动函数 */ easing?: (t: number) => number; /** 是否必要时进行缩放 */ essential?: boolean; } /** * 事件总线类 - 统一管理所有事件监听和触发 * 支持 UniApp WebView 与 App 之间的通信 */ export declare class EventBus { private events; private isUniApp; constructor(); /** * 检测是否在 UniApp WebView 环境中 */ private checkUniAppEnvironment; /** * 添加事件监听器 * @param eventName 事件名称 * @param handler 事件处理函数 */ on(eventName: string, handler: MapEventHandler): void; /** * 移除事件监听器 * @param eventName 事件名称 * @param handler 事件处理函数,如果不传则移除所有该事件的监听器 */ off(eventName: string, handler?: MapEventHandler): void; /** * 触发事件 * @param eventName 事件名称 * @param data 事件数据 */ emit(eventName: string, data?: any): void; /** * 向 UniApp 发送消息 * @param eventName 事件名称 * @param data 事件数据 */ private postToApp; /** * 监听来自 App 的消息 * @param handler 消息处理函数 */ onAppMessage(handler: (message: any) => void): void; /** * 销毁事件总线,清除所有监听器 */ destroy(): void; /** * 获取所有事件名称 */ getEventNames(): string[]; /** * 获取指定事件的监听器数量 */ getListenerCount(eventName: string): number; } /** * 飞行动画选项接口 */ export declare interface FlyToOptions { /** 目标中心点 */ center?: [number, number]; /** 目标缩放级别 */ zoom?: number; /** 目标方位角 */ bearing?: number; /** 目标倾斜角 */ pitch?: number; /** 动画持续时间(毫秒) */ duration?: number; /** 是否必要时进行缩放 */ essential?: boolean; } /** * 格式化面积显示 * @param area 面积(平方米) * @returns 格式化的面积字符串 */ export declare function formatArea(area: number): string; /** * 格式化距离显示 * @param distance 距离(米) * @returns 格式化的距离字符串 */ export declare function formatDistance(distance: number): string; /** * GCJ02 转 BD09 */ export declare function gcj02ToBd09(lng: number, lat: number): [number, number]; /** * GCJ02 转 WGS84 */ export declare function gcj02ToWgs84(lng: number, lat: number): [number, number]; /** * GeoJSON Feature 接口 - 主要用于面要素 */ export declare interface GeoJSONFeature { /** 要素类型 */ type: 'Feature'; /** 要素ID */ id?: string | number; /** 几何对象 */ geometry: { type: 'Polygon' | 'MultiPolygon' | 'Point' | 'LineString' | 'MultiPoint' | 'MultiLineString'; coordinates: any[]; }; /** 属性信息 */ properties: Record<string, any>; } /** * GeoJSON FeatureCollection 接口 */ export declare interface GeoJSONFeatureCollection { /** 集合类型 */ type: 'FeatureCollection'; /** 要素数组 */ features: GeoJSONFeature[]; } /** * 判断点是否在多边形内(射线法) * @param point 点坐标 [经度, 纬度] * @param polygon 多边形顶点数组 * @returns 是否在多边形内 */ export declare function isPointInPolygon(point: [number, number], polygon: [number, number][]): boolean; /** * 跳转选项接口 */ export declare interface JumpToOptions { /** 目标中心点 */ center?: [number, number]; /** 目标缩放级别 */ zoom?: number; /** 目标方位角 */ bearing?: number; /** 目标倾斜角 */ pitch?: number; } /** * 日志管理类 */ declare class Logger { private currentLevel; private prefix; /** * 设置日志级别 */ setLevel(level: 'error' | 'warn' | 'info' | 'debug'): void; /** * 错误日志 */ error(message: string, ...args: any[]): void; /** * 警告日志 */ warn(message: string, ...args: any[]): void; /** * 信息日志 */ info(message: string, ...args: any[]): void; /** * 调试日志 */ debug(message: string, ...args: any[]): void; } export declare const logger: Logger; /** * 地图事件处理函数接口 */ export declare interface MapEventHandler { (event: any): void; } /** * 地图实例接口 - 基于mapbox-gl.js的核心API */ export declare interface MapInstance { /** 获取地图中心点 */ getCenter(): [number, number]; /** 获取当前缩放级别 */ getZoom(): number; /** 获取当前方位角 */ getBearing(): number; /** 获取当前倾斜角 */ getPitch(): number; /** 设置地图中心点 */ setCenter(center: [number, number], eventData?: any): MapInstance; /** 设置缩放级别 */ setZoom(zoom: number, eventData?: any): MapInstance; /** 设置方位角 */ setBearing(bearing: number, eventData?: any): MapInstance; /** 设置倾斜角 */ setPitch(pitch: number, eventData?: any): MapInstance; /** 飞行到指定位置 */ flyTo(options: FlyToOptions): MapInstance; /** 缓动到指定位置 */ easeTo(options: EaseToOptions): MapInstance; /** 跳转到指定位置 */ jumpTo(options: JumpToOptions): MapInstance; /** 平移到指定位置 */ panTo(center: [number, number], options?: PanToOptions): MapInstance; /** 缩放到指定级别 */ zoomTo(zoom: number, options?: ZoomToOptions): MapInstance; /** 旋转到指定角度 */ rotateTo(bearing: number, options?: RotateToOptions): MapInstance; /** 设置底图 */ setBaseMap(config: BaseMapConfig): MapInstance; /** 添加地形 */ addTerrain(config: TerrainConfig): MapInstance; /** 移除地形 */ removeTerrain(): MapInstance; /** 检查是否启用地形 */ hasTerrain(): boolean; /** 开始绘制多边形 */ drawPolygon(): MapInstance; /** 进入选择模式 */ selectMode(): MapInstance; /** 完成当前绘制 */ finishDrawing(): MapInstance; /** 删除选中的要素或顶点 */ deleteSelected(): MapInstance; /** 获取所有绘制的要素 */ getAllFeatures(): GeoJSONFeatureCollection; /** 获取选中的要素 */ getSelectedFeatures(): GeoJSONFeatureCollection; /** 添加要素 */ addFeatures(features: GeoJSONFeatureCollection | GeoJSONFeature[] | SimplePolygonData[]): string[]; /** 删除要素 */ deleteFeatures(featureIds: string[]): MapInstance; /** 清空所有要素 */ clearAllFeatures(): MapInstance; /** 设置绘制模式 */ changeDrawMode(mode: DrawMode): MapInstance; /** 获取当前绘制模式 */ getDrawMode(): DrawMode; /** 计算指定要素的面积(平方米) */ calculateFeatureArea(feature: GeoJSONFeature): number; /** 计算指定要素的周长(米) */ calculateFeaturePerimeter(feature: GeoJSONFeature): number; /** 获取指定要素的详细信息(包含面积、周长、中心点等) */ getFeatureInfo(featureId: string): { area: number; perimeter: number; center: [number, number]; feature: GeoJSONFeature; } | null; /** 启用编辑模式(移动端专用) */ enableEditMode(): boolean; /** 禁用编辑模式(移动端专用) */ disableEditMode(): boolean; /** 切换编辑模式(移动端专用) */ toggleEditMode(): boolean; /** 获取当前编辑模式状态 */ getEditModeEnabled(): boolean; /** 检测是否为移动设备 */ isMobileDevice(): boolean; /** 创建Popup实例 */ createPopup(options?: PopupOptions): PopupInstance; /** 在指定位置显示Popup */ showPopup(lngLat: [number, number], html: string, options?: PopupOptions): PopupInstance; /** 关闭所有Popup */ closeAllPopups(): MapInstance; /** 获取当前打开的Popup */ getCurrentPopup(): PopupInstance | null; /** 添加事件监听 */ on(type: string, handler: MapEventHandler): MapInstance; /** 移除事件监听 */ off(type: string, handler?: MapEventHandler): MapInstance; /** 销毁地图实例 */ remove(): void; /** 重新调整地图大小 */ resize(): MapInstance; /** 设置地图样式 */ setStyle(style: string | object): MapInstance; /** 获取地图容器 */ getContainer(): HTMLElement; /** 获取地图画布 */ getCanvas(): HTMLCanvasElement; } /** * 地图管理类 - 核心地图实例管理 * 负责地图的创建、配置、生命周期管理 */ export declare class MapManager { private mapInstance; private polygonDrawManager; private popupManager; private eventBus; private container; private options; private isDestroyed; constructor(options: MapOptions, eventBus: EventBus); /** * 验证初始化选项 */ private validateOptions; /** * 获取容器元素 */ private getContainerElement; /** * 初始化地图实例 */ initializeMap(): Promise<MapInstance>; /** * 设置Popup管理器 */ private setupPopupManager; /** * 设置面绘制功能 */ private setupPolygonDraw; /** * 设置3D地形 */ private setupTerrain; /** * 设置事件代理 */ private setupEventProxy; /** * 创建地图实例包装器 */ private createMapInstanceWrapper; /** * 内部添加地形方法 */ private addTerrainInternal; /** * 内部移除地形方法 */ private removeTerrainInternal; /** * 内部检查地形方法 */ private hasTerrainInternal; /** * 内部设置底图方法 */ private setBaseMapInternal; /** * 设置地图样式 */ setStyle(style: string | object): void; /** * 获取原始地图实例(用于高级操作) */ getRawMapInstance(): any; /** * 获取地图实例包装器 */ getMapInstance(): MapInstance | null; /** * 销毁地图实例 */ private destroyMap; /** * 销毁MapManager */ destroy(): void; /** * 检查是否已销毁 */ isMapDestroyed(): boolean; } /** * 地图初始化选项接口 */ export declare interface MapOptions { /** 地图容器元素ID或HTML元素 */ container: string | HTMLElement; /** 地图样式URL或样式对象 */ style?: string | object; /** 地图中心点坐标 [经度, 纬度] */ center?: [number, number]; /** 初始缩放级别 */ zoom?: number; /** 地图方位角 */ bearing?: number; /** 地图倾斜角 */ pitch?: number; /** 最小缩放级别 */ minZoom?: number; /** 最大缩放级别 */ maxZoom?: number; /** 是否允许交互 */ interactive?: boolean; /** 是否显示属性控件 */ attributionControl?: boolean; /** 是否显示Logo */ logoControl?: boolean; /** 是否显示导航控件 */ navigationControl?: boolean; /** 是否启用3D地形 */ terrain?: boolean; /** 是否启用抗锯齿 */ antialias?: boolean; /** 是否启用绘制功能 */ draw?: boolean; } /** * 地图 SDK 主类 * 提供地图创建、管理和销毁的完整生命周期管理 * 支持 UniApp WebView 与 App 的通信 */ declare class MapSDK { private mapManager; private eventBus; private options; private isInitialized; /** * 构造函数 * @param options 地图初始化选项 */ constructor(options: MapOptions); /** * 设置与 App 的通信 */ private setupAppCommunication; /** * 初始化地图 * @returns Promise<MapInstance> 地图实例 */ initialize(): Promise<MapInstance>; /** * 设置地图样式 * @param style 地图样式 URL 或样式对象 */ setStyle(style: string | object): void; /** * 获取地图实例 * @returns MapInstance | null 地图实例 */ getMapInstance(): MapInstance | null; /** * 获取原始地图实例(用于高级操作) * @returns any 原始 mapbox-gl 地图实例 */ getRawMapInstance(): any; /** * 获取事件总线实例 * @returns EventBus 事件总线实例 */ getEventBus(): EventBus; /** * 监听 SDK 事件 * @param eventName 事件名称 * @param handler 事件处理函数 */ on(eventName: string, handler: (data?: any) => void): void; /** * 移除 SDK 事件监听 * @param eventName 事件名称 * @param handler 事件处理函数 */ off(eventName: string, handler?: (data?: any) => void): void; /** * 向 App 发送消息 * @param action 动作名称 * @param data 数据 */ postToApp(action: string, data?: any): void; /** * 检查是否已初始化 * @returns boolean 是否已初始化 */ isMapInitialized(): boolean; /** * 销毁地图 SDK */ destroy(): void; /** * 获取turf.js库(用于地理计算) * @returns turf.js库对象 */ static getTurf(): typeof turf; /** * 获取 SDK 版本信息 * @returns string 版本号 */ static getVersion(): string; /** * 获取 SDK 信息 * @returns object SDK 信息 */ static getInfo(): object; } export { MapSDK } export default MapSDK; /** * 数学工具集合 */ export declare const mathUtils: { degToRad: typeof degToRad; radToDeg: typeof radToDeg; calculateDistance: typeof calculateDistance_2; calculateBearing: typeof calculateBearing; calculatePolygonArea: typeof calculatePolygonArea; calculateLineLength: typeof calculateLineLength; pointInPolygon: typeof pointInPolygon; calculatePolygonCenter: typeof calculatePolygonCenter; formatArea: typeof formatArea; formatDistance: typeof formatDistance; EARTH_RADIUS: number; }; /** * 平移选项接口 */ export declare interface PanToOptions { /** 动画持续时间(毫秒) */ duration?: number; /** 缓动函数 */ easing?: (t: number) => number; /** 是否启用动画 */ animate?: boolean; } /** * 判断点是否在多边形内 * 使用射线投射算法 * @param point 测试点 [lng, lat] * @param polygon 多边形坐标数组 [[lng, lat], ...] * @returns 是否在多边形内 */ export declare function pointInPolygon(point: [number, number], polygon: [number, number][]): boolean; /** * 计算点到线的距离 * @param point 点坐标 [经度, 纬度] * @param lineStart 线起点 [经度, 纬度] * @param lineEnd 线终点 [经度, 纬度] * @returns 距离(米) */ export declare function pointToLineDistance(point: [number, number], lineStart: [number, number], lineEnd: [number, number]): number; /** * 专用于面绘制的管理器 * 只包含polygon相关的绘制功能,不包含点和线 */ export declare class PolygonDrawManager { private drawInstance; private mapInstance; private eventBus; private isEnabled; private isEditModeEnabled; private isMobileDevice; private selectedFeatureId; private previousSelectedFeatureId; private lastCreatedFeatureId; private customModes; constructor(mapInstance: any, eventBus: EventBus); /** * 检测是否为移动设备 */ private detectMobileDevice; /** * 初始化面绘制功能 */ initialize(): Promise<void>; /** * 将GeoJSON要素转换为简化格式 */ private convertGeoJSONToSimple; /** * 设置事件监听器 */ private setupEventListeners; /** * 开始绘制面 */ startDrawPolygon(): void; /** * 切换到选择模式 */ selectMode(): void; /** * 完成当前绘制 * 当处于绘制模式时,完成当前正在绘制的多边形 */ finishDrawing(): void; /** * 删除选中的要素或顶点(统一删除方法) */ deleteSelected(): void; /** * 获取所有面要素 */ getAllPolygons(): GeoJSONFeatureCollection; /** * 获取选中的面要素 */ getSelectedPolygons(): GeoJSONFeatureCollection; /** * 将简化格式转换为GeoJSON格式 */ private convertSimpleToGeoJSON; /** * 检查输入数据是否为简化格式 */ private isSimplePolygonData; /** * 添加面要素 */ addPolygons(features: GeoJSONFeatureCollection | GeoJSONFeature[] | SimplePolygonData[]): string[]; /** * 删除指定的面要素 */ deletePolygons(featureIds: string[]): void; /** * 清除所有面要素 */ clearAllPolygons(): void; /** * 获取当前绘制模式 */ getCurrentMode(): string; /** * 更改绘制模式 */ changeMode(mode: DrawMode): void; /** * 计算面积(使用turf.js) */ calculateArea(feature: GeoJSONFeature): number; /** * 计算周长(使用turf.js) */ calculatePerimeter(feature: GeoJSONFeature): number; /** * 验证并输出详细的面积计算信息(用于调试) */ debugAreaCalculation(feature: GeoJSONFeature): void; /** * 获取面的中心点坐标(使用turf.js) */ getCenterPoint(feature: GeoJSONFeature): [number, number]; /** * 获取面的中心点(使用turf.js) */ getCentroid(feature: GeoJSONFeature): GeoJSONFeature; /** * 简化面要素(减少顶点数量) */ simplifyPolygon(feature: GeoJSONFeature, tolerance?: number): GeoJSONFeature; /** * 获取指定要素的详细信息(包含面积、周长、中心点等) */ getFeatureInfo(featureId: string): { area: number; perimeter: number; center: [number, number]; feature: GeoJSONFeature; } | null; /** * 检查是否已启用 */ isDrawEnabled(): boolean; /** * 暴露turf.js给外部使用(用于面积和周长计算) */ static getTurf(): typeof turf; /** * 检查多边形是否自相交(简化版本) */ checkSelfIntersection(feature: GeoJSONFeature): boolean; /** * 验证多边形是否可以创建/更新 */ private validatePolygon; /** * 启用编辑模式(移动端专用) */ enableEditMode(): boolean; /** * 禁用编辑模式(移动端专用) */ disableEditMode(): boolean; /** * 切换编辑模式(移动端专用) */ toggleEditMode(): boolean; /** * 获取当前编辑模式状态 */ getEditModeEnabled(): boolean; /** * 获取是否为移动设备 */ isMobile(): boolean; /** * 更新选中要素的样式(移动端高亮显示) */ private updateSelectedFeatureStyle; /** * 清除选中要素的样式 */ private clearSelectedFeatureStyle; /** * 获取选中的要素ID(移动端专用) */ getSelectedFeatureId(): string | null; /** * 清除移动端选中状态(移动端专用) */ clearMobileSelection(): void; /** * 设置移动端选中状态(移动端专用) */ setMobileSelection(featureId: string): void; /** * 销毁面绘制管理器 */ destroy(): void; } /** * Popup实例接口 */ export declare interface PopupInstance { /** 设置经纬度位置 */ setLngLat(lngLat: [number, number]): PopupInstance; /** 设置HTML内容 */ setHTML(html: string): PopupInstance; /** 设置文本内容 */ setText(text: string): PopupInstance; /** 添加到地图 */ addTo(map: any): PopupInstance; /** 移除popup */ remove(): PopupInstance; /** 是否已添加到地图 */ isOpen(): boolean; /** 获取经纬度位置 */ getLngLat(): [number, number]; } /** * Popup配置选项 */ export declare interface PopupOptions { /** 是否在地图点击其他地方时关闭popup */ closeOnClick?: boolean; /** 是否在地图移动时关闭popup */ closeOnMove?: boolean; /** 是否显示关闭按钮 */ closeButton?: boolean; /** 偏移量 [x, y] */ offset?: [number, number]; /** CSS类名 */ className?: string; /** 最大宽度 */ maxWidth?: string; /** 锚点位置 */ anchor?: 'center' | 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; } /** * 弧度转角度 */ export declare function radToDeg(rad: number): number; /** * 旋转选项接口 */ export declare interface RotateToOptions { /** 动画持续时间(毫秒) */ duration?: number; /** 缓动函数 */ easing?: (t: number) => number; /** 是否启用动画 */ animate?: boolean; } /** * 简化的多边形数据格式(用户输入格式) */ export declare interface SimplePolygonData { /** 后端ID */ id?: string | number; /** 几何类型 */ type: 'Polygon'; /** 属性信息 */ properties?: Record<string, any>; /** 坐标数组 */ coordinates: number[][]; } /** * 地形配置接口 */ export declare interface TerrainConfig { /** 地形名称 */ name: string; /** DEM 瓦片服务 URL */ tiles: string[]; /** 瓦片大小 */ tileSize?: number; /** 最小缩放级别 */ minzoom?: number; /** 最大缩放级别 */ maxzoom?: number; /** 地形夸张系数 */ exaggeration?: number; } /** * 通用坐标转换函数 * @param lng 经度 * @param lat 纬度 * @param options 转换选项 * @returns 转换后的坐标 [经度, 纬度] */ export declare function transformCoordinate(lng: number, lat: number, options: CoordinateOptions): [number, number]; /** * 批量坐标转换 * @param coordinates 坐标数组 * @param options 转换选项 * @returns 转换后的坐标数组 */ export declare function transformCoordinates(coordinates: [number, number][], options: CoordinateOptions): [number, number][]; export { turf } /** * WGS84 转 BD09 */ export declare function wgs84ToBd09(lng: number, lat: number): [number, number]; /** * WGS84 转 GCJ02 */ export declare function wgs84ToGcj02(lng: number, lat: number): [number, number]; /** * 缩放选项接口 */ export declare interface ZoomToOptions { /** 动画持续时间(毫秒) */ duration?: number; /** 缓动函数 */ easing?: (t: number) => number; /** 是否启用动画 */ animate?: boolean; } export { }