UNPKG

@jbrowse/plugin-linear-genome-view

Version:

JBrowse 2 linear genome view

41 lines (40 loc) 1.86 kB
import BaseResult from '@jbrowse/core/TextSearch/BaseResults'; import { dedupe } from '@jbrowse/core/util'; export async function fetchResults({ queryString, searchType, searchScope, rankSearchResults, textSearchManager, assembly, }) { var _a; if (!textSearchManager) { console.warn('No text search manager'); } const textSearchResults = (await (textSearchManager === null || textSearchManager === void 0 ? void 0 : textSearchManager.search({ queryString, searchType, }, searchScope, rankSearchResults))) || []; const refNameResults = ((_a = assembly === null || assembly === void 0 ? void 0 : assembly.allRefNames) === null || _a === void 0 ? void 0 : _a.filter(ref => ref.toLowerCase().startsWith(queryString.toLowerCase())).slice(0, 10).map(r => new BaseResult({ label: r, }))) || []; return dedupe([...refNameResults, ...textSearchResults], elt => elt.getId()); } export function splitLast(str, split) { const lastIndex = str.lastIndexOf(split); if (lastIndex === -1) { return [str, '']; } else { const before = str.slice(0, lastIndex); const after = str.slice(lastIndex + 1); return [before, after]; } } export function getRelativeX(event, element) { return event.clientX - ((element === null || element === void 0 ? void 0 : element.getBoundingClientRect().left) || 0); } export function getCytobands(assembly, refName) { var _a; return (((_a = assembly === null || assembly === void 0 ? void 0 : assembly.cytobands) === null || _a === void 0 ? void 0 : _a.map(f => ({ refName: assembly.getCanonicalRefName(f.get('refName')) || f.get('refName'), start: f.get('start'), end: f.get('end'), type: f.get('gieStain'), name: f.get('name'), })).filter(f => f.refName === refName)) || []); }