/** Высота тела таблицы не меньше этой, даже в низком окне. */ export const OSV_MIN_BODY_HEIGHT = 240; /** Сколько высоты окна занимает всё над и под телом таблицы: шапка страницы, кнопки, поиск, шапка и «Итого» таблицы. */ export const OSV_CHROME_HEIGHT = 340; /** * Высота области прокрутки таблицы ОСВ числом (виртуальной таблице antd нужен числовой scroll.y, calc() не подходит). * Повторяет прежнее `calc(100vh - 340px)`, но не ниже минимума; мусорное значение окна даёт минимум. */ export function osvBodyHeight(viewportHeight: number): number { if (!Number.isFinite(viewportHeight)) return OSV_MIN_BODY_HEIGHT; return Math.max(OSV_MIN_BODY_HEIGHT, Math.floor(viewportHeight - OSV_CHROME_HEIGHT)); }