code: function getColumnBlocks(tableGrid) {
          var cols = range(0, tableGrid.grid.maxCols);
          var rows = range(0, tableGrid.grid.maxRows);
  
          return Tools.map(cols, function (col) {
            function getBlock() {
              var details = [];
              for (var i = 0; i < rows.length; i++) {
                var detail = tableGrid.getAt(i, col);
                if (detail && detail.colIndex === col) {
                  details.push(detail);
                }
              }
  
              return details;
            }
  
            function isSingle(detail) {
              return detail.colspan === 1;
            }
  
            function getFallback() {
              var item;
  
              for (var i = 0; i < rows.length; i++) {
                item = tableGrid.getAt(i, col);
                if (item) {
                  return item;
                }
              }
  
              return null;
            }
  
            return decide(getBlock, isSingle, getFallback);
          });
        }
docs: Attempt to get representative blocks for the width of each column.