canvas-datagrid 0.3.20 → 0.3.21
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.
- package/CHANGELOG.md +12 -0
- package/dist/canvas-datagrid.debug.js +92 -8
- package/dist/canvas-datagrid.debug.map +1 -1
- package/dist/canvas-datagrid.js +1 -1
- package/dist/canvas-datagrid.module.js +1 -1
- package/dist/canvas-datagrid.module.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/lib/button.js +1 -0
- package/lib/docs.js +9 -1
- package/lib/events/index.js +16 -4
- package/lib/intf.js +34 -0
- package/lib/publicMethods.js +37 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,18 @@ All notable changes to this project will be documented in this file.
|
|
|
7
7
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
8
8
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
9
9
|
|
|
10
|
+
## 0.3.21 - 2021-12-08
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Add `afterdelete` event and `deleteSelectedData()` public method (mdebrauw, #446)
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Remove mousemove at body when dispose (faimaklg, #449)
|
|
19
|
+
- Fire event when resizing column by double clicking column border (mdebrauw, #447)
|
|
20
|
+
- Fix filter button active/hover states, remove inline grid button after menu item click (xianzhi3, #445)
|
|
21
|
+
|
|
10
22
|
## 0.3.20 - 2021-12-04
|
|
11
23
|
|
|
12
24
|
### Added
|
|
@@ -175,6 +175,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
|
|
|
175
175
|
if (item.click) {
|
|
176
176
|
menuItemContainer.addEventListener('click', function (ev) {
|
|
177
177
|
item.click.apply(self, [ev]);
|
|
178
|
+
self.disposeButton();
|
|
178
179
|
});
|
|
179
180
|
}
|
|
180
181
|
}
|
|
@@ -4545,7 +4546,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
4545
4546
|
onFilterButton: false
|
|
4546
4547
|
};
|
|
4547
4548
|
|
|
4548
|
-
if (cell.isFilterable && x > cell.x + cell.width - self.style.filterButtonWidth && x < cell.x + cell.width && y > cell.y + cell.height - self.style.filterButtonHeight && y < cell.y + cell.height) {
|
|
4549
|
+
if (cell.isFilterable && x > cell.x + cell.width + self.canvasOffsetLeft - self.style.filterButtonWidth && x < cell.x + cell.width + self.canvasOffsetLeft && y > cell.y + cell.height + self.canvasOffsetTop - self.style.filterButtonHeight && y < cell.y + cell.height + self.canvasOffsetTop) {
|
|
4549
4550
|
self.hovers.onFilterButton = true;
|
|
4550
4551
|
self.draw();
|
|
4551
4552
|
}
|
|
@@ -5394,6 +5395,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5394
5395
|
self.selectNone();
|
|
5395
5396
|
} else if (ctrl && e.key === 'a') {
|
|
5396
5397
|
self.selectAll();
|
|
5398
|
+
} else if (['Backspace', 'Delete'].includes(e.key)) {
|
|
5399
|
+
self.deleteSelectedData();
|
|
5397
5400
|
} else if (e.key === 'ArrowDown') {
|
|
5398
5401
|
y += 1;
|
|
5399
5402
|
} else if (e.key === 'ArrowUp') {
|
|
@@ -5838,6 +5841,10 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5838
5841
|
})) {
|
|
5839
5842
|
return;
|
|
5840
5843
|
}
|
|
5844
|
+
|
|
5845
|
+
requestAnimationFrame(function () {
|
|
5846
|
+
return self.draw();
|
|
5847
|
+
});
|
|
5841
5848
|
};
|
|
5842
5849
|
|
|
5843
5850
|
self.copy = function (e) {
|
|
@@ -6318,6 +6325,51 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6318
6325
|
return selectedCells;
|
|
6319
6326
|
};
|
|
6320
6327
|
|
|
6328
|
+
self.clearSelectedCells = function () {
|
|
6329
|
+
var schema = self.getSchema();
|
|
6330
|
+
var affectedCells = [];
|
|
6331
|
+
|
|
6332
|
+
var _iterator3 = _createForOfIteratorHelper(self.selections.entries()),
|
|
6333
|
+
_step3;
|
|
6334
|
+
|
|
6335
|
+
try {
|
|
6336
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
6337
|
+
var _step3$value = _slicedToArray(_step3.value, 2),
|
|
6338
|
+
rowIndex = _step3$value[0],
|
|
6339
|
+
row = _step3$value[1];
|
|
6340
|
+
|
|
6341
|
+
// If no cells are selected for a particular rowIndex the selections array will contain an empty element for that rowIndex.
|
|
6342
|
+
if (!row) continue;
|
|
6343
|
+
var boundRowIndex = self.getBoundRowIndexFromViewRowIndex(rowIndex);
|
|
6344
|
+
|
|
6345
|
+
var _iterator4 = _createForOfIteratorHelper(row),
|
|
6346
|
+
_step4;
|
|
6347
|
+
|
|
6348
|
+
try {
|
|
6349
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
6350
|
+
var columnIndex = _step4.value;
|
|
6351
|
+
// If the whole row is selected the columnIndex for the rowHeader is -1.
|
|
6352
|
+
if (columnIndex < 0) continue;
|
|
6353
|
+
var boundColumnIndex = self.getBoundColumnIndexFromViewColumnIndex(columnIndex);
|
|
6354
|
+
var columnName = schema[boundColumnIndex].name;
|
|
6355
|
+
self.viewData[boundRowIndex][columnName] = null;
|
|
6356
|
+
affectedCells.push([rowIndex, columnIndex, boundRowIndex, boundColumnIndex]);
|
|
6357
|
+
}
|
|
6358
|
+
} catch (err) {
|
|
6359
|
+
_iterator4.e(err);
|
|
6360
|
+
} finally {
|
|
6361
|
+
_iterator4.f();
|
|
6362
|
+
}
|
|
6363
|
+
}
|
|
6364
|
+
} catch (err) {
|
|
6365
|
+
_iterator3.e(err);
|
|
6366
|
+
} finally {
|
|
6367
|
+
_iterator3.f();
|
|
6368
|
+
}
|
|
6369
|
+
|
|
6370
|
+
return affectedCells;
|
|
6371
|
+
};
|
|
6372
|
+
|
|
6321
6373
|
self.getBoundRowIndexFromViewRowIndex = function (viewRowIndex) {
|
|
6322
6374
|
if (self.boundRowIndexMap && self.boundRowIndexMap.has(viewRowIndex)) {
|
|
6323
6375
|
return self.boundRowIndexMap.get(viewRowIndex);
|
|
@@ -6488,12 +6540,12 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6488
6540
|
} // Apply sorting
|
|
6489
6541
|
|
|
6490
6542
|
|
|
6491
|
-
var
|
|
6492
|
-
|
|
6543
|
+
var _iterator5 = _createForOfIteratorHelper(self.orderings.columns),
|
|
6544
|
+
_step5;
|
|
6493
6545
|
|
|
6494
6546
|
try {
|
|
6495
6547
|
var _loop2 = function _loop2() {
|
|
6496
|
-
var column =
|
|
6548
|
+
var column = _step5.value;
|
|
6497
6549
|
var sortFn = column.sortFunction(column.orderBy, column.orderDirection);
|
|
6498
6550
|
newViewData.sort(function (_ref7, _ref8) {
|
|
6499
6551
|
var _ref9 = _slicedToArray(_ref7, 1),
|
|
@@ -6508,13 +6560,13 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6508
6560
|
});
|
|
6509
6561
|
};
|
|
6510
6562
|
|
|
6511
|
-
for (
|
|
6563
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
6512
6564
|
_loop2();
|
|
6513
6565
|
}
|
|
6514
6566
|
} catch (err) {
|
|
6515
|
-
|
|
6567
|
+
_iterator5.e(err);
|
|
6516
6568
|
} finally {
|
|
6517
|
-
|
|
6569
|
+
_iterator5.f();
|
|
6518
6570
|
}
|
|
6519
6571
|
|
|
6520
6572
|
return {
|
|
@@ -6668,6 +6720,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6668
6720
|
self.controlInput.removeEventListener('keypress', self.keypress, false);
|
|
6669
6721
|
self.controlInput.removeEventListener('keyup', self.keyup, false);
|
|
6670
6722
|
self.controlInput.removeEventListener('keydown', self.keydown, false);
|
|
6723
|
+
document.body.removeEventListener('mousemove', self.mousemove);
|
|
6671
6724
|
window.removeEventListener('resize', self.resize);
|
|
6672
6725
|
|
|
6673
6726
|
if (self.observer && self.observer.disconnect) {
|
|
@@ -6844,6 +6897,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6844
6897
|
};
|
|
6845
6898
|
Object.keys(self.style).forEach(self.parseStyleValue);
|
|
6846
6899
|
self.intf.moveSelection = self.moveSelection;
|
|
6900
|
+
self.intf.deleteSelectedData = self.deleteSelectedData;
|
|
6847
6901
|
self.intf.moveTo = self.moveTo;
|
|
6848
6902
|
self.intf.addEventListener = self.addEventListener;
|
|
6849
6903
|
self.intf.removeEventListener = self.removeEventListener;
|
|
@@ -8788,7 +8842,14 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
8788
8842
|
return;
|
|
8789
8843
|
}
|
|
8790
8844
|
|
|
8791
|
-
|
|
8845
|
+
var columnIndex = name === 'cornerCell' ? -1 : self.getHeaderByName(name).index;
|
|
8846
|
+
var newSize = Math.max(self.findColumnMaxTextLength(name), self.style.minColumnWidth);
|
|
8847
|
+
self.sizes.columns[columnIndex] = newSize;
|
|
8848
|
+
self.dispatchEvent('resizecolumn', {
|
|
8849
|
+
x: newSize,
|
|
8850
|
+
y: self.resizingStartingHeight,
|
|
8851
|
+
draggingItem: self.currentCell
|
|
8852
|
+
});
|
|
8792
8853
|
|
|
8793
8854
|
if (!internal) {
|
|
8794
8855
|
self.resize();
|
|
@@ -8909,6 +8970,29 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
8909
8970
|
});
|
|
8910
8971
|
self.selections = sel;
|
|
8911
8972
|
};
|
|
8973
|
+
/**
|
|
8974
|
+
* Deletes currently selected data.
|
|
8975
|
+
* @memberof canvasDatagrid
|
|
8976
|
+
* @name deleteSelectedData
|
|
8977
|
+
* @method
|
|
8978
|
+
* @param {boolean} dontDraw Suppress the draw method after the selection change.
|
|
8979
|
+
*/
|
|
8980
|
+
|
|
8981
|
+
|
|
8982
|
+
self.deleteSelectedData = function (dontDraw) {
|
|
8983
|
+
var affectedCells = self.clearSelectedCells();
|
|
8984
|
+
self.dispatchEvent('afterdelete', {
|
|
8985
|
+
cells: affectedCells
|
|
8986
|
+
});
|
|
8987
|
+
|
|
8988
|
+
if (dontDraw) {
|
|
8989
|
+
return;
|
|
8990
|
+
}
|
|
8991
|
+
|
|
8992
|
+
requestAnimationFrame(function () {
|
|
8993
|
+
return self.draw();
|
|
8994
|
+
});
|
|
8995
|
+
};
|
|
8912
8996
|
/**
|
|
8913
8997
|
* Moves data in the provided selection to another position in the grid. Moving data off the edge of the schema (columns/x) will truncate data.
|
|
8914
8998
|
* @memberof canvasDatagrid
|