# Class: Node

## Konva. Node

#### <virtual> new Node(config)

  Node constructor. Nodes are entities that can be transformed, layered, and have bound events. The stage, layers, groups, and shapes all extend Node.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `config` | Object | ###### Properties
  Name | Type | Argument | Description
  --- | --- | --- | ---
  `x` | Number | <optional> |
  `y` | Number | <optional> |
  `width` | Number | <optional> |
  `height` | Number | <optional> |
  `visible` | Boolean | <optional> |
  `listening` | Boolean | <optional> | whether or not the node is listening for events
  `id` | String | <optional> | unique id
  `name` | String | <optional> | non-unique name
  `opacity` | Number | <optional> | determines node opacity. Can be any number between 0 and 1
  `scale` | Object | <optional> | set scale
  `scaleX` | Number | <optional> | set scale x
  `scaleY` | Number | <optional> | set scale y
  `rotation` | Number | <optional> | rotation in degrees
  `offset` | Object | <optional> | offset from center point and rotation point
  `offsetX` | Number | <optional> | set offset x
  `offsetY` | Number | <optional> | set offset y
  `draggable` | Boolean | <optional> | makes the node draggable. When stages are draggable, you can drag and drop the entire stage by dragging any portion of the stage
  `dragDistance` | Number | <optional> |
  `dragBoundFunc` | function | <optional> |

  Source:
    - konva-v5.2.0.js, line 131

### Methods

#### <static> create(json, container)

  create node with JSON string. De-serializtion does not generate custom shape drawing functions, images, or event handlers (this would make the serialized object huge). If your app uses custom shapes, images, and event handlers (it probably does), then you need to select the appropriate shapes after loading the stage and set these properties via on(), setDrawFunc(), and setImage() methods

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `json` | String |  |
  `container` | Element | <optional> | optional container dom element used only if you're creating a stage node

  Source:
    - konva-v5.2.0.js, line 3817

#### blue(blue) → {Integer}

  get/set filter blue value. Use with Konva.Filters.RGB filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `blue` | Integer | value between 0 and 255

  Source:
    - konva-v5.2.0.js, line 5038

  ##### Returns:

  Type
    Integer

#### blurRadius(radius) → {Integer}

  get/set blur radius. Use with Konva.Filters.Blur filter

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `radius` | Integer |

  Source:
    - konva-v5.2.0.js, line 4759

  ##### Returns:

  Type
    Integer

#### brightness(brightness) → {Number}

  get/set filter brightness. The brightness is a number between -1 and 1. Positive values brighten the pixels and negative values darken them. Use with Konva.Filters.Brighten filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `brightness` | Number | value between -1 and 1

  Source:
    - konva-v5.2.0.js, line 4374

  ##### Returns:

  Type
    Number

#### cache(config) → {Konva.Node}

  cache node to improve drawing performance, apply filters, or create more accurate hit regions

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `config` | Object | ###### Properties
  Name | Type | Argument | Description
  --- | --- | --- | ---
  `x` | Number | <optional> |
  `y` | Number | <optional> |
  `width` | Number | <optional> |
  `height` | Number | <optional> |
  `drawBorder` | Boolean | <optional> | when set to true, a red border will be drawn around the cached region for debugging purposes

  Source:
    - konva-v5.2.0.js, line 2420

  ##### Returns:

  Type
    Konva.Node

  ##### Example

      // cache a shape with the x,y position of the bounding box at the center and
      // the width and height of the bounding box equal to the width and height of
      // the shape obtained from shape.width() and shape.height()
      image.cache();

      // cache a node and define the bounding box position and size
      node.cache({
        x: -30,
        y: -30,
        width: 100,
        height: 200
      });

      // cache a node and draw a red border around the bounding box
      // for debugging purposes
      node.cache({
        x: -30,
        y: -30,
        width: 100,
        height: 200,
        drawBorder: true
      });

#### clearCache() → {Konva.Node}

  clear cached canvas

  Source:
    - konva-v5.2.0.js, line 2378

  ##### Returns:

  Type
    Konva.Node

  ##### Example

      node.clearCache();

#### clone(obj) → {Konva.Node}

  clone node. Returns a new Node instance with identical attributes. You can also override the node properties with an object literal, enabling you to use an existing node as a template for another node

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `obj` | Object | override attrs

  Source:
    - konva-v5.2.0.js, line 3506

  ##### Returns:

  Type
    Konva.Node

  ##### Example

      // simple clone
      var clone = node.clone();

      // clone a node and override the x position
      var clone = rect.clone({
        x: 5
      });

#### destroy()

  remove and destroy self

  Source:
    - konva-v5.2.0.js, line 2733

  ##### Example

      node.destroy();

#### dragBoundFunc(dragBoundFunc) → {function}

  get/set drag bound function. This is used to override the default drag and drop position

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `dragBoundFunc` | function |

  Source:
    - konva-v5.2.0.js, line 7261

  ##### Returns:

  Type
    function

  ##### Example

      // get drag bound function
      var dragBoundFunc = node.dragBoundFunc();

      // create vertical drag and drop
      node.dragBoundFunc(function(pos){
        return {
          x: this.getAbsolutePosition().x,
          y: pos.y
        };
      });

#### dragDistance(distance) → {Number}

  get/set drag distance

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `distance` | Number |

  Source:
    - konva-v5.2.0.js, line 4144

  ##### Returns:

  Type
    Number

  ##### Example

      // get drag distance
      var dragDistance = node.dragDistance();

      // set distance
      // node starts dragging only if pointer moved more then 3 pixels
      node.dragDistance(3);
      // or set globally
      Konva.dragDistance = 3;

#### draggable(draggable) → {Boolean}

  get/set draggable flag

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `draggable` | Boolean |

  Source:
    - konva-v5.2.0.js, line 7285

  ##### Returns:

  Type
    Boolean

  ##### Example

      // get draggable flag
      var draggable = node.draggable();

      // enable drag and drop
      node.draggable(true);

      // disable drag and drop
      node.draggable(false);

#### draw() → {Konva.Node}

  draw both scene and hit graphs. If the node being drawn is the stage, all of the layers will be cleared and redrawn

  Source:
    - konva-v5.2.0.js, line 3797

  ##### Returns:

  Type
    Konva.Node

#### embossBlend(embossBlend) → {Boolean}

  get/set emboss blend. Use with Konva.Filters.Emboss filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `embossBlend` | Boolean |

  Source:
    - konva-v5.2.0.js, line 5404

  ##### Returns:

  Type
    Boolean

#### embossDirection(embossDirection) → {String}

  get/set emboss direction. Use with Konva.Filters.Emboss filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `embossDirection` | String | can be top-left, top, top-right, right, bottom-right, bottom, bottom-left or left The default is top-left

  Source:
    - konva-v5.2.0.js, line 5393

  ##### Returns:

  Type
    String

#### embossStrength(level) → {Number}

  get/set emboss strength. Use with Konva.Filters.Emboss filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `level` | Number | between 0 and 1. Default is 0.5

  Source:
    - konva-v5.2.0.js, line 5373

  ##### Returns:

  Type
    Number

#### embossWhiteLevel(embossWhiteLevel) → {Number}

  get/set emboss white level. Use with Konva.Filters.Emboss filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `embossWhiteLevel` | Number | between 0 and 1. Default is 0.5

  Source:
    - konva-v5.2.0.js, line 5383

  ##### Returns:

  Type
    Number

#### enhance(amount) → {Float}

  get/set enhance. Use with Konva.Filters.Enhance filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `amount` | Float |

  Source:
    - konva-v5.2.0.js, line 5521

  ##### Returns:

  Type
    Float

#### filters(filters) → {Array}

  get/set filters. Filters are applied to cached canvases

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `filters` | Array | array of filters

  Source:
    - konva-v5.2.0.js, line 4221

  ##### Returns:

  Type
    Array

  ##### Example

      // get filters
      var filters = node.filters();

      // set a single filter
      node.cache();
      node.filters([Konva.Filters.Blur]);

      // set multiple filters
      node.cache();
      node.filters([
        Konva.Filters.Blur,
        Konva.Filters.Sepia,
        Konva.Filters.Invert
      ]);

#### fire(eventType, evt, bubble) → {Konva.Node}

  fire event

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `eventType` | String |  | event type. can be a regular event, like click, mouseover, or mouseout, or it can be a custom event, like myCustomEvent
  `evt` | Event | <optional> | event object
  `bubble` | Boolean | <optional> | setting the value to false, or leaving it undefined, will result in the event not bubbling. Setting the value to true will result in the event bubbling.

  Source:
    - konva-v5.2.0.js, line 3404

  ##### Returns:

  Type
    Konva.Node

  ##### Example

      // manually fire click event
      node.fire('click');

      // fire custom event
      node.fire('foo');

      // fire custom event with custom event object
      node.fire('foo', {
        bar: 10
      });

      // fire click event that bubbles
      node.fire('click', null, true);

#### getAbsoluteOpacity() → {Number}

  get absolute opacity

  Source:
    - konva-v5.2.0.js, line 3273

  ##### Returns:

  Type
    Number

#### getAbsolutePosition() → {Object}

  get absolute position relative to the top left corner of the stage container div

  Source:
    - konva-v5.2.0.js, line 3019

  ##### Returns:

  Type
    Object

#### getAbsoluteTransform() → {Konva.Transform}

  get absolute transform of the node which takes into account its ancestor transforms

  Source:
    - konva-v5.2.0.js, line 3422

  ##### Returns:

  Type
    Konva.Transform

#### getAbsoluteZIndex() → {Integer}

  get absolute z-index which takes into account sibling and ancestor indices

  Source:
    - konva-v5.2.0.js, line 2952

  ##### Returns:

  Type
    Integer

#### getAncestors() → {Konva.Collection}

  get ancestors

  Source:
    - konva-v5.2.0.js, line 2769

  ##### Returns:

  Type
    Konva.Collection

  ##### Example

      shape.getAncestors().each(function(node) {
        console.log(node.getId());
      })

#### getAttr(attr) → {Integer|String|Object|Array}

  get attr

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `attr` | String |

  Source:
    - konva-v5.2.0.js, line 2749

  ##### Returns:

  Type
    Integer | String | Object | Array

  ##### Example

      var x = node.getAttr('x');

#### getAttrs() → {Object}

  get attrs object literal

  Source:
    - konva-v5.2.0.js, line 2786

  ##### Returns:

  Type
    Object

#### getClassName() → {String}

  get class name, which may return Stage, Layer, Group, or shape class names like Rect, Circle, Text, etc.

  Source:
    - konva-v5.2.0.js, line 3639

  ##### Returns:

  Type
    String

#### getDepth() → {Integer}

  get node depth in node tree. Returns an integer. e.g. Stage depth will always be 0. Layers will always be 1. Groups and Shapes will always be >= 2

  Source:
    - konva-v5.2.0.js, line 2992

  ##### Returns:

  Type
    Integer

#### getLayer() → {Konva.Layer}

  get layer ancestor

  Source:
    - konva-v5.2.0.js, line 3358

  ##### Returns:

  Type
    Konva.Layer

#### getParent() → {Konva.Node}

  get parent container

  Source:
    - konva-v5.2.0.js, line 3349

  ##### Returns:

  Type
    Konva.Node

#### getStage() → {Konva.Stage}

  get stage ancestor

  Source:
    - konva-v5.2.0.js, line 3368

  ##### Returns:

  Type
    Konva.Stage

#### getTransform() → {Konva.Transform}

  get transform of the node

  Source:
    - konva-v5.2.0.js, line 3456

  ##### Returns:

  Type
    Konva.Transform

#### getType() → {String}

  get the node type, which may return Stage, Layer, Group, or Node

  Source:
    - konva-v5.2.0.js, line 3648

  ##### Returns:

  Type
    String

#### getZIndex() → {Integer}

  get zIndex relative to the node's siblings who share the same parent

  Source:
    - konva-v5.2.0.js, line 2942

  ##### Returns:

  Type
    Integer

#### green(green) → {Integer}

  get/set filter green value. Use with Konva.Filters.RGB filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `green` | Integer | value between 0 and 255

  Source:
    - konva-v5.2.0.js, line 5028

  ##### Returns:

  Type
    Integer

#### height(height) → {Number}

  get/set height

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `height` | Number |

  Source:
    - konva-v5.2.0.js, line 4182

  ##### Returns:

  Type
    Number

  ##### Example

      // get height
      var height = node.height();

      // set height
      node.height(100);

#### hide() → {Konva.Node}

  hide node. Hidden nodes are no longer detectable

  Source:
    - konva-v5.2.0.js, line 2932

  ##### Returns:

  Type
    Konva.Node

#### hue(hue) → {Number}

  get/set hsv hue in degrees. Use with Konva.Filters.HSV or Konva.Filters.HSL filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `hue` | Number | value between 0 and 359

  Source:
    - konva-v5.2.0.js, line 5111

  ##### Returns:

  Type
    Number

#### hue(hue) → {Number}

  get/set hsv hue in degrees. Use with Konva.Filters.HSV or Konva.Filters.HSL filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `hue` | Number | value between 0 and 359

  Source:
    - konva-v5.2.0.js, line 5144

  ##### Returns:

  Type
    Number

#### id(id) → {String}

  get/set id

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `id` | String |

  Source:
    - konva-v5.2.0.js, line 3942

  ##### Returns:

  Type
    String

  ##### Example

      // get id
      var name = node.id();

      // set id
      node.id('foo');

#### isDragging()

  determine if node is currently in drag and drop mode

  Source:
    - konva-v5.2.0.js, line 7192

#### isListening() → {Boolean}

  determine if node is listening for events by taking into account ancestors.

  Parent | Self | isListening

  ## listening | listening |

  +-----------+------------ T | T | T T | F | F F | T | T

  ## F | F | F

  +-----------+------------ T | I | T F | I | F I | I | T

  Source:
    - konva-v5.2.0.js, line 2843

  ##### Returns:

  Type
    Boolean

#### isVisible() → {Boolean}

  determine if node is visible by taking into account ancestors.

  Parent | Self | isVisible

  ## visible | visible |

  +-----------+------------ T | T | T T | F | F F | T | T

  ## F | F | F

  +-----------+------------ T | I | T F | I | F I | I | T

  Source:
    - konva-v5.2.0.js, line 2883

  ##### Returns:

  Type
    Boolean

#### kaleidoscopeAngle(degrees) → {Integer}

  get/set kaleidoscope angle. Use with Konva.Filters.Kaleidoscope filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `degrees` | Integer |

  Source:
    - konva-v5.2.0.js, line 6088

  ##### Returns:

  Type
    Integer

#### kaleidoscopePower(power) → {Integer}

  get/set kaleidoscope power. Use with Konva.Filters.Kaleidoscope filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `power` | Integer | of kaleidoscope

  Source:
    - konva-v5.2.0.js, line 6078

  ##### Returns:

  Type
    Integer

#### levels(level) → {Number}

  get/set levels. Must be a number between 0 and 1. Use with Konva.Filters.Posterize filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `level` | Number | between 0 and 1

  Source:
    - konva-v5.2.0.js, line 5562

  ##### Returns:

  Type
    Number

#### listening(listening) → {Boolean|String}

  get/set listenig attr. If you need to determine if a node is listening or not by taking into account its parents, use the isListening() method

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `listening` | Boolean | String | Can be "inherit", true, or false. The default is "inherit".

  Source:
    - konva-v5.2.0.js, line 4198

  ##### Returns:

  Type
    Boolean | String

  ##### Example

      // get listening attr
      var listening = node.listening();

      // stop listening for events
      node.listening(false);

      // listen for events
      node.listening(true);

      // listen to events according to the parent
      node.listening('inherit');

#### move(change) → {Konva.Node}

  move node by an amount relative to its current position

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `change` | Object | ###### Properties
  Name | Type | Description
  --- | --- | ---
  `x` | Number |
  `y` | Number |

  Source:
    - konva-v5.2.0.js, line 3118

  ##### Returns:

  Type
    Konva.Node

  ##### Example

      // move node in x direction by 1px and y direction by 2px
      node.move({
        x: 1,
        y: 2)
      });

#### moveDown() → {Boolean}

  move node down

  Source:
    - konva-v5.2.0.js, line 3215

  ##### Returns:

  Type
    Boolean

#### moveTo(newContainer) → {Konva.Node}

  move node to another container

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `newContainer` | Container |

  Source:
    - konva-v5.2.0.js, line 3293

  ##### Returns:

  Type
    Konva.Node

  ##### Example

      // move node from current layer into layer2
      node.moveTo(layer2);

#### moveToBottom() → {Boolean}

  move node to the bottom of its siblings

  Source:
    - konva-v5.2.0.js, line 3235

  ##### Returns:

  Type
    Boolean

#### moveToTop() → {Boolean}

  move node to the top of its siblings

  Source:
    - konva-v5.2.0.js, line 3177

  ##### Returns:

  Type
    Boolean

#### moveUp() → {Boolean}

  move node up

  Source:
    - konva-v5.2.0.js, line 3194

  ##### Returns:

  Type
    Boolean

#### name(name) → {String}

  get/set name

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `name` | String |

  Source:
    - konva-v5.2.0.js, line 3921

  ##### Returns:

  Type
    String

  ##### Example

      // get name
      var name = node.name();

      // set name
      node.name('foo');

      // also node may have multiple names (as css classes)
      node.name('foo bar');

#### noise(noise) → {Number}

  get/set noise amount. Must be a value between 0 and 1. Use with Konva.Filters.Noise filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `noise` | Number |

  Source:
    - konva-v5.2.0.js, line 5600

  ##### Returns:

  Type
    Number

#### off(evtStr) → {Konva.Node}

  remove event bindings from the node. Pass in a string of event types delimmited by a space to remove multiple event bindings at once such as 'mousedown mouseup mousemove'. include a namespace to remove an event binding by name such as 'click.foobar'. If you only give a name like '.foobar', all events in that namespace will be removed.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `evtStr` | String | e.g. 'click', 'mousedown touchstart', '.foobar'

  Source:
    - konva-v5.2.0.js, line 2651

  ##### Returns:

  Type
    Konva.Node

  ##### Example

      // remove listener
      node.off('click');

      // remove multiple listeners
      node.off('click touchstart');

      // remove listener by name
      node.off('click.foo');

#### offsetX(x) → {Number}

  get/set offset x

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | Number |

  Source:
    - konva-v5.2.0.js, line 4109

  ##### Returns:

  Type
    Number

  ##### Example

      // get offset x
      var offsetX = node.offsetX();

      // set offset x
      node.offsetX(3);

#### offsetY(y) → {Number}

  get/set offset y

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `y` | Number |

  Source:
    - konva-v5.2.0.js, line 4126

  ##### Returns:

  Type
    Number

  ##### Example

      // get offset y
      var offsetY = node.offsetY();

      // set offset y
      node.offsetY(3);

#### on(evtStr, handler) → {Konva.Node}

  bind events to the node. KonvaJS supports mouseover, mousemove, mouseout, mouseenter, mouseleave, mousedown, mouseup, mousewheel, click, dblclick, touchstart, touchmove, touchend, tap, dbltap, dragstart, dragmove, and dragend events. The Konva Stage supports contentMouseover, contentMousemove, contentMouseout, contentMousedown, contentMouseup, contentClick, contentDblclick, contentTouchstart, contentTouchmove, contentTouchend, contentTap, and contentDblTap. Pass in a string of events delimmited by a space to bind multiple events at once such as 'mousedown mouseup mousemove'. Include a namespace to bind an event by name such as 'click.foobar'.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `evtStr` | String | e.g. 'click', 'mousedown touchstart', 'mousedown.foo touchstart.foo'
  `handler` | function | The handler function is passed an event object

  Source:
    - konva-v5.2.0.js, line 2601

  ##### Returns:

  Type
    Konva.Node

  ##### Example

      // add click listener
      node.on('click', function() {
        console.log('you clicked me!');
      });

      // get the target node
      node.on('click', function(evt) {
        console.log(evt.target);
      });

      // stop event propagation
      node.on('click', function(evt) {
        evt.cancelBubble = true;
      });

      // bind multiple listeners
      node.on('click touchstart', function() {
        console.log('you clicked/touched me!');
      });

      // namespace listener
      node.on('click.foo', function() {
        console.log('you clicked/touched me!');
      });

      // get the event type
      node.on('click tap', function(evt) {
        var eventType = evt.type;
      });

      // get native event object
      node.on('click tap', function(evt) {
        var nativeEvent = evt.evt;
      });

      // for change events, get the old and new val
      node.on('xChange', function(evt) {
        var oldVal = evt.oldVal;
        var newVal = evt.newVal;
      });

#### opacity(opacity) → {Number}

  get/set opacity. Opacity values range from 0 to 1. A node with an opacity of 0 is fully transparent, and a node with an opacity of 1 is fully opaque

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `opacity` | Object |

  Source:
    - konva-v5.2.0.js, line 3901

  ##### Returns:

  Type
    Number

  ##### Example

      // get opacity
      var opacity = node.opacity();

      // set opacity
      node.opacity(0.5);

#### pixelSize(pixelSize) → {Integer}

  get/set pixel size. Use with Konva.Filters.Pixelate filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pixelSize` | Integer |

  Source:
    - konva-v5.2.0.js, line 5693

  ##### Returns:

  Type
    Integer

#### position(pos) → {Object}

  get/set node position relative to parent

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pos` | Object | ###### Properties
  Name | Type | Description
  --- | --- | ---
  `x` | Number |
  `y` | Number |

  Source:
    - konva-v5.2.0.js, line 3845

  ##### Returns:

  Type
    Object

  ##### Example

      // get position
      var position = node.position();

      // set position
      node.position({
        x: 5
        y: 10
      });

#### red(red) → {Integer}

  get/set filter red value. Use with Konva.Filters.RGB filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `red` | Integer | value between 0 and 255

  Source:
    - konva-v5.2.0.js, line 5007

  ##### Returns:

  Type
    Integer

#### remove() → {Konva.Node}

  remove self from parent, but don't destroy

  Source:
    - konva-v5.2.0.js, line 2707

  ##### Returns:

  Type
    Konva.Node

  ##### Example

      node.remove();

#### rotate(theta) → {Konva.Node}

  rotate node by an amount in degrees relative to its current rotation

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `theta` | Number |

  Source:
    - konva-v5.2.0.js, line 3167

  ##### Returns:

  Type
    Konva.Node

#### rotation(rotation) → {Number}

  get/set rotation in degrees

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rotation` | Number |

  Source:
    - konva-v5.2.0.js, line 3959

  ##### Returns:

  Type
    Number

  ##### Example

      // get rotation in degrees
      var rotation = node.rotation();

      // set rotation in degrees
      node.rotation(45);

#### saturation(saturation) → {Number}

  get/set hsv saturation. Use with Konva.Filters.HSV or Konva.Filters.HSL filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `saturation` | Number | 0 is no change, -1.0 halves the saturation, 1.0 doubles, etc..

  Source:
    - konva-v5.2.0.js, line 5121

  ##### Returns:

  Type
    Number

#### saturation(saturation) → {Number}

  get/set hsv saturation. Use with Konva.Filters.HSV or Konva.Filters.HSL filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `saturation` | Number | 0 is no change, -1.0 halves the saturation, 1.0 doubles, etc..

  Source:
    - konva-v5.2.0.js, line 5154

  ##### Returns:

  Type
    Number

#### scale(scale) → {Object}

  get/set scale

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `scale` | Object | ###### Properties
  Name | Type | Description
  --- | --- | ---
  `x` | Number |
  `y` | Number |

  Source:
    - konva-v5.2.0.js, line 3976

  ##### Returns:

  Type
    Object

  ##### Example

      // get scale
      var scale = node.scale();

      // set scale
      shape.scale({
        x: 2
        y: 3
      });

#### scaleX(x) → {Number}

  get/set scale x

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | Number |

  Source:
    - konva-v5.2.0.js, line 3998

  ##### Returns:

  Type
    Number

  ##### Example

      // get scale x
      var scaleX = node.scaleX();

      // set scale x
      node.scaleX(2);

#### scaleY(y) → {Number}

  get/set scale y

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `y` | Number |

  Source:
    - konva-v5.2.0.js, line 4015

  ##### Returns:

  Type
    Number

  ##### Example

      // get scale y
      var scaleY = node.scaleY();

      // set scale y
      node.scaleY(2);

#### setAbsolutePosition(pos) → {Konva.Node}

  set absolute position

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pos` | Object | ###### Properties
  Name | Type | Description
  --- | --- | ---
  `x` | Number |
  `y` | Number |

  Source:
    - konva-v5.2.0.js, line 3039

  ##### Returns:

  Type
    Konva.Node

#### setAttr(attr, val) → {Konva.Node}

  set attr

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `attr` | String |
  `val` | * |

  Source:
    - konva-v5.2.0.js, line 3716

  ##### Returns:

  Type
    Konva.Node

  ##### Example

      node.setAttr('x', 5);

#### setAttrs(config) → {Konva.Node}

  set multiple attrs at once using an object literal

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `config` | Object | object containing key value pairs

  Source:
    - konva-v5.2.0.js, line 2801

  ##### Returns:

  Type
    Konva.Node

  ##### Example

      node.setAttrs({
        x: 5,
        fill: 'red'
      });

#### setZIndex(zIndex) → {Konva.Node}

  set zIndex relative to siblings

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `zIndex` | Integer |

  Source:
    - konva-v5.2.0.js, line 3256

  ##### Returns:

  Type
    Konva.Node

#### shouldDrawHit() → {Boolean}

  determine if listening is enabled by taking into account descendants. If self or any children have _isListeningEnabled set to true, then self also has listening enabled.

  Source:
    - konva-v5.2.0.js, line 2911

  ##### Returns:

  Type
    Boolean

#### show() → {Konva.Node}

  show node

  Source:
    - konva-v5.2.0.js, line 2922

  ##### Returns:

  Type
    Konva.Node

#### size(size) → {Object}

  get/set node size

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `size` | Object | ###### Properties
  Name | Type | Description
  --- | --- | ---
  `width` | Number |
  `height` | Number |

  Source:
    - konva-v5.2.0.js, line 4275

  ##### Returns:

  Type
    Object

  ##### Example

      // get node size
      var size = node.size();
      var x = size.x;
      var y = size.y;

      // set size
      node.size({
        width: 100,
        height: 200
      });

#### skew(skew) → {Object}

  get/set skew

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `skew` | Object | ###### Properties
  Name | Type | Description
  --- | --- | ---
  `x` | Number |
  `y` | Number |

  Source:
    - konva-v5.2.0.js, line 4032

  ##### Returns:

  Type
    Object

  ##### Example

      // get skew
      var skew = node.skew();

      // set skew
      node.skew({
        x: 20
        y: 10
      });

#### skewX(x) → {Number}

  get/set skew x

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | Number |

  Source:
    - konva-v5.2.0.js, line 4054

  ##### Returns:

  Type
    Number

  ##### Example

      // get skew x
      var skewX = node.skewX();

      // set skew x
      node.skewX(3);

#### skewY(y) → {Number}

  get/set skew y

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `y` | Number |

  Source:
    - konva-v5.2.0.js, line 4071

  ##### Returns:

  Type
    Number

  ##### Example

      // get skew y
      var skewY = node.skewY();

      // set skew y
      node.skewY(3);

#### startDrag()

  initiate drag and drop

  Source:
    - konva-v5.2.0.js, line 7108

#### stopDrag()

  stop drag and drop

  Source:
    - konva-v5.2.0.js, line 7161

#### threshold(threshold) → {Number}

  get/set threshold. Must be a value between 0 and 1. Use with Konva.Filters.Threshold or Konva.Filters.Mask filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `threshold` | Number |

  Source:
    - konva-v5.2.0.js, line 5731

  ##### Returns:

  Type
    Number

#### toDataURL(config) → {String}

  Creates a composite data URL. If MIME type is not specified, then "image/png" will result. For "image/jpeg", specify a quality level as quality (range 0.0 - 1.0)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `config` | Object | ###### Properties
  Name | Type | Argument | Description
  --- | --- | --- | ---
  `mimeType` | String | <optional> | can be "image/png" or "image/jpeg". "image/png" is the default
  `x` | Number | <optional> | x position of canvas section
  `y` | Number | <optional> | y position of canvas section
  `width` | Number | <optional> | width of canvas section
  `height` | Number | <optional> | height of canvas section
  `quality` | Number | <optional> | jpeg quality. If using an "image/jpeg" mimeType, you can specify the quality from 0 to 1, where 0 is very poor quality and 1 is very high quality

  Source:
    - konva-v5.2.0.js, line 3561

  ##### Returns:

  Type
    String

#### toImage(config)

  converts node into an image. Since the toImage method is asynchronous, a callback is required. toImage is most commonly used to cache complex drawings as an image so that they don't have to constantly be redrawn

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `config` | Object | ###### Properties
  Name | Type | Argument | Description
  --- | --- | --- | ---
  `callback` | function |  | function executed when the composite has completed
  `mimeType` | String | <optional> | can be "image/png" or "image/jpeg". "image/png" is the default
  `x` | Number | <optional> | x position of canvas section
  `y` | Number | <optional> | y position of canvas section
  `width` | Number | <optional> | width of canvas section
  `height` | Number | <optional> | height of canvas section
  `quality` | Number | <optional> | jpeg quality. If using an "image/jpeg" mimeType, you can specify the quality from 0 to 1, where 0 is very poor quality and 1 is very high quality

  Source:
    - konva-v5.2.0.js, line 3611

  ##### Example

      var image = node.toImage({
        callback: function(img) {
          // do stuff with img
        }
      });

#### toJSON() → {String}

  convert Node into a JSON string. Returns a JSON string.

  Source:
    - konva-v5.2.0.js, line 3340

  ##### Returns:

  }

  Type
    String

#### toObject() → {Object}

  convert Node into an object for serialization. Returns an object.

  Source:
    - konva-v5.2.0.js, line 3307

  ##### Returns:

  Type
    Object

#### transformsEnabled(enabled) → {String}

  get/set transforms that are enabled. Can be "all", "none", or "position". The default is "all"

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `enabled` | String |

  Source:
    - konva-v5.2.0.js, line 4271

  ##### Returns:

  Type
    String

  ##### Example

      // enable position transform only to improve draw performance
      node.transformsEnabled('position');

      // enable all transforms
      node.transformsEnabled('all');

#### value(value) → {Number}

  get/set hsv value. Use with Konva.Filters.HSV filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `value` | Number | 0 is no change, -1.0 halves the value, 1.0 doubles, etc..

  Source:
    - konva-v5.2.0.js, line 5131

  ##### Returns:

  Type
    Number

#### value(value) → {Number}

  get/set hsl luminance. Use with Konva.Filters.HSL filter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `value` | Number | 0 is no change, -1.0 halves the value, 1.0 doubles, etc..

  Source:
    - konva-v5.2.0.js, line 5164

  ##### Returns:

  Type
    Number

#### visible(visible) → {Boolean|String}

  get/set visible attr. Can be "inherit", true, or false. The default is "inherit". If you need to determine if a node is visible or not by taking into account its parents, use the isVisible() method

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `visible` | Boolean | String |

  Source:
    - konva-v5.2.0.js, line 4246

  ##### Returns:

  Type
    Boolean | String

  ##### Example

      // get visible attr
      var visible = node.visible();

      // make invisible
      node.visible(false);

      // make visible
      node.visible(true);

      // make visible according to the parent
      node.visible('inherit');

#### width(width) → {Number}

  get/set width

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `width` | Number |

  Source:
    - konva-v5.2.0.js, line 4165

  ##### Returns:

  Type
    Number

  ##### Example

      // get width
      var width = node.width();

      // set width
      node.width(100);

#### x(x) → {Object}

  get/set x position

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | Number |

  Source:
    - konva-v5.2.0.js, line 3867

  ##### Returns:

  Type
    Object

  ##### Example

      // get x
      var x = node.x();

      // set x
      node.x(5);

#### y(y) → {Integer}

  get/set y position

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `y` | Number |

  Source:
    - konva-v5.2.0.js, line 3884

  ##### Returns:

  Type
    Integer

  ##### Example

      // get y
      var y = node.y();

      // set y
      node.y(5);