UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

50 lines (49 loc) 1.75 kB
"use strict"; 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, }; }