* `canvas:dragenter` Something is dragged inside the canvas, `DataTransfer` instance passed as an argument.
* `canvas:dragenter` - When something is dragged inside the canvas, `DataTransfer` instance passed as an argument
* `canvas:dragover` - When something is dragging on canvas, `DataTransfer` instance passed as an argument
* `canvas:drop` - Something is dropped in canvas, `DataTransfer` instance and the dropped model are passed as arguments
* `canvas:dragend` - When a drag operation is ended, `DataTransfer` instance passed as an argument
* `canvas:dragdata` - On any dataTransfer parse, `DataTransfer` instance and the `result` are passed as arguments.
* `canvas:dragover` Something is dragging on the canvas, `DataTransfer` instance passed as an argument.
By changing `result.content` you're able to customize what is dropped
* `canvas:dragend` When a drag operation is ended, `DataTransfer` instance passed as an argument.
* `canvas:dragdata` On any dataTransfer parse, `DataTransfer` instance and the `result` are passed as arguments.
By changing `result.content` you're able to customize what is dropped.
* `canvas:drop` Something is dropped in canvas, `DataTransfer` instance and the dropped model are passed as arguments.
* `canvas:spot` Spots updated.
```javascript
editor.on('canvas:spot', () => {
console.log('Spots', editor.Canvas.getSpots());
});
```
* `canvas:spot:add` New canvas spot added.
```javascript
editor.on('canvas:spot:add', ({ spot }) => {
console.log('Spot added', spot);
});
```
* `canvas:spot:update` Canvas spot updated.
```javascript
editor.on('canvas:spot:update', ({ spot }) => {
console.log('Spot updated', spot);
});
```
* `canvas:spot:remove` Canvas spot removed.
```javascript
editor.on('canvas:spot:remove', ({ spot }) => {
console.log('Spot removed', spot);
});
```
* `canvas:viewport` Canvas viewport updated (eg. zoom or coordinates).