handsontable 12.3.1-next-83e8a23-20230111 → 12.3.1-next-8792e1c-20230202
Sign up to get free protection for your applications and to get access to all the features.
- package/3rdparty/walkontable/src/overlays.js +20 -2
- package/3rdparty/walkontable/src/overlays.mjs +20 -2
- package/3rdparty/walkontable/src/table.js +33 -6
- package/3rdparty/walkontable/src/table.mjs +33 -6
- package/CHANGELOG.md +9 -7
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.js +6 -0
- package/core.mjs +6 -0
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +1249 -1118
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +91 -91
- package/dist/handsontable.js +958 -827
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +3 -3
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/package.json +1 -1
- package/plugins/mergeCells/calculations/autofill.js +3 -0
- package/plugins/mergeCells/calculations/autofill.mjs +3 -0
- package/plugins/mergeCells/mergeCells.js +108 -35
- package/plugins/mergeCells/mergeCells.mjs +108 -35
- package/shortcuts/manager.js +9 -0
- package/shortcuts/manager.mjs +9 -0
- package/shortcuts/recorder.js +3 -0
- package/shortcuts/recorder.mjs +3 -0
package/helpers/mixed.js
CHANGED
@@ -152,7 +152,7 @@ var domMessages = {
|
|
152
152
|
function _injectProductInfo(key, element) {
|
153
153
|
var hasValidType = !isEmpty(key);
|
154
154
|
var isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
155
|
-
var hotVersion = "12.3.1-next-
|
155
|
+
var hotVersion = "12.3.1-next-8792e1c-20230202";
|
156
156
|
var keyValidityDate;
|
157
157
|
var consoleMessageState = 'invalid';
|
158
158
|
var domMessageState = 'invalid';
|
@@ -160,7 +160,7 @@ function _injectProductInfo(key, element) {
|
|
160
160
|
var schemaValidity = _checkKeySchema(key);
|
161
161
|
if (hasValidType || isNonCommercial || schemaValidity) {
|
162
162
|
if (schemaValidity) {
|
163
|
-
var releaseDate = (0, _moment.default)("
|
163
|
+
var releaseDate = (0, _moment.default)("06/02/2023", 'DD/MM/YYYY');
|
164
164
|
var releaseDays = Math.floor(releaseDate.toDate().getTime() / 8.64e7);
|
165
165
|
var keyValidityDays = _extractTime(key);
|
166
166
|
keyValidityDate = (0, _moment.default)((keyValidityDays + 1) * 8.64e7, 'x').format('MMMM DD, YYYY');
|
package/helpers/mixed.mjs
CHANGED
@@ -142,7 +142,7 @@ var domMessages = {
|
|
142
142
|
export function _injectProductInfo(key, element) {
|
143
143
|
var hasValidType = !isEmpty(key);
|
144
144
|
var isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
145
|
-
var hotVersion = "12.3.1-next-
|
145
|
+
var hotVersion = "12.3.1-next-8792e1c-20230202";
|
146
146
|
var keyValidityDate;
|
147
147
|
var consoleMessageState = 'invalid';
|
148
148
|
var domMessageState = 'invalid';
|
@@ -150,7 +150,7 @@ export function _injectProductInfo(key, element) {
|
|
150
150
|
var schemaValidity = _checkKeySchema(key);
|
151
151
|
if (hasValidType || isNonCommercial || schemaValidity) {
|
152
152
|
if (schemaValidity) {
|
153
|
-
var releaseDate = moment("
|
153
|
+
var releaseDate = moment("06/02/2023", 'DD/MM/YYYY');
|
154
154
|
var releaseDays = Math.floor(releaseDate.toDate().getTime() / 8.64e7);
|
155
155
|
var keyValidityDays = _extractTime(key);
|
156
156
|
keyValidityDate = moment((keyValidityDays + 1) * 8.64e7, 'x').format('MMMM DD, YYYY');
|
package/package.json
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
"url": "https://github.com/handsontable/handsontable/issues"
|
11
11
|
},
|
12
12
|
"author": "Handsoncode <hello@handsontable.com>",
|
13
|
-
"version": "12.3.1-next-
|
13
|
+
"version": "12.3.1-next-8792e1c-20230202",
|
14
14
|
"main": "index",
|
15
15
|
"module": "index.mjs",
|
16
16
|
"jsnext:main": "index.mjs",
|
@@ -392,6 +392,9 @@ var AutofillCalculations = /*#__PURE__*/function () {
|
|
392
392
|
} while (inBounds(current, fillOffset));
|
393
393
|
this.currentFillData = null;
|
394
394
|
this.plugin.hot.render();
|
395
|
+
if (foundMergedCells.length > 0) {
|
396
|
+
this.plugin.ifChromeForceRepaint();
|
397
|
+
}
|
395
398
|
}
|
396
399
|
|
397
400
|
/**
|
@@ -388,6 +388,9 @@ var AutofillCalculations = /*#__PURE__*/function () {
|
|
388
388
|
} while (inBounds(current, fillOffset));
|
389
389
|
this.currentFillData = null;
|
390
390
|
this.plugin.hot.render();
|
391
|
+
if (foundMergedCells.length > 0) {
|
392
|
+
this.plugin.ifChromeForceRepaint();
|
393
|
+
}
|
391
394
|
}
|
392
395
|
|
393
396
|
/**
|
@@ -12,10 +12,8 @@ require("core-js/modules/es.symbol.js");
|
|
12
12
|
require("core-js/modules/es.symbol.description.js");
|
13
13
|
require("core-js/modules/es.number.constructor.js");
|
14
14
|
require("core-js/modules/es.symbol.iterator.js");
|
15
|
-
require("core-js/modules/es.array.slice.js");
|
16
|
-
require("core-js/modules/es.function.name.js");
|
17
15
|
require("core-js/modules/es.array.from.js");
|
18
|
-
require("core-js/modules/es.
|
16
|
+
require("core-js/modules/es.array.slice.js");
|
19
17
|
exports.__esModule = true;
|
20
18
|
exports.PLUGIN_PRIORITY = exports.PLUGIN_KEY = exports.MergeCells = void 0;
|
21
19
|
require("core-js/modules/es.array.iterator.js");
|
@@ -23,6 +21,12 @@ require("core-js/modules/es.object.to-string.js");
|
|
23
21
|
require("core-js/modules/es.string.iterator.js");
|
24
22
|
require("core-js/modules/es.weak-map.js");
|
25
23
|
require("core-js/modules/web.dom-collections.iterator.js");
|
24
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
25
|
+
require("core-js/modules/es.set.js");
|
26
|
+
require("core-js/modules/es.array.map.js");
|
27
|
+
require("core-js/modules/es.function.name.js");
|
28
|
+
require("core-js/modules/es.regexp.exec.js");
|
29
|
+
require("core-js/modules/es.string.replace.js");
|
26
30
|
require("core-js/modules/es.array.includes.js");
|
27
31
|
require("core-js/modules/es.string.includes.js");
|
28
32
|
var _base = require("../base");
|
@@ -37,13 +41,19 @@ var _object = require("../../helpers/object");
|
|
37
41
|
var _console = require("../../helpers/console");
|
38
42
|
var _number = require("../../helpers/number");
|
39
43
|
var _utils = require("./utils");
|
44
|
+
var _element = require("../../helpers/dom/element");
|
45
|
+
var _browser = require("../../helpers/browser");
|
40
46
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
41
47
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
42
48
|
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."); }
|
43
|
-
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); }
|
44
|
-
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; }
|
45
49
|
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; } }
|
46
50
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
51
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
52
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
53
|
+
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); }
|
54
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
55
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
56
|
+
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; }
|
47
57
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
48
58
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
49
59
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
@@ -259,7 +269,8 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
259
269
|
/**
|
260
270
|
* Updates the plugin's state.
|
261
271
|
*
|
262
|
-
* This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the
|
272
|
+
* This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the
|
273
|
+
* following configuration options:
|
263
274
|
* - [`mergeCells`](@/api/options.md#mergecells)
|
264
275
|
*/
|
265
276
|
}, {
|
@@ -272,6 +283,56 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
272
283
|
_get(_getPrototypeOf(MergeCells.prototype), "updatePlugin", this).call(this);
|
273
284
|
}
|
274
285
|
|
286
|
+
/**
|
287
|
+
* If the browser is recognized as Chrome, force an additional repaint to prevent showing the effects of a Chrome bug.
|
288
|
+
*
|
289
|
+
* Issue described in https://github.com/handsontable/dev-handsontable/issues/521.
|
290
|
+
*
|
291
|
+
* @private
|
292
|
+
*/
|
293
|
+
}, {
|
294
|
+
key: "ifChromeForceRepaint",
|
295
|
+
value: function ifChromeForceRepaint() {
|
296
|
+
var _this3 = this;
|
297
|
+
if (!(0, _browser.isChrome)()) {
|
298
|
+
return;
|
299
|
+
}
|
300
|
+
var rowsToRefresh = [];
|
301
|
+
var rowIndexesToRefresh = [];
|
302
|
+
this.mergedCellsCollection.mergedCells.forEach(function (mergedCell) {
|
303
|
+
var row = mergedCell.row,
|
304
|
+
rowspan = mergedCell.rowspan;
|
305
|
+
for (var r = row + 1; r < row + rowspan; r++) {
|
306
|
+
rowIndexesToRefresh.push(r);
|
307
|
+
}
|
308
|
+
});
|
309
|
+
|
310
|
+
// Remove duplicates
|
311
|
+
rowIndexesToRefresh = _toConsumableArray(new Set(rowIndexesToRefresh));
|
312
|
+
rowIndexesToRefresh.forEach(function (rowIndex) {
|
313
|
+
var renderableRowIndex = _this3.hot.rowIndexMapper.getRenderableFromVisualIndex(rowIndex);
|
314
|
+
_this3.hot.view._wt.wtOverlays.getOverlays(true).map(function (overlay) {
|
315
|
+
return (overlay === null || overlay === void 0 ? void 0 : overlay.name) === 'master' ? overlay : overlay.clone.wtTable;
|
316
|
+
}).forEach(function (wtTableRef) {
|
317
|
+
var rowToRefresh = wtTableRef.getRow(renderableRowIndex);
|
318
|
+
if (rowToRefresh) {
|
319
|
+
// Modify the TR's `background` property to later modify it asynchronously.
|
320
|
+
// The background color is getting modified only with the alpha, so the change should not be visible (and is
|
321
|
+
// covered by the TDs' background color).
|
322
|
+
rowToRefresh.style.background = (0, _element.getStyle)(rowToRefresh, 'backgroundColor').replace(')', ', 0.99)');
|
323
|
+
rowsToRefresh.push(rowToRefresh);
|
324
|
+
}
|
325
|
+
});
|
326
|
+
});
|
327
|
+
|
328
|
+
// Asynchronously revert the TRs' `background` property to force a fresh repaint.
|
329
|
+
this.hot._registerTimeout(function () {
|
330
|
+
rowsToRefresh.forEach(function (rowElement) {
|
331
|
+
rowElement.style.background = (0, _element.getStyle)(rowElement, 'backgroundColor').replace(', 0.99)', ')');
|
332
|
+
});
|
333
|
+
}, 1);
|
334
|
+
}
|
335
|
+
|
275
336
|
/**
|
276
337
|
* Validates a single setting object, represented by a single merged cell information object.
|
277
338
|
*
|
@@ -311,19 +372,19 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
311
372
|
}, {
|
312
373
|
key: "generateFromSettings",
|
313
374
|
value: function generateFromSettings(settings) {
|
314
|
-
var
|
375
|
+
var _this4 = this;
|
315
376
|
if (Array.isArray(settings)) {
|
316
377
|
var populatedNulls = [];
|
317
378
|
(0, _array.arrayEach)(settings, function (setting) {
|
318
|
-
if (!
|
379
|
+
if (!_this4.validateSetting(setting)) {
|
319
380
|
return;
|
320
381
|
}
|
321
|
-
var highlight =
|
322
|
-
var rangeEnd =
|
323
|
-
var mergeRange =
|
382
|
+
var highlight = _this4.hot._createCellCoords(setting.row, setting.col);
|
383
|
+
var rangeEnd = _this4.hot._createCellCoords(setting.row + setting.rowspan - 1, setting.col + setting.colspan - 1);
|
384
|
+
var mergeRange = _this4.hot._createCellRange(highlight, highlight, rangeEnd);
|
324
385
|
|
325
386
|
// Merging without data population.
|
326
|
-
|
387
|
+
_this4.mergeRange(mergeRange, true, true);
|
327
388
|
(0, _number.rangeEach)(setting.row, setting.row + setting.rowspan - 1, function (rowIndex) {
|
328
389
|
(0, _number.rangeEach)(setting.col, setting.col + setting.colspan - 1, function (columnIndex) {
|
329
390
|
// Not resetting a cell representing a merge area's value.
|
@@ -429,15 +490,17 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
429
490
|
* @private
|
430
491
|
* @param {CellRange} cellRange Cell range to merge.
|
431
492
|
* @param {boolean} [auto=false] `true` if is called automatically, e.g. At initialization.
|
432
|
-
* @param {boolean} [preventPopulation=false] `true`, if the method should not run `populateFromArray` at the end,
|
433
|
-
*
|
493
|
+
* @param {boolean} [preventPopulation=false] `true`, if the method should not run `populateFromArray` at the end,
|
494
|
+
* but rather return its arguments.
|
495
|
+
* @returns {Array|boolean} Returns an array of [row, column, dataUnderCollection] if preventPopulation is set to
|
496
|
+
* true. If the the merging process went successful, it returns `true`, otherwise - `false`.
|
434
497
|
* @fires Hooks#beforeMergeCells
|
435
498
|
* @fires Hooks#afterMergeCells
|
436
499
|
*/
|
437
500
|
}, {
|
438
501
|
key: "mergeRange",
|
439
502
|
value: function mergeRange(cellRange) {
|
440
|
-
var
|
503
|
+
var _this5 = this;
|
441
504
|
var auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
442
505
|
var preventPopulation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
443
506
|
var topStart = cellRange.getTopStartCorner();
|
@@ -461,9 +524,9 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
461
524
|
clearedData[i] = [];
|
462
525
|
}
|
463
526
|
if (i === 0 && j === 0) {
|
464
|
-
clearedValue =
|
527
|
+
clearedValue = _this5.hot.getSourceDataAtCell(_this5.hot.toPhysicalRow(mergeParent.row), _this5.hot.toPhysicalColumn(mergeParent.col));
|
465
528
|
} else {
|
466
|
-
|
529
|
+
_this5.hot.setCellMeta(mergeParent.row + i, mergeParent.col + j, 'hidden', true);
|
467
530
|
}
|
468
531
|
clearedData[i][j] = clearedValue;
|
469
532
|
});
|
@@ -476,6 +539,9 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
476
539
|
} else {
|
477
540
|
this.hot.populateFromArray(mergeParent.row, mergeParent.col, clearedData, void 0, void 0, this.pluginName);
|
478
541
|
}
|
542
|
+
if (!auto) {
|
543
|
+
this.ifChromeForceRepaint();
|
544
|
+
}
|
479
545
|
this.hot.runHooks('afterMergeCells', cellRange, mergeParent, auto);
|
480
546
|
return populationInfo;
|
481
547
|
}
|
@@ -495,7 +561,7 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
495
561
|
}, {
|
496
562
|
key: "unmergeRange",
|
497
563
|
value: function unmergeRange(cellRange) {
|
498
|
-
var
|
564
|
+
var _this6 = this;
|
499
565
|
var auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
500
566
|
var mergedCells = this.mergedCellsCollection.getWithinRange(cellRange);
|
501
567
|
if (!mergedCells) {
|
@@ -503,13 +569,13 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
503
569
|
}
|
504
570
|
this.hot.runHooks('beforeUnmergeCells', cellRange, auto);
|
505
571
|
(0, _array.arrayEach)(mergedCells, function (currentCollection) {
|
506
|
-
|
572
|
+
_this6.mergedCellsCollection.remove(currentCollection.row, currentCollection.col);
|
507
573
|
(0, _number.rangeEach)(0, currentCollection.rowspan - 1, function (i) {
|
508
574
|
(0, _number.rangeEach)(0, currentCollection.colspan - 1, function (j) {
|
509
|
-
|
575
|
+
_this6.hot.removeCellMeta(currentCollection.row + i, currentCollection.col + j, 'hidden');
|
510
576
|
});
|
511
577
|
});
|
512
|
-
|
578
|
+
_this6.hot.removeCellMeta(currentCollection.row, currentCollection.col, 'spanned');
|
513
579
|
});
|
514
580
|
this.hot.runHooks('afterUnmergeCells', cellRange, auto);
|
515
581
|
this.hot.render();
|
@@ -589,14 +655,14 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
589
655
|
}, {
|
590
656
|
key: "registerShortcuts",
|
591
657
|
value: function registerShortcuts() {
|
592
|
-
var
|
658
|
+
var _this7 = this;
|
593
659
|
var shortcutManager = this.hot.getShortcutManager();
|
594
660
|
var gridContext = shortcutManager.getContext('grid');
|
595
661
|
gridContext.addShortcut({
|
596
662
|
keys: [['Control', 'm']],
|
597
663
|
callback: function callback() {
|
598
|
-
|
599
|
-
|
664
|
+
_this7.toggleMerge(_this7.hot.getSelectedRangeLast());
|
665
|
+
_this7.hot.render();
|
600
666
|
},
|
601
667
|
runOnlyIf: function runOnlyIf(event) {
|
602
668
|
return !event.altKey;
|
@@ -620,7 +686,8 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
620
686
|
}
|
621
687
|
|
622
688
|
/**
|
623
|
-
* Modifies the information on whether the current selection contains multiple cells. The `afterIsMultipleSelection`
|
689
|
+
* Modifies the information on whether the current selection contains multiple cells. The `afterIsMultipleSelection`
|
690
|
+
* hook callback.
|
624
691
|
*
|
625
692
|
* @private
|
626
693
|
* @param {boolean} isMultiple Determines whether the current selection contains multiple cells.
|
@@ -716,7 +783,7 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
716
783
|
}, {
|
717
784
|
key: "onModifyTransformEnd",
|
718
785
|
value: function onModifyTransformEnd(delta) {
|
719
|
-
var
|
786
|
+
var _this8 = this;
|
720
787
|
var currentSelectionRange = this.hot.getSelectedRangeLast();
|
721
788
|
var newDelta = (0, _object.clone)(delta);
|
722
789
|
var newSelectionRange = this.selectionCalculations.getUpdatedSelectionRange(currentSelectionRange, delta);
|
@@ -726,7 +793,7 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
726
793
|
tempDelta = (0, _object.clone)(newDelta);
|
727
794
|
this.selectionCalculations.getUpdatedSelectionRange(currentSelectionRange, newDelta);
|
728
795
|
(0, _array.arrayEach)(mergedCellsWithinRange, function (mergedCell) {
|
729
|
-
|
796
|
+
_this8.selectionCalculations.snapDelta(newDelta, currentSelectionRange, mergedCell);
|
730
797
|
});
|
731
798
|
} while (newDelta.row !== tempDelta.row || newDelta.col !== tempDelta.col);
|
732
799
|
delta.row = newDelta.row;
|
@@ -844,7 +911,8 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
844
911
|
|
845
912
|
/**
|
846
913
|
* `beforeSetRangeEnd` hook callback.
|
847
|
-
* While selecting cells with keyboard or mouse, make sure that rectangular area is expanded to the extent of the
|
914
|
+
* While selecting cells with keyboard or mouse, make sure that rectangular area is expanded to the extent of the
|
915
|
+
* merged cell.
|
848
916
|
*
|
849
917
|
* Note: Please keep in mind that callback may modify both start and end range coordinates by the reference.
|
850
918
|
*
|
@@ -1216,13 +1284,15 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1216
1284
|
}
|
1217
1285
|
|
1218
1286
|
/**
|
1219
|
-
* `afterModifyTransformStart` hook callback. Fixes a problem with navigating through merged cells at the edges of
|
1220
|
-
* with the ENTER/SHIFT+ENTER/TAB/SHIFT+TAB keys.
|
1287
|
+
* `afterModifyTransformStart` hook callback. Fixes a problem with navigating through merged cells at the edges of
|
1288
|
+
* the table with the ENTER/SHIFT+ENTER/TAB/SHIFT+TAB keys.
|
1221
1289
|
*
|
1222
1290
|
* @private
|
1223
1291
|
* @param {CellCoords} coords Coordinates of the to-be-selected cell.
|
1224
|
-
* @param {number} rowTransformDir Row transformation direction (negative value = up, 0 = none, positive value =
|
1225
|
-
*
|
1292
|
+
* @param {number} rowTransformDir Row transformation direction (negative value = up, 0 = none, positive value =
|
1293
|
+
* down).
|
1294
|
+
* @param {number} colTransformDir Column transformation direction (negative value = up, 0 = none, positive value =
|
1295
|
+
* down).
|
1226
1296
|
*/
|
1227
1297
|
}, {
|
1228
1298
|
key: "onAfterModifyTransformStart",
|
@@ -1254,9 +1324,11 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1254
1324
|
* @private
|
1255
1325
|
* @param {number} currentRow Visual row index of the currently processed cell.
|
1256
1326
|
* @param {number} currentColumn Visual column index of the currently cell.
|
1257
|
-
* @param {Array} cornersOfSelection Array of the current selection in a form of `[startRow, startColumn, endRow,
|
1327
|
+
* @param {Array} cornersOfSelection Array of the current selection in a form of `[startRow, startColumn, endRow,
|
1328
|
+
* endColumn]`.
|
1258
1329
|
* @param {number|undefined} layerLevel Number indicating which layer of selection is currently processed.
|
1259
|
-
* @returns {string|undefined} A `String`, which will act as an additional `className` to be added to the currently
|
1330
|
+
* @returns {string|undefined} A `String`, which will act as an additional `className` to be added to the currently
|
1331
|
+
* processed cell.
|
1260
1332
|
*/
|
1261
1333
|
}, {
|
1262
1334
|
key: "onAfterDrawSelection",
|
@@ -1272,7 +1344,8 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1272
1344
|
* `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
|
1273
1345
|
*
|
1274
1346
|
* @private
|
1275
|
-
* @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from
|
1347
|
+
* @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from
|
1348
|
+
* all the cells in the table.
|
1276
1349
|
*/
|
1277
1350
|
}, {
|
1278
1351
|
key: "onBeforeRemoveCellClassNames",
|