@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
46 lines (45 loc) • 1.39 kB
JavaScript
import BaseResult from '@jbrowse/core/TextSearch/BaseResults';
function filterOptions(options, searchQuery) {
return options.filter(({ result }) => result.getLabel().toLowerCase().includes(searchQuery) ||
result.matchedObject);
}
export function getFiltered(opts, inputValue) {
const filtered = filterOptions(opts, inputValue.toLocaleLowerCase());
return [
...filtered.slice(0, 100),
...(filtered.length > 100
? [
{
group: 'limitOption',
result: new BaseResult({
label: 'keep typing for more results',
}),
},
]
: []),
];
}
export function aggregateResults(results) {
const m = {};
for (const result of results) {
const displayString = result.getDisplayString();
if (!m[displayString]) {
m[displayString] = [];
}
m[displayString].push(result);
}
return m;
}
export function getDeduplicatedResult(results) {
return Object.entries(aggregateResults(results)).map(([displayString, results]) => results.length === 1
? {
result: results[0],
}
: {
result: new BaseResult({
displayString,
results,
label: displayString,
}),
});
}