nl_tokens: A helper method for rendering item and option templates given the data .
pl_tokens: function ( templateName , data ) { var value , <mask> , label ; var html = '' ; var cache = false ; var self = this ; var regex_tag = / ^[\t \r\n]*<([a-z][a-z0-9\-_]*(?:\:[a-z][a-z0-9\-_]*)?) / i ; if ( templateName === 'option' || templateName === 'item' ) { value = hash_key ( data [ self . settings . valueField ] ) ; cache = ! ! value ; } // pull markup from cache if it exists if ( cache ) { if ( ! isset ( self . renderCache [ templateName ] ) ) { self . renderCache [ templateName ] = { } ; } if ( self . renderCache [ templateName ] . hasOwnProperty ( value ) ) { return self . renderCache [ templateName ] [ value ] ; } } // render markup html = $ ( self . settings . render [ templateName ] . apply ( this , [ data , escape_html ] ) ) ; // add mandatory attributes if ( templateName === 'option' || templateName === 'option_create' ) { if ( ! data [ self . settings . disabledField ] ) { html . attr ( 'data-selectable' , '' ) ; } } else if ( templateName === 'optgroup' ) { id = data [ self . settings . optgroupValueField ] || '' ; html . attr ( 'data-group' , id ) ; if ( data [ self . settings . disabledField ] ) { html . attr ( 'data-disabled' , '' ) ; } } if ( templateName === 'option' || templateName === 'item' ) { html . attr ( 'data-value' , value || '' ) ; } // update cache if ( cache ) { self . renderCache [ templateName ] [ value ] = html [ 0 ] ; } return html [ 0 ] ; }