A Cytoscape.js extension to provide copy-paste utilities, distributed under The MIT License.
Here is a demo:
var cy = cytoscape({...});
var cb = cy.clipboard(options);
cy.clipboard(options)
Initializes extension & sets options.
cb.copy(eles [, id])
Copies eles and returns id of operation. If id
is not specified, it will be assigned automatically.
cb.cut(eles [, id])
Cuts eles, which copies and removes them. If id
is not specified, it will be assigned automatically.
cb.paste([id])
Pastes the copied elements which has id
. If id
is not specified, it will have the last operation's id.
var options = {
// The following 4 options allow the user to provide custom behavior to
// the extension. They can be used to maintain consistency of some data
// when elements are duplicated.
// These 4 options are set to null by default. The function prototypes
// are provided below for explanation purpose only.
// Function executed on the collection of elements being copied, before
// they are serialized in the clipboard
beforeCopy: function(eles) {},
// Function executed on the clipboard just after the elements are copied.
// clipboard is of the form: {nodes: json, edges: json}
afterCopy: function(clipboard) {},
// Function executed on the collection of elements being cut, before
// they are serialized in the clipboard
beforeCut: function(eles) {},
// Function executed on the clipboard just after the elements are cut.
// clipboard is of the form: {nodes: json, edges: json}
afterCut: function(clipboard) {},
// Function executed on the clipboard right before elements are pasted,
// when they are still in the clipboard.
beforePaste: function(clipboard) {},
// Function executed on the collection of pasted elements, after they
// are pasted.
afterPaste: function(eles) {}
};
ur.do("paste"[, { id: idOfOperation }])
Pastes operation. id is optional as is in cb.paste()
- Cytoscape.js ^2.6.12 || ^3.0.0
- jQuery ^1.3.2 || ^2.0.0 || ^3.0.0
- cytoscape-undo-redo ^1.0.8 (optional)
Download the library:
- via npm:
npm install cytoscape-clipboard
, - via bower:
bower install cytoscape-clipboard
, or - via direct download in the repository (probably from a tag).
require()
the library as appropriate for your project:
CommonJS:
var cytoscape = require('cytoscape');
var jquery = require('jquery');
var clipboard = require('cytoscape-clipboard');
clipboard( cytoscape, jquery ); // register extension
AMD:
require(['cytoscape', 'cytoscape-clipboard'], function( cytoscape, clipboard ){
clipboard( cytoscape ); // register extension
});
Plain HTML/JS has the extension registered for you automatically, because no require()
is needed.
This project is set up to automatically be published to npm and bower. To publish:
- Set the version number environment variable:
export VERSION=1.2.3
- Publish:
gulp publish
- If publishing to bower for the first time, you'll need to run
bower register cytoscape-clipboard https://github.com/iVis-at-Bilkent/clipboard.git