canvas-datagrid 0.3.21 → 0.3.22
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 +7 -0
- package/dist/canvas-datagrid.debug.js +209 -147
- 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/events/index.js +55 -88
- package/lib/events/util.js +39 -1
- package/lib/intf.js +66 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,13 @@ 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.22 - 2021-12-15
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Resize selected columns simultaneously (mdebrauw, #451)
|
|
15
|
+
- Refactor `cut` and `copy` event handlers (mdebrauw, #450)
|
|
16
|
+
|
|
10
17
|
## 0.3.21 - 2021-12-08
|
|
11
18
|
|
|
12
19
|
### Added
|
|
@@ -4084,15 +4084,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
4084
4084
|
/*globals define: true, MutationObserver: false, requestAnimationFrame: false, performance: false, btoa: false*/
|
|
4085
4085
|
|
|
4086
4086
|
|
|
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; } } }; }
|
|
4087
|
+
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
4088
|
|
|
4097
4089
|
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
4090
|
|
|
@@ -4834,7 +4826,33 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
4834
4826
|
self.ellipsisCache = {};
|
|
4835
4827
|
};
|
|
4836
4828
|
|
|
4837
|
-
self.stopDragResize = function () {
|
|
4829
|
+
self.stopDragResize = function (e) {
|
|
4830
|
+
var pos = self.getLayerPos(e);
|
|
4831
|
+
var hasMoved = !!(pos.x - self.dragStart.x);
|
|
4832
|
+
var width = self.resizingStartingWidth + pos.x - self.dragStart.x;
|
|
4833
|
+
|
|
4834
|
+
if (self.dragMode === 'ew-resize') {
|
|
4835
|
+
var selectedColumns = self.selections[0];
|
|
4836
|
+
var dragItemIsSelected = self.isColumnSelected(self.dragItem.columnIndex);
|
|
4837
|
+
|
|
4838
|
+
if (dragItemIsSelected) {
|
|
4839
|
+
var _iterator = _createForOfIteratorHelper(selectedColumns),
|
|
4840
|
+
_step;
|
|
4841
|
+
|
|
4842
|
+
try {
|
|
4843
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
4844
|
+
var selectedColumnIndex = _step.value;
|
|
4845
|
+
var boundColumnIndex = self.getBoundColumnIndexFromViewColumnIndex(selectedColumnIndex);
|
|
4846
|
+
if (hasMoved && dragItemIsSelected && self.isColumnSelected(selectedColumnIndex)) self.sizes.columns[boundColumnIndex] = width;
|
|
4847
|
+
}
|
|
4848
|
+
} catch (err) {
|
|
4849
|
+
_iterator.e(err);
|
|
4850
|
+
} finally {
|
|
4851
|
+
_iterator.f();
|
|
4852
|
+
}
|
|
4853
|
+
}
|
|
4854
|
+
}
|
|
4855
|
+
|
|
4838
4856
|
self.resize();
|
|
4839
4857
|
document.body.removeEventListener('mousemove', self.dragResizeColumn, false);
|
|
4840
4858
|
document.body.removeEventListener('mouseup', self.stopDragResize, false);
|
|
@@ -5480,12 +5498,12 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5480
5498
|
}
|
|
5481
5499
|
}
|
|
5482
5500
|
|
|
5483
|
-
var
|
|
5484
|
-
|
|
5501
|
+
var _iterator2 = _createForOfIteratorHelper(self.selections),
|
|
5502
|
+
_step2;
|
|
5485
5503
|
|
|
5486
5504
|
try {
|
|
5487
|
-
for (
|
|
5488
|
-
var selection =
|
|
5505
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
5506
|
+
var selection = _step2.value;
|
|
5489
5507
|
|
|
5490
5508
|
if (e.key === 'ArrowRight' && selection) {
|
|
5491
5509
|
if (x > lastSelectedColumn) {
|
|
@@ -5508,9 +5526,9 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5508
5526
|
}
|
|
5509
5527
|
}
|
|
5510
5528
|
} catch (err) {
|
|
5511
|
-
|
|
5529
|
+
_iterator2.e(err);
|
|
5512
5530
|
} finally {
|
|
5513
|
-
|
|
5531
|
+
_iterator2.f();
|
|
5514
5532
|
}
|
|
5515
5533
|
|
|
5516
5534
|
self.selectionBounds = self.getSelectionBounds();
|
|
@@ -5586,7 +5604,15 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5586
5604
|
}
|
|
5587
5605
|
|
|
5588
5606
|
if (self.currentCell.context === 'ew-resize' && self.currentCell.style === 'columnHeaderCell') {
|
|
5589
|
-
|
|
5607
|
+
// Check that double-clicked cell is selected or part of selection.
|
|
5608
|
+
var currentCellIsSelected = self.isColumnSelected(self.currentCell.columnIndex);
|
|
5609
|
+
|
|
5610
|
+
if (currentCellIsSelected) {
|
|
5611
|
+
// There might be more
|
|
5612
|
+
self.fitSelectedColumns();
|
|
5613
|
+
} else {
|
|
5614
|
+
self.fitColumnToValues(self.currentCell.header.name);
|
|
5615
|
+
}
|
|
5590
5616
|
} else if (self.currentCell.context === 'ew-resize' && self.currentCell.style === 'cornerCell') {
|
|
5591
5617
|
self.autosize();
|
|
5592
5618
|
} else if (['cell', 'activeCell'].includes(self.currentCell.style) && !self.hovers.onFilterButton) {
|
|
@@ -5796,52 +5822,22 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5796
5822
|
};
|
|
5797
5823
|
|
|
5798
5824
|
self.cut = function (e) {
|
|
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
|
-
|
|
5838
5825
|
if (self.dispatchEvent('cut', {
|
|
5839
|
-
NativeEvent: e
|
|
5840
|
-
cells: affectedCells
|
|
5826
|
+
NativeEvent: e
|
|
5841
5827
|
})) {
|
|
5842
5828
|
return;
|
|
5829
|
+
} // Expecting instance of `ClipboardEvent` with `clipboardData` attribute
|
|
5830
|
+
|
|
5831
|
+
|
|
5832
|
+
if (!self.hasFocus || !e.clipboardData) {
|
|
5833
|
+
return;
|
|
5843
5834
|
}
|
|
5844
5835
|
|
|
5836
|
+
self.copySelectedCellsToClipboard(e.clipboardData);
|
|
5837
|
+
var affectedCells = self.clearSelectedCells();
|
|
5838
|
+
self.dispatchEvent('aftercut', {
|
|
5839
|
+
cells: affectedCells
|
|
5840
|
+
});
|
|
5845
5841
|
requestAnimationFrame(function () {
|
|
5846
5842
|
return self.draw();
|
|
5847
5843
|
});
|
|
@@ -5852,82 +5848,15 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5852
5848
|
NativeEvent: e
|
|
5853
5849
|
})) {
|
|
5854
5850
|
return;
|
|
5855
|
-
}
|
|
5851
|
+
} // Expecting instance of `ClipboardEvent` with `clipboardData` attribute
|
|
5852
|
+
|
|
5856
5853
|
|
|
5857
5854
|
if (!self.hasFocus || !e.clipboardData) {
|
|
5858
5855
|
return;
|
|
5859
5856
|
}
|
|
5860
5857
|
|
|
5861
|
-
|
|
5862
|
-
|
|
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
|
-
|
|
5870
|
-
function htmlSafe(v) {
|
|
5871
|
-
if (typeof v === 'number') return v;
|
|
5872
|
-
return v.replace(/</g, '<').replace(/>/g, '>');
|
|
5873
|
-
}
|
|
5874
|
-
|
|
5875
|
-
s.forEach(function (column, columnIndex) {
|
|
5876
|
-
sSorted.push(s[self.orders.columns[columnIndex]]);
|
|
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
|
-
}
|
|
5858
|
+
self.copySelectedCellsToClipboard(e.clipboardData);
|
|
5859
|
+
e.preventDefault();
|
|
5931
5860
|
};
|
|
5932
5861
|
|
|
5933
5862
|
return;
|
|
@@ -5940,6 +5869,9 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5940
5869
|
!*** ./lib/events/util.js ***!
|
|
5941
5870
|
\****************************/
|
|
5942
5871
|
/*! namespace exports */
|
|
5872
|
+
/*! export createHTMLString [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5873
|
+
/*! export createTextString [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5874
|
+
/*! export htmlSafe [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5943
5875
|
/*! export isSupportedHtml [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5944
5876
|
/*! export parseData [provided] [no usage info] [missing usage info prevents renaming] */
|
|
5945
5877
|
/*! export parseHtmlTable [provided] [no usage info] [missing usage info prevents renaming] */
|
|
@@ -5953,12 +5885,15 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5953
5885
|
"use strict";
|
|
5954
5886
|
__webpack_require__.r(__webpack_exports__);
|
|
5955
5887
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5888
|
+
/* harmony export */ "createTextString": function() { return /* binding */ createTextString; },
|
|
5889
|
+
/* harmony export */ "createHTMLString": function() { return /* binding */ createHTMLString; },
|
|
5956
5890
|
/* harmony export */ "isSupportedHtml": function() { return /* binding */ isSupportedHtml; },
|
|
5957
|
-
/* harmony export */ "
|
|
5891
|
+
/* harmony export */ "htmlSafe": function() { return /* binding */ htmlSafe; },
|
|
5958
5892
|
/* harmony export */ "parseData": function() { return /* binding */ parseData; },
|
|
5959
5893
|
/* harmony export */ "parseHtmlTable": function() { return /* binding */ parseHtmlTable; },
|
|
5960
5894
|
/* harmony export */ "parseHtmlText": function() { return /* binding */ parseHtmlText; },
|
|
5961
|
-
/* harmony export */ "parseText": function() { return /* binding */ parseText; }
|
|
5895
|
+
/* harmony export */ "parseText": function() { return /* binding */ parseText; },
|
|
5896
|
+
/* harmony export */ "sanitizeElementData": function() { return /* binding */ sanitizeElementData; }
|
|
5962
5897
|
/* harmony export */ });
|
|
5963
5898
|
|
|
5964
5899
|
|
|
@@ -6081,6 +6016,36 @@ var parseData = function parseData(data, mimeType) {
|
|
|
6081
6016
|
return parseText(data);
|
|
6082
6017
|
};
|
|
6083
6018
|
|
|
6019
|
+
var htmlSafe = function htmlSafe(value) {
|
|
6020
|
+
if (typeof value === 'number') return value;
|
|
6021
|
+
return value.replace(/</g, '<').replace(/>/g, '>');
|
|
6022
|
+
};
|
|
6023
|
+
|
|
6024
|
+
var createTextString = function createTextString(selectedData, isNeat) {
|
|
6025
|
+
// Selected like [[0, 1], [0, 1]] of [[0, 3]] is neat; Selected like [[0, 1], [1, 2]] is untidy.
|
|
6026
|
+
// If not isNeat we just return a simple string of concatenated values.
|
|
6027
|
+
if (!isNeat) return selectedData.map(function (row) {
|
|
6028
|
+
return Object.values(row).join('');
|
|
6029
|
+
}).join(''); // If isNeat, we can create tab separated mutti-line text.
|
|
6030
|
+
|
|
6031
|
+
return selectedData.map(function (row) {
|
|
6032
|
+
return Object.values(row).join('\t');
|
|
6033
|
+
}).join('\n');
|
|
6034
|
+
};
|
|
6035
|
+
|
|
6036
|
+
var createHTMLString = function createHTMLString(selectedData, isNeat) {
|
|
6037
|
+
if (!isNeat) return createTextString(selectedData, isNeat); // If isNeat, we can create a HTML table with the selected data.
|
|
6038
|
+
|
|
6039
|
+
var htmlString = '<table>';
|
|
6040
|
+
htmlString += selectedData.map(function (row) {
|
|
6041
|
+
return '<tr>' + Object.values(row).map(function (value) {
|
|
6042
|
+
return '<td>' + htmlSafe(value) + '</td>';
|
|
6043
|
+
}).join('') + '</tr>';
|
|
6044
|
+
}).join('');
|
|
6045
|
+
htmlString += '</table>';
|
|
6046
|
+
return htmlString;
|
|
6047
|
+
};
|
|
6048
|
+
|
|
6084
6049
|
|
|
6085
6050
|
|
|
6086
6051
|
/***/ }),
|
|
@@ -6092,7 +6057,7 @@ var parseData = function parseData(data, mimeType) {
|
|
|
6092
6057
|
/*! namespace exports */
|
|
6093
6058
|
/*! export default [provided] [no usage info] [missing usage info prevents renaming] */
|
|
6094
6059
|
/*! other exports [not provided] [no usage info] */
|
|
6095
|
-
/*! runtime requirements: __webpack_require__.r, __webpack_exports__, __webpack_require__.d, __webpack_require__.* */
|
|
6060
|
+
/*! runtime requirements: __webpack_require__, __webpack_require__.r, __webpack_exports__, __webpack_require__.d, __webpack_require__.* */
|
|
6096
6061
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
6097
6062
|
|
|
6098
6063
|
"use strict";
|
|
@@ -6100,6 +6065,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6100
6065
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
6101
6066
|
/* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; }
|
|
6102
6067
|
/* harmony export */ });
|
|
6068
|
+
/* harmony import */ var _events_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./events/util */ "./lib/events/util.js");
|
|
6103
6069
|
/*jslint browser: true, unparam: true, todo: true*/
|
|
6104
6070
|
|
|
6105
6071
|
/*globals HTMLElement: false, Reflect: false, define: true, MutationObserver: false, requestAnimationFrame: false, performance: false, btoa: false*/
|
|
@@ -6121,6 +6087,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
6121
6087
|
|
|
6122
6088
|
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
6089
|
|
|
6090
|
+
|
|
6124
6091
|
/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(self, ctor) {
|
|
6125
6092
|
self.scale = 1;
|
|
6126
6093
|
self.orders = {
|
|
@@ -6325,9 +6292,11 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6325
6292
|
return selectedCells;
|
|
6326
6293
|
};
|
|
6327
6294
|
|
|
6328
|
-
self.
|
|
6295
|
+
self.copySelectedCellsToClipboard = function (clipboardData) {
|
|
6296
|
+
var selectedData = [];
|
|
6329
6297
|
var schema = self.getSchema();
|
|
6330
|
-
var
|
|
6298
|
+
var firstRowAsString;
|
|
6299
|
+
var isNeat = true; // Selected like [[0, 1], [0, 1]] of [[0, 3]] is neat; Selected like [[0, 1], [1, 2]] is untidy
|
|
6331
6300
|
|
|
6332
6301
|
var _iterator3 = _createForOfIteratorHelper(self.selections.entries()),
|
|
6333
6302
|
_step3;
|
|
@@ -6339,7 +6308,12 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6339
6308
|
row = _step3$value[1];
|
|
6340
6309
|
|
|
6341
6310
|
// If no cells are selected for a particular rowIndex the selections array will contain an empty element for that rowIndex.
|
|
6342
|
-
if (!row) continue;
|
|
6311
|
+
if (!row) continue; // Convert to string for easy comparison to the first row.
|
|
6312
|
+
|
|
6313
|
+
var rowAsString = row.join(',').toString();
|
|
6314
|
+
var rowDict = {};
|
|
6315
|
+
if (!firstRowAsString) firstRowAsString = row.join(',').toString();
|
|
6316
|
+
if (isNeat && rowAsString !== firstRowAsString) isNeat = false;
|
|
6343
6317
|
var boundRowIndex = self.getBoundRowIndexFromViewRowIndex(rowIndex);
|
|
6344
6318
|
|
|
6345
6319
|
var _iterator4 = _createForOfIteratorHelper(row),
|
|
@@ -6352,14 +6326,16 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6352
6326
|
if (columnIndex < 0) continue;
|
|
6353
6327
|
var boundColumnIndex = self.getBoundColumnIndexFromViewColumnIndex(columnIndex);
|
|
6354
6328
|
var columnName = schema[boundColumnIndex].name;
|
|
6355
|
-
self.
|
|
6356
|
-
|
|
6329
|
+
var value = self.originalData[boundRowIndex][columnName];
|
|
6330
|
+
rowDict[columnName] = value;
|
|
6357
6331
|
}
|
|
6358
6332
|
} catch (err) {
|
|
6359
6333
|
_iterator4.e(err);
|
|
6360
6334
|
} finally {
|
|
6361
6335
|
_iterator4.f();
|
|
6362
6336
|
}
|
|
6337
|
+
|
|
6338
|
+
selectedData.push(rowDict);
|
|
6363
6339
|
}
|
|
6364
6340
|
} catch (err) {
|
|
6365
6341
|
_iterator3.e(err);
|
|
@@ -6367,6 +6343,68 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6367
6343
|
_iterator3.f();
|
|
6368
6344
|
}
|
|
6369
6345
|
|
|
6346
|
+
if (selectedData.length > 0) {
|
|
6347
|
+
var textString = (0,_events_util__WEBPACK_IMPORTED_MODULE_0__.createTextString)(selectedData, isNeat);
|
|
6348
|
+
var htmlString = (0,_events_util__WEBPACK_IMPORTED_MODULE_0__.createHTMLString)(selectedData, isNeat);
|
|
6349
|
+
var copiedData = {
|
|
6350
|
+
'text/plain': textString,
|
|
6351
|
+
'text/html': htmlString,
|
|
6352
|
+
'text/csv': textString,
|
|
6353
|
+
'application/json': JSON.stringify(selectedData)
|
|
6354
|
+
};
|
|
6355
|
+
|
|
6356
|
+
for (var _i2 = 0, _Object$entries = Object.entries(copiedData); _i2 < _Object$entries.length; _i2++) {
|
|
6357
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),
|
|
6358
|
+
mimeType = _Object$entries$_i[0],
|
|
6359
|
+
data = _Object$entries$_i[1];
|
|
6360
|
+
|
|
6361
|
+
clipboardData.setData(mimeType, data);
|
|
6362
|
+
}
|
|
6363
|
+
}
|
|
6364
|
+
};
|
|
6365
|
+
|
|
6366
|
+
self.clearSelectedCells = function () {
|
|
6367
|
+
var schema = self.getSchema();
|
|
6368
|
+
var affectedCells = [];
|
|
6369
|
+
|
|
6370
|
+
var _iterator5 = _createForOfIteratorHelper(self.selections.entries()),
|
|
6371
|
+
_step5;
|
|
6372
|
+
|
|
6373
|
+
try {
|
|
6374
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
6375
|
+
var _step5$value = _slicedToArray(_step5.value, 2),
|
|
6376
|
+
rowIndex = _step5$value[0],
|
|
6377
|
+
row = _step5$value[1];
|
|
6378
|
+
|
|
6379
|
+
// If no cells are selected for a particular rowIndex the selections array will contain an empty element for that rowIndex.
|
|
6380
|
+
if (!row) continue;
|
|
6381
|
+
var boundRowIndex = self.getBoundRowIndexFromViewRowIndex(rowIndex);
|
|
6382
|
+
|
|
6383
|
+
var _iterator6 = _createForOfIteratorHelper(row),
|
|
6384
|
+
_step6;
|
|
6385
|
+
|
|
6386
|
+
try {
|
|
6387
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
6388
|
+
var columnIndex = _step6.value;
|
|
6389
|
+
// If the whole row is selected the columnIndex for the rowHeader is -1.
|
|
6390
|
+
if (columnIndex < 0) continue;
|
|
6391
|
+
var boundColumnIndex = self.getBoundColumnIndexFromViewColumnIndex(columnIndex);
|
|
6392
|
+
var columnName = schema[boundColumnIndex].name;
|
|
6393
|
+
self.viewData[boundRowIndex][columnName] = '';
|
|
6394
|
+
affectedCells.push([rowIndex, columnIndex, boundRowIndex, boundColumnIndex]);
|
|
6395
|
+
}
|
|
6396
|
+
} catch (err) {
|
|
6397
|
+
_iterator6.e(err);
|
|
6398
|
+
} finally {
|
|
6399
|
+
_iterator6.f();
|
|
6400
|
+
}
|
|
6401
|
+
}
|
|
6402
|
+
} catch (err) {
|
|
6403
|
+
_iterator5.e(err);
|
|
6404
|
+
} finally {
|
|
6405
|
+
_iterator5.f();
|
|
6406
|
+
}
|
|
6407
|
+
|
|
6370
6408
|
return affectedCells;
|
|
6371
6409
|
};
|
|
6372
6410
|
|
|
@@ -6446,6 +6484,30 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6446
6484
|
self.orders.rows = fillArray(0, self.originalData.length - 1);
|
|
6447
6485
|
};
|
|
6448
6486
|
|
|
6487
|
+
self.fitSelectedColumns = function () {
|
|
6488
|
+
var selectedColumns = self.selections[0];
|
|
6489
|
+
var schema = self.getSchema();
|
|
6490
|
+
|
|
6491
|
+
var _iterator7 = _createForOfIteratorHelper(selectedColumns),
|
|
6492
|
+
_step7;
|
|
6493
|
+
|
|
6494
|
+
try {
|
|
6495
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
6496
|
+
var selectedColumn = _step7.value;
|
|
6497
|
+
|
|
6498
|
+
// Make sure the column is not the row header and that the whole column has in fact been selected.
|
|
6499
|
+
if (selectedColumn >= 0 && self.isColumnSelected(selectedColumn)) {
|
|
6500
|
+
var column = schema[self.orders.columns[selectedColumn]];
|
|
6501
|
+
self.fitColumnToValues(column.name);
|
|
6502
|
+
}
|
|
6503
|
+
}
|
|
6504
|
+
} catch (err) {
|
|
6505
|
+
_iterator7.e(err);
|
|
6506
|
+
} finally {
|
|
6507
|
+
_iterator7.f();
|
|
6508
|
+
}
|
|
6509
|
+
};
|
|
6510
|
+
|
|
6449
6511
|
self.getVisibleSchema = function () {
|
|
6450
6512
|
return self.getSchema().filter(function (col) {
|
|
6451
6513
|
return !col.hidden;
|
|
@@ -6512,9 +6574,9 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6512
6574
|
}); // Apply filtering
|
|
6513
6575
|
|
|
6514
6576
|
var _loop = function _loop() {
|
|
6515
|
-
var _Object$
|
|
6516
|
-
headerName = _Object$
|
|
6517
|
-
filterText = _Object$
|
|
6577
|
+
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i3], 2),
|
|
6578
|
+
headerName = _Object$entries2$_i[0],
|
|
6579
|
+
filterText = _Object$entries2$_i[1];
|
|
6518
6580
|
|
|
6519
6581
|
var header = self.getHeaderByName(headerName);
|
|
6520
6582
|
|
|
@@ -6533,19 +6595,19 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6533
6595
|
});
|
|
6534
6596
|
};
|
|
6535
6597
|
|
|
6536
|
-
for (var
|
|
6598
|
+
for (var _i3 = 0, _Object$entries2 = Object.entries(self.columnFilters); _i3 < _Object$entries2.length; _i3++) {
|
|
6537
6599
|
var _ret = _loop();
|
|
6538
6600
|
|
|
6539
6601
|
if (_ret === "continue") continue;
|
|
6540
6602
|
} // Apply sorting
|
|
6541
6603
|
|
|
6542
6604
|
|
|
6543
|
-
var
|
|
6544
|
-
|
|
6605
|
+
var _iterator8 = _createForOfIteratorHelper(self.orderings.columns),
|
|
6606
|
+
_step8;
|
|
6545
6607
|
|
|
6546
6608
|
try {
|
|
6547
6609
|
var _loop2 = function _loop2() {
|
|
6548
|
-
var column =
|
|
6610
|
+
var column = _step8.value;
|
|
6549
6611
|
var sortFn = column.sortFunction(column.orderBy, column.orderDirection);
|
|
6550
6612
|
newViewData.sort(function (_ref7, _ref8) {
|
|
6551
6613
|
var _ref9 = _slicedToArray(_ref7, 1),
|
|
@@ -6560,13 +6622,13 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6560
6622
|
});
|
|
6561
6623
|
};
|
|
6562
6624
|
|
|
6563
|
-
for (
|
|
6625
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
6564
6626
|
_loop2();
|
|
6565
6627
|
}
|
|
6566
6628
|
} catch (err) {
|
|
6567
|
-
|
|
6629
|
+
_iterator8.e(err);
|
|
6568
6630
|
} finally {
|
|
6569
|
-
|
|
6631
|
+
_iterator8.f();
|
|
6570
6632
|
}
|
|
6571
6633
|
|
|
6572
6634
|
return {
|