constructor({ key, tableWidth = 0, minWidth = 10, storage, columnSchema }) {
    this.tableWidth = tableWidth;
    this.minWidth = minWidth;
    this.key = key;
    this.storage = storage;
    this.columnSchema = columnSchema;
    this.setupCache();
  }
Set up everything when new instance is created.

@method constructor
@param {Object}
 - {String} key Used as key for local storage caching
 - {Number} tableWidth The table's width used for width calculations
 - {Number} minWidth The minimum width a column can reach
 - {Service} storage The local storage service that manages caching
 - {Array} columnSchema Contains the list of columns. Each column object should contain:
   - {String} id The column's unique identifier
   - {String} name The column's name
   - {Boolean} visible The column's default visibility