`interactive` - Configure which of the default interactions with elements and links should be enabled.

The property value defaults to `{ labelMove: false }`. This can be overwritten in three ways: with a boolean value, with an object specifying interaction keys, or with a function.

If set to `false`, all interactions with elements and links are disabled. If set to `true`, all interactions are enabled.

    // disable all interaction
    var paper = new joint.dia.Paper({
        // ...
        interactive: false,
    });

    // enable all interaction (including labelMove)
    var paper = new joint.dia.Paper({
        // ...
        interactive: true,
    });

Using an object, specific interactions may be disabled by assigning `false` to their corresponding property name. It is not necessary to pass `true` values; all omitted properties are assigned `true` by default. (Note that the passed object is not merged with the default; unless `labelMove` is explicitly excluded, it becomes enabled.) A full list of recognized interaction keys is provided below.

    // disable arrowheadMove
    var paper = new joint.dia.Paper({
        // ...
        interactive: { arrowheadMove: false }
    });

    // disable all element interactions
    var paper = new joint.dia.Paper({
        // ...
        interactive: { elementMove: false, addLinkFromMagnet: false }
    });

If defined as a function, the function is passed `cellView` (the elementView/linkView the user is about to interact with) as the first parameter, followed by the name of the event (`'pointerdown'`, `'pointermove'`, ...) that triggered the interaction. The return value of the function is then interpreted in the way specified above (`false` causes all interaction to be disabled, an object disables specific interactions, etc.).

    // disable link interactions for cellViews when a custom property is set
    var paper = new joint.dia.Paper({
        // ...
        interactive: function(cellView) {
            if (cellView.model.get('disableLinkInteractions')) {
                return {
                    arrowheadMove: false,
                    vertexMove: false,
                    vertexAdd: false,
                    vertexRemove: false,
                    labelMove: false,
                    useLinkTools: false
                };
            }

            // otherwise
            return true;
        }
    });

The following tables present a list of all recognized interaction keys, followed by an example paper with the related interactive property set to `false`.

Links:

arrowheadMove |  | vertexMove |
vertexAdd |  | vertexRemove |
labelMove |  | useLinkTools |

Elements:

elementMove |  | addLinkFromMagnet |

For comparison, the example below has all interactions on the link and on the elements enabled.