selecton
Version:
Selecton.js combines a searchbar and a dropdown menu with nested child lists.
33 lines (21 loc) • 660 B
JavaScript
export default function(d, searchTerm, renderFn){
if(searchTerm && d.selectable){
var str = renderFn(d);
var re = new RegExp(searchTerm, 'gi');
var matches = str.match(re);
if(matches){
d._search_ = str.replace(re, replaceSearchString);
}else{
delete d._search_;
}
return (str.toLowerCase().indexOf(searchTerm) === -1) || d.selected;
}
if(!searchTerm){
delete d._search_;
return d.closed;
}
return false;
}
function replaceSearchString(string){
return '<span class="dropdown-list-item-highlighted">' + string + '</span>';
}