EmbedShapeUtil
Table of contents
- migrations
 - props
 - type
 - canBeLaidOut
 - canCrop
 - canEdit
 - canEditInReadOnly
 - canResize
 - canScroll
 - canSnap
 - editor
 - hideResizeHandles
 - hideRotateHandle
 - hideSelectionBoundsBg
 - hideSelectionBoundsFg
 - isAspectRatioLocked
 - onBeforeCreate
 - onBeforeUpdate
 - onChildrenChange
 - onClick
 - onDoubleClick
 - onDoubleClickEdge
 - onDoubleClickHandle
 - onDragShapesOut
 - onDragShapesOver
 - onDropShapesOver
 - onEditEnd
 - onHandleDrag
 - onResize
 - onResizeEnd
 - onResizeStart
 - onRotate
 - onRotateEnd
 - onRotateStart
 - onTranslate
 - onTranslateEnd
 - onTranslateStart
 - Properties
 - Methods
 
Extends BaseBoxShapeUtil<TLEmbedShape>.
class EmbedShapeUtil extends BaseBoxShapeUtil<TLEmbedShape> {}
ShapeUtilConstructs a new instance of the ShapeUtil class
| Name | Description | 
|---|---|
  |  | 
Properties
static migrations: import('@tldraw/editor').TLPropsMigrations
static props: import('@tldraw/editor').RecordProps<TLEmbedShape>
static type: 'embed'
ShapeUtilWhether the shape participates in stacking, aligning, and distributing.
canBeLaidOut: TLShapeUtilFlag<Shape>
ShapeUtilWhether the shape can be cropped.
canCrop: TLShapeUtilFlag<Shape>
canEdit: TLShapeUtilFlag<TLEmbedShape>
canEditInReadOnly: () => boolean
canResize: (shape: TLEmbedShape) => boolean
ShapeUtilWhether the shape can be scrolled while editing.
canScroll: TLShapeUtilFlag<Shape>
ShapeUtilWhether the shape can be snapped to by another shape.
canSnap: TLShapeUtilFlag<Shape>
ShapeUtileditor: Editor
ShapeUtilWhether the shape should hide its resize handles when selected.
hideResizeHandles: TLShapeUtilFlag<Shape>
ShapeUtilWhether the shape should hide its rotation handles when selected.
hideRotateHandle: TLShapeUtilFlag<Shape>
ShapeUtilWhether the shape should hide its selection bounds background when selected.
hideSelectionBoundsBg: TLShapeUtilFlag<Shape>
hideSelectionBoundsFg: TLShapeUtilFlag<TLEmbedShape>
isAspectRatioLocked: TLShapeUtilFlag<TLEmbedShape>
ShapeUtilA callback called just before a shape is created. This method provides a last chance to modify the created shape.
onBeforeCreate?: TLOnBeforeCreateHandler<Shape>
onBeforeCreate = (next) => {
  return { ...next, x: next.x + 1 }
}
| Name | Description | 
|---|---|
  | The next shape.  | 
ShapeUtilA callback called just before a shape is updated. This method provides a last chance to modify the updated shape.
onBeforeUpdate?: TLOnBeforeUpdateHandler<Shape>
onBeforeUpdate = (prev, next) => {
  if (prev.x === next.x) {
    return { ...next, x: next.x + 1 }
  }
}
| Name | Description | 
|---|---|
  | The previous shape.  | 
  | The next shape.  | 
ShapeUtilA callback called when a shape's children change.
onChildrenChange?: TLOnChildrenChangeHandler<Shape>
| Name | Description | 
|---|---|
  | The shape.  | 
ShapeUtilA callback called when a shape is clicked.
onClick?: TLOnClickHandler<Shape>
| Name | Description | 
|---|---|
  | The shape.  | 
ShapeUtilA callback called when a shape is double clicked.
onDoubleClick?: TLOnDoubleClickHandler<Shape>
| Name | Description | 
|---|---|
  | The shape.  | 
ShapeUtilA callback called when a shape's edge is double clicked.
onDoubleClickEdge?: TLOnDoubleClickHandler<Shape>
| Name | Description | 
|---|---|
  | The shape.  | 
ShapeUtilA callback called when a shape's handle is double clicked.
onDoubleClickHandle?: TLOnDoubleClickHandleHandler<Shape>
| Name | Description | 
|---|---|
  | The shape.  | 
  | The handle that is double-clicked.  | 
ShapeUtilA callback called when some other shapes are dragged out of this one.
onDragShapesOut?: TLOnDragHandler<Shape>
| Name | Description | 
|---|---|
  | The shape.  | 
  | The shapes that are being dragged out.  | 
ShapeUtilA callback called when some other shapes are dragged over this one.
onDragShapesOver?: TLOnDragHandler<Shape>
onDragShapesOver = (shape, shapes) => {
  this.editor.reparentShapes(shapes, shape.id)
}
| Name | Description | 
|---|---|
  | The shape.  | 
  | The shapes that are being dragged over this one.  | 
ShapeUtilA callback called when some other shapes are dropped over this one.
onDropShapesOver?: TLOnDragHandler<Shape>
| Name | Description | 
|---|---|
  | The shape.  | 
  | The shapes that are being dropped over this one.  | 
ShapeUtilA callback called when a shape finishes being editing.
onEditEnd?: TLOnEditEndHandler<Shape>
| Name | Description | 
|---|---|
  | The shape.  | 
ShapeUtilA callback called when a shape's handle changes.
onHandleDrag?: TLOnHandleDragHandler<Shape>
| Name | Description | 
|---|---|
  | The current shape.  | 
  | An object containing the handle and whether the handle is 'precise' or not.  | 
onResize: TLOnResizeHandler<TLEmbedShape>
ShapeUtilA callback called when a shape finishes resizing.
onResizeEnd?: TLOnResizeEndHandler<Shape>
| Name | Description | 
|---|---|
  | The shape at the start of the resize.  | 
  | The current shape.  | 
ShapeUtilA callback called when a shape starts being resized.
onResizeStart?: TLOnResizeStartHandler<Shape>
| Name | Description | 
|---|---|
  | The shape.  | 
ShapeUtilA callback called when a shape changes from a rotation.
onRotate?: TLOnRotateHandler<Shape>
| Name | Description | 
|---|---|
  | The shape at the start of the rotation.  | 
  | The current shape.  | 
ShapeUtilA callback called when a shape finishes rotating.
onRotateEnd?: TLOnRotateEndHandler<Shape>
| Name | Description | 
|---|---|
  | The shape at the start of the rotation.  | 
  | The current shape.  | 
ShapeUtilA callback called when a shape starts being rotated.
onRotateStart?: TLOnRotateStartHandler<Shape>
| Name | Description | 
|---|---|
  | The shape.  | 
ShapeUtilA callback called when a shape changes from a translation.
onTranslate?: TLOnTranslateHandler<Shape>
| Name | Description | 
|---|---|
  | The shape at the start of the translation.  | 
  | The current shape.  | 
ShapeUtilA callback called when a shape finishes translating.
onTranslateEnd?: TLOnTranslateEndHandler<Shape>
| Name | Description | 
|---|---|
  | The shape at the start of the translation.  | 
  | The current shape.  | 
ShapeUtilA callback called when a shape starts being translated.
onTranslateStart?: TLOnTranslateStartHandler<Shape>
| Name | Description | 
|---|---|
  | The shape.  | 
Methods
ShapeUtilWhether the shape can be bound to. See TLShapeUtilCanBindOpts for details.
canBind(opts: TLShapeUtilCanBindOpts<Shape>): boolean
| Name | Description | 
|---|---|
  |  | 
boolean
ShapeUtilGet whether the shape can receive children of a given type.
canDropShapes(shape: Shape, shapes: TLShape[]): boolean
| Name | Description | 
|---|---|
  | The shape type.  | 
  | The shapes that are being dropped.  | 
boolean
ShapeUtilGet whether the shape can receive children of a given type.
canReceiveNewChildrenOfType(shape: Shape, type: TLShape['type']): boolean
| Name | Description | 
|---|---|
  |  | 
  | The shape type.  | 
boolean
component(shape: TLEmbedShape): import('react/jsx-runtime').JSX.Element | null
| Name | Description | 
|---|---|
  |  | 
import('react/jsx-runtime').JSX.Element | null
ShapeUtilGet the geometry to use when snapping to this this shape in translate/resize operations. See BoundsSnapGeometry for details.
getBoundsSnapGeometry(shape: Shape): BoundsSnapGeometry
| Name | Description | 
|---|---|
  |  | 
BoundsSnapGeometry
ShapeUtilReturn elements to be added to the <defs> section of the canvases SVG context. This can be
used to define SVG content (e.g. patterns & masks) that can be referred to by ID from svg
elements returned by component.
Each def should have a unique key. If multiple defs from different shapes all have the same
key, only one will be used.
getCanvasSvgDefs(): TLShapeUtilCanvasSvgDef[]
getDefaultProps(): TLEmbedShape['props']
BaseBoxShapeUtilgetGeometry(shape: Shape): Geometry2d
| Name | Description | 
|---|---|
  |  | 
Geometry2d
ShapeUtilGet an array of handle models for the shape. This is an optional method.
getHandles?(shape: Shape): TLHandle[]
util.getHandles?.(myShape)
| Name | Description | 
|---|---|
  | The shape.  | 
TLHandle[]
BaseBoxShapeUtilgetHandleSnapGeometry(shape: Shape): HandleSnapGeometry
| Name | Description | 
|---|---|
  |  | 
HandleSnapGeometry
BaseBoxShapeUtilgetInterpolatedProps(
  startShape: Shape,
  endShape: Shape,
  t: number
): Shape['props']
| Name | Description | 
|---|---|
  |  | 
  |  | 
  |  | 
Shape['props']
indicator(shape: TLEmbedShape): import('react/jsx-runtime').JSX.Element
| Name | Description | 
|---|---|
  |  | 
import('react/jsx-runtime').JSX.Element
ShapeUtilGet the shape's background layer as an SVG object.
toBackgroundSvg?(
  shape: Shape,
  ctx: SvgExportContext
): null | Promise<null | ReactElement> | ReactElement
| Name | Description | 
|---|---|
  | The shape.  | 
  | ctx - The export context for the SVG - used for adding e.g. <def>s  | 
null | Promise<null | ReactElement> | ReactElement
An SVG element.
ShapeUtilGet the shape as an SVG object.
toSvg?(
  shape: Shape,
  ctx: SvgExportContext
): null | Promise<null | ReactElement> | ReactElement
| Name | Description | 
|---|---|
  | The shape.  | 
  | The export context for the SVG - used for adding e.g. <def>s  | 
null | Promise<null | ReactElement> | ReactElement
An SVG element.

