handsontable 12.3.1-next-83e8a23-20230111 → 12.3.1-next-8792e1c-20230202
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/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",
|