@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
50 lines (49 loc) • 1.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.genomeColor = exports.updownstreamColor = exports.cdsColor = exports.proteinColor = exports.utrColor = exports.intronColor = void 0;
exports.splitString = splitString;
exports.intronColor = undefined;
exports.utrColor = 'rgb(200,240,240)';
exports.proteinColor = 'rgb(220,160,220)';
exports.cdsColor = 'rgb(220,220,180)';
exports.updownstreamColor = 'rgba(250,200,200)';
exports.genomeColor = 'rgb(200,280,200)';
function splitString({ str, charactersPerRow, showCoordinates, currRemainder = 0, splitSize = 10, }) {
var _a;
const numChunks = Math.ceil(str.length / charactersPerRow);
const chunks = new Array(numChunks);
let splitStart = currRemainder % 10;
let iter = 0;
let offset = 0;
for (; iter < numChunks + 1; ++iter) {
const inc = iter === 0 ? charactersPerRow - currRemainder : charactersPerRow;
const r = str.slice(offset, offset + inc);
if (!r) {
break;
}
if (showCoordinates) {
let res = '';
for (let i = 0, j = splitStart; i < r.length; i++, j++) {
if (j % splitSize === 0) {
res += ' ';
j = 0;
}
res += r[i];
}
if (res) {
chunks[iter] = res;
}
}
else {
chunks[iter] = r;
}
splitStart = 0;
offset += inc;
}
return {
segments: chunks,
remainder: ((((_a = chunks.at(-1)) === null || _a === void 0 ? void 0 : _a.replaceAll(' ', '').length) || 0) +
(iter < 2 ? currRemainder : 0)) %
charactersPerRow,
};
}