@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
33 lines (32 loc) • 1.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isEmpty = isEmpty;
exports.generateTitle = generateTitle;
exports.generateMaxWidth = generateMaxWidth;
exports.accessNested = accessNested;
const util_1 = require("../../util");
const util_2 = require("../util");
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
function generateTitle(name, id, type) {
return [(0, util_2.ellipses)(`${name || id || ''}`), `${type}`]
.filter(f => !!f)
.join(' - ');
}
function generateMaxWidth(array, prefix) {
return (Math.ceil((0, util_1.max)(array.map(key => (0, util_1.measureText)([...prefix, key[0]].join('.'), 12)))) + 10);
}
function accessNested(arr, obj = {}) {
let obj2 = obj;
for (const elt of arr) {
if ((0, util_1.isObject)(obj2)) {
obj2 = obj2[elt];
}
}
return typeof obj2 === 'string'
? obj2
: (0, util_1.isObject)(obj2) && typeof obj2.Description === 'string'
? obj2.Description
: undefined;
}