canvas-datagrid 0.3.22 → 0.3.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -797,30 +797,24 @@ export default function (self) {
797
797
  }
798
798
  self.ellipsisCache = {};
799
799
  };
800
- self.stopDragResize = function (e) {
801
- const pos = self.getLayerPos(e);
802
- const hasMoved = !!(pos.x - self.dragStart.x);
803
- const width = self.resizingStartingWidth + pos.x - self.dragStart.x;
800
+ self.stopDragResize = function (event) {
801
+ const pos = self.getLayerPos(event);
804
802
 
805
803
  if (self.dragMode === 'ew-resize') {
806
- const selectedColumns = self.selections[0];
804
+ const hasMoved = !!(pos.x - self.dragStart.x);
805
+ // Check that dragItem is selected or part of selection.
807
806
  const dragItemIsSelected = self.isColumnSelected(
808
807
  self.dragItem.columnIndex,
809
808
  );
810
809
 
811
- if (dragItemIsSelected)
812
- for (const selectedColumnIndex of selectedColumns) {
813
- const boundColumnIndex = self.getBoundColumnIndexFromViewColumnIndex(
814
- selectedColumnIndex,
815
- );
816
-
817
- if (
818
- hasMoved &&
819
- dragItemIsSelected &&
820
- self.isColumnSelected(selectedColumnIndex)
821
- )
822
- self.sizes.columns[boundColumnIndex] = width;
823
- }
810
+ if (hasMoved && dragItemIsSelected) {
811
+ const width = Math.max(
812
+ self.resizingStartingWidth + pos.x - self.dragStart.x,
813
+ self.style.minColumnWidth,
814
+ );
815
+ // If the column is selected, resize it to width plus any other selected columns.
816
+ self.fitSelectedColumns(width);
817
+ }
824
818
  }
825
819
 
826
820
  self.resize();
package/lib/intf.js CHANGED
@@ -396,15 +396,24 @@ export default function (self, ctor) {
396
396
  self.createRowOrders = function () {
397
397
  self.orders.rows = fillArray(0, self.originalData.length - 1);
398
398
  };
399
- self.fitSelectedColumns = function () {
399
+ self.fitSelectedColumns = function (width) {
400
400
  const selectedColumns = self.selections[0];
401
401
  const schema = self.getSchema();
402
402
 
403
403
  for (const selectedColumn of selectedColumns) {
404
404
  // Make sure the column is not the row header and that the whole column has in fact been selected.
405
405
  if (selectedColumn >= 0 && self.isColumnSelected(selectedColumn)) {
406
- const column = schema[self.orders.columns[selectedColumn]];
407
- self.fitColumnToValues(column.name);
406
+ if (isNaN(width)) {
407
+ const column = schema[self.orders.columns[selectedColumn]];
408
+ self.fitColumnToValues(column.name);
409
+ } else {
410
+ self.sizes.columns[selectedColumn] = width;
411
+ self.dispatchEvent('resizecolumn', {
412
+ x: width,
413
+ y: self.resizingStartingHeight,
414
+ draggingItem: self.currentCell,
415
+ });
416
+ }
408
417
  }
409
418
  }
410
419
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "canvas-datagrid",
3
- "version": "0.3.22",
3
+ "version": "0.3.23",
4
4
  "description": "Canvas based data grid web component. Capable of displaying millions of contiguous hierarchical rows and columns without paging or loading, on a single canvas element.",
5
5
  "main": "./dist/canvas-datagrid.js",
6
6
  "module": "./dist/canvas-datagrid.module.js",