---
title: ArrowShapeUtil
status: published
category: editor
group: Class
author: api
date: 06/23/2023
order: 4
---Public Class
Table of Contents
- [Properties](#properties)
- [canBind](#ArrowShapeUtil-canBind-member)
- [canEdit](#ArrowShapeUtil-canEdit-member)
- [canSnap](#ArrowShapeUtil-canSnap-member)
- [hideResizeHandles](#ArrowShapeUtil-hideResizeHandles-member)
- [hideRotateHandle](#ArrowShapeUtil-hideRotateHandle-member)
- [hideSelectionBoundsBg](#ArrowShapeUtil-hideSelectionBoundsBg-member)
- [hideSelectionBoundsFg](#ArrowShapeUtil-hideSelectionBoundsFg-member)
- [isClosed](#ArrowShapeUtil-isClosed-member)
- [labelBoundsCache](#ArrowShapeUtil-labelBoundsCache-member)
- [onDoubleClickHandle](#ArrowShapeUtil-onDoubleClickHandle-member)
- [onEditEnd](#ArrowShapeUtil-onEditEnd-member)
- [onHandleChange](#ArrowShapeUtil-onHandleChange-member)
- [onResize](#ArrowShapeUtil-onResize-member)
- [onTranslateStart](#ArrowShapeUtil-onTranslateStart-member)
- [type](#ArrowShapeUtil-type-member)
- [Methods](#methods)
- [component](#ArrowShapeUtil-component-member-1)
- [getArrowInfo](#ArrowShapeUtil-getArrowInfo-member-1)
- [getBounds](#ArrowShapeUtil-getBounds-member-1)
- [getCenter](#ArrowShapeUtil-getCenter-member-1)
- [getDefaultProps](#ArrowShapeUtil-getDefaultProps-member-1)
- [getHandles](#ArrowShapeUtil-getHandles-member-1)
- [getLabelBounds](#ArrowShapeUtil-getLabelBounds-member-1)
- [getOutline](#ArrowShapeUtil-getOutline-member-1)
- [getOutlineWithoutLabel](#ArrowShapeUtil-getOutlineWithoutLabel-member-1)
- [hitTestLineSegment](#ArrowShapeUtil-hitTestLineSegment-member-1)
- [hitTestPoint](#ArrowShapeUtil-hitTestPoint-member-1)
- [indicator](#ArrowShapeUtil-indicator-member-1)
- [snapPoints](#ArrowShapeUtil-snapPoints-member-1)
- [toSvg](#ArrowShapeUtil-toSvg-member-1)
##### Signature
```ts
class ArrowShapeUtil extends ShapeUtil {}
```
##### References
[ShapeUtil](/gen/editor/ShapeUtil-class), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
---
## Properties
### `canBind` \{#ArrowShapeUtil-canBind-member}
Public Property
##### Signature
```ts
canBind: () => boolean
```
---
### `canEdit` \{#ArrowShapeUtil-canEdit-member}
Public Property
##### Signature
```ts
canEdit: () => boolean
```
---
### `canSnap` \{#ArrowShapeUtil-canSnap-member}
Public Property
##### Signature
```ts
canSnap: () => boolean
```
---
### `hideResizeHandles` \{#ArrowShapeUtil-hideResizeHandles-member}
Public Property
##### Signature
```ts
hideResizeHandles: TLShapeUtilFlag
```
##### References
[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
---
### `hideRotateHandle` \{#ArrowShapeUtil-hideRotateHandle-member}
Public Property
##### Signature
```ts
hideRotateHandle: TLShapeUtilFlag
```
##### References
[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
---
### `hideSelectionBoundsBg` \{#ArrowShapeUtil-hideSelectionBoundsBg-member}
Public Property
##### Signature
```ts
hideSelectionBoundsBg: TLShapeUtilFlag
```
##### References
[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
---
### `hideSelectionBoundsFg` \{#ArrowShapeUtil-hideSelectionBoundsFg-member}
Public Property
##### Signature
```ts
hideSelectionBoundsFg: TLShapeUtilFlag
```
##### References
[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
---
### `isClosed` \{#ArrowShapeUtil-isClosed-member}
Public Property
##### Signature
```ts
isClosed: () => boolean
```
---
### `labelBoundsCache` \{#ArrowShapeUtil-labelBoundsCache-member}
Public Readonly Property
##### Signature
```ts
get labelBoundsCache(): ComputedCache
```
##### References
[ComputedCache](/gen/store/ComputedCache-type), [Box2d](/gen/primitives/Box2d-class), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
---
### `onDoubleClickHandle` \{#ArrowShapeUtil-onDoubleClickHandle-member}
Public Property
##### Signature
```ts
onDoubleClickHandle: (
shape: TLArrowShape,
handle: TLHandle
) => TLShapePartial | void
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [TLHandle](/gen/tlschema/TLHandle-interface), [TLShapePartial](/gen/tlschema/TLShapePartial-type)
---
### `onEditEnd` \{#ArrowShapeUtil-onEditEnd-member}
Public Property
##### Signature
```ts
onEditEnd: TLOnEditEndHandler
```
##### References
[TLOnEditEndHandler](/gen/editor/TLOnEditEndHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
---
### `onHandleChange` \{#ArrowShapeUtil-onHandleChange-member}
Public Property
##### Signature
```ts
onHandleChange: TLOnHandleChangeHandler
```
##### References
[TLOnHandleChangeHandler](/gen/editor/TLOnHandleChangeHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
---
### `onResize` \{#ArrowShapeUtil-onResize-member}
Public Property
##### Signature
```ts
onResize: TLOnResizeHandler
```
##### References
[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
---
### `onTranslateStart` \{#ArrowShapeUtil-onTranslateStart-member}
Public Property
##### Signature
```ts
onTranslateStart: TLOnTranslateStartHandler
```
##### References
[TLOnTranslateStartHandler](/gen/editor/TLOnTranslateStartHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
---
### `type` \{#ArrowShapeUtil-type-member}
Public Static Property
##### Signature
```ts
static type: 'arrow'
```
---
## Methods
### `component()` \{#ArrowShapeUtil-component-member-1}
Public Method
##### Parameters
`shape`
```ts
TLArrowShape
```
##### Returns
```ts
JSX.Element | null
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)
---
### `getArrowInfo()` \{#ArrowShapeUtil-getArrowInfo-member-1}
Public Method
##### Parameters
`shape`
```ts
TLArrowShape
```
##### Returns
```ts
ArrowInfo | undefined
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [ArrowInfo](/gen/editor/~ArrowInfo-type)
---
### `getBounds()` \{#ArrowShapeUtil-getBounds-member-1}
Public Method
##### Parameters
`shape`
```ts
TLArrowShape
```
##### Returns
```ts
Box2d
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Box2d](/gen/primitives/Box2d-class)
---
### `getCenter()` \{#ArrowShapeUtil-getCenter-member-1}
Public Method
##### Parameters
`shape`
```ts
TLArrowShape
```
##### Returns
```ts
Vec2d
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)
---
### `getDefaultProps()` \{#ArrowShapeUtil-getDefaultProps-member-1}
Public Method
##### Parameters
None
##### Returns
```ts
TLArrowShape['props']
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type)
---
### `getHandles()` \{#ArrowShapeUtil-getHandles-member-1}
Public Method
##### Parameters
`shape`
```ts
TLArrowShape
```
##### Returns
```ts
TLHandle[]
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [TLHandle](/gen/tlschema/TLHandle-interface)
---
### `getLabelBounds()` \{#ArrowShapeUtil-getLabelBounds-member-1}
Public Method
##### Parameters
`shape`
```ts
TLArrowShape
```
##### Returns
```ts
Box2d | null
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Box2d](/gen/primitives/Box2d-class)
---
### `getOutline()` \{#ArrowShapeUtil-getOutline-member-1}
Public Method
##### Parameters
`shape`
```ts
TLArrowShape
```
##### Returns
```ts
Vec2d[]
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)
---
### `getOutlineWithoutLabel()` \{#ArrowShapeUtil-getOutlineWithoutLabel-member-1}
Public Method
##### Parameters
`shape`
```ts
TLArrowShape
```
##### Returns
```ts
Vec2d[]
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)
---
### `hitTestLineSegment()` \{#ArrowShapeUtil-hitTestLineSegment-member-1}
Public Method
##### Parameters
`shape`
```ts
TLArrowShape
```
`A`
```ts
VecLike
```
`B`
```ts
VecLike
```
##### Returns
```ts
boolean
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [VecLike](/gen/primitives/VecLike-type)
---
### `hitTestPoint()` \{#ArrowShapeUtil-hitTestPoint-member-1}
Public Method
##### Parameters
`shape`
```ts
TLArrowShape
```
`point`
```ts
VecLike
```
##### Returns
```ts
boolean
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [VecLike](/gen/primitives/VecLike-type)
---
### `indicator()` \{#ArrowShapeUtil-indicator-member-1}
Public Method
##### Parameters
`shape`
```ts
TLArrowShape
```
##### Returns
```ts
JSX.Element | null
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)
---
### `snapPoints()` \{#ArrowShapeUtil-snapPoints-member-1}
Public Method
##### Parameters
`_shape`
```ts
TLArrowShape
```
##### Returns
```ts
Vec2d[]
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)
---
### `toSvg()` \{#ArrowShapeUtil-toSvg-member-1}
Public Method
##### Parameters
`shape`
```ts
TLArrowShape
```
`font`
```ts
string
```
`colors`
```ts
TLExportColors
```
##### Returns
```ts
SVGGElement
```
##### References
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [TLExportColors](/gen/editor/~TLExportColors-type), [SVGGElement](/gen/SVGGElement-interface)
---