feat: make block and workspace implement IContextMenu (#8876)

This commit is contained in:
Maribeth Moffatt
2025-04-10 10:34:35 -07:00
committed by GitHub
parent 7aff866944
commit c5736bba65
2 changed files with 8 additions and 2 deletions

View File

@@ -16,7 +16,6 @@ import './events/events_selected.js';
import {Block} from './block.js';
import * as blockAnimations from './block_animations.js';
import {IDeletable} from './blockly.js';
import * as browserEvents from './browser_events.js';
import {BlockCopyData, BlockPaster} from './clipboard/block_paster.js';
import * as common from './common.js';
@@ -41,7 +40,9 @@ import {WarningIcon} from './icons/warning_icon.js';
import type {Input} from './inputs/input.js';
import type {IASTNodeLocationSvg} from './interfaces/i_ast_node_location_svg.js';
import type {IBoundedElement} from './interfaces/i_bounded_element.js';
import {IContextMenu} from './interfaces/i_contextmenu.js';
import type {ICopyable} from './interfaces/i_copyable.js';
import {IDeletable} from './interfaces/i_deletable.js';
import type {IDragStrategy, IDraggable} from './interfaces/i_draggable.js';
import {IIcon} from './interfaces/i_icon.js';
import * as internalConstants from './internal_constants.js';
@@ -72,6 +73,7 @@ export class BlockSvg
implements
IASTNodeLocationSvg,
IBoundedElement,
IContextMenu,
ICopyable<BlockCopyData>,
IDraggable,
IDeletable

View File

@@ -41,6 +41,7 @@ import {Gesture} from './gesture.js';
import {Grid} from './grid.js';
import type {IASTNodeLocationSvg} from './interfaces/i_ast_node_location_svg.js';
import type {IBoundedElement} from './interfaces/i_bounded_element.js';
import {IContextMenu} from './interfaces/i_contextmenu.js';
import type {IDragTarget} from './interfaces/i_drag_target.js';
import type {IFlyout} from './interfaces/i_flyout.js';
import type {IMetricsManager} from './interfaces/i_metrics_manager.js';
@@ -90,7 +91,10 @@ const ZOOM_TO_FIT_MARGIN = 20;
* Class for a workspace. This is an onscreen area with optional trashcan,
* scrollbars, bubbles, and dragging.
*/
export class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg {
export class WorkspaceSvg
extends Workspace
implements IASTNodeLocationSvg, IContextMenu
{
/**
* A wrapper function called when a resize event occurs.
* You can pass the result to `eventHandling.unbind`.