/** * @license * Copyright 2020 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import type { Coordinate } from '../utils/coordinate.js'; import type { IContextMenu } from './i_contextmenu.js'; import type { IDraggable } from './i_draggable.js'; import { IFocusableNode } from './i_focusable_node.js'; /** * A bubble interface. */ export interface IBubble extends IDraggable, IContextMenu, IFocusableNode { /** * Return the coordinates of the top-left corner of this bubble's body * relative to the drawing surface's origin (0,0), in workspace units. * * @returns Object with .x and .y properties. */ getRelativeToSurfaceXY(): Coordinate; /** * Return the root node of the bubble's SVG group. * * @returns The root SVG node of the bubble's group. */ getSvgRoot(): SVGElement; /** * Sets whether or not this bubble is being dragged. * * @param adding True if dragging, false otherwise. */ setDragging(dragging: boolean): void; /** * Move this bubble during a drag. * * @param newLoc The location to translate to, in workspace coordinates. */ moveDuringDrag(newLoc: Coordinate): void; /** * Move the bubble to the specified location in workspace coordinates. * * @param x The x position to move to. * @param y The y position to move to. */ moveTo(x: number, y: number): void; /** * Update the style of this bubble when it is dragged over a delete area. * * @param enable True if the bubble is about to be deleted, false otherwise. */ setDeleteStyle(enable: boolean): void; /** Dispose of this bubble. */ dispose(): void; } //# sourceMappingURL=i_bubble.d.ts.map