taxonium-component
Version:
React component for exploring large phylogenetic trees in the browser
46 lines (45 loc) • 1.27 kB
JavaScript
import { s as u } from "./JBrowsePanel-BNE3gNW1.js";
import { B as m } from "./index-CpJXUZUB.js";
import { r as c } from "./rxjs-L4bS73F7.js";
import { S as i } from "./simpleFeature-DimH8SQV.js";
function p(f) {
const e = /* @__PURE__ */ new Map();
for (const r of f) {
const t = new i(r), s = t.get("refName");
let a = e.get(s);
a || (a = [], e.set(s, a)), a.push(t);
}
for (const r of e.values())
r.sort((t, s) => t.get("start") - s.get("start"));
return e;
}
class N extends m.BaseFeatureDataAdapter {
constructor(e, r, t) {
super(e, r, t);
const s = u.readConfObject(e, "features");
this.features = p(s);
}
async getRefNames() {
return [...this.features.keys()];
}
async getRefNameAliases() {
return [...this.features.values()].map((e) => ({
refName: e[0].get("refName"),
aliases: e[0].get("aliases")
}));
}
getFeatures(e) {
const { refName: r, start: t, end: s } = e;
return c.ObservableCreate(async (a) => {
const n = this.features.get(r) || [];
for (const o of n)
o.get("end") > t && o.get("start") < s && a.next(o);
a.complete();
});
}
}
export {
N as default,
p as makeFeatures
};
//# sourceMappingURL=FromConfigAdapter-Bd1qOD4C.js.map