# Class Robot

GoJS® Diagramming Components
version 3.0.14
by Northwoods Software®

This is an extension and not part of the main GoJS library. Note that the API for this class may change at any time. If you intend to use an extension in production, you should copy the code to your own source directory. See the Extensions intro page for more information.

A class for simulating mouse and keyboard input.

As a special feature, this supports limited simulation of drag-and-drop between Diagrams, by setting both the `sourceDiagram` and `targetDiagram` properties on the `eventprops` argument of the mouseDown/mouseMove/mouseUp methods. Although go.InputEvent.targetDiagram is a real property, the `sourceDiagram` property is only used by these Robot methods.

Typical setup:

       // a shared Robot that can be used by all commands for this one Diagram
       myRobot = new Robot(myDiagram);  // defined in Robot.js

Then later:

       // Simulate a mouse drag to move a node:
       const loc = ...;  // some Point in document coordinates that is within the bounds of a node
       const options = {};  // possible settings of InputEvent, such as setting control or shift to true
       myRobot.mouseDown(loc.x, loc.y, 0, options);
       myRobot.mouseMove(loc.x + 80, loc.y + 50, 50, options);
       myRobot.mouseMove(loc.x + 20, loc.y + 100, 100, options);
       myRobot.mouseUp(loc.x + 20, loc.y + 100, 150, options);

If you want to experiment with this extension, try the Simulating Input sample.

#####
Index

### Constructors

constructor

### Accessors

diagram

### Methods

keyDown
keyUp
mouseDown
mouseMove
mouseUp
mouseWheel

## Constructors

### constructor

- new Robot(dia?: Diagram): Robot

- Construct a robot for a given go.Diagram. If none is provided, a new Diagram will be created.

  #### Parameters

  - ##### `Optional` dia: Diagram

  #### Returns Robot

## Accessors

### diagram
: Diagram

- Gets or sets the go.Diagram associated with this Robot.

## Methods

### keyDown

- keyDown(keyCodeOrKey: string | number, time?: number, eventprops?: ObjectData): void

- Simulate a key down event.

  #### Parameters

  - ##### keyCodeOrKey: string | number

    A simulated KeyboardEvent.keyCode (number) or KeyboardEvent.key (string)

  - ##### `Optional` time: number

    the timestamp of the simulated event, in milliseconds; default zero

  - ##### `Optional` eventprops: ObjectData

    an optional argument providing properties for the InputEvent.

  #### Returns void

### keyUp

- keyUp(keyCodeOrKey: string | number, time?: number, eventprops?: ObjectData): void

- Simulate a key up event.

  #### Parameters

  - ##### keyCodeOrKey: string | number

    A simulated KeyboardEvent.keyCode (number) or KeyboardEvent.key (string)

  - ##### `Optional` time: number

    the timestamp of the simulated event, in milliseconds; default zero

  - ##### `Optional` eventprops: ObjectData

    an optional argument providing properties for the InputEvent.

  #### Returns void

### mouseDown

- mouseDown(x: number, y: number, time?: number, eventprops?: ObjectData): void

- Simulate a mouse down event.

  #### Parameters

  - ##### x: number

    the X-coordinate of the mouse point in document coordinates.

  - ##### y: number

    the Y-coordinate of the mouse point in document coordinates.

  - ##### `Optional` time: number

    the timestamp of the simulated event, in milliseconds; default zero

  - ##### `Optional` eventprops: ObjectData

    an optional argument providing properties for the InputEvent.

  #### Returns void

### mouseMove

- mouseMove(x: number, y: number, time?: number, eventprops?: ObjectData): void

- Simulate a mouse move event.

  #### Parameters

  - ##### x: number

    the X-coordinate of the mouse point in document coordinates.

  - ##### y: number

    the Y-coordinate of the mouse point in document coordinates.

  - ##### `Optional` time: number

    the timestamp of the simulated event, in milliseconds; default zero

  - ##### `Optional` eventprops: ObjectData

    an optional argument providing properties for the InputEvent.

  #### Returns void

### mouseUp

- mouseUp(x: number, y: number, time?: number, eventprops?: ObjectData): void

- Simulate a mouse up event.

  #### Parameters

  - ##### x: number

    the X-coordinate of the mouse point in document coordinates.

  - ##### y: number

    the Y-coordinate of the mouse point in document coordinates.

  - ##### `Optional` time: number

    the timestamp of the simulated event, in milliseconds; default zero

  - ##### `Optional` eventprops: ObjectData

    an optional argument providing properties for the InputEvent.

  #### Returns void

### mouseWheel

- mouseWheel(delta: number, time?: number, eventprops?: ObjectData): void

- Simulate a mouse wheel event.

  #### Parameters

  - ##### delta: number

    non-zero turn

  - ##### `Optional` time: number

    the timestamp of the simulated event, in milliseconds; default zero

  - ##### `Optional` eventprops: ObjectData

    an optional argument providing properties for the InputEvent.

  #### Returns void

Copyright © 1998-2024 by Northwoods Software Corporation.