/** * Portfolio-Rang (AP1.8a) — niedrigerer Rank = höhere Aufmerksamkeit. */ /** * @template {{ id: string, portfolio_rank?: number | null }} T * @param {T[]} items */ export function sortByPortfolioRank(items) { return [...items].sort( (a, b) => (a.portfolio_rank ?? Number.MAX_SAFE_INTEGER) - (b.portfolio_rank ?? Number.MAX_SAFE_INTEGER) || String(a.id).localeCompare(String(b.id)), ) } /** * @param {number | null | undefined} rank */ export function formatPortfolioRank(rank) { if (rank == null || Number.isNaN(rank)) return null return `#${rank + 1}` }