Skip to main content

Class: MiniWorkspaceBubble

Defined in: packages/blockly/core/bubbles/mini_workspace_bubble.ts:26

A bubble that contains a mini-workspace which can hold arbitrary blocks. Used by the mutator icon.

Extends​

Properties index​

PropertyDescription
BORDER_WIDTHThe width of the border around the bubble.
DOUBLE_BORDERDouble the width of the border around the bubble.
MIN_SIZEThe minimum size the bubble can have.
TAIL_THICKNESSThe thickness of the base of the tail in relation to the size of the bubble. Higher numbers result in thinner tails.
TAIL_ANGLEThe number of degrees that the tail bends counter-clockwise.
TAIL_BENDThe sharpness of the tail's bend. Higher numbers result in smoother tails.
ANCHOR_RADIUSDistance between arrow point and anchor point.
id-
svgRootThe SVG group containing all parts of the bubble.
contentContainerThe SVG group containing the contents of the bubble.
disposedTrue if the bubble has been disposed, false otherwise.
workspaceThe workspace this bubble belongs to.
anchorThe anchor location of the thing this bubble is attached to. The tail of the bubble will point to this location.
ownerRectAn optional rect we don't want the bubble to overlap with when automatically positioning.
ownerThe object responsible for hosting/spawning this bubble.

Methods index​

MethodDescription
setAnchorLocationSet the location the tail of this bubble points to.
setPositionRelativeToAnchorSets the position of this bubble relative to its anchor.
getSizeReturns the size of this bubble.
setSizeSets the size of this bubble, including the border.
getColourReturns the colour of the background and tail of this bubble.
setColourSets the colour of the background and tail of this bubble.
onKeyDownHandles key events when this bubble is focused. By default, closes the bubble on Escape.
positionRelativeToAnchorPositions the bubble relative to its anchor. Does not render its tail.
moveByMoves the bubble by the given amounts in the x and y directions.
positionByRectPositions the bubble "optimally" so that the most of it is visible and it does not overlap the rect (if provided).
getBoundingRectangleReturns the bounds of this bubble.
setDraggingSets whether or not this bubble is being dragged.
isMovableReturns whether this bubble is movable or not.
startDragStarts a drag on the bubble.
dragDrags the bubble to the given location.
endDragEnds the drag on the bubble.
revertDragMoves the bubble back to where it was at the start of a drag.
selectSelect this. Highlight it visually.
unselectUnselect this. Unhighlight it visually.
getFocusableElementSee IFocusableNode.getFocusableElement.
getFocusableTreeSee IFocusableNode.getFocusableTree.
onNodeFocusSee IFocusableNode.onNodeFocus.
onNodeBlurSee IFocusableNode.onNodeBlur.
canBeFocusedSee IFocusableNode.canBeFocused.
getOwnerReturns the object that owns/hosts this bubble, if any.
recomputeAriaContextRecomputes the ARIA label and role for this bubble. This is automatically called during initialization, but implementations may find it useful to call this if the bubble's label should be changed.
setAriaLabelProviderSets a custom ARIA label provider for this bubble, or null if it should be reset to use the default method.
getAriaLabelReturns the ARIA label to use for this bubble based on the provider set via setAriaLabelProvider. This will return null if the provider is absent or returns null.
disposeDispose of this bubble.
addWorkspaceChangeListenerAdds a change listener to the mini workspace.
updateBlockStylesReapplies styles to all of the blocks in the mini workspace.
performActionHandles the user acting on this bubble via keyboard navigation by focusing the mutator workspace.

Properties​

BORDER_WIDTH​

readonly static BORDER_WIDTH: 6 = 6;

Defined in: packages/blockly/core/bubbles/bubble.ts:46

The width of the border around the bubble.

Inherited from​

Bubble.BORDER_WIDTH


DOUBLE_BORDER​

readonly static DOUBLE_BORDER: number;

Defined in: packages/blockly/core/bubbles/bubble.ts:49

Double the width of the border around the bubble.

Inherited from​

Bubble.DOUBLE_BORDER


MIN_SIZE​

readonly static MIN_SIZE: number;

Defined in: packages/blockly/core/bubbles/bubble.ts:52

The minimum size the bubble can have.

Inherited from​

Bubble.MIN_SIZE


TAIL_THICKNESS​

readonly static TAIL_THICKNESS: 1 = 1;

Defined in: packages/blockly/core/bubbles/bubble.ts:58

The thickness of the base of the tail in relation to the size of the bubble. Higher numbers result in thinner tails.

Inherited from​

Bubble.TAIL_THICKNESS


TAIL_ANGLE​

readonly static TAIL_ANGLE: 20 = 20;

Defined in: packages/blockly/core/bubbles/bubble.ts:61

The number of degrees that the tail bends counter-clockwise.

Inherited from​

Bubble.TAIL_ANGLE


TAIL_BEND​

readonly static TAIL_BEND: 4 = 4;

Defined in: packages/blockly/core/bubbles/bubble.ts:67

The sharpness of the tail's bend. Higher numbers result in smoother tails.

Inherited from​

Bubble.TAIL_BEND


ANCHOR_RADIUS​

readonly static ANCHOR_RADIUS: 8 = 8;

Defined in: packages/blockly/core/bubbles/bubble.ts:70

Distance between arrow point and anchor point.

Inherited from​

Bubble.ANCHOR_RADIUS


id​

id: string;

Defined in: packages/blockly/core/bubbles/bubble.ts:72

Inherited from​

Bubble.id


svgRoot​

protected svgRoot: SVGGElement;

Defined in: packages/blockly/core/bubbles/bubble.ts:75

The SVG group containing all parts of the bubble.

Inherited from​

Bubble.svgRoot


contentContainer​

protected contentContainer: SVGGElement;

Defined in: packages/blockly/core/bubbles/bubble.ts:84

The SVG group containing the contents of the bubble.

Inherited from​

Bubble.contentContainer


disposed​

disposed: boolean = false;

Defined in: packages/blockly/core/bubbles/bubble.ts:95

True if the bubble has been disposed, false otherwise.

Inherited from​

Bubble.disposed


workspace​

readonly workspace: WorkspaceSvg;

Defined in: packages/blockly/core/bubbles/mini_workspace_bubble.ts:54

The workspace this bubble belongs to.

Inherited from​

Bubble.workspace


anchor​

protected anchor: Coordinate;

Defined in: packages/blockly/core/bubbles/mini_workspace_bubble.ts:55

The anchor location of the thing this bubble is attached to. The tail of the bubble will point to this location.

Inherited from​

Bubble.anchor


ownerRect?​

protected optional ownerRect?: Rect;

Defined in: packages/blockly/core/bubbles/mini_workspace_bubble.ts:56

An optional rect we don't want the bubble to overlap with when automatically positioning.

Inherited from​

Bubble.ownerRect


owner?​

protected optional owner?: IHasBubble & IFocusableNode;

Defined in: packages/blockly/core/bubbles/mini_workspace_bubble.ts:57

The object responsible for hosting/spawning this bubble.

Inherited from​

Bubble.owner

Methods​

setAnchorLocation()​

setAnchorLocation(anchor, relayout?): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:193

Set the location the tail of this bubble points to.

Parameters​

ParameterTypeDefault valueDescription
anchorCoordinateundefinedThe location the tail of this bubble points to.
relayoutbooleanfalseIf true, reposition the bubble from scratch so that it is optimally visible. If false, reposition it so it maintains the same position relative to the anchor.

Returns​

void

Inherited from​

Bubble.setAnchorLocation


setPositionRelativeToAnchor()​

setPositionRelativeToAnchor(left, top): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:204

Sets the position of this bubble relative to its anchor.

Parameters​

ParameterType
leftnumber
topnumber

Returns​

void

Inherited from​

Bubble.setPositionRelativeToAnchor


getSize()​

protected getSize(): Size;

Defined in: packages/blockly/core/bubbles/bubble.ts:212

Returns​

Size

the size of this bubble.

Inherited from​

Bubble.getSize


setSize()​

protected setSize(size, relayout?): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:224

Sets the size of this bubble, including the border.

Parameters​

ParameterTypeDefault valueDescription
sizeSizeundefinedSets the size of this bubble, including the border.
relayoutbooleanfalseIf true, reposition the bubble from scratch so that it is optimally visible. If false, reposition it so it maintains the same position relative to the anchor.

Returns​

void

Inherited from​

Bubble.setSize


getColour()​

protected getColour(): string;

Defined in: packages/blockly/core/bubbles/bubble.ts:241

Returns the colour of the background and tail of this bubble.

Returns​

string

Inherited from​

Bubble.getColour


setColour()​

setColour(colour): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:246

Sets the colour of the background and tail of this bubble.

Parameters​

ParameterType
colourstring

Returns​

void

Inherited from​

Bubble.setColour


onKeyDown()​

protected onKeyDown(e): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:267

Handles key events when this bubble is focused. By default, closes the bubble on Escape.

Parameters​

ParameterTypeDescription
eKeyboardEventThe keyboard event to handle.

Returns​

void

Inherited from​

Bubble.onKeyDown


positionRelativeToAnchor()​

protected positionRelativeToAnchor(): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:275

Positions the bubble relative to its anchor. Does not render its tail.

Returns​

void

Inherited from​

Bubble.positionRelativeToAnchor


moveBy()​

moveBy(
dx,
dy,
_reason?
): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:302

Moves the bubble by the given amounts in the x and y directions.

Parameters​

ParameterTypeDescription
dxnumberThe distance to move along the x axis.
dynumberThe distance to move along the y axis.
_reason?string[]A description of why this move is happening.

Returns​

void

Inherited from​

Bubble.moveBy


positionByRect()​

protected positionByRect(rect?): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:311

Positions the bubble "optimally" so that the most of it is visible and it does not overlap the rect (if provided).

Parameters​

ParameterType
rectRect

Returns​

void

Inherited from​

Bubble.positionByRect


getBoundingRectangle()​

getBoundingRectangle(): Rect;

Defined in: packages/blockly/core/bubbles/bubble.ts:655

Returns the bounds of this bubble.

Returns​

Rect

A bounding box for this bubble.

Inherited from​

Bubble.getBoundingRectangle


setDragging()​

setDragging(_start): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:687

Sets whether or not this bubble is being dragged.

Parameters​

ParameterType
_startboolean

Returns​

void

Inherited from​

Bubble.setDragging


isMovable()​

isMovable(): boolean;

Defined in: packages/blockly/core/bubbles/bubble.ts:707

Returns whether this bubble is movable or not.

Returns​

boolean

Inherited from​

Bubble.isMovable


startDrag()​

startDrag(): IBubble;

Defined in: packages/blockly/core/bubbles/bubble.ts:712

Starts a drag on the bubble.

Returns​

IBubble

Inherited from​

Bubble.startDrag


drag()​

drag(newLoc): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:717

Drags the bubble to the given location.

Parameters​

ParameterType
newLocCoordinate

Returns​

void

Inherited from​

Bubble.drag


endDrag()​

endDrag(): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:722

Ends the drag on the bubble.

Returns​

void

Inherited from​

Bubble.endDrag


revertDrag()​

revertDrag(): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:727

Moves the bubble back to where it was at the start of a drag.

Returns​

void

Inherited from​

Bubble.revertDrag


select()​

select(): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:731

Select this. Highlight it visually.

Returns​

void

Inherited from​

Bubble.select


unselect()​

unselect(): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:736

Unselect this. Unhighlight it visually.

Returns​

void

Inherited from​

Bubble.unselect


getFocusableElement()​

getFocusableElement(): HTMLElement | SVGElement;

Defined in: packages/blockly/core/bubbles/bubble.ts:742

See IFocusableNode.getFocusableElement.

Returns​

HTMLElement | SVGElement

Inherited from​

Bubble.getFocusableElement


getFocusableTree()​

getFocusableTree(): IFocusableTree;

Defined in: packages/blockly/core/bubbles/bubble.ts:747

See IFocusableNode.getFocusableTree.

Returns​

IFocusableTree

Inherited from​

Bubble.getFocusableTree


onNodeFocus()​

onNodeFocus(): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:752

See IFocusableNode.onNodeFocus.

Returns​

void

Inherited from​

Bubble.onNodeFocus


onNodeBlur()​

onNodeBlur(): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:762

See IFocusableNode.onNodeBlur.

Returns​

void

Inherited from​

Bubble.onNodeBlur


canBeFocused()​

canBeFocused(): boolean;

Defined in: packages/blockly/core/bubbles/bubble.ts:767

See IFocusableNode.canBeFocused.

Returns​

boolean

Inherited from​

Bubble.canBeFocused


getOwner()​

getOwner():
| IHasBubble & IFocusableNode
| undefined;

Defined in: packages/blockly/core/bubbles/bubble.ts:774

Returns the object that owns/hosts this bubble, if any.

Returns​

| IHasBubble & IFocusableNode | undefined

Inherited from​

Bubble.getOwner


recomputeAriaContext()​

protected recomputeAriaContext(): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:787

Recomputes the ARIA label and role for this bubble. This is automatically called during initialization, but implementations may find it useful to call this if the bubble's label should be changed.

Bubbles use a default non-specific label unless they're customized otherwise which is the responsibility of the bubble's owner rather than bubble implementations. Customization can be done via setAriaLabelProvider.

Returns​

void

Inherited from​

Bubble.recomputeAriaContext


setAriaLabelProvider()​

setAriaLabelProvider(provider): void;

Defined in: packages/blockly/core/bubbles/bubble.ts:815

Sets a custom ARIA label provider for this bubble, or null if it should be reset to use the default method.

Bubbles do not compute ARIA labels specifically to their implementation since they can be rather general-purpose. Instead, owners of the specific bubble instance (such as an icon) are responsible for defining custom label providers for their bubbles.

Note that calling this isn't sufficient for it to actually be used. recomputeAriaContext will likely also need to be called to actually apply the custom label to the bubble's focusable element.

Parameters​

ParameterType
providerAriaLabelProvider | null

Returns​

void

Inherited from​

Bubble.setAriaLabelProvider


getAriaLabel()​

getAriaLabel(): string | null;

Defined in: packages/blockly/core/bubbles/bubble.ts:827

Returns the ARIA label to use for this bubble based on the provider set via setAriaLabelProvider. This will return null if the provider is absent or returns null.

Returns​

string | null

The ARIA label to use for this bubble, or null if one is not provided.

Inherited from​

Bubble.getAriaLabel


dispose()​

dispose(): void;

Defined in: packages/blockly/core/bubbles/mini_workspace_bubble.ts:97

Dispose of this bubble.

Returns​

void

Overrides​

Bubble.dispose


addWorkspaceChangeListener()​

addWorkspaceChangeListener(listener): void;

Defined in: packages/blockly/core/bubbles/mini_workspace_bubble.ts:108

Adds a change listener to the mini workspace.

Parameters​

ParameterType
listener(e) => void

Returns​

void


updateBlockStyles()​

updateBlockStyles(): void;

Defined in: packages/blockly/core/bubbles/mini_workspace_bubble.ts:256

Reapplies styles to all of the blocks in the mini workspace.

Returns​

void


performAction()​

performAction(): void;

Defined in: packages/blockly/core/bubbles/mini_workspace_bubble.ts:299

Handles the user acting on this bubble via keyboard navigation by focusing the mutator workspace.

Returns​

void