handsontable 0.0.0-next-acb8c02-20230620 → 0.0.0-next-6d7bdba-20230620
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +2193 -2052
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +75 -75
- package/dist/handsontable.js +1985 -1844
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +4 -4
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/plugins/comments/comments.js +11 -4
- package/plugins/comments/comments.mjs +11 -4
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +80 -29
- package/plugins/contextMenu/contextMenu.mjs +81 -30
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
- package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
- package/plugins/contextMenu/utils.js +0 -16
- package/plugins/contextMenu/utils.mjs +0 -15
- package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
- package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
- package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
- package/plugins/customBorders/customBorders.js +7 -0
- package/plugins/customBorders/customBorders.mjs +7 -0
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +20 -10
- package/plugins/dropdownMenu/dropdownMenu.mjs +20 -10
- package/shortcuts/recorder.js +2 -2
- package/shortcuts/recorder.mjs +2 -2
- package/shortcuts/utils.js +21 -5
- package/shortcuts/utils.mjs +20 -4
@@ -36,6 +36,13 @@ export default function readOnlyItem() {
|
|
36
36
|
this.render();
|
37
37
|
},
|
38
38
|
disabled: function disabled() {
|
39
|
+
var range = this.getSelectedRangeLast();
|
40
|
+
if (!range) {
|
41
|
+
return true;
|
42
|
+
}
|
43
|
+
if (range.isSingleHeader()) {
|
44
|
+
return true;
|
45
|
+
}
|
39
46
|
if (this.selection.isSelectedByCorner()) {
|
40
47
|
return true;
|
41
48
|
}
|
@@ -18,8 +18,7 @@ require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
18
18
|
exports.__esModule = true;
|
19
19
|
exports.KEY = void 0;
|
20
20
|
exports.default = removeColumnItem;
|
21
|
-
var _utils = require("
|
22
|
-
var _utils2 = require("../../../selection/utils");
|
21
|
+
var _utils = require("../../../selection/utils");
|
23
22
|
var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
24
23
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
25
24
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
@@ -56,14 +55,17 @@ function removeColumnItem() {
|
|
56
55
|
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_REMOVE_COLUMN, pluralForm);
|
57
56
|
},
|
58
57
|
callback: function callback() {
|
59
|
-
this.alter('remove_col', (0,
|
58
|
+
this.alter('remove_col', (0, _utils.transformSelectionToColumnDistance)(this.getSelected()), null, 'ContextMenu.removeColumn');
|
60
59
|
},
|
61
60
|
disabled: function disabled() {
|
62
61
|
if (!this.isColumnModificationAllowed()) {
|
63
62
|
return true;
|
64
63
|
}
|
65
|
-
var
|
66
|
-
if (!
|
64
|
+
var range = this.getSelectedRangeLast();
|
65
|
+
if (!range) {
|
66
|
+
return true;
|
67
|
+
}
|
68
|
+
if (range.isSingleHeader() && range.highlight.col < 0) {
|
67
69
|
return true;
|
68
70
|
}
|
69
71
|
var totalColumns = this.countCols();
|
@@ -16,7 +16,6 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
16
16
|
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; }
|
17
17
|
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
18
18
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
19
|
-
import { getValidSelection } from "../utils.mjs";
|
20
19
|
import { transformSelectionToColumnDistance } from "../../../selection/utils.mjs";
|
21
20
|
import * as C from "../../../i18n/constants.mjs";
|
22
21
|
export var KEY = 'remove_col';
|
@@ -51,8 +50,11 @@ export default function removeColumnItem() {
|
|
51
50
|
if (!this.isColumnModificationAllowed()) {
|
52
51
|
return true;
|
53
52
|
}
|
54
|
-
var
|
55
|
-
if (!
|
53
|
+
var range = this.getSelectedRangeLast();
|
54
|
+
if (!range) {
|
55
|
+
return true;
|
56
|
+
}
|
57
|
+
if (range.isSingleHeader() && range.highlight.col < 0) {
|
56
58
|
return true;
|
57
59
|
}
|
58
60
|
var totalColumns = this.countCols();
|
@@ -18,8 +18,7 @@ require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
18
18
|
exports.__esModule = true;
|
19
19
|
exports.KEY = void 0;
|
20
20
|
exports.default = removeRowItem;
|
21
|
-
var _utils = require("
|
22
|
-
var _utils2 = require("../../../selection/utils");
|
21
|
+
var _utils = require("../../../selection/utils");
|
23
22
|
var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
24
23
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
25
24
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
@@ -58,11 +57,14 @@ function removeRowItem() {
|
|
58
57
|
callback: function callback() {
|
59
58
|
// TODO: Please keep in mind that below `1` may be improper. The table's way of work, before change `f1747b3912ea3b21fe423fd102ca94c87db81379` was restored.
|
60
59
|
// There is still problem when removing more than one row.
|
61
|
-
this.alter('remove_row', (0,
|
60
|
+
this.alter('remove_row', (0, _utils.transformSelectionToRowDistance)(this.getSelected()), 1, 'ContextMenu.removeRow');
|
62
61
|
},
|
63
62
|
disabled: function disabled() {
|
64
|
-
var
|
65
|
-
if (!
|
63
|
+
var range = this.getSelectedRangeLast();
|
64
|
+
if (!range) {
|
65
|
+
return true;
|
66
|
+
}
|
67
|
+
if (range.isSingleHeader() && range.highlight.row < 0) {
|
66
68
|
return true;
|
67
69
|
}
|
68
70
|
var totalRows = this.countRows();
|
@@ -16,7 +16,6 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
16
16
|
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; }
|
17
17
|
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
18
18
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
19
|
-
import { getValidSelection } from "../utils.mjs";
|
20
19
|
import { transformSelectionToRowDistance } from "../../../selection/utils.mjs";
|
21
20
|
import * as C from "../../../i18n/constants.mjs";
|
22
21
|
export var KEY = 'remove_row';
|
@@ -50,8 +49,11 @@ export default function removeRowItem() {
|
|
50
49
|
this.alter('remove_row', transformSelectionToRowDistance(this.getSelected()), 1, 'ContextMenu.removeRow');
|
51
50
|
},
|
52
51
|
disabled: function disabled() {
|
53
|
-
var
|
54
|
-
if (!
|
52
|
+
var range = this.getSelectedRangeLast();
|
53
|
+
if (!range) {
|
54
|
+
return true;
|
55
|
+
}
|
56
|
+
if (range.isSingleHeader() && range.highlight.row < 0) {
|
55
57
|
return true;
|
56
58
|
}
|
57
59
|
var totalRows = this.countRows();
|
@@ -13,7 +13,6 @@ require("core-js/modules/es.symbol.iterator.js");
|
|
13
13
|
exports.__esModule = true;
|
14
14
|
exports.KEY = void 0;
|
15
15
|
exports.default = rowAboveItem;
|
16
|
-
var _utils = require("../utils");
|
17
16
|
var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
18
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
19
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
@@ -34,8 +33,11 @@ function rowAboveItem() {
|
|
34
33
|
this.alter('insert_row_above', latestSelection.row, 1, 'ContextMenu.rowAbove');
|
35
34
|
},
|
36
35
|
disabled: function disabled() {
|
37
|
-
var
|
38
|
-
if (!
|
36
|
+
var range = this.getSelectedRangeLast();
|
37
|
+
if (!range) {
|
38
|
+
return true;
|
39
|
+
}
|
40
|
+
if (range.isSingleHeader() && range.highlight.row < 0) {
|
39
41
|
return true;
|
40
42
|
}
|
41
43
|
if (this.selection.isSelectedByCorner()) {
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import { getValidSelection } from "../utils.mjs";
|
2
1
|
import * as C from "../../../i18n/constants.mjs";
|
3
2
|
export var KEY = 'row_above';
|
4
3
|
|
@@ -16,8 +15,11 @@ export default function rowAboveItem() {
|
|
16
15
|
this.alter('insert_row_above', latestSelection.row, 1, 'ContextMenu.rowAbove');
|
17
16
|
},
|
18
17
|
disabled: function disabled() {
|
19
|
-
var
|
20
|
-
if (!
|
18
|
+
var range = this.getSelectedRangeLast();
|
19
|
+
if (!range) {
|
20
|
+
return true;
|
21
|
+
}
|
22
|
+
if (range.isSingleHeader() && range.highlight.row < 0) {
|
21
23
|
return true;
|
22
24
|
}
|
23
25
|
if (this.selection.isSelectedByCorner()) {
|
@@ -13,7 +13,6 @@ require("core-js/modules/es.symbol.iterator.js");
|
|
13
13
|
exports.__esModule = true;
|
14
14
|
exports.KEY = void 0;
|
15
15
|
exports.default = rowBelowItem;
|
16
|
-
var _utils = require("../utils");
|
17
16
|
var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
18
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
19
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
@@ -34,8 +33,11 @@ function rowBelowItem() {
|
|
34
33
|
this.alter('insert_row_below', latestSelection.row, 1, 'ContextMenu.rowBelow');
|
35
34
|
},
|
36
35
|
disabled: function disabled() {
|
37
|
-
var
|
38
|
-
if (!
|
36
|
+
var range = this.getSelectedRangeLast();
|
37
|
+
if (!range) {
|
38
|
+
return true;
|
39
|
+
}
|
40
|
+
if (range.isSingleHeader() && range.highlight.row < 0) {
|
39
41
|
return true;
|
40
42
|
}
|
41
43
|
if (this.selection.isSelectedByCorner()) {
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import { getValidSelection } from "../utils.mjs";
|
2
1
|
import * as C from "../../../i18n/constants.mjs";
|
3
2
|
export var KEY = 'row_below';
|
4
3
|
|
@@ -16,8 +15,11 @@ export default function rowBelowItem() {
|
|
16
15
|
this.alter('insert_row_below', latestSelection.row, 1, 'ContextMenu.rowBelow');
|
17
16
|
},
|
18
17
|
disabled: function disabled() {
|
19
|
-
var
|
20
|
-
if (!
|
18
|
+
var range = this.getSelectedRangeLast();
|
19
|
+
if (!range) {
|
20
|
+
return true;
|
21
|
+
}
|
22
|
+
if (range.isSingleHeader() && range.highlight.row < 0) {
|
21
23
|
return true;
|
22
24
|
}
|
23
25
|
if (this.selection.isSelectedByCorner()) {
|
@@ -6,7 +6,6 @@ exports.checkSelectionConsistency = checkSelectionConsistency;
|
|
6
6
|
exports.filterSeparators = filterSeparators;
|
7
7
|
exports.getAlignmentClasses = getAlignmentClasses;
|
8
8
|
exports.getDocumentOffsetByElement = getDocumentOffsetByElement;
|
9
|
-
exports.getValidSelection = getValidSelection;
|
10
9
|
exports.hasSubMenu = hasSubMenu;
|
11
10
|
exports.isDisabled = isDisabled;
|
12
11
|
exports.isItemHidden = isItemHidden;
|
@@ -71,21 +70,6 @@ function isSelectionDisabled(cell) {
|
|
71
70
|
return (0, _element.hasClass)(cell, 'htSelectionDisabled');
|
72
71
|
}
|
73
72
|
|
74
|
-
/**
|
75
|
-
* @param {Core} hot The Handsontable instance.
|
76
|
-
* @returns {Array[]|null}
|
77
|
-
*/
|
78
|
-
function getValidSelection(hot) {
|
79
|
-
var selected = hot.getSelected();
|
80
|
-
if (!selected) {
|
81
|
-
return null;
|
82
|
-
}
|
83
|
-
if (selected[0] < 0) {
|
84
|
-
return null;
|
85
|
-
}
|
86
|
-
return selected;
|
87
|
-
}
|
88
|
-
|
89
73
|
/**
|
90
74
|
* @param {string} className The full element class name to process.
|
91
75
|
* @param {string} alignment The slignment class name to compare with.
|
@@ -53,21 +53,6 @@ export function isSelectionDisabled(cell) {
|
|
53
53
|
return hasClass(cell, 'htSelectionDisabled');
|
54
54
|
}
|
55
55
|
|
56
|
-
/**
|
57
|
-
* @param {Core} hot The Handsontable instance.
|
58
|
-
* @returns {Array[]|null}
|
59
|
-
*/
|
60
|
-
export function getValidSelection(hot) {
|
61
|
-
var selected = hot.getSelected();
|
62
|
-
if (!selected) {
|
63
|
-
return null;
|
64
|
-
}
|
65
|
-
if (selected[0] < 0) {
|
66
|
-
return null;
|
67
|
-
}
|
68
|
-
return selected;
|
69
|
-
}
|
70
|
-
|
71
56
|
/**
|
72
57
|
* @param {string} className The full element class name to process.
|
73
58
|
* @param {string} alignment The slignment class name to compare with.
|
@@ -20,6 +20,13 @@ function copyItem(copyPastePlugin) {
|
|
20
20
|
if (this.countRows() === 0 || this.countCols() === 0) {
|
21
21
|
return true;
|
22
22
|
}
|
23
|
+
var range = this.getSelectedRangeLast();
|
24
|
+
if (!range) {
|
25
|
+
return true;
|
26
|
+
}
|
27
|
+
if (range.isSingleHeader()) {
|
28
|
+
return true;
|
29
|
+
}
|
23
30
|
var selected = this.getSelected();
|
24
31
|
|
25
32
|
// Disable for no selection or for non-contiguous selection.
|
@@ -16,6 +16,13 @@ export default function copyItem(copyPastePlugin) {
|
|
16
16
|
if (this.countRows() === 0 || this.countCols() === 0) {
|
17
17
|
return true;
|
18
18
|
}
|
19
|
+
var range = this.getSelectedRangeLast();
|
20
|
+
if (!range) {
|
21
|
+
return true;
|
22
|
+
}
|
23
|
+
if (range.isSingleHeader()) {
|
24
|
+
return true;
|
25
|
+
}
|
19
26
|
var selected = this.getSelected();
|
20
27
|
|
21
28
|
// Disable for no selection or for non-contiguous selection.
|
@@ -3,6 +3,7 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.default = copyColumnHeadersOnlyItem;
|
5
5
|
var _constants = require("../../../i18n/constants");
|
6
|
+
var _number = require("../../../helpers/number");
|
6
7
|
/**
|
7
8
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
8
9
|
* @returns {object}
|
@@ -12,7 +13,7 @@ function copyColumnHeadersOnlyItem(copyPastePlugin) {
|
|
12
13
|
key: 'copy_column_headers_only',
|
13
14
|
name: function name() {
|
14
15
|
var selectedRange = this.getSelectedRangeLast();
|
15
|
-
var nounForm = selectedRange ?
|
16
|
+
var nounForm = selectedRange ? (0, _number.clamp)(selectedRange.getWidth() - 1, 0, 1) : 0;
|
16
17
|
return this.getTranslatedPhrase(_constants.CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY, nounForm);
|
17
18
|
},
|
18
19
|
callback: function callback() {
|
@@ -22,6 +23,13 @@ function copyColumnHeadersOnlyItem(copyPastePlugin) {
|
|
22
23
|
if (!this.hasColHeaders()) {
|
23
24
|
return true;
|
24
25
|
}
|
26
|
+
var range = this.getSelectedRangeLast();
|
27
|
+
if (!range) {
|
28
|
+
return true;
|
29
|
+
}
|
30
|
+
if (range.isSingleHeader()) {
|
31
|
+
return true;
|
32
|
+
}
|
25
33
|
var selected = this.getSelected();
|
26
34
|
|
27
35
|
// Disable for no selection or for non-contiguous selection.
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY } from "../../../i18n/constants.mjs";
|
2
|
+
import { clamp } from "../../../helpers/number.mjs";
|
2
3
|
/**
|
3
4
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
4
5
|
* @returns {object}
|
@@ -8,7 +9,7 @@ export default function copyColumnHeadersOnlyItem(copyPastePlugin) {
|
|
8
9
|
key: 'copy_column_headers_only',
|
9
10
|
name: function name() {
|
10
11
|
var selectedRange = this.getSelectedRangeLast();
|
11
|
-
var nounForm = selectedRange ?
|
12
|
+
var nounForm = selectedRange ? clamp(selectedRange.getWidth() - 1, 0, 1) : 0;
|
12
13
|
return this.getTranslatedPhrase(CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY, nounForm);
|
13
14
|
},
|
14
15
|
callback: function callback() {
|
@@ -18,6 +19,13 @@ export default function copyColumnHeadersOnlyItem(copyPastePlugin) {
|
|
18
19
|
if (!this.hasColHeaders()) {
|
19
20
|
return true;
|
20
21
|
}
|
22
|
+
var range = this.getSelectedRangeLast();
|
23
|
+
if (!range) {
|
24
|
+
return true;
|
25
|
+
}
|
26
|
+
if (range.isSingleHeader()) {
|
27
|
+
return true;
|
28
|
+
}
|
21
29
|
var selected = this.getSelected();
|
22
30
|
|
23
31
|
// Disable for no selection or for non-contiguous selection.
|
@@ -3,6 +3,7 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.default = copyWithColumnGroupHeadersItem;
|
5
5
|
var _constants = require("../../../i18n/constants");
|
6
|
+
var _number = require("../../../helpers/number");
|
6
7
|
/**
|
7
8
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
8
9
|
* @returns {object}
|
@@ -12,7 +13,7 @@ function copyWithColumnGroupHeadersItem(copyPastePlugin) {
|
|
12
13
|
key: 'copy_with_column_group_headers',
|
13
14
|
name: function name() {
|
14
15
|
var selectedRange = this.getSelectedRangeLast();
|
15
|
-
var nounForm = selectedRange ?
|
16
|
+
var nounForm = selectedRange ? (0, _number.clamp)(selectedRange.getWidth() - 1, 0, 1) : 0;
|
16
17
|
return this.getTranslatedPhrase(_constants.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS, nounForm);
|
17
18
|
},
|
18
19
|
callback: function callback() {
|
@@ -22,6 +23,13 @@ function copyWithColumnGroupHeadersItem(copyPastePlugin) {
|
|
22
23
|
if (!this.hasColHeaders() || !this.getSettings().nestedHeaders) {
|
23
24
|
return true;
|
24
25
|
}
|
26
|
+
var range = this.getSelectedRangeLast();
|
27
|
+
if (!range) {
|
28
|
+
return true;
|
29
|
+
}
|
30
|
+
if (range.isSingleHeader()) {
|
31
|
+
return true;
|
32
|
+
}
|
25
33
|
var selected = this.getSelected();
|
26
34
|
|
27
35
|
// Disable for no selection or for non-contiguous selection.
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS } from "../../../i18n/constants.mjs";
|
2
|
+
import { clamp } from "../../../helpers/number.mjs";
|
2
3
|
/**
|
3
4
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
4
5
|
* @returns {object}
|
@@ -8,7 +9,7 @@ export default function copyWithColumnGroupHeadersItem(copyPastePlugin) {
|
|
8
9
|
key: 'copy_with_column_group_headers',
|
9
10
|
name: function name() {
|
10
11
|
var selectedRange = this.getSelectedRangeLast();
|
11
|
-
var nounForm = selectedRange ?
|
12
|
+
var nounForm = selectedRange ? clamp(selectedRange.getWidth() - 1, 0, 1) : 0;
|
12
13
|
return this.getTranslatedPhrase(CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS, nounForm);
|
13
14
|
},
|
14
15
|
callback: function callback() {
|
@@ -18,6 +19,13 @@ export default function copyWithColumnGroupHeadersItem(copyPastePlugin) {
|
|
18
19
|
if (!this.hasColHeaders() || !this.getSettings().nestedHeaders) {
|
19
20
|
return true;
|
20
21
|
}
|
22
|
+
var range = this.getSelectedRangeLast();
|
23
|
+
if (!range) {
|
24
|
+
return true;
|
25
|
+
}
|
26
|
+
if (range.isSingleHeader()) {
|
27
|
+
return true;
|
28
|
+
}
|
21
29
|
var selected = this.getSelected();
|
22
30
|
|
23
31
|
// Disable for no selection or for non-contiguous selection.
|
@@ -3,6 +3,7 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.default = copyWithColumnHeadersItem;
|
5
5
|
var _constants = require("../../../i18n/constants");
|
6
|
+
var _number = require("../../../helpers/number");
|
6
7
|
/**
|
7
8
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
8
9
|
* @returns {object}
|
@@ -12,7 +13,7 @@ function copyWithColumnHeadersItem(copyPastePlugin) {
|
|
12
13
|
key: 'copy_with_column_headers',
|
13
14
|
name: function name() {
|
14
15
|
var selectedRange = this.getSelectedRangeLast();
|
15
|
-
var nounForm = selectedRange ?
|
16
|
+
var nounForm = selectedRange ? (0, _number.clamp)(selectedRange.getWidth() - 1, 0, 1) : 0;
|
16
17
|
return this.getTranslatedPhrase(_constants.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS, nounForm);
|
17
18
|
},
|
18
19
|
callback: function callback() {
|
@@ -22,6 +23,13 @@ function copyWithColumnHeadersItem(copyPastePlugin) {
|
|
22
23
|
if (!this.hasColHeaders()) {
|
23
24
|
return true;
|
24
25
|
}
|
26
|
+
var range = this.getSelectedRangeLast();
|
27
|
+
if (!range) {
|
28
|
+
return true;
|
29
|
+
}
|
30
|
+
if (range.isSingleHeader()) {
|
31
|
+
return true;
|
32
|
+
}
|
25
33
|
var selected = this.getSelected();
|
26
34
|
|
27
35
|
// Disable for no selection or for non-contiguous selection.
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS } from "../../../i18n/constants.mjs";
|
2
|
+
import { clamp } from "../../../helpers/number.mjs";
|
2
3
|
/**
|
3
4
|
* @param {CopyPaste} copyPastePlugin The plugin instance.
|
4
5
|
* @returns {object}
|
@@ -8,7 +9,7 @@ export default function copyWithColumnHeadersItem(copyPastePlugin) {
|
|
8
9
|
key: 'copy_with_column_headers',
|
9
10
|
name: function name() {
|
10
11
|
var selectedRange = this.getSelectedRangeLast();
|
11
|
-
var nounForm = selectedRange ?
|
12
|
+
var nounForm = selectedRange ? clamp(selectedRange.getWidth() - 1, 0, 1) : 0;
|
12
13
|
return this.getTranslatedPhrase(CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS, nounForm);
|
13
14
|
},
|
14
15
|
callback: function callback() {
|
@@ -18,6 +19,13 @@ export default function copyWithColumnHeadersItem(copyPastePlugin) {
|
|
18
19
|
if (!this.hasColHeaders()) {
|
19
20
|
return true;
|
20
21
|
}
|
22
|
+
var range = this.getSelectedRangeLast();
|
23
|
+
if (!range) {
|
24
|
+
return true;
|
25
|
+
}
|
26
|
+
if (range.isSingleHeader()) {
|
27
|
+
return true;
|
28
|
+
}
|
21
29
|
var selected = this.getSelected();
|
22
30
|
|
23
31
|
// Disable for no selection or for non-contiguous selection.
|
@@ -32,6 +32,13 @@ function cutItem(copyPastePlugin) {
|
|
32
32
|
if (this.countRows() === 0 || this.countCols() === 0) {
|
33
33
|
return true;
|
34
34
|
}
|
35
|
+
var range = this.getSelectedRangeLast();
|
36
|
+
if (!range) {
|
37
|
+
return true;
|
38
|
+
}
|
39
|
+
if (range.isSingleHeader()) {
|
40
|
+
return true;
|
41
|
+
}
|
35
42
|
var selected = this.getSelected();
|
36
43
|
|
37
44
|
// Disable for no selection or for non-contiquous selection.
|
@@ -16,6 +16,13 @@ export default function cutItem(copyPastePlugin) {
|
|
16
16
|
if (this.countRows() === 0 || this.countCols() === 0) {
|
17
17
|
return true;
|
18
18
|
}
|
19
|
+
var range = this.getSelectedRangeLast();
|
20
|
+
if (!range) {
|
21
|
+
return true;
|
22
|
+
}
|
23
|
+
if (range.isSingleHeader()) {
|
24
|
+
return true;
|
25
|
+
}
|
19
26
|
var selected = this.getSelected();
|
20
27
|
|
21
28
|
// Disable for no selection or for non-contiquous selection.
|
@@ -814,6 +814,13 @@ var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
814
814
|
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_BORDERS);
|
815
815
|
},
|
816
816
|
disabled: function disabled() {
|
817
|
+
var range = this.getSelectedRangeLast();
|
818
|
+
if (!range) {
|
819
|
+
return true;
|
820
|
+
}
|
821
|
+
if (range.isSingleHeader()) {
|
822
|
+
return true;
|
823
|
+
}
|
817
824
|
return this.selection.isSelectedByCorner();
|
818
825
|
},
|
819
826
|
submenu: {
|
@@ -805,6 +805,13 @@ export var CustomBorders = /*#__PURE__*/function (_BasePlugin) {
|
|
805
805
|
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_BORDERS);
|
806
806
|
},
|
807
807
|
disabled: function disabled() {
|
808
|
+
var range = this.getSelectedRangeLast();
|
809
|
+
if (!range) {
|
810
|
+
return true;
|
811
|
+
}
|
812
|
+
if (range.isSingleHeader()) {
|
813
|
+
return true;
|
814
|
+
}
|
808
815
|
return this.selection.isSelectedByCorner();
|
809
816
|
},
|
810
817
|
submenu: {
|
@@ -18,7 +18,7 @@ export class DropdownMenu extends BasePlugin {
|
|
18
18
|
|
19
19
|
constructor(hotInstance: Core);
|
20
20
|
isEnabled(): boolean;
|
21
|
-
open(
|
21
|
+
open(position: { left: number, top: number } | Event, offset?: { above?: number, below?: number, left?: number, right?: number }): void;
|
22
22
|
close(): void;
|
23
23
|
executeCommand(commandName: string, ...params: any): void;
|
24
24
|
}
|
@@ -22,6 +22,7 @@ require("core-js/modules/es.object.set-prototype-of.js");
|
|
22
22
|
require("core-js/modules/es.object.get-prototype-of.js");
|
23
23
|
var _base = require("../base");
|
24
24
|
var _array = require("../../helpers/array");
|
25
|
+
var _object = require("../../helpers/object");
|
25
26
|
var _commandExecutor = _interopRequireDefault(require("../contextMenu/commandExecutor"));
|
26
27
|
var _utils = require("../contextMenu/utils");
|
27
28
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
@@ -274,9 +275,9 @@ var DropdownMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
274
275
|
var rect = target.getBoundingClientRect();
|
275
276
|
_this3.open({
|
276
277
|
left: rect.left + offset.left,
|
277
|
-
top: rect.top + target.offsetHeight + offset.top
|
278
|
-
|
279
|
-
|
278
|
+
top: rect.top + target.offsetHeight + offset.top
|
279
|
+
}, {
|
280
|
+
left: rect.width
|
280
281
|
});
|
281
282
|
_this3.hot._registerTimeout(function () {
|
282
283
|
_this3.menu.selectFirstCell();
|
@@ -334,20 +335,29 @@ var DropdownMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
334
335
|
* which contains coordinates relative to the browsers viewport (without included scroll offsets).
|
335
336
|
* Or if the native event is passed the menu will be positioned based on the `pageX` and `pageY`
|
336
337
|
* coordinates.
|
338
|
+
* @param {{ above?: number, below?: number, left?: number, right?: number }} offset An object allows applying
|
339
|
+
* the offset to the menu position.
|
337
340
|
* @fires Hooks#beforeDropdownMenuShow
|
338
341
|
* @fires Hooks#afterDropdownMenuShow
|
339
342
|
*/
|
340
343
|
}, {
|
341
344
|
key: "open",
|
342
345
|
value: function open(position) {
|
343
|
-
var _this$menu
|
346
|
+
var _this$menu,
|
347
|
+
_this5 = this;
|
348
|
+
var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
349
|
+
above: 0,
|
350
|
+
below: 0,
|
351
|
+
left: 0,
|
352
|
+
right: 0
|
353
|
+
};
|
344
354
|
if ((_this$menu = this.menu) !== null && _this$menu !== void 0 && _this$menu.isOpened()) {
|
345
355
|
return;
|
346
356
|
}
|
347
357
|
this.menu.open();
|
348
|
-
|
349
|
-
|
350
|
-
}
|
358
|
+
(0, _object.objectEach)(offset, function (value, key) {
|
359
|
+
_this5.menu.setOffset(key, value);
|
360
|
+
});
|
351
361
|
this.menu.setPosition(position);
|
352
362
|
}
|
353
363
|
|
@@ -435,9 +445,9 @@ var DropdownMenu = /*#__PURE__*/function (_BasePlugin) {
|
|
435
445
|
var rect = event.target.getBoundingClientRect();
|
436
446
|
this.open({
|
437
447
|
left: rect.left + offset.left,
|
438
|
-
top: rect.top + event.target.offsetHeight + 3 + offset.top
|
439
|
-
|
440
|
-
|
448
|
+
top: rect.top + event.target.offsetHeight + 3 + offset.top
|
449
|
+
}, {
|
450
|
+
left: rect.width
|
441
451
|
});
|
442
452
|
}
|
443
453
|
}
|