FrameShapeUtil
See source codeTable of contents
- migrations
- props
- type
- editor
- options
- Properties
- Methods
- configure
- canBeLaidOut
- canBind
- canCrop
- canDropShapes
- canEdit
- canEditInReadOnly
- canReceiveNewChildrenOfType
- canResize
- canScroll
- canSnap
- component
- getBoundsSnapGeometry
- getCanvasSvgDefs
- getDefaultProps
- getFontFaces
- getGeometry
- getHandles
- getHandleSnapGeometry
- getInterpolatedProps
- getText
- hideResizeHandles
- hideRotateHandle
- hideSelectionBoundsBg
- hideSelectionBoundsFg
- indicator
- isAspectRatioLocked
- onBeforeCreate
- onBeforeUpdate
- onChildrenChange
- onClick
- onCrop
- onDoubleClick
- onDoubleClickEdge
- onDoubleClickHandle
- onDragShapesOut
- onDragShapesOver
- onDropShapesOver
- onEditEnd
- onHandleDrag
- onResize
- onResizeEnd
- onResizeStart
- onRotate
- onRotateEnd
- onRotateStart
- onTranslate
- onTranslateEnd
- onTranslateStart
- providesBackgroundForChildren
- toBackgroundSvg
- toSvg
Extends BaseBoxShapeUtil<TLFrameShape>.
class FrameShapeUtil extends BaseBoxShapeUtil<TLFrameShape> {}Constructor
Constructs a new instance of the ShapeUtil class
Parameters
| Name | Description |
|---|---|
|
Properties
migrations
static migrations: import('@tldraw/editor').TLPropsMigrationsprops
static props: import('@tldraw/editor').RecordProps<TLFrameShape>type
static type: 'frame'editor
editor: Editoroptions
Options for this shape util. If you're implementing a custom shape util, you can override this to provide customization options for your shape. If using an existing shape util, you can customizing this by calling ShapeUtil.configure.
options: {}Methods
configure()
Configure this shape utils options.
static configure<T extends TLShapeUtilConstructor<any, any>>(
this: T,
options: T extends new (...args: any[]) => {
options: infer Options
}
? Partial<Options>
: never
): TParameters
| Name | Description |
|---|---|
| |
| |
Returns
TcanBeLaidOut()
Whether the shape can participate in layout functions such as alignment or distribution.
canBeLaidOut(_shape: Shape, _info: TLShapeUtilCanBeLaidOutOpts): booleanParameters
| Name | Description |
|---|---|
| |
|
Returns
booleancanBind()
Whether the shape can be bound to. See TLShapeUtilCanBindOpts for details.
canBind(_opts: TLShapeUtilCanBindOpts): booleanParameters
| Name | Description |
|---|---|
|
Returns
booleancanCrop()
Whether the shape can be cropped.
canCrop(_shape: Shape): booleanParameters
| Name | Description |
|---|---|
| |
Returns
booleancanDropShapes()
canDropShapes(shape: TLFrameShape, _shapes: TLShape[]): booleanParameters
| Name | Description |
|---|---|
| |
| |
Returns
booleancanEdit()
canEdit(): booleancanEditInReadOnly()
Whether the shape can be edited in read-only mode.
canEditInReadOnly(_shape: Shape): booleanParameters
| Name | Description |
|---|---|
| |
Returns
booleancanReceiveNewChildrenOfType()
Parameters
Returns
booleancanResize()
Whether the shape can be resized.
canResize(_shape: Shape): booleanParameters
| Name | Description |
|---|---|
| |
Returns
booleancanScroll()
Whether the shape can be scrolled while editing.
canScroll(_shape: Shape): booleanParameters
| Name | Description |
|---|---|
| |
Returns
booleancanSnap()
Whether the shape can be snapped to by another shape.
canSnap(_shape: Shape): booleanParameters
| Name | Description |
|---|---|
| |
Returns
booleancomponent()
component(shape: TLFrameShape): import('react/jsx-runtime').JSX.ElementParameters
| Name | Description |
|---|---|
|
Returns
import('react/jsx-runtime').JSX.ElementgetBoundsSnapGeometry()
Get the geometry to use when snapping to this this shape in translate/resize operations. See BoundsSnapGeometry for details.
getBoundsSnapGeometry(_shape: Shape): BoundsSnapGeometryParameters
| Name | Description |
|---|---|
| |
Returns
getCanvasSvgDefs()
Return 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()
getDefaultProps(): TLFrameShape['props']getFontFaces()
Get the font faces that should be rendered in the document in order for this shape to render correctly.
getFontFaces(shape: Shape): TLFontFace[]Parameters
| Name | Description |
|---|---|
| The shape. |
Returns
getGeometry()
getGeometry(shape: TLFrameShape): Geometry2dParameters
| Name | Description |
|---|---|
|
Returns
getHandles()
Get an array of handle models for the shape. This is an optional method.
getHandles?(shape: Shape): TLHandle[]Example
util.getHandles?.(myShape)Parameters
| Name | Description |
|---|---|
| The shape. |
Returns
TLHandle[]getHandleSnapGeometry()
getHandleSnapGeometry(shape: Shape): HandleSnapGeometryParameters
| Name | Description |
|---|---|
| |
Returns
getInterpolatedProps()
getInterpolatedProps(
startShape: TLFrameShape,
endShape: TLFrameShape,
t: number
): TLFrameShapePropsParameters
| Name | Description |
|---|---|
| |
| |
| |
Returns
getText()
getText(shape: TLFrameShape): string | undefinedParameters
| Name | Description |
|---|---|
|
Returns
string | undefinedhideResizeHandles()
Whether the shape should hide its resize handles when selected.
hideResizeHandles(_shape: Shape): booleanParameters
| Name | Description |
|---|---|
| |
Returns
booleanhideRotateHandle()
Whether the shape should hide its rotation handles when selected.
hideRotateHandle(_shape: Shape): booleanParameters
| Name | Description |
|---|---|
| |
Returns
booleanhideSelectionBoundsBg()
Whether the shape should hide its selection bounds background when selected.
hideSelectionBoundsBg(_shape: Shape): booleanParameters
| Name | Description |
|---|---|
| |
Returns
booleanhideSelectionBoundsFg()
Whether the shape should hide its selection bounds foreground when selected.
hideSelectionBoundsFg(_shape: Shape): booleanParameters
| Name | Description |
|---|---|
| |
Returns
booleanindicator()
indicator(shape: TLFrameShape): import('react/jsx-runtime').JSX.ElementParameters
| Name | Description |
|---|---|
|
Returns
import('react/jsx-runtime').JSX.ElementisAspectRatioLocked()
Whether the shape's aspect ratio is locked.
isAspectRatioLocked(_shape: Shape): booleanParameters
| Name | Description |
|---|---|
| |
Returns
booleanonBeforeCreate()
A callback called just before a shape is created. This method provides a last chance to modify the created shape.
onBeforeCreate?(next: Shape): Shape | voidExample
onBeforeCreate = (next) => {
return { ...next, x: next.x + 1 }
}Parameters
| Name | Description |
|---|---|
| The next shape. |
Returns
Shape | voidThe next shape or void.
onBeforeUpdate()
A callback called just before a shape is updated. This method provides a last chance to modify the updated shape.
onBeforeUpdate?(prev: Shape, next: Shape): Shape | voidExample
onBeforeUpdate = (prev, next) => {
if (prev.x === next.x) {
return { ...next, x: next.x + 1 }
}
}Parameters
| Name | Description |
|---|---|
| The previous shape. |
| The next shape. |
Returns
Shape | voidThe next shape or void.
onChildrenChange()
A callback called when a shape's children change.
onChildrenChange?(shape: Shape): TLShapePartial[] | voidParameters
| Name | Description |
|---|---|
| The shape. |
Returns
TLShapePartial[] | voidAn array of shape updates, or void.
onClick()
A callback called when a shape is clicked.
onClick?(shape: Shape): TLShapePartial<Shape> | voidParameters
| Name | Description |
|---|---|
| The shape. |
Returns
TLShapePartial<Shape> | voidA change to apply to the shape, or void.
onCrop()
A callback called when a shape changes from a crop.
onCrop?(
shape: Shape,
info: TLCropInfo<Shape>
): Omit<TLShapePartial<Shape>, 'id' | 'type'> | undefined | voidParameters
| Name | Description |
|---|---|
| The shape at the start of the crop. |
| Info about the crop. |
Returns
Omit<TLShapePartial<Shape>, 'id' | 'type'> | undefined | voidA change to apply to the shape, or void.
onDoubleClick()
A callback called when a shape is double clicked.
onDoubleClick?(shape: Shape): TLShapePartial<Shape> | voidParameters
| Name | Description |
|---|---|
| The shape. |
Returns
TLShapePartial<Shape> | voidA change to apply to the shape, or void.
onDoubleClickEdge()
A callback called when a shape's edge is double clicked.
onDoubleClickEdge?(shape: Shape): TLShapePartial<Shape> | voidParameters
| Name | Description |
|---|---|
| The shape. |
Returns
TLShapePartial<Shape> | voidA change to apply to the shape, or void.
onDoubleClickHandle()
A callback called when a shape's handle is double clicked.
onDoubleClickHandle?(
shape: Shape,
handle: TLHandle
): TLShapePartial<Shape> | voidParameters
| Name | Description |
|---|---|
| The shape. |
| The handle that is double-clicked. |
Returns
TLShapePartial<Shape> | voidA change to apply to the shape, or void.
onDragShapesOut()
onDragShapesOut(_shape: TLFrameShape, shapes: TLShape[]): voidParameters
| Name | Description |
|---|---|
| |
| |
Returns
voidonDragShapesOver()
onDragShapesOver(frame: TLFrameShape, shapes: TLShape[]): voidParameters
| Name | Description |
|---|---|
| |
| |
Returns
voidonDropShapesOver()
A callback called when some other shapes are dropped over this one.
onDropShapesOver?(shape: Shape, shapes: TLShape[]): voidParameters
| Name | Description |
|---|---|
| The shape. |
| The shapes that are being dropped over this one. |
Returns
voidonEditEnd()
A callback called when a shape finishes being editing.
onEditEnd?(shape: Shape): voidParameters
| Name | Description |
|---|---|
| The shape. |
Returns
voidonHandleDrag()
A callback called when a shape's handle changes.
onHandleDrag?(
shape: Shape,
info: TLHandleDragInfo<Shape>
): TLShapePartial<Shape> | voidParameters
| Name | Description |
|---|---|
| The current shape. |
| An object containing the handle and whether the handle is 'precise' or not. |
Returns
TLShapePartial<Shape> | voidA change to apply to the shape, or void.
onResize()
onResize(shape: any, info: TLResizeInfo<any>): anyParameters
| Name | Description |
|---|---|
| |
| |
Returns
anyonResizeEnd()
A callback called when a shape finishes resizing.
onResizeEnd?(initial: Shape, current: Shape): TLShapePartial<Shape> | voidParameters
| Name | Description |
|---|---|
| The shape at the start of the resize. |
| The current shape. |
Returns
TLShapePartial<Shape> | voidA change to apply to the shape, or void.
onResizeStart()
A callback called when a shape starts being resized.
onResizeStart?(shape: Shape): TLShapePartial<Shape> | voidParameters
| Name | Description |
|---|---|
| The shape. |
Returns
TLShapePartial<Shape> | voidA change to apply to the shape, or void.
onRotate()
A callback called when a shape changes from a rotation.
onRotate?(initial: Shape, current: Shape): TLShapePartial<Shape> | voidParameters
| Name | Description |
|---|---|
| The shape at the start of the rotation. |
| The current shape. |
Returns
TLShapePartial<Shape> | voidA change to apply to the shape, or void.
onRotateEnd()
A callback called when a shape finishes rotating.
onRotateEnd?(initial: Shape, current: Shape): TLShapePartial<Shape> | voidParameters
| Name | Description |
|---|---|
| The shape at the start of the rotation. |
| The current shape. |
Returns
TLShapePartial<Shape> | voidA change to apply to the shape, or void.
onRotateStart()
A callback called when a shape starts being rotated.
onRotateStart?(shape: Shape): TLShapePartial<Shape> | voidParameters
| Name | Description |
|---|---|
| The shape. |
Returns
TLShapePartial<Shape> | voidA change to apply to the shape, or void.
onTranslate()
A callback called when a shape changes from a translation.
onTranslate?(initial: Shape, current: Shape): TLShapePartial<Shape> | voidParameters
| Name | Description |
|---|---|
| The shape at the start of the translation. |
| The current shape. |
Returns
TLShapePartial<Shape> | voidA change to apply to the shape, or void.
onTranslateEnd()
A callback called when a shape finishes translating.
onTranslateEnd?(initial: Shape, current: Shape): TLShapePartial<Shape> | voidParameters
| Name | Description |
|---|---|
| The shape at the start of the translation. |
| The current shape. |
Returns
TLShapePartial<Shape> | voidA change to apply to the shape, or void.
onTranslateStart()
A callback called when a shape starts being translated.
onTranslateStart?(shape: Shape): TLShapePartial<Shape> | voidParameters
| Name | Description |
|---|---|
| The shape. |
Returns
TLShapePartial<Shape> | voidA change to apply to the shape, or void.
providesBackgroundForChildren()
providesBackgroundForChildren(): booleantoBackgroundSvg()
Get the shape's background layer as an SVG object.
toBackgroundSvg?(
shape: Shape,
ctx: SvgExportContext
): null | Promise<null | ReactElement> | ReactElementParameters
| Name | Description |
|---|---|
| The shape. |
| ctx - The export context for the SVG - used for adding e.g. <def>s |
Returns
null | Promise<null | ReactElement> | ReactElementAn SVG element.
toSvg()
toSvg(
shape: TLFrameShape,
ctx: SvgExportContext
): import('react/jsx-runtime').JSX.ElementParameters
| Name | Description |
|---|---|
| |
|
Returns
import('react/jsx-runtime').JSX.Element