static setCollapseState()

in src/types/column-helper.ts [52:79]


  static setCollapseState(group: Column, collapsed: boolean, skipParentColSpan = false) {
    group.collapsed = collapsed;
    let colSpanDelta = 0;
    for (const childColumn of group.columns) {
      if (ColumnHelper.isGroupColumn(childColumn)) {
        const colSpanOld = childColumn.colSpan;
        ColumnHelper.setCollapseState(childColumn, collapsed, true);
        colSpanDelta += childColumn.colSpan - colSpanOld;
      } else {
        if (!childColumn.columnDef.collapsible || (collapsed && childColumn.hide) || !(collapsed || childColumn.hide)) {
          continue;
        }
        childColumn.hide = collapsed;
        collapsed ? colSpanDelta-- : colSpanDelta++;
      }
    }
    group.colSpan += colSpanDelta;
    if (group.colSpan === 0) {
      group.hide = true;
    }
    if (!skipParentColSpan) {
      let parent = group.parent;
      while (parent) {
        parent.colSpan += colSpanDelta;
        parent = parent.parent;
      }
    }
  }