/** * Copyright (c) 2019-present Houfeng * @author Houfeng */ /// import { Graph } from "../Graph/Graph"; import { ISelectable } from "./ISelectableProps"; import { SceneModel } from "../Scene/SceneModel"; import { ITouchEvent } from "mota-touch"; /** * 选区组件 * 可通过鼠标拖出一个区域,以选择选区覆盖的所有图形 */ export declare class Selectable extends Graph { /** * 当前 Scene 模型实例 */ model: SceneModel; /** * 当前 selection 实例 */ get selection(): import("./Selection").Selection; /** * 绘制选中区域 */ drawRange(): JSX.Element; /** * 渲染组件 */ render(): JSX.Element; onSelectAll: (event: KeyboardEvent) => void; /** * 检查鼠标是否在任意 Shape 中 * @param event 事件对象 */ inShapes(event: ITouchEvent): boolean; /** * 通过鼠标信息尝试选中图形 * @param event 事件对象 */ selectShape(event: ITouchEvent): void; /** * 重置所有活动中的 Shape 到默认状态 */ clearActives(): void; /** * 当前鼠标按下时 */ onMouseDown: (event: ITouchEvent) => void; /** * 当前鼠标移动时 * 实时更新 selection 的 end 位置信息 */ onMouseMove: (event: ITouchEvent) => void; /** * 当鼠标弹起时 * 清理先区信息,同时将选区中的图形状态设为 active */ onMouseUp: () => void; }