/** * Режим запроса шахматки по фильтрам счетов: * - `all` — фильтры пусты, берём полную матрицу; * - `manual` — выбраны и Дт, и Кт, считаем по выбранным счетам; * - `half` — выбрана только одна сторона: запрос не шлём, показываем подсказку. */ export type ChessMatrixMode = 'all' | 'manual' | 'half'; /** Текст для состояния «выбрана одна сторона» — в таблице и у фильтров один и тот же (openspec intercompany-matrix-ui). */ export const CHESS_HALF_FILTER_HINT = 'Для расчёта по счетам выберите счета и в Дт, и в Кт'; export const chessMatrixMode = (debit: readonly string[], credit: readonly string[]): ChessMatrixMode => { if (debit.length > 0 && credit.length > 0) return 'manual'; if (debit.length === 0 && credit.length === 0) return 'all'; return 'half'; };