Forked from hermes-frontend, stripped openclaw/bun specifics: - Auth tokens: openclaw_session -> nyx_session - Vite proxy: localhost:3003 -> localhost:8000 (assay) - Prod WS: wss://assay.loop42.de/ws - Workspace paths: removed openclaw-specific paths - Added missing deps: @heroicons/vue, overlayscrollbars-vue - Branding: title -> nyx Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
57 lines
2.1 KiB
JavaScript
57 lines
2.1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.translateOffset = translateOffset;
|
|
let warned = false;
|
|
function translateOffset(start, fromOffsets, toOffsets, fromLengths, toLengths = fromLengths, preferEnd = false) {
|
|
const isSorted = fromOffsets.every((value, index) => index === 0 || fromOffsets[index - 1] <= value);
|
|
if (!isSorted) {
|
|
for (let i = 0; i < fromOffsets.length; i++) {
|
|
const fromOffset = fromOffsets[i];
|
|
const fromLength = fromLengths[i];
|
|
if (start >= fromOffset && start <= fromOffset + fromLength) {
|
|
const toLength = toLengths[i];
|
|
const toOffset = toOffsets[i];
|
|
let rangeOffset;
|
|
const relativePos = start - fromOffset;
|
|
if (preferEnd && toLength > fromLength && relativePos === fromLength) {
|
|
rangeOffset = toLength;
|
|
}
|
|
else {
|
|
rangeOffset = Math.min(relativePos, toLength);
|
|
}
|
|
return toOffset + rangeOffset;
|
|
}
|
|
}
|
|
if (!warned) {
|
|
warned = true;
|
|
console.warn('fromOffsets should be sorted in ascending order');
|
|
}
|
|
}
|
|
let low = 0;
|
|
let high = fromOffsets.length - 1;
|
|
while (low <= high) {
|
|
const mid = Math.floor((low + high) / 2);
|
|
const fromOffset = fromOffsets[mid];
|
|
const fromLength = fromLengths[mid];
|
|
if (start >= fromOffset && start <= fromOffset + fromLength) {
|
|
const toLength = toLengths[mid];
|
|
const toOffset = toOffsets[mid];
|
|
let rangeOffset;
|
|
const relativePos = start - fromOffset;
|
|
if (preferEnd && toLength > fromLength && relativePos === fromLength) {
|
|
rangeOffset = toLength;
|
|
}
|
|
else {
|
|
rangeOffset = Math.min(relativePos, toLength);
|
|
}
|
|
return toOffset + rangeOffset;
|
|
}
|
|
else if (start < fromOffset) {
|
|
high = mid - 1;
|
|
}
|
|
else {
|
|
low = mid + 1;
|
|
}
|
|
}
|
|
}
|
|
//# sourceMappingURL=translateOffset.js.map
|