/** * @license * Copyright 2024 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import { WorkspaceCommentCopyData } from '../clipboard/workspace_comment_paster.js'; import { IBoundedElement } from '../interfaces/i_bounded_element.js'; import { IContextMenu } from '../interfaces/i_contextmenu.js'; import { ICopyable } from '../interfaces/i_copyable.js'; import { IDeletable } from '../interfaces/i_deletable.js'; import { IDraggable } from '../interfaces/i_draggable.js'; import { IFocusableNode } from '../interfaces/i_focusable_node.js'; import type { IFocusableTree } from '../interfaces/i_focusable_tree.js'; import { IRenderedElement } from '../interfaces/i_rendered_element.js'; import { ISelectable } from '../interfaces/i_selectable.js'; import { Coordinate } from '../utils/coordinate.js'; import { Rect } from '../utils/rect.js'; import { Size } from '../utils/size.js'; import { WorkspaceSvg } from '../workspace_svg.js'; import { CommentView } from './comment_view.js'; import { WorkspaceComment } from './workspace_comment.js'; export declare class RenderedWorkspaceComment extends WorkspaceComment implements IBoundedElement, IRenderedElement, IDraggable, ISelectable, IDeletable, ICopyable, IContextMenu, IFocusableNode { /** The class encompassing the svg elements making up the workspace comment. */ view: CommentView; readonly workspace: WorkspaceSvg; private dragStrategy; /** Constructs the workspace comment, including the view. */ constructor(workspace: WorkspaceSvg, id?: string); /** * Adds listeners to the view that updates the model (i.e. the superclass) * when changes are made to the view. */ private addModelUpdateBindings; /** Sets the text of the comment. */ setText(text: string): void; /** Sets the placeholder text displayed if the comment is empty. */ setPlaceholderText(text: string): void; /** Sets the size of the comment. */ setSize(size: Size): void; /** Sets whether the comment is collapsed or not. */ setCollapsed(collapsed: boolean): void; /** Sets whether the comment is editable or not. */ setEditable(editable: boolean): void; /** Returns the root SVG element of this comment. */ getSvgRoot(): SVGElement; /** * Returns the comment's size in workspace units. * Does not respect collapsing. */ getSize(): Size; /** * Returns the bounding rectangle of this comment in workspace coordinates. * Respects collapsing. */ getBoundingRectangle(): Rect; /** Move the comment by the given amounts in workspace coordinates. */ moveBy(dx: number, dy: number, reason?: string[] | undefined): void; /** Moves the comment to the given location in workspace coordinates. */ moveTo(location: Coordinate, reason?: string[] | undefined): void; /** * Moves the comment during a drag. Doesn't fire move events. * * @internal */ moveDuringDrag(location: Coordinate): void; /** * Adds the dragging CSS class to this comment. * * @internal */ setDragging(dragging: boolean): void; /** Disposes of the view. */ dispose(): void; /** * Starts a gesture because we detected a pointer down on the comment * (that wasn't otherwise gobbled up, e.g. by resizing). */ private startGesture; /** Visually indicates that this comment would be deleted if dropped. */ setDeleteStyle(wouldDelete: boolean): void; /** Returns whether this comment is copyable or not */ isCopyable(): boolean; /** Returns whether this comment is movable or not. */ isMovable(): boolean; /** Starts a drag on the comment. */ startDrag(): void; /** Drags the comment to the given location. */ drag(newLoc: Coordinate): void; /** Ends the drag on the comment. */ endDrag(): void; /** Moves the comment back to where it was at the start of a drag. */ revertDrag(): void; /** Visually highlights the comment. */ select(): void; /** Visually unhighlights the comment. */ unselect(): void; /** * Returns a JSON serializable representation of this comment's state that * can be used for pasting. */ toCopyData(): WorkspaceCommentCopyData | null; /** Show a context menu for this comment. */ showContextMenu(e: Event): void; /** Snap this comment to the nearest grid point. */ snapToGrid(): void; /** * @returns The FocusableNode representing the editor portion of this comment. */ getEditorFocusableNode(): IFocusableNode; /** See IFocusableNode.getFocusableElement. */ getFocusableElement(): HTMLElement | SVGElement; /** See IFocusableNode.getFocusableTree. */ getFocusableTree(): IFocusableTree; /** See IFocusableNode.onNodeFocus. */ onNodeFocus(): void; /** See IFocusableNode.onNodeBlur. */ onNodeBlur(): void; /** See IFocusableNode.canBeFocused. */ canBeFocused(): boolean; } //# sourceMappingURL=rendered_workspace_comment.d.ts.map