handsontable 17.1.0-rc10 → 17.1.0-rc11

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.
Files changed (62) hide show
  1. package/CHANGELOG.md +2 -1
  2. package/base.js +2 -2
  3. package/base.mjs +2 -2
  4. package/core.js +11 -5
  5. package/core.mjs +11 -5
  6. package/dist/handsontable.full.js +31 -17
  7. package/dist/handsontable.full.min.js +7 -7
  8. package/dist/handsontable.js +31 -17
  9. package/dist/handsontable.min.js +7 -7
  10. package/dist/themes/classic.js +2 -2
  11. package/dist/themes/classic.min.js +2 -2
  12. package/dist/themes/horizon.js +2 -2
  13. package/dist/themes/horizon.min.js +2 -2
  14. package/dist/themes/main.js +2 -2
  15. package/dist/themes/main.min.js +2 -2
  16. package/dist/themes/static/variables/colors/ant.js +2 -2
  17. package/dist/themes/static/variables/colors/ant.min.js +2 -2
  18. package/dist/themes/static/variables/colors/classic.js +2 -2
  19. package/dist/themes/static/variables/colors/classic.min.js +2 -2
  20. package/dist/themes/static/variables/colors/horizon.js +2 -2
  21. package/dist/themes/static/variables/colors/horizon.min.js +2 -2
  22. package/dist/themes/static/variables/colors/main.js +2 -2
  23. package/dist/themes/static/variables/colors/main.min.js +2 -2
  24. package/dist/themes/static/variables/colors/material.js +2 -2
  25. package/dist/themes/static/variables/colors/material.min.js +2 -2
  26. package/dist/themes/static/variables/colors/shadcn.js +2 -2
  27. package/dist/themes/static/variables/colors/shadcn.min.js +2 -2
  28. package/dist/themes/static/variables/density.js +2 -2
  29. package/dist/themes/static/variables/density.min.js +2 -2
  30. package/dist/themes/static/variables/helpers/iconsMap.js +2 -2
  31. package/dist/themes/static/variables/helpers/iconsMap.min.js +2 -2
  32. package/dist/themes/static/variables/icons/horizon.js +2 -2
  33. package/dist/themes/static/variables/icons/horizon.min.js +2 -2
  34. package/dist/themes/static/variables/icons/main.js +2 -2
  35. package/dist/themes/static/variables/icons/main.min.js +2 -2
  36. package/dist/themes/static/variables/sizing.js +2 -2
  37. package/dist/themes/static/variables/sizing.min.js +2 -2
  38. package/dist/themes/static/variables/tokens/classic.js +2 -2
  39. package/dist/themes/static/variables/tokens/classic.min.js +2 -2
  40. package/dist/themes/static/variables/tokens/horizon.js +2 -2
  41. package/dist/themes/static/variables/tokens/horizon.min.js +2 -2
  42. package/dist/themes/static/variables/tokens/main.js +2 -2
  43. package/dist/themes/static/variables/tokens/main.min.js +2 -2
  44. package/helpers/dom/element.js +2 -4
  45. package/helpers/dom/element.mjs +2 -4
  46. package/helpers/mixed.js +1 -1
  47. package/helpers/mixed.mjs +1 -1
  48. package/package.json +1 -1
  49. package/selection/mouseEventHandler.js +12 -2
  50. package/selection/mouseEventHandler.mjs +12 -2
  51. package/styles/handsontable.css +2 -2
  52. package/styles/handsontable.min.css +2 -2
  53. package/styles/handsontableStyles.js +1 -1
  54. package/styles/handsontableStyles.mjs +1 -1
  55. package/styles/ht-icons-horizon.min.css +2 -2
  56. package/styles/ht-icons-main.min.css +2 -2
  57. package/styles/ht-theme-classic-no-icons.min.css +2 -2
  58. package/styles/ht-theme-classic.min.css +2 -2
  59. package/styles/ht-theme-horizon-no-icons.min.css +2 -2
  60. package/styles/ht-theme-horizon.min.css +2 -2
  61. package/styles/ht-theme-main-no-icons.min.css +2 -2
  62. package/styles/ht-theme-main.min.css +2 -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-rc9] - 2026-05-13
12
+ ## [17.1.0-rc10] - 2026-05-13
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)
@@ -79,6 +79,7 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
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
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)
82
83
 
83
84
  ### Security
84
85
  - 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 = "13/05/2026 12:31:58";
64
- Handsontable.version = "17.1.0-rc10";
63
+ Handsontable.buildDate = "14/05/2026 07:06:52";
64
+ Handsontable.version = "17.1.0-rc11";
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 = "13/05/2026 12:31:58";
39
- Handsontable.version = "17.1.0-rc10";
38
+ Handsontable.buildDate = "14/05/2026 07:06:52";
39
+ Handsontable.version = "17.1.0-rc11";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
package/core.js CHANGED
@@ -453,7 +453,8 @@ 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'
457
458
  ];
458
459
  if (isLastSelectionLayer && !ignoreScrollSources.includes(selectionSource) && (!preventScrolling.isTouched() || preventScrolling.isTouched() && !preventScrolling.value)) {
459
460
  viewportScroller.scrollTo(cellCoords);
@@ -484,14 +485,16 @@ function Core(rootContainer, userSettings, rootInstanceSymbol = false) {
484
485
  'shift',
485
486
  'refresh',
486
487
  'loadData',
487
- 'updateData'
488
+ 'updateData',
489
+ 'deselect'
488
490
  ].includes(selectionSource)) {
489
491
  editorManager.closeEditor(null);
490
492
  }
491
493
  if (![
492
494
  'refresh',
493
495
  'loadData',
494
- 'updateData'
496
+ 'updateData',
497
+ 'deselect'
495
498
  ].includes(selectionSource)) {
496
499
  instance.view.render();
497
500
  editorManager.prepareEditor();
@@ -515,7 +518,10 @@ function Core(rootContainer, userSettings, rootInstanceSymbol = false) {
515
518
  const { from, to } = cellRanges[selectionLayerLevel];
516
519
  this.runHooks('afterSelectionEnd', from.row, from.col, to.row, to.col, selectionLayerLevel);
517
520
  this.runHooks('afterSelectionEndByProp', from.row, instance.colToProp(from.col), to.row, instance.colToProp(to.col), selectionLayerLevel);
518
- if (selection.getSelectionSource() === 'refresh') {
521
+ if ([
522
+ 'refresh',
523
+ 'deselect'
524
+ ].includes(selection.getSelectionSource())) {
519
525
  instance.view.render();
520
526
  editorManager.prepareEditor();
521
527
  }
@@ -1081,7 +1087,7 @@ function Core(rootContainer, userSettings, rootInstanceSymbol = false) {
1081
1087
  focusGridManager.init();
1082
1088
  if ((0, _rootInstance.isRootInstance)(this)) {
1083
1089
  (0, _a11yAnnouncer.install)(instance.rootPortalElement);
1084
- (0, _mixed._injectProductInfo)(mergedUserSettings.licenseKey, this.rootWrapperElement, "13/05/2026");
1090
+ (0, _mixed._injectProductInfo)(mergedUserSettings.licenseKey, this.rootWrapperElement, "14/05/2026");
1085
1091
  }
1086
1092
  instance.runHooks('init');
1087
1093
  this.render();
package/core.mjs CHANGED
@@ -438,7 +438,8 @@ const deprecationWarns = new Set();
438
438
  const selectionSource = selection.getSelectionSource();
439
439
  const ignoreScrollSources = [
440
440
  'loadData',
441
- 'updateData'
441
+ 'updateData',
442
+ 'deselect'
442
443
  ];
443
444
  if (isLastSelectionLayer && !ignoreScrollSources.includes(selectionSource) && (!preventScrolling.isTouched() || preventScrolling.isTouched() && !preventScrolling.value)) {
444
445
  viewportScroller.scrollTo(cellCoords);
@@ -469,14 +470,16 @@ const deprecationWarns = new Set();
469
470
  'shift',
470
471
  'refresh',
471
472
  'loadData',
472
- 'updateData'
473
+ 'updateData',
474
+ 'deselect'
473
475
  ].includes(selectionSource)) {
474
476
  editorManager.closeEditor(null);
475
477
  }
476
478
  if (![
477
479
  'refresh',
478
480
  'loadData',
479
- 'updateData'
481
+ 'updateData',
482
+ 'deselect'
480
483
  ].includes(selectionSource)) {
481
484
  instance.view.render();
482
485
  editorManager.prepareEditor();
@@ -500,7 +503,10 @@ const deprecationWarns = new Set();
500
503
  const { from, to } = cellRanges[selectionLayerLevel];
501
504
  this.runHooks('afterSelectionEnd', from.row, from.col, to.row, to.col, selectionLayerLevel);
502
505
  this.runHooks('afterSelectionEndByProp', from.row, instance.colToProp(from.col), to.row, instance.colToProp(to.col), selectionLayerLevel);
503
- if (selection.getSelectionSource() === 'refresh') {
506
+ if ([
507
+ 'refresh',
508
+ 'deselect'
509
+ ].includes(selection.getSelectionSource())) {
504
510
  instance.view.render();
505
511
  editorManager.prepareEditor();
506
512
  }
@@ -1066,7 +1072,7 @@ const deprecationWarns = new Set();
1066
1072
  focusGridManager.init();
1067
1073
  if (isRootInstance(this)) {
1068
1074
  installAccessibilityAnnouncer(instance.rootPortalElement);
1069
- _injectProductInfo(mergedUserSettings.licenseKey, this.rootWrapperElement, "13/05/2026");
1075
+ _injectProductInfo(mergedUserSettings.licenseKey, this.rootWrapperElement, "14/05/2026");
1070
1076
  }
1071
1077
  instance.runHooks('init');
1072
1078
  this.render();