handsontable 12.3.0 → 12.3.1-next-712715f-20230130

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 (188) hide show
  1. package/3rdparty/walkontable/src/border.js +4 -4
  2. package/3rdparty/walkontable/src/border.mjs +4 -4
  3. package/3rdparty/walkontable/src/overlays.js +20 -2
  4. package/3rdparty/walkontable/src/overlays.mjs +20 -2
  5. package/3rdparty/walkontable/src/selection.js +2 -2
  6. package/3rdparty/walkontable/src/selection.mjs +2 -2
  7. package/3rdparty/walkontable/src/table.js +35 -8
  8. package/3rdparty/walkontable/src/table.mjs +35 -8
  9. package/CHANGELOG.md +123 -108
  10. package/base.js +2 -2
  11. package/base.mjs +2 -2
  12. package/core.js +10 -4
  13. package/core.mjs +10 -4
  14. package/dataMap/dataMap.js +1 -1
  15. package/dataMap/dataMap.mjs +1 -1
  16. package/dataMap/metaManager/lazyFactoryMap.js +1 -1
  17. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -1
  18. package/dataMap/metaManager/metaLayers/cellMeta.js +1 -1
  19. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
  20. package/dataMap/metaManager/metaSchema.js +3 -3
  21. package/dataMap/metaManager/metaSchema.mjs +3 -3
  22. package/dist/handsontable.css +7 -5
  23. package/dist/handsontable.full.css +7 -5
  24. package/dist/handsontable.full.js +4399 -4182
  25. package/dist/handsontable.full.min.css +4 -4
  26. package/dist/handsontable.full.min.js +107 -107
  27. package/dist/handsontable.js +2491 -2286
  28. package/dist/handsontable.min.css +4 -4
  29. package/dist/handsontable.min.js +3 -3
  30. package/dist/languages/all.js +1 -1
  31. package/dist/languages/all.min.js +1 -1
  32. package/dist/languages/ja-JP.js +1 -1
  33. package/dist/languages/ja-JP.min.js +1 -1
  34. package/editorManager.js +2 -2
  35. package/editorManager.mjs +2 -2
  36. package/editors/baseEditor/baseEditor.js +2 -2
  37. package/editors/baseEditor/baseEditor.mjs +2 -2
  38. package/editors/textEditor/textEditor.js +2 -2
  39. package/editors/textEditor/textEditor.mjs +2 -2
  40. package/helpers/dom/element.js +1 -1
  41. package/helpers/dom/element.mjs +1 -1
  42. package/helpers/mixed.js +5 -6
  43. package/helpers/mixed.mjs +5 -6
  44. package/helpers/number.js +1 -1
  45. package/helpers/number.mjs +1 -1
  46. package/i18n/languages/ja-JP.js +1 -1
  47. package/i18n/languages/ja-JP.mjs +2 -2
  48. package/languages/all.js +1 -1
  49. package/languages/index.js +1 -1
  50. package/languages/ja-JP.js +1 -1
  51. package/languages/ja-JP.mjs +2 -2
  52. package/package.json +1 -1
  53. package/plugins/autoColumnSize/autoColumnSize.js +3 -3
  54. package/plugins/autoColumnSize/autoColumnSize.mjs +3 -3
  55. package/plugins/autoRowSize/autoRowSize.js +2 -2
  56. package/plugins/autoRowSize/autoRowSize.mjs +2 -2
  57. package/plugins/autofill/autofill.js +2 -2
  58. package/plugins/autofill/autofill.mjs +2 -2
  59. package/plugins/base/base.js +2 -2
  60. package/plugins/base/base.mjs +2 -2
  61. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -1
  62. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +1 -1
  63. package/plugins/collapsibleColumns/collapsibleColumns.js +1 -1
  64. package/plugins/collapsibleColumns/collapsibleColumns.mjs +1 -1
  65. package/plugins/columnSorting/columnSorting.js +1 -1
  66. package/plugins/columnSorting/columnSorting.mjs +1 -1
  67. package/plugins/columnSorting/columnStatesManager.js +2 -2
  68. package/plugins/columnSorting/columnStatesManager.mjs +2 -2
  69. package/plugins/columnSorting/rootComparator.js +1 -1
  70. package/plugins/columnSorting/rootComparator.mjs +1 -1
  71. package/plugins/contextMenu/predefinedItems/removeColumn.js +2 -2
  72. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +2 -2
  73. package/plugins/contextMenu/predefinedItems/removeRow.js +2 -2
  74. package/plugins/contextMenu/predefinedItems/removeRow.mjs +2 -2
  75. package/plugins/copyPaste/copyPaste.js +2 -2
  76. package/plugins/copyPaste/copyPaste.mjs +2 -2
  77. package/plugins/customBorders/customBorders.js +2 -2
  78. package/plugins/customBorders/customBorders.mjs +2 -2
  79. package/plugins/exportFile/dataProvider.js +2 -2
  80. package/plugins/exportFile/dataProvider.mjs +2 -2
  81. package/plugins/filters/component/value.js +2 -2
  82. package/plugins/filters/component/value.mjs +2 -2
  83. package/plugins/filters/condition/beginsWith.js +2 -2
  84. package/plugins/filters/condition/beginsWith.mjs +2 -2
  85. package/plugins/filters/condition/between.js +2 -2
  86. package/plugins/filters/condition/between.mjs +2 -2
  87. package/plugins/filters/condition/byValue.js +2 -2
  88. package/plugins/filters/condition/byValue.mjs +2 -2
  89. package/plugins/filters/condition/contains.js +2 -2
  90. package/plugins/filters/condition/contains.mjs +2 -2
  91. package/plugins/filters/condition/date/after.js +2 -2
  92. package/plugins/filters/condition/date/after.mjs +2 -2
  93. package/plugins/filters/condition/date/before.js +2 -2
  94. package/plugins/filters/condition/date/before.mjs +2 -2
  95. package/plugins/filters/condition/endsWith.js +2 -2
  96. package/plugins/filters/condition/endsWith.mjs +2 -2
  97. package/plugins/filters/condition/equal.js +2 -2
  98. package/plugins/filters/condition/equal.mjs +2 -2
  99. package/plugins/filters/condition/greaterThan.js +2 -2
  100. package/plugins/filters/condition/greaterThan.mjs +2 -2
  101. package/plugins/filters/condition/greaterThanOrEqual.js +2 -2
  102. package/plugins/filters/condition/greaterThanOrEqual.mjs +2 -2
  103. package/plugins/filters/condition/lessThan.js +2 -2
  104. package/plugins/filters/condition/lessThan.mjs +2 -2
  105. package/plugins/filters/condition/lessThanOrEqual.js +2 -2
  106. package/plugins/filters/condition/lessThanOrEqual.mjs +2 -2
  107. package/plugins/filters/conditionCollection.js +2 -2
  108. package/plugins/filters/conditionCollection.mjs +2 -2
  109. package/plugins/filters/filters.js +2 -2
  110. package/plugins/filters/filters.mjs +2 -2
  111. package/plugins/filters/ui/multipleSelect.js +1 -1
  112. package/plugins/filters/ui/multipleSelect.mjs +1 -1
  113. package/plugins/formulas/formulas.js +2 -2
  114. package/plugins/formulas/formulas.mjs +2 -2
  115. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -2
  116. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +2 -2
  117. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -1
  118. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +1 -1
  119. package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -2
  120. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +2 -2
  121. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -1
  122. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +1 -1
  123. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +2 -2
  124. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +2 -2
  125. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +2 -2
  126. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +2 -2
  127. package/plugins/mergeCells/calculations/autofill.js +2 -2
  128. package/plugins/mergeCells/calculations/autofill.mjs +2 -2
  129. package/plugins/mergeCells/cellsCollection.js +1 -1
  130. package/plugins/mergeCells/cellsCollection.mjs +1 -1
  131. package/plugins/mergeCells/mergeCells.js +97 -20
  132. package/plugins/mergeCells/mergeCells.mjs +97 -20
  133. package/plugins/multiColumnSorting/rootComparator.js +1 -1
  134. package/plugins/multiColumnSorting/rootComparator.mjs +1 -1
  135. package/plugins/nestedHeaders/stateManager/headersTree.js +2 -2
  136. package/plugins/nestedHeaders/stateManager/headersTree.mjs +2 -2
  137. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +1 -1
  138. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +1 -1
  139. package/plugins/nestedRows/data/dataManager.js +1 -1
  140. package/plugins/nestedRows/data/dataManager.mjs +1 -1
  141. package/plugins/nestedRows/nestedRows.js +4 -1
  142. package/plugins/nestedRows/nestedRows.mjs +4 -1
  143. package/plugins/nestedRows/ui/collapsing.js +1 -1
  144. package/plugins/nestedRows/ui/collapsing.mjs +1 -1
  145. package/plugins/nestedRows/utils/rowMoveController.js +1 -1
  146. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -1
  147. package/plugins/registry.js +2 -2
  148. package/plugins/registry.mjs +2 -2
  149. package/plugins/search/search.js +1 -1
  150. package/plugins/search/search.mjs +1 -1
  151. package/plugins/undoRedo/undoRedo.js +2 -2
  152. package/plugins/undoRedo/undoRedo.mjs +2 -2
  153. package/selection/highlight/highlight.js +1 -1
  154. package/selection/highlight/highlight.mjs +1 -1
  155. package/selection/selection.js +2 -2
  156. package/selection/selection.mjs +2 -2
  157. package/selection/utils.js +2 -2
  158. package/selection/utils.mjs +2 -2
  159. package/shortcuts/context.js +2 -2
  160. package/shortcuts/context.mjs +2 -2
  161. package/shortcuts/manager.js +9 -0
  162. package/shortcuts/manager.mjs +9 -0
  163. package/shortcuts/recorder.js +3 -0
  164. package/shortcuts/recorder.mjs +3 -0
  165. package/tableView.js +2 -2
  166. package/tableView.mjs +2 -2
  167. package/translations/indexMapper.js +1 -1
  168. package/translations/indexMapper.mjs +1 -1
  169. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
  170. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
  171. package/translations/maps/utils/indexesSequence.js +1 -1
  172. package/translations/maps/utils/indexesSequence.mjs +1 -1
  173. package/translations/maps/utils/physicallyIndexed.js +1 -1
  174. package/translations/maps/utils/physicallyIndexed.mjs +1 -1
  175. package/utils/dataStructures/priorityMap.js +2 -2
  176. package/utils/dataStructures/priorityMap.mjs +2 -2
  177. package/utils/dataStructures/tree.js +1 -1
  178. package/utils/dataStructures/tree.mjs +1 -1
  179. package/utils/dataStructures/uniqueMap.js +2 -2
  180. package/utils/dataStructures/uniqueMap.mjs +2 -2
  181. package/utils/dataStructures/uniqueSet.js +1 -1
  182. package/utils/dataStructures/uniqueSet.mjs +1 -1
  183. package/utils/ghostTable.js +2 -2
  184. package/utils/ghostTable.mjs +2 -2
  185. package/utils/parseTable.js +1 -1
  186. package/utils/parseTable.mjs +1 -1
  187. package/utils/staticRegister.js +1 -1
  188. package/utils/staticRegister.mjs +1 -1
package/CHANGELOG.md CHANGED
@@ -2,19 +2,28 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  <!-- This file should generally be updated automatically using our changelog script. See `.changelogs/README.md` for more information. -->
9
9
 
10
10
  <!-- UNVERSIONED -->
11
11
 
12
- ## [12.3.0] - 2022-12-14
12
+ ## [12.3.1] - 2023-02-06
13
+
14
+ ### Added
15
+ - Added Japanese translation for Copy with Headers feature. [#10201](https://github.com/handsontable/handsontable/pull/10201)
13
16
 
14
- For more information on this release, see:
15
- - [Blog post](https://handsontable.com/blog/articles/2022/12/handsontable-12-3-0-copying-cells-with-headers)
16
- - [Documentation (12.3)](https://handsontable.com/docs/12.3/)
17
- - [Release notes](https://handsontable.com/docs/release-notes/#_12-3-0)
17
+ ### Removed
18
+ - Removed the license key delay condition that prevents printing warnings about key expiration in the console. [#10175](https://github.com/handsontable/handsontable/pull/10175)
19
+
20
+ ### Fixed
21
+ - Fixed the _NestedRows_ plugin that did not react when the Core `updateData` method was called. [#10178](https://github.com/handsontable/handsontable/pull/10178)
22
+ - Fixed a Chrome issue, where the freshly-merged cells were missing right and bottom borders. [#10212](https://github.com/handsontable/handsontable/pull/10212)
23
+ - Fixed an issue where some browser or system shortcuts left the CTRL/CMD key held down [#6441](https://github.com/handsontable/handsontable/issues/6441)
24
+ - Fixed unwanted rendered overlay that was visible in the Filters conditional component. [#10174](https://github.com/handsontable/handsontable/pull/10174)
25
+
26
+ ## [12.3.0] - 2022-12-14
18
27
 
19
28
  ### Added
20
29
 
@@ -34,12 +43,12 @@ For more information on this release, see:
34
43
  - Fixed an issue where typing in a `dropdown` editor caused the IME to disappear, resulting in wrong characters being typed. [#9672](https://github.com/handsontable/handsontable/issues/9672)
35
44
  - React: Fixed an issue where `dropdown` cells weren't validated properly when using the `HotColumn` component. [#10065](https://github.com/handsontable/handsontable/issues/10065)
36
45
 
37
- ## [12.2.0] - 2022-10-25
46
+ For more information on Handsontable 12.3.0, see:
47
+ - [Blog post (12.3.0)](https://handsontable.com/blog/articles/2022/12/handsontable-12-3-0-copying-cells-with-headers)
48
+ - [Documentation (12.3)](https://handsontable.com/docs/12.3)
49
+ - [Release notes (12.3.0)](https://handsontable.com/docs/release-notes/#_12-3-0)
38
50
 
39
- For more information on this release, see:
40
- - [Blog post](https://handsontable.com/blog/handsontable-12.2.0)
41
- - [Documentation (12.2)](https://handsontable.com/docs/12.2/)
42
- - [Release notes](https://handsontable.com/docs/release-notes/#_12-2-0)
51
+ ## [12.2.0] - 2022-10-25
43
52
 
44
53
  ### Added
45
54
 
@@ -62,11 +71,12 @@ For more information on this release, see:
62
71
  - Fixed an issue where changing a cell's `type` through `setCellMeta()` didn't properly set the cell's `editor` and `renderer`. [#9734](https://github.com/handsontable/handsontable/issues/9734)
63
72
  - Fixed an issue where the dropdown menu didn't display when the `NestedHeaders` plugin was enabled and all rows were trimmed out. [#9753](https://github.com/handsontable/handsontable/issues/9753)
64
73
 
65
- ## [12.1.3] - 2022-09-22
74
+ For more information on Handsontable 12.2.0, see:
75
+ - [Blog post (12.2.0)](https://handsontable.com/blog/handsontable-12.2.0)
76
+ - [Documentation (12.2)](https://handsontable.com/docs/12.2)
77
+ - [Release notes (12.2.0)](https://handsontable.com/docs/release-notes/#_12-2-0)
66
78
 
67
- For more information on this release, see:
68
- - [Documentation (12.1)](https://handsontable.com/docs/12.1/)
69
- - [Release notes](https://handsontable.com/docs/release-notes/#_12-1-3)
79
+ ## [12.1.3] - 2022-09-22
70
80
 
71
81
  ### Removed
72
82
 
@@ -86,33 +96,32 @@ For more information on this release, see:
86
96
  - Fixed misalignment on mobile devices when the edge cells were selected. [#9621](https://github.com/handsontable/handsontable/issues/9621)
87
97
  - Fixed type definitions for the method `setSourceDataAtCell`. [#8599](https://github.com/handsontable/handsontable/issues/8599)
88
98
 
89
- ## [12.1.2] - 2022-07-08
99
+ For more information on Handsontable 12.1.3, see:
100
+ - [Documentation (12.1)](https://handsontable.com/docs/12.1)
101
+ - [Release notes (12.1.3)](https://handsontable.com/docs/release-notes/#_12-1-3)
90
102
 
91
- For more information on this release, see:
92
- - [Documentation (12.1)](https://handsontable.com/docs/12.1/)
93
- - [Release notes](https://handsontable.com/docs/release-notes/#_12-1-2)
103
+ ## [12.1.2] - 2022-07-08
94
104
 
95
105
  ### Changed
96
106
 
97
107
  - Changed the version of the Moment.js dependency from 2.29.3 to 2.29.4, in reaction to a recently-found Moment.js security vulnerability. The vulnerability did not affect a correct configuration of Handsontable. [#9638](https://github.com/handsontable/handsontable/issues/9638)
98
108
  - Vue: Freezed the version of the Vue framework that is used in our build chain to ~2.6. This shouldn't affect apps that use Vue 2.7+. [#9624](https://github.com/handsontable/handsontable/issues/9624)
99
109
 
100
- ## [12.1.1] - 2022-07-05
110
+ For more information on Handsontable 12.1.2, see:
111
+ - [Documentation (12.1)](https://handsontable.com/docs/12.1)
112
+ - [Release notes (12.1.2)](https://handsontable.com/docs/release-notes/#_12-1-2)
101
113
 
102
- For more information on this release, see:
103
- - [Documentation (12.1)](https://handsontable.com/docs/12.1/)
104
- - [Release notes](https://handsontable.com/docs/release-notes/#_12-1-1)
114
+ ## [12.1.1] - 2022-07-05
105
115
 
106
116
  ### Fixed
107
117
 
108
118
  - Angular: Fixed an issue where the installation of `@handsontable/angular` package failed for versions of Angular other than 9 [#9622](https://github.com/handsontable/handsontable/issues/9622)
109
119
 
110
- ## [12.1.0] - 2022-06-28
120
+ For more information on Handsontable 12.1.1, see:
121
+ - [Documentation (12.1)](https://handsontable.com/docs/12.1)
122
+ - [Release notes (12.1.1)](https://handsontable.com/docs/release-notes/#_12-1-1)
111
123
 
112
- For more information on this release, see:
113
- - [Blog post](https://handsontable.com/blog/handsontable-12.1.0-data-grid-new-hooks-new-translations-and-rendering-improvements)
114
- - [Documentation (12.1)](https://handsontable.com/docs/12.1/)
115
- - [Release notes](https://handsontable.com/docs/release-notes/#_12-1-0)
124
+ ## [12.1.0] - 2022-06-28
116
125
 
117
126
  ### Added
118
127
 
@@ -146,11 +155,12 @@ For more information on this release, see:
146
155
  - Fixed an issue where hiding columns with nested headers caused incorrect column width calculation (for the `stretchH: 'all'` option). [#9496](https://github.com/handsontable/handsontable/issues/9496)
147
156
  - Fixed an issue where `ShortcutManager` unnecessarily handled `keyup` events with no `key` defined. [#9562](https://github.com/handsontable/handsontable/issues/9562)
148
157
 
149
- ## [12.0.1] - 2022-05-16
158
+ For more information on Handsontable 12.1.0, see:
159
+ - [Blog post (12.1.0)](https://handsontable.com/blog/handsontable-12.1.0-data-grid-new-hooks-new-translations-and-rendering-improvements)
160
+ - [Documentation (12.1)](https://handsontable.com/docs/12.1)
161
+ - [Release notes (12.1.0)](https://handsontable.com/docs/release-notes/#_12-1-0)
150
162
 
151
- For more information on this release, see:
152
- - [Documentation (12.0)](https://handsontable.com/docs/12.0/)
153
- - [Release notes](https://handsontable.com/docs/release-notes/#_12-0-1)
163
+ ## [12.0.1] - 2022-05-16
154
164
 
155
165
  ### Fixed
156
166
 
@@ -160,13 +170,11 @@ For more information on this release, see:
160
170
  - Fixed an issue where nested column headers didn't expand properly. [#9099](https://github.com/handsontable/handsontable/issues/9099)
161
171
  - Fixed an issue where updating custom borders could lead to uncaught error exceptions. [#9455](https://github.com/handsontable/handsontable/issues/9455)
162
172
 
163
- ## [12.0.0] - 2022-04-28
173
+ For more information on Handsontable 12.0.1, see:
174
+ - [Documentation (12.0)](https://handsontable.com/docs/12.0)
175
+ - [Release notes (12.0.1)](https://handsontable.com/docs/release-notes/#_12-0-1)
164
176
 
165
- For more information on this release, see:
166
- - [Blog post](https://handsontable.com/blog/handsontable-12.0.0-data-grid-rtl-support-and-a-new-keyboard-shortcuts-api)
167
- - [Documentation (12.0)](https://handsontable.com/docs/12.0/)
168
- - [Migration guide (11.1 → 12.0)](https://handsontable.com/docs/migration-from-11.1-to-12.0/)
169
- - [Release notes](https://handsontable.com/docs/release-notes/#_12-0-0)
177
+ ## [12.0.0] - 2022-04-28
170
178
 
171
179
  ### Added
172
180
 
@@ -215,12 +223,13 @@ For more information on this release, see:
215
223
  - Fixed an issue where the dropdown menu contained unwanted rectangle elements. [#9240](https://github.com/handsontable/handsontable/issues/9240)
216
224
  - React, Vue 2, Vue 3: Fixed an issue with registering modules for the React, Vue 2, and Vue 3 wrappers, by adding an `"exports"` field to their `package.json` files. [#9140](https://github.com/handsontable/handsontable/issues/9140)
217
225
 
218
- ## [11.1.0] - 2022-01-13
226
+ For more information on Handsontable 12.0.0, see:
227
+ - [Blog post (12.0.0)](https://handsontable.com/blog/handsontable-12.0.0-data-grid-rtl-support-and-a-new-keyboard-shortcuts-api)
228
+ - [Documentation (12.0)](https://handsontable.com/docs/12.0)
229
+ - [Migration guide (11.1 → 12.0)](https://handsontable.com/docs/migration-from-11.1-to-12.0)
230
+ - [Release notes (12.0.0)](https://handsontable.com/docs/release-notes/#_12-0-0)
219
231
 
220
- For more information on this release, see:
221
- - [Blog post](https://handsontable.com/blog/handsontable-11.1.0-vue-3-support-and-updatedata)
222
- - [Documentation (11.1)](https://handsontable.com/docs/11.1/)
223
- - [Release notes](https://handsontable.com/docs/javascript-data-grid/release-notes/#_11-1)
232
+ ## [11.1.0] - 2022-01-13
224
233
 
225
234
  ### Added
226
235
 
@@ -249,23 +258,22 @@ resetting the states of cells, rows and columns. [#7263](https://github.com/hand
249
258
  - Fixed an issue where the `Comments` plugin's editor disappeared after adding a comment. [#9075](https://github.com/handsontable/handsontable/issues/9075) [#6661](https://github.com/handsontable/handsontable/issues/6661)
250
259
  - React: Fixed a wrong return type. [#9000](https://github.com/handsontable/handsontable/issues/9000)
251
260
 
252
- ## [11.0.1] - 2021-11-17
261
+ For more information on Handsontable 11.1.0, see:
262
+ - [Blog post (11.1.0)](https://handsontable.com/blog/handsontable-11.1.0-vue-3-support-and-updatedata)
263
+ - [Documentation (11.1)](https://handsontable.com/docs/11.1)
264
+ - [Release notes (11.1.0)](https://handsontable.com/docs/javascript-data-grid/release-notes/#_11-1)
253
265
 
254
- For more information on this release, see:
255
- - [Documentation (11.0)](https://handsontable.com/docs/11.0/)
256
- - [Release notes](https://handsontable.com/docs/release-notes/#_11-0-1)
266
+ ## [11.0.1] - 2021-11-17
257
267
 
258
268
  ### Fixed
259
269
 
260
270
  - Fixed the UMD build of `@handsontable/angular`, which was not working properly in `11.0.0`. [#8946](https://github.com/handsontable/handsontable/pull/8946)
261
271
 
262
- ## [11.0.0] - 2021-11-17
272
+ For more information on Handsontable 11.0.0, see:
273
+ - [Documentation (11.0)](https://handsontable.com/docs/11.0)
274
+ - [Release notes (11.0.1)](https://handsontable.com/docs/release-notes/#_11-0-1)
263
275
 
264
- For more information on this release, see:
265
- - [Blog post](https://handsontable.com/blog/handsontable-11.0.0-modularization-for-react-angular-and-vue)
266
- - [Documentation (11.0)](https://handsontable.com/docs/11.0/)
267
- - [Migration guide (10.0 → 11.0)](https://handsontable.com/docs/migration-from-10.0-to-11.0/)
268
- - [Release notes](https://handsontable.com/docs/javascript-data-grid/release-notes/#_11-0)
276
+ ## [11.0.0] - 2021-11-17
269
277
 
270
278
  ### Added
271
279
 
@@ -294,13 +302,13 @@ For more information on this release, see:
294
302
  - Fixed an error thrown when autofill's source is a `date` cell. [#8894](https://github.com/handsontable/handsontable/issues/8894)
295
303
  - React: Fixed a React wrapper issue where it's impossible to use different sets of props in editor components reused across multiple columns. [#8527](https://github.com/handsontable/handsontable/issues/8527)
296
304
 
297
- ## [10.0.0] - 2021-09-29
305
+ For more information on Handsontable 11.0.0, see:
306
+ - [Blog post (11.0.0)](https://handsontable.com/blog/handsontable-11.0.0-modularization-for-react-angular-and-vue)
307
+ - [Documentation (11.0)](https://handsontable.com/docs/11.0)
308
+ - [Migration guide (10.0 → 11.0)](https://handsontable.com/docs/migration-from-10.0-to-11.0)
309
+ - [Release notes (11.0.0)](https://handsontable.com/docs/javascript-data-grid/release-notes/#_11-0)
298
310
 
299
- For more information on this release, see:
300
- - [Blog post](https://handsontable.com/blog/handsontable-10.0.0-improved-performance-and-consistency)
301
- - [Documentation (10.0)](https://handsontable.com/docs/10.0/)
302
- - [Migration guide (9.0 → 10.0)](https://handsontable.com/docs/migration-from-9.0-to-10.0/)
303
- - [Release notes](https://handsontable.com/docs/javascript-data-grid/release-notes/#_10-0)
311
+ ## [10.0.0] - 2021-09-29
304
312
 
305
313
  ### Changed
306
314
 
@@ -330,12 +338,13 @@ For more information on this release, see:
330
338
  - Adjusted directories and files related to `dataMap`, to prevent potential circular references. [#8704](https://github.com/handsontable/handsontable/issues/8704)
331
339
  - Improved the performance of the regular expression used to detect numeric values, and fixed major code smells. [#8752](https://github.com/handsontable/handsontable/issues/8752)
332
340
 
333
- ## [9.0.2] - 2021-07-28
341
+ For more information on Handsontable 10.0.0, see:
342
+ - [Blog post (10.0.0)](https://handsontable.com/blog/handsontable-10.0.0-improved-performance-and-consistency)
343
+ - [Documentation (10.0)](https://handsontable.com/docs/10.0)
344
+ - [Migration guide (9.0 → 10.0)](https://handsontable.com/docs/migration-from-9.0-to-10.0)
345
+ - [Release notes (10.0.0)](https://handsontable.com/docs/javascript-data-grid/release-notes/#_10-0)
334
346
 
335
- For more information on this release, see:
336
- - [Blog post](https://handsontable.com/blog/whats-new-in-handsontable-9.0.2)
337
- - [Documentation (9.0)](https://handsontable.com/docs/9.0/)
338
- - [Release notes](https://handsontable.com/docs/javascript-data-grid/release-notes/#_9-0-2)
347
+ ## [9.0.2] - 2021-07-28
339
348
 
340
349
  ### Fixed
341
350
 
@@ -354,11 +363,12 @@ For more information on this release, see:
354
363
 
355
364
  - Added new documentation engine [#7624](https://github.com/handsontable/handsontable/issues/7624)
356
365
 
357
- ## [9.0.1] - 2021-06-17
366
+ For more information on Handsontable 9.0.2, see:
367
+ - [Blog post (9.0.2)](https://handsontable.com/blog/whats-new-in-handsontable-9.0.2)
368
+ - [Documentation (9.0)](https://handsontable.com/docs/9.0)
369
+ - [Release notes (9.0.2)](https://handsontable.com/docs/javascript-data-grid/release-notes/#_9-0-2)
358
370
 
359
- For more information on this release, see:
360
- - [Documentation (9.0)](https://handsontable.com/docs/9.0/)
361
- - [Release notes](https://handsontable.com/docs/release-notes/#_9-0-1)
371
+ ## [9.0.1] - 2021-06-17
362
372
 
363
373
  ### Removed
364
374
 
@@ -369,13 +379,11 @@ For more information on this release, see:
369
379
  - Fixed an issue where the validator function was called twice when the Formulas plugin was enabled. [#8138](https://github.com/handsontable/handsontable/issues/8138)
370
380
  - Introduced a new CSS style for cells of the `checkbox` type to restore previous behaviour. [#8196](https://github.com/handsontable/handsontable/issues/8196)
371
381
 
372
- ## [9.0.0] - 2021-06-01
382
+ For more information on Handsontable 9.0.1, see:
383
+ - [Documentation (9.0)](https://handsontable.com/docs/9.0)
384
+ - [Release notes (9.0.1)](https://handsontable.com/docs/release-notes/#_9-0-1)
373
385
 
374
- For more information on this release, see:
375
- - [Blog post](https://handsontable.com/blog/handsontable-9.0.0-new-formula-plugin)
376
- - [Documentation (9.0)](https://handsontable.com/docs/9.0/)
377
- - [Migration guide (8.4 → 9.0)](https://handsontable.com/docs/migration-from-8.4-to-9.0/)
378
- - [Release notes](https://handsontable.com/docs/javascript-data-grid/release-notes/#_9-0)
386
+ ## [9.0.0] - 2021-06-01
379
387
 
380
388
  ### Changed
381
389
 
@@ -397,12 +405,13 @@ For more information on this release, see:
397
405
 
398
406
  - Deprecated the `beforeAutofillInsidePopulate` hook. It will be removed in the next major release. [#8095](https://github.com/handsontable/handsontable/issues/8095)
399
407
 
400
- ## [8.4.0] - 2021-05-11
408
+ For more information on Handsontable 9.0.0, see:
409
+ - [Blog post (9.0.0)](https://handsontable.com/blog/handsontable-9.0.0-new-formula-plugin)
410
+ - [Documentation (9.0)](https://handsontable.com/docs/9.0)
411
+ - [Migration guide (8.4 → 9.0)](https://handsontable.com/docs/migration-from-8.4-to-9.0)
412
+ - [Release notes (9.0.0)](https://handsontable.com/docs/javascript-data-grid/release-notes/#_9-0)
401
413
 
402
- For more information on this release, see:
403
- - [Blog post](https://handsontable.com/blog/whats-new-in-handsontable-8-4-0)
404
- - [Documentation (8.4.0)](https://handsontable.com/docs/8.4.0/)
405
- - [Release notes](https://handsontable.com/docs/javascript-data-grid/release-notes/#_8-4)
414
+ ## [8.4.0] - 2021-05-11
406
415
 
407
416
  ### Added
408
417
 
@@ -440,11 +449,12 @@ For more information on this release, see:
440
449
 
441
450
  - Enhanced the ESLint config file by adding a rule that checks if there are new lines missing before some keywords or statements. [#7691](https://github.com/handsontable/handsontable/issues/7691)
442
451
 
443
- ## [8.3.2] - 2021-03-16
452
+ For more information on Handsontable 8.4.0, see:
453
+ - [Blog post (8.4.0)](https://handsontable.com/blog/whats-new-in-handsontable-8-4-0)
454
+ - [Documentation (8.4.0)](https://handsontable.com/docs/8.4.0)
455
+ - [Release notes (8.4.0)](https://handsontable.com/docs/javascript-data-grid/release-notes/#_8-4)
444
456
 
445
- For more information on this release, see:
446
- - [Blog post](https://handsontable.com/blog/handsontable-8-3-2-introducing-monorepo)
447
- - [Release notes](https://handsontable.com/docs/javascript-data-grid/release-notes/#_8-3-2)
457
+ ## [8.3.2] - 2021-03-16
448
458
 
449
459
  ### Fixed
450
460
 
@@ -470,22 +480,22 @@ For more information on this release, see:
470
480
  - Introduced the monorepo to this repository. From now on, `handsontable`, `@handsontable/angular`, `@handsontable/react`, and `@handsontable/vue` will all be developed in the same repo - `handsontable`. [#7380](https://github.com/handsontable/handsontable/issues/7380)
471
481
  - Added a custom ESLint rule which allows restricting specified modules from loading by `import` or re-exporting. [#7473](https://github.com/handsontable/handsontable/issues/7473)
472
482
 
473
- ## [8.3.1] - 2021-02-10
483
+ For more information on Handsontable 8.3.2, see:
484
+ - [Blog post (8.3.2)](https://handsontable.com/blog/handsontable-8-3-2-introducing-monorepo)
485
+ - [Documentation (8.3.2)](https://handsontable.com/docs/8.3.2)
486
+ - [Release notes (8.3.2)](https://handsontable.com/docs/javascript-data-grid/release-notes/#_8-3-2)
474
487
 
475
- For more information on this release, see:
476
- - [Documentation (8.3.1)](https://handsontable.com/docs/8.3.1/)
477
- - [Release notes](https://handsontable.com/docs/release-notes/#_8-3-1)
488
+ ## [8.3.1] - 2021-02-10
478
489
 
479
490
  ### Fixed
480
491
 
481
492
  - Fixed an issue where the CSS files could be eliminated during tree-shaking [#7516](https://github.com/handsontable/handsontable/issues/7516)
482
493
 
483
- ## [8.3.0] - 2021-01-28
494
+ For more information on Handsontable 8.3.1, see:
495
+ - [Documentation (8.3.1)](https://handsontable.com/docs/8.3.1)
496
+ - [Release notes (8.3.1)](https://handsontable.com/docs/release-notes/#_8-3-1)
484
497
 
485
- For more information on this release, see:
486
- - [Blog post](https://handsontable.com/blog/handsontable-8.3.0-has-been-released)
487
- - [Documentation (8.3.0)](https://handsontable.com/docs/8.3.0/)
488
- - [Release notes](https://handsontable.com/docs/javascript-data-grid/release-notes/#_8-3)
498
+ ## [8.3.0] - 2021-01-28
489
499
 
490
500
  ### Added
491
501
 
@@ -515,12 +525,12 @@ For more information on this release, see:
515
525
  - Corrected a typo in a helper method from the Column Sorting plugin. [#7375](https://github.com/handsontable/handsontable/issues/7375)
516
526
  - Optimized the performance of rendering the table with numerous spare rows (for `minSpareRows`, `minSpareCols`, `minRows`, and `minCols` options). [#7439](https://github.com/handsontable/handsontable/issues/7439)
517
527
 
518
- ## [8.2.0] - 2020-11-12
528
+ For more information on Handsontable 8.3.0, see:
529
+ - [Blog post (8.3.0)](https://handsontable.com/blog/handsontable-8.3.0-has-been-released)
530
+ - [Documentation (8.3.0)](https://handsontable.com/docs/8.3.0)
531
+ - [Release notes (8.3.0)](https://handsontable.com/docs/javascript-data-grid/release-notes/#_8-3)
519
532
 
520
- For more information on this release, see:
521
- - [Blog post](https://handsontable.com/blog/handsontable-8.2.0-has-been-released)
522
- - [Documentation (8.2.0)](https://handsontable.com/docs/8.2.0/)
523
- - [Release notes](https://handsontable.com/docs/javascript-data-grid/release-notes/#_8-2)
533
+ ## [8.2.0] - 2020-11-12
524
534
 
525
535
  ### Added
526
536
 
@@ -540,12 +550,12 @@ For more information on this release, see:
540
550
  - Fix a problem with the inconsistent behavior of the Context Menu's "Clear column" disabled status. [#7003](https://github.com/handsontable/handsontable/issues/7003)
541
551
  - Fix a bug with parsing multiline cells on pasting `text/html` mime-type. [#7369](https://github.com/handsontable/handsontable/issues/7369)
542
552
 
543
- ## [8.1.0] - 2020-10-01
553
+ For more information on Handsontable 8.2.0, see:
554
+ - [Blog post (8.2.0)](https://handsontable.com/blog/handsontable-8.2.0-has-been-released)
555
+ - [Documentation (8.2.0)](https://handsontable.com/docs/8.2.0)
556
+ - [Release notes (8.2.0)](https://handsontable.com/docs/javascript-data-grid/release-notes/#_8-2)
544
557
 
545
- For more information on this release, see:
546
- - [Blog post](https://handsontable.com/blog/handsontable-8.1.0-has-been-released)
547
- - [Documentation (8.1.0)](https://handsontable.com/docs/8.1.0/)
548
- - [Release notes](https://handsontable.com/docs/javascript-data-grid/release-notes/#_8-1)
558
+ ## [8.1.0] - 2020-10-01
549
559
 
550
560
  ### Added
551
561
 
@@ -573,13 +583,12 @@ For more information on this release, see:
573
583
  - Updated dependencies to meet security requirements [#7222](https://github.com/handsontable/handsontable/pull/7222)
574
584
  - Improved performance for TrimRows, HiddenRows and HiddenColumns plugins for big datasets with lots trimmed/hidden indexes [#7223](https://github.com/handsontable/handsontable/pull/7223)
575
585
 
576
- ## [8.0.0] - 2020-08-05
586
+ For more information on Handsontable 8.1.0, see:
587
+ - [Blog post (8.1.0)](https://handsontable.com/blog/handsontable-8.1.0-has-been-released)
588
+ - [Documentation (8.1.0)](https://handsontable.com/docs/8.1.0)
589
+ - [Release notes (8.1.0)](https://handsontable.com/docs/javascript-data-grid/release-notes/#_8-1)
577
590
 
578
- For more information on this release, see:
579
- - [Blog post](https://handsontable.com/blog/the-new-handsontable-8-is-now-available)
580
- - [Documentation (8.0.0)](https://handsontable.com/docs/8.0.0/)
581
- - [Migration guide (7.4 → 8.0)](https://handsontable.com/docs/migration-from-7.4-to-8.0/)
582
- - [Release notes](https://handsontable.com/docs/javascript-data-grid/release-notes/#_8-0)
591
+ ## [8.0.0] - 2020-08-05
583
592
 
584
593
  ### Added
585
594
 
@@ -822,6 +831,12 @@ For more information on this release, see:
822
831
  - Fixed an issue with Undo/Redo not working with fixing columns. [#6869](https://github.com/handsontable/handsontable/issues/6869)
823
832
  - Added a missing argument in the `deepObjectSize` function. [#6821](https://github.com/handsontable/handsontable/pull/6821)
824
833
 
834
+ For more information on Handsontable 8.0.0, see:
835
+ - [Blog post (8.0.0)](https://handsontable.com/blog/the-new-handsontable-8-is-now-available)
836
+ - [Documentation (8.0.0)](https://handsontable.com/docs/8.0.0)
837
+ - [Migration guide (7.4 → 8.0)](https://handsontable.com/docs/migration-from-7.4-to-8.0)
838
+ - [Release notes (8.0.0)](https://handsontable.com/docs/javascript-data-grid/release-notes/#_8-0)
839
+
825
840
  ## Prior [8.0.0]
826
841
 
827
842
  The changes for previous versions are described at https://github.com/handsontable/handsontable/releases.
package/base.js CHANGED
@@ -46,8 +46,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
46
46
  Handsontable.CellCoords = _src.CellCoords;
47
47
  Handsontable.CellRange = _src.CellRange;
48
48
  Handsontable.packageName = 'handsontable';
49
- Handsontable.buildDate = "14/12/2022 12:26:12";
50
- Handsontable.version = "12.3.0";
49
+ Handsontable.buildDate = "30/01/2023 11:56:11";
50
+ Handsontable.version = "12.3.1-next-712715f-20230130";
51
51
  Handsontable.languages = {
52
52
  dictionaryKeys: _registry.dictionaryKeys,
53
53
  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 = "14/12/2022 12:26:30";
39
- Handsontable.version = "12.3.0";
38
+ Handsontable.buildDate = "30/01/2023 11:56:29";
39
+ Handsontable.version = "12.3.1-next-712715f-20230130";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys: dictionaryKeys,
42
42
  getLanguageDictionary: getLanguageDictionary,
package/core.js CHANGED
@@ -66,14 +66,14 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
66
66
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
67
67
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
68
68
  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."); }
69
- 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; } }
69
+ 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; } }
70
70
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
71
71
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
72
72
  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."); }
73
73
  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); }
74
74
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
75
75
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
76
- 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; }
76
+ 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; }
77
77
  var SHORTCUTS_GROUP = 'gridDefault';
78
78
  var activeGuid = null;
79
79
  var deprecationWarns = new Set();
@@ -90,7 +90,7 @@ var deprecationWarns = new Set();
90
90
  *
91
91
  * ::: only-for react
92
92
  * To use these methods, associate a Handsontable instance with your instance
93
- * of the [`HotTable` component](@/guides/getting-started/installation.md#use-the-hottable-component),
93
+ * of the [`HotTable` component](@/guides/getting-started/installation.md#_4-use-the-hottable-component),
94
94
  * by using React's `ref` feature (read more on the [Instance methods](@/guides/getting-started/react-methods.md) page).
95
95
  * :::
96
96
  *
@@ -4051,7 +4051,7 @@ function Core(rootElement, userSettings) {
4051
4051
  this.getShortcutManager().destroy();
4052
4052
  metaManager.clearCache();
4053
4053
  if ((0, _rootInstance.isRootInstance)(instance)) {
4054
- var licenseInfo = this.rootDocument.querySelector('#hot-display-license-info');
4054
+ var licenseInfo = this.rootDocument.querySelector('.hot-display-license-info');
4055
4055
  if (licenseInfo) {
4056
4056
  licenseInfo.parentNode.removeChild(licenseInfo);
4057
4057
  }
@@ -4431,6 +4431,12 @@ function Core(rootElement, userSettings) {
4431
4431
  },
4432
4432
  ownerWindow: this.rootWindow
4433
4433
  });
4434
+ this.addHook('beforeOnCellMouseDown', function (event) {
4435
+ // Releasing keys as some browser/system shortcuts break events sequence (thus the `keyup` event isn't triggered).
4436
+ if (event.ctrlKey === false && event.metaKey === false) {
4437
+ shortcutManager.releasePressedKeys();
4438
+ }
4439
+ });
4434
4440
 
4435
4441
  /**
4436
4442
  * Returns instance of a manager responsible for handling shortcuts stored in some contexts. It run actions after
package/core.mjs CHANGED
@@ -8,14 +8,14 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
8
8
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
9
9
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
10
10
  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."); }
11
- 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; } }
11
+ 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; } }
12
12
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
13
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
14
14
  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."); }
15
15
  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); }
16
16
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
17
17
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
18
- 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; }
18
+ 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; }
19
19
  import "core-js/modules/es.array.iterator.js";
20
20
  import "core-js/modules/es.object.to-string.js";
21
21
  import "core-js/modules/es.set.js";
@@ -85,7 +85,7 @@ var deprecationWarns = new Set();
85
85
  *
86
86
  * ::: only-for react
87
87
  * To use these methods, associate a Handsontable instance with your instance
88
- * of the [`HotTable` component](@/guides/getting-started/installation.md#use-the-hottable-component),
88
+ * of the [`HotTable` component](@/guides/getting-started/installation.md#_4-use-the-hottable-component),
89
89
  * by using React's `ref` feature (read more on the [Instance methods](@/guides/getting-started/react-methods.md) page).
90
90
  * :::
91
91
  *
@@ -4046,7 +4046,7 @@ export default function Core(rootElement, userSettings) {
4046
4046
  this.getShortcutManager().destroy();
4047
4047
  metaManager.clearCache();
4048
4048
  if (isRootInstance(instance)) {
4049
- var licenseInfo = this.rootDocument.querySelector('#hot-display-license-info');
4049
+ var licenseInfo = this.rootDocument.querySelector('.hot-display-license-info');
4050
4050
  if (licenseInfo) {
4051
4051
  licenseInfo.parentNode.removeChild(licenseInfo);
4052
4052
  }
@@ -4426,6 +4426,12 @@ export default function Core(rootElement, userSettings) {
4426
4426
  },
4427
4427
  ownerWindow: this.rootWindow
4428
4428
  });
4429
+ this.addHook('beforeOnCellMouseDown', function (event) {
4430
+ // Releasing keys as some browser/system shortcuts break events sequence (thus the `keyup` event isn't triggered).
4431
+ if (event.ctrlKey === false && event.metaKey === false) {
4432
+ shortcutManager.releasePressedKeys();
4433
+ }
4434
+ });
4429
4435
 
4430
4436
  /**
4431
4437
  * Returns instance of a manager responsible for handling shortcuts stored in some contexts. It run actions after
@@ -35,7 +35,7 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
35
35
  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); }
36
36
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
37
37
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
38
- 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; }
38
+ 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; }
39
39
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
40
40
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
41
41
  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); } }
@@ -3,7 +3,7 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
3
3
  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); }
4
4
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
5
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
- 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; }
6
+ 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; }
7
7
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
8
8
  import "core-js/modules/es.array.iterator.js";
9
9
  import "core-js/modules/es.map.js";
@@ -28,7 +28,7 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
28
28
  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); }
29
29
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
30
30
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
31
- 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; }
31
+ 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; }
32
32
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
33
33
  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); } }
34
34
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
@@ -4,7 +4,7 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
4
4
  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); }
5
5
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
6
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
7
- 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; }
7
+ 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; }
8
8
  import "core-js/modules/es.array.iterator.js";
9
9
  import "core-js/modules/es.object.to-string.js";
10
10
  import "core-js/modules/es.set.js";
@@ -27,7 +27,7 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
27
27
  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); }
28
28
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
29
29
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
30
- 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; }
30
+ 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; }
31
31
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
32
32
  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); } }
33
33
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
@@ -4,7 +4,7 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
4
4
  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); }
5
5
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
6
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
7
- 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; }
7
+ 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; }
8
8
  import "core-js/modules/es.array.from.js";
9
9
  import "core-js/modules/es.string.iterator.js";
10
10
  import "core-js/modules/es.array.iterator.js";