handsontable 14.2.0-next-75c8bcd-20240306 → 14.3.0-next-13fe676-20240409

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 (469) hide show
  1. package/3rdparty/walkontable/src/calculator/renderAllColumns.js +1 -1
  2. package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +1 -1
  3. package/3rdparty/walkontable/src/calculator/renderAllRows.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +1 -1
  5. package/3rdparty/walkontable/src/calculator/viewportColumns.js +13 -18
  6. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +13 -18
  7. package/3rdparty/walkontable/src/calculator/viewportRows.js +11 -16
  8. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +11 -16
  9. package/3rdparty/walkontable/src/cell/coords.js +13 -18
  10. package/3rdparty/walkontable/src/cell/coords.mjs +13 -18
  11. package/3rdparty/walkontable/src/cell/range.d.ts +2 -1
  12. package/3rdparty/walkontable/src/cell/range.js +42 -30
  13. package/3rdparty/walkontable/src/cell/range.mjs +42 -30
  14. package/3rdparty/walkontable/src/core/_base.js +2 -2
  15. package/3rdparty/walkontable/src/core/_base.mjs +2 -2
  16. package/3rdparty/walkontable/src/core/clone.js +1 -1
  17. package/3rdparty/walkontable/src/core/clone.mjs +1 -1
  18. package/3rdparty/walkontable/src/event.js +72 -104
  19. package/3rdparty/walkontable/src/event.mjs +72 -104
  20. package/3rdparty/walkontable/src/filter/column.js +1 -1
  21. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  22. package/3rdparty/walkontable/src/filter/row.js +1 -1
  23. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  24. package/3rdparty/walkontable/src/index.js +1 -1
  25. package/3rdparty/walkontable/src/overlay/_base.js +1 -1
  26. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  27. package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
  28. package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
  29. package/3rdparty/walkontable/src/overlay/inlineStart.js +15 -1
  30. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +16 -2
  31. package/3rdparty/walkontable/src/overlay/top.js +12 -1
  32. package/3rdparty/walkontable/src/overlay/top.mjs +13 -2
  33. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +1 -1
  34. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
  35. package/3rdparty/walkontable/src/overlays.js +47 -5
  36. package/3rdparty/walkontable/src/overlays.mjs +47 -5
  37. package/3rdparty/walkontable/src/renderer/_base.js +1 -1
  38. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  39. package/3rdparty/walkontable/src/renderer/cells.js +1 -1
  40. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
  41. package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -1
  42. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
  43. package/3rdparty/walkontable/src/renderer/rows.js +1 -1
  44. package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
  45. package/3rdparty/walkontable/src/renderer/table.js +1 -1
  46. package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
  47. package/3rdparty/walkontable/src/scroll.js +16 -18
  48. package/3rdparty/walkontable/src/scroll.mjs +16 -18
  49. package/3rdparty/walkontable/src/selection/manager.js +48 -69
  50. package/3rdparty/walkontable/src/selection/manager.mjs +48 -69
  51. package/3rdparty/walkontable/src/selection/scanner.js +33 -42
  52. package/3rdparty/walkontable/src/selection/scanner.mjs +33 -42
  53. package/3rdparty/walkontable/src/settings.js +1 -1
  54. package/3rdparty/walkontable/src/settings.mjs +1 -1
  55. package/3rdparty/walkontable/src/table.js +1 -1
  56. package/3rdparty/walkontable/src/table.mjs +1 -1
  57. package/3rdparty/walkontable/src/utils/column.js +1 -1
  58. package/3rdparty/walkontable/src/utils/column.mjs +1 -1
  59. package/3rdparty/walkontable/src/utils/columnStretching.js +28 -45
  60. package/3rdparty/walkontable/src/utils/columnStretching.mjs +28 -45
  61. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  62. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  63. package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
  64. package/3rdparty/walkontable/src/utils/orderView/view.mjs +2 -2
  65. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  66. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  67. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +1 -1
  68. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  69. package/3rdparty/walkontable/src/utils/row.js +1 -1
  70. package/3rdparty/walkontable/src/utils/row.mjs +1 -1
  71. package/CHANGELOG.md +20 -0
  72. package/base.js +2 -2
  73. package/base.mjs +2 -2
  74. package/core/viewportScroll/index.js +4 -1
  75. package/core/viewportScroll/index.mjs +4 -1
  76. package/core/viewportScroll/scrollStrategies/focusScroll.js +15 -0
  77. package/core/viewportScroll/scrollStrategies/focusScroll.mjs +11 -0
  78. package/core.d.ts +4 -3
  79. package/core.js +98 -43
  80. package/core.mjs +98 -43
  81. package/dataMap/dataMap.js +1 -1
  82. package/dataMap/dataMap.mjs +1 -1
  83. package/dataMap/dataSource.js +2 -2
  84. package/dataMap/dataSource.mjs +2 -2
  85. package/dataMap/metaManager/lazyFactoryMap.js +3 -5
  86. package/dataMap/metaManager/lazyFactoryMap.mjs +2 -4
  87. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
  88. package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -2
  89. package/dataMap/metaManager/metaLayers/columnMeta.js +1 -1
  90. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  91. package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
  92. package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
  93. package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
  94. package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
  95. package/dataMap/metaManager/metaSchema.js +272 -272
  96. package/dataMap/metaManager/metaSchema.mjs +272 -272
  97. package/dataMap/metaManager/mods/dynamicCellMeta.js +1 -1
  98. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  99. package/dataMap/metaManager/mods/extendMetaProperties.js +1 -1
  100. package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -1
  101. package/dataMap/replaceData.js +1 -1
  102. package/dataMap/replaceData.mjs +1 -1
  103. package/dist/handsontable.css +4 -4
  104. package/dist/handsontable.full.css +4 -4
  105. package/dist/handsontable.full.js +9800 -10020
  106. package/dist/handsontable.full.min.css +3 -3
  107. package/dist/handsontable.full.min.js +292 -292
  108. package/dist/handsontable.js +7470 -7056
  109. package/dist/handsontable.min.css +3 -3
  110. package/dist/handsontable.min.js +25 -25
  111. package/dist/languages/all.min.js +1 -1
  112. package/dist/languages/ar-AR.min.js +1 -1
  113. package/dist/languages/cs-CZ.min.js +1 -1
  114. package/dist/languages/de-CH.min.js +1 -1
  115. package/dist/languages/de-DE.min.js +1 -1
  116. package/dist/languages/en-US.min.js +1 -1
  117. package/dist/languages/es-MX.min.js +1 -1
  118. package/dist/languages/fr-FR.min.js +1 -1
  119. package/dist/languages/hr-HR.min.js +1 -1
  120. package/dist/languages/it-IT.min.js +1 -1
  121. package/dist/languages/ja-JP.min.js +1 -1
  122. package/dist/languages/ko-KR.min.js +1 -1
  123. package/dist/languages/lv-LV.min.js +1 -1
  124. package/dist/languages/nb-NO.min.js +1 -1
  125. package/dist/languages/nl-NL.min.js +1 -1
  126. package/dist/languages/pl-PL.min.js +1 -1
  127. package/dist/languages/pt-BR.min.js +1 -1
  128. package/dist/languages/ru-RU.min.js +1 -1
  129. package/dist/languages/sr-SP.min.js +1 -1
  130. package/dist/languages/zh-CN.min.js +1 -1
  131. package/dist/languages/zh-TW.min.js +1 -1
  132. package/editorManager.js +26 -24
  133. package/editorManager.mjs +26 -24
  134. package/editors/autocompleteEditor/autocompleteEditor.js +7 -11
  135. package/editors/autocompleteEditor/autocompleteEditor.mjs +7 -11
  136. package/editors/baseEditor/baseEditor.js +1 -1
  137. package/editors/baseEditor/baseEditor.mjs +1 -1
  138. package/editors/dateEditor/dateEditor.js +35 -11
  139. package/editors/dateEditor/dateEditor.mjs +35 -11
  140. package/editors/selectEditor/selectEditor.js +20 -19
  141. package/editors/selectEditor/selectEditor.mjs +20 -19
  142. package/editors/textEditor/textEditor.js +1 -1
  143. package/editors/textEditor/textEditor.mjs +1 -1
  144. package/eventManager.js +2 -2
  145. package/eventManager.mjs +2 -2
  146. package/focusManager.js +64 -82
  147. package/focusManager.mjs +64 -82
  148. package/helpers/dom/element.js +23 -1
  149. package/helpers/dom/element.mjs +21 -1
  150. package/helpers/mixed.js +2 -2
  151. package/helpers/mixed.mjs +2 -2
  152. package/helpers/object.js +2 -2
  153. package/helpers/object.mjs +2 -2
  154. package/i18n/languages/ar-AR.d.ts +5 -0
  155. package/i18n/languages/ar-AR.js +1 -1
  156. package/i18n/languages/cs-CZ.d.ts +5 -0
  157. package/i18n/languages/cs-CZ.js +1 -1
  158. package/i18n/languages/de-CH.js +1 -1
  159. package/i18n/languages/de-DE.js +1 -1
  160. package/i18n/languages/en-US.js +1 -1
  161. package/i18n/languages/es-MX.js +1 -1
  162. package/i18n/languages/fr-FR.js +1 -1
  163. package/i18n/languages/hr-HR.d.ts +5 -0
  164. package/i18n/languages/hr-HR.js +1 -1
  165. package/i18n/languages/it-IT.js +1 -1
  166. package/i18n/languages/ja-JP.js +1 -1
  167. package/i18n/languages/ko-KR.js +1 -1
  168. package/i18n/languages/lv-LV.js +1 -1
  169. package/i18n/languages/nb-NO.js +1 -1
  170. package/i18n/languages/nl-NL.js +1 -1
  171. package/i18n/languages/pl-PL.js +1 -1
  172. package/i18n/languages/pt-BR.js +1 -1
  173. package/i18n/languages/ru-RU.js +1 -1
  174. package/i18n/languages/sr-SP.d.ts +5 -0
  175. package/i18n/languages/sr-SP.js +1 -1
  176. package/i18n/languages/zh-CN.js +1 -1
  177. package/i18n/languages/zh-TW.js +1 -1
  178. package/i18n/registry.js +1 -1
  179. package/index.d.ts +10 -0
  180. package/index.js +1 -1
  181. package/package.json +14 -10
  182. package/pluginHooks.d.ts +4 -3
  183. package/pluginHooks.js +143 -82
  184. package/pluginHooks.mjs +143 -82
  185. package/plugins/autoColumnSize/autoColumnSize.js +50 -66
  186. package/plugins/autoColumnSize/autoColumnSize.mjs +50 -66
  187. package/plugins/autoRowSize/autoRowSize.js +29 -35
  188. package/plugins/autoRowSize/autoRowSize.mjs +29 -35
  189. package/plugins/autofill/autofill.js +31 -39
  190. package/plugins/autofill/autofill.mjs +31 -39
  191. package/plugins/base/base.js +13 -18
  192. package/plugins/base/base.mjs +13 -18
  193. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +6 -6
  194. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +6 -6
  195. package/plugins/collapsibleColumns/collapsibleColumns.js +60 -51
  196. package/plugins/collapsibleColumns/collapsibleColumns.mjs +60 -51
  197. package/plugins/columnSorting/columnSorting.js +50 -46
  198. package/plugins/columnSorting/columnSorting.mjs +50 -46
  199. package/plugins/columnSorting/columnStatesManager.js +1 -1
  200. package/plugins/columnSorting/columnStatesManager.mjs +1 -1
  201. package/plugins/columnSummary/columnSummary.js +36 -40
  202. package/plugins/columnSummary/columnSummary.mjs +36 -40
  203. package/plugins/columnSummary/endpoints.js +1 -1
  204. package/plugins/columnSummary/endpoints.mjs +1 -1
  205. package/plugins/comments/commentEditor.js +1 -1
  206. package/plugins/comments/commentEditor.mjs +1 -1
  207. package/plugins/comments/comments.js +117 -159
  208. package/plugins/comments/comments.mjs +117 -159
  209. package/plugins/comments/contextMenuItem/addEditComment.js +1 -1
  210. package/plugins/comments/contextMenuItem/readOnlyComment.js +1 -1
  211. package/plugins/comments/contextMenuItem/removeComment.js +1 -1
  212. package/plugins/comments/displaySwitch.js +1 -1
  213. package/plugins/comments/displaySwitch.mjs +1 -1
  214. package/plugins/contextMenu/commandExecutor.js +1 -1
  215. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  216. package/plugins/contextMenu/contextMenu.js +24 -30
  217. package/plugins/contextMenu/contextMenu.mjs +24 -30
  218. package/plugins/contextMenu/itemsFactory.js +2 -2
  219. package/plugins/contextMenu/itemsFactory.mjs +2 -2
  220. package/plugins/contextMenu/menu/cursor.js +1 -1
  221. package/plugins/contextMenu/menu/cursor.mjs +1 -1
  222. package/plugins/contextMenu/menu/defaultShortcutsList.js +26 -10
  223. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +26 -10
  224. package/plugins/contextMenu/menu/menu.js +14 -22
  225. package/plugins/contextMenu/menu/menu.mjs +14 -22
  226. package/plugins/contextMenu/menu/positioner.js +41 -58
  227. package/plugins/contextMenu/menu/positioner.mjs +41 -58
  228. package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
  229. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  230. package/plugins/contextMenu/predefinedItems/columnLeft.js +1 -1
  231. package/plugins/contextMenu/predefinedItems/columnRight.js +1 -1
  232. package/plugins/contextMenu/predefinedItems/index.js +1 -1
  233. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
  234. package/plugins/contextMenu/predefinedItems/redo.js +1 -1
  235. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  236. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  237. package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
  238. package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
  239. package/plugins/contextMenu/predefinedItems/undo.js +1 -1
  240. package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
  241. package/plugins/copyPaste/copyPaste.js +120 -161
  242. package/plugins/copyPaste/copyPaste.mjs +120 -161
  243. package/plugins/copyPaste/copyableRanges.js +43 -66
  244. package/plugins/copyPaste/copyableRanges.mjs +43 -66
  245. package/plugins/customBorders/contextMenuItem/bottom.js +1 -1
  246. package/plugins/customBorders/contextMenuItem/left.js +1 -1
  247. package/plugins/customBorders/contextMenuItem/noBorders.js +1 -1
  248. package/plugins/customBorders/contextMenuItem/right.js +1 -1
  249. package/plugins/customBorders/contextMenuItem/top.js +1 -1
  250. package/plugins/customBorders/customBorders.js +14 -16
  251. package/plugins/customBorders/customBorders.mjs +13 -15
  252. package/plugins/dragToScroll/dragToScroll.js +7 -7
  253. package/plugins/dragToScroll/dragToScroll.mjs +7 -7
  254. package/plugins/dropdownMenu/dropdownMenu.js +84 -110
  255. package/plugins/dropdownMenu/dropdownMenu.mjs +84 -110
  256. package/plugins/exportFile/dataProvider.js +2 -2
  257. package/plugins/exportFile/dataProvider.mjs +2 -2
  258. package/plugins/exportFile/exportFile.js +2 -2
  259. package/plugins/exportFile/exportFile.mjs +1 -1
  260. package/plugins/exportFile/types/_base.js +1 -1
  261. package/plugins/exportFile/types/_base.mjs +1 -1
  262. package/plugins/filters/component/_base.js +1 -1
  263. package/plugins/filters/component/_base.mjs +1 -1
  264. package/plugins/filters/component/actionBar.js +11 -11
  265. package/plugins/filters/component/actionBar.mjs +9 -9
  266. package/plugins/filters/component/condition.js +15 -17
  267. package/plugins/filters/component/condition.mjs +14 -16
  268. package/plugins/filters/component/operators.js +7 -7
  269. package/plugins/filters/component/operators.mjs +7 -7
  270. package/plugins/filters/component/value.js +26 -30
  271. package/plugins/filters/component/value.mjs +25 -29
  272. package/plugins/filters/condition/beginsWith.js +1 -1
  273. package/plugins/filters/condition/between.js +1 -1
  274. package/plugins/filters/condition/contains.js +1 -1
  275. package/plugins/filters/condition/date/after.js +1 -1
  276. package/plugins/filters/condition/date/before.js +1 -1
  277. package/plugins/filters/condition/date/today.js +1 -1
  278. package/plugins/filters/condition/date/tomorrow.js +1 -1
  279. package/plugins/filters/condition/date/yesterday.js +1 -1
  280. package/plugins/filters/condition/empty.js +1 -1
  281. package/plugins/filters/condition/endsWith.js +1 -1
  282. package/plugins/filters/condition/equal.js +1 -1
  283. package/plugins/filters/condition/greaterThan.js +1 -1
  284. package/plugins/filters/condition/greaterThanOrEqual.js +1 -1
  285. package/plugins/filters/condition/lessThan.js +1 -1
  286. package/plugins/filters/condition/lessThanOrEqual.js +1 -1
  287. package/plugins/filters/condition/none.js +1 -1
  288. package/plugins/filters/condition/notBetween.js +1 -1
  289. package/plugins/filters/condition/notContains.js +1 -1
  290. package/plugins/filters/condition/notEmpty.js +1 -1
  291. package/plugins/filters/condition/notEqual.js +1 -1
  292. package/plugins/filters/conditionCollection.js +1 -1
  293. package/plugins/filters/conditionCollection.mjs +1 -1
  294. package/plugins/filters/conditionUpdateObserver.js +23 -25
  295. package/plugins/filters/conditionUpdateObserver.mjs +23 -25
  296. package/plugins/filters/dataFilter.js +2 -2
  297. package/plugins/filters/dataFilter.mjs +2 -2
  298. package/plugins/filters/filters.js +84 -98
  299. package/plugins/filters/filters.mjs +83 -97
  300. package/plugins/filters/logicalOperations/conjunction.js +1 -1
  301. package/plugins/filters/logicalOperations/disjunction.js +1 -1
  302. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -1
  303. package/plugins/filters/ui/_base.js +2 -2
  304. package/plugins/filters/ui/_base.mjs +1 -1
  305. package/plugins/filters/ui/input.js +13 -19
  306. package/plugins/filters/ui/input.mjs +13 -19
  307. package/plugins/filters/ui/link.js +8 -13
  308. package/plugins/filters/ui/link.mjs +8 -13
  309. package/plugins/filters/ui/multipleSelect.js +86 -113
  310. package/plugins/filters/ui/multipleSelect.mjs +85 -112
  311. package/plugins/filters/ui/radioInput.js +12 -20
  312. package/plugins/filters/ui/radioInput.mjs +12 -20
  313. package/plugins/filters/ui/select.js +51 -73
  314. package/plugins/filters/ui/select.mjs +49 -71
  315. package/plugins/formulas/formulas.js +270 -328
  316. package/plugins/formulas/formulas.mjs +271 -329
  317. package/plugins/formulas/indexSyncer/axisSyncer.js +38 -61
  318. package/plugins/formulas/indexSyncer/axisSyncer.mjs +38 -61
  319. package/plugins/formulas/indexSyncer/index.js +25 -48
  320. package/plugins/formulas/indexSyncer/index.mjs +25 -48
  321. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
  322. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -1
  323. package/plugins/hiddenColumns/hiddenColumns.js +68 -87
  324. package/plugins/hiddenColumns/hiddenColumns.mjs +68 -87
  325. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
  326. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -1
  327. package/plugins/hiddenRows/hiddenRows.js +67 -86
  328. package/plugins/hiddenRows/hiddenRows.mjs +67 -86
  329. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  330. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  331. package/plugins/manualColumnFreeze/manualColumnFreeze.js +24 -32
  332. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +25 -33
  333. package/plugins/manualColumnMove/manualColumnMove.js +133 -177
  334. package/plugins/manualColumnMove/manualColumnMove.mjs +133 -177
  335. package/plugins/manualColumnMove/ui/_base.js +1 -1
  336. package/plugins/manualColumnMove/ui/_base.mjs +1 -1
  337. package/plugins/manualColumnResize/manualColumnResize.js +169 -230
  338. package/plugins/manualColumnResize/manualColumnResize.mjs +169 -230
  339. package/plugins/manualRowMove/manualRowMove.js +106 -135
  340. package/plugins/manualRowMove/manualRowMove.mjs +106 -135
  341. package/plugins/manualRowMove/ui/_base.js +1 -1
  342. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  343. package/plugins/manualRowResize/manualRowResize.js +150 -209
  344. package/plugins/manualRowResize/manualRowResize.mjs +150 -209
  345. package/plugins/mergeCells/calculations/autofill.js +1 -1
  346. package/plugins/mergeCells/calculations/autofill.mjs +1 -1
  347. package/plugins/mergeCells/calculations/selection.js +3 -72
  348. package/plugins/mergeCells/calculations/selection.mjs +3 -72
  349. package/plugins/mergeCells/cellCoords.js +1 -1
  350. package/plugins/mergeCells/cellCoords.mjs +1 -1
  351. package/plugins/mergeCells/cellsCollection.js +118 -2
  352. package/plugins/mergeCells/cellsCollection.mjs +118 -2
  353. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +12 -2
  354. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +11 -1
  355. package/plugins/mergeCells/focusOrder.js +305 -0
  356. package/plugins/mergeCells/focusOrder.mjs +300 -0
  357. package/plugins/mergeCells/mergeCells.js +500 -398
  358. package/plugins/mergeCells/mergeCells.mjs +500 -398
  359. package/plugins/multiColumnSorting/multiColumnSorting.js +9 -3
  360. package/plugins/multiColumnSorting/multiColumnSorting.mjs +9 -3
  361. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -2
  362. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +2 -2
  363. package/plugins/nestedHeaders/nestedHeaders.js +206 -254
  364. package/plugins/nestedHeaders/nestedHeaders.mjs +207 -255
  365. package/plugins/nestedHeaders/stateManager/headersTree.js +21 -32
  366. package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -32
  367. package/plugins/nestedHeaders/stateManager/index.js +30 -41
  368. package/plugins/nestedHeaders/stateManager/index.mjs +30 -41
  369. package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -30
  370. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -30
  371. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  372. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  373. package/plugins/nestedRows/data/dataManager.js +2 -2
  374. package/plugins/nestedRows/data/dataManager.mjs +2 -2
  375. package/plugins/nestedRows/nestedRows.js +154 -185
  376. package/plugins/nestedRows/nestedRows.mjs +155 -186
  377. package/plugins/nestedRows/ui/_base.js +1 -1
  378. package/plugins/nestedRows/ui/_base.mjs +1 -1
  379. package/plugins/nestedRows/ui/contextMenu.js +13 -17
  380. package/plugins/nestedRows/ui/contextMenu.mjs +11 -15
  381. package/plugins/nestedRows/utils/rowMoveController.js +6 -6
  382. package/plugins/nestedRows/utils/rowMoveController.mjs +6 -6
  383. package/plugins/persistentState/persistentState.js +1 -1
  384. package/plugins/persistentState/persistentState.mjs +1 -1
  385. package/plugins/persistentState/storage.js +3 -3
  386. package/plugins/persistentState/storage.mjs +3 -3
  387. package/plugins/search/search.js +8 -8
  388. package/plugins/search/search.mjs +8 -8
  389. package/plugins/touchScroll/touchScroll.js +16 -20
  390. package/plugins/touchScroll/touchScroll.mjs +17 -21
  391. package/plugins/trimRows/trimRows.js +7 -7
  392. package/plugins/trimRows/trimRows.mjs +7 -7
  393. package/plugins/undoRedo/index.js +1 -1
  394. package/renderers/checkboxRenderer/checkboxRenderer.js +8 -5
  395. package/renderers/checkboxRenderer/checkboxRenderer.mjs +8 -5
  396. package/selection/highlight/highlight.js +16 -18
  397. package/selection/highlight/highlight.mjs +15 -17
  398. package/selection/highlight/visualSelection.js +3 -1
  399. package/selection/highlight/visualSelection.mjs +3 -1
  400. package/selection/range.js +3 -5
  401. package/selection/range.mjs +2 -4
  402. package/selection/selection.js +227 -69
  403. package/selection/selection.mjs +225 -67
  404. package/selection/transformation.js +149 -118
  405. package/selection/transformation.mjs +149 -118
  406. package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
  407. package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
  408. package/shortcutContexts/commands/editor/open.js +18 -3
  409. package/shortcutContexts/commands/editor/open.mjs +18 -3
  410. package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
  411. package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
  412. package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
  413. package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
  414. package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
  415. package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
  416. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
  417. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
  418. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +3 -1
  419. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +3 -1
  420. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +9 -3
  421. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +9 -3
  422. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +10 -3
  423. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +10 -3
  424. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +3 -1
  425. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +3 -1
  426. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +3 -1
  427. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +3 -1
  428. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +3 -1
  429. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +3 -1
  430. package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
  431. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
  432. package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
  433. package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
  434. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +6 -1
  435. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +6 -1
  436. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +6 -1
  437. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +6 -1
  438. package/shortcutContexts/grid.js +9 -3
  439. package/shortcutContexts/grid.mjs +9 -3
  440. package/shortcuts/context.js +3 -2
  441. package/shortcuts/context.mjs +3 -2
  442. package/shortcuts/manager.js +2 -2
  443. package/shortcuts/manager.mjs +2 -2
  444. package/tableView.js +53 -79
  445. package/tableView.mjs +53 -79
  446. package/translations/changesObservable/observable.js +21 -38
  447. package/translations/changesObservable/observable.mjs +21 -38
  448. package/translations/changesObservable/observer.js +7 -12
  449. package/translations/changesObservable/observer.mjs +6 -11
  450. package/translations/indexMapper.js +1 -1
  451. package/translations/indexMapper.mjs +1 -1
  452. package/translations/mapCollections/aggregatedCollection.js +2 -2
  453. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  454. package/translations/mapCollections/mapCollection.js +1 -1
  455. package/translations/mapCollections/mapCollection.mjs +1 -1
  456. package/translations/maps/indexMap.js +2 -2
  457. package/translations/maps/indexMap.mjs +2 -2
  458. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
  459. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
  460. package/utils/dataStructures/linkedList.js +7 -2
  461. package/utils/dataStructures/linkedList.mjs +7 -2
  462. package/utils/dataStructures/tree.js +2 -2
  463. package/utils/dataStructures/tree.mjs +2 -2
  464. package/utils/ghostTable.js +1 -1
  465. package/utils/ghostTable.mjs +1 -1
  466. package/utils/interval.js +27 -45
  467. package/utils/interval.mjs +27 -45
  468. package/utils/samplesGenerator.js +1 -1
  469. package/utils/samplesGenerator.mjs +1 -1
@@ -2,12 +2,9 @@ import "core-js/modules/es.error.cause.js";
2
2
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
3
3
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
4
4
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
5
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
6
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
7
- function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
8
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
9
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
10
- function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
5
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
6
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
7
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
11
8
  import { mixin, createObjectPropListener } from "../helpers/object.mjs";
12
9
  import localHooks from "./../mixins/localHooks.mjs";
13
10
  /**
@@ -28,67 +25,29 @@ import localHooks from "./../mixins/localHooks.mjs";
28
25
  var _range = /*#__PURE__*/new WeakMap();
29
26
  var _options = /*#__PURE__*/new WeakMap();
30
27
  var _offset = /*#__PURE__*/new WeakMap();
31
- var _setOffsetSize = /*#__PURE__*/new WeakSet();
32
- var _clampCoords = /*#__PURE__*/new WeakSet();
33
- var _getTableSize = /*#__PURE__*/new WeakSet();
34
- var _visualToZeroBasedCoords = /*#__PURE__*/new WeakSet();
35
- var _zeroBasedToVisualCoords = /*#__PURE__*/new WeakSet();
28
+ var _Transformation_brand = /*#__PURE__*/new WeakSet();
36
29
  class Transformation {
37
30
  constructor(range, options) {
38
- /**
39
- * Translates the zero-based coordinates to visual ones.
40
- *
41
- * @param {CellCoords} zeroBasedCoords The coordinates to process.
42
- * @returns {CellCoords}
43
- */
44
- _classPrivateMethodInitSpec(this, _zeroBasedToVisualCoords);
45
- /**
46
- * Translates the visual coordinates to zero-based ones.
47
- *
48
- * @param {CellCoords} visualCoords The visual coords to process.
49
- * @returns {CellCoords}
50
- */
51
- _classPrivateMethodInitSpec(this, _visualToZeroBasedCoords);
52
- /**
53
- * Gets the table size in number of rows with headers as "height" and number of columns with
54
- * headers as "width".
55
- *
56
- * @returns {{width: number, height: number}}
57
- */
58
- _classPrivateMethodInitSpec(this, _getTableSize);
59
31
  /**
60
32
  * Clamps the coords to make sure they points to the cell (or header) in the table range.
61
33
  *
62
34
  * @param {CellCoords} zeroBasedCoords The coords object to clamp.
63
35
  * @returns {{rowDir: 1|0|-1, colDir: 1|0|-1}}
64
36
  */
65
- _classPrivateMethodInitSpec(this, _clampCoords);
66
- /**
67
- * Sets the additional offset in table size that may occur when the `navigableHeaders` option
68
- * is enabled.
69
- *
70
- * @param {{x: number, y: number}} offset Offset as x and y properties.
71
- */
72
- _classPrivateMethodInitSpec(this, _setOffsetSize);
37
+ _classPrivateMethodInitSpec(this, _Transformation_brand);
73
38
  /**
74
39
  * Instance of the SelectionRange, holder for visual coordinates applied to the table.
75
40
  *
76
41
  * @type {SelectionRange}
77
42
  */
78
- _classPrivateFieldInitSpec(this, _range, {
79
- writable: true,
80
- value: void 0
81
- });
43
+ _classPrivateFieldInitSpec(this, _range, void 0);
82
44
  /**
83
45
  * Additional options which define the state of the settings which can infer transformation and
84
46
  * give the possibility to translate indexes.
85
47
  *
86
48
  * @type {object}
87
49
  */
88
- _classPrivateFieldInitSpec(this, _options, {
89
- writable: true,
90
- value: void 0
91
- });
50
+ _classPrivateFieldInitSpec(this, _options, void 0);
92
51
  /**
93
52
  * Increases the table size by applying the offsets. The option is used by the `navigableHeaders`
94
53
  * option.
@@ -96,14 +55,11 @@ class Transformation {
96
55
  * @type {{ x: number, y: number }}
97
56
  */
98
57
  _classPrivateFieldInitSpec(this, _offset, {
99
- writable: true,
100
- value: {
101
- x: 0,
102
- y: 0
103
- }
58
+ x: 0,
59
+ y: 0
104
60
  });
105
- _classPrivateFieldSet(this, _range, range);
106
- _classPrivateFieldSet(this, _options, options);
61
+ _classPrivateFieldSet(_range, this, range);
62
+ _classPrivateFieldSet(_options, this, options);
107
63
  }
108
64
 
109
65
  /**
@@ -117,13 +73,9 @@ class Transformation {
117
73
  */
118
74
  transformStart(rowDelta, colDelta) {
119
75
  let createMissingRecords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
120
- _classPrivateMethodGet(this, _setOffsetSize, _setOffsetSize2).call(this, {
121
- x: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countRowHeaders() : 0,
122
- y: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countColHeaders() : 0
123
- });
124
- const delta = _classPrivateFieldGet(this, _options).createCellCoords(rowDelta, colDelta);
125
- let visualCoords = _classPrivateFieldGet(this, _range).current().highlight;
126
- const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(visualCoords);
76
+ const delta = _classPrivateFieldGet(_options, this).createCellCoords(rowDelta, colDelta);
77
+ let visualCoords = _classPrivateFieldGet(_range, this).current().highlight;
78
+ const highlightRenderableCoords = _classPrivateFieldGet(_options, this).visualToRenderableCoords(visualCoords);
127
79
  let rowTransformDir = 0;
128
80
  let colTransformDir = 0;
129
81
  this.runLocalHooks('beforeTransformStart', delta);
@@ -131,32 +83,32 @@ class Transformation {
131
83
  const {
132
84
  width,
133
85
  height
134
- } = _classPrivateMethodGet(this, _getTableSize, _getTableSize2).call(this);
86
+ } = _assertClassBrand(_Transformation_brand, this, _getTableSize).call(this);
135
87
  const {
136
88
  row,
137
89
  col
138
- } = _classPrivateMethodGet(this, _visualToZeroBasedCoords, _visualToZeroBasedCoords2).call(this, visualCoords);
139
- const fixedRowsBottom = _classPrivateFieldGet(this, _options).fixedRowsBottom();
140
- const minSpareRows = _classPrivateFieldGet(this, _options).minSpareRows();
141
- const minSpareCols = _classPrivateFieldGet(this, _options).minSpareCols();
142
- const autoWrapRow = _classPrivateFieldGet(this, _options).autoWrapRow();
143
- const autoWrapCol = _classPrivateFieldGet(this, _options).autoWrapCol();
144
- const zeroBasedCoords = _classPrivateFieldGet(this, _options).createCellCoords(row + delta.row, col + delta.col);
90
+ } = _assertClassBrand(_Transformation_brand, this, _visualToZeroBasedCoords).call(this, visualCoords);
91
+ const fixedRowsBottom = _classPrivateFieldGet(_options, this).fixedRowsBottom();
92
+ const minSpareRows = _classPrivateFieldGet(_options, this).minSpareRows();
93
+ const minSpareCols = _classPrivateFieldGet(_options, this).minSpareCols();
94
+ const autoWrapRow = _classPrivateFieldGet(_options, this).autoWrapRow();
95
+ const autoWrapCol = _classPrivateFieldGet(_options, this).autoWrapCol();
96
+ const zeroBasedCoords = _classPrivateFieldGet(_options, this).createCellCoords(row + delta.row, col + delta.col);
145
97
  if (zeroBasedCoords.row >= height) {
146
98
  const isActionInterrupted = createObjectPropListener(createMissingRecords && minSpareRows > 0 && fixedRowsBottom === 0);
147
99
  const nextColumn = zeroBasedCoords.col + 1;
148
- const newCoords = _classPrivateFieldGet(this, _options).createCellCoords(zeroBasedCoords.row - height, nextColumn >= width ? nextColumn - width : nextColumn);
149
- this.runLocalHooks('beforeColumnWrap', isActionInterrupted, _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, newCoords), nextColumn >= width);
100
+ const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(zeroBasedCoords.row - height, nextColumn >= width ? nextColumn - width : nextColumn);
101
+ this.runLocalHooks('beforeColumnWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), nextColumn >= width);
150
102
  if (isActionInterrupted.value) {
151
- this.runLocalHooks('insertRowRequire', _classPrivateFieldGet(this, _options).countRenderableRows());
103
+ this.runLocalHooks('insertRowRequire', _classPrivateFieldGet(_options, this).countRenderableRows());
152
104
  } else if (autoWrapCol) {
153
105
  zeroBasedCoords.assign(newCoords);
154
106
  }
155
107
  } else if (zeroBasedCoords.row < 0) {
156
108
  const isActionInterrupted = createObjectPropListener(autoWrapCol);
157
109
  const previousColumn = zeroBasedCoords.col - 1;
158
- const newCoords = _classPrivateFieldGet(this, _options).createCellCoords(height + zeroBasedCoords.row, previousColumn < 0 ? width + previousColumn : previousColumn);
159
- this.runLocalHooks('beforeColumnWrap', isActionInterrupted, _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, newCoords), previousColumn < 0);
110
+ const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(height + zeroBasedCoords.row, previousColumn < 0 ? width + previousColumn : previousColumn);
111
+ this.runLocalHooks('beforeColumnWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), previousColumn < 0);
160
112
  if (autoWrapCol) {
161
113
  zeroBasedCoords.assign(newCoords);
162
114
  }
@@ -164,18 +116,18 @@ class Transformation {
164
116
  if (zeroBasedCoords.col >= width) {
165
117
  const isActionInterrupted = createObjectPropListener(createMissingRecords && minSpareCols > 0);
166
118
  const nextRow = zeroBasedCoords.row + 1;
167
- const newCoords = _classPrivateFieldGet(this, _options).createCellCoords(nextRow >= height ? nextRow - height : nextRow, zeroBasedCoords.col - width);
168
- this.runLocalHooks('beforeRowWrap', isActionInterrupted, _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, newCoords), nextRow >= height);
119
+ const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(nextRow >= height ? nextRow - height : nextRow, zeroBasedCoords.col - width);
120
+ this.runLocalHooks('beforeRowWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), nextRow >= height);
169
121
  if (isActionInterrupted.value) {
170
- this.runLocalHooks('insertColRequire', _classPrivateFieldGet(this, _options).countRenderableColumns());
122
+ this.runLocalHooks('insertColRequire', _classPrivateFieldGet(_options, this).countRenderableColumns());
171
123
  } else if (autoWrapRow) {
172
124
  zeroBasedCoords.assign(newCoords);
173
125
  }
174
126
  } else if (zeroBasedCoords.col < 0) {
175
127
  const isActionInterrupted = createObjectPropListener(autoWrapRow);
176
128
  const previousRow = zeroBasedCoords.row - 1;
177
- const newCoords = _classPrivateFieldGet(this, _options).createCellCoords(previousRow < 0 ? height + previousRow : previousRow, width + zeroBasedCoords.col);
178
- this.runLocalHooks('beforeRowWrap', isActionInterrupted, _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, newCoords), previousRow < 0);
129
+ const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(previousRow < 0 ? height + previousRow : previousRow, width + zeroBasedCoords.col);
130
+ this.runLocalHooks('beforeRowWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), previousRow < 0);
179
131
  if (autoWrapRow) {
180
132
  zeroBasedCoords.assign(newCoords);
181
133
  }
@@ -183,10 +135,10 @@ class Transformation {
183
135
  const {
184
136
  rowDir,
185
137
  colDir
186
- } = _classPrivateMethodGet(this, _clampCoords, _clampCoords2).call(this, zeroBasedCoords);
138
+ } = _assertClassBrand(_Transformation_brand, this, _clampCoords).call(this, zeroBasedCoords);
187
139
  rowTransformDir = rowDir;
188
140
  colTransformDir = colDir;
189
- visualCoords = _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, zeroBasedCoords);
141
+ visualCoords = _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, zeroBasedCoords);
190
142
  }
191
143
  this.runLocalHooks('afterTransformStart', visualCoords, rowTransformDir, colTransformDir);
192
144
  return visualCoords;
@@ -200,30 +152,53 @@ class Transformation {
200
152
  * @returns {CellCoords} Visual coordinates after transformation.
201
153
  */
202
154
  transformEnd(rowDelta, colDelta) {
203
- _classPrivateMethodGet(this, _setOffsetSize, _setOffsetSize2).call(this, {
204
- x: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countRowHeaders() : 0,
205
- y: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countColHeaders() : 0
206
- });
207
- const delta = _classPrivateFieldGet(this, _options).createCellCoords(rowDelta, colDelta);
208
- const cellRange = _classPrivateFieldGet(this, _range).current();
209
- const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(cellRange.highlight);
155
+ const delta = _classPrivateFieldGet(_options, this).createCellCoords(rowDelta, colDelta);
156
+ const cellRange = _classPrivateFieldGet(_range, this).current();
157
+ const highlightRenderableCoords = _classPrivateFieldGet(_options, this).visualToRenderableCoords(cellRange.highlight);
158
+ const toRow = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, cellRange.to.row, cellRange.from.row);
159
+ const toColumn = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, cellRange.to.col, cellRange.from.col);
210
160
  const visualCoords = cellRange.to.clone();
211
161
  let rowTransformDir = 0;
212
162
  let colTransformDir = 0;
213
163
  this.runLocalHooks('beforeTransformEnd', delta);
214
- if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null) {
164
+ if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null && toRow !== null && toColumn !== null) {
215
165
  const {
216
- row,
217
- col
218
- } = _classPrivateMethodGet(this, _visualToZeroBasedCoords, _visualToZeroBasedCoords2).call(this, cellRange.to);
219
- const coords = _classPrivateFieldGet(this, _options).createCellCoords(row + delta.row, col + delta.col);
166
+ row: highlightRow,
167
+ col: highlightColumn
168
+ } = _assertClassBrand(_Transformation_brand, this, _visualToZeroBasedCoords).call(this, cellRange.highlight);
169
+ const coords = _classPrivateFieldGet(_options, this).createCellCoords(toRow + delta.row, toColumn + delta.col);
170
+ const topStartCorner = cellRange.getTopStartCorner();
171
+ const topEndCorner = cellRange.getTopEndCorner();
172
+ const bottomEndCorner = cellRange.getBottomEndCorner();
173
+ const restDelta = {
174
+ row: coords.row - highlightRow,
175
+ col: coords.col - highlightColumn
176
+ };
177
+ if (delta.col < 0) {
178
+ if (toColumn >= highlightColumn && coords.col < highlightColumn) {
179
+ coords.col = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, topStartCorner.col, topEndCorner.col) + restDelta.col;
180
+ }
181
+ } else if (delta.col > 0) {
182
+ if (toColumn <= highlightColumn && coords.col > highlightColumn) {
183
+ coords.col = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, topEndCorner.col, topStartCorner.col) + restDelta.col;
184
+ }
185
+ }
186
+ if (delta.row < 0) {
187
+ if (toRow >= highlightRow && coords.row < highlightRow) {
188
+ coords.row = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, topStartCorner.row, bottomEndCorner.row) + restDelta.row;
189
+ }
190
+ } else if (delta.row > 0) {
191
+ if (toRow <= highlightRow && coords.row > highlightRow) {
192
+ coords.row = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, bottomEndCorner.row, topStartCorner.row) + restDelta.row;
193
+ }
194
+ }
220
195
  const {
221
196
  rowDir,
222
197
  colDir
223
- } = _classPrivateMethodGet(this, _clampCoords, _clampCoords2).call(this, coords);
198
+ } = _assertClassBrand(_Transformation_brand, this, _clampCoords).call(this, coords);
224
199
  rowTransformDir = rowDir;
225
200
  colTransformDir = colDir;
226
- const newVisualCoords = _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, coords);
201
+ const newVisualCoords = _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, coords);
227
202
  if (delta.row === 0 && delta.col !== 0) {
228
203
  visualCoords.col = newVisualCoords.col;
229
204
  } else if (delta.row !== 0 && delta.col === 0) {
@@ -236,22 +211,29 @@ class Transformation {
236
211
  this.runLocalHooks('afterTransformEnd', visualCoords, rowTransformDir, colTransformDir);
237
212
  return visualCoords;
238
213
  }
214
+
215
+ /**
216
+ * Sets the additional offset in table size that may occur when the `navigableHeaders` option
217
+ * is enabled.
218
+ *
219
+ * @param {{x: number, y: number}} offset Offset as x and y properties.
220
+ */
221
+ setOffsetSize(_ref) {
222
+ let {
223
+ x,
224
+ y
225
+ } = _ref;
226
+ _classPrivateFieldSet(_offset, this, {
227
+ x,
228
+ y
229
+ });
230
+ }
239
231
  }
240
- function _setOffsetSize2(_ref) {
241
- let {
242
- x,
243
- y
244
- } = _ref;
245
- _classPrivateFieldSet(this, _offset, {
246
- x,
247
- y
248
- });
249
- }
250
- function _clampCoords2(zeroBasedCoords) {
232
+ function _clampCoords(zeroBasedCoords) {
251
233
  const {
252
234
  width,
253
235
  height
254
- } = _classPrivateMethodGet(this, _getTableSize, _getTableSize2).call(this);
236
+ } = _assertClassBrand(_Transformation_brand, this, _getTableSize).call(this);
255
237
  let rowDir = 0;
256
238
  let colDir = 0;
257
239
  if (zeroBasedCoords.row < 0) {
@@ -273,24 +255,73 @@ function _clampCoords2(zeroBasedCoords) {
273
255
  colDir
274
256
  };
275
257
  }
276
- function _getTableSize2() {
258
+ /**
259
+ * Gets the table size in number of rows with headers as "height" and number of columns with
260
+ * headers as "width".
261
+ *
262
+ * @returns {{width: number, height: number}}
263
+ */
264
+ function _getTableSize() {
277
265
  return {
278
- width: _classPrivateFieldGet(this, _offset).x + _classPrivateFieldGet(this, _options).countRenderableColumns(),
279
- height: _classPrivateFieldGet(this, _offset).y + _classPrivateFieldGet(this, _options).countRenderableRows()
266
+ width: _classPrivateFieldGet(_offset, this).x + _classPrivateFieldGet(_options, this).countRenderableColumns(),
267
+ height: _classPrivateFieldGet(_offset, this).y + _classPrivateFieldGet(_options, this).countRenderableRows()
280
268
  };
281
269
  }
282
- function _visualToZeroBasedCoords2(visualCoords) {
270
+ /**
271
+ * Finds the first non-hidden zero-based row in the table range.
272
+ *
273
+ * @param {number} visualRowFrom The visual row from which the search should start.
274
+ * @param {number} visualRowTo The visual row to which the search should end.
275
+ * @returns {number | null}
276
+ */
277
+ function _findFirstNonHiddenZeroBasedRow(visualRowFrom, visualRowTo) {
278
+ const row = _classPrivateFieldGet(_options, this).findFirstNonHiddenRenderableRow(visualRowFrom, visualRowTo);
279
+ if (row === null) {
280
+ return null;
281
+ }
282
+ return _classPrivateFieldGet(_offset, this).y + row;
283
+ }
284
+ /**
285
+ * Finds the first non-hidden zero-based column in the table range.
286
+ *
287
+ * @param {number} visualColumnFrom The visual column from which the search should start.
288
+ * @param {number} visualColumnTo The visual column to which the search should end.
289
+ * @returns {number | null}
290
+ */
291
+ function _findFirstNonHiddenZeroBasedColumn(visualColumnFrom, visualColumnTo) {
292
+ const column = _classPrivateFieldGet(_options, this).findFirstNonHiddenRenderableColumn(visualColumnFrom, visualColumnTo);
293
+ if (column === null) {
294
+ return null;
295
+ }
296
+ return _classPrivateFieldGet(_offset, this).x + column;
297
+ }
298
+ /**
299
+ * Translates the visual coordinates to zero-based ones.
300
+ *
301
+ * @param {CellCoords} visualCoords The visual coords to process.
302
+ * @returns {CellCoords}
303
+ */
304
+ function _visualToZeroBasedCoords(visualCoords) {
283
305
  const {
284
306
  row,
285
307
  col
286
- } = _classPrivateFieldGet(this, _options).visualToRenderableCoords(visualCoords);
287
- return _classPrivateFieldGet(this, _options).createCellCoords(_classPrivateFieldGet(this, _offset).y + row, _classPrivateFieldGet(this, _offset).x + col);
308
+ } = _classPrivateFieldGet(_options, this).visualToRenderableCoords(visualCoords);
309
+ if (row === null || col === null) {
310
+ throw new Error('Renderable coords are not visible.');
311
+ }
312
+ return _classPrivateFieldGet(_options, this).createCellCoords(_classPrivateFieldGet(_offset, this).y + row, _classPrivateFieldGet(_offset, this).x + col);
288
313
  }
289
- function _zeroBasedToVisualCoords2(zeroBasedCoords) {
314
+ /**
315
+ * Translates the zero-based coordinates to visual ones.
316
+ *
317
+ * @param {CellCoords} zeroBasedCoords The coordinates to process.
318
+ * @returns {CellCoords}
319
+ */
320
+ function _zeroBasedToVisualCoords(zeroBasedCoords) {
290
321
  const coords = zeroBasedCoords.clone();
291
- coords.col = zeroBasedCoords.col - _classPrivateFieldGet(this, _offset).x;
292
- coords.row = zeroBasedCoords.row - _classPrivateFieldGet(this, _offset).y;
293
- return _classPrivateFieldGet(this, _options).renderableToVisualCoords(coords);
322
+ coords.col = zeroBasedCoords.col - _classPrivateFieldGet(_offset, this).x;
323
+ coords.row = zeroBasedCoords.row - _classPrivateFieldGet(_offset, this).y;
324
+ return _classPrivateFieldGet(_options, this).renderableToVisualCoords(coords);
294
325
  }
295
326
  mixin(Transformation, localHooks);
296
327
  export default Transformation;
@@ -3,9 +3,9 @@
3
3
  exports.__esModule = true;
4
4
  const command = exports.command = {
5
5
  name: 'editorCloseAndSave',
6
- callback(hot, event, keys) {
6
+ callback(hot, event) {
7
7
  const editorManager = hot._getEditorManager();
8
8
  editorManager.closeEditorAndSaveChanges(event.ctrlKey || event.metaKey);
9
- editorManager.moveSelectionAfterEnter(keys.includes('shift'));
9
+ editorManager.moveSelectionAfterEnter(event);
10
10
  }
11
11
  };
@@ -1,8 +1,8 @@
1
1
  export const command = {
2
2
  name: 'editorCloseAndSave',
3
- callback(hot, event, keys) {
3
+ callback(hot, event) {
4
4
  const editorManager = hot._getEditorManager();
5
5
  editorManager.closeEditorAndSaveChanges(event.ctrlKey || event.metaKey);
6
- editorManager.moveSelectionAfterEnter(keys.includes('shift'));
6
+ editorManager.moveSelectionAfterEnter(event);
7
7
  }
8
8
  };
@@ -6,20 +6,35 @@ const command = exports.command = {
6
6
  name: 'editorOpen',
7
7
  callback(hot, event, keys) {
8
8
  const editorManager = hot._getEditorManager();
9
+ const selectedRange = hot.getSelectedRangeLast();
9
10
  const {
10
11
  highlight
11
- } = hot.getSelectedRangeLast();
12
+ } = selectedRange;
13
+
14
+ // supports for navigating with enter key when multiple cells are selected
15
+ if (hot.selection.isMultiple() && !selectedRange.isHeader() && hot.countRenderedCols() > 0 && hot.countRenderedRows() > 0) {
16
+ const settings = hot.getSettings();
17
+ const enterMoves = typeof settings.enterMoves === 'function' ? settings.enterMoves(event) : settings.enterMoves;
18
+ if (keys.includes('shift')) {
19
+ hot.selection.transformFocus(-enterMoves.row, -enterMoves.col);
20
+ } else {
21
+ hot.selection.transformFocus(enterMoves.row, enterMoves.col);
22
+ }
23
+ return;
24
+ }
12
25
  if (highlight.isHeader()) {
13
26
  return;
14
27
  }
28
+
29
+ // supports editor opening with enter key
15
30
  if (hot.getSettings().enterBeginsEditing) {
16
31
  if (editorManager.cellProperties.readOnly) {
17
- editorManager.moveSelectionAfterEnter();
32
+ editorManager.moveSelectionAfterEnter(event);
18
33
  } else {
19
34
  editorManager.openEditor(null, event, true);
20
35
  }
21
36
  } else {
22
- editorManager.moveSelectionAfterEnter(keys.includes('shift'));
37
+ editorManager.moveSelectionAfterEnter(event);
23
38
  }
24
39
  (0, _event.stopImmediatePropagation)(event); // required by HandsontableEditor
25
40
  }
@@ -3,20 +3,35 @@ export const command = {
3
3
  name: 'editorOpen',
4
4
  callback(hot, event, keys) {
5
5
  const editorManager = hot._getEditorManager();
6
+ const selectedRange = hot.getSelectedRangeLast();
6
7
  const {
7
8
  highlight
8
- } = hot.getSelectedRangeLast();
9
+ } = selectedRange;
10
+
11
+ // supports for navigating with enter key when multiple cells are selected
12
+ if (hot.selection.isMultiple() && !selectedRange.isHeader() && hot.countRenderedCols() > 0 && hot.countRenderedRows() > 0) {
13
+ const settings = hot.getSettings();
14
+ const enterMoves = typeof settings.enterMoves === 'function' ? settings.enterMoves(event) : settings.enterMoves;
15
+ if (keys.includes('shift')) {
16
+ hot.selection.transformFocus(-enterMoves.row, -enterMoves.col);
17
+ } else {
18
+ hot.selection.transformFocus(enterMoves.row, enterMoves.col);
19
+ }
20
+ return;
21
+ }
9
22
  if (highlight.isHeader()) {
10
23
  return;
11
24
  }
25
+
26
+ // supports editor opening with enter key
12
27
  if (hot.getSettings().enterBeginsEditing) {
13
28
  if (editorManager.cellProperties.readOnly) {
14
- editorManager.moveSelectionAfterEnter();
29
+ editorManager.moveSelectionAfterEnter(event);
15
30
  } else {
16
31
  editorManager.openEditor(null, event, true);
17
32
  }
18
33
  } else {
19
- editorManager.moveSelectionAfterEnter(keys.includes('shift'));
34
+ editorManager.moveSelectionAfterEnter(event);
20
35
  }
21
36
  stopImmediatePropagation(event); // required by HandsontableEditor
22
37
  }
@@ -7,7 +7,7 @@ const command = exports.command = {
7
7
  const {
8
8
  highlight
9
9
  } = hot.getSelectedRangeLast();
10
- if (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByRowHeader()) {
10
+ if (!hot.selection.isSelectedByColumnHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByRowHeader())) {
11
11
  hot.selection.transformEnd(1, 0);
12
12
  }
13
13
  }
@@ -4,7 +4,7 @@ export const command = {
4
4
  const {
5
5
  highlight
6
6
  } = hot.getSelectedRangeLast();
7
- if (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByRowHeader()) {
7
+ if (!hot.selection.isSelectedByColumnHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByRowHeader())) {
8
8
  hot.selection.transformEnd(1, 0);
9
9
  }
10
10
  }
@@ -7,7 +7,7 @@ const command = exports.command = {
7
7
  const {
8
8
  highlight
9
9
  } = hot.getSelectedRangeLast();
10
- if (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader()) {
10
+ if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {
11
11
  hot.selection.transformEnd(0, -1 * hot.getDirectionFactor());
12
12
  }
13
13
  }
@@ -4,7 +4,7 @@ export const command = {
4
4
  const {
5
5
  highlight
6
6
  } = hot.getSelectedRangeLast();
7
- if (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader()) {
7
+ if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {
8
8
  hot.selection.transformEnd(0, -1 * hot.getDirectionFactor());
9
9
  }
10
10
  }
@@ -7,7 +7,7 @@ const command = exports.command = {
7
7
  const {
8
8
  highlight
9
9
  } = hot.getSelectedRangeLast();
10
- if (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader()) {
10
+ if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {
11
11
  hot.selection.transformEnd(0, hot.getDirectionFactor());
12
12
  }
13
13
  }
@@ -4,7 +4,7 @@ export const command = {
4
4
  const {
5
5
  highlight
6
6
  } = hot.getSelectedRangeLast();
7
- if (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader()) {
7
+ if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {
8
8
  hot.selection.transformEnd(0, hot.getDirectionFactor());
9
9
  }
10
10
  }
@@ -12,7 +12,7 @@ const command = exports.command = {
12
12
  if (hot.selection.isSelectedByRowHeader()) {
13
13
  hot.selection.selectAll(true, true);
14
14
  } else {
15
- hot.selectColumns(from.col, to.col, highlight.row);
15
+ hot.selectColumns(from.col, to.col, highlight);
16
16
  }
17
17
  }
18
18
  };
@@ -9,7 +9,7 @@ export const command = {
9
9
  if (hot.selection.isSelectedByRowHeader()) {
10
10
  hot.selection.selectAll(true, true);
11
11
  } else {
12
- hot.selectColumns(from.col, to.col, highlight.row);
12
+ hot.selectColumns(from.col, to.col, highlight);
13
13
  }
14
14
  }
15
15
  };
@@ -16,7 +16,9 @@ const command = exports.command = {
16
16
  const isFocusHighlightedByHeader = highlight.isHeader() && hot.selection.isSelectedByRowHeader();
17
17
  if (highlight.isCell() || isFocusHighlightedByHeader) {
18
18
  const row = rowIndexMapper.getNearestNotHiddenIndex(hot.countRows() - 1, -1);
19
- selection.setRangeStart(from.clone());
19
+ const newFrom = from.clone();
20
+ newFrom.row = highlight.row;
21
+ selection.setRangeStart(newFrom, undefined, false, highlight.clone());
20
22
 
21
23
  // Restore the row highlight by header flag after setting up a new selection.
22
24
  if (isFocusHighlightedByHeader) {
@@ -13,7 +13,9 @@ export const command = {
13
13
  const isFocusHighlightedByHeader = highlight.isHeader() && hot.selection.isSelectedByRowHeader();
14
14
  if (highlight.isCell() || isFocusHighlightedByHeader) {
15
15
  const row = rowIndexMapper.getNearestNotHiddenIndex(hot.countRows() - 1, -1);
16
- selection.setRangeStart(from.clone());
16
+ const newFrom = from.clone();
17
+ newFrom.row = highlight.row;
18
+ selection.setRangeStart(newFrom, undefined, false, highlight.clone());
17
19
 
18
20
  // Restore the row highlight by header flag after setting up a new selection.
19
21
  if (isFocusHighlightedByHeader) {
@@ -9,10 +9,16 @@ const command = exports.command = {
9
9
  columnIndexMapper
10
10
  } = hot;
11
11
  const {
12
- highlight
12
+ highlight,
13
+ from,
14
+ to
13
15
  } = hot.getSelectedRangeLast();
14
- if (highlight.isCell()) {
15
- selection.setRangeEnd(hot._createCellCoords(selection.selectedRange.current().from.row, columnIndexMapper.getNearestNotHiddenIndex(hot.countCols() - 1, -1)));
16
+ if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && highlight.isCell()) {
17
+ const column = columnIndexMapper.getNearestNotHiddenIndex(hot.countCols() - 1, -1);
18
+ const newFrom = from.clone();
19
+ newFrom.col = highlight.col;
20
+ selection.setRangeStart(newFrom, undefined, false, highlight.clone());
21
+ selection.setRangeEnd(hot._createCellCoords(to.row, column));
16
22
  }
17
23
  }
18
24
  };