handsontable 16.0.1 → 16.1.0-next-91b8a0f-20250905

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 (489) hide show
  1. package/3rdparty/walkontable/src/overlays.js +12 -2
  2. package/3rdparty/walkontable/src/overlays.mjs +12 -2
  3. package/3rdparty/walkontable/src/viewport.js +2 -6
  4. package/3rdparty/walkontable/src/viewport.mjs +2 -6
  5. package/CHANGELOG.md +37 -0
  6. package/base.js +2 -2
  7. package/base.mjs +2 -2
  8. package/cellTypes/autocompleteType/accessors/index.js +7 -0
  9. package/cellTypes/autocompleteType/accessors/index.mjs +2 -0
  10. package/cellTypes/autocompleteType/accessors/valueGetter.js +14 -0
  11. package/cellTypes/autocompleteType/accessors/valueGetter.mjs +10 -0
  12. package/cellTypes/autocompleteType/accessors/valueSetter.js +25 -0
  13. package/cellTypes/autocompleteType/accessors/valueSetter.mjs +21 -0
  14. package/cellTypes/autocompleteType/autocompleteType.js +4 -1
  15. package/cellTypes/autocompleteType/autocompleteType.mjs +4 -1
  16. package/cellTypes/checkboxType/accessors/index.js +5 -0
  17. package/cellTypes/checkboxType/accessors/index.mjs +1 -0
  18. package/cellTypes/checkboxType/accessors/valueSetter.js +26 -0
  19. package/cellTypes/checkboxType/accessors/valueSetter.mjs +22 -0
  20. package/cellTypes/checkboxType/checkboxType.js +3 -1
  21. package/cellTypes/checkboxType/checkboxType.mjs +3 -1
  22. package/cellTypes/dropdownType/accessors/index.js +7 -0
  23. package/cellTypes/dropdownType/accessors/index.mjs +2 -0
  24. package/cellTypes/dropdownType/accessors/valueGetter.js +14 -0
  25. package/cellTypes/dropdownType/accessors/valueGetter.mjs +10 -0
  26. package/cellTypes/dropdownType/accessors/valueSetter.js +17 -0
  27. package/cellTypes/dropdownType/accessors/valueSetter.mjs +13 -0
  28. package/cellTypes/dropdownType/dropdownType.js +4 -1
  29. package/cellTypes/dropdownType/dropdownType.mjs +4 -1
  30. package/cellTypes/numericType/accessors/index.js +5 -0
  31. package/cellTypes/numericType/accessors/index.mjs +1 -0
  32. package/cellTypes/numericType/accessors/valueSetter.js +19 -0
  33. package/cellTypes/numericType/accessors/valueSetter.mjs +15 -0
  34. package/cellTypes/numericType/numericType.js +3 -1
  35. package/cellTypes/numericType/numericType.mjs +3 -1
  36. package/core/focusCatcher/index.js +37 -112
  37. package/core/focusCatcher/index.mjs +35 -110
  38. package/core/focusCatcher/utils.js +31 -0
  39. package/core/focusCatcher/utils.mjs +27 -0
  40. package/core/hooks/constants.js +242 -0
  41. package/core/hooks/constants.mjs +242 -0
  42. package/core/hooks/index.d.ts +22 -0
  43. package/core/viewportScroll/scrollStrategies/focusScroll.js +5 -1
  44. package/core/viewportScroll/scrollStrategies/focusScroll.mjs +5 -1
  45. package/core/viewportScroll/utils.js +1 -1
  46. package/core/viewportScroll/utils.mjs +1 -1
  47. package/core.d.ts +4 -0
  48. package/core.js +237 -139
  49. package/core.mjs +240 -142
  50. package/dataMap/dataMap.js +13 -3
  51. package/dataMap/dataMap.mjs +14 -4
  52. package/dataMap/dataSource.js +16 -0
  53. package/dataMap/dataSource.mjs +16 -0
  54. package/dataMap/metaManager/lazyFactoryMap.js +4 -3
  55. package/dataMap/metaManager/lazyFactoryMap.mjs +2 -1
  56. package/dataMap/metaManager/metaLayers/cellMeta.js +3 -2
  57. package/dataMap/metaManager/metaLayers/cellMeta.mjs +3 -2
  58. package/dataMap/metaManager/metaSchema.js +289 -4
  59. package/dataMap/metaManager/metaSchema.mjs +289 -4
  60. package/dataMap/metaManager/utils.js +0 -11
  61. package/dataMap/metaManager/utils.mjs +0 -10
  62. package/dataMap/replaceData.js +1 -0
  63. package/dataMap/replaceData.mjs +1 -0
  64. package/dist/handsontable.css +281 -4
  65. package/dist/handsontable.full.css +281 -4
  66. package/dist/handsontable.full.js +7842 -2990
  67. package/dist/handsontable.full.min.css +4 -5
  68. package/dist/handsontable.full.min.js +167 -165
  69. package/dist/handsontable.js +9638 -4807
  70. package/dist/handsontable.min.css +4 -4
  71. package/dist/handsontable.min.js +52 -50
  72. package/dist/languages/all.js +231 -21
  73. package/dist/languages/all.min.js +1 -1
  74. package/dist/languages/ar-AR.js +11 -1
  75. package/dist/languages/ar-AR.min.js +1 -1
  76. package/dist/languages/cs-CZ.js +11 -1
  77. package/dist/languages/cs-CZ.min.js +1 -1
  78. package/dist/languages/de-CH.js +11 -1
  79. package/dist/languages/de-CH.min.js +1 -1
  80. package/dist/languages/de-DE.js +11 -1
  81. package/dist/languages/de-DE.min.js +1 -1
  82. package/dist/languages/en-US.js +11 -1
  83. package/dist/languages/en-US.min.js +1 -1
  84. package/dist/languages/es-MX.js +11 -1
  85. package/dist/languages/es-MX.min.js +1 -1
  86. package/dist/languages/fa-IR.js +11 -1
  87. package/dist/languages/fa-IR.min.js +1 -1
  88. package/dist/languages/fr-FR.js +11 -1
  89. package/dist/languages/fr-FR.min.js +1 -1
  90. package/dist/languages/hr-HR.js +11 -1
  91. package/dist/languages/hr-HR.min.js +1 -1
  92. package/dist/languages/it-IT.js +11 -1
  93. package/dist/languages/it-IT.min.js +1 -1
  94. package/dist/languages/ja-JP.js +11 -1
  95. package/dist/languages/ja-JP.min.js +1 -1
  96. package/dist/languages/ko-KR.js +11 -1
  97. package/dist/languages/ko-KR.min.js +1 -1
  98. package/dist/languages/lv-LV.js +11 -1
  99. package/dist/languages/lv-LV.min.js +1 -1
  100. package/dist/languages/nb-NO.js +11 -1
  101. package/dist/languages/nb-NO.min.js +1 -1
  102. package/dist/languages/nl-NL.js +11 -1
  103. package/dist/languages/nl-NL.min.js +1 -1
  104. package/dist/languages/pl-PL.js +11 -1
  105. package/dist/languages/pl-PL.min.js +1 -1
  106. package/dist/languages/pt-BR.js +11 -1
  107. package/dist/languages/pt-BR.min.js +1 -1
  108. package/dist/languages/ru-RU.js +11 -1
  109. package/dist/languages/ru-RU.min.js +1 -1
  110. package/dist/languages/sr-SP.js +11 -1
  111. package/dist/languages/sr-SP.min.js +1 -1
  112. package/dist/languages/zh-CN.js +11 -1
  113. package/dist/languages/zh-CN.min.js +1 -1
  114. package/dist/languages/zh-TW.js +11 -1
  115. package/dist/languages/zh-TW.min.js +1 -1
  116. package/editorManager.js +4 -4
  117. package/editorManager.mjs +4 -4
  118. package/editors/autocompleteEditor/autocompleteEditor.js +50 -112
  119. package/editors/autocompleteEditor/autocompleteEditor.mjs +51 -113
  120. package/editors/baseEditor/baseEditor.js +10 -6
  121. package/editors/baseEditor/baseEditor.mjs +10 -6
  122. package/editors/handsontableEditor/handsontableEditor.js +9 -9
  123. package/editors/handsontableEditor/handsontableEditor.mjs +9 -9
  124. package/editors/textEditor/textEditor.js +0 -7
  125. package/editors/textEditor/textEditor.mjs +0 -7
  126. package/focusManager.js +2 -2
  127. package/focusManager.mjs +2 -2
  128. package/helpers/a11y.js +15 -2
  129. package/helpers/a11y.mjs +10 -2
  130. package/helpers/console.js +12 -0
  131. package/helpers/console.mjs +11 -0
  132. package/helpers/dom/element.js +4 -4
  133. package/helpers/dom/element.mjs +4 -4
  134. package/helpers/mixed.js +65 -2
  135. package/helpers/mixed.mjs +63 -2
  136. package/helpers/number.js +28 -0
  137. package/helpers/number.mjs +26 -0
  138. package/helpers/object.js +35 -0
  139. package/helpers/object.mjs +34 -0
  140. package/helpers/string.js +19 -0
  141. package/helpers/string.mjs +18 -0
  142. package/helpers/templateLiteralTag.js +57 -1
  143. package/helpers/templateLiteralTag.mjs +56 -1
  144. package/i18n/constants.js +13 -1
  145. package/i18n/constants.mjs +13 -1
  146. package/i18n/languages/ar-AR.js +11 -1
  147. package/i18n/languages/ar-AR.mjs +11 -1
  148. package/i18n/languages/cs-CZ.js +11 -1
  149. package/i18n/languages/cs-CZ.mjs +11 -1
  150. package/i18n/languages/de-CH.js +11 -1
  151. package/i18n/languages/de-CH.mjs +11 -1
  152. package/i18n/languages/de-DE.js +11 -1
  153. package/i18n/languages/de-DE.mjs +11 -1
  154. package/i18n/languages/en-US.js +11 -1
  155. package/i18n/languages/en-US.mjs +11 -1
  156. package/i18n/languages/es-MX.js +11 -1
  157. package/i18n/languages/es-MX.mjs +11 -1
  158. package/i18n/languages/fa-IR.js +11 -1
  159. package/i18n/languages/fa-IR.mjs +11 -1
  160. package/i18n/languages/fr-FR.js +11 -1
  161. package/i18n/languages/fr-FR.mjs +11 -1
  162. package/i18n/languages/hr-HR.js +11 -1
  163. package/i18n/languages/hr-HR.mjs +11 -1
  164. package/i18n/languages/it-IT.js +11 -1
  165. package/i18n/languages/it-IT.mjs +11 -1
  166. package/i18n/languages/ja-JP.js +11 -1
  167. package/i18n/languages/ja-JP.mjs +11 -1
  168. package/i18n/languages/ko-KR.js +11 -1
  169. package/i18n/languages/ko-KR.mjs +11 -1
  170. package/i18n/languages/lv-LV.js +11 -1
  171. package/i18n/languages/lv-LV.mjs +11 -1
  172. package/i18n/languages/nb-NO.js +11 -1
  173. package/i18n/languages/nb-NO.mjs +11 -1
  174. package/i18n/languages/nl-NL.js +11 -1
  175. package/i18n/languages/nl-NL.mjs +11 -1
  176. package/i18n/languages/pl-PL.js +11 -1
  177. package/i18n/languages/pl-PL.mjs +11 -1
  178. package/i18n/languages/pt-BR.js +11 -1
  179. package/i18n/languages/pt-BR.mjs +11 -1
  180. package/i18n/languages/ru-RU.js +11 -1
  181. package/i18n/languages/ru-RU.mjs +11 -1
  182. package/i18n/languages/sr-SP.js +11 -1
  183. package/i18n/languages/sr-SP.mjs +11 -1
  184. package/i18n/languages/zh-CN.js +11 -1
  185. package/i18n/languages/zh-CN.mjs +11 -1
  186. package/i18n/languages/zh-TW.js +11 -1
  187. package/i18n/languages/zh-TW.mjs +11 -1
  188. package/i18n/phraseFormatters/index.js +3 -1
  189. package/i18n/phraseFormatters/index.mjs +3 -1
  190. package/i18n/registry.js +5 -6
  191. package/i18n/registry.mjs +5 -6
  192. package/index.d.ts +27 -0
  193. package/languages/all.js +231 -21
  194. package/languages/ar-AR.js +11 -1
  195. package/languages/ar-AR.mjs +11 -1
  196. package/languages/cs-CZ.js +11 -1
  197. package/languages/cs-CZ.mjs +11 -1
  198. package/languages/de-CH.js +11 -1
  199. package/languages/de-CH.mjs +11 -1
  200. package/languages/de-DE.js +11 -1
  201. package/languages/de-DE.mjs +11 -1
  202. package/languages/en-US.js +11 -1
  203. package/languages/en-US.mjs +11 -1
  204. package/languages/es-MX.js +11 -1
  205. package/languages/es-MX.mjs +11 -1
  206. package/languages/fa-IR.js +11 -1
  207. package/languages/fa-IR.mjs +11 -1
  208. package/languages/fr-FR.js +11 -1
  209. package/languages/fr-FR.mjs +11 -1
  210. package/languages/hr-HR.js +11 -1
  211. package/languages/hr-HR.mjs +11 -1
  212. package/languages/index.js +231 -21
  213. package/languages/it-IT.js +11 -1
  214. package/languages/it-IT.mjs +11 -1
  215. package/languages/ja-JP.js +11 -1
  216. package/languages/ja-JP.mjs +11 -1
  217. package/languages/ko-KR.js +11 -1
  218. package/languages/ko-KR.mjs +11 -1
  219. package/languages/lv-LV.js +11 -1
  220. package/languages/lv-LV.mjs +11 -1
  221. package/languages/nb-NO.js +11 -1
  222. package/languages/nb-NO.mjs +11 -1
  223. package/languages/nl-NL.js +11 -1
  224. package/languages/nl-NL.mjs +11 -1
  225. package/languages/pl-PL.js +11 -1
  226. package/languages/pl-PL.mjs +11 -1
  227. package/languages/pt-BR.js +11 -1
  228. package/languages/pt-BR.mjs +11 -1
  229. package/languages/ru-RU.js +11 -1
  230. package/languages/ru-RU.mjs +11 -1
  231. package/languages/sr-SP.js +11 -1
  232. package/languages/sr-SP.mjs +11 -1
  233. package/languages/zh-CN.js +11 -1
  234. package/languages/zh-CN.mjs +11 -1
  235. package/languages/zh-TW.js +11 -1
  236. package/languages/zh-TW.mjs +11 -1
  237. package/mixins/localHooks.js +16 -0
  238. package/mixins/localHooks.mjs +16 -0
  239. package/package.json +19 -1
  240. package/plugins/autoRowSize/autoRowSize.js +43 -6
  241. package/plugins/autoRowSize/autoRowSize.mjs +43 -6
  242. package/plugins/autofill/autofill.js +50 -3
  243. package/plugins/autofill/autofill.mjs +50 -3
  244. package/plugins/base/base.js +86 -15
  245. package/plugins/base/base.mjs +87 -16
  246. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -4
  247. package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -4
  248. package/plugins/columnSorting/columnSorting.js +3 -3
  249. package/plugins/columnSorting/columnSorting.mjs +3 -3
  250. package/plugins/comments/comments.js +52 -22
  251. package/plugins/comments/comments.mjs +52 -22
  252. package/plugins/comments/contextMenuItem/addEditComment.js +3 -3
  253. package/plugins/comments/contextMenuItem/addEditComment.mjs +3 -3
  254. package/plugins/comments/contextMenuItem/readOnlyComment.js +2 -2
  255. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +2 -2
  256. package/plugins/comments/contextMenuItem/removeComment.js +2 -2
  257. package/plugins/comments/contextMenuItem/removeComment.mjs +2 -2
  258. package/plugins/contextMenu/contextMenu.js +4 -5
  259. package/plugins/contextMenu/contextMenu.mjs +4 -5
  260. package/plugins/contextMenu/menu/cursor.js +1 -1
  261. package/plugins/contextMenu/menu/cursor.mjs +1 -1
  262. package/plugins/contextMenu/menu/defaultShortcutsList.js +5 -5
  263. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +5 -5
  264. package/plugins/contextMenu/menu/menu.js +3 -3
  265. package/plugins/contextMenu/menu/menu.mjs +3 -3
  266. package/plugins/contextMenu/menu/positioner.js +1 -1
  267. package/plugins/contextMenu/menu/positioner.mjs +1 -1
  268. package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
  269. package/plugins/contextMenu/predefinedItems/alignment.mjs +1 -1
  270. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  271. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -1
  272. package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -3
  273. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -3
  274. package/plugins/contextMenu/predefinedItems/columnRight.js +3 -3
  275. package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -3
  276. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
  277. package/plugins/contextMenu/predefinedItems/readOnly.mjs +1 -1
  278. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  279. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +1 -1
  280. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  281. package/plugins/contextMenu/predefinedItems/removeRow.mjs +1 -1
  282. package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -3
  283. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -3
  284. package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -3
  285. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -3
  286. package/plugins/copyPaste/contextMenuItem/copy.js +1 -1
  287. package/plugins/copyPaste/contextMenuItem/copy.mjs +1 -1
  288. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +3 -3
  289. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +3 -3
  290. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +3 -3
  291. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +3 -3
  292. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +3 -3
  293. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +3 -3
  294. package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
  295. package/plugins/copyPaste/contextMenuItem/cut.mjs +1 -1
  296. package/plugins/copyPaste/copyPaste.js +75 -40
  297. package/plugins/copyPaste/copyPaste.mjs +76 -41
  298. package/plugins/customBorders/customBorders.js +1 -1
  299. package/plugins/customBorders/customBorders.mjs +1 -1
  300. package/plugins/dialog/dialog.d.ts +23 -0
  301. package/plugins/dialog/dialog.js +489 -0
  302. package/plugins/dialog/dialog.mjs +485 -0
  303. package/plugins/dialog/index.d.ts +1 -0
  304. package/plugins/dialog/index.js +7 -0
  305. package/plugins/dialog/index.mjs +1 -0
  306. package/plugins/dialog/ui.js +264 -0
  307. package/plugins/dialog/ui.mjs +259 -0
  308. package/plugins/dropdownMenu/dropdownMenu.js +5 -4
  309. package/plugins/dropdownMenu/dropdownMenu.mjs +5 -4
  310. package/plugins/filters/filters.js +2 -2
  311. package/plugins/filters/filters.mjs +2 -2
  312. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +3 -3
  313. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +3 -3
  314. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +4 -4
  315. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +4 -4
  316. package/plugins/hiddenRows/contextMenuItem/hideRow.js +3 -3
  317. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +3 -3
  318. package/plugins/hiddenRows/contextMenuItem/showRow.js +4 -4
  319. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +4 -4
  320. package/plugins/index.d.ts +9 -0
  321. package/plugins/index.js +9 -0
  322. package/plugins/index.mjs +7 -1
  323. package/plugins/loading/content.js +36 -0
  324. package/plugins/loading/content.mjs +31 -0
  325. package/plugins/loading/index.d.ts +1 -0
  326. package/plugins/loading/index.js +7 -0
  327. package/plugins/loading/index.mjs +1 -0
  328. package/plugins/loading/loading.d.ts +19 -0
  329. package/plugins/loading/loading.js +290 -0
  330. package/plugins/loading/loading.mjs +285 -0
  331. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  332. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  333. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  334. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  335. package/plugins/manualColumnMove/manualColumnMove.js +3 -3
  336. package/plugins/manualColumnMove/manualColumnMove.mjs +3 -3
  337. package/plugins/manualColumnResize/manualColumnResize.js +3 -3
  338. package/plugins/manualColumnResize/manualColumnResize.mjs +3 -3
  339. package/plugins/manualRowMove/manualRowMove.js +4 -4
  340. package/plugins/manualRowMove/manualRowMove.mjs +4 -4
  341. package/plugins/manualRowResize/manualRowResize.js +5 -2
  342. package/plugins/manualRowResize/manualRowResize.mjs +5 -2
  343. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +15 -15
  344. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +15 -15
  345. package/plugins/mergeCells/focusOrder.js +75 -39
  346. package/plugins/mergeCells/focusOrder.mjs +75 -39
  347. package/plugins/mergeCells/mergeCells.js +26 -19
  348. package/plugins/mergeCells/mergeCells.mjs +26 -19
  349. package/plugins/mergeCells/renderer.js +14 -8
  350. package/plugins/mergeCells/renderer.mjs +14 -8
  351. package/plugins/multiColumnSorting/multiColumnSorting.js +3 -3
  352. package/plugins/multiColumnSorting/multiColumnSorting.mjs +3 -3
  353. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +3 -3
  354. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +3 -3
  355. package/plugins/nestedHeaders/nestedHeaders.js +47 -41
  356. package/plugins/nestedHeaders/nestedHeaders.mjs +47 -41
  357. package/plugins/nestedRows/nestedRows.js +3 -3
  358. package/plugins/nestedRows/nestedRows.mjs +3 -3
  359. package/plugins/nestedRows/ui/collapsing.js +1 -2
  360. package/plugins/nestedRows/ui/collapsing.mjs +1 -2
  361. package/plugins/nestedRows/ui/contextMenu.js +4 -4
  362. package/plugins/nestedRows/ui/contextMenu.mjs +4 -4
  363. package/plugins/nestedRows/ui/headers.js +4 -1
  364. package/plugins/nestedRows/ui/headers.mjs +4 -1
  365. package/plugins/pagination/focusController.js +27 -0
  366. package/plugins/pagination/focusController.mjs +23 -0
  367. package/plugins/pagination/index.d.ts +1 -0
  368. package/plugins/pagination/index.js +7 -0
  369. package/plugins/pagination/index.mjs +1 -0
  370. package/plugins/pagination/pagination.d.ts +52 -0
  371. package/plugins/pagination/pagination.js +1034 -0
  372. package/plugins/pagination/pagination.mjs +1030 -0
  373. package/plugins/pagination/strategies/autoPageSize.js +96 -0
  374. package/plugins/pagination/strategies/autoPageSize.mjs +92 -0
  375. package/plugins/pagination/strategies/fixedPageSize.js +88 -0
  376. package/plugins/pagination/strategies/fixedPageSize.mjs +84 -0
  377. package/plugins/pagination/strategies/index.js +22 -0
  378. package/plugins/pagination/strategies/index.mjs +18 -0
  379. package/plugins/pagination/ui.js +449 -0
  380. package/plugins/pagination/ui.mjs +443 -0
  381. package/plugins/pagination/utils.js +28 -0
  382. package/plugins/pagination/utils.mjs +24 -0
  383. package/plugins/stretchColumns/calculator.js +4 -0
  384. package/plugins/stretchColumns/calculator.mjs +4 -0
  385. package/plugins/stretchColumns/stretchColumns.js +1 -1
  386. package/plugins/stretchColumns/stretchColumns.mjs +1 -1
  387. package/plugins/undoRedo/actions/dataChange.js +17 -15
  388. package/plugins/undoRedo/actions/dataChange.mjs +17 -15
  389. package/renderers/checkboxRenderer/checkboxRenderer.js +3 -3
  390. package/renderers/checkboxRenderer/checkboxRenderer.mjs +3 -3
  391. package/selection/range.js +11 -0
  392. package/selection/range.mjs +11 -0
  393. package/selection/selection.js +163 -124
  394. package/selection/selection.mjs +163 -124
  395. package/selection/transformation/_base.js +448 -0
  396. package/selection/transformation/_base.mjs +443 -0
  397. package/selection/transformation/extender.js +55 -0
  398. package/selection/transformation/extender.mjs +51 -0
  399. package/selection/transformation/focus.js +77 -0
  400. package/selection/transformation/focus.mjs +73 -0
  401. package/selection/transformation/index.js +7 -0
  402. package/selection/transformation/index.mjs +2 -0
  403. package/selection/utils.js +2 -1
  404. package/selection/utils.mjs +2 -1
  405. package/settings.d.ts +10 -1
  406. package/shortcutContexts/commands/editor/fastOpen.js +1 -1
  407. package/shortcutContexts/commands/editor/fastOpen.mjs +1 -1
  408. package/shortcutContexts/commands/editor/open.js +10 -4
  409. package/shortcutContexts/commands/editor/open.mjs +10 -4
  410. package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
  411. package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
  412. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +2 -2
  413. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +2 -2
  414. package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
  415. package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
  416. package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
  417. package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
  418. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
  419. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
  420. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +1 -1
  421. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +1 -1
  422. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +1 -1
  423. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +1 -1
  424. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +1 -1
  425. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +1 -1
  426. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +1 -1
  427. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +1 -1
  428. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +1 -1
  429. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +1 -1
  430. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +1 -1
  431. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +1 -1
  432. package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
  433. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
  434. package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
  435. package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
  436. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +2 -2
  437. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +2 -2
  438. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +2 -2
  439. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +2 -2
  440. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +5 -2
  441. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +5 -2
  442. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +5 -2
  443. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +5 -2
  444. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +1 -1
  445. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +1 -1
  446. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +1 -1
  447. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +1 -1
  448. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +1 -1
  449. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +1 -1
  450. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +1 -1
  451. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +1 -1
  452. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +1 -1
  453. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +1 -1
  454. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +1 -1
  455. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +1 -1
  456. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +2 -2
  457. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +2 -2
  458. package/shortcutContexts/commands/scrollToFocusedCell.js +1 -1
  459. package/shortcutContexts/commands/scrollToFocusedCell.mjs +1 -1
  460. package/shortcutContexts/grid.js +3 -3
  461. package/shortcutContexts/grid.mjs +3 -3
  462. package/shortcuts/context.js +4 -1
  463. package/shortcuts/context.mjs +4 -1
  464. package/shortcuts/manager.js +17 -3
  465. package/shortcuts/manager.mjs +17 -3
  466. package/styles/handsontable.css +288 -22
  467. package/styles/handsontable.min.css +3 -3
  468. package/styles/ht-theme-classic.css +828 -0
  469. package/styles/ht-theme-classic.min.css +30 -0
  470. package/styles/ht-theme-horizon.css +122 -26
  471. package/styles/ht-theme-horizon.min.css +3 -3
  472. package/styles/ht-theme-main.css +124 -28
  473. package/styles/ht-theme-main.min.css +3 -3
  474. package/tableView.js +61 -25
  475. package/tableView.mjs +61 -25
  476. package/utils/a11yAnnouncer.js +70 -0
  477. package/utils/a11yAnnouncer.mjs +64 -0
  478. package/{core/focusCatcher → utils}/focusDetector.js +30 -12
  479. package/{core/focusCatcher → utils}/focusDetector.mjs +30 -12
  480. package/utils/samplesGenerator.js +17 -1
  481. package/utils/samplesGenerator.mjs +17 -1
  482. package/utils/stylesHandler.js +23 -8
  483. package/utils/stylesHandler.mjs +23 -8
  484. package/utils/valueAccessors.js +45 -0
  485. package/utils/valueAccessors.mjs +40 -0
  486. package/validators/autocompleteValidator/autocompleteValidator.js +2 -1
  487. package/validators/autocompleteValidator/autocompleteValidator.mjs +2 -1
  488. package/selection/transformation.js +0 -335
  489. package/selection/transformation.mjs +0 -331
@@ -138,6 +138,7 @@ class ContextMenu extends _base.BasePlugin {
138
138
  return _this.executeCommand.call(_this, ...params);
139
139
  });
140
140
  this.addHook('afterOnCellContextMenu', event => _assertClassBrand(_ContextMenu_brand, this, _onAfterOnCellContextMenu).call(this, event));
141
+ this.addHook('beforeDialogShow', () => this.close());
141
142
  this.registerShortcuts();
142
143
  super.enablePlugin();
143
144
  }
@@ -178,7 +179,7 @@ class ContextMenu extends _base.BasePlugin {
178
179
  callback: () => {
179
180
  const {
180
181
  highlight
181
- } = this.hot.getSelectedRangeLast();
182
+ } = this.hot.getSelectedRangeActive();
182
183
  this.hot.scrollToFocusedCell();
183
184
  const rect = this.hot.getCell(highlight.row, highlight.col, true).getBoundingClientRect();
184
185
  const offset = (0, _utils.getDocumentOffsetByElement)(this.menu.container, this.hot.rootDocument);
@@ -195,7 +196,7 @@ class ContextMenu extends _base.BasePlugin {
195
196
  },
196
197
  runOnlyIf: () => {
197
198
  var _this$hot$getSelected;
198
- const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
199
+ const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeActive()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
199
200
  return highlight && this.hot.selection.isCellVisible(highlight) && !this.menu.isOpened();
200
201
  },
201
202
  group: SHORTCUTS_GROUP
@@ -236,10 +237,8 @@ class ContextMenu extends _base.BasePlugin {
236
237
  }
237
238
  this.prepareMenuItems();
238
239
  this.menu.open();
239
- const themeHasTableBorder = this.menu.tableBorderWidth > 0;
240
240
  (0, _object.objectEach)(offset, (value, key) => {
241
- const valueWithoutBorder = ['below', 'right'].includes(key) ? value + 1 : value - 1;
242
- this.menu.setOffset(key, themeHasTableBorder ? value : valueWithoutBorder);
241
+ this.menu.setOffset(key, value);
243
242
  });
244
243
  this.menu.setPosition(position);
245
244
  }
@@ -135,6 +135,7 @@ export class ContextMenu extends BasePlugin {
135
135
  return _this.executeCommand.call(_this, ...params);
136
136
  });
137
137
  this.addHook('afterOnCellContextMenu', event => _assertClassBrand(_ContextMenu_brand, this, _onAfterOnCellContextMenu).call(this, event));
138
+ this.addHook('beforeDialogShow', () => this.close());
138
139
  this.registerShortcuts();
139
140
  super.enablePlugin();
140
141
  }
@@ -175,7 +176,7 @@ export class ContextMenu extends BasePlugin {
175
176
  callback: () => {
176
177
  const {
177
178
  highlight
178
- } = this.hot.getSelectedRangeLast();
179
+ } = this.hot.getSelectedRangeActive();
179
180
  this.hot.scrollToFocusedCell();
180
181
  const rect = this.hot.getCell(highlight.row, highlight.col, true).getBoundingClientRect();
181
182
  const offset = getDocumentOffsetByElement(this.menu.container, this.hot.rootDocument);
@@ -192,7 +193,7 @@ export class ContextMenu extends BasePlugin {
192
193
  },
193
194
  runOnlyIf: () => {
194
195
  var _this$hot$getSelected;
195
- const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
196
+ const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeActive()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
196
197
  return highlight && this.hot.selection.isCellVisible(highlight) && !this.menu.isOpened();
197
198
  },
198
199
  group: SHORTCUTS_GROUP
@@ -233,10 +234,8 @@ export class ContextMenu extends BasePlugin {
233
234
  }
234
235
  this.prepareMenuItems();
235
236
  this.menu.open();
236
- const themeHasTableBorder = this.menu.tableBorderWidth > 0;
237
237
  objectEach(offset, (value, key) => {
238
- const valueWithoutBorder = ['below', 'right'].includes(key) ? value + 1 : value - 1;
239
- this.menu.setOffset(key, themeHasTableBorder ? value : valueWithoutBorder);
238
+ this.menu.setOffset(key, value);
240
239
  });
241
240
  this.menu.setPosition(position);
242
241
  }
@@ -126,7 +126,7 @@ class Cursor {
126
126
  * @returns {boolean}
127
127
  */
128
128
  fitsOnRight(element) {
129
- let viewportWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rootWindow.innerWidth;
129
+ let viewportWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rootWindow.document.documentElement.clientWidth;
130
130
  return this.leftRelative + this.cellWidth + element.offsetWidth <= viewportWidth;
131
131
  }
132
132
 
@@ -123,7 +123,7 @@ export class Cursor {
123
123
  * @returns {boolean}
124
124
  */
125
125
  fitsOnRight(element) {
126
- let viewportWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rootWindow.innerWidth;
126
+ let viewportWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rootWindow.document.documentElement.clientWidth;
127
127
  return this.leftRelative + this.cellWidth + element.offsetWidth <= viewportWidth;
128
128
  }
129
129
 
@@ -41,7 +41,7 @@ function createDefaultShortcutsList(menu) {
41
41
  }, {
42
42
  keys: [[hot.isRtl() ? 'ArrowLeft' : 'ArrowRight']],
43
43
  callback: () => {
44
- const selection = hotMenu.getSelectedLast();
44
+ const selection = hotMenu.getSelectedActive();
45
45
  if (selection) {
46
46
  const subMenu = menu.openSubMenu(selection[0]);
47
47
  if (subMenu) {
@@ -52,7 +52,7 @@ function createDefaultShortcutsList(menu) {
52
52
  }, {
53
53
  keys: [[hot.isRtl() ? 'ArrowRight' : 'ArrowLeft']],
54
54
  callback: () => {
55
- const selection = hotMenu.getSelectedLast();
55
+ const selection = hotMenu.getSelectedActive();
56
56
  if (selection && menu.isSubMenu()) {
57
57
  menu.close();
58
58
  if (menu.isSubMenu()) {
@@ -69,7 +69,7 @@ function createDefaultShortcutsList(menu) {
69
69
  }, {
70
70
  keys: [['Enter'], ['Space']],
71
71
  callback: event => {
72
- const selection = hotMenu.getSelectedLast();
72
+ const selection = hotMenu.getSelectedActive();
73
73
  if (!selection) {
74
74
  return;
75
75
  }
@@ -83,7 +83,7 @@ function createDefaultShortcutsList(menu) {
83
83
  }, {
84
84
  keys: [['PageUp']],
85
85
  callback: () => {
86
- const selection = hotMenu.getSelectedLast();
86
+ const selection = hotMenu.getSelectedActive();
87
87
  if (selection) {
88
88
  hotMenu.selection.transformStart(-hotMenu.countVisibleRows(), 0);
89
89
  } else {
@@ -93,7 +93,7 @@ function createDefaultShortcutsList(menu) {
93
93
  }, {
94
94
  keys: [['PageDown']],
95
95
  callback: () => {
96
- const selection = hotMenu.getSelectedLast();
96
+ const selection = hotMenu.getSelectedActive();
97
97
  if (selection) {
98
98
  hotMenu.selection.transformStart(hotMenu.countVisibleRows(), 0);
99
99
  } else {
@@ -37,7 +37,7 @@ export function createDefaultShortcutsList(menu) {
37
37
  }, {
38
38
  keys: [[hot.isRtl() ? 'ArrowLeft' : 'ArrowRight']],
39
39
  callback: () => {
40
- const selection = hotMenu.getSelectedLast();
40
+ const selection = hotMenu.getSelectedActive();
41
41
  if (selection) {
42
42
  const subMenu = menu.openSubMenu(selection[0]);
43
43
  if (subMenu) {
@@ -48,7 +48,7 @@ export function createDefaultShortcutsList(menu) {
48
48
  }, {
49
49
  keys: [[hot.isRtl() ? 'ArrowRight' : 'ArrowLeft']],
50
50
  callback: () => {
51
- const selection = hotMenu.getSelectedLast();
51
+ const selection = hotMenu.getSelectedActive();
52
52
  if (selection && menu.isSubMenu()) {
53
53
  menu.close();
54
54
  if (menu.isSubMenu()) {
@@ -65,7 +65,7 @@ export function createDefaultShortcutsList(menu) {
65
65
  }, {
66
66
  keys: [['Enter'], ['Space']],
67
67
  callback: event => {
68
- const selection = hotMenu.getSelectedLast();
68
+ const selection = hotMenu.getSelectedActive();
69
69
  if (!selection) {
70
70
  return;
71
71
  }
@@ -79,7 +79,7 @@ export function createDefaultShortcutsList(menu) {
79
79
  }, {
80
80
  keys: [['PageUp']],
81
81
  callback: () => {
82
- const selection = hotMenu.getSelectedLast();
82
+ const selection = hotMenu.getSelectedActive();
83
83
  if (selection) {
84
84
  hotMenu.selection.transformStart(-hotMenu.countVisibleRows(), 0);
85
85
  } else {
@@ -89,7 +89,7 @@ export function createDefaultShortcutsList(menu) {
89
89
  }, {
90
90
  keys: [['PageDown']],
91
91
  callback: () => {
92
- const selection = hotMenu.getSelectedLast();
92
+ const selection = hotMenu.getSelectedActive();
93
93
  if (selection) {
94
94
  hotMenu.selection.transformStart(hotMenu.countVisibleRows(), 0);
95
95
  } else {
@@ -221,7 +221,7 @@ class Menu {
221
221
  * @returns {object|null}
222
222
  */
223
223
  getSelectedItem() {
224
- return this.hasSelectedItem() ? this.hotMenu.getSourceDataAtRow(this.hotMenu.getSelectedLast()[0]) : null;
224
+ return this.hasSelectedItem() ? this.hotMenu.getSourceDataAtRow(this.hotMenu.getSelectedActive()[0]) : null;
225
225
  }
226
226
 
227
227
  /**
@@ -230,7 +230,7 @@ class Menu {
230
230
  * @returns {boolean}
231
231
  */
232
232
  hasSelectedItem() {
233
- return Array.isArray(this.hotMenu.getSelectedLast());
233
+ return Array.isArray(this.hotMenu.getSelectedActive());
234
234
  }
235
235
 
236
236
  /**
@@ -395,7 +395,7 @@ class Menu {
395
395
  this.runLocalHooks('afterClose');
396
396
  if (this.isSubMenu()) {
397
397
  if (this.hot.getSettings().ariaTags) {
398
- const selection = this.parentMenu.hotMenu.getSelectedLast();
398
+ const selection = this.parentMenu.hotMenu.getSelectedActive();
399
399
  if (selection) {
400
400
  const cell = this.parentMenu.hotMenu.getCell(selection[0], 0);
401
401
  (0, _element.setAttribute)(cell, [(0, _a11y.A11Y_EXPANDED)(false)]);
@@ -217,7 +217,7 @@ export class Menu {
217
217
  * @returns {object|null}
218
218
  */
219
219
  getSelectedItem() {
220
- return this.hasSelectedItem() ? this.hotMenu.getSourceDataAtRow(this.hotMenu.getSelectedLast()[0]) : null;
220
+ return this.hasSelectedItem() ? this.hotMenu.getSourceDataAtRow(this.hotMenu.getSelectedActive()[0]) : null;
221
221
  }
222
222
 
223
223
  /**
@@ -226,7 +226,7 @@ export class Menu {
226
226
  * @returns {boolean}
227
227
  */
228
228
  hasSelectedItem() {
229
- return Array.isArray(this.hotMenu.getSelectedLast());
229
+ return Array.isArray(this.hotMenu.getSelectedActive());
230
230
  }
231
231
 
232
232
  /**
@@ -391,7 +391,7 @@ export class Menu {
391
391
  this.runLocalHooks('afterClose');
392
392
  if (this.isSubMenu()) {
393
393
  if (this.hot.getSettings().ariaTags) {
394
- const selection = this.parentMenu.hotMenu.getSelectedLast();
394
+ const selection = this.parentMenu.hotMenu.getSelectedActive();
395
395
  if (selection) {
396
396
  const cell = this.parentMenu.hotMenu.getCell(selection[0], 0);
397
397
  setAttribute(cell, [A11Y_EXPANDED(false)]);
@@ -162,7 +162,7 @@ class Positioner {
162
162
  const style = rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.ht_master'));
163
163
  const paddingTop = Number.parseInt(style.paddingTop, 10);
164
164
  const borderTop = Number.parseInt(style.borderTop, 10);
165
- top = _classPrivateFieldGet(_cursor, this).top - paddingTop - borderTop - 1;
165
+ top = _classPrivateFieldGet(_cursor, this).top - paddingTop - borderTop;
166
166
  }
167
167
  _classPrivateFieldGet(_container, this).style.top = `${top}px`;
168
168
  }
@@ -159,7 +159,7 @@ export class Positioner {
159
159
  const style = rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.ht_master'));
160
160
  const paddingTop = Number.parseInt(style.paddingTop, 10);
161
161
  const borderTop = Number.parseInt(style.borderTop, 10);
162
- top = _classPrivateFieldGet(_cursor, this).top - paddingTop - borderTop - 1;
162
+ top = _classPrivateFieldGet(_cursor, this).top - paddingTop - borderTop;
163
163
  }
164
164
  _classPrivateFieldGet(_container, this).style.top = `${top}px`;
165
165
  }
@@ -21,7 +21,7 @@ function alignmentItem() {
21
21
  if (this.countRows() === 0 || this.countCols() === 0) {
22
22
  return true;
23
23
  }
24
- const range = this.getSelectedRangeLast();
24
+ const range = this.getSelectedRangeActive();
25
25
  if (!range) {
26
26
  return true;
27
27
  }
@@ -16,7 +16,7 @@ export default function alignmentItem() {
16
16
  if (this.countRows() === 0 || this.countCols() === 0) {
17
17
  return true;
18
18
  }
19
- const range = this.getSelectedRangeLast();
19
+ const range = this.getSelectedRangeActive();
20
20
  if (!range) {
21
21
  return true;
22
22
  }
@@ -23,7 +23,7 @@ function clearColumnItem() {
23
23
  }
24
24
  },
25
25
  disabled() {
26
- const range = this.getSelectedRangeLast();
26
+ const range = this.getSelectedRangeActive();
27
27
  if (!range || range.isSingleHeader() && range.highlight.col < 0 || !this.selection.isSelectedByColumnHeader()) {
28
28
  return true;
29
29
  }
@@ -18,7 +18,7 @@ export default function clearColumnItem() {
18
18
  }
19
19
  },
20
20
  disabled() {
21
- const range = this.getSelectedRangeLast();
21
+ const range = this.getSelectedRangeActive();
22
22
  if (!range || range.isSingleHeader() && range.highlight.col < 0 || !this.selection.isSelectedByColumnHeader()) {
23
23
  return true;
24
24
  }
@@ -16,15 +16,15 @@ function columnLeftItem() {
16
16
  return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_INSERT_LEFT);
17
17
  },
18
18
  callback() {
19
- const latestSelection = this.getSelectedRangeLast().getTopLeftCorner();
19
+ const activeSelection = this.getSelectedRangeActive().getTopLeftCorner();
20
20
  const alterAction = this.isRtl() ? 'insert_col_end' : 'insert_col_start';
21
- this.alter(alterAction, latestSelection.col, 1, 'ContextMenu.columnLeft');
21
+ this.alter(alterAction, activeSelection.col, 1, 'ContextMenu.columnLeft');
22
22
  },
23
23
  disabled() {
24
24
  if (!this.isColumnModificationAllowed()) {
25
25
  return true;
26
26
  }
27
- const range = this.getSelectedRangeLast();
27
+ const range = this.getSelectedRangeActive();
28
28
  if (!range || this.selection.isSelectedByRowHeader() || range.isSingleHeader() && range.highlight.col < 0 || this.countSourceCols() >= this.getSettings().maxCols) {
29
29
  return true;
30
30
  }
@@ -11,15 +11,15 @@ export default function columnLeftItem() {
11
11
  return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_INSERT_LEFT);
12
12
  },
13
13
  callback() {
14
- const latestSelection = this.getSelectedRangeLast().getTopLeftCorner();
14
+ const activeSelection = this.getSelectedRangeActive().getTopLeftCorner();
15
15
  const alterAction = this.isRtl() ? 'insert_col_end' : 'insert_col_start';
16
- this.alter(alterAction, latestSelection.col, 1, 'ContextMenu.columnLeft');
16
+ this.alter(alterAction, activeSelection.col, 1, 'ContextMenu.columnLeft');
17
17
  },
18
18
  disabled() {
19
19
  if (!this.isColumnModificationAllowed()) {
20
20
  return true;
21
21
  }
22
- const range = this.getSelectedRangeLast();
22
+ const range = this.getSelectedRangeActive();
23
23
  if (!range || this.selection.isSelectedByRowHeader() || range.isSingleHeader() && range.highlight.col < 0 || this.countSourceCols() >= this.getSettings().maxCols) {
24
24
  return true;
25
25
  }
@@ -16,15 +16,15 @@ function columnRightItem() {
16
16
  return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_INSERT_RIGHT);
17
17
  },
18
18
  callback() {
19
- const latestSelection = this.getSelectedRangeLast().getTopRightCorner();
19
+ const activeSelection = this.getSelectedRangeActive().getTopRightCorner();
20
20
  const alterAction = this.isRtl() ? 'insert_col_start' : 'insert_col_end';
21
- this.alter(alterAction, latestSelection.col, 1, 'ContextMenu.columnRight');
21
+ this.alter(alterAction, activeSelection.col, 1, 'ContextMenu.columnRight');
22
22
  },
23
23
  disabled() {
24
24
  if (!this.isColumnModificationAllowed()) {
25
25
  return true;
26
26
  }
27
- const range = this.getSelectedRangeLast();
27
+ const range = this.getSelectedRangeActive();
28
28
  if (!range || this.selection.isSelectedByRowHeader() || range.isSingleHeader() && range.highlight.col < 0 || this.countSourceCols() >= this.getSettings().maxCols) {
29
29
  return true;
30
30
  }
@@ -11,15 +11,15 @@ export default function columnRightItem() {
11
11
  return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_INSERT_RIGHT);
12
12
  },
13
13
  callback() {
14
- const latestSelection = this.getSelectedRangeLast().getTopRightCorner();
14
+ const activeSelection = this.getSelectedRangeActive().getTopRightCorner();
15
15
  const alterAction = this.isRtl() ? 'insert_col_start' : 'insert_col_end';
16
- this.alter(alterAction, latestSelection.col, 1, 'ContextMenu.columnRight');
16
+ this.alter(alterAction, activeSelection.col, 1, 'ContextMenu.columnRight');
17
17
  },
18
18
  disabled() {
19
19
  if (!this.isColumnModificationAllowed()) {
20
20
  return true;
21
21
  }
22
- const range = this.getSelectedRangeLast();
22
+ const range = this.getSelectedRangeActive();
23
23
  if (!range || this.selection.isSelectedByRowHeader() || range.isSingleHeader() && range.highlight.col < 0 || this.countSourceCols() >= this.getSettings().maxCols) {
24
24
  return true;
25
25
  }
@@ -43,7 +43,7 @@ function readOnlyItem() {
43
43
  this.render();
44
44
  },
45
45
  disabled() {
46
- const range = this.getSelectedRangeLast();
46
+ const range = this.getSelectedRangeActive();
47
47
  if (!range) {
48
48
  return true;
49
49
  }
@@ -38,7 +38,7 @@ export default function readOnlyItem() {
38
38
  this.render();
39
39
  },
40
40
  disabled() {
41
- const range = this.getSelectedRangeLast();
41
+ const range = this.getSelectedRangeActive();
42
42
  if (!range) {
43
43
  return true;
44
44
  }
@@ -35,7 +35,7 @@ function removeColumnItem() {
35
35
  if (!this.isColumnModificationAllowed()) {
36
36
  return true;
37
37
  }
38
- const range = this.getSelectedRangeLast();
38
+ const range = this.getSelectedRangeActive();
39
39
  if (!range) {
40
40
  return true;
41
41
  }
@@ -30,7 +30,7 @@ export default function removeColumnItem() {
30
30
  if (!this.isColumnModificationAllowed()) {
31
31
  return true;
32
32
  }
33
- const range = this.getSelectedRangeLast();
33
+ const range = this.getSelectedRangeActive();
34
34
  if (!range) {
35
35
  return true;
36
36
  }
@@ -34,7 +34,7 @@ function removeRowItem() {
34
34
  this.alter('remove_row', (0, _utils.transformSelectionToRowDistance)(this), 1, 'ContextMenu.removeRow');
35
35
  },
36
36
  disabled() {
37
- const range = this.getSelectedRangeLast();
37
+ const range = this.getSelectedRangeActive();
38
38
  if (!range) {
39
39
  return true;
40
40
  }
@@ -29,7 +29,7 @@ export default function removeRowItem() {
29
29
  this.alter('remove_row', transformSelectionToRowDistance(this), 1, 'ContextMenu.removeRow');
30
30
  },
31
31
  disabled() {
32
- const range = this.getSelectedRangeLast();
32
+ const range = this.getSelectedRangeActive();
33
33
  if (!range) {
34
34
  return true;
35
35
  }
@@ -16,11 +16,11 @@ function rowAboveItem() {
16
16
  return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ROW_ABOVE);
17
17
  },
18
18
  callback() {
19
- const latestSelection = this.getSelectedRangeLast().getTopLeftCorner();
20
- this.alter('insert_row_above', latestSelection.row, 1, 'ContextMenu.rowAbove');
19
+ const activeSelection = this.getSelectedRangeActive().getTopLeftCorner();
20
+ this.alter('insert_row_above', activeSelection.row, 1, 'ContextMenu.rowAbove');
21
21
  },
22
22
  disabled() {
23
- const range = this.getSelectedRangeLast();
23
+ const range = this.getSelectedRangeActive();
24
24
  if (!range || this.selection.isSelectedByColumnHeader() || range.isSingleHeader() && range.highlight.row < 0 || this.countSourceRows() >= this.getSettings().maxRows) {
25
25
  return true;
26
26
  }
@@ -11,11 +11,11 @@ export default function rowAboveItem() {
11
11
  return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ROW_ABOVE);
12
12
  },
13
13
  callback() {
14
- const latestSelection = this.getSelectedRangeLast().getTopLeftCorner();
15
- this.alter('insert_row_above', latestSelection.row, 1, 'ContextMenu.rowAbove');
14
+ const activeSelection = this.getSelectedRangeActive().getTopLeftCorner();
15
+ this.alter('insert_row_above', activeSelection.row, 1, 'ContextMenu.rowAbove');
16
16
  },
17
17
  disabled() {
18
- const range = this.getSelectedRangeLast();
18
+ const range = this.getSelectedRangeActive();
19
19
  if (!range || this.selection.isSelectedByColumnHeader() || range.isSingleHeader() && range.highlight.row < 0 || this.countSourceRows() >= this.getSettings().maxRows) {
20
20
  return true;
21
21
  }
@@ -16,11 +16,11 @@ function rowBelowItem() {
16
16
  return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ROW_BELOW);
17
17
  },
18
18
  callback() {
19
- const latestSelection = this.getSelectedRangeLast().getBottomRightCorner();
20
- this.alter('insert_row_below', latestSelection.row, 1, 'ContextMenu.rowBelow');
19
+ const activeSelection = this.getSelectedRangeActive().getBottomRightCorner();
20
+ this.alter('insert_row_below', activeSelection.row, 1, 'ContextMenu.rowBelow');
21
21
  },
22
22
  disabled() {
23
- const range = this.getSelectedRangeLast();
23
+ const range = this.getSelectedRangeActive();
24
24
  if (!range || this.selection.isSelectedByColumnHeader() || range.isSingleHeader() && range.highlight.row < 0 || this.countSourceRows() >= this.getSettings().maxRows) {
25
25
  return true;
26
26
  }
@@ -11,11 +11,11 @@ export default function rowBelowItem() {
11
11
  return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ROW_BELOW);
12
12
  },
13
13
  callback() {
14
- const latestSelection = this.getSelectedRangeLast().getBottomRightCorner();
15
- this.alter('insert_row_below', latestSelection.row, 1, 'ContextMenu.rowBelow');
14
+ const activeSelection = this.getSelectedRangeActive().getBottomRightCorner();
15
+ this.alter('insert_row_below', activeSelection.row, 1, 'ContextMenu.rowBelow');
16
16
  },
17
17
  disabled() {
18
- const range = this.getSelectedRangeLast();
18
+ const range = this.getSelectedRangeActive();
19
19
  if (!range || this.selection.isSelectedByColumnHeader() || range.isSingleHeader() && range.highlight.row < 0 || this.countSourceRows() >= this.getSettings().maxRows) {
20
20
  return true;
21
21
  }
@@ -20,7 +20,7 @@ function copyItem(copyPastePlugin) {
20
20
  if (this.countRows() === 0 || this.countCols() === 0) {
21
21
  return true;
22
22
  }
23
- const range = this.getSelectedRangeLast();
23
+ const range = this.getSelectedRangeActive();
24
24
  if (!range) {
25
25
  return true;
26
26
  }
@@ -16,7 +16,7 @@ export default function copyItem(copyPastePlugin) {
16
16
  if (this.countRows() === 0 || this.countCols() === 0) {
17
17
  return true;
18
18
  }
19
- const range = this.getSelectedRangeLast();
19
+ const range = this.getSelectedRangeActive();
20
20
  if (!range) {
21
21
  return true;
22
22
  }
@@ -12,8 +12,8 @@ function copyColumnHeadersOnlyItem(copyPastePlugin) {
12
12
  return {
13
13
  key: 'copy_column_headers_only',
14
14
  name() {
15
- const selectedRange = this.getSelectedRangeLast();
16
- const nounForm = selectedRange ? (0, _number.clamp)(selectedRange.getWidth() - 1, 0, 1) : 0;
15
+ const activeSelectedRange = this.getSelectedRangeActive();
16
+ const nounForm = activeSelectedRange ? (0, _number.clamp)(activeSelectedRange.getWidth() - 1, 0, 1) : 0;
17
17
  return this.getTranslatedPhrase(_constants.CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY, nounForm);
18
18
  },
19
19
  callback() {
@@ -23,7 +23,7 @@ function copyColumnHeadersOnlyItem(copyPastePlugin) {
23
23
  if (!this.hasColHeaders()) {
24
24
  return true;
25
25
  }
26
- const range = this.getSelectedRangeLast();
26
+ const range = this.getSelectedRangeActive();
27
27
  if (!range) {
28
28
  return true;
29
29
  }
@@ -8,8 +8,8 @@ export default function copyColumnHeadersOnlyItem(copyPastePlugin) {
8
8
  return {
9
9
  key: 'copy_column_headers_only',
10
10
  name() {
11
- const selectedRange = this.getSelectedRangeLast();
12
- const nounForm = selectedRange ? clamp(selectedRange.getWidth() - 1, 0, 1) : 0;
11
+ const activeSelectedRange = this.getSelectedRangeActive();
12
+ const nounForm = activeSelectedRange ? clamp(activeSelectedRange.getWidth() - 1, 0, 1) : 0;
13
13
  return this.getTranslatedPhrase(CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY, nounForm);
14
14
  },
15
15
  callback() {
@@ -19,7 +19,7 @@ export default function copyColumnHeadersOnlyItem(copyPastePlugin) {
19
19
  if (!this.hasColHeaders()) {
20
20
  return true;
21
21
  }
22
- const range = this.getSelectedRangeLast();
22
+ const range = this.getSelectedRangeActive();
23
23
  if (!range) {
24
24
  return true;
25
25
  }
@@ -12,8 +12,8 @@ function copyWithColumnGroupHeadersItem(copyPastePlugin) {
12
12
  return {
13
13
  key: 'copy_with_column_group_headers',
14
14
  name() {
15
- const selectedRange = this.getSelectedRangeLast();
16
- const nounForm = selectedRange ? (0, _number.clamp)(selectedRange.getWidth() - 1, 0, 1) : 0;
15
+ const activeSelectedRange = this.getSelectedRangeActive();
16
+ const nounForm = activeSelectedRange ? (0, _number.clamp)(activeSelectedRange.getWidth() - 1, 0, 1) : 0;
17
17
  return this.getTranslatedPhrase(_constants.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS, nounForm);
18
18
  },
19
19
  callback() {
@@ -23,7 +23,7 @@ function copyWithColumnGroupHeadersItem(copyPastePlugin) {
23
23
  if (!this.hasColHeaders() || !this.getSettings().nestedHeaders) {
24
24
  return true;
25
25
  }
26
- const range = this.getSelectedRangeLast();
26
+ const range = this.getSelectedRangeActive();
27
27
  if (!range) {
28
28
  return true;
29
29
  }
@@ -8,8 +8,8 @@ export default function copyWithColumnGroupHeadersItem(copyPastePlugin) {
8
8
  return {
9
9
  key: 'copy_with_column_group_headers',
10
10
  name() {
11
- const selectedRange = this.getSelectedRangeLast();
12
- const nounForm = selectedRange ? clamp(selectedRange.getWidth() - 1, 0, 1) : 0;
11
+ const activeSelectedRange = this.getSelectedRangeActive();
12
+ const nounForm = activeSelectedRange ? clamp(activeSelectedRange.getWidth() - 1, 0, 1) : 0;
13
13
  return this.getTranslatedPhrase(CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS, nounForm);
14
14
  },
15
15
  callback() {
@@ -19,7 +19,7 @@ export default function copyWithColumnGroupHeadersItem(copyPastePlugin) {
19
19
  if (!this.hasColHeaders() || !this.getSettings().nestedHeaders) {
20
20
  return true;
21
21
  }
22
- const range = this.getSelectedRangeLast();
22
+ const range = this.getSelectedRangeActive();
23
23
  if (!range) {
24
24
  return true;
25
25
  }
@@ -12,8 +12,8 @@ function copyWithColumnHeadersItem(copyPastePlugin) {
12
12
  return {
13
13
  key: 'copy_with_column_headers',
14
14
  name() {
15
- const selectedRange = this.getSelectedRangeLast();
16
- const nounForm = selectedRange ? (0, _number.clamp)(selectedRange.getWidth() - 1, 0, 1) : 0;
15
+ const activeSelectedRange = this.getSelectedRangeActive();
16
+ const nounForm = activeSelectedRange ? (0, _number.clamp)(activeSelectedRange.getWidth() - 1, 0, 1) : 0;
17
17
  return this.getTranslatedPhrase(_constants.CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS, nounForm);
18
18
  },
19
19
  callback() {
@@ -23,7 +23,7 @@ function copyWithColumnHeadersItem(copyPastePlugin) {
23
23
  if (!this.hasColHeaders()) {
24
24
  return true;
25
25
  }
26
- const range = this.getSelectedRangeLast();
26
+ const range = this.getSelectedRangeActive();
27
27
  if (!range) {
28
28
  return true;
29
29
  }