UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

43 lines (42 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class MultiLayout { constructor(SubLayoutClass, subLayoutConstructorArgs = {}) { this.SubLayoutClass = SubLayoutClass; this.subLayoutConstructorArgs = subLayoutConstructorArgs; this.subLayouts = new Map(); } getDataByID(id) { for (const layout of this.subLayouts.values()) { const r = layout.getDataByID(id); if (r) { return r; } } return undefined; } getSublayout(layoutName) { let subLayout = this.subLayouts.get(layoutName); if (subLayout === undefined) { subLayout = new this.SubLayoutClass(this.subLayoutConstructorArgs); this.subLayouts.set(layoutName, subLayout); return subLayout; } return subLayout; } addRect(layoutName, id, left, right, height, data = {}) { return this.getSublayout(layoutName).addRect(id, left, right, height, data); } discardRange(layoutName, left, right) { var _a; return (_a = this.subLayouts.get(layoutName)) === null || _a === void 0 ? void 0 : _a.discardRange(left, right); } toJSON() { const data = {}; for (const [layoutName, sublayout] of this.subLayouts.entries()) { data[layoutName] = sublayout.toJSON(); } return data; } } exports.default = MultiLayout;