handsontable 17.1.0-rc9 → 17.1.0
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 +6 -1
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.js +12 -5
- package/core.mjs +12 -5
- package/dist/handsontable.full.js +281 -126
- package/dist/handsontable.full.min.js +108 -108
- package/dist/handsontable.js +66 -27
- package/dist/handsontable.min.js +30 -30
- package/dist/languages/all.min.js +1 -1
- package/dist/themes/classic.js +2 -2
- package/dist/themes/classic.min.js +2 -2
- package/dist/themes/horizon.js +2 -2
- package/dist/themes/horizon.min.js +2 -2
- package/dist/themes/main.js +2 -2
- package/dist/themes/main.min.js +2 -2
- package/dist/themes/static/variables/colors/ant.js +2 -2
- package/dist/themes/static/variables/colors/ant.min.js +2 -2
- package/dist/themes/static/variables/colors/classic.js +2 -2
- package/dist/themes/static/variables/colors/classic.min.js +2 -2
- package/dist/themes/static/variables/colors/horizon.js +2 -2
- package/dist/themes/static/variables/colors/horizon.min.js +2 -2
- package/dist/themes/static/variables/colors/main.js +2 -2
- package/dist/themes/static/variables/colors/main.min.js +2 -2
- package/dist/themes/static/variables/colors/material.js +2 -2
- package/dist/themes/static/variables/colors/material.min.js +2 -2
- package/dist/themes/static/variables/colors/shadcn.js +2 -2
- package/dist/themes/static/variables/colors/shadcn.min.js +2 -2
- package/dist/themes/static/variables/density.js +2 -2
- package/dist/themes/static/variables/density.min.js +2 -2
- package/dist/themes/static/variables/helpers/iconsMap.js +2 -2
- package/dist/themes/static/variables/helpers/iconsMap.min.js +2 -2
- package/dist/themes/static/variables/icons/horizon.js +2 -2
- package/dist/themes/static/variables/icons/horizon.min.js +2 -2
- package/dist/themes/static/variables/icons/main.js +2 -2
- package/dist/themes/static/variables/icons/main.min.js +2 -2
- package/dist/themes/static/variables/sizing.js +2 -2
- package/dist/themes/static/variables/sizing.min.js +2 -2
- package/dist/themes/static/variables/tokens/classic.js +2 -2
- package/dist/themes/static/variables/tokens/classic.min.js +2 -2
- package/dist/themes/static/variables/tokens/horizon.js +2 -2
- package/dist/themes/static/variables/tokens/horizon.min.js +2 -2
- package/dist/themes/static/variables/tokens/main.js +2 -2
- package/dist/themes/static/variables/tokens/main.min.js +2 -2
- package/helpers/dom/element.js +2 -4
- package/helpers/dom/element.mjs +2 -4
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/plugins/dataProvider/query/pagination.js +6 -3
- package/plugins/dataProvider/query/pagination.mjs +17 -7
- package/plugins/emptyDataState/emptyDataState.js +1 -1
- package/plugins/emptyDataState/emptyDataState.mjs +1 -1
- package/plugins/pagination/pagination.d.ts +1 -0
- package/plugins/pagination/pagination.js +7 -0
- package/plugins/pagination/pagination.mjs +7 -0
- package/selection/mouseEventHandler.js +12 -2
- package/selection/mouseEventHandler.mjs +12 -2
- package/styles/handsontable.css +2 -2
- package/styles/handsontable.min.css +2 -2
- package/styles/handsontableStyles.js +1 -1
- package/styles/handsontableStyles.mjs +1 -1
- package/styles/ht-icons-horizon.min.css +2 -2
- package/styles/ht-icons-main.min.css +2 -2
- package/styles/ht-theme-classic-no-icons.min.css +2 -2
- package/styles/ht-theme-classic.min.css +2 -2
- package/styles/ht-theme-horizon-no-icons.min.css +2 -2
- package/styles/ht-theme-horizon.min.css +2 -2
- package/styles/ht-theme-main-no-icons.min.css +2 -2
- package/styles/ht-theme-main.min.css +2 -2
- package/themes/engine/manager.js +50 -2
- package/themes/engine/manager.mjs +50 -2
package/CHANGELOG.md
CHANGED
|
@@ -9,7 +9,7 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
9
9
|
|
|
10
10
|
<!-- UNVERSIONED -->
|
|
11
11
|
|
|
12
|
-
## [17.1.0
|
|
12
|
+
## [17.1.0] - 2026-05-19
|
|
13
13
|
|
|
14
14
|
### Added
|
|
15
15
|
- Added a hit area for dropdown menu and collapsible buttons [#12070](https://github.com/handsontable/handsontable/pull/12070)
|
|
@@ -78,6 +78,11 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
78
78
|
- Fixed one-pixel horizontal alignment for the left pagination caret [#2791](https://github.com/handsontable/handsontable/pull/2791)
|
|
79
79
|
- Fixed setDataAtRowProp interrupting edits in progress [#4305](https://github.com/handsontable/handsontable/issues/4305)
|
|
80
80
|
- React: Fixed the React wrapper skipping settings updates when `dataSchema` or `columns` contains non-plain objects such as `Date`, `Set`, or `Map`. [#12207](https://github.com/handsontable/handsontable/pull/12207)
|
|
81
|
+
- Fixed the loading overlay resetting the grid scroll position to the top when no cell was selected before showing the overlay. [#12514](https://github.com/handsontable/handsontable/issues/12514)
|
|
82
|
+
- Fixed a memory leak caused by ThemeManager not unsubscribing from the shared theme object on destroy. [#12570](https://github.com/handsontable/handsontable/issues/12570)
|
|
83
|
+
- Fixed viewport scroll jump when Ctrl+clicking a selected cell to deselect it. [#12574](https://github.com/handsontable/handsontable/issues/12574)
|
|
84
|
+
- Fixed a memory leak where IntersectionObserver instances were not properly disconnected when `document.body` had zero height. [#12578](https://github.com/handsontable/handsontable/issues/12578)
|
|
85
|
+
- Fixed the browser page scrolling to the grid when `dataProvider` loads rows for the first time into an empty grid with `emptyDataState` enabled. [#12591](https://github.com/handsontable/handsontable/issues/12591)
|
|
81
86
|
|
|
82
87
|
### Security
|
|
83
88
|
- Patched critical and high dependency vulnerabilities across the monorepo and aligned Angular wrapper tooling for compatibility. [#12237](https://github.com/handsontable/handsontable/issues/12237)
|
package/base.js
CHANGED
|
@@ -60,8 +60,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
|
|
|
60
60
|
Handsontable.CellCoords = _src.CellCoords;
|
|
61
61
|
Handsontable.CellRange = _src.CellRange;
|
|
62
62
|
Handsontable.packageName = 'handsontable';
|
|
63
|
-
Handsontable.buildDate = "
|
|
64
|
-
Handsontable.version = "17.1.0
|
|
63
|
+
Handsontable.buildDate = "19/05/2026 14:51:41";
|
|
64
|
+
Handsontable.version = "17.1.0";
|
|
65
65
|
Handsontable.languages = {
|
|
66
66
|
dictionaryKeys: _registry.dictionaryKeys,
|
|
67
67
|
getLanguageDictionary: _registry.getLanguageDictionary,
|
package/base.mjs
CHANGED
|
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
|
|
|
35
35
|
Handsontable.CellCoords = CellCoords;
|
|
36
36
|
Handsontable.CellRange = CellRange;
|
|
37
37
|
Handsontable.packageName = 'handsontable';
|
|
38
|
-
Handsontable.buildDate = "
|
|
39
|
-
Handsontable.version = "17.1.0
|
|
38
|
+
Handsontable.buildDate = "19/05/2026 14:51:41";
|
|
39
|
+
Handsontable.version = "17.1.0";
|
|
40
40
|
Handsontable.languages = {
|
|
41
41
|
dictionaryKeys,
|
|
42
42
|
getLanguageDictionary,
|
package/core.js
CHANGED
|
@@ -453,7 +453,9 @@ function Core(rootContainer, userSettings, rootInstanceSymbol = false) {
|
|
|
453
453
|
const selectionSource = selection.getSelectionSource();
|
|
454
454
|
const ignoreScrollSources = [
|
|
455
455
|
'loadData',
|
|
456
|
-
'updateData'
|
|
456
|
+
'updateData',
|
|
457
|
+
'deselect',
|
|
458
|
+
'shift'
|
|
457
459
|
];
|
|
458
460
|
if (isLastSelectionLayer && !ignoreScrollSources.includes(selectionSource) && (!preventScrolling.isTouched() || preventScrolling.isTouched() && !preventScrolling.value)) {
|
|
459
461
|
viewportScroller.scrollTo(cellCoords);
|
|
@@ -484,14 +486,16 @@ function Core(rootContainer, userSettings, rootInstanceSymbol = false) {
|
|
|
484
486
|
'shift',
|
|
485
487
|
'refresh',
|
|
486
488
|
'loadData',
|
|
487
|
-
'updateData'
|
|
489
|
+
'updateData',
|
|
490
|
+
'deselect'
|
|
488
491
|
].includes(selectionSource)) {
|
|
489
492
|
editorManager.closeEditor(null);
|
|
490
493
|
}
|
|
491
494
|
if (![
|
|
492
495
|
'refresh',
|
|
493
496
|
'loadData',
|
|
494
|
-
'updateData'
|
|
497
|
+
'updateData',
|
|
498
|
+
'deselect'
|
|
495
499
|
].includes(selectionSource)) {
|
|
496
500
|
instance.view.render();
|
|
497
501
|
editorManager.prepareEditor();
|
|
@@ -515,7 +519,10 @@ function Core(rootContainer, userSettings, rootInstanceSymbol = false) {
|
|
|
515
519
|
const { from, to } = cellRanges[selectionLayerLevel];
|
|
516
520
|
this.runHooks('afterSelectionEnd', from.row, from.col, to.row, to.col, selectionLayerLevel);
|
|
517
521
|
this.runHooks('afterSelectionEndByProp', from.row, instance.colToProp(from.col), to.row, instance.colToProp(to.col), selectionLayerLevel);
|
|
518
|
-
if (
|
|
522
|
+
if ([
|
|
523
|
+
'refresh',
|
|
524
|
+
'deselect'
|
|
525
|
+
].includes(selection.getSelectionSource())) {
|
|
519
526
|
instance.view.render();
|
|
520
527
|
editorManager.prepareEditor();
|
|
521
528
|
}
|
|
@@ -1081,7 +1088,7 @@ function Core(rootContainer, userSettings, rootInstanceSymbol = false) {
|
|
|
1081
1088
|
focusGridManager.init();
|
|
1082
1089
|
if ((0, _rootInstance.isRootInstance)(this)) {
|
|
1083
1090
|
(0, _a11yAnnouncer.install)(instance.rootPortalElement);
|
|
1084
|
-
(0, _mixed._injectProductInfo)(mergedUserSettings.licenseKey, this.rootWrapperElement, "
|
|
1091
|
+
(0, _mixed._injectProductInfo)(mergedUserSettings.licenseKey, this.rootWrapperElement, "19/05/2026");
|
|
1085
1092
|
}
|
|
1086
1093
|
instance.runHooks('init');
|
|
1087
1094
|
this.render();
|
package/core.mjs
CHANGED
|
@@ -438,7 +438,9 @@ const deprecationWarns = new Set();
|
|
|
438
438
|
const selectionSource = selection.getSelectionSource();
|
|
439
439
|
const ignoreScrollSources = [
|
|
440
440
|
'loadData',
|
|
441
|
-
'updateData'
|
|
441
|
+
'updateData',
|
|
442
|
+
'deselect',
|
|
443
|
+
'shift'
|
|
442
444
|
];
|
|
443
445
|
if (isLastSelectionLayer && !ignoreScrollSources.includes(selectionSource) && (!preventScrolling.isTouched() || preventScrolling.isTouched() && !preventScrolling.value)) {
|
|
444
446
|
viewportScroller.scrollTo(cellCoords);
|
|
@@ -469,14 +471,16 @@ const deprecationWarns = new Set();
|
|
|
469
471
|
'shift',
|
|
470
472
|
'refresh',
|
|
471
473
|
'loadData',
|
|
472
|
-
'updateData'
|
|
474
|
+
'updateData',
|
|
475
|
+
'deselect'
|
|
473
476
|
].includes(selectionSource)) {
|
|
474
477
|
editorManager.closeEditor(null);
|
|
475
478
|
}
|
|
476
479
|
if (![
|
|
477
480
|
'refresh',
|
|
478
481
|
'loadData',
|
|
479
|
-
'updateData'
|
|
482
|
+
'updateData',
|
|
483
|
+
'deselect'
|
|
480
484
|
].includes(selectionSource)) {
|
|
481
485
|
instance.view.render();
|
|
482
486
|
editorManager.prepareEditor();
|
|
@@ -500,7 +504,10 @@ const deprecationWarns = new Set();
|
|
|
500
504
|
const { from, to } = cellRanges[selectionLayerLevel];
|
|
501
505
|
this.runHooks('afterSelectionEnd', from.row, from.col, to.row, to.col, selectionLayerLevel);
|
|
502
506
|
this.runHooks('afterSelectionEndByProp', from.row, instance.colToProp(from.col), to.row, instance.colToProp(to.col), selectionLayerLevel);
|
|
503
|
-
if (
|
|
507
|
+
if ([
|
|
508
|
+
'refresh',
|
|
509
|
+
'deselect'
|
|
510
|
+
].includes(selection.getSelectionSource())) {
|
|
504
511
|
instance.view.render();
|
|
505
512
|
editorManager.prepareEditor();
|
|
506
513
|
}
|
|
@@ -1066,7 +1073,7 @@ const deprecationWarns = new Set();
|
|
|
1066
1073
|
focusGridManager.init();
|
|
1067
1074
|
if (isRootInstance(this)) {
|
|
1068
1075
|
installAccessibilityAnnouncer(instance.rootPortalElement);
|
|
1069
|
-
_injectProductInfo(mergedUserSettings.licenseKey, this.rootWrapperElement, "
|
|
1076
|
+
_injectProductInfo(mergedUserSettings.licenseKey, this.rootWrapperElement, "19/05/2026");
|
|
1070
1077
|
}
|
|
1071
1078
|
instance.runHooks('init');
|
|
1072
1079
|
this.render();
|