---
title: "SelectionHandler | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/SelectionHandler/"
---

# SelectionHandler

> - [`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler)

## Enumerations

### SelectionState

#### Enumeration Members

| Enumeration Member | Value |
| ------ | ------ |
|  `Drag` | `2` |
|  `Idle` | `0` |
|  `Resize` | `3` |
|  `Rotate` | `4` |
|  `Select` | `1` |

## Classes

### SelectionHandler

#### Implements

#### Constructors

##### Constructor

```ts
new SelectionHandler(
   hitTestManager, 
   canvas, 
   snapLinesHandler, 
   interactiveZonesHandler): SelectionHandler;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `hitTestManager` | [`HitTestManager`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/HitTestManager.md#hittestmanager) |
| `canvas` | [`Canvas`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/Canvas-1.md#canvas) |
| `snapLinesHandler` | [`SnapLinesHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/SnapLinesHandler.md#snaplineshandler) |
| `interactiveZonesHandler` | [`IInteractiveZonesHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/IInteractiveZonesHandler.md#iinteractivezoneshandler) |

###### Returns

[`SelectionHandler`](#selectionhandler)

#### Properties

##### ch

```ts
readonly static ch: number[];
```

##### cw

```ts
readonly static cw: number[];
```

#### Accessors

##### allowManipulation

###### Get Signature

```ts
get allowManipulation(): boolean;
```

###### Returns

`boolean`

##### allowMove

###### Get Signature

```ts
get allowMove(): boolean;
```

###### Returns

`boolean`

##### border

###### Get Signature

```ts
get border(): ILtrb;
```

###### Returns

[ILtrb](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ILtrb.md)

##### currentItemHandler

###### Get Signature

```ts
get currentItemHandler(): BaseRectangleItemHandler;
```

###### Returns

[`BaseRectangleItemHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/BaseRectangleItemHandler.md#baserectangleitemhandler)

###### Implementation of

[`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler).[`currentItemHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#currentitemhandler)

##### enabled

###### Get Signature

```ts
get enabled(): boolean;
```

###### Returns

`boolean`

##### ignoreSimpleMode

###### Set Signature

```ts
set ignoreSimpleMode(value): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `value` | `boolean` |

###### Returns

`void`

##### isDragging

###### Get Signature

```ts
get isDragging(): boolean;
```

###### Returns

`boolean`

###### Implementation of

[`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler).[`isDragging`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#isdragging)

##### isIdle

###### Get Signature

```ts
get isIdle(): boolean;
```

###### Returns

`boolean`

###### Implementation of

[`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler).[`isIdle`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#isidle)

##### isResizing

###### Get Signature

```ts
get isResizing(): boolean;
```

###### Returns

`boolean`

###### Implementation of

[`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler).[`isResizing`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#isresizing)

##### isRotating

###### Get Signature

```ts
get isRotating(): boolean;
```

###### Returns

`boolean`

###### Implementation of

[`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler).[`isRotating`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#isrotating)

##### locked

###### Get Signature

```ts
get locked(): boolean;
```

###### Returns

`boolean`

##### manipulationPermissions

###### Get Signature

```ts
get manipulationPermissions(): ManipulationPermissions;
```

###### Returns

`ManipulationPermissions`

###### Implementation of

[`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler).[`manipulationPermissions`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#manipulationpermissions)

##### multipleSelectionEnabled

###### Get Signature

```ts
get multipleSelectionEnabled(): boolean;
```

###### Returns

`boolean`

###### Set Signature

```ts
set multipleSelectionEnabled(value): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `value` | `boolean` |

###### Returns

`void`

##### parentRectangle

###### Get Signature

```ts
get parentRectangle(): RotatedRectangleF;
```

###### Returns

`RotatedRectangleF`

###### Implementation of

[`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler).[`parentRectangle`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#parentrectangle)

##### rectangle

###### Get Signature

```ts
get rectangle(): RotatedRectangleF;
```

###### Returns

`RotatedRectangleF`

##### rectangleSigns

###### Get Signature

```ts
get rectangleSigns(): RectangleSignsType;
```

###### Returns

[`RectangleSignsType`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#rectanglesignstype)

###### Implementation of

[`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler).[`rectangleSigns`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#rectanglesigns)

##### region

###### Get Signature

```ts
get region(): RectangleF;
```

###### Returns

`RectangleF`

##### resizeIndex

###### Get Signature

```ts
get resizeIndex(): number;
```

###### Returns

`number`

###### Implementation of

[`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler).[`resizeIndex`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#resizeindex)

##### selectedItemHandlers

###### Get Signature

```ts
get selectedItemHandlers(): any;
```

###### Returns

`any`

###### Implementation of

[`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler).[`selectedItemHandlers`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#selecteditemhandlers)

##### selectionHitTestManager

###### Get Signature

```ts
get selectionHitTestManager(): SelectionHitTestManager;
```

###### Returns

[`SelectionHitTestManager`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/SelectionHitTestManager.md#selectionhittestmanager)

##### visibleRectangle

###### Get Signature

```ts
get visibleRectangle(): any;
```

###### Returns

`any`

###### Implementation of

[`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler).[`visibleRectangle`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#visiblerectangle)

#### Methods

##### addCurrentItemChanged()

```ts
addCurrentItemChanged(listener): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `listener` | (`item`) => `void` |

###### Returns

`void`

##### addOnSelectionChanged()

```ts
addOnSelectionChanged(handler): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `handler` | () => `any` |

###### Returns

`void`

##### addSelectedItemHandler()

```ts
addSelectedItemHandler(itemHandler): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `itemHandler` | [`BaseRectangleItemHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/BaseRectangleItemHandler.md#baserectangleitemhandler) |

###### Returns

`void`

##### addSelectedItemHandlersChanged()

```ts
addSelectedItemHandlersChanged(handler): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `handler` | `AnyFunction` |

###### Returns

`void`

##### clearSelectedItemHandlers()

```ts
clearSelectedItemHandlers(): void;
```

###### Returns

`void`

##### disable()

```ts
disable(): void;
```

###### Returns

`void`

##### dispose()

```ts
dispose(): void;
```

###### Returns

`void`

##### enable()

```ts
enable(): void;
```

###### Returns

`void`

##### getHighlightRectangles()

```ts
getHighlightRectangles(): RotatedRectangleF[];
```

###### Returns

`RotatedRectangleF`[]

###### Implementation of

[`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler).[`getHighlightRectangles`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#gethighlightrectangles)

##### getSelectionDrawingParams()

```ts
getSelectionDrawingParams(): ISelectionOptions;
```

###### Returns

[`ISelectionOptions`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionOptions.md#iselectionoptions)

###### Implementation of

[`ISelectionHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#iselectionhandler).[`getSelectionDrawingParams`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ISelectionHandler.md#getselectiondrawingparams)

##### isItemHandlerSelected()

```ts
isItemHandlerSelected(itemHandler): any;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `itemHandler` | [`BaseRectangleItemHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/BaseRectangleItemHandler.md#baserectangleitemhandler) |

###### Returns

`any`

##### isOnlyThisItemHandlerSelected()

```ts
isOnlyThisItemHandlerSelected(itemHandler): boolean;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `itemHandler` | [`BaseRectangleItemHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/BaseRectangleItemHandler.md#baserectangleitemhandler) |

###### Returns

`boolean`

##### lock()

```ts
lock(saveSelectedItems?): void;
```

###### Parameters

| Parameter | Type | Default value |
| ------ | ------ | ------ |
| `saveSelectedItems` | `boolean` | `false` |

###### Returns

`void`

##### move()

```ts
move(args, state): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `args` | [`IMoveParams`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/SelectionRectangleHandler.md#imoveparams) |
| `state` | [`InputState`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/IInputManager.md#inputstate) |

###### Returns

`void`

##### moveByPoint()

```ts
moveByPoint(
   args, 
   state, 
   ignoreSnapLines, 
   startPoint?): void;
```

###### Parameters

| Parameter | Type | Default value |
| ------ | ------ | ------ |
| `args` | [`IMoveByPointParams`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/SelectionRectangleHandler.md#imovebypointparams) | `undefined` |
| `state` | [`InputState`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/IInputManager.md#inputstate) | `undefined` |
| `ignoreSnapLines` | `boolean` | `undefined` |
| `startPoint` | `PointF` | `null` |

###### Returns

`void`

##### removeCurrentItemChanged()

```ts
removeCurrentItemChanged(listener): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `listener` | (`item`) => `void` |

###### Returns

`void`

##### removeOnSelectionChanged()

```ts
removeOnSelectionChanged(handler): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `handler` | () => `any` |

###### Returns

`void`

##### removeSelectedItemHandler()

```ts
removeSelectedItemHandler(itemHandler): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `itemHandler` | [`BaseRectangleItemHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/BaseRectangleItemHandler.md#baserectangleitemhandler) |

###### Returns

`void`

##### removeSelectedItemHandlersChanged()

```ts
removeSelectedItemHandlersChanged(handler): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `handler` | `AnyFunction` |

###### Returns

`void`

##### resizeByPoint()

```ts
resizeByPoint(
   args, 
   state, 
   startPoint?): void;
```

###### Parameters

| Parameter | Type | Default value |
| ------ | ------ | ------ |
| `args` | [`IResizeByPointParams`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/SelectionRectangleHandler.md#iresizebypointparams) | `undefined` |
| `state` | [`InputState`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/IInputManager.md#inputstate) | `undefined` |
| `startPoint` | `PointF` | `null` |

###### Returns

`void`

##### rotateByPoint()

```ts
rotateByPoint(
   args, 
   state, 
   startPoint?): void;
```

###### Parameters

| Parameter | Type | Default value |
| ------ | ------ | ------ |
| `args` | [`IRotateByPointParams`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/SelectionRectangleHandler.md#irotatebypointparams) | `undefined` |
| `state` | [`InputState`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/IInputManager.md#inputstate) | `undefined` |
| `startPoint` | `PointF` | `null` |

###### Returns

`void`

##### setSelectedItemHandlers()

```ts
setSelectedItemHandlers(itemHandlers, dontClean?): void;
```

###### Parameters

| Parameter | Type | Default value |
| ------ | ------ | ------ |
| `itemHandlers` | [`BaseRectangleItemHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/BaseRectangleItemHandler.md#baserectangleitemhandler)[] | `undefined` |
| `dontClean` | `boolean` | `false` |

###### Returns

`void`

##### unlock()

```ts
unlock(): void;
```

###### Returns

`void`

##### update()

```ts
update(force?): void;
```

###### Parameters

| Parameter | Type | Default value |
| ------ | ------ | ------ |
| `force` | `boolean` | `false` |

###### Returns

`void`
