/** * @license * Copyright 2018 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import type { IBubble } from './interfaces/i_bubble.js'; import { Coordinate } from './utils/coordinate.js'; import type { WorkspaceSvg } from './workspace_svg.js'; /** * Class for a bubble dragger. It moves things on the bubble canvas around the * workspace when they are being dragged by a mouse or touch. These can be * block comments, mutators, warnings, or workspace comments. */ export declare class BubbleDragger { private bubble; private workspace; /** Which drag target the mouse pointer is over, if any. */ private dragTarget_; /** Whether the bubble would be deleted if dropped immediately. */ private wouldDeleteBubble_; private readonly startXY_; /** * @param bubble The item on the bubble canvas to drag. * @param workspace The workspace to drag on. */ constructor(bubble: IBubble, workspace: WorkspaceSvg); /** * Start dragging a bubble. * * @internal */ startBubbleDrag(): void; /** * Execute a step of bubble dragging, based on the given event. Update the * display accordingly. * * @param e The most recent move event. * @param currentDragDeltaXY How far the pointer has moved from the position * at the start of the drag, in pixel units. * @internal */ dragBubble(e: PointerEvent, currentDragDeltaXY: Coordinate): void; /** * Whether ending the drag would delete the bubble. * * @param dragTarget The drag target that the bubblee is currently over. * @returns Whether dropping the bubble immediately would delete the block. */ private shouldDelete_; /** * Update the cursor (and possibly the trash can lid) to reflect whether the * dragging bubble would be deleted if released immediately. */ private updateCursorDuringBubbleDrag_; /** * Finish a bubble drag and put the bubble back on the workspace. * * @param e The pointerup event. * @param currentDragDeltaXY How far the pointer has moved from the position * at the start of the drag, in pixel units. * @internal */ endBubbleDrag(e: PointerEvent, currentDragDeltaXY: Coordinate): void; /** Fire a move event at the end of a bubble drag. */ private fireMoveEvent_; /** * Convert a coordinate object from pixels to workspace units, including a * correction for mutator workspaces. * This function does not consider differing origins. It simply scales the * input's x and y values. * * @param pixelCoord A coordinate with x and y values in CSS pixel units. * @returns The input coordinate divided by the workspace scale. */ private pixelsToWorkspaceUnits_; } //# sourceMappingURL=bubble_dragger.d.ts.map