function CollapsingUI(nestedRowsPlugin, hotInstance) {
    var _this;

    (0, _classCallCheck2.default)(this, CollapsingUI);
    _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CollapsingUI).call(this, nestedRowsPlugin, hotInstance));
    /**
     * Reference to the Trim Rows plugin.
     */

    _this.trimRowsPlugin = nestedRowsPlugin.trimRowsPlugin;
    _this.dataManager = _this.plugin.dataManager;
    _this.collapsedRows = [];
    _this.collapsedRowsStash = {
      stash: function stash() {
        _this.lastCollapsedRows = _this.collapsedRows.slice(0); // Workaround for wrong indexes being set in the trimRows plugin

        _this.expandMultipleChildren(_this.lastCollapsedRows, false);
      },
      shiftStash: function shiftStash(index) {
        var delta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;

        var elementIndex = _this.translateTrimmedRow(index);

        (0, _array.arrayEach)(_this.lastCollapsedRows, function (elem, i) {
          if (elem > elementIndex - 1) {
            _this.lastCollapsedRows[i] = elem + delta;
          }
        });
      },
      applyStash: function applyStash() {
        // Workaround for wrong indexes being set in the trimRows plugin
        _this.hot.runHooks('skipLengthCache', 100);

        _this.collapseMultipleChildren(_this.lastCollapsedRows, true);

        _this.lastCollapsedRows = void 0;
      },
      trimStash: function trimStash(realElementIndex, amount) {
        (0, _number.rangeEach)(realElementIndex, realElementIndex + amount - 1, function (i) {
          var indexOfElement = _this.lastCollapsedRows.indexOf(i);

          if (indexOfElement > -1) {
            _this.lastCollapsedRows.splice(indexOfElement, 1);
          }
        });
      }
    };
    return _this;
  }
Class responsible for the UI for collapsing and expanding groups.

@class
@util
@extends BaseUI