19 declare(strict_types=1);
    31     protected ?array $selected_optional_column_ids = null;
    44         if ($optional_cols === []) {
    48         return $this->view_control_factory
    50                 static fn(
$c): 
string => 
$c->getTitle(),
    65                 static fn(
$c): 
bool => 
$c->isInitiallyVisible()
    76         $clone->selected_optional_column_ids = $selected_optional_column_ids;
    85         if (is_null($this->selected_optional_column_ids)) {
    88         return $this->selected_optional_column_ids;
    98             static fn(
$c): 
bool => 
$c->isOptional()
   109             static fn(
$c): 
bool => 
$c->isInitiallyVisible()
   121             fn(
Column $col, 
string $col_id): 
bool => !$col->
isOptional() || in_array($col_id, $visible_optional_columns, 
true),
   122             ARRAY_FILTER_USE_BOTH
 
getInitiallyVisibleColumns()
 
withSelectedOptionalColumns(?array $selected_optional_column_ids)
 
filterVisibleColumnIds(array $columns)
 
getSelectedOptionalColumns()
 
getViewControlFieldSelection()
 
initViewControlFieldSelection(array $columns)
 
A Column describes the form of presentation for a certain aspect of data, i.e.