nl_tokens: Rendering ----------
pl_tokens: function ( ) { this . $el . empty ( ) ; // A special markup can be given in the `properties.markup` property. This might be handy // if e.g. arrowhead markers should be `<image>` elements or any other element than `<path>`s. // `.connection`, `.connection-wrap`, `.marker-source` and `.marker-target` selectors // of elements with special meaning though. Therefore, those classes should be preserved in any // special markup passed in `properties.markup`. var children = V ( this . model . get ( 'markup' ) || this . model . markup ) ; // custom markup may contain only one children if ( ! _ . isArray ( children ) ) children = [ children ] ; // Cache all children elements for quicker access. this . _V = { } // vectorized markup; _ . each ( children , function ( child ) { var c = child . attr ( 'class' ) ; c && ( this . _V [ $ . camelCase ( c ) ] = child ) ; } , this ) ; // Only the connection path is mandatory if ( ! this . _V . connection ) throw new Error ( 'link: no connection path in the markup' ) ; // partial rendering this . renderTools ( ) ; this . renderVertexMarkers ( ) ; this . renderArrowheadMarkers ( ) ; V ( this . el ) . append ( <mask> ) ; // rendering labels has to be run after the link is appended to DOM tree. (otherwise <Text> bbox // returns zero values) this . renderLabels ( ) ; // start watching the ends of the link for changes this . watchSource ( this . model , this . model . get ( 'source' ) ) . watchTarget ( this . model , this . model . get ( 'target' ) ) . update ( ) ; return this ; }