{
    "project": {
        "name": "jsplumb",
        "description": "Visual connectivity for webapps",
        "version": "1.7.11",
        "url": ""
    },
    "files": {
        "doc/api/anchors.js": {
            "name": "doc/api/anchors.js",
            "modules": {},
            "classes": {
                "Anchors.Top": 1,
                "Anchors.TopCenter": 1,
                "Anchors.Bottom": 1,
                "Anchors.BottomCenter": 1,
                "Anchors.Left": 1,
                "Anchors.LeftMiddle": 1,
                "Anchors.Right": 1,
                "Anchors.RightMiddle": 1,
                "Anchors.Center": 1,
                "Anchors.TopRight": 1,
                "Anchors.BottomRight": 1,
                "Anchors.TopLeft": 1,
                "Anchors.BottomLeft": 1,
                "Anchors.AutoDefault": 1,
                "Anchors.Assign": 1,
                "Anchors.ContinuousLeft": 1,
                "Anchors.ContinuousTop": 1,
                "Anchors.ContinuousBottom": 1,
                "Anchors.ContinuousRight": 1,
                "Anchors.Continuous": 1,
                "Anchors.Perimeter": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "doc/api/connection-api.js": {
            "name": "doc/api/connection-api.js",
            "modules": {},
            "classes": {
                "Connection": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "doc/api/connectors.js": {
            "name": "doc/api/connectors.js",
            "modules": {},
            "classes": {
                "Connector": 1,
                "Connectors.Flowchart": 1,
                "Connectors.StateMachine": 1,
                "Connectors.Straight": 1,
                "Connectors.Bezier": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "doc/api/endpoint-api.js": {
            "name": "doc/api/endpoint-api.js",
            "modules": {},
            "classes": {
                "Endpoint": 1,
                "Endpoints.Blank": 1,
                "Endpoints.Dot": 1,
                "Endpoints.Rectangle": 1,
                "Endpoints.Image": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "doc/api/jsplumb-api.js": {
            "name": "doc/api/jsplumb-api.js",
            "modules": {},
            "classes": {
                "jsPlumb": 1,
                "jsPlumbInstance": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "doc/api/overlaycomponent.js": {
            "name": "doc/api/overlaycomponent.js",
            "modules": {},
            "classes": {
                "OverlayCapableJsPlumbUIComponent": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "doc/api/overlays-api.js": {
            "name": "doc/api/overlays-api.js",
            "modules": {},
            "classes": {
                "AbstractOverlay": 1,
                "Overlays.Arrow": 1,
                "Overlays.PlainArrow": 1,
                "Overlays.Diamond": 1,
                "Overlays.Label": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "doc/api/uicomponent.js": {
            "name": "doc/api/uicomponent.js",
            "modules": {},
            "classes": {
                "jsPlumbUIComponent": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "doc/api/util-api.js": {
            "name": "doc/api/util-api.js",
            "modules": {},
            "classes": {
                "jsPlumbUtil": 1,
                "jsPlumbUtil.EventGenerator": 1
            },
            "fors": {},
            "namespaces": {}
        }
    },
    "modules": {},
    "classes": {
        "Anchors.Top": {
            "name": "Anchors.Top",
            "shortname": "Anchors.Top",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 2,
            "description": "An Anchor that is located at the top center of the element."
        },
        "Anchors.TopCenter": {
            "name": "Anchors.TopCenter",
            "shortname": "Anchors.TopCenter",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 6,
            "description": "An Anchor that is located at the top center of the element.",
            "deprecated": true,
            "deprecationMessage": "Use `Top` instead."
        },
        "Anchors.Bottom": {
            "name": "Anchors.Bottom",
            "shortname": "Anchors.Bottom",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 11,
            "description": "An Anchor that is located at the bottom center of the element."
        },
        "Anchors.BottomCenter": {
            "name": "Anchors.BottomCenter",
            "shortname": "Anchors.BottomCenter",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 15,
            "description": "An Anchor that is located at the bottom center of the element.",
            "deprecated": true,
            "deprecationMessage": "Use `Bottom` instead."
        },
        "Anchors.Left": {
            "name": "Anchors.Left",
            "shortname": "Anchors.Left",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 20,
            "description": "An Anchor that is located at the left middle of the element."
        },
        "Anchors.LeftMiddle": {
            "name": "Anchors.LeftMiddle",
            "shortname": "Anchors.LeftMiddle",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 24,
            "description": "An Anchor that is located at the left middle of the element.",
            "deprecated": true,
            "deprecationMessage": "Use `Left` instead."
        },
        "Anchors.Right": {
            "name": "Anchors.Right",
            "shortname": "Anchors.Right",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 29,
            "description": "An Anchor that is located at the right middle of the element."
        },
        "Anchors.RightMiddle": {
            "name": "Anchors.RightMiddle",
            "shortname": "Anchors.RightMiddle",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 33,
            "description": "An Anchor that is located at the right middle of the element.",
            "deprecated": true,
            "deprecationMessage": "Use `Right` instead."
        },
        "Anchors.Center": {
            "name": "Anchors.Center",
            "shortname": "Anchors.Center",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 38,
            "description": "An Anchor that is located at the center of the element."
        },
        "Anchors.TopRight": {
            "name": "Anchors.TopRight",
            "shortname": "Anchors.TopRight",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 42,
            "description": "An Anchor that is located at the top right corner of the element."
        },
        "Anchors.BottomRight": {
            "name": "Anchors.BottomRight",
            "shortname": "Anchors.BottomRight",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 46,
            "description": "An Anchor that is located at the bottom right corner of the element."
        },
        "Anchors.TopLeft": {
            "name": "Anchors.TopLeft",
            "shortname": "Anchors.TopLeft",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 50,
            "description": "An Anchor that is located at the top left corner of the element."
        },
        "Anchors.BottomLeft": {
            "name": "Anchors.BottomLeft",
            "shortname": "Anchors.BottomLeft",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 54,
            "description": "An Anchor that is located at the bottom left corner of the element."
        },
        "Anchors.AutoDefault": {
            "name": "Anchors.AutoDefault",
            "shortname": "Anchors.AutoDefault",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 58,
            "description": "Default DynamicAnchors - chooses from Top, Right, Bottom, Left."
        },
        "Anchors.Assign": {
            "name": "Anchors.Assign",
            "shortname": "Anchors.Assign",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 62,
            "description": "An Anchor whose location is assigned at connection time, through an AnchorPositionFinder. Used in conjunction\nwith the `makeTarget` function. jsPlumb has two of these - `Fixed` and `Grid`, and you can also write your own."
        },
        "Anchors.ContinuousLeft": {
            "name": "Anchors.ContinuousLeft",
            "shortname": "Anchors.ContinuousLeft",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 68,
            "description": "A continuous anchor that uses only the left edge of the element."
        },
        "Anchors.ContinuousTop": {
            "name": "Anchors.ContinuousTop",
            "shortname": "Anchors.ContinuousTop",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 72,
            "description": "A continuous anchor that uses only the top edge of the element."
        },
        "Anchors.ContinuousBottom": {
            "name": "Anchors.ContinuousBottom",
            "shortname": "Anchors.ContinuousBottom",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 76,
            "description": "A continuous anchor that uses only the bottom edge of the element."
        },
        "Anchors.ContinuousRight": {
            "name": "Anchors.ContinuousRight",
            "shortname": "Anchors.ContinuousRight",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 80,
            "description": "A continuous anchor that uses only the right edge of the element."
        },
        "Anchors.Continuous": {
            "name": "Anchors.Continuous",
            "shortname": "Anchors.Continuous",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 85,
            "description": "An Anchor that tracks the other element in the connection, choosing the closest face.",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters",
                    "type": "Object",
                    "optional": true,
                    "props": [
                        {
                            "name": "faces",
                            "description": "Optional array of faces for the anchor. Valid values are `\"top\"`, `\"left\"`, `\"bottom\"` and `\"right\"`.",
                            "type": "String[]",
                            "optional": true
                        }
                    ]
                }
            ]
        },
        "Anchors.Perimeter": {
            "name": "Anchors.Perimeter",
            "shortname": "Anchors.Perimeter",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/anchors.js",
            "line": 93,
            "description": "An Anchor that tracks the perimeter of some shape, approximating it with a given number of dynamically\npositioned locations.",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters",
                    "type": "Object",
                    "props": [
                        {
                            "name": "anchorCount",
                            "description": "Optional number of anchors to use to approximate the perimeter. default is 60.",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "60"
                        },
                        {
                            "name": "shape",
                            "description": "Required. the name of the shape. Valid values are 'rectangle', 'square', 'ellipse', 'circle', 'triangle' and 'diamond'",
                            "type": "String"
                        },
                        {
                            "name": "rotation",
                            "description": "Optional rotation, in degrees, to apply.",
                            "type": "Number",
                            "optional": true
                        }
                    ]
                }
            ]
        },
        "Connection": {
            "name": "Connection",
            "shortname": "Connection",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/connection-api.js",
            "line": 1,
            "description": "Models a Connection.  A Connection consists of two Endpoints (each of which belongs to some DOM element), a Connector (the actual path inscribed by the\nConnection), and zero or more Overlays.",
            "extends": "OverlayCapableJsPlumbUIComponent"
        },
        "Connector": {
            "name": "Connector",
            "shortname": "Connector",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/connectors.js",
            "line": 2,
            "description": "Parent for all Connector types. When you provide a Connector definition to an appropriate jsPlumb method,\nyou can do so either as a `String`, or as an Array of the form `[String, Object]`.  In the former case, the String\nmust be one of the members from this namespace, such as `\"Bezier\"` or `\"StateMachine\"`. In the latter case,\nthe first argument to the array is the Connector name, and the second is a JS object containing \nconstructor parameters for the Connector, for instance\n\n\n   `[ \"Bezier\", { curviness:75 } ]`\n\n\nEach Connector type supports its own set of parameters, with some parameters (such as stub) being shared by most."
        },
        "Connectors.Flowchart": {
            "name": "Connectors.Flowchart",
            "shortname": "Connectors.Flowchart",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/connectors.js",
            "line": 29,
            "description": "Provides `Flowchart` connectors.",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters",
                    "type": "Object",
                    "props": [
                        {
                            "name": "stub",
                            "description": "Minimum length for the stub at each end of the connector. This can be an integer, giving a value for both ends of the connections, \nor an array of two integers, giving separate values for each end.",
                            "type": "Integer|Integer[]",
                            "optional": true,
                            "optdefault": "30"
                        },
                        {
                            "name": "gap",
                            "description": "Gap to leave between the end of the connector and the element on which the endpoint resides. if you make this larger than stub then you will see some odd looking behaviour.  \n          Like stub, this can be an array or a single value.",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "0"
                        },
                        {
                            "name": "cornerRadius",
                            "description": "Optional, defines the radius of corners between segments. Defaults to 0 (hard edged corners).",
                            "type": "Float",
                            "optional": true,
                            "optdefault": "0"
                        },
                        {
                            "name": "alwaysRespectStubs",
                            "description": "Whether or not the connectors should always draw the stub, or, if the two elements\n                      are in close proximity to each other (closer than the sum of the two stubs), to adjust the stubs.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "false"
                        },
                        {
                            "name": "midpoint",
                            "description": "If provided, jsPlumb will use this location as the midpoint of the connector.",
                            "type": "Number",
                            "optional": true,
                            "optdefault": "0.5"
                        }
                    ]
                }
            ]
        },
        "Connectors.StateMachine": {
            "name": "Connectors.StateMachine",
            "shortname": "Connectors.StateMachine",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/connectors.js",
            "line": 50,
            "description": "Provides \"state machine\" connectors. These are a quadratic bezier curve.",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters.",
                    "type": "Object",
                    "props": [
                        {
                            "name": "curviness",
                            "description": "Measure of how \"curvy\" the connectors will be.  this is translated as the distance that the\n               Bezier curve's control point is from the midpoint of the straight line connecting the two\n             endpoints, and does not mean that the connector is this wide.  The Bezier curve never reaches\n             its control points; they act as gravitational masses.",
                            "type": "Number",
                            "optional": true,
                            "optdefault": "10"
                        },
                        {
                            "name": "margin",
                            "description": "Distance from element to start and end connectors, in pixels.",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "5"
                        },
                        {
                            "name": "proximityLimit",
                            "description": "Sets the distance beneath which the elements are consider too close together to bother\n           with fancy curves.",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "80"
                        },
                        {
                            "name": "loopbackRadius",
                            "description": "The radius of a loopback connector.",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "25"
                        },
                        {
                            "name": "showLoopback",
                            "description": "If set to false this tells the connector that it is ok to paint connections whose source and target is the same element with a connector running through the element. The default value for this is true; the connector always makes a loopback connection loop around the element rather than passing through it.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "true"
                        },
                        {
                            "name": "orientation",
                            "description": "Valid values are `\"clockwise\"` and `\"anticlockwise\"`. Indicates in which direction a loopback connection should be considered to be travelling.",
                            "type": "String",
                            "optional": true,
                            "optdefault": "\"clockwise\""
                        }
                    ]
                }
            ]
        },
        "Connectors.Straight": {
            "name": "Connectors.Straight",
            "shortname": "Connectors.Straight",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/connectors.js",
            "line": 67,
            "description": "The Straight connector draws a simple straight line between the two anchor points.",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters.",
                    "type": "Object",
                    "props": [
                        {
                            "name": "stub",
                            "description": "Optional distance to travel from each endpoint before making the connection between the two.",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "0"
                        },
                        {
                            "name": "sourceStub",
                            "description": "Optional stub for the source endpoint only.",
                            "type": "Integer",
                            "optional": true
                        },
                        {
                            "name": "targetStub",
                            "description": "Optional stub for the target endpoint only.",
                            "type": "Integer",
                            "optional": true
                        },
                        {
                            "name": "gap",
                            "description": "Optional gap to leave between the endpoints and the start of the connector.",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "0"
                        },
                        {
                            "name": "sourceGap",
                            "description": "Optional gap for the source endpoint only.",
                            "type": "Integer",
                            "optional": true
                        },
                        {
                            "name": "targetGap",
                            "description": "Optional gap for the target endpoint only.",
                            "type": "Integer",
                            "optional": true
                        }
                    ]
                }
            ]
        },
        "Connectors.Bezier": {
            "name": "Connectors.Bezier",
            "shortname": "Connectors.Bezier",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/connectors.js",
            "line": 80,
            "description": "This Connector draws a Bezier curve with two control points.  You can provide a 'curviness' value which gets applied to jsPlumb's\ninternal voodoo machine and ends up generating locations for the two control points.",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters.",
                    "type": "Object",
                    "props": [
                        {
                            "name": "curviness",
                            "description": "How 'curvy' you want the curve to be! This is a directive for the placement of control points, not endpoints of the curve, so your curve does not \nactually touch the given point, but it has the tendency to lean towards it.  The larger this value, the greater the curve is pulled from a straight line.",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "150"
                        },
                        {
                            "name": "stub",
                            "description": "Optional value for a distance to travel from the connector's endpoint before beginning the Bezier curve.",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "0"
                        }
                    ]
                }
            ]
        },
        "Endpoint": {
            "name": "Endpoint",
            "shortname": "Endpoint",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/endpoint-api.js",
            "line": 1,
            "description": "Models an Endpoint - one end of a Connection. An Endpoint has an underlying Anchor, which is what determines the\nEndpoint's position. Each Endpoint can have 1 to `maxConnections` connections emanating from it (set `maxConnections` to -1 \nto allow unlimited Connections; the default is 1).\n\nYou never need to create an Endpoint directly. When you provide an Endpoint definition to an appropriate \njsPlumb method, you can do so either as a string, or as an array of the form `[String, Object]`.  In the former case, the string\nmust be the name of some available Endpoint, such as `\"Dot\"` or `\"Rectangle\"`. In the latter case,\nthe first argument to the array is the Endpoint name, and the second is a JS object containing \nconstructor parameters for the Endpoint, for instance\n\n   `[ \"Dot\", { radius:75 } ]`",
            "extends": "OverlayCapableJsPlumbUIComponent",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters.",
                    "type": "Object",
                    "props": [
                        {
                            "name": "anchor",
                            "description": "Definition of the Anchor for the endpoint.  See the jsPlumb documentation for a discussion of this.",
                            "type": "String|Array",
                            "optional": true
                        },
                        {
                            "name": "endpoint",
                            "description": "Endpoint definition. See the jsPlumb documentation for a discussion of this.",
                            "type": "String|Array",
                            "optional": true
                        },
                        {
                            "name": "enabled",
                            "description": "Whether or not the Endpoint should be enabled for mouse events (drag/drop).",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "true"
                        },
                        {
                            "name": "paintStyle",
                            "description": "Endpoint style, a js object. may be null.",
                            "type": "Object",
                            "optional": true,
                            "optdefault": "null"
                        },
                        {
                            "name": "hoverPaintStyle",
                            "description": "Style to use when the mouse is hovering over the Endpoint. A js object. may be null; defaults to null.",
                            "type": "Object",
                            "optional": true,
                            "optdefault": "null"
                        },
                        {
                            "name": "cssClass",
                            "description": "CSS class to set on the display element associated with this Endpoint.",
                            "type": "String",
                            "optional": true,
                            "optdefault": "null"
                        },
                        {
                            "name": "hoverClass",
                            "description": "CSS class to set on the display element associated with this Endpoint when it is in hover state.",
                            "type": "String",
                            "optional": true,
                            "optdefault": "null"
                        },
                        {
                            "name": "source",
                            "description": "Element the Endpoint is attached to, of type String (an element id), element selector, or element. Required.",
                            "type": "String|Selector|Element"
                        },
                        {
                            "name": "container",
                            "description": "Id or selector instructing jsPlumb where to attach the element it creates for this endpoint.  you should read the documentation for a full discussion of this.",
                            "type": "String|Selector|Element",
                            "optional": true
                        },
                        {
                            "name": "connections",
                            "description": "List of Connections to configure the Endpoint with.",
                            "type": "Connection[]",
                            "optional": true
                        },
                        {
                            "name": "isSource",
                            "description": "Indicates the endpoint can act as a source of new connections. Optional; defaults to false.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "false"
                        },
                        {
                            "name": "maxConnections",
                            "description": "A value of -1 means no upper limit.",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "1"
                        },
                        {
                            "name": "dragOptions",
                            "description": "If `isSource` is set to true, you can supply arguments for the underlying library's drag method. Optional; defaults to null.",
                            "type": "Object",
                            "optional": true
                        },
                        {
                            "name": "connectorStyle",
                            "description": "If `isSource` is set to true, this is the paint style for Connections from this Endpoint. Optional; defaults to null.",
                            "type": "Object",
                            "optional": true
                        },
                        {
                            "name": "connectorHoverStyle",
                            "description": "If `isSource` is set to true, this is the hover paint style for Connections from this Endpoint. Optional; defaults to null.",
                            "type": "Object",
                            "optional": true
                        },
                        {
                            "name": "connector",
                            "description": "Connector type to use.  Like `endpoint`, this may be either a single string nominating a known Connector type (eg. `\"Bezier\"`, `\"Straight\"`), or an array containing [name, params], eg. `[ \"Bezier\", { curviness:160 } ]`.",
                            "type": "String|Object",
                            "optional": true
                        },
                        {
                            "name": "connectorOverlays",
                            "description": "Array of Overlay definitions that will be applied to any Connection from this Endpoint.",
                            "type": "Object[]",
                            "optional": true
                        },
                        {
                            "name": "connectorClass",
                            "description": "CSS class to set on Connections emanating from this Endpoint.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "connectorHoverClass",
                            "description": "CSS class to set on to set on Connections emanating from this Endpoint when they are in hover state.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "connectionsDetachable",
                            "description": "Sets whether connections to/from this Endpoint should be detachable or not.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "true"
                        },
                        {
                            "name": "isTarget",
                            "description": "Indicates the endpoint can act as a target of new connections. Optional; defaults to false.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "false"
                        },
                        {
                            "name": "dropOptions",
                            "description": "If `isTarget` is set to true, you can supply arguments for the underlying library's drop method with this parameter. Optional; defaults to null.",
                            "type": "Object",
                            "optional": true
                        },
                        {
                            "name": "reattach",
                            "description": "Determines whether or not the Connections reattach after they have been dragged off an Endpoint and left floating. defaults to false: Connections dropped in this way will just be deleted.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "false"
                        },
                        {
                            "name": "parameters",
                            "description": "JS object containing parameters to set on the Endpoint. These parameters are then available via the getParameter method.  When a connection is made involving this Endpoint, the parameters from this Endpoint are copied into that Connection. Source Endpoint parameters override target Endpoint parameters if they both have a parameter with the same name.",
                            "type": "Object",
                            "optional": true,
                            "optdefault": "{}"
                        },
                        {
                            "name": "connector-pointer-events",
                            "description": "A value for the 'pointer-events' property of any SVG elements that are created to render connections from this endoint.",
                            "type": "String",
                            "optional": true
                        }
                    ]
                }
            ]
        },
        "Endpoints.Blank": {
            "name": "Endpoints.Blank",
            "shortname": "Endpoints.Blank",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/endpoint-api.js",
            "line": 169,
            "description": "Does not draw anything visible to the user. This Endpoint is probably not what you want if you need your users to be able to drag existing Connections - for that, use a Rectangle or Dot Endpoint and assign to it a CSS class that causes it to be transparent.",
            "extends": "Endpoint"
        },
        "Endpoints.Dot": {
            "name": "Endpoints.Dot",
            "shortname": "Endpoints.Dot",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/endpoint-api.js",
            "line": 175,
            "description": "A circular Endpoint with configurable radius.",
            "extends": "Endpoint",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters",
                    "type": "Object",
                    "props": [
                        {
                            "name": "radius",
                            "description": "Radius of the Endpoint",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "10"
                        },
                        {
                            "name": "cssClass",
                            "description": "Optional space-delimited list of CSS classes to attach to the Endpoint.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "hoverClass",
                            "description": "Optional space-delimited list of CSS classes to attach to the Endpoint when the mouse is hovering over it.",
                            "type": "String",
                            "optional": true
                        }
                    ]
                }
            ]
        },
        "Endpoints.Rectangle": {
            "name": "Endpoints.Rectangle",
            "shortname": "Endpoints.Rectangle",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/endpoint-api.js",
            "line": 186,
            "description": "A rectangular Endpoint with configurable width/height.",
            "extends": "Endpoint",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters",
                    "type": "Object",
                    "props": [
                        {
                            "name": "width",
                            "description": "Width of the Endpoint",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "20"
                        },
                        {
                            "name": "height",
                            "description": "Height of the Endpoint",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "20"
                        },
                        {
                            "name": "cssClass",
                            "description": "Optional space-delimited list of CSS classes to attach to the Endpoint.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "hoverClass",
                            "description": "Optional space-delimited list of CSS classes to attach to the Endpoint when the mouse is hovering over it.",
                            "type": "String",
                            "optional": true
                        }
                    ]
                }
            ]
        },
        "Endpoints.Image": {
            "name": "Endpoints.Image",
            "shortname": "Endpoints.Image",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/endpoint-api.js",
            "line": 198,
            "description": "An Endpoint that uses an Image.",
            "extends": "Endpoint",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters",
                    "type": "Object",
                    "props": [
                        {
                            "name": "src",
                            "description": "Url of the image to display",
                            "type": "Integer"
                        },
                        {
                            "name": "cssClass",
                            "description": "Optional space-delimited list of CSS classes to attach to the Endpoint.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "hoverClass",
                            "description": "Optional space-delimited list of CSS classes to attach to the Endpoint when the mouse is hovering over it.",
                            "type": "String",
                            "optional": true
                        }
                    ]
                }
            ]
        },
        "jsPlumb": {
            "name": "jsPlumb",
            "shortname": "jsPlumb",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/jsplumb-api.js",
            "line": 1,
            "description": "This is a static jsPlumbInstance that is created and registered on the window, really just for the sake of convenience:  you do not have to use this; you can create your own instances using\nthe `jsPlumbInstance.getInstance` method. For a list of the available methods and properties on this object,\nsee the `jsPlumbInstance` API docs.",
            "static": 1,
            "extends": "jsPlumbInstance"
        },
        "jsPlumbInstance": {
            "name": "jsPlumbInstance",
            "shortname": "jsPlumbInstance",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/jsplumb-api.js",
            "line": 10,
            "description": "This class models an instance of jsPlumb.  The global object {{#crossLink \"jsPlumb\"}}{{/crossLink}} is both a static module\nand an instance of this class, and it is an instance of this class that is returned from {{#crossLink \"jsPlumb\"}}{{/crossLink}}.\nA jsPlumbInstance manages a set of Endpoints and Connections.",
            "extends": "jsPlumbUtil.EventGenerator"
        },
        "OverlayCapableJsPlumbUIComponent": {
            "name": "OverlayCapableJsPlumbUIComponent",
            "shortname": "OverlayCapableJsPlumbUIComponent",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/overlaycomponent.js",
            "line": 1,
            "description": "Base class for components that support Overlays. This class should never be directly instantiated.",
            "extends": "jsPlumbUIComponent"
        },
        "AbstractOverlay": {
            "name": "AbstractOverlay",
            "shortname": "AbstractOverlay",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/overlays-api.js",
            "line": 1,
            "description": "Parent for all Overlay types.  The core concept with an Overlay is that of its `location`, which is specified\nas follows:\n\n###### Connectors\n    - a value between 0 and 1 inclusive is a proportional value, relative to the length of the Connector's path.\n    - a value greater than 1 or less than 0 is an absolute value (travel along the path inscribed by the Connector)\n\nFor Connectors, the default value is `0.5`.\n\n###### Endpoints\n    - An array of two values which are proportional to the width and height of the Endpoint.\n\nFor Endpoints, the default value is `[0.5, 0.5]`."
        },
        "Overlays.Arrow": {
            "name": "Overlays.Arrow",
            "shortname": "Overlays.Arrow",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/overlays-api.js",
            "line": 18,
            "description": "Draws an arrow, using four points: the head and two tail points, and a `foldback` point, which permits the tail of the arrow to be indented.",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters",
                    "type": "Object",
                    "props": [
                        {
                            "name": "width",
                            "description": "Width of the tail of the arrow",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "20"
                        },
                        {
                            "name": "length",
                            "description": "Distance from the tail of the arrow to the head",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "20"
                        },
                        {
                            "name": "location",
                            "description": "Where, either as a proportional value from 0 to 1 inclusive, or as an absolute value (negative values mean distance from target; positive values greater than 1 mean distance from source) the Arrow should appear on the Connector",
                            "type": "Float",
                            "optional": true,
                            "optdefault": "0.5"
                        },
                        {
                            "name": "direction",
                            "description": "Which way to point. Allowed values are 1 (the default, meaning forwards) and -1, meaning backwards",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "1"
                        },
                        {
                            "name": "foldback",
                            "description": "How far along the axis of the arrow the tail points foldback in to.",
                            "type": "Float",
                            "optional": true,
                            "optdefault": "0.623"
                        },
                        {
                            "name": "paintStyle",
                            "description": "A style object in the form used for paintStyle values for Endpoints and Connectors.",
                            "type": "Object",
                            "optional": true
                        }
                    ]
                }
            ]
        },
        "Overlays.PlainArrow": {
            "name": "Overlays.PlainArrow",
            "shortname": "Overlays.PlainArrow",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/overlays-api.js",
            "line": 31,
            "description": "This is just a specialized instance of Arrow in which jsPlumb hardcodes `foldback` to 1, meaning the tail of the Arrow is a flat edge",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters",
                    "type": "Object",
                    "props": [
                        {
                            "name": "width",
                            "description": "Width of the tail of the arrow",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "20"
                        },
                        {
                            "name": "length",
                            "description": "Distance from the tail of the arrow to the head",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "20"
                        },
                        {
                            "name": "location",
                            "description": "Where, either as a proportional value from 0 to 1 inclusive, or as an absolute value (negative values mean distance from target; positive values greater than 1 mean distance from source) the PlainArrow should appear on the Connector",
                            "type": "Float",
                            "optional": true,
                            "optdefault": "0.5"
                        },
                        {
                            "name": "direction",
                            "description": "Which way to point. Allowed values are 1 (the default, meaning forwards) and -1, meaning backwards",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "1"
                        },
                        {
                            "name": "paintStyle",
                            "description": "A style object in the form used for paintStyle values for Endpoints and Connectors.",
                            "type": "Object",
                            "optional": true
                        }
                    ]
                }
            ]
        },
        "Overlays.Diamond": {
            "name": "Overlays.Diamond",
            "shortname": "Overlays.Diamond",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/overlays-api.js",
            "line": 43,
            "description": "This is a specialized instance of Arrow in which jsPlumb hardcodes `foldback` to 2, meaning the Arrow turns into a Diamond",
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters",
                    "type": "Object",
                    "props": [
                        {
                            "name": "width",
                            "description": "Width of the diamond.",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "20"
                        },
                        {
                            "name": "length",
                            "description": "Length of the diamond.",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "20"
                        },
                        {
                            "name": "location",
                            "description": "Where, either as a proportional value from 0 to 1 inclusive, or as an absolute value (negative values mean distance from target; positive values greater than 1 mean distance from source) the Diamond should appear on the Connector",
                            "type": "Float",
                            "optional": true,
                            "optdefault": "0.5"
                        },
                        {
                            "name": "paintStyle",
                            "description": "A style object in the form used for paintStyle values for Endpoints and Connectors.",
                            "type": "Object",
                            "optional": true
                        }
                    ]
                }
            ]
        },
        "Overlays.Label": {
            "name": "Overlays.Label",
            "shortname": "Overlays.Label",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/overlays-api.js",
            "line": 53,
            "description": "Provides a text label with which to decorate Connectors or Endpoints. For all different renderer types (SVG/Canvas/VML), jsPlumb draws a Label overlay as a styled DIV.  You can style a Label\nusing the `cssClass` parameter, or - if you need to programmatically generate the appearance - the `labelStyle` parameter.",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters",
                    "type": "Object"
                },
                {
                    "name": "label",
                    "description": "- The text to display. You can provide a function here instead of plain text: it is passed the component as an argument, and it should return a String.",
                    "type": "String|Function"
                },
                {
                    "name": "cssClass",
                    "description": "Optional css class to use for the Label.",
                    "type": "String",
                    "optional": true
                },
                {
                    "name": "location",
                    "description": "Where, either as a proportional value from 0 to 1 inclusive, or as an absolute value (negative values mean distance from target; positive values greater than 1 mean distance from source) the Label should appear on the Connector",
                    "type": "Float",
                    "optional": true,
                    "optdefault": "0.5"
                },
                {
                    "name": "labelStyle",
                    "description": "Optional object containing properties for the label's style. Use this if you need to prgrammatically generate the label's appearance.",
                    "type": "Object",
                    "optional": true,
                    "props": [
                        {
                            "name": "cssClass",
                            "description": "css class for the label (you can also use the `cssClass` parameter on the label; this exists for historical reasons)",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "font",
                            "description": "A string specifying a font to use, in valid CSS format.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "color",
                            "description": "A string specifying a font color to use, in valid CSS format.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "fillStyle",
                            "description": "A string specifying the background for the label, in valid CSS format.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "borderStyle",
                            "description": "A string specifying the border color for the label, in valid CSS format.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "borderWidth",
                            "description": "Width of the border's label",
                            "type": "Integer",
                            "optional": true
                        },
                        {
                            "name": "padding",
                            "description": "Padding for the label.",
                            "type": "Integer",
                            "optional": true
                        }
                    ]
                }
            ]
        },
        "jsPlumbUIComponent": {
            "name": "jsPlumbUIComponent",
            "shortname": "jsPlumbUIComponent",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/uicomponent.js",
            "line": 1,
            "description": "Abstract superclass for Endpoint, Connection, Connector and Overlay.\nThis class provides support for a few basic capabilities that are common to many objects in jsPlumb:\n\n- Events\n- Types\n- CSS Classes\n- Parameters\n- Paint Styles\n\nYou don't interact directly with an instance of this class; it is abstract.",
            "extends": "jsPlumbUtil.EventGenerator"
        },
        "jsPlumbUtil": {
            "name": "jsPlumbUtil",
            "shortname": "jsPlumbUtil",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/util-api.js",
            "line": 1,
            "description": "A set of helper methods for use by jsPlumb.",
            "static": 1
        },
        "jsPlumbUtil.EventGenerator": {
            "name": "jsPlumbUtil.EventGenerator",
            "shortname": "jsPlumbUtil.EventGenerator",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "doc/api/util-api.js",
            "line": 84,
            "description": "Provides event bind/fire functionality."
        }
    },
    "classitems": [
        {
            "file": "doc/api/connection-api.js",
            "line": 9,
            "description": "Connection constructor. You should not ever create one of these directly. If you make a call to jsPlumb.connect, all of\nthe parameters that you pass in to that function will be passed to the Connection constructor; if your UI\nuses the various Endpoint-centric methods like addEndpoint/makeSource/makeTarget, along with drag and drop,\nthen the parameters you set on those functions are translated and passed in to the Connection constructor. So\nyou should check the documentation for each of those methods.",
            "is_constructor": 1,
            "params": [
                {
                    "name": "params",
                    "description": "Constructor parameters",
                    "type": "Object",
                    "props": [
                        {
                            "name": "source",
                            "description": "Either an element id, a selector for an element, or an Endpoint.",
                            "type": "String|Element|Selector|Endpoint",
                            "optional": true
                        },
                        {
                            "name": "target",
                            "description": "Either an element id, a selector for an element, or an Endpoint",
                            "type": "String|Element|Selector|Endpoint",
                            "optional": true
                        },
                        {
                            "name": "scope",
                            "description": "Scope descriptor for this connection.",
                            "type": "String",
                            "optional": true,
                            "optdefault": "`jsPlumb.Defaults.Scope`"
                        },
                        {
                            "name": "container",
                            "description": "Optional id, element or selector instructing jsPlumb where to attach all the elements it creates for this connection.  you should read the documentation for a full discussion of this.",
                            "type": "String|Element|Selector",
                            "optional": true
                        },
                        {
                            "name": "detachable",
                            "description": "Defines whether or not the connection may be detached using the mouse.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "true"
                        },
                        {
                            "name": "reattach",
                            "description": "Defines whether not the connection should be retached if it was dragged off an Endpoint and then dropped in whitespace.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "false"
                        },
                        {
                            "name": "endpoint",
                            "description": "Optional Endpoint definition to use for both ends of the connection.",
                            "type": "Object",
                            "optional": true
                        },
                        {
                            "name": "endpoints",
                            "description": "Optional array of two Endpoint definitions, one for each end of the Connection. This and 'endpoint' are mutually exclusive parameters.",
                            "type": "Object[]",
                            "optional": true
                        },
                        {
                            "name": "endpointStyle",
                            "description": "Endpoint style definition to use for both ends of the Connection.",
                            "type": "Object",
                            "optional": true
                        },
                        {
                            "name": "endpointStyles",
                            "description": "Array of two Endpoint style definitions, one for each end of the Connection. This and 'endpoint' are mutually exclusive parameters.",
                            "type": "Object[]",
                            "optional": true
                        },
                        {
                            "name": "paintStyle",
                            "description": "Parameters defining the appearance of the Connection. Optional; jsPlumb will use the defaults if you supply nothing here.",
                            "type": "Object",
                            "optional": true
                        },
                        {
                            "name": "hoverPaintStyle",
                            "description": "Parameters defining the appearance of the Connection when the mouse is hovering over it. Optional; jsPlumb will use the defaults if you supply nothing here (note that the default hoverPaintStyle is null).",
                            "type": "Object",
                            "optional": true
                        },
                        {
                            "name": "cssClass",
                            "description": "CSS class to set on the display element associated with this Connection.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "hoverClass",
                            "description": "CSS class to set on the display element associated with this Connection when it is in hover state.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "overlays",
                            "description": "Array of Overlay definitions to appear on this Connection.",
                            "type": "Object[]",
                            "optional": true
                        },
                        {
                            "name": "drawEndpoints",
                            "description": "If false, instructs jsPlumb to not draw the endpoints for this Connection.  Be careful with this: it only really works when you tell jsPlumb to attach elements to the document body. Read the documentation for a full discussion of this.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "true"
                        },
                        {
                            "name": "parameters",
                            "description": "JS object containing parameters to set on the Connection. These parameters are then available via the getParameter method.",
                            "type": "Object",
                            "optional": true,
                            "optdefault": "{}"
                        }
                    ]
                }
            ],
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 36,
            "description": "ID of the source element.",
            "itemtype": "property",
            "name": "sourceId",
            "type": "{String}",
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 42,
            "description": "ID of the target element.",
            "itemtype": "property",
            "name": "targetId",
            "type": "{String}",
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 48,
            "description": "Scope descriptor for the Connection.",
            "itemtype": "property",
            "name": "scope",
            "type": "{String}",
            "default": "\"_jsPlumb_Default_Scope\"",
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 55,
            "description": "Source element in the Connection.",
            "itemtype": "property",
            "name": "source",
            "type": "{Element}",
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 61,
            "description": "Target element in the Connection.",
            "itemtype": "property",
            "name": "target",
            "type": "{Element}",
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 67,
            "description": "Array of Endpoints.",
            "itemtype": "property",
            "name": "endpoints",
            "type": "{Endpoint[]}",
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 74,
            "description": "Gets the underlying Connector for this Connection. A Connector is the path the user sees between the two Endpoints.",
            "itemtype": "method",
            "name": "getConnector",
            "return": {
                "description": "The current Connector.",
                "type": "Connector"
            },
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 80,
            "description": "Returns whether or not this Connection can be detached from its target/source endpoint.  By default this\nis false; use it in conjunction with the `reattach` parameter.",
            "itemtype": "method",
            "name": "isDetachable",
            "return": {
                "description": "True if can be detached, false otherwise.",
                "type": "Boolean"
            },
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 87,
            "description": "Returns whether or not the Connection is editable.",
            "itemtype": "method",
            "name": "isEditable",
            "return": {
                "description": "True if editable, false if not.",
                "type": "Boolean"
            },
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 93,
            "description": "Returns whether or not this Connection will be reattached after having been detached via the mouse and dropped.  By default this\nis false; use it in conjunction with the `detachable` parameter.",
            "itemtype": "method",
            "name": "isReattach",
            "return": {
                "description": "True if will reattach, false if not.",
                "type": "Boolean"
            },
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 100,
            "description": "Returns whether or not the Connection is currently visible.",
            "itemtype": "method",
            "name": "isVisible",
            "return": {
                "description": "True if visible, false if not.",
                "type": "Boolean"
            },
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 106,
            "description": "Sets the Connection's connector (eg `Bezier`, `Flowchart`, etc).  You pass a Connector definition into this method, the same\nthing that you would set as the `connector` property on a `jsPlumb.connect` call.",
            "itemtype": "method",
            "name": "setConnector",
            "params": [
                {
                    "name": "connector",
                    "description": "Connector definition. See jsPlumb documentation for a discussion.",
                    "type": "String|Object"
                }
            ],
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 113,
            "description": "Sets whether or not this connection is detachable.",
            "itemtype": "method",
            "name": "setDetachable",
            "params": [
                {
                    "name": "detachable",
                    "description": "Whether or not to set the Connection to be detachable.",
                    "type": "Boolean"
                }
            ],
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 119,
            "description": "Sets whether or not the Connection is editable. This will only be honoured if\nthe underlying Connector is editable - not all types are.",
            "itemtype": "method",
            "name": "setEditable",
            "params": [
                {
                    "name": "editable",
                    "description": "Whether or not to set the Connection to be editable.",
                    "type": "Boolean"
                }
            ],
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 126,
            "description": "Sets whether or not this connection will reattach after having been detached via the mouse and dropped.",
            "itemtype": "method",
            "name": "setReattach",
            "params": [
                {
                    "name": "reattach",
                    "description": "Whether or not to set the Connection to reattach after it has been dropped in whitespace.",
                    "type": "Boolean"
                }
            ],
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 132,
            "description": "Sets whether or not the Connection should be visible.",
            "itemtype": "method",
            "name": "setVisible",
            "params": [
                {
                    "name": "visible",
                    "description": "Boolean indicating desired visible state.",
                    "type": "Boolean"
                }
            ],
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 138,
            "description": "Returns the data provided (if any) to this object for populating its types.",
            "itemtype": "method",
            "name": "getData",
            "return": {
                "description": "Data, or null.",
                "type": "Object"
            },
            "class": "Connection"
        },
        {
            "file": "doc/api/connection-api.js",
            "line": 144,
            "description": "Gets the UUIDs of the two endpoints, if they are set.",
            "itemtype": "method",
            "name": "getUuids",
            "return": {
                "description": "An array of [sourceUuid, targetUuid]. Either or both of these values may be null.",
                "type": "String[]"
            },
            "class": "Connection"
        },
        {
            "file": "doc/api/connectors.js",
            "line": 17,
            "description": "The Connector's associated DOM element.",
            "itemtype": "property",
            "name": "canvas",
            "type": "{Element}",
            "class": "Connector"
        },
        {
            "file": "doc/api/connectors.js",
            "line": 23,
            "description": "Gets the total length of the path inscribed by the connector, in pixels.",
            "itemtype": "method",
            "name": "getLength",
            "return": {
                "description": "Total length of path in pixels.",
                "type": "Number"
            },
            "class": "Connector"
        },
        {
            "file": "doc/api/connectors.js",
            "line": 44,
            "description": "Gets the path inscribed by the connector, as a series of [x,y] points.",
            "itemtype": "method",
            "name": "getPath",
            "return": {
                "description": "An array of [x,y] locations.",
                "type": "Array"
            },
            "class": "Connectors.Flowchart"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 45,
            "description": "The Endpoint's drawing area",
            "itemtype": "property",
            "name": "canvas",
            "type": "{Element}",
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 51,
            "description": "List of Connections for the Endpoint.",
            "itemtype": "property",
            "name": "connections",
            "type": "{Array}",
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 57,
            "description": "Scope descriptor for the Endpoint.",
            "itemtype": "property",
            "name": "scope",
            "type": "{Array|String}",
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 63,
            "description": "Sets the anchor to use for this Endpoint.  `anchorParams` is an object in the same\nform that you would pass as the `anchor` parameter to `jsPlumb.addEndpoint` or `jsPlumb.connect`.",
            "itemtype": "method",
            "name": "setAnchor",
            "params": [
                {
                    "name": "anchorParams",
                    "description": "Parameters for the anchor",
                    "type": "Object"
                },
                {
                    "name": "[doNotRepaint",
                    "description": "= false] Instructs jsPlumb to not repaint after setting the new anchor.",
                    "type": "Boolean"
                }
            ],
            "return": {
                "description": "The Endpoint.",
                "type": "Endpoint"
            },
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 72,
            "description": "Sets the underlying visual representation to use for this Endpoint.  `ep` is an object in the same\nform that you would pass as the `endpoint` parameter to `jsPlumb.addEndpoint` or `jsPlumb.makeSource`.",
            "itemtype": "method",
            "name": "setEndpoint",
            "params": [
                {
                    "name": "ep",
                    "description": "Parameters for the endpoint",
                    "type": "Object"
                }
            ],
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 79,
            "description": "Detach from the given Connection, without cleaning up or destroying the Connection.",
            "itemtype": "method",
            "name": "detachFromConnection",
            "params": [
                {
                    "name": "connection",
                    "description": "",
                    "type": "Connection"
                }
            ],
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 85,
            "description": "Detach and cleanup a connection.",
            "itemtype": "method",
            "name": "detach",
            "params": [
                {
                    "name": "connection",
                    "description": "",
                    "type": "Connection"
                }
            ],
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 91,
            "description": "Detach all connections for this endpoint.",
            "itemtype": "method",
            "name": "detachAll",
            "params": [
                {
                    "name": "fireEvent",
                    "description": "Whether or not to fire an event for each detach.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "true"
                },
                {
                    "name": "forceDetach",
                    "description": "If true, this call will ignore any `beforeDetach` interceptors.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 98,
            "description": "Detach all Connections from this Endpoint to/from the given target endpoint.",
            "itemtype": "method",
            "name": "detachFrom",
            "params": [
                {
                    "name": "targetEndpoint",
                    "description": "Endpoint between which and this Endpoint to detach all Connections.",
                    "type": "Endpoint"
                },
                {
                    "name": "fireEvent",
                    "description": "Whether or not to fire an event.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "true"
                }
            ],
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 105,
            "description": "Gets the Element to which this Endpoint belongs.",
            "itemtype": "method",
            "name": "getElement",
            "return": {
                "description": "The DOM element this Endpoint is attached to.",
                "type": "Element"
            },
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 111,
            "description": "Gets the Endpoint's UUID.",
            "itemtype": "method",
            "name": "getUuid",
            "return": {
                "description": "The UUID for this Endpoint, if there is one. Otherwise returns null.",
                "type": "String"
            },
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 117,
            "itemtype": "method",
            "name": "isEnabled",
            "return": {
                "description": "True if the Endpoint is enabled for drag/drop connections enabled, false otherwise.",
                "type": "Boolean"
            },
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 122,
            "itemtype": "method",
            "name": "isFull",
            "return": {
                "description": "True if the Endpoint cannot accept any more Connections, false otherwise.",
                "type": "Boolean"
            },
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 127,
            "itemtype": "method",
            "name": "isVisible",
            "return": {
                "description": "Whether or not the Endpoint is currently visible.",
                "type": "Boolean"
            },
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 132,
            "itemtype": "method",
            "name": "isConnectedTo",
            "params": [
                {
                    "name": "endpoint",
                    "description": "",
                    "type": "Endpoint"
                }
            ],
            "return": {
                "description": "Whether or not this Endpoint is connected to the given Endpoint.",
                "type": "Boolean"
            },
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 138,
            "description": "Sets whether or not connections can be dragged from this Endpoint once it is full. You would use this in a UI in \n  which you're going to provide some other way of breaking connections, if you need to break them at all. This property \n  is by default true; use it in conjunction with the `reattach` option on a connect call.",
            "itemtype": "method",
            "name": "setDragAllowedWhenFull",
            "params": [
                {
                    "name": "allowed",
                    "description": "Whether drag is allowed or not when the Endpoint is full.",
                    "type": "Boolean"
                }
            ],
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 146,
            "description": "Sets the DOM element this Endpoint is attached to.",
            "itemtype": "method",
            "name": "setElement",
            "params": [
                {
                    "name": "el",
                    "description": "Element id, DOM element or selector identifying the new element",
                    "type": "String|Selector|Element"
                },
                {
                    "name": "container",
                    "description": "Specifies the actual parent element to use as the parent for this Endpoint's visual representation. See the jsPlumb documentation for a discussion about this.",
                    "type": "String|Selector|Element",
                    "optional": true
                }
            ],
            "return": {
                "description": "The Endpoint.",
                "type": "Endpoint"
            },
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 154,
            "description": "Sets whether or not the Endpoint is enabled for drag/drop connections.",
            "itemtype": "method",
            "name": "setEnabled",
            "params": [
                {
                    "name": "enabled",
                    "description": "Whether or not the Endpoint is enabled.",
                    "type": "Boolean"
                }
            ],
            "class": "Endpoint"
        },
        {
            "file": "doc/api/endpoint-api.js",
            "line": 160,
            "description": "Sets whether or not the Endpoint is currently visible.",
            "itemtype": "method",
            "name": "setVisible",
            "params": [
                {
                    "name": "visible",
                    "description": "Whether or not the Endpoint should be visible.",
                    "type": "Boolean"
                },
                {
                    "name": "doNotChangeConnections",
                    "description": "Instructs jsPlumb to not pass the visible state on to any attached Connections.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                },
                {
                    "name": "doNotNotifyOtherEndpoint",
                    "description": "Instructs jsPlumb to not pass the visible state on to Endpoints at the other end of any attached Connections.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "class": "Endpoint"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 18,
            "description": "Imports all the given defaults into this instance of jsPlumb.",
            "itemtype": "method",
            "name": "importDefaults",
            "params": [
                {
                    "name": "defaults",
                    "description": "The defaults to import.",
                    "type": "Object"
                }
            ],
            "chainable": 1,
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 26,
            "description": "Restores the default settings to \"factory\" values.",
            "itemtype": "method",
            "name": "restoreDefaults",
            "chainable": 1,
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 33,
            "description": "Sets the current element to use as the Container for the given jsPlumbInstance - the element that will be the parent for\nall artefacts added by jsPlumb. By default, the Container is set to the offsetParent of the first element on which \n`connect`, `addEndpoint`, `makeSource` or `makeTarget` is called, but you are encouraged to set a Container either in the\narguments to the `jsPlumb.newInstance(...)` method, or via `jsPlumbInstance.importDefaults`.",
            "itemtype": "method",
            "name": "setContainer",
            "params": [
                {
                    "name": "container",
                    "description": "Either an element id, a DOM element, or a selector from the underlying library",
                    "type": "String|Element|Selector"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 42,
            "description": "Gets the current element in use as the Container for the given jsPlumbInstance",
            "itemtype": "method",
            "name": "getContainer",
            "return": {
                "description": "The current element in use as the Container.",
                "type": "Element"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 48,
            "description": "Sets whether or not the given element(s) should be draggable, regardless of what a particular method may request.",
            "itemtype": "method",
            "name": "setDraggable",
            "params": [
                {
                    "name": "el",
                    "description": "Some identifier for the element(s) - may be a string id, a selector, or an array of ids/selectors",
                    "type": "String|Object|Array"
                },
                {
                    "name": "draggable",
                    "description": "Whether or not the given element(s) should be draggable.",
                    "type": "Boolean"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 55,
            "description": "Adds an Endpoint to a given element or elements. See also `jsPlumbInstance.addEndpoints`.",
            "itemtype": "method",
            "name": "addEndpoint",
            "params": [
                {
                    "name": "el",
                    "description": "Element to add the endpoint to. Either an element id, a selector representing some element(s), or an array of either of these.",
                    "type": "String|Object|Array"
                },
                {
                    "name": "params",
                    "description": "Object containing Endpoint constructor arguments.  For more information, see {@link Endpoint}",
                    "type": "Object",
                    "optional": true
                },
                {
                    "name": "referenceParams",
                    "description": "Object containing more Endpoint constructor arguments; it will be merged with params by jsPlumb.  You would use this if you had some \nshared parameters that you wanted to reuse when you added Endpoints to a number of elements. The allowed values in this object are anything that 'params' can contain.  See <Endpoint>.",
                    "type": "Object",
                    "optional": true
                }
            ],
            "return": {
                "description": "The newly created Endpoint, if `el` referred to a single element.  Otherwise, an array of newly created `Endpoint`s.",
                "type": "Object|Array"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 65,
            "description": "Adds a list of Endpoints to a given element or elements. See also `jsPlumbInstance.addEndpoint`.",
            "itemtype": "method",
            "name": "addEndpoints",
            "params": [
                {
                    "name": "target",
                    "description": "Element to add the Endpoint to. Either an element id, a selector representing some element(s), or an array of either of these.",
                    "type": "String|Object|Array"
                },
                {
                    "name": "endpoints",
                    "description": "List of objects containing Endpoint constructor arguments. one Endpoint is created for each entry in this list.  See {@link Endpoint}'s constructor documentation.",
                    "type": "Array"
                },
                {
                    "name": "referenceParams",
                    "description": "Object containing more Endpoint constructor arguments; it will be merged with params by jsPlumb.  You would use this if you had some shared parameters that you wanted to reuse when you added Endpoints to a number of elements.",
                    "type": "Object",
                    "optional": true
                }
            ],
            "return": {
                "description": "List of newly created Endpoints, one for each entry in the `endpoints` argument.",
                "type": "Array"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 74,
            "description": "Establishes a {@link Connection} between two elements (or {@link Endpoint}s, which are themselves registered to elements).",
            "itemtype": "method",
            "name": "connect",
            "params": [
                {
                    "name": "params",
                    "description": "Connection params",
                    "type": "Object",
                    "props": [
                        {
                            "name": "source",
                            "description": "Source of the connection. May be an id, or an element, or an Endpoint.",
                            "type": "String|Object|Endpoint"
                        },
                        {
                            "name": "target",
                            "description": "Target of the connection. May be an id, or an element, or an Endpoint.",
                            "type": "String|Object|Endpoint"
                        },
                        {
                            "name": "uuids",
                            "description": "Optional array of UUIDs of the two Endpoints to connect. If you supply this you do not need to supply `source` or `target`.",
                            "type": "String[]",
                            "optional": true
                        },
                        {
                            "name": "type",
                            "description": "Optional type for the Connection.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "pointer-events",
                            "description": "Optional `pointer-events` value for the Connection (only used by the SVG renderer)",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "connector",
                            "description": "The type of Connector to use. Defaults to whatever is set in the defaults for the instance. This\nparameter can be either a String - a named Connector, such as \"Straight\" - or an array consisting of a Connector name plus\nconstructor parameters. For further information see the main documentation.",
                            "type": "String|Array",
                            "optional": true
                        }
                    ]
                },
                {
                    "name": "referenceParams",
                    "description": "Optional second set of parameters, which will be merged into a new object along with `params`. This can be useful if\nyou have some common settings to share between multiple `connect` calls. Valid values in this object are anything that is valid in `params`.",
                    "type": "Object"
                }
            ],
            "return": {
                "description": "The Connection that was created, or null if either the source or target element was not found (in which case the missin element is also logged).",
                "type": "Connection"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 91,
            "description": "Sets the source for some Connection. A `connectionMoved` event is fired.",
            "itemtype": "method",
            "name": "setSource",
            "params": [
                {
                    "name": "connection",
                    "description": "The connection to set the source for",
                    "type": "Connection"
                },
                {
                    "name": "source",
                    "description": "Either an element, element id, or existing Endpoint. If you pass an element or element id for an element that\nhas been registered as a Connection source via makeSource, the Endpoint properties from that call are used.",
                    "type": "String|Element|Endpoint"
                },
                {
                    "name": "doNotRepaint",
                    "description": "If true, the Connection will not be repainted after the source is changed.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "chainable": 1,
            "return": {
                "description": "The current jsPlumb instance",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 102,
            "description": "Sets the target for some Connection. A `connectionMoved` event is fired.",
            "itemtype": "method",
            "name": "setTarget",
            "params": [
                {
                    "name": "connection",
                    "description": "The connection to set the target for",
                    "type": "Connection"
                },
                {
                    "name": "target",
                    "description": "Either an element, element id, or existing Endpoint. If you pass an element or element id for an element that\nhas been registered as a Connection target via makeTarget, the Endpoint properties from that call are used.",
                    "type": "String|Element|Endpoint"
                },
                {
                    "name": "doNotRepaint",
                    "description": "If true, the Connection will not be repainted after the target is changed.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "chainable": 1,
            "return": {
                "description": "The current jsPlumb instance",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 113,
            "description": "Suspends drawing operations.  This can (and should!) be used when you have a lot of connections to make or endpoints to register;\nit will save you a lot of time.",
            "itemtype": "method",
            "name": "setSuspendDrawing",
            "params": [
                {
                    "name": "val",
                    "description": "Indicates whether to suspend or not",
                    "type": "Boolean"
                },
                {
                    "name": "repaintAfterwards",
                    "description": "Instructs jsPlumb to do a full repaint after changing the suspension state.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "return": {
                "description": "The value of the suspend drawing flag _before_ this method was called.",
                "type": "Boolean"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 122,
            "description": "Returns whether or not drawing is currently suspended.",
            "itemtype": "method",
            "name": "isSuspendDrawing",
            "return": {
                "description": "True if drawing suspended, false otherwise.",
                "type": "Boolean"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 128,
            "description": "Suspends drawing, runs the given function, then re-enables drawing (and repaints, unless\nyou set 'doNotRepaintAfterwards' to true)",
            "itemtype": "method",
            "name": "batch",
            "params": [
                {
                    "name": "fn",
                    "description": "Function to execute while drawing is suspended.",
                    "type": "Function"
                },
                {
                    "name": "doNotRepaintAfterwards",
                    "description": "If true, will not run a repaint after running the function supplied to this function.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 136,
            "description": "Original method name for the `batch` function.",
            "itemtype": "method",
            "name": "doWhileSuspended",
            "deprecated": true,
            "deprecationMessage": "Will be removed in version 2.0.0",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 142,
            "description": "This is a wrapper around the supporting library's animate function; it injects a call to jsPlumb in the 'step' function (creating\nthe 'step' function if necessary). This only supports the two-arg version of the animate call in jQuery, the one that takes an 'options' object as\nthe second arg. MooTools has only one method, a two arg one. Which is handy.  YUI has a one-arg method, so jsPlumb merges 'properties' and 'options' together for YUI.",
            "itemtype": "method",
            "name": "animate",
            "params": [
                {
                    "name": "el",
                    "description": "Element to animate. Either an id, or a selector representing the element.",
                    "type": "String|Element|Selector"
                },
                {
                    "name": "properties",
                    "description": "The 'properties' argument you want passed to the library's animate call.",
                    "type": "Object",
                    "optional": true
                },
                {
                    "name": "options",
                    "description": "The 'options' argument you want passed to the library's animate call.",
                    "type": "Object",
                    "optional": true
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 152,
            "description": "Returns the default Endpoint type. Used when someone wants to subclass Endpoint and have jsPlumb return instances of their subclass.\n you would make a call like this in your class's constructor:\n \n   `jsPlumb.getDefaultEndpointType().apply(this, arguments);`",
            "itemtype": "method",
            "name": "getDefaultEndpointType",
            "static": 1,
            "return": {
                "description": "The default Endpoint function used by jsPlumb."
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 163,
            "description": "Returns the default Connection type. Used when someone wants to subclass Connection and have jsPlumb return instances of their subclass.\n you would make a call like this in your class's constructor:\n \n   `jsPlumb.getDefaultConnectionType().apply(this, arguments);`",
            "itemtype": "method",
            "name": "getDefaultConnectionType",
            "static": 1,
            "return": {
                "description": "The default Connection function used by jsPlumb."
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 174,
            "description": "Extends o1 with the properties of o2, optionally filtering via the values in filterList.",
            "itemtype": "method",
            "name": "extend",
            "static": 1,
            "params": [
                {
                    "name": "o1",
                    "description": "Object to extend into",
                    "type": "Object"
                },
                {
                    "name": "o2",
                    "description": "Object to extend from",
                    "type": "Object"
                },
                {
                    "name": "filterList",
                    "description": "Optional list of property names to filter by - if this is provided, only values whose keys are in this list will be copied into o1.",
                    "type": "String[]",
                    "optional": true
                }
            ],
            "return": {
                "description": "The object into which values were extended.",
                "type": "Object"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 184,
            "description": "Gets all or a subset of connections currently managed by this jsPlumb instance.  If only one scope is passed in to this method,\nthe result will be a list of connections having that scope (passing in no scope at all will result in jsPlumb assuming you want the\ndefault scope).\n\nIf multiple scopes are passed in, the return value will be a map of\n\n   `{ scope -> [ connection... ] }`",
            "itemtype": "method",
            "name": "getConnections",
            "params": [
                {
                    "name": "scope",
                    "description": "If the first argument supplied to this function is a string, it is treated as a scope filter, and this method will return a list\n                 of connections that are in the given scope. use '*' for all scopes.",
                    "type": "String"
                },
                {
                    "name": "options",
                    "description": "Filter options",
                    "type": "Object",
                    "props": [
                        {
                            "name": "scope",
                            "description": "may be a string specifying a single scope, or an array of strings, specifying multiple scopes. Also may have the value '*', indicating any scope.",
                            "type": "String|String[]",
                            "optional": true
                        },
                        {
                            "name": "source",
                            "description": "either a string representing an element id, a selector, or an array of ids. Also may have the value '*', indicating any source.  Constrains the result to connections having this/these element(s) as source.",
                            "type": "String|String[]|Selector",
                            "optional": true
                        },
                        {
                            "name": "target",
                            "description": "either a string representing an element id, a selector, or an array of ids. Also may have the value '*', indicating any target.  Constrains the result to connections having this/these element(s) as target.",
                            "type": "String|String[]|Selector",
                            "optional": true
                        }
                    ]
                },
                {
                    "name": "flat",
                    "description": "return results in a flat array (don't return an object whose keys are scopes and whose values are lists per scope).",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "return": {
                "description": "If only one scope was requested, a list of Connections that match the criteria. Otherwise, a map of [scope->connection lists].",
                "type": "Array|Map"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 204,
            "description": "Selects a set of Connections, using the filter options from the getConnections method, and returns an object\nthat allows you to perform an operation on all of the Connections at once.\n\nThe return value from any of these operations is the original list of Connections, allowing operations to be\nchained (for 'setter' type operations). 'getter' type operations return an array of values, where each entry is\nof the form:\n\n   `[ Connection, return value ]`",
            "itemtype": "method",
            "name": "select",
            "params": [
                {
                    "name": "params",
                    "description": "Filter parameters. All of the values in this object are optional; if you supply no parameters at all you will get back all of the current Connections in the given jsPlumb instance.",
                    "type": "Object",
                    "optional": true,
                    "props": [
                        {
                            "name": "scope",
                            "description": "scope - see getConnections",
                            "type": "String|String[]",
                            "optional": true
                        },
                        {
                            "name": "source",
                            "description": "- see getConnections",
                            "type": "String|String[]",
                            "optional": true
                        },
                        {
                            "name": "target",
                            "description": "- see getConnections",
                            "type": "String|String[]",
                            "optional": true
                        },
                        {
                            "name": "connections",
                            "description": "- an existing list of Connections.  If you supply this, 'source' and 'target' will be ignored.",
                            "type": "Connection[]",
                            "optional": true
                        }
                    ]
                }
            ],
            "return": {
                "description": "A list of Connections on which operations may be executed. 'Setter' type operations can be chained; 'getter' type operations\nreturn an array of `[Connection, value]` pairs, one entry for each Connection in the list returned. The full list of operations \nis as follows (where not specified, the operation's effect or return value is the same as the corresponding method on Connection) :\n\t\t\t\t\n- **addClass** : Adds a class to all the Connections in the list.\n-\t**addOverlay** : Adds an Overlay to all the Connections in the list.\n-\t**addType** : Adds a type to all the Connections in the list.\n-\t**detach** : Detaches all the Connections in the list. Not chainable, and does not return anything.\t\t\n-\t**each(function(connection)...)** : Allows you to specify your own function to execute; this function is chainable.\t\t\n-\t**get(index)** : Returns the Connection at 'index' in the list.\t\t\t\n-\t**getHoverPaintStyle**\n- **getLabel**\n-\t**getOverlay**\n-\t**getPaintStyle**\t\t\n-\t**getParameter**\n-\t**getParameters**\n-\t**getType**\n-\t**getZIndex**\n-\t**hasType**\t\t\n-\t**hideOverlay**\n-\t**hideOverlays**\t\t\n-\t**isDetachable**\t\t\n-\t**isHover**\n-\t**isReattach**\n-\t**isVisible**\t\t\n-\t**length** : returns the length of the list.\n-\t**removeAllOverlays**\t\t\n- **removeClass**\n-\t**removeOverlay**\n-\t**removeOverlays**\n-\t**removeType**\n-\t**repaint**\t\n-\t**setConnector**\t\t\n-\t**setDetachable**\n-\t**setHover**\t\t\n-\t**setHoverPaintStyle**\t\t\n-\t**setLabel**\t\t\n-\t**setPaintStyle**\t\n-\t**setParameter**\n-\t**setParameters**\n- **setReattach**\t\n-\t**setType**\t\n-\t**showOverlay**\t\n-\t**showOverlays**",
                "type": "Selection"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 267,
            "description": "Selects a set of Endpoints and returns an object that allows you to execute various different methods on them at once. The return \nvalue from any of these operations is the original list of Endpoints, allowing operations to be chained (for 'setter' type \noperations). 'getter' type operations return an array of values, where each entry is of the form:\n\n    `[ Endpoint, return value ]`",
            "itemtype": "method",
            "name": "selectEndpoints",
            "params": [
                {
                    "name": "params",
                    "description": "Filter parameters.",
                    "type": "Object",
                    "optional": true,
                    "props": [
                        {
                            "name": "scope",
                            "description": "Scope(s) to match",
                            "type": "String|String[]",
                            "optional": true,
                            "optdefault": "jsPlumb.DefaultScope"
                        },
                        {
                            "name": "source",
                            "description": "- limits returned endpoints to those that are declared as a source endpoint on any elements identified.",
                            "type": "String|Element|Selector|Array",
                            "optional": true
                        },
                        {
                            "name": "target",
                            "description": "- limits returned endpoints to those that are declared as a target endpoint on any elements identified.",
                            "type": "String|Element|Selector|Array",
                            "optional": true
                        },
                        {
                            "name": "element",
                            "description": "- limits returned endpoints to those that are declared as either a source OR a target endpoint on any elements identified.",
                            "type": "String|Element|Selector|Array",
                            "optional": true
                        }
                    ]
                }
            ],
            "return": {
                "description": "A list of Endpoints on which operations may be executed. 'Setter' type operations can be chained; 'getter' type operations\nreturn an array of `[Endpoint, value]` pairs, one entry for each Endpoint in the list returned. \n\nThe full list of operations is as follows (where not specified, the operation's effect or return value is the\nsame as the corresponding method on Endpoint) :\n\n-\t**setHover**\n-\t**removeAllOverlays**\n-\t**setLabel**\n- **addClass**\n-\t**addOverlay**\n- **removeClass**\n-\t**removeOverlay**\n-\t**removeOverlays**\n-\t**showOverlay**\n-\t**hideOverlay**\n-\t**showOverlays**\n-\t**hideOverlays**\n-\t**setPaintStyle**\n-\t**setHoverPaintStyle**\n-\t**setParameter**\n-\t**setParameters**\n-\t**setAnchor**\n- **getLabel**\n-\t**getOverlay**\n-\t**isHover**\n-\t**isDetachable**\n-\t**getParameter**\n-\t**getParameters**\n-\t**getPaintStyle**\n-\t**getHoverPaintStyle**\n-\t**detachAll** : Detaches all the Connections from every Endpoint in the list. not chainable and does not return anything.\n-\t**delete** : Deletes every Endpoint in the list. not chainable and does not return anything.\t\t\n-\t**length** : returns the length of the list.\n-\t**get(index)** : returns the Endpoint at 'index' in the list.\n-\t**each(function(endpoint)...)** : allows you to specify your own function to execute; this function is chainable.",
                "type": "Selection"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 319,
            "itemtype": "method",
            "name": "isHoverSuspended",
            "return": {
                "description": "Whether or not hover effects are currently suspended.",
                "type": "Boolean"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 324,
            "description": "Sets whether or not hover effects should be suspended. jsPlumb uses this internally during various\ndrag/drop operations, and it is exposed because it might also be useful for you too.",
            "itemtype": "method",
            "name": "setHoverSuspended",
            "params": [
                {
                    "name": "hover",
                    "description": "whether or not to set hover suspended.",
                    "type": "Boolean"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 331,
            "description": "Sets an element's connections to be hidden.",
            "itemtype": "method",
            "name": "hide",
            "params": [
                {
                    "name": "el",
                    "description": "Element to hide connections for.",
                    "type": "String|Element|Selector"
                },
                {
                    "name": "changeEndpoints",
                    "description": "Whether not to also hide endpoints on the element.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 339,
            "description": "Sets an element's connections to be visible.",
            "itemtype": "method",
            "name": "show",
            "params": [
                {
                    "name": "el",
                    "description": "Element to show connections for.",
                    "type": "String|Element|Selector"
                },
                {
                    "name": "changeEndpoints",
                    "description": "Whether or not to also change the visible state of the endpoints on the element.  this also has a bearing on\n other connections on those endpoints: if their other endpoint is also visible, the connections are made visible.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 348,
            "description": "Toggles visibility of an element's Connections.",
            "itemtype": "method",
            "name": "toggleVisible",
            "params": [
                {
                    "name": "el",
                    "description": "Element to toggle visibility for.",
                    "type": "String|Element|Selector"
                },
                {
                    "name": "changeEndpoints",
                    "description": "Whether or not to also toggle the endpoints on the element.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "return": {
                "description": "But should be updated to return the current state.",
                "type": "Null"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 356,
            "description": "Toggles draggability (sic?) of an element's Connections.",
            "itemtype": "method",
            "name": "toggleDraggable",
            "params": [
                {
                    "name": "el",
                    "description": "The element for which to toggle draggability.",
                    "type": "String|Element|Selector"
                }
            ],
            "return": {
                "description": "The current draggable state.",
                "type": "Boolean"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 363,
            "description": "Recalculates the offsets of all child elements of some element. If you have Endpoints registered on the\ndescendants of some element and you make changes to that element's markup, it is possible that the location\nof each Endpooint relative to the origin of the element may have changed. So you call this to tell jsPlumb to\nrecalculate.  You need to do this because, for performance reasons, jsplumb won't calculate these offsets on\nthe fly.",
            "itemtype": "method",
            "name": "recalculateOffsets",
            "params": [
                {
                    "name": "el",
                    "description": "The element for which to recalculate offsets.",
                    "type": "String|Element|Selector"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 381,
            "description": "Notify jsPlumb that the element with oldId has had its id changed to newId. This method is equivalent to what jsPlumb does itself in the second step of the setId method.",
            "itemtype": "method",
            "name": "setIdChanged",
            "params": [
                {
                    "name": "oldId",
                    "description": "Previous element id",
                    "type": "String"
                },
                {
                    "name": "newId",
                    "description": "Element's new id",
                    "type": "String"
                }
            ],
            "see": [
                "jsPlumbInstance#setId"
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 389,
            "description": "Switches the parent of the element to be the newParent, updating jsPlumb references to the element as necessary.",
            "itemtype": "method",
            "name": "setParent",
            "params": [
                {
                    "name": "el",
                    "description": "Element to re-parent",
                    "type": "Selector|Element"
                },
                {
                    "name": "newParent",
                    "description": "Selector, DOM element, or id of new parent.",
                    "type": "Selector|Element|String"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 396,
            "description": "Gets all Connections the given jsPlumbInstance is managing.",
            "itemtype": "method",
            "name": "getAllConnections",
            "return": {
                "description": "All connections, as a map of the form:\n\n `{ scope -> [ connection... ] }`",
                "type": "Object"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 404,
            "description": "Gets the default scope for connections and endpoints.\nA scope defines a type of endpoint/connection; supplying a\nscope to an Endpoint or Connection allows you to support different\ntypes of connections in the same UI. but if you're only interested in\none type of connection, you don't need to supply a scope. this method\nwill probably be used by very few people; it's good for testing\nthough.",
            "itemtype": "method",
            "name": "getDefaultScope",
            "return": {
                "description": "The default scope for the given jsPlumbInstance",
                "type": "String"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 416,
            "description": "Gets the list of Endpoints for a given element.",
            "itemtype": "method",
            "name": "getEndpoints",
            "params": [
                {
                    "name": "el",
                    "description": "The element to get endpoints for.",
                    "type": "String|Element|Selector"
                }
            ],
            "return": {
                "description": "An array of Endpoints for the specified element.",
                "type": "Endpoint[]"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 423,
            "description": "Gets an Endpoint by UUID",
            "itemtype": "method",
            "name": "getEndpoint",
            "params": [
                {
                    "name": "uuid",
                    "description": "The UUID for the Endpoint",
                    "type": "String"
                }
            ],
            "return": {
                "description": "Endpoint with the given UUID, null if nothing found.",
                "type": "Endpoint"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 431,
            "description": "Makes some DOM element(s) a Connection target, allowing you to drag connections to it/them\nwithout having to first register any Endpoints.  When a Connection is established,\nthe endpoint spec that was passed in to this method is used to create a suitable \nEndpoint (the default will be used if you do not provide one).",
            "itemtype": "method",
            "name": "makeTarget",
            "params": [
                {
                    "name": "el",
                    "description": "Element(s) to turn into a connection target.",
                    "type": "String|Element|Selector"
                },
                {
                    "name": "params",
                    "description": "Parameters for the call",
                    "type": "Object",
                    "props": [
                        {
                            "name": "endpoint",
                            "description": "Specification of an Endpoint to create when a Connection is established.",
                            "type": "String|Array",
                            "optional": true
                        },
                        {
                            "name": "scope",
                            "description": "Scope for the drop zone.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "dropOptions",
                            "description": "Same stuff as you would pass to dropOptions of an Endpoint definition.",
                            "type": "Object",
                            "optional": true
                        },
                        {
                            "name": "deleteEndpointsOnDetach",
                            "description": "Whether or not to delete any Endpoints created by a connection to this target if\nthe connection is subsequently detached. this will not remove Endpoints that have had more Connections attached\nto them after they were created.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "true"
                        },
                        {
                            "name": "maxConnections",
                            "description": "Specifies the maximum number of Connections that can be made to this element as a target.",
                            "type": "Integer",
                            "optional": true,
                            "optdefault": "-1"
                        },
                        {
                            "name": "onMaxConnections",
                            "description": "Function to call when user attempts to drop a connection but the limit has been reached.\nThe callback signature should look like this:\n    `function( { element, connection, maxConnection }, originalEvent )`",
                            "type": "Function",
                            "optional": true
                        }
                    ]
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 451,
            "description": "Sets the given element to no longer be a connection target.",
            "itemtype": "method",
            "name": "unmakeTarget",
            "params": [
                {
                    "name": "el",
                    "description": "Element to unmake as a connection target.",
                    "type": "String|Element|Selector"
                }
            ],
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 458,
            "description": "Makes some DOM element(s) a Connection source, allowing you to drag connections from it/them\nwithout having to first register any Endpoints.  When a Connection is established, the endpoint spec \nthat was passed in to this method is used to create a suitable Endpoint (the default will be used if \nyou do not provide one).",
            "itemtype": "method",
            "name": "makeSource",
            "params": [
                {
                    "name": "el",
                    "description": "String id, element, or element selector for the element(s) to make a source.",
                    "type": "String|Element|Selector"
                },
                {
                    "name": "params",
                    "description": "Parameters for the call",
                    "type": "Object",
                    "props": [
                        {
                            "name": "endpoint",
                            "description": "Specification of an endpoint to create when a connection is created.",
                            "type": "String|Array",
                            "optional": true
                        },
                        {
                            "name": "parent",
                            "description": "The element to add Endpoints to when a Connection is established.  if you omit this, Endpoints will be added to 'el'.",
                            "type": "String|Element",
                            "optional": true
                        },
                        {
                            "name": "scope",
                            "description": "Scope for the connections dragged from this element.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "dragOptions",
                            "description": "Same stuff as you would pass to dragOptions of an Endpoint definition.",
                            "type": "Object",
                            "optional": true
                        },
                        {
                            "name": "deleteEndpointsOnDetach",
                            "description": "Whether or not to delete any Endpoints created by a connection from this source if the connection is subsequently detached. this will not \nremove Endpoints that have had more Connections attached to them after they were created.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "false"
                        },
                        {
                            "name": "filter",
                            "description": "Function to call when the user presses the mouse button to start a drag. This function is passed the original \nevent and the element on which the associated makeSource call was made.  If it returns anything other than false,\nthe drag begins as usual. But if it returns false (the boolean false, not just something falsey), the drag is aborted.",
                            "type": "Function",
                            "optional": true
                        }
                    ]
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 478,
            "description": "Sets the given element to no longer be a connection source.",
            "itemtype": "method",
            "name": "unmakeSource",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                }
            ],
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 485,
            "description": "Resets all elements in this instance of jsPlumb so that none of them are connection sources.",
            "itemtype": "method",
            "name": "unmakeEverySource",
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 491,
            "description": "Resets all elements in this instance of jsPlumb so that none of them are connection targets.",
            "itemtype": "method",
            "name": "unmakeEveryTarget",
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 497,
            "description": "Sets the source scope of some element that has been configured as a connection source with `makeSource`",
            "itemtype": "method",
            "name": "setSourceScope",
            "params": [
                {
                    "name": "el",
                    "description": "Element to set source scope for.",
                    "type": "Element|String"
                },
                {
                    "name": "Space",
                    "description": "delimited list of scopes. Note, though, that multiple scopes is supported by the jquery flavour only programmatcally, not with drag/drop connections.",
                    "type": "String"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 504,
            "description": "Sets the target scope of some element that has been configured as a connection source with `makeTarget`",
            "itemtype": "method",
            "name": "setTargetScope",
            "params": [
                {
                    "name": "el",
                    "description": "Element to set target scope for.",
                    "type": "Element|String"
                },
                {
                    "name": "Space",
                    "description": "delimited list of scopes. Note, though, that multiple scopes is supported by the jquery flavour only programmatcally, not with drag/drop connections.",
                    "type": "String"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 511,
            "description": "Sets the source and target scope of some element that has been configured as a connection source and target with `makeTarget` and `makeSource`. If the element is only a source or only a target, this method will just set what it can.",
            "itemtype": "method",
            "name": "setScope",
            "params": [
                {
                    "name": "el",
                    "description": "Element to set source and target scope for.",
                    "type": "Element|String"
                },
                {
                    "name": "Space",
                    "description": "delimited list of scopes. Note, though, that multiple scopes is supported by the jquery flavour only programmatcally, not with drag/drop connections.",
                    "type": "String"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 518,
            "description": "Gets the source scope of some element that has that has been configured as a connection source with `makeSource`",
            "itemtype": "method",
            "name": "getSourceScope",
            "params": [
                {
                    "name": "Element",
                    "description": "to get source scope for.",
                    "type": "Element|String"
                }
            ],
            "return": {
                "description": "Source scope, or the default scope if nothing was explicitly set.",
                "type": "String"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 525,
            "description": "Gets the target scope of some element that has that has been configured as a connection source with `makeTarget`",
            "itemtype": "method",
            "name": "getTargetScope",
            "params": [
                {
                    "name": "Element",
                    "description": "to get target scope for.",
                    "type": "Element|String"
                }
            ],
            "return": {
                "description": "Target scope, or the default scope if nothing was explicitly set.",
                "type": "String"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 532,
            "description": "Gets the source or target scope of some element that has that has been configured as a connection source with `makeTarget` and/or `makeSource`, defaulting to the source scope if the element has been configured for both.",
            "itemtype": "method",
            "name": "getScope",
            "params": [
                {
                    "name": "Element",
                    "description": "to get source or target scope for.",
                    "type": "Element|String"
                }
            ],
            "return": {
                "description": "Source or Target scope (you will get Source if the element is both a source and a target), or the default scope if nothing was explicitly set.",
                "type": "String"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 539,
            "description": "Sets the enabled state of one or more elements that were previously made a connection source with the makeSource\nmethod.",
            "itemtype": "method",
            "name": "setSourceEnabled",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                },
                {
                    "name": "state",
                    "description": "True to enable the element(s), false to disable it.",
                    "type": "Boolean"
                }
            ],
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 548,
            "description": "Toggles the source enabled state of the given element or elements.",
            "itemtype": "method",
            "name": "toggleSourceEnabled",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                }
            ],
            "return": {
                "description": "The current enabled state of the source.",
                "type": "Boolean"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 555,
            "description": "Returns whether or not the given element is registered as a connection source.",
            "itemtype": "method",
            "name": "isSource",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                }
            ],
            "return": {
                "description": "True if source, false if not.",
                "type": "Boolean"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 562,
            "description": "Returns whether or not the given connection source is enabled.",
            "itemtype": "method",
            "name": "isSourceEnabled",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                }
            ],
            "return": {
                "description": "True if enabled, false if not.",
                "type": "Boolean"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 569,
            "description": "Sets the enabled state of one or more elements that were previously made a connection target with the makeTarget method.\nmethod.",
            "itemtype": "method",
            "name": "setTargetEnabled",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                },
                {
                    "name": "state",
                    "description": "True to enable the element(s), false to disable it.",
                    "type": "Boolean"
                }
            ],
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 578,
            "description": "Toggles the target enabled state of the given element or elements.",
            "itemtype": "method",
            "name": "toggleTargetEnabled",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                }
            ],
            "return": {
                "description": "The current enabled state of the target.",
                "type": "Boolean"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 585,
            "description": "Returns whether or not the given element is registered as a connection target.",
            "itemtype": "method",
            "name": "isTarget",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                }
            ],
            "return": {
                "description": "True if source, false if not.",
                "type": "Boolean"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 592,
            "description": "Returns whether or not the given connection target is enabled.",
            "itemtype": "method",
            "name": "isTargetEnabled",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                }
            ],
            "return": {
                "description": "True if enabled, false if not.",
                "type": "Boolean"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 599,
            "description": "Helper method to bind a function to jsPlumb's ready event. You should use this method instead of your\nlibrary's equivalent, to ensure that jsPlumb has loaded properly before you start to use it. This is\nparticularly true in the case of YUI, because of the asynchronous nature of the module loading process.",
            "itemtype": "method",
            "name": "ready",
            "params": [
                {
                    "name": "fn",
                    "description": "Function to call once the instance is ready.",
                    "type": "Function"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 607,
            "description": "Repaints an element and its connections.",
            "itemtype": "method",
            "name": "repaint",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                }
            ],
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "see": [
                "jsPlumbInstance#repaintEverything"
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 615,
            "description": "Clears the offset and size cache for an element, then repaints it and its connections.",
            "itemtype": "method",
            "name": "revalidate",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 621,
            "description": "Repaints all connections and endpoints.",
            "itemtype": "method",
            "name": "repaintEverything",
            "params": [
                {
                    "name": "clearEdits",
                    "description": "If true, clear all edits made since last paint (anchors having moved, conenctions edited, absolute overlay positions etc)",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "see": [
                "jsPlumbInstance#repaint"
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 629,
            "description": "Removes all Endpoints associated with a given element. \nAlso removes all Connections associated with each Endpoint it removes. jsPlumb expects\nthat the element referenced here exists in the DOM. If it does not, or you are uncertain\nwhether it will exist or not, use {@link jsPlumbInstance#remove}.",
            "itemtype": "method",
            "name": "removeAllEndpoints",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                },
                {
                    "name": "recurse",
                    "description": "Whether or not to recurse down through this elements children and remove their endpoints too.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "see": [
                "jsPlumbInstance#deleteEndpoint"
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 641,
            "description": "Removes the given element from the DOM, along with all Endpoints associated with it,\nand their connections.  This also removes all Endpoints and Connections belonging to child elements, as well as - of course -\nthe child elements themselves.",
            "itemtype": "method",
            "name": "remove",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 649,
            "description": "Empties out the given element: all Endpoints and Connections belonging to child elements, as well as - of course -\nthe child elements themselves. Endpoints and Connections belonging to the element itself are retained.",
            "itemtype": "method",
            "name": "empty",
            "params": [
                {
                    "name": "el",
                    "description": "The element in question.",
                    "type": "String|Element|Selector"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 656,
            "description": "Removes all endpoints and connections and clears the listener list. To keep listeners call {@link jsPlumbInstance#deleteEveryEndpoint}\ninstead of this.",
            "itemtype": "method",
            "name": "reset",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 662,
            "description": "Sets render mode.  jsPlumb will fall back to VML if it determines that\nwhat you asked for is not supported (and that VML is).  If you asked for VML but the browser does\nnot support it, jsPlumb uses SVG.",
            "itemtype": "method",
            "name": "setRenderMode",
            "params": [
                {
                    "name": "mode",
                    "description": "One of `jsPlumb.SVG or `jsPlumb.VML.",
                    "type": "String"
                }
            ],
            "return": {
                "description": "The render mode that jsPlumb set, which of course may be different from that requested.",
                "type": "String"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 671,
            "description": "Gets the current render mode for this instance of jsPlumb.",
            "itemtype": "method",
            "name": "getRenderMode",
            "return": {
                "description": "The current render mode - \"svg\" or \"vml\".",
                "type": "String"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 677,
            "description": "Gets a new instance of jsPlumb.",
            "itemtype": "method",
            "name": "getInstance",
            "params": [
                {
                    "name": "_defaults",
                    "description": "Optional default settings for the new instance.",
                    "type": "Object",
                    "optional": true
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 683,
            "description": "Sets the default scope for Connections and Endpoints. A scope defines a type of Endpoint/Connection; supplying a\nscope to an Endpoint or Connection allows you to support different\ntypes of Connections in the same UI.  If you're only interested in\none type of Connection, you don't need to supply a scope. This method\nwill probably be used by very few people; it just instructs jsPlumb\nto use a different key for the default scope.",
            "itemtype": "method",
            "name": "setDefaultScope",
            "params": [
                {
                    "name": "scope",
                    "description": "Scope to set as default.",
                    "type": "String"
                }
            ],
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 695,
            "description": "Detaches a Connection.",
            "itemtype": "method",
            "name": "detach",
            "params": [
                {
                    "name": "connection",
                    "description": "The Connection to detach",
                    "type": "Connection"
                },
                {
                    "name": "params",
                    "description": "Optional parameters to the detach call.",
                    "type": "Object",
                    "optional": true,
                    "props": [
                        {
                            "name": "fireEvent",
                            "description": "Indicates you want jsPlumb to fire a connection\ndetached event. The thinking behind this is that if you made a programmatic\ncall to detach an event, you probably don't need the callback.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "false"
                        },
                        {
                            "name": "forceDetach",
                            "description": "Allows you to override any beforeDetach listeners that may be registered.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "false"
                        }
                    ]
                }
            ],
            "return": {
                "description": "True if successful, false if not.",
                "type": "Boolean"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 709,
            "description": "Removes all an element's Connections.",
            "itemtype": "method",
            "name": "detachAllConnections",
            "params": [
                {
                    "name": "el",
                    "description": "Either the id of the element, or a selector for the element.",
                    "type": "Object"
                },
                {
                    "name": "params",
                    "description": "Optional parameters.",
                    "type": "Object",
                    "optional": true,
                    "props": [
                        {
                            "name": "fireEvent",
                            "description": "Whether or not to fire the detach event.",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "true"
                        }
                    ]
                },
                {
                    "name": "paramsforceDetach",
                    "description": "If true, this call will ignore any `beforeDetach` interceptors.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 718,
            "description": "Remove all Connections from all elements, but leaves Endpoints in place ((unless a connection is set to auto delete its Endpoints).",
            "itemtype": "method",
            "name": "detachEveryConnection",
            "params": [
                {
                    "name": "params",
                    "description": "optional params object for the call",
                    "type": "Object",
                    "optional": true,
                    "props": [
                        {
                            "name": "fireEvent",
                            "description": "Whether or not to fire detach events",
                            "type": "Boolean",
                            "optional": true,
                            "optdefault": "true"
                        }
                    ]
                },
                {
                    "name": "paramsforceDetach",
                    "description": "If true, this call will ignore any `beforeDetach` interceptors.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "return": {
                "description": "The current jsPlumb Instance",
                "type": "JsPlumbInstance"
            },
            "see": [
                "jsPlumbInstance#deleteEveryEndpoint"
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 728,
            "description": "Initialises some element or elements to be draggable.  You should use this instead of your\nlibrary's draggable method so that jsPlumb can setup the appropriate callbacks.  Your\nunderlying library's drag method is always called from this method.",
            "itemtype": "method",
            "name": "draggable",
            "params": [
                {
                    "name": "el",
                    "description": "Either an element id, an element, a list of element ids, or a selector.",
                    "type": "Object"
                },
                {
                    "name": "options",
                    "description": "Options to pass through to the underlying library. A common use case in jQueryUI, for instance, is to provide a `containment` parameter:\n\n        `jsPlumb.draggable(\"someElementId\", {\n           containment:\"parent\"\n         });`",
                    "type": "Object",
                    "optional": true
                }
            ],
            "chainable": 1,
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 743,
            "description": "This method takes the given selector spec and, using the current underlying library, turns it into\na selector from that library.  This method exists really as a helper function for those applications\nwhere you're writing jsPlumb code that will target more than one library (such as in the case of the\njsPlumb demo pages).",
            "itemtype": "method",
            "name": "getSelector",
            "params": [
                {
                    "name": "context",
                    "description": "An element to search from. may be omitted (__not__ null: omitted. as in you only pass one argument to the function)",
                    "type": "Element|Selector",
                    "optional": true
                },
                {
                    "name": "spec",
                    "description": "A valid selector string.",
                    "type": "String"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 752,
            "description": "Sets whether or not drawing is suspended. you should use this when doing bulk painting, like when first drawing a UI.",
            "itemtype": "method",
            "name": "setSuspendDrawing",
            "params": [
                {
                    "name": "val",
                    "description": "Whether or not to suspend drawing.",
                    "type": "Boolean"
                },
                {
                    "name": "doNotRepaintAfterwards",
                    "description": "If true, jsPlumb won't run a full repaint. Otherwise it will.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 759,
            "description": "Deletes an Endpoint and removes all Connections it has (which removes the Connections from the other Endpoints involved too)",
            "itemtype": "method",
            "name": "deleteEndpoint",
            "params": [
                {
                    "name": "object",
                    "description": "Either a string, representing the endpoint's uuid, or an Endpoint.",
                    "type": "String|Endpoint"
                },
                {
                    "name": "doNotRepaintAfterwards",
                    "description": "Indicates whether or not to repaint everything after this call.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 767,
            "description": "Deletes every `Endpoint` and their associated `Connection`s. Distinct from {@link jsPlumbInstance#reset} because we dont clear listeners here, so\nfor that reason this function is often the best way to reset a jsPlumb instance.",
            "itemtype": "method",
            "name": "deleteEveryEndpoint",
            "return": {
                "description": "The current jsPlumb instance.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 774,
            "description": "Returns the given type's specification.",
            "itemtype": "method",
            "name": "getType",
            "params": [
                {
                    "name": "id",
                    "description": "Id of the type to retrieve",
                    "type": "String"
                },
                {
                    "name": "typeDescriptor",
                    "description": "`\"connection\"` or `\"endpoint\"` - the category of Type to get.",
                    "type": "String"
                }
            ],
            "return": {
                "description": "Type specification, it if exists, null otherwise.",
                "type": "Object"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 782,
            "description": "Registers all of the given Endpoint types on this instance of jsPlumb. `types` is expected\nto contain keys with typeids and values with type specification objects.",
            "itemtype": "method",
            "name": "registerEndpointTypes",
            "params": [
                {
                    "name": "types",
                    "description": "Object containing the type specifications.",
                    "type": "Object"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 789,
            "description": "Registers all of the given connection types on this instance of jsPlumb. `types` is expected\nto contain keys with typeids and values with type specification objects.",
            "itemtype": "method",
            "name": "registerConnectionTypes",
            "params": [
                {
                    "name": "types",
                    "description": "Object containing the type specifications.",
                    "type": "Object"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 796,
            "description": "Registers the given connection type on this instance of jsPlumb.",
            "itemtype": "method",
            "name": "registerConnectionType",
            "params": [
                {
                    "name": "typeId",
                    "description": "Id of the type",
                    "type": "String"
                },
                {
                    "name": "type",
                    "description": "Object containing the type specification.",
                    "type": "Object"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 803,
            "description": "Registers the given endpoint type on this instance of jsPlumb.",
            "itemtype": "method",
            "name": "registerEndpointType",
            "params": [
                {
                    "name": "typeId",
                    "description": "Id of the type",
                    "type": "String"
                },
                {
                    "name": "type",
                    "description": "Object containing the type specification.",
                    "type": "Object"
                }
            ],
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 815,
            "description": "The CSS class(es) to set on Connection elements. This value is a String and can have multiple classes; the entire String is appended as-is (this is true of all the CSS properties in a jsPlumbInstance).",
            "itemtype": "property",
            "name": "connectorClass",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 821,
            "description": "The CSS class(es) to set on Connection or Endpoint elements when hovering. This value is a String and can have multiple classes; the entire String is appended as-is.",
            "itemtype": "property",
            "name": "hoverClass",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 827,
            "description": "The CSS class(es) to set on Endpoint elements. This value is a String and can have multiple classes; the entire String is appended as-is.",
            "itemtype": "property",
            "name": "endpointClass",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 833,
            "description": "The CSS class(es) to set on an Endpoint element when its Endpoint has at least one connection. This value is a String and can have multiple classes; the entire String is appended as-is.",
            "itemtype": "property",
            "name": "endpointConnectedClass",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 839,
            "description": "The CSS class(es) to set on a full Endpoint element. This value is a String and can have multiple classes; the entire String is appended as-is.",
            "itemtype": "property",
            "name": "endpointFullClass",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 845,
            "description": "The CSS class(es) to set on an Endpoint on which a drop will be allowed (during drag and drop). This value is a String and can have multiple classes; the entire String is appended as-is.",
            "itemtype": "property",
            "name": "endpointDropAllowedClass",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 851,
            "description": "The CSS class(es) to set on an Endpoint on which a drop will be forbidden (during drag and drop). This value is a String and can have multiple classes; the entire String is appended as-is.",
            "itemtype": "property",
            "name": "endpointDropForbiddenClass",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 857,
            "description": "The CSS class(es) to set on an Overlay that is an HTML element. This value is a String and can have multiple classes; the entire String is appended as-is.",
            "itemtype": "property",
            "name": "overlayClass",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 863,
            "description": "The CSS class(es) to set on connections that are being dragged. This value is a String and can have multiple classes; the entire String is appended as-is.",
            "itemtype": "property",
            "name": "draggingClass",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 869,
            "description": "The CSS class(es) to set on connections whose source or target element is being dragged, and\non their endpoints too. This value is a String and can have multiple classes; the entire String is appended as-is.",
            "itemtype": "property",
            "name": "elementDraggingClass",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 876,
            "description": "The prefix for the CSS class to set on Endpoints that have dynamic anchors whose individual locations\nhave declared an associated CSS class. This value is a String and, unlike the other classes, is expected\nto contain a single value, as it is used as a prefix for the final class: '_***' is appended,\nwhere \"***\" is the CSS class associated with the current dynamic anchor location.",
            "itemtype": "property",
            "name": "endpointAnchorClassPrefix",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 885,
            "description": "Constant for use with the setRenderMode method",
            "itemtype": "property",
            "name": "VML",
            "static": 1,
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 892,
            "description": "Constant for use with the setRenderMode method",
            "itemtype": "property",
            "name": "SVG",
            "static": 1,
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 899,
            "description": "These are the default settings for jsPlumb.  They are what will be used if you do not supply specific pieces of information \nto the various API calls. A convenient way to implement your own look and feel can be to override these defaults \nby including a script somewhere after the jsPlumb include, but before you make any calls to jsPlumb.",
            "itemtype": "property",
            "name": "Defaults",
            "type": "{Object}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 906,
            "description": "The default anchor to use for all connections (both source and target). Default is \"Bottom\".",
            "itemtype": "property",
            "name": "Defaults.Anchor",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 911,
            "description": "The default anchors to use as (`[source, target]`) for all connections. Defaults are `[\"Bottom\", \"Bottom\"]`.",
            "itemtype": "property",
            "name": "Defaults.Anchors",
            "type": "{String[]}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 916,
            "description": "Whether or not connections are detachable by default (using the mouse). Defaults to true.",
            "itemtype": "property",
            "name": "Defaults.ConnectionsDetachable",
            "type": "{Boolean}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 921,
            "description": "The default overlay definitions for Connections. Defaults to an empty list.",
            "itemtype": "property",
            "name": "Defaults.ConnectionOverlays",
            "type": "{Object[]}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 926,
            "description": "Name of the default connector definition to use for all connections.  Default is \"Bezier\".",
            "itemtype": "property",
            "name": "Defaults.Connector",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 931,
            "description": "Optional selector or element id that instructs jsPlumb to append elements it creates to a specific element.",
            "itemtype": "property",
            "name": "Defaults.Container",
            "type": "{Element|String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 936,
            "description": "Defaults to false; whether or not to throw errors if a user specifies an unknown anchor, endpoint or connector type.",
            "itemtype": "property",
            "name": "Defaults.DoNotThrowErrors",
            "type": "{Boolean}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 941,
            "description": "The default drag options to pass in to {@link jsPlumbInstance#connect}, {@link jsPlumbInstance#makeTarget} and {@link jsPlumbInstance#addEndpoint} calls. Default is empty.",
            "itemtype": "property",
            "name": "Defaults.DragOptions",
            "type": "{Object}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 946,
            "description": "The default drop options to pass in to {@link jsPlumbInstance#connect}, {@link jsPlumbInstance#makeTarget} and {@link jsPlumbInstance#addEndpoint} calls. Default is empty.",
            "itemtype": "property",
            "name": "Defaults.DropOptions",
            "type": "{Object}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 951,
            "description": "The name of the default endpoint to use for all connections (both source and target).  Default is `\"Dot\"`.",
            "itemtype": "property",
            "name": "Defaults.Endpoint",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 956,
            "description": "The names of the default endpoint definitions ([ source, target ]) to use for all connections.  Defaults are `[\"Dot\", \"Dot\"]`.",
            "itemtype": "property",
            "name": "Defaults.Endpoints",
            "type": "{String[]}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 961,
            "description": "The default style definition to use for all endpoints. Default is `{ fillStyle:\"#456\" }`",
            "itemtype": "property",
            "name": "Defaults.EndpointStyle",
            "type": "{Object}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 966,
            "description": "The default style definitions ([ source, target ]) to use for all endpoints.  Defaults are empty.",
            "itemtype": "property",
            "name": "Defaults.EndpointStyles",
            "type": "{Object[]}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 971,
            "description": "The default hover style definition to use for all endpoints. Default is null.",
            "itemtype": "property",
            "name": "Defaults.EndpointHoverStyle",
            "type": "{Object}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 976,
            "description": "The default hover style definitions ([ source, target ]) to use for all endpoints. Defaults are null.",
            "itemtype": "property",
            "name": "Defaults.EndpointHoverStyles",
            "type": "{Object[]}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 981,
            "description": "The default hover style definition to use for all connections. Defaults are null.",
            "itemtype": "property",
            "name": "Defaults.HoverPaintStyle",
            "type": "{Object}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 986,
            "description": "The default style to use for label overlays on connections.",
            "itemtype": "property",
            "name": "Defaults.LabelStyle",
            "deprecated": true,
            "deprecationMessage": "Labels should be styled with CSS nowadays.",
            "type": "{Object}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 992,
            "description": "Whether or not the jsPlumb log is enabled. defaults to false.",
            "itemtype": "property",
            "name": "Defaults.LogEnabled",
            "type": "{Boolean}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 997,
            "description": "The default overlay definitions (for both Connections and Endpoint). Defaults to an empty list.",
            "itemtype": "property",
            "name": "Defaults.Overlays",
            "type": "{Object[]}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 1002,
            "description": "The default maximum number of connections for an Endpoint.  Defaults to 1.",
            "itemtype": "property",
            "name": "Defaults.MaxConnections",
            "type": "{Integer}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 1007,
            "description": "The default paint style for a connection. Default is line width of 8 pixels, with color \"#456\".",
            "itemtype": "property",
            "name": "Defaults.PaintStyle",
            "type": "{Object}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 1012,
            "description": "Whether or not to reattach Connections that a user has detached with the mouse and then dropped. Default is false.",
            "itemtype": "property",
            "name": "Defaults.ReattachConnections",
            "type": "{Boolean}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 1017,
            "description": "What mode to use to paint with.  If you're on IE<9, you don't really get to choose this.  You'll just get VML.  Otherwise, jsPlumb uses SVG. Note that from 1.6.0 onwards, support for Canvas has been removed.",
            "itemtype": "property",
            "name": "Defaults.RenderMode",
            "type": "{String}",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 1022,
            "description": "The default \"scope\" to use for connections. Scope lets you assign connections to different categories.",
            "itemtype": "property",
            "name": "Defaults.Scope",
            "type": "{String}",
            "default": "\"_jsPlumb_Default_Scope\"",
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 1029,
            "description": "Register an event handler, optionally as a delegate for some set of descendant elements. Note\nthat this method takes either 3 or 4 arguments - if you supply 3 arguments it is assumed you have\nomitted the `children` parameter, and that the event handler should be bound directly to the given element.",
            "itemtype": "method",
            "name": "on",
            "params": [
                {
                    "name": "el",
                    "description": "Either an Element, or a CSS selector (if you want to specify an ID you must prepend it with '#'), or an array of Elements.",
                    "type": "Element[]|Element|String"
                },
                {
                    "name": "children",
                    "description": "Comma-delimited list of selectors identifying allowed children.",
                    "type": "String",
                    "optional": true
                },
                {
                    "name": "event",
                    "description": "Event ID.",
                    "type": "String"
                },
                {
                    "name": "fn",
                    "description": "Event handler function.",
                    "type": "Function"
                }
            ],
            "chainable": 1,
            "return": {
                "description": "The current jsPlumb instance; you can chain this method.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/jsplumb-api.js",
            "line": 1042,
            "description": "Cancel delegate event handling for the given function. Note that unlike with 'on' you do not supply\na list of child selectors here: it removes event delegation from all of the child selectors for which the\ngiven function was registered (if any).",
            "itemtype": "method",
            "name": "off",
            "params": [
                {
                    "name": "el",
                    "description": "Either an Element, or a CSS selector (if you want to specify an ID you must prepend it with '#'), or an array of Elements, from which to remove the event listener.",
                    "type": "Element[]|Element|String"
                },
                {
                    "name": "event",
                    "description": "Event ID.",
                    "type": "String"
                },
                {
                    "name": "fn",
                    "description": "Event handler function.",
                    "type": "Function"
                }
            ],
            "chainable": 1,
            "return": {
                "description": "The current jsPlumb instance; you can chain this method.",
                "type": "JsPlumbInstance"
            },
            "class": "jsPlumbInstance"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 7,
            "description": "List of Overlays for this component.",
            "itemtype": "property",
            "name": "overlays",
            "type": "{List[Overlay]}",
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 13,
            "description": "Returns the label text for this component (or a function if you are labelling with a function).\nThis does not return the overlay itself; this is a convenience method which is a pair with\n`setLabel`; together they allow you to add and access a Label Overlay without having to create the\nOverlay object itself.  For access to the underlying label overlay that jsPlumb has created,\nuse `getLabelOverlay`.",
            "itemtype": "method",
            "name": "getLabel",
            "see": [
                "{@link #getOverlay}",
                "{@link #getLabelOverlay}"
            ],
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 24,
            "itemtype": "method",
            "name": "getLabelOverlay",
            "return": {
                "description": "The underlying internal label overlay, which will exist if you specified a label on\na `connect` call, or have called `setLabel` at any stage. Otherwise it will be null.",
                "type": "Overlay"
            },
            "see": [
                "{@link #setLabel}"
            ],
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 31,
            "description": "Gets an overlay, by ID. Note: **by ID**.  You would pass an 'id' parameter\nin to the Overlay's constructor arguments, and then use that to retrieve it via this method.",
            "itemtype": "method",
            "name": "getOverlay",
            "params": [
                {
                    "name": "overlayId",
                    "description": "Id of the overlay to retrieve.",
                    "type": "String"
                }
            ],
            "return": {
                "description": "The overlay stored against the given id, null if not found.",
                "type": "Overlay"
            },
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 39,
            "description": "Gets all the overlays for this component.",
            "itemtype": "method",
            "name": "getOverlays",
            "return": {
                "description": "List of the component's overlays.",
                "type": "Array"
            },
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 45,
            "description": "Hides the overlay specified by the given id.",
            "itemtype": "method",
            "name": "hideOverlay",
            "params": [
                {
                    "name": "overlayId",
                    "description": "Id of the overlay to hide.",
                    "type": "String"
                }
            ],
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 51,
            "description": "Hides all Overlays for this component.",
            "itemtype": "method",
            "name": "hideOverlays",
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 57,
            "description": "Shows the overlay specified by the given id.",
            "itemtype": "method",
            "name": "showOverlay",
            "params": [
                {
                    "name": "overlayId",
                    "description": "Id of the overlay to show.",
                    "type": "String"
                }
            ],
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 63,
            "description": "Shows all Overlays for this component.",
            "itemtype": "method",
            "name": "showOverlays",
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 67,
            "description": "Removes all overlays from the component, and then repaints.",
            "itemtype": "method",
            "name": "removeAllOverlays",
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 72,
            "description": "Removes an overlay by ID.  Note: by ID.  this is a string you set in the overlay spec.",
            "itemtype": "method",
            "name": "removeOverlay",
            "params": [
                {
                    "name": "overlayId",
                    "description": "Id of the overlay to remove.",
                    "type": "String"
                }
            ],
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 78,
            "description": "Removes a set of overlays by ID.  Note: **by ID**.  This is a string you set in the overlay spec.",
            "itemtype": "method",
            "name": "removeOverlays",
            "params": [
                {
                    "name": "overlayIds",
                    "description": "This function takes an arbitrary number of arguments, each of which is a single overlay id.",
                    "type": "...String"
                }
            ],
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 84,
            "description": "Sets the component's label.",
            "itemtype": "method",
            "name": "setLabel",
            "params": [
                {
                    "name": "label",
                    "description": "Label to set. May be a String, a Function that returns a String, or a params object containing { \"label\", \"labelStyle\", \"location\", \"cssClass\" }.  Note that this uses innerHTML on the label div, so keep that in mind if you need escaped HTML.",
                    "type": "String|Function|Object"
                }
            ],
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/overlaycomponent.js",
            "line": 90,
            "description": "Adds an Overlay to the component.",
            "itemtype": "method",
            "name": "addOverlay",
            "params": [
                {
                    "name": "overlaySpec",
                    "description": "Specification of the Overlay to add.",
                    "type": "Object"
                }
            ],
            "class": "OverlayCapableJsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 16,
            "description": "Gets a parameter from the component",
            "itemtype": "method",
            "name": "getParameter",
            "params": [
                {
                    "name": "name",
                    "description": "Name of the parameter to get",
                    "type": "String"
                }
            ],
            "return": {
                "description": "The given parameter's value, null if not found.",
                "type": "Object"
            },
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 23,
            "description": "Sets a parameter on the component",
            "itemtype": "method",
            "name": "setParameter",
            "params": [
                {
                    "name": "name",
                    "description": "Name of the parameter to set",
                    "type": "String"
                },
                {
                    "name": "value",
                    "description": "Value to set",
                    "type": "Object"
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 30,
            "description": "Gets all parameters from the component. Note that you are given the actual parameters\nobject, not a copy, so you can alter their values directly, and if you hold the reference\nto the parameters object you could cause a memory leak.",
            "itemtype": "method",
            "name": "getParameters",
            "return": {
                "description": "All of the component's parameters.",
                "type": "Object"
            },
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 38,
            "description": "Sets all parameters on the component.",
            "itemtype": "method",
            "name": "setParameters",
            "params": [
                {
                    "name": "params",
                    "description": "Parameters to set.",
                    "type": "Object"
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 44,
            "description": "Adds a class or some classes to the visual elements for the given component.",
            "itemtype": "method",
            "name": "addClass",
            "params": [
                {
                    "name": "class",
                    "description": "The class(es) to add. The values are  appended as given, meaning you can supply a space separated string of several classes if you wish.",
                    "type": "String"
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 50,
            "description": "Removes a class or some classes from the visual elements for the given component. You can supply a space separated string of several classes if you wish.",
            "itemtype": "method",
            "name": "removeClass",
            "params": [
                {
                    "name": "class",
                    "description": "The class(es) to remove.",
                    "type": "String"
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 56,
            "description": "Adds/removes classes at the same time, which reduces the number of reflows that occur in the page. Either parameter\nmay be null but of course if you pass only a single parameter to this method then it will be taken to be classesToAdd.",
            "itemtype": "method",
            "name": "updateClasses",
            "params": [
                {
                    "name": "classesToAdd",
                    "description": "",
                    "type": "String|String[]",
                    "optional": true
                },
                {
                    "name": "classesToRemove",
                    "description": "",
                    "type": "String|String[]",
                    "optional": true
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 64,
            "description": "This function sets a `type` for the given component. It replaces all existing types. For a full discussion of the concept\nof types, see the jsPlumb documentation.",
            "itemtype": "method",
            "name": "setType",
            "params": [
                {
                    "name": "typeId",
                    "description": "Id of the type to set.",
                    "type": "String"
                },
                {
                    "name": "params",
                    "description": "Optional parameter object to expand.",
                    "type": "Object",
                    "optional": true
                },
                {
                    "name": "doNotRepaint",
                    "description": "Tells jsPlumb not to repaint after setting the type.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 73,
            "description": "Gets the current type - or types - for this component.",
            "itemtype": "method",
            "name": "getType",
            "return": {
                "description": "The current list of types, empty if none registered.",
                "type": "String[]"
            },
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 79,
            "description": "Clears all `types` for a given component.",
            "itemtype": "method",
            "name": "clearTypes",
            "params": [
                {
                    "name": "doNotRepaint",
                    "description": "Tells jsPlumb not to repaint after clearing the types.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 85,
            "description": "Reapplies the current list of types with the given (optional) parameters. See the \njsPlumb documentation for a full discussion of types.",
            "itemtype": "method",
            "name": "reapplyTypes",
            "params": [
                {
                    "name": "params",
                    "description": "Optional params to use when reapplying types.",
                    "type": "Object",
                    "optional": true
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 92,
            "description": "Returns whether or not the component currently has the given type.",
            "itemtype": "method",
            "name": "hasType",
            "params": [
                {
                    "name": "typeId",
                    "description": "Id of the type to check for",
                    "type": "String"
                }
            ],
            "return": {
                "description": "True if the component has the type, false if not.",
                "type": "Boolean"
            },
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 99,
            "description": "Adds a type to the component. Note this is distinct from {@link #setType}, which overrides all current types - this function just adds a type to the existing list.",
            "itemtype": "method",
            "name": "addType",
            "params": [
                {
                    "name": "typeId",
                    "description": "Id of the type to add.",
                    "type": "String"
                },
                {
                    "name": "params",
                    "description": "Optional params to use when applying the type.",
                    "type": "Object",
                    "optional": true
                },
                {
                    "name": "doNotRepaint",
                    "description": "Tells jsPlumb not to repaint after adding the type.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 107,
            "description": "Removes the given type from the component.",
            "itemtype": "method",
            "name": "removeType",
            "params": [
                {
                    "name": "typeId",
                    "description": "Id of the type to remove.",
                    "type": "String"
                },
                {
                    "name": "doNotRepaint",
                    "description": "Tells jsPlumb not to repaint after removing the type.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 114,
            "description": "Toggles the given type on the component.",
            "itemtype": "method",
            "name": "toggleType",
            "params": [
                {
                    "name": "typeId",
                    "description": "Id of the type to toggle.",
                    "type": "String"
                },
                {
                    "name": "params",
                    "description": "Optional params to use if the type is not currently set and jsPlumb applies it.",
                    "type": "Object",
                    "optional": true
                },
                {
                    "name": "doNotRepaint",
                    "description": "Tells jsPlumb not to repaint after toggling the type.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 122,
            "description": "Returns whether or not the object is currently in hover state",
            "itemtype": "method",
            "name": "isHover",
            "return": {
                "description": "True if in hover state, false if not.",
                "type": "Boolean"
            },
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 128,
            "description": "Sets the paint style to use when the mouse is hovering over the component. This is null by default.\nThe hover paint style is applied as extensions to the paintStyle; it does not entirely replace\nit. This is because people will most likely want to change just one thing when hovering, say the\ncolor for example, but leave the rest of the appearance the same.",
            "itemtype": "method",
            "name": "setHoverPaintStyle",
            "params": [
                {
                    "name": "style",
                    "description": "Style to use when the mouse is hovering. The allowed values in this object originally come from valid values in an HTML5 canvas.",
                    "type": "Object",
                    "props": [
                        {
                            "name": "fillStyle",
                            "description": "Fill style, in valid CSS format (a hex code, name, or rgb value). Note that setting a `fillStyle` on a Connector will cause the browser to fill the connector's path - probably not what you want.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "strokeStyle",
                            "description": "Stroke style, in valid CSS format (a hex code, name, or rgb value). You can use `strokeStyle` on Endpoints to define a border.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "lineWidth",
                            "description": "Width of the stroked line (for Connectors this is the Connector itself; for Endpoints it is the outline)",
                            "type": "Integer",
                            "optional": true
                        }
                    ]
                },
                {
                    "name": "doNotRepaint",
                    "description": "If true, the component will not be repainted. Useful when setting things up initially.",
                    "type": "Boolean",
                    "optional": true
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 141,
            "description": "Sets/unsets the hover state of this component.",
            "itemtype": "method",
            "name": "setHover",
            "params": [
                {
                    "name": "hover",
                    "description": "Hover state boolean",
                    "type": "Boolean"
                },
                {
                    "name": "ignoreAttachedElements",
                    "description": "If true, does not notify any attached elements of the change in hover state.  Used mostly by jsPlumb internally, to avoid infinite loops.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/uicomponent.js",
            "line": 148,
            "description": "Sets the component's paint style and then repaints the component.",
            "itemtype": "method",
            "name": "setPaintStyle",
            "params": [
                {
                    "name": "style",
                    "description": "Style to use. The allowed values in this object originally come from valid values in an HTML5 canvas.",
                    "type": "Object",
                    "props": [
                        {
                            "name": "fillStyle",
                            "description": "Fill style, in valid CSS format (a hex code, name, or rgb value). Note that setting a `fillStyle` on a Connector will cause the browser to fill the connector's path - probably not what you want.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "strokeStyle",
                            "description": "Stroke style, in valid CSS format (a hex code, name, or rgb value). You can use `strokeStyle` on Endpoints to define a border.",
                            "type": "String",
                            "optional": true
                        },
                        {
                            "name": "lineWidth",
                            "description": "Width of the stroked line (for Connectors this is the Connector itself; for Endpoints it is the outline)",
                            "type": "Integer",
                            "optional": true
                        }
                    ]
                },
                {
                    "name": "doNotRepaint",
                    "description": "If true, the component will not be repainted.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "class": "jsPlumbUIComponent"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 7,
            "description": "Returns whether the given object is an Array.",
            "itemtype": "method",
            "name": "isArray",
            "static": 1,
            "params": [
                {
                    "name": "obj",
                    "description": "Object to test",
                    "type": "Object"
                }
            ],
            "return": {
                "description": "True if the object is an Array, false otherwise.",
                "type": "Boolean"
            },
            "class": "jsPlumbUtil"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 15,
            "description": "Returns whether the given object is a String.",
            "itemtype": "method",
            "name": "isString",
            "static": 1,
            "params": [
                {
                    "name": "obj",
                    "description": "Object to test",
                    "type": "Object"
                }
            ],
            "return": {
                "description": "True if the object is a String, false otherwise.",
                "type": "Boolean"
            },
            "class": "jsPlumbUtil"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 23,
            "description": "Returns whether the given object is a Boolean.",
            "itemtype": "method",
            "name": "isBoolean",
            "static": 1,
            "params": [
                {
                    "name": "obj",
                    "description": "Object to test",
                    "type": "Object"
                }
            ],
            "return": {
                "description": "True if the object is a Boolean, false otherwise.",
                "type": "Boolean"
            },
            "class": "jsPlumbUtil"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 31,
            "description": "Returns whether the given object is null.",
            "itemtype": "method",
            "name": "isNull",
            "static": 1,
            "params": [
                {
                    "name": "obj",
                    "description": "Object to test",
                    "type": "Object"
                }
            ],
            "return": {
                "description": "True if the object is null, false otherwise.",
                "type": "Boolean"
            },
            "class": "jsPlumbUtil"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 39,
            "description": "Returns whether the given object is an Object.",
            "itemtype": "method",
            "name": "isObject",
            "static": 1,
            "params": [
                {
                    "name": "obj",
                    "description": "Object to test",
                    "type": "Object"
                }
            ],
            "return": {
                "description": "True if the object is an Object, false otherwise.",
                "type": "Boolean"
            },
            "class": "jsPlumbUtil"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 46,
            "description": "Returns whether the given object is a Date.",
            "itemtype": "method",
            "name": "isDate",
            "static": 1,
            "params": [
                {
                    "name": "obj",
                    "description": "Object to test",
                    "type": "Object"
                }
            ],
            "return": {
                "description": "True if the object is a Date, false otherwise.",
                "type": "Boolean"
            },
            "class": "jsPlumbUtil"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 53,
            "description": "Returns whether the given object is a Function.",
            "itemtype": "method",
            "name": "isFunction",
            "static": 1,
            "params": [
                {
                    "name": "obj",
                    "description": "Object to test",
                    "type": "Object"
                }
            ],
            "return": {
                "description": "True if the object is a Function, false otherwise.",
                "type": "Boolean"
            },
            "class": "jsPlumbUtil"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 60,
            "description": "Returns whether the given object (an Object or Array) is empty.",
            "itemtype": "method",
            "name": "isEmpty",
            "static": 1,
            "params": [
                {
                    "name": "obj",
                    "description": "Object to test",
                    "type": "Object"
                }
            ],
            "return": {
                "description": "True if the object is empty, false otherwise.",
                "type": "Boolean"
            },
            "class": "jsPlumbUtil"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 67,
            "description": "Returns whether the given object is a Number.",
            "itemtype": "method",
            "name": "isNumber",
            "static": 1,
            "params": [
                {
                    "name": "obj",
                    "description": "Object to test",
                    "type": "Object"
                }
            ],
            "return": {
                "description": "True if the object is a Number, false otherwise.",
                "type": "Boolean"
            },
            "class": "jsPlumbUtil"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 75,
            "description": "Merges one object into another, optionally folding individual values into arrays.",
            "itemtype": "method",
            "name": "merge",
            "static": 1,
            "params": [
                {
                    "name": "a",
                    "description": "Object to merge into",
                    "type": "Object"
                },
                {
                    "name": "b",
                    "description": "Object to merge from.",
                    "type": "Object"
                },
                {
                    "name": "String[",
                    "description": "[collations] Optional list of parameter keys for values that, if present in both 'a' and 'b', should result in an array with values from each (rather than the default behaviour of overwriting a's value with b's)",
                    "optional": true
                }
            ],
            "class": "jsPlumbUtil"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 89,
            "description": "Binds a listener to one or more events.",
            "itemtype": "method",
            "name": "bind",
            "params": [
                {
                    "name": "event",
                    "description": "Name(s) of the event(s) to bind to. Note that if you provide multiple event names they all are bound with the same function.",
                    "type": "String|String[]"
                },
                {
                    "name": "listener",
                    "description": "Function to execute.",
                    "type": "Function"
                },
                {
                    "name": "insertAtStart",
                    "description": "Whether or not to insert this listener at the start of the listener list, so it is fired before the other currently registered listeners.",
                    "type": "Boolean",
                    "optional": true,
                    "optdefault": "false"
                }
            ],
            "class": "jsPlumbUtil.EventGenerator"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 97,
            "description": "Fires an update for the given event.",
            "itemtype": "method",
            "name": "fire",
            "access": "private",
            "tagname": "",
            "params": [
                {
                    "name": "event",
                    "description": "Event to fire",
                    "type": "String"
                },
                {
                    "name": "value",
                    "description": "Value to pass to the event listener(s).",
                    "type": "Object"
                },
                {
                    "name": "originalEvent",
                    "description": "The original event from the browser",
                    "type": "Event"
                }
            ],
            "class": "jsPlumbUtil.EventGenerator"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 106,
            "description": "Clears either all listeners, or listeners for some specific event, or just some listener. You can call this method\nwith zero, one or two arguments: with zero arguments, all listeners are cleared. With one argument that is a string, all listeners for\nthe specified event type are cleared. With one argument that is a function, it is removed from the appropriate event list.\nWith two arguments, the first is an event type, and the second is a function to be unbound. In fact this is perhaps unnecessary\ngiven that you can unbind a function just by passing it.",
            "itemtype": "method",
            "name": "unbind",
            "params": [
                {
                    "name": "eventOrListener",
                    "description": "If a string, constrains the clear to just listeners for the event identified by the string. If a Function, unbinds this function wherever it may have been bound.",
                    "type": "String|Function",
                    "optional": true
                },
                {
                    "name": "listener",
                    "description": "If provided, removes just this listener for the given event.",
                    "type": "Function",
                    "optional": true
                }
            ],
            "class": "jsPlumbUtil.EventGenerator"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 116,
            "description": "Sets whether or not events are suspended.",
            "itemtype": "method",
            "name": "setSuspendEvents",
            "params": [
                {
                    "name": "val",
                    "description": "Whether or not to suspend events.",
                    "type": "Boolean"
                }
            ],
            "class": "jsPlumbUtil.EventGenerator"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 121,
            "description": "Checks whether or not events are currently suspended.",
            "itemtype": "method",
            "name": "isSuspendEvents",
            "return": {
                "description": "True if events are suspended, false otherwise.",
                "type": "Boolean"
            },
            "class": "jsPlumbUtil.EventGenerator"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 126,
            "description": "Removes all listeners.",
            "itemtype": "method",
            "name": "cleanupListeners",
            "class": "jsPlumbUtil.EventGenerator"
        },
        {
            "file": "doc/api/util-api.js",
            "line": 131,
            "description": "Replaces values inside some JS object according to a given path spec. A path spec is a string in dotted notation,\nwith each component optionally declaring an array index. Some examples are:\n\nfoo.bar\nfoo.baz[2]\nfoo.qux[3].baz[3].shwee\n\nThe function fails gracefully if the path identifies a non-existent object.",
            "itemtype": "method",
            "name": "jsPlumbUtil.replace",
            "params": [
                {
                    "name": "inObj",
                    "description": "Object to perform replacements inside.",
                    "type": "Object"
                },
                {
                    "name": "path",
                    "description": "Path to use for replacements",
                    "type": "String"
                },
                {
                    "name": "value",
                    "description": "Value to set.",
                    "type": "Object"
                }
            ],
            "class": "jsPlumbUtil.EventGenerator"
        }
    ],
    "warnings": [
        {
            "message": "replacing incorrect tag: returns with return",
            "line": " doc/api/connection-api.js:138"
        },
        {
            "message": "replacing incorrect tag: returns with return",
            "line": " doc/api/connection-api.js:144"
        },
        {
            "message": "replacing incorrect tag: returns with return",
            "line": " doc/api/overlaycomponent.js:39"
        },
        {
            "message": "Missing item type\nConnection constructor. You should not ever create one of these directly. If you make a call to jsPlumb.connect, all of\nthe parameters that you pass in to that function will be passed to the Connection constructor; if your UI\nuses the various Endpoint-centric methods like addEndpoint/makeSource/makeTarget, along with drag and drop,\nthen the parameters you set on those functions are translated and passed in to the Connection constructor. So\nyou should check the documentation for each of those methods.",
            "line": " doc/api/connection-api.js:9"
        }
    ]
}