text: angular.module("rzTable").factory("FixedResizer", ["ResizerModel", function(ResizerModel) {
  
      function FixedResizer(table, columns, container) {
          // Call super constructor
          ResizerModel.call(this, table, columns, container)
  
          this.fixedColumn = $(table).find('th').first();
          this.bound = false;
      }
  
      // Inherit by prototypal inheritance
      FixedResizer.prototype = Object.create(ResizerModel.prototype);
  
      FixedResizer.prototype.setup = function() {
          // Hide overflow in mode fixed
          $(this.container).css({
              overflowX: 'hidden'
          })
  
          $(this.table).css({
              width: '100%'
          })
  
          // First column is auto to compensate for 100% table width
          $(this.columns).first().css({
              width: 'auto'
          });
      };
  
      FixedResizer.prototype.handles = function() {
          // Mode fixed does not require handler on last column
          return $(this.columns).not(':last')
      };
  
      FixedResizer.prototype.ctrlColumns = function() {
          // In mode fixed, all but the first column should be resized
          return $(this.columns).not(':first');
      };
  
      FixedResizer.prototype.onFirstDrag = function() {
          // Replace each column's width with absolute measurements
          $(this.ctrlColumns).each(function(index, column) {
              $(column).width($(column).width());
          })
      };
  
      FixedResizer.prototype.handleMiddleware = function (handle, column) {
          // Fixed mode handles always controll next neightbour column
          return $(column).next();
      };
  
      FixedResizer.prototype.restrict = function (newWidth, diffX) {
          if (this.bound && this.bound < diffX) {
            this.bound = false
            return false
          } if (this.bound && this.bound > diffX) {
            return true
          } else if (this.fixedColumn.width() <= this.getMinWidth(this.fixedColumn)) {
              this.bound = diffX
              $(this.fixedColumn).width(this.minWidth);
              return true;
          }
      };
  
      FixedResizer.prototype.onEndDrag = function () {
          this.bound = false
      };
  
      FixedResizer.prototype.calculate = function (orgWidth, diffX) {
          // Subtract difference - neightbour grows
          return orgWidth - diffX;
      };
  
      // Return constructor
      return FixedResizer;
  
  }]);
  