webcola
Version:
WebCola =======
51 lines (38 loc) • 1.35 kB
text/typescript
import {Layout, EventType, Event} from './layout'
export class LayoutAdaptor extends Layout {
// dummy functions in case not defined by client
trigger(e: Event) {};
kick() {};
drag() {};
on(eventType: EventType | string, listener: () => void) : this { return this; };
dragstart: (d:any) => void;
dragStart: (d:any) => void;
dragend: (d:any) => void;
dragEnd: (d:any) => void;
constructor( options ) {
super();
// take in implementation as defined by client
var self = this;
var o = options;
if ( o.trigger ) {
this.trigger = o.trigger;
}
if ( o.kick ){
this.kick = o.kick;
}
if ( o.drag ){
this.drag = o.drag;
}
if ( o.on ){
this.on = o.on;
}
this.dragstart = this.dragStart = Layout.dragStart;
this.dragend = this.dragEnd = Layout.dragEnd;
}
}
/**
* provides an interface for use with any external graph system (e.g. Cytoscape.js):
*/
export function adaptor( options ): LayoutAdaptor {
return new LayoutAdaptor( options );
}