tangweijie 5099f2e87e Initial commit: Vue3 + TypeScript 前端项目
- Vue 3 + TypeScript + Element Plus 前端界面
- Pinia 状态管理
- Vue Router 4 路由管理
- Axios HTTP 客户端
- MSW (Mock Service Worker) 开发环境模拟
- 账户管理界面 (列表、详情、三科目余额展示)
- 交易管理界面 (列表、详情)
- 对账管理界面 (三账校验)
- 完善的 API 客户端封装
- Docker 容器化配置
- Nginx 配置用于生产环境
2026-01-05 17:57:11 +08:00

43 lines
1.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.translateOffset = translateOffset;
let warned = false;
function translateOffset(start, fromOffsets, toOffsets, fromLengths, toLengths = fromLengths) {
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 = Math.min(start - fromOffset, 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 = Math.min(start - fromOffset, toLength);
return toOffset + rangeOffset;
}
else if (start < fromOffset) {
high = mid - 1;
}
else {
low = mid + 1;
}
}
}
//# sourceMappingURL=translateOffset.js.map