// Сбор листовых колонок
export const getLeafColumns = (targetColumn) => {
  if (!targetColumn) return [];

  const collectLeafColumns = (col) => {
    if (!col.subHeaders?.length) return [col];
    return col.subHeaders.flatMap(collectLeafColumns);
  };

  return collectLeafColumns(targetColumn);
};

// Сбор всех листовых колонок из иерархии
export const collectLeafColumns = (column) => {
  if (column.columns?.length === 0 || !column.columns) return [column];
  if (column.columns?.length > 0 && (column.columns[0]?.columns?.length === 0 || !column.columns)) {
    return column.columns;
  }
  return (
    column.columns?.flatMap((childCol) => collectLeafColumns(childCol)) || []
  );
};

// Получение всех ID листовых колонок
export const getLeafColumnIds = (columns) => {
  const leafIds = [];

  const collect = (col) => {
    if (!col.columns?.length) {
      leafIds.push(col.id);
    } else {
      col.columns.forEach(collect);
    }
  };

  columns.forEach(collect);
  return leafIds;
};
