canvas-datagrid 0.3.21 → 0.3.25
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 +27 -0
- package/dist/canvas-datagrid.debug.js +226 -151
- 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/lib/dom.js +9 -4
- package/lib/events/index.js +55 -92
- package/lib/events/util.js +40 -1
- package/lib/intf.js +75 -1
- package/lib/publicMethods.js +19 -12
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,33 @@ 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.25 - 2021-12-22
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Fix null value bug when copying value (ndrsn)
|
|
15
|
+
- Fix setting property `dragOffset` of undefined (Lie Yue, #457)
|
|
16
|
+
- Fix cell editing in the inner grid (Liu Yue, #456)
|
|
17
|
+
|
|
18
|
+
## 0.3.24 - 2021-12-22
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Prevent default when handling cut event and cleanup utility functions (mdebrauw, #454)
|
|
23
|
+
|
|
24
|
+
## 0.3.23 - 2021-12-16
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- Slight refactor and set minimum width when resizing (mdebrauw, #452)
|
|
29
|
+
|
|
30
|
+
## 0.3.22 - 2021-12-15
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
|
|
34
|
+
- Resize selected columns simultaneously (mdebrauw, #451)
|
|
35
|
+
- Refactor `cut` and `copy` event handlers (mdebrauw, #450)
|
|
36
|
+
|
|
10
37
|
## 0.3.21 - 2021-12-08
|
|
11
38
|
|
|
12
39
|
### Added
|
|
@@ -1538,12 +1538,19 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1538
1538
|
s = e,
|
|
1539
1539
|
h,
|
|
1540
1540
|
w;
|
|
1541
|
+
var calculatedTree = false;
|
|
1541
1542
|
|
|
1542
1543
|
while (e.offsetParent && e.nodeName !== 'CANVAS-DATAGRID') {
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1544
|
+
var isTree = e.nodeType === 'canvas-datagrid-tree';
|
|
1545
|
+
|
|
1546
|
+
if (!isTree || !calculatedTree) {
|
|
1547
|
+
x += e.offsetLeft;
|
|
1548
|
+
y += e.offsetTop;
|
|
1549
|
+
h = e.offsetHeight;
|
|
1550
|
+
w = e.offsetWidth;
|
|
1551
|
+
}
|
|
1552
|
+
|
|
1553
|
+
if (isTree) calculatedTree = true;
|
|
1547
1554
|
e = e.offsetParent;
|
|
1548
1555
|
}
|
|
1549
1556
|
|
|
@@ -4084,15 +4091,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
4084
4091
|
/*globals define: true, MutationObserver: false, requestAnimationFrame: false, performance: false, btoa: false*/
|
|
4085
4092
|
|
|
4086
4093
|
|
|
4087
|
-
function
|
|
4088
|
-
|
|
4089
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4090
|
-
|
|
4091
|
-
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
4092
|
-
|
|
4093
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
4094
|
-
|
|
4095
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
4094
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
4096
4095
|
|
|
4097
4096
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4098
4097
|
|
|
@@ -4834,7 +4833,21 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
4834
4833
|
self.ellipsisCache = {};
|
|
4835
4834
|
};
|
|
4836
4835
|
|
|
4837
|
-
self.stopDragResize = function () {
|
|
4836
|
+
self.stopDragResize = function (event) {
|
|
4837
|
+
var pos = self.getLayerPos(event);
|
|
4838
|
+
|
|
4839
|
+
if (self.dragMode === 'ew-resize') {
|
|
4840
|
+
var hasMoved = !!(pos.x - self.dragStart.x); // Check that dragItem is selected or part of selection.
|
|
4841
|
+
|
|
4842
|
+
var dragItemIsSelected = self.isColumnSelected(self.dragItem.columnIndex);
|
|
4843
|
+
|
|
4844
|
+
if (hasMoved && dragItemIsSelected) {
|
|
4845
|
+
var width = Math.max(self.resizingStartingWidth + pos.x - self.dragStart.x, self.style.minColumnWidth); // If the column is selected, resize it to width plus any other selected columns.
|
|
4846
|
+
|
|
4847
|
+
self.fitSelectedColumns(width);
|
|
4848
|
+
}
|
|
4849
|
+
}
|
|
4850
|
+
|
|
4838
4851
|
self.resize();
|
|
4839
4852
|
document.body.removeEventListener('mousemove', self.dragResizeColumn, false);
|
|
4840
4853
|
document.body.removeEventListener('mouseup', self.stopDragResize, false);
|
|
@@ -4953,6 +4966,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
4953
4966
|
if (Math.abs(x) > self.attributes.reorderDeadZone || Math.abs(y) > self.attributes.reorderDeadZone) {
|
|
4954
4967
|
self.reorderObject = self.draggingItem;
|
|
4955
4968
|
if (self.isMultiRowsSelected) self.reorderObject = self.getVisibleCellByIndex(-1, self.activeCell.rowIndex);
|
|
4969
|
+
if (!self.reorderObject) return;
|
|
4956
4970
|
self.reorderTarget = self.currentCell;
|
|
4957
4971
|
self.reorderObject.dragOffset = {
|
|
4958
4972
|
x: x,
|
|
@@ -5586,7 +5600,15 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5586
5600
|
}
|
|
5587
5601
|
|
|
5588
5602
|
if (self.currentCell.context === 'ew-resize' && self.currentCell.style === 'columnHeaderCell') {
|
|
5589
|
-
|
|
5603
|
+
// Check that double-clicked cell is selected or part of selection.
|
|
5604
|
+
var currentCellIsSelected = self.isColumnSelected(self.currentCell.columnIndex);
|
|
5605
|
+
|
|
5606
|
+
if (currentCellIsSelected) {
|
|
5607
|
+
// There might be more
|
|
5608
|
+
self.fitSelectedColumns();
|
|
5609
|
+
} else {
|
|
5610
|
+
self.fitColumnToValues(self.currentCell.header.name);
|
|
5611
|
+
}
|
|
5590
5612
|
} else if (self.currentCell.context === 'ew-resize' && self.currentCell.style === 'cornerCell') {
|
|
5591
5613
|
self.autosize();
|
|
5592
5614
|
} else if (['cell', 'activeCell'].includes(self.currentCell.style) && !self.hovers.onFilterButton) {
|
|
@@ -5795,139 +5817,43 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5795
5817
|
});
|
|
5796
5818
|
};
|
|
5797
5819
|
|
|
5798
|
-
self.cut = function (
|
|
5799
|
-
self.copy(e);
|
|
5800
|
-
var schema = self.getSchema();
|
|
5801
|
-
var affectedCells = [];
|
|
5802
|
-
|
|
5803
|
-
var _iterator2 = _createForOfIteratorHelper(self.selections.entries()),
|
|
5804
|
-
_step2;
|
|
5805
|
-
|
|
5806
|
-
try {
|
|
5807
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
5808
|
-
var _step2$value = _slicedToArray(_step2.value, 2),
|
|
5809
|
-
rowIndex = _step2$value[0],
|
|
5810
|
-
row = _step2$value[1];
|
|
5811
|
-
|
|
5812
|
-
if (!row) continue;
|
|
5813
|
-
var boundRowIndex = self.getBoundRowIndexFromViewRowIndex(rowIndex);
|
|
5814
|
-
|
|
5815
|
-
var _iterator3 = _createForOfIteratorHelper(row),
|
|
5816
|
-
_step3;
|
|
5817
|
-
|
|
5818
|
-
try {
|
|
5819
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
5820
|
-
var columnIndex = _step3.value;
|
|
5821
|
-
var boundColumnIndex = self.getBoundColumnIndexFromViewColumnIndex(columnIndex);
|
|
5822
|
-
var colName = schema[boundColumnIndex].name;
|
|
5823
|
-
self.viewData[rowIndex][colName] = '';
|
|
5824
|
-
affectedCells.push([rowIndex, columnIndex, boundRowIndex, boundColumnIndex]);
|
|
5825
|
-
}
|
|
5826
|
-
} catch (err) {
|
|
5827
|
-
_iterator3.e(err);
|
|
5828
|
-
} finally {
|
|
5829
|
-
_iterator3.f();
|
|
5830
|
-
}
|
|
5831
|
-
}
|
|
5832
|
-
} catch (err) {
|
|
5833
|
-
_iterator2.e(err);
|
|
5834
|
-
} finally {
|
|
5835
|
-
_iterator2.f();
|
|
5836
|
-
}
|
|
5837
|
-
|
|
5820
|
+
self.cut = function (event) {
|
|
5838
5821
|
if (self.dispatchEvent('cut', {
|
|
5839
|
-
NativeEvent:
|
|
5840
|
-
cells: affectedCells
|
|
5822
|
+
NativeEvent: event
|
|
5841
5823
|
})) {
|
|
5842
5824
|
return;
|
|
5825
|
+
} // Expecting instance of `ClipboardEvent` with `clipboardData` attribute
|
|
5826
|
+
|
|
5827
|
+
|
|
5828
|
+
if (!self.hasFocus || !event.clipboardData) {
|
|
5829
|
+
return;
|
|
5843
5830
|
}
|
|
5844
5831
|
|
|
5832
|
+
self.copySelectedCellsToClipboard(event.clipboardData);
|
|
5833
|
+
var affectedCells = self.clearSelectedCells();
|
|
5834
|
+
self.dispatchEvent('aftercut', {
|
|
5835
|
+
cells: affectedCells
|
|
5836
|
+
});
|
|
5845
5837
|
requestAnimationFrame(function () {
|
|
5846
5838
|
return self.draw();
|
|
5847
5839
|
});
|
|
5840
|
+
event.preventDefault();
|
|
5848
5841
|
};
|
|
5849
5842
|
|
|
5850
|
-
self.copy = function (
|
|
5843
|
+
self.copy = function (event) {
|
|
5851
5844
|
if (self.dispatchEvent('copy', {
|
|
5852
|
-
NativeEvent:
|
|
5845
|
+
NativeEvent: event
|
|
5853
5846
|
})) {
|
|
5854
5847
|
return;
|
|
5855
|
-
}
|
|
5848
|
+
} // Expecting instance of `ClipboardEvent` with `clipboardData` attribute
|
|
5856
5849
|
|
|
5857
|
-
if (!self.hasFocus || !e.clipboardData) {
|
|
5858
|
-
return;
|
|
5859
|
-
}
|
|
5860
|
-
|
|
5861
|
-
var t = '',
|
|
5862
|
-
d = '',
|
|
5863
|
-
textRows = [],
|
|
5864
|
-
sData = self.getSelectedData(),
|
|
5865
|
-
s = self.getSchema(),
|
|
5866
|
-
sSorted = [],
|
|
5867
|
-
firstRowKeys,
|
|
5868
|
-
isNeat = true; // Selected like [[0, 1], [0, 1]] of [[0, 3]] is neat; Selected like [[0, 1], [1, 2]] is untidy
|
|
5869
5850
|
|
|
5870
|
-
|
|
5871
|
-
|
|
5872
|
-
return v.replace(/</g, '<').replace(/>/g, '>');
|
|
5851
|
+
if (!self.hasFocus || !event.clipboardData) {
|
|
5852
|
+
return;
|
|
5873
5853
|
}
|
|
5874
5854
|
|
|
5875
|
-
|
|
5876
|
-
|
|
5877
|
-
});
|
|
5878
|
-
|
|
5879
|
-
if (sData.length > 0) {
|
|
5880
|
-
sData.forEach(function (row) {
|
|
5881
|
-
if (!row) return;
|
|
5882
|
-
var rowKeys = Object.keys(row);
|
|
5883
|
-
var textRow = [];
|
|
5884
|
-
if (!firstRowKeys) firstRowKeys = Object.keys(row);
|
|
5885
|
-
if (isNeat && rowKeys.length !== firstRowKeys.length) isNeat = false;
|
|
5886
|
-
sSorted.forEach(function (column, columnIndex) {
|
|
5887
|
-
if (rowKeys.indexOf(String(column.name)) < 0) {
|
|
5888
|
-
if (firstRowKeys.indexOf(String(column.name)) < 0) {
|
|
5889
|
-
return;
|
|
5890
|
-
} else if (isNeat) {
|
|
5891
|
-
isNeat = false;
|
|
5892
|
-
}
|
|
5893
|
-
}
|
|
5894
|
-
|
|
5895
|
-
textRow.push(row[column.name] || '');
|
|
5896
|
-
});
|
|
5897
|
-
textRows.push(textRow);
|
|
5898
|
-
});
|
|
5899
|
-
|
|
5900
|
-
if (isNeat) {
|
|
5901
|
-
t = textRows.map(function (row) {
|
|
5902
|
-
return row.join('\t');
|
|
5903
|
-
}).join('\n');
|
|
5904
|
-
/**
|
|
5905
|
-
* The html content copied by Excel has not header
|
|
5906
|
-
*/
|
|
5907
|
-
|
|
5908
|
-
d += '<table>';
|
|
5909
|
-
d += textRows.map(function (row) {
|
|
5910
|
-
return '<tr>' + row.map(function (value) {
|
|
5911
|
-
return '<td>' + htmlSafe(value) + '</td>';
|
|
5912
|
-
}).join('') + '</tr>';
|
|
5913
|
-
}).join('');
|
|
5914
|
-
d += '</table>';
|
|
5915
|
-
} else {
|
|
5916
|
-
t = textRows.map(function (row) {
|
|
5917
|
-
return row.join('');
|
|
5918
|
-
}).join('');
|
|
5919
|
-
d = t;
|
|
5920
|
-
}
|
|
5921
|
-
|
|
5922
|
-
if (t) {
|
|
5923
|
-
e.clipboardData.setData('text/html', d);
|
|
5924
|
-
e.clipboardData.setData('text/plain', t);
|
|
5925
|
-
e.clipboardData.setData('text/csv', t);
|
|
5926
|
-
e.clipboardData.setData('application/json', JSON.stringify(sData));
|
|
5927
|
-
}
|
|
5928
|
-
|
|
5929
|
-
e.preventDefault();
|
|
5930
|
-
}
|
|
5855
|
+
self.copySelectedCellsToClipboard(event.clipboardData);
|
|
5856
|
+
event.preventDefault();
|
|
5931
5857
|
};
|
|
5932
5858
|
|
|
5933
5859
|
return;
|
|
@@ -5940,6 +5866,9 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5940
5866
|
!*** ./lib/events/util.js ***!
|
|
5941
5867
|
\****************************/
|
|
5942
5868
|
/*! namespace exports */
|
|
5869
|
+
/*! export createHTMLString [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5870
|
+
/*! export createTextString [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5871
|
+
/*! export htmlSafe [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5943
5872
|
/*! export isSupportedHtml [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5944
5873
|
/*! export parseData [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5945
5874
|
/*! export parseHtmlTable [provided] [no usage info] [missing usage info prevents renaming] */
|
|
@@ -5953,12 +5882,15 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5953
5882
|
"use strict";
|
|
5954
5883
|
__webpack_require__.r(__webpack_exports__);
|
|
5955
5884
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5885
|
+
/* harmony export */ "createTextString": function() { return /* binding */ createTextString; },
|
|
5886
|
+
/* harmony export */ "createHTMLString": function() { return /* binding */ createHTMLString; },
|
|
5956
5887
|
/* harmony export */ "isSupportedHtml": function() { return /* binding */ isSupportedHtml; },
|
|
5957
|
-
/* harmony export */ "
|
|
5888
|
+
/* harmony export */ "htmlSafe": function() { return /* binding */ htmlSafe; },
|
|
5958
5889
|
/* harmony export */ "parseData": function() { return /* binding */ parseData; },
|
|
5959
5890
|
/* harmony export */ "parseHtmlTable": function() { return /* binding */ parseHtmlTable; },
|
|
5960
5891
|
/* harmony export */ "parseHtmlText": function() { return /* binding */ parseHtmlText; },
|
|
5961
|
-
/* harmony export */ "parseText": function() { return /* binding */ parseText; }
|
|
5892
|
+
/* harmony export */ "parseText": function() { return /* binding */ parseText; },
|
|
5893
|
+
/* harmony export */ "sanitizeElementData": function() { return /* binding */ sanitizeElementData; }
|
|
5962
5894
|
/* harmony export */ });
|
|
5963
5895
|
|
|
5964
5896
|
|
|
@@ -6081,6 +6013,36 @@ var parseData = function parseData(data, mimeType) {
|
|
|
6081
6013
|
return parseText(data);
|
|
6082
6014
|
};
|
|
6083
6015
|
|
|
6016
|
+
var htmlSafe = function htmlSafe(value) {
|
|
6017
|
+
if (typeof value !== 'string') return value;
|
|
6018
|
+
return value.replace(/</g, '<').replace(/>/g, '>');
|
|
6019
|
+
};
|
|
6020
|
+
|
|
6021
|
+
var createTextString = function createTextString(selectedData, isNeat) {
|
|
6022
|
+
// Selected like [[0, 1], [0, 1]] of [[0, 3]] is neat; Selected like [[0, 1], [1, 2]] is untidy.
|
|
6023
|
+
// If not isNeat we just return a simple string of concatenated values.
|
|
6024
|
+
if (!isNeat) return selectedData.map(function (row) {
|
|
6025
|
+
return Object.values(row).join('');
|
|
6026
|
+
}).join(''); // If isNeat, we can create tab separated mutti-line text.
|
|
6027
|
+
|
|
6028
|
+
return selectedData.map(function (row) {
|
|
6029
|
+
return Object.values(row).join('\t');
|
|
6030
|
+
}).join('\n');
|
|
6031
|
+
};
|
|
6032
|
+
|
|
6033
|
+
var createHTMLString = function createHTMLString(selectedData, isNeat) {
|
|
6034
|
+
if (!isNeat) return createTextString(selectedData, isNeat); // If isNeat, we can create a HTML table with the selected data.
|
|
6035
|
+
|
|
6036
|
+
var htmlString = '<table>';
|
|
6037
|
+
htmlString += selectedData.map(function (row) {
|
|
6038
|
+
return '<tr>' + Object.values(row).map(function (value) {
|
|
6039
|
+
return '<td>' + htmlSafe(value) + '</td>';
|
|
6040
|
+
}).join('') + '</tr>';
|
|
6041
|
+
}).join('');
|
|
6042
|
+
htmlString += '</table>';
|
|
6043
|
+
return htmlString;
|
|
6044
|
+
};
|
|
6045
|
+
|
|
6084
6046
|
|
|
6085
6047
|
|
|
6086
6048
|
/***/ }),
|
|
@@ -6092,7 +6054,7 @@ var parseData = function parseData(data, mimeType) {
|
|
|
6092
6054
|
/*! namespace exports */
|
|
6093
6055
|
/*! export default [provided] [no usage info] [missing usage info prevents renaming] */
|
|
6094
6056
|
/*! other exports [not provided] [no usage info] */
|
|
6095
|
-
/*! runtime requirements: __webpack_require__.r, __webpack_exports__, __webpack_require__.d, __webpack_require__.* */
|
|
6057
|
+
/*! runtime requirements: __webpack_require__, __webpack_require__.r, __webpack_exports__, __webpack_require__.d, __webpack_require__.* */
|
|
6096
6058
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
6097
6059
|
|
|
6098
6060
|
"use strict";
|
|
@@ -6100,6 +6062,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6100
6062
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
6101
6063
|
/* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; }
|
|
6102
6064
|
/* harmony export */ });
|
|
6065
|
+
/* harmony import */ var _events_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./events/util */ "./lib/events/util.js");
|
|
6103
6066
|
/*jslint browser: true, unparam: true, todo: true*/
|
|
6104
6067
|
|
|
6105
6068
|
/*globals HTMLElement: false, Reflect: false, define: true, MutationObserver: false, requestAnimationFrame: false, performance: false, btoa: false*/
|
|
@@ -6121,6 +6084,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
6121
6084
|
|
|
6122
6085
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
6123
6086
|
|
|
6087
|
+
|
|
6124
6088
|
/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(self, ctor) {
|
|
6125
6089
|
self.scale = 1;
|
|
6126
6090
|
self.orders = {
|
|
@@ -6325,9 +6289,11 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6325
6289
|
return selectedCells;
|
|
6326
6290
|
};
|
|
6327
6291
|
|
|
6328
|
-
self.
|
|
6292
|
+
self.copySelectedCellsToClipboard = function (clipboardData) {
|
|
6293
|
+
var selectedData = [];
|
|
6329
6294
|
var schema = self.getSchema();
|
|
6330
|
-
var
|
|
6295
|
+
var firstRowAsString;
|
|
6296
|
+
var isNeat = true; // Selected like [[0, 1], [0, 1]] of [[0, 3]] is neat; Selected like [[0, 1], [1, 2]] is untidy
|
|
6331
6297
|
|
|
6332
6298
|
var _iterator3 = _createForOfIteratorHelper(self.selections.entries()),
|
|
6333
6299
|
_step3;
|
|
@@ -6339,7 +6305,12 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6339
6305
|
row = _step3$value[1];
|
|
6340
6306
|
|
|
6341
6307
|
// If no cells are selected for a particular rowIndex the selections array will contain an empty element for that rowIndex.
|
|
6342
|
-
if (!row) continue;
|
|
6308
|
+
if (!row) continue; // Convert to string for easy comparison to the first row.
|
|
6309
|
+
|
|
6310
|
+
var rowAsString = row.join(',').toString();
|
|
6311
|
+
var rowDict = {};
|
|
6312
|
+
if (!firstRowAsString) firstRowAsString = row.join(',').toString();
|
|
6313
|
+
if (isNeat && rowAsString !== firstRowAsString) isNeat = false;
|
|
6343
6314
|
var boundRowIndex = self.getBoundRowIndexFromViewRowIndex(rowIndex);
|
|
6344
6315
|
|
|
6345
6316
|
var _iterator4 = _createForOfIteratorHelper(row),
|
|
@@ -6352,14 +6323,16 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6352
6323
|
if (columnIndex < 0) continue;
|
|
6353
6324
|
var boundColumnIndex = self.getBoundColumnIndexFromViewColumnIndex(columnIndex);
|
|
6354
6325
|
var columnName = schema[boundColumnIndex].name;
|
|
6355
|
-
self.
|
|
6356
|
-
|
|
6326
|
+
var value = self.originalData[boundRowIndex][columnName];
|
|
6327
|
+
rowDict[columnName] = value;
|
|
6357
6328
|
}
|
|
6358
6329
|
} catch (err) {
|
|
6359
6330
|
_iterator4.e(err);
|
|
6360
6331
|
} finally {
|
|
6361
6332
|
_iterator4.f();
|
|
6362
6333
|
}
|
|
6334
|
+
|
|
6335
|
+
selectedData.push(rowDict);
|
|
6363
6336
|
}
|
|
6364
6337
|
} catch (err) {
|
|
6365
6338
|
_iterator3.e(err);
|
|
@@ -6367,6 +6340,68 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6367
6340
|
_iterator3.f();
|
|
6368
6341
|
}
|
|
6369
6342
|
|
|
6343
|
+
if (selectedData.length > 0) {
|
|
6344
|
+
var textString = (0,_events_util__WEBPACK_IMPORTED_MODULE_0__.createTextString)(selectedData, isNeat);
|
|
6345
|
+
var htmlString = (0,_events_util__WEBPACK_IMPORTED_MODULE_0__.createHTMLString)(selectedData, isNeat);
|
|
6346
|
+
var copiedData = {
|
|
6347
|
+
'text/plain': textString,
|
|
6348
|
+
'text/html': htmlString,
|
|
6349
|
+
'text/csv': textString,
|
|
6350
|
+
'application/json': JSON.stringify(selectedData)
|
|
6351
|
+
};
|
|
6352
|
+
|
|
6353
|
+
for (var _i2 = 0, _Object$entries = Object.entries(copiedData); _i2 < _Object$entries.length; _i2++) {
|
|
6354
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),
|
|
6355
|
+
mimeType = _Object$entries$_i[0],
|
|
6356
|
+
data = _Object$entries$_i[1];
|
|
6357
|
+
|
|
6358
|
+
clipboardData.setData(mimeType, data);
|
|
6359
|
+
}
|
|
6360
|
+
}
|
|
6361
|
+
};
|
|
6362
|
+
|
|
6363
|
+
self.clearSelectedCells = function () {
|
|
6364
|
+
var schema = self.getSchema();
|
|
6365
|
+
var affectedCells = [];
|
|
6366
|
+
|
|
6367
|
+
var _iterator5 = _createForOfIteratorHelper(self.selections.entries()),
|
|
6368
|
+
_step5;
|
|
6369
|
+
|
|
6370
|
+
try {
|
|
6371
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
6372
|
+
var _step5$value = _slicedToArray(_step5.value, 2),
|
|
6373
|
+
rowIndex = _step5$value[0],
|
|
6374
|
+
row = _step5$value[1];
|
|
6375
|
+
|
|
6376
|
+
// If no cells are selected for a particular rowIndex the selections array will contain an empty element for that rowIndex.
|
|
6377
|
+
if (!row) continue;
|
|
6378
|
+
var boundRowIndex = self.getBoundRowIndexFromViewRowIndex(rowIndex);
|
|
6379
|
+
|
|
6380
|
+
var _iterator6 = _createForOfIteratorHelper(row),
|
|
6381
|
+
_step6;
|
|
6382
|
+
|
|
6383
|
+
try {
|
|
6384
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
6385
|
+
var columnIndex = _step6.value;
|
|
6386
|
+
// If the whole row is selected the columnIndex for the rowHeader is -1.
|
|
6387
|
+
if (columnIndex < 0) continue;
|
|
6388
|
+
var boundColumnIndex = self.getBoundColumnIndexFromViewColumnIndex(columnIndex);
|
|
6389
|
+
var columnName = schema[boundColumnIndex].name;
|
|
6390
|
+
self.viewData[boundRowIndex][columnName] = '';
|
|
6391
|
+
affectedCells.push([rowIndex, columnIndex, boundRowIndex, boundColumnIndex]);
|
|
6392
|
+
}
|
|
6393
|
+
} catch (err) {
|
|
6394
|
+
_iterator6.e(err);
|
|
6395
|
+
} finally {
|
|
6396
|
+
_iterator6.f();
|
|
6397
|
+
}
|
|
6398
|
+
}
|
|
6399
|
+
} catch (err) {
|
|
6400
|
+
_iterator5.e(err);
|
|
6401
|
+
} finally {
|
|
6402
|
+
_iterator5.f();
|
|
6403
|
+
}
|
|
6404
|
+
|
|
6370
6405
|
return affectedCells;
|
|
6371
6406
|
};
|
|
6372
6407
|
|
|
@@ -6446,6 +6481,39 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6446
6481
|
self.orders.rows = fillArray(0, self.originalData.length - 1);
|
|
6447
6482
|
};
|
|
6448
6483
|
|
|
6484
|
+
self.fitSelectedColumns = function (width) {
|
|
6485
|
+
var selectedColumns = self.selections[0];
|
|
6486
|
+
var schema = self.getSchema();
|
|
6487
|
+
|
|
6488
|
+
var _iterator7 = _createForOfIteratorHelper(selectedColumns),
|
|
6489
|
+
_step7;
|
|
6490
|
+
|
|
6491
|
+
try {
|
|
6492
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
6493
|
+
var selectedColumn = _step7.value;
|
|
6494
|
+
|
|
6495
|
+
// Make sure the column is not the row header and that the whole column has in fact been selected.
|
|
6496
|
+
if (selectedColumn >= 0 && self.isColumnSelected(selectedColumn)) {
|
|
6497
|
+
if (isNaN(width)) {
|
|
6498
|
+
var column = schema[self.orders.columns[selectedColumn]];
|
|
6499
|
+
self.fitColumnToValues(column.name);
|
|
6500
|
+
} else {
|
|
6501
|
+
self.sizes.columns[selectedColumn] = width;
|
|
6502
|
+
self.dispatchEvent('resizecolumn', {
|
|
6503
|
+
x: width,
|
|
6504
|
+
y: self.resizingStartingHeight,
|
|
6505
|
+
draggingItem: self.currentCell
|
|
6506
|
+
});
|
|
6507
|
+
}
|
|
6508
|
+
}
|
|
6509
|
+
}
|
|
6510
|
+
} catch (err) {
|
|
6511
|
+
_iterator7.e(err);
|
|
6512
|
+
} finally {
|
|
6513
|
+
_iterator7.f();
|
|
6514
|
+
}
|
|
6515
|
+
};
|
|
6516
|
+
|
|
6449
6517
|
self.getVisibleSchema = function () {
|
|
6450
6518
|
return self.getSchema().filter(function (col) {
|
|
6451
6519
|
return !col.hidden;
|
|
@@ -6512,9 +6580,9 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6512
6580
|
}); // Apply filtering
|
|
6513
6581
|
|
|
6514
6582
|
var _loop = function _loop() {
|
|
6515
|
-
var _Object$
|
|
6516
|
-
headerName = _Object$
|
|
6517
|
-
filterText = _Object$
|
|
6583
|
+
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i3], 2),
|
|
6584
|
+
headerName = _Object$entries2$_i[0],
|
|
6585
|
+
filterText = _Object$entries2$_i[1];
|
|
6518
6586
|
|
|
6519
6587
|
var header = self.getHeaderByName(headerName);
|
|
6520
6588
|
|
|
@@ -6533,19 +6601,19 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6533
6601
|
});
|
|
6534
6602
|
};
|
|
6535
6603
|
|
|
6536
|
-
for (var
|
|
6604
|
+
for (var _i3 = 0, _Object$entries2 = Object.entries(self.columnFilters); _i3 < _Object$entries2.length; _i3++) {
|
|
6537
6605
|
var _ret = _loop();
|
|
6538
6606
|
|
|
6539
6607
|
if (_ret === "continue") continue;
|
|
6540
6608
|
} // Apply sorting
|
|
6541
6609
|
|
|
6542
6610
|
|
|
6543
|
-
var
|
|
6544
|
-
|
|
6611
|
+
var _iterator8 = _createForOfIteratorHelper(self.orderings.columns),
|
|
6612
|
+
_step8;
|
|
6545
6613
|
|
|
6546
6614
|
try {
|
|
6547
6615
|
var _loop2 = function _loop2() {
|
|
6548
|
-
var column =
|
|
6616
|
+
var column = _step8.value;
|
|
6549
6617
|
var sortFn = column.sortFunction(column.orderBy, column.orderDirection);
|
|
6550
6618
|
newViewData.sort(function (_ref7, _ref8) {
|
|
6551
6619
|
var _ref9 = _slicedToArray(_ref7, 1),
|
|
@@ -6560,13 +6628,13 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6560
6628
|
});
|
|
6561
6629
|
};
|
|
6562
6630
|
|
|
6563
|
-
for (
|
|
6631
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
6564
6632
|
_loop2();
|
|
6565
6633
|
}
|
|
6566
6634
|
} catch (err) {
|
|
6567
|
-
|
|
6635
|
+
_iterator8.e(err);
|
|
6568
6636
|
} finally {
|
|
6569
|
-
|
|
6637
|
+
_iterator8.f();
|
|
6570
6638
|
}
|
|
6571
6639
|
|
|
6572
6640
|
return {
|
|
@@ -8411,9 +8479,16 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
8411
8479
|
|
|
8412
8480
|
|
|
8413
8481
|
self.scrollIntoView = function (x, y, offsetX, offsetY) {
|
|
8414
|
-
|
|
8482
|
+
var matched = self.visibleCells.filter(function (cell) {
|
|
8415
8483
|
return (cell.rowIndex === y || y === undefined) && (cell.columnIndex === x || x === undefined) && cell.x > 0 && cell.y > 0 && cell.x + cell.width < self.width && cell.y + cell.height < self.height;
|
|
8416
|
-
})
|
|
8484
|
+
});
|
|
8485
|
+
|
|
8486
|
+
if (matched.length === 1 && x !== undefined && y !== undefined) {
|
|
8487
|
+
// goto specific cell and its part be hidden by header
|
|
8488
|
+
if (matched[0].x < self.getRowHeaderCellWidth() || matched[0].y < self.getColumnHeaderCellHeight()) matched.length = 0;
|
|
8489
|
+
}
|
|
8490
|
+
|
|
8491
|
+
if (matched.length === 0) {
|
|
8417
8492
|
self.gotoCell(x, y, offsetX, offsetY);
|
|
8418
8493
|
}
|
|
8419
8494
|
};
|