初始化奇妙小屏幕控制器项目

This commit is contained in:
2026-09-08 22:56:52 +08:00
commit 8d368de3b5
491 changed files with 67678 additions and 0 deletions
@@ -0,0 +1,34 @@
export function resolveWorkspaceOrder(definitions, savedOrder) {
const defaults = Array.from(definitions || []);
const byId = new Map(defaults.map((definition) => [definition.id, definition]));
const resolved = [];
const seen = new Set();
if (Array.isArray(savedOrder)) {
savedOrder.forEach((workspaceId) => {
if (seen.has(workspaceId) || !byId.has(workspaceId)) return;
seen.add(workspaceId);
resolved.push(byId.get(workspaceId));
});
}
defaults.forEach((definition) => {
if (seen.has(definition.id)) return;
seen.add(definition.id);
resolved.push(definition);
});
return resolved;
}
export function moveWorkspaceOrder(workspaceIds, index, offset) {
if (!Array.isArray(workspaceIds) || !Number.isInteger(index) || !Number.isInteger(offset)) {
return null;
}
const target = index + offset;
if (index < 0 || index >= workspaceIds.length || target < 0 || target >= workspaceIds.length) {
return null;
}
const moved = [...workspaceIds];
[moved[index], moved[target]] = [moved[target], moved[index]];
return moved;
}