export type CollapsedAllocationGroups = Set | "all"; export function createInitialCollapsedAllocationGroups(): CollapsedAllocationGroups { return new Set(); } export function toggleCollapsedAllocationGroup( previous: CollapsedAllocationGroups, groupIds: string[], resourceId: string, ): CollapsedAllocationGroups { if (previous === "all") { const next = new Set(groupIds); next.delete(resourceId); return next; } const next = new Set(previous); if (next.has(resourceId)) { next.delete(resourceId); } else { next.add(resourceId); } return next; } export function collapseAllAllocationGroups(): CollapsedAllocationGroups { return "all"; } export function expandAllAllocationGroups(): CollapsedAllocationGroups { return new Set(); }