handsontable 0.0.0-next-2becb78-20240313 → 0.0.0-next-bff5041-20240315

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.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

Files changed (272) hide show
  1. package/3rdparty/walkontable/src/calculator/viewportColumns.js +12 -17
  2. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +12 -17
  3. package/3rdparty/walkontable/src/calculator/viewportRows.js +10 -15
  4. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +10 -15
  5. package/3rdparty/walkontable/src/cell/coords.js +12 -17
  6. package/3rdparty/walkontable/src/cell/coords.mjs +12 -17
  7. package/3rdparty/walkontable/src/cell/range.d.ts +0 -1
  8. package/3rdparty/walkontable/src/cell/range.js +23 -45
  9. package/3rdparty/walkontable/src/cell/range.mjs +23 -45
  10. package/3rdparty/walkontable/src/core/_base.js +1 -1
  11. package/3rdparty/walkontable/src/core/_base.mjs +1 -1
  12. package/3rdparty/walkontable/src/event.js +72 -104
  13. package/3rdparty/walkontable/src/event.mjs +72 -104
  14. package/3rdparty/walkontable/src/overlays.js +1 -1
  15. package/3rdparty/walkontable/src/overlays.mjs +1 -1
  16. package/3rdparty/walkontable/src/scroll.js +15 -17
  17. package/3rdparty/walkontable/src/scroll.mjs +15 -17
  18. package/3rdparty/walkontable/src/selection/manager.js +48 -69
  19. package/3rdparty/walkontable/src/selection/manager.mjs +48 -69
  20. package/3rdparty/walkontable/src/selection/scanner.js +33 -42
  21. package/3rdparty/walkontable/src/selection/scanner.mjs +33 -42
  22. package/3rdparty/walkontable/src/utils/columnStretching.js +27 -44
  23. package/3rdparty/walkontable/src/utils/columnStretching.mjs +27 -44
  24. package/3rdparty/walkontable/src/utils/orderView/view.js +1 -1
  25. package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
  26. package/base.js +2 -2
  27. package/base.mjs +2 -2
  28. package/core/viewportScroll/index.js +1 -4
  29. package/core/viewportScroll/index.mjs +1 -4
  30. package/core.d.ts +3 -4
  31. package/core.js +22 -82
  32. package/core.mjs +22 -82
  33. package/dataMap/dataSource.js +1 -1
  34. package/dataMap/dataSource.mjs +1 -1
  35. package/dataMap/metaManager/metaLayers/cellMeta.js +1 -1
  36. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
  37. package/dataMap/replaceData.js +1 -1
  38. package/dataMap/replaceData.mjs +1 -1
  39. package/dist/handsontable.css +2 -2
  40. package/dist/handsontable.full.css +2 -2
  41. package/dist/handsontable.full.js +7619 -10404
  42. package/dist/handsontable.full.min.css +2 -2
  43. package/dist/handsontable.full.min.js +277 -277
  44. package/dist/handsontable.js +5525 -7857
  45. package/dist/handsontable.min.css +2 -2
  46. package/dist/handsontable.min.js +33 -33
  47. package/dist/languages/all.min.js +1 -1
  48. package/dist/languages/ar-AR.min.js +1 -1
  49. package/dist/languages/cs-CZ.min.js +1 -1
  50. package/dist/languages/de-CH.min.js +1 -1
  51. package/dist/languages/de-DE.min.js +1 -1
  52. package/dist/languages/en-US.min.js +1 -1
  53. package/dist/languages/es-MX.min.js +1 -1
  54. package/dist/languages/fr-FR.min.js +1 -1
  55. package/dist/languages/hr-HR.min.js +1 -1
  56. package/dist/languages/it-IT.min.js +1 -1
  57. package/dist/languages/ja-JP.min.js +1 -1
  58. package/dist/languages/ko-KR.min.js +1 -1
  59. package/dist/languages/lv-LV.min.js +1 -1
  60. package/dist/languages/nb-NO.min.js +1 -1
  61. package/dist/languages/nl-NL.min.js +1 -1
  62. package/dist/languages/pl-PL.min.js +1 -1
  63. package/dist/languages/pt-BR.min.js +1 -1
  64. package/dist/languages/ru-RU.min.js +1 -1
  65. package/dist/languages/sr-SP.min.js +1 -1
  66. package/dist/languages/zh-CN.min.js +1 -1
  67. package/dist/languages/zh-TW.min.js +1 -1
  68. package/editorManager.js +21 -27
  69. package/editorManager.mjs +21 -27
  70. package/editors/autocompleteEditor/autocompleteEditor.js +6 -10
  71. package/editors/autocompleteEditor/autocompleteEditor.mjs +6 -10
  72. package/eventManager.js +1 -1
  73. package/eventManager.mjs +1 -1
  74. package/focusManager.js +58 -82
  75. package/focusManager.mjs +58 -82
  76. package/helpers/dom/element.js +1 -1
  77. package/helpers/dom/element.mjs +1 -1
  78. package/helpers/mixed.js +1 -1
  79. package/helpers/mixed.mjs +1 -1
  80. package/helpers/object.js +2 -2
  81. package/helpers/object.mjs +2 -2
  82. package/index.d.ts +10 -0
  83. package/package.json +2 -1
  84. package/pluginHooks.d.ts +0 -4
  85. package/pluginHooks.js +2 -44
  86. package/pluginHooks.mjs +2 -44
  87. package/plugins/autoColumnSize/autoColumnSize.js +49 -65
  88. package/plugins/autoColumnSize/autoColumnSize.mjs +49 -65
  89. package/plugins/autoRowSize/autoRowSize.js +28 -34
  90. package/plugins/autoRowSize/autoRowSize.mjs +28 -34
  91. package/plugins/autofill/autofill.js +30 -38
  92. package/plugins/autofill/autofill.mjs +30 -38
  93. package/plugins/base/base.js +12 -17
  94. package/plugins/base/base.mjs +12 -17
  95. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +5 -5
  96. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +5 -5
  97. package/plugins/collapsibleColumns/collapsibleColumns.js +36 -54
  98. package/plugins/collapsibleColumns/collapsibleColumns.mjs +36 -54
  99. package/plugins/columnSorting/columnSorting.js +40 -46
  100. package/plugins/columnSorting/columnSorting.mjs +40 -46
  101. package/plugins/columnSummary/columnSummary.js +22 -26
  102. package/plugins/columnSummary/columnSummary.mjs +22 -26
  103. package/plugins/comments/comments.js +116 -158
  104. package/plugins/comments/comments.mjs +116 -158
  105. package/plugins/contextMenu/contextMenu.js +20 -26
  106. package/plugins/contextMenu/contextMenu.mjs +20 -26
  107. package/plugins/contextMenu/itemsFactory.js +1 -1
  108. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  109. package/plugins/contextMenu/menu/defaultShortcutsList.js +10 -26
  110. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +10 -26
  111. package/plugins/contextMenu/menu/menu.js +13 -21
  112. package/plugins/contextMenu/menu/menu.mjs +13 -21
  113. package/plugins/contextMenu/menu/positioner.js +41 -58
  114. package/plugins/contextMenu/menu/positioner.mjs +41 -58
  115. package/plugins/copyPaste/copyPaste.js +113 -154
  116. package/plugins/copyPaste/copyPaste.mjs +113 -154
  117. package/plugins/copyPaste/copyableRanges.js +43 -66
  118. package/plugins/copyPaste/copyableRanges.mjs +43 -66
  119. package/plugins/customBorders/customBorders.js +11 -13
  120. package/plugins/customBorders/customBorders.mjs +11 -13
  121. package/plugins/dragToScroll/dragToScroll.js +6 -6
  122. package/plugins/dragToScroll/dragToScroll.mjs +6 -6
  123. package/plugins/dropdownMenu/dropdownMenu.js +78 -100
  124. package/plugins/dropdownMenu/dropdownMenu.mjs +78 -100
  125. package/plugins/exportFile/dataProvider.js +1 -1
  126. package/plugins/exportFile/dataProvider.mjs +1 -1
  127. package/plugins/filters/component/actionBar.js +9 -9
  128. package/plugins/filters/component/actionBar.mjs +8 -8
  129. package/plugins/filters/component/condition.js +13 -15
  130. package/plugins/filters/component/condition.mjs +13 -15
  131. package/plugins/filters/component/operators.js +6 -6
  132. package/plugins/filters/component/operators.mjs +6 -6
  133. package/plugins/filters/component/value.js +24 -28
  134. package/plugins/filters/component/value.mjs +24 -28
  135. package/plugins/filters/conditionUpdateObserver.js +22 -24
  136. package/plugins/filters/conditionUpdateObserver.mjs +22 -24
  137. package/plugins/filters/dataFilter.js +1 -1
  138. package/plugins/filters/dataFilter.mjs +1 -1
  139. package/plugins/filters/filters.js +81 -95
  140. package/plugins/filters/filters.mjs +81 -95
  141. package/plugins/filters/ui/input.js +13 -19
  142. package/plugins/filters/ui/input.mjs +13 -19
  143. package/plugins/filters/ui/link.js +8 -13
  144. package/plugins/filters/ui/link.mjs +8 -13
  145. package/plugins/filters/ui/multipleSelect.js +85 -112
  146. package/plugins/filters/ui/multipleSelect.mjs +85 -112
  147. package/plugins/filters/ui/radioInput.js +12 -20
  148. package/plugins/filters/ui/radioInput.mjs +12 -20
  149. package/plugins/filters/ui/select.js +50 -72
  150. package/plugins/filters/ui/select.mjs +49 -71
  151. package/plugins/formulas/formulas.js +268 -326
  152. package/plugins/formulas/formulas.mjs +269 -327
  153. package/plugins/formulas/indexSyncer/axisSyncer.js +38 -61
  154. package/plugins/formulas/indexSyncer/axisSyncer.mjs +38 -61
  155. package/plugins/formulas/indexSyncer/index.js +25 -48
  156. package/plugins/formulas/indexSyncer/index.mjs +25 -48
  157. package/plugins/hiddenColumns/hiddenColumns.js +64 -83
  158. package/plugins/hiddenColumns/hiddenColumns.mjs +64 -83
  159. package/plugins/hiddenRows/hiddenRows.js +63 -82
  160. package/plugins/hiddenRows/hiddenRows.mjs +63 -82
  161. package/plugins/manualColumnFreeze/manualColumnFreeze.js +24 -32
  162. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +25 -33
  163. package/plugins/manualColumnMove/manualColumnMove.js +126 -170
  164. package/plugins/manualColumnMove/manualColumnMove.mjs +126 -170
  165. package/plugins/manualColumnResize/manualColumnResize.js +169 -230
  166. package/plugins/manualColumnResize/manualColumnResize.mjs +169 -230
  167. package/plugins/manualRowMove/manualRowMove.js +99 -128
  168. package/plugins/manualRowMove/manualRowMove.mjs +99 -128
  169. package/plugins/manualRowResize/manualRowResize.js +150 -209
  170. package/plugins/manualRowResize/manualRowResize.mjs +150 -209
  171. package/plugins/mergeCells/calculations/selection.js +71 -2
  172. package/plugins/mergeCells/calculations/selection.mjs +71 -2
  173. package/plugins/mergeCells/cellsCollection.js +1 -117
  174. package/plugins/mergeCells/cellsCollection.mjs +1 -117
  175. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -11
  176. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +1 -11
  177. package/plugins/mergeCells/mergeCells.js +353 -593
  178. package/plugins/mergeCells/mergeCells.mjs +353 -593
  179. package/plugins/multiColumnSorting/multiColumnSorting.js +0 -6
  180. package/plugins/multiColumnSorting/multiColumnSorting.mjs +0 -6
  181. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +1 -1
  182. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +1 -1
  183. package/plugins/nestedHeaders/nestedHeaders.js +204 -254
  184. package/plugins/nestedHeaders/nestedHeaders.mjs +205 -255
  185. package/plugins/nestedHeaders/stateManager/headersTree.js +21 -32
  186. package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -32
  187. package/plugins/nestedHeaders/stateManager/index.js +30 -41
  188. package/plugins/nestedHeaders/stateManager/index.mjs +30 -41
  189. package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -30
  190. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -30
  191. package/plugins/nestedRows/data/dataManager.js +1 -1
  192. package/plugins/nestedRows/data/dataManager.mjs +1 -1
  193. package/plugins/nestedRows/nestedRows.js +138 -179
  194. package/plugins/nestedRows/nestedRows.mjs +139 -180
  195. package/plugins/nestedRows/ui/contextMenu.js +11 -15
  196. package/plugins/nestedRows/ui/contextMenu.mjs +10 -14
  197. package/plugins/nestedRows/utils/rowMoveController.js +1 -1
  198. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -1
  199. package/plugins/persistentState/storage.js +2 -2
  200. package/plugins/persistentState/storage.mjs +2 -2
  201. package/plugins/search/search.js +7 -7
  202. package/plugins/search/search.mjs +7 -7
  203. package/plugins/touchScroll/touchScroll.js +15 -19
  204. package/plugins/touchScroll/touchScroll.mjs +16 -20
  205. package/plugins/trimRows/trimRows.js +6 -6
  206. package/plugins/trimRows/trimRows.mjs +6 -6
  207. package/renderers/checkboxRenderer/checkboxRenderer.js +5 -8
  208. package/renderers/checkboxRenderer/checkboxRenderer.mjs +5 -8
  209. package/selection/highlight/highlight.js +14 -14
  210. package/selection/highlight/highlight.mjs +13 -13
  211. package/selection/highlight/visualSelection.js +2 -16
  212. package/selection/highlight/visualSelection.mjs +2 -16
  213. package/selection/selection.js +60 -255
  214. package/selection/selection.mjs +59 -254
  215. package/selection/transformation.js +101 -175
  216. package/selection/transformation.mjs +101 -175
  217. package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
  218. package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
  219. package/shortcutContexts/commands/editor/open.js +3 -18
  220. package/shortcutContexts/commands/editor/open.mjs +3 -18
  221. package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
  222. package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
  223. package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
  224. package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
  225. package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
  226. package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
  227. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
  228. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
  229. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +1 -3
  230. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +1 -3
  231. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +3 -9
  232. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +3 -9
  233. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +3 -10
  234. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +3 -10
  235. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +1 -3
  236. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +1 -3
  237. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +1 -3
  238. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +1 -3
  239. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +1 -3
  240. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +1 -3
  241. package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
  242. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
  243. package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
  244. package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
  245. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +1 -6
  246. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +1 -6
  247. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +1 -6
  248. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +1 -6
  249. package/shortcutContexts/grid.js +2 -2
  250. package/shortcutContexts/grid.mjs +2 -2
  251. package/shortcuts/context.js +1 -2
  252. package/shortcuts/context.mjs +1 -2
  253. package/tableView.js +52 -98
  254. package/tableView.mjs +52 -98
  255. package/translations/changesObservable/observable.js +21 -38
  256. package/translations/changesObservable/observable.mjs +21 -38
  257. package/translations/changesObservable/observer.js +7 -12
  258. package/translations/changesObservable/observer.mjs +6 -11
  259. package/translations/mapCollections/aggregatedCollection.js +1 -1
  260. package/translations/mapCollections/aggregatedCollection.mjs +1 -1
  261. package/translations/maps/indexMap.js +1 -1
  262. package/translations/maps/indexMap.mjs +1 -1
  263. package/utils/dataStructures/linkedList.js +1 -6
  264. package/utils/dataStructures/linkedList.mjs +1 -6
  265. package/utils/dataStructures/tree.js +1 -1
  266. package/utils/dataStructures/tree.mjs +1 -1
  267. package/utils/interval.js +26 -44
  268. package/utils/interval.mjs +26 -44
  269. package/core/viewportScroll/scrollStrategies/focusScroll.js +0 -15
  270. package/core/viewportScroll/scrollStrategies/focusScroll.mjs +0 -11
  271. package/plugins/mergeCells/focusOrder.js +0 -327
  272. package/plugins/mergeCells/focusOrder.mjs +0 -322
@@ -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 _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
6
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
7
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
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,77 +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 _clampCoords = /*#__PURE__*/new WeakSet();
32
- var _getTableSize = /*#__PURE__*/new WeakSet();
33
- var _findFirstNonHiddenZeroBasedRow = /*#__PURE__*/new WeakSet();
34
- var _findFirstNonHiddenZeroBasedColumn = /*#__PURE__*/new WeakSet();
35
- var _visualToZeroBasedCoords = /*#__PURE__*/new WeakSet();
36
- var _zeroBasedToVisualCoords = /*#__PURE__*/new WeakSet();
28
+ var _Transformation_brand = /*#__PURE__*/new WeakSet();
37
29
  class Transformation {
38
30
  constructor(range, options) {
39
31
  /**
40
- * Translates the zero-based coordinates to visual ones.
32
+ * Sets the additional offset in table size that may occur when the `navigableHeaders` option
33
+ * is enabled.
41
34
  *
42
- * @param {CellCoords} zeroBasedCoords The coordinates to process.
43
- * @returns {CellCoords}
35
+ * @param {{x: number, y: number}} offset Offset as x and y properties.
44
36
  */
45
- _classPrivateMethodInitSpec(this, _zeroBasedToVisualCoords);
46
- /**
47
- * Translates the visual coordinates to zero-based ones.
48
- *
49
- * @param {CellCoords} visualCoords The visual coords to process.
50
- * @returns {CellCoords}
51
- */
52
- _classPrivateMethodInitSpec(this, _visualToZeroBasedCoords);
53
- /**
54
- * Finds the first non-hidden zero-based column in the table range.
55
- *
56
- * @param {number} visualColumnFrom The visual column from which the search should start.
57
- * @param {number} visualColumnTo The visual column to which the search should end.
58
- * @returns {number | null}
59
- */
60
- _classPrivateMethodInitSpec(this, _findFirstNonHiddenZeroBasedColumn);
61
- /**
62
- * Finds the first non-hidden zero-based row in the table range.
63
- *
64
- * @param {number} visualRowFrom The visual row from which the search should start.
65
- * @param {number} visualRowTo The visual row to which the search should end.
66
- * @returns {number | null}
67
- */
68
- _classPrivateMethodInitSpec(this, _findFirstNonHiddenZeroBasedRow);
69
- /**
70
- * Gets the table size in number of rows with headers as "height" and number of columns with
71
- * headers as "width".
72
- *
73
- * @returns {{width: number, height: number}}
74
- */
75
- _classPrivateMethodInitSpec(this, _getTableSize);
76
- /**
77
- * Clamps the coords to make sure they points to the cell (or header) in the table range.
78
- *
79
- * @param {CellCoords} zeroBasedCoords The coords object to clamp.
80
- * @returns {{rowDir: 1|0|-1, colDir: 1|0|-1}}
81
- */
82
- _classPrivateMethodInitSpec(this, _clampCoords);
37
+ _classPrivateMethodInitSpec(this, _Transformation_brand);
83
38
  /**
84
39
  * Instance of the SelectionRange, holder for visual coordinates applied to the table.
85
40
  *
86
41
  * @type {SelectionRange}
87
42
  */
88
- _classPrivateFieldInitSpec(this, _range, {
89
- writable: true,
90
- value: void 0
91
- });
43
+ _classPrivateFieldInitSpec(this, _range, void 0);
92
44
  /**
93
45
  * Additional options which define the state of the settings which can infer transformation and
94
46
  * give the possibility to translate indexes.
95
47
  *
96
48
  * @type {object}
97
49
  */
98
- _classPrivateFieldInitSpec(this, _options, {
99
- writable: true,
100
- value: void 0
101
- });
50
+ _classPrivateFieldInitSpec(this, _options, void 0);
102
51
  /**
103
52
  * Increases the table size by applying the offsets. The option is used by the `navigableHeaders`
104
53
  * option.
@@ -106,14 +55,11 @@ class Transformation {
106
55
  * @type {{ x: number, y: number }}
107
56
  */
108
57
  _classPrivateFieldInitSpec(this, _offset, {
109
- writable: true,
110
- value: {
111
- x: 0,
112
- y: 0
113
- }
58
+ x: 0,
59
+ y: 0
114
60
  });
115
- _classPrivateFieldSet(this, _range, range);
116
- _classPrivateFieldSet(this, _options, options);
61
+ _classPrivateFieldSet(_range, this, range);
62
+ _classPrivateFieldSet(_options, this, options);
117
63
  }
118
64
 
119
65
  /**
@@ -127,9 +73,13 @@ class Transformation {
127
73
  */
128
74
  transformStart(rowDelta, colDelta) {
129
75
  let createMissingRecords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
130
- const delta = _classPrivateFieldGet(this, _options).createCellCoords(rowDelta, colDelta);
131
- let visualCoords = _classPrivateFieldGet(this, _range).current().highlight;
132
- const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(visualCoords);
76
+ _assertClassBrand(_Transformation_brand, this, _setOffsetSize).call(this, {
77
+ x: _classPrivateFieldGet(_options, this).navigableHeaders() ? _classPrivateFieldGet(_options, this).countRowHeaders() : 0,
78
+ y: _classPrivateFieldGet(_options, this).navigableHeaders() ? _classPrivateFieldGet(_options, this).countColHeaders() : 0
79
+ });
80
+ const delta = _classPrivateFieldGet(_options, this).createCellCoords(rowDelta, colDelta);
81
+ let visualCoords = _classPrivateFieldGet(_range, this).current().highlight;
82
+ const highlightRenderableCoords = _classPrivateFieldGet(_options, this).visualToRenderableCoords(visualCoords);
133
83
  let rowTransformDir = 0;
134
84
  let colTransformDir = 0;
135
85
  this.runLocalHooks('beforeTransformStart', delta);
@@ -137,32 +87,32 @@ class Transformation {
137
87
  const {
138
88
  width,
139
89
  height
140
- } = _classPrivateMethodGet(this, _getTableSize, _getTableSize2).call(this);
90
+ } = _assertClassBrand(_Transformation_brand, this, _getTableSize).call(this);
141
91
  const {
142
92
  row,
143
93
  col
144
- } = _classPrivateMethodGet(this, _visualToZeroBasedCoords, _visualToZeroBasedCoords2).call(this, visualCoords);
145
- const fixedRowsBottom = _classPrivateFieldGet(this, _options).fixedRowsBottom();
146
- const minSpareRows = _classPrivateFieldGet(this, _options).minSpareRows();
147
- const minSpareCols = _classPrivateFieldGet(this, _options).minSpareCols();
148
- const autoWrapRow = _classPrivateFieldGet(this, _options).autoWrapRow();
149
- const autoWrapCol = _classPrivateFieldGet(this, _options).autoWrapCol();
150
- const zeroBasedCoords = _classPrivateFieldGet(this, _options).createCellCoords(row + delta.row, col + delta.col);
94
+ } = _assertClassBrand(_Transformation_brand, this, _visualToZeroBasedCoords).call(this, visualCoords);
95
+ const fixedRowsBottom = _classPrivateFieldGet(_options, this).fixedRowsBottom();
96
+ const minSpareRows = _classPrivateFieldGet(_options, this).minSpareRows();
97
+ const minSpareCols = _classPrivateFieldGet(_options, this).minSpareCols();
98
+ const autoWrapRow = _classPrivateFieldGet(_options, this).autoWrapRow();
99
+ const autoWrapCol = _classPrivateFieldGet(_options, this).autoWrapCol();
100
+ const zeroBasedCoords = _classPrivateFieldGet(_options, this).createCellCoords(row + delta.row, col + delta.col);
151
101
  if (zeroBasedCoords.row >= height) {
152
102
  const isActionInterrupted = createObjectPropListener(createMissingRecords && minSpareRows > 0 && fixedRowsBottom === 0);
153
103
  const nextColumn = zeroBasedCoords.col + 1;
154
- const newCoords = _classPrivateFieldGet(this, _options).createCellCoords(zeroBasedCoords.row - height, nextColumn >= width ? nextColumn - width : nextColumn);
155
- this.runLocalHooks('beforeColumnWrap', isActionInterrupted, _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, newCoords), nextColumn >= width);
104
+ const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(zeroBasedCoords.row - height, nextColumn >= width ? nextColumn - width : nextColumn);
105
+ this.runLocalHooks('beforeColumnWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), nextColumn >= width);
156
106
  if (isActionInterrupted.value) {
157
- this.runLocalHooks('insertRowRequire', _classPrivateFieldGet(this, _options).countRenderableRows());
107
+ this.runLocalHooks('insertRowRequire', _classPrivateFieldGet(_options, this).countRenderableRows());
158
108
  } else if (autoWrapCol) {
159
109
  zeroBasedCoords.assign(newCoords);
160
110
  }
161
111
  } else if (zeroBasedCoords.row < 0) {
162
112
  const isActionInterrupted = createObjectPropListener(autoWrapCol);
163
113
  const previousColumn = zeroBasedCoords.col - 1;
164
- const newCoords = _classPrivateFieldGet(this, _options).createCellCoords(height + zeroBasedCoords.row, previousColumn < 0 ? width + previousColumn : previousColumn);
165
- this.runLocalHooks('beforeColumnWrap', isActionInterrupted, _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, newCoords), previousColumn < 0);
114
+ const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(height + zeroBasedCoords.row, previousColumn < 0 ? width + previousColumn : previousColumn);
115
+ this.runLocalHooks('beforeColumnWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), previousColumn < 0);
166
116
  if (autoWrapCol) {
167
117
  zeroBasedCoords.assign(newCoords);
168
118
  }
@@ -170,18 +120,18 @@ class Transformation {
170
120
  if (zeroBasedCoords.col >= width) {
171
121
  const isActionInterrupted = createObjectPropListener(createMissingRecords && minSpareCols > 0);
172
122
  const nextRow = zeroBasedCoords.row + 1;
173
- const newCoords = _classPrivateFieldGet(this, _options).createCellCoords(nextRow >= height ? nextRow - height : nextRow, zeroBasedCoords.col - width);
174
- this.runLocalHooks('beforeRowWrap', isActionInterrupted, _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, newCoords), nextRow >= height);
123
+ const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(nextRow >= height ? nextRow - height : nextRow, zeroBasedCoords.col - width);
124
+ this.runLocalHooks('beforeRowWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), nextRow >= height);
175
125
  if (isActionInterrupted.value) {
176
- this.runLocalHooks('insertColRequire', _classPrivateFieldGet(this, _options).countRenderableColumns());
126
+ this.runLocalHooks('insertColRequire', _classPrivateFieldGet(_options, this).countRenderableColumns());
177
127
  } else if (autoWrapRow) {
178
128
  zeroBasedCoords.assign(newCoords);
179
129
  }
180
130
  } else if (zeroBasedCoords.col < 0) {
181
131
  const isActionInterrupted = createObjectPropListener(autoWrapRow);
182
132
  const previousRow = zeroBasedCoords.row - 1;
183
- const newCoords = _classPrivateFieldGet(this, _options).createCellCoords(previousRow < 0 ? height + previousRow : previousRow, width + zeroBasedCoords.col);
184
- this.runLocalHooks('beforeRowWrap', isActionInterrupted, _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, newCoords), previousRow < 0);
133
+ const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(previousRow < 0 ? height + previousRow : previousRow, width + zeroBasedCoords.col);
134
+ this.runLocalHooks('beforeRowWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), previousRow < 0);
185
135
  if (autoWrapRow) {
186
136
  zeroBasedCoords.assign(newCoords);
187
137
  }
@@ -189,10 +139,10 @@ class Transformation {
189
139
  const {
190
140
  rowDir,
191
141
  colDir
192
- } = _classPrivateMethodGet(this, _clampCoords, _clampCoords2).call(this, zeroBasedCoords);
142
+ } = _assertClassBrand(_Transformation_brand, this, _clampCoords).call(this, zeroBasedCoords);
193
143
  rowTransformDir = rowDir;
194
144
  colTransformDir = colDir;
195
- visualCoords = _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, zeroBasedCoords);
145
+ visualCoords = _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, zeroBasedCoords);
196
146
  }
197
147
  this.runLocalHooks('afterTransformStart', visualCoords, rowTransformDir, colTransformDir);
198
148
  return visualCoords;
@@ -206,54 +156,30 @@ class Transformation {
206
156
  * @returns {CellCoords} Visual coordinates after transformation.
207
157
  */
208
158
  transformEnd(rowDelta, colDelta) {
209
- const delta = _classPrivateFieldGet(this, _options).createCellCoords(rowDelta, colDelta);
210
- const cellRange = _classPrivateFieldGet(this, _range).current();
211
- const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(cellRange.highlight);
212
- const toRow = _classPrivateMethodGet(this, _findFirstNonHiddenZeroBasedRow, _findFirstNonHiddenZeroBasedRow2).call(this, cellRange.to.row, cellRange.from.row);
213
- const toColumn = _classPrivateMethodGet(this, _findFirstNonHiddenZeroBasedColumn, _findFirstNonHiddenZeroBasedColumn2).call(this, cellRange.to.col, cellRange.from.col);
159
+ _assertClassBrand(_Transformation_brand, this, _setOffsetSize).call(this, {
160
+ x: _classPrivateFieldGet(_options, this).navigableHeaders() ? _classPrivateFieldGet(_options, this).countRowHeaders() : 0,
161
+ y: _classPrivateFieldGet(_options, this).navigableHeaders() ? _classPrivateFieldGet(_options, this).countColHeaders() : 0
162
+ });
163
+ const delta = _classPrivateFieldGet(_options, this).createCellCoords(rowDelta, colDelta);
164
+ const cellRange = _classPrivateFieldGet(_range, this).current();
165
+ const highlightRenderableCoords = _classPrivateFieldGet(_options, this).visualToRenderableCoords(cellRange.highlight);
214
166
  const visualCoords = cellRange.to.clone();
215
167
  let rowTransformDir = 0;
216
168
  let colTransformDir = 0;
217
169
  this.runLocalHooks('beforeTransformEnd', delta);
218
- if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null && toRow !== null && toColumn !== null) {
170
+ if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null) {
219
171
  const {
220
- row: highlightRow,
221
- col: highlightColumn
222
- } = _classPrivateMethodGet(this, _visualToZeroBasedCoords, _visualToZeroBasedCoords2).call(this, cellRange.highlight);
223
- const coords = _classPrivateFieldGet(this, _options).createCellCoords(toRow + delta.row, toColumn + delta.col);
224
- const restDelta = {
225
- row: coords.row - highlightRow,
226
- col: coords.col - highlightColumn
227
- };
228
- this.runLocalHooks('modifyTransformEndRestDelta', restDelta, delta, _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, coords));
229
- const topStartCorner = cellRange.getTopStartCorner();
230
- const topEndCorner = cellRange.getTopEndCorner();
231
- const bottomEndCorner = cellRange.getBottomEndCorner();
232
- if (delta.col < 0) {
233
- if (toColumn >= highlightColumn && coords.col < highlightColumn) {
234
- coords.col = _classPrivateMethodGet(this, _findFirstNonHiddenZeroBasedColumn, _findFirstNonHiddenZeroBasedColumn2).call(this, topStartCorner.col, topEndCorner.col) + restDelta.col;
235
- }
236
- } else if (delta.col > 0) {
237
- if (toColumn <= highlightColumn && coords.col > highlightColumn) {
238
- coords.col = _classPrivateMethodGet(this, _findFirstNonHiddenZeroBasedColumn, _findFirstNonHiddenZeroBasedColumn2).call(this, topEndCorner.col, topStartCorner.col) + restDelta.col;
239
- }
240
- }
241
- if (delta.row < 0) {
242
- if (toRow >= highlightRow && coords.row < highlightRow) {
243
- coords.row = _classPrivateMethodGet(this, _findFirstNonHiddenZeroBasedRow, _findFirstNonHiddenZeroBasedRow2).call(this, topStartCorner.row, bottomEndCorner.row) + restDelta.row;
244
- }
245
- } else if (delta.row > 0) {
246
- if (toRow <= highlightRow && coords.row > highlightRow) {
247
- coords.row = _classPrivateMethodGet(this, _findFirstNonHiddenZeroBasedRow, _findFirstNonHiddenZeroBasedRow2).call(this, bottomEndCorner.row, topStartCorner.row) + restDelta.row;
248
- }
249
- }
172
+ row,
173
+ col
174
+ } = _assertClassBrand(_Transformation_brand, this, _visualToZeroBasedCoords).call(this, cellRange.to);
175
+ const coords = _classPrivateFieldGet(_options, this).createCellCoords(row + delta.row, col + delta.col);
250
176
  const {
251
177
  rowDir,
252
178
  colDir
253
- } = _classPrivateMethodGet(this, _clampCoords, _clampCoords2).call(this, coords);
179
+ } = _assertClassBrand(_Transformation_brand, this, _clampCoords).call(this, coords);
254
180
  rowTransformDir = rowDir;
255
181
  colTransformDir = colDir;
256
- const newVisualCoords = _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, coords);
182
+ const newVisualCoords = _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, coords);
257
183
  if (delta.row === 0 && delta.col !== 0) {
258
184
  visualCoords.col = newVisualCoords.col;
259
185
  } else if (delta.row !== 0 && delta.col === 0) {
@@ -266,29 +192,28 @@ class Transformation {
266
192
  this.runLocalHooks('afterTransformEnd', visualCoords, rowTransformDir, colTransformDir);
267
193
  return visualCoords;
268
194
  }
269
-
270
- /**
271
- * Sets the additional offset in table size that may occur when the `navigableHeaders` option
272
- * is enabled.
273
- *
274
- * @param {{x: number, y: number}} offset Offset as x and y properties.
275
- */
276
- setOffsetSize(_ref) {
277
- let {
278
- x,
279
- y
280
- } = _ref;
281
- _classPrivateFieldSet(this, _offset, {
282
- x,
283
- y
284
- });
285
- }
286
195
  }
287
- function _clampCoords2(zeroBasedCoords) {
196
+ function _setOffsetSize(_ref) {
197
+ let {
198
+ x,
199
+ y
200
+ } = _ref;
201
+ _classPrivateFieldSet(_offset, this, {
202
+ x,
203
+ y
204
+ });
205
+ }
206
+ /**
207
+ * Clamps the coords to make sure they points to the cell (or header) in the table range.
208
+ *
209
+ * @param {CellCoords} zeroBasedCoords The coords object to clamp.
210
+ * @returns {{rowDir: 1|0|-1, colDir: 1|0|-1}}
211
+ */
212
+ function _clampCoords(zeroBasedCoords) {
288
213
  const {
289
214
  width,
290
215
  height
291
- } = _classPrivateMethodGet(this, _getTableSize, _getTableSize2).call(this);
216
+ } = _assertClassBrand(_Transformation_brand, this, _getTableSize).call(this);
292
217
  let rowDir = 0;
293
218
  let colDir = 0;
294
219
  if (zeroBasedCoords.row < 0) {
@@ -310,41 +235,42 @@ function _clampCoords2(zeroBasedCoords) {
310
235
  colDir
311
236
  };
312
237
  }
313
- function _getTableSize2() {
238
+ /**
239
+ * Gets the table size in number of rows with headers as "height" and number of columns with
240
+ * headers as "width".
241
+ *
242
+ * @returns {{width: number, height: number}}
243
+ */
244
+ function _getTableSize() {
314
245
  return {
315
- width: _classPrivateFieldGet(this, _offset).x + _classPrivateFieldGet(this, _options).countRenderableColumns(),
316
- height: _classPrivateFieldGet(this, _offset).y + _classPrivateFieldGet(this, _options).countRenderableRows()
246
+ width: _classPrivateFieldGet(_offset, this).x + _classPrivateFieldGet(_options, this).countRenderableColumns(),
247
+ height: _classPrivateFieldGet(_offset, this).y + _classPrivateFieldGet(_options, this).countRenderableRows()
317
248
  };
318
249
  }
319
- function _findFirstNonHiddenZeroBasedRow2(visualRowFrom, visualRowTo) {
320
- const row = _classPrivateFieldGet(this, _options).findFirstNonHiddenRenderableRow(visualRowFrom, visualRowTo);
321
- if (row === null) {
322
- return null;
323
- }
324
- return _classPrivateFieldGet(this, _offset).y + row;
325
- }
326
- function _findFirstNonHiddenZeroBasedColumn2(visualColumnFrom, visualColumnTo) {
327
- const column = _classPrivateFieldGet(this, _options).findFirstNonHiddenRenderableColumn(visualColumnFrom, visualColumnTo);
328
- if (column === null) {
329
- return null;
330
- }
331
- return _classPrivateFieldGet(this, _offset).x + column;
332
- }
333
- function _visualToZeroBasedCoords2(visualCoords) {
250
+ /**
251
+ * Translates the visual coordinates to zero-based ones.
252
+ *
253
+ * @param {CellCoords} visualCoords The visual coords to process.
254
+ * @returns {CellCoords}
255
+ */
256
+ function _visualToZeroBasedCoords(visualCoords) {
334
257
  const {
335
258
  row,
336
259
  col
337
- } = _classPrivateFieldGet(this, _options).visualToRenderableCoords(visualCoords);
338
- if (row === null || col === null) {
339
- throw new Error('Renderable coords are not visible.');
340
- }
341
- return _classPrivateFieldGet(this, _options).createCellCoords(_classPrivateFieldGet(this, _offset).y + row, _classPrivateFieldGet(this, _offset).x + col);
260
+ } = _classPrivateFieldGet(_options, this).visualToRenderableCoords(visualCoords);
261
+ return _classPrivateFieldGet(_options, this).createCellCoords(_classPrivateFieldGet(_offset, this).y + row, _classPrivateFieldGet(_offset, this).x + col);
342
262
  }
343
- function _zeroBasedToVisualCoords2(zeroBasedCoords) {
263
+ /**
264
+ * Translates the zero-based coordinates to visual ones.
265
+ *
266
+ * @param {CellCoords} zeroBasedCoords The coordinates to process.
267
+ * @returns {CellCoords}
268
+ */
269
+ function _zeroBasedToVisualCoords(zeroBasedCoords) {
344
270
  const coords = zeroBasedCoords.clone();
345
- coords.col = zeroBasedCoords.col - _classPrivateFieldGet(this, _offset).x;
346
- coords.row = zeroBasedCoords.row - _classPrivateFieldGet(this, _offset).y;
347
- return _classPrivateFieldGet(this, _options).renderableToVisualCoords(coords);
271
+ coords.col = zeroBasedCoords.col - _classPrivateFieldGet(_offset, this).x;
272
+ coords.row = zeroBasedCoords.row - _classPrivateFieldGet(_offset, this).y;
273
+ return _classPrivateFieldGet(_options, this).renderableToVisualCoords(coords);
348
274
  }
349
275
  mixin(Transformation, localHooks);
350
276
  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) {
6
+ callback(hot, event, keys) {
7
7
  const editorManager = hot._getEditorManager();
8
8
  editorManager.closeEditorAndSaveChanges(event.ctrlKey || event.metaKey);
9
- editorManager.moveSelectionAfterEnter(event);
9
+ editorManager.moveSelectionAfterEnter(keys.includes('shift'));
10
10
  }
11
11
  };
@@ -1,8 +1,8 @@
1
1
  export const command = {
2
2
  name: 'editorCloseAndSave',
3
- callback(hot, event) {
3
+ callback(hot, event, keys) {
4
4
  const editorManager = hot._getEditorManager();
5
5
  editorManager.closeEditorAndSaveChanges(event.ctrlKey || event.metaKey);
6
- editorManager.moveSelectionAfterEnter(event);
6
+ editorManager.moveSelectionAfterEnter(keys.includes('shift'));
7
7
  }
8
8
  };
@@ -6,35 +6,20 @@ 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();
10
9
  const {
11
10
  highlight
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
- }
11
+ } = hot.getSelectedRangeLast();
25
12
  if (highlight.isHeader()) {
26
13
  return;
27
14
  }
28
-
29
- // supports editor opening with enter key
30
15
  if (hot.getSettings().enterBeginsEditing) {
31
16
  if (editorManager.cellProperties.readOnly) {
32
- editorManager.moveSelectionAfterEnter(event);
17
+ editorManager.moveSelectionAfterEnter();
33
18
  } else {
34
19
  editorManager.openEditor(null, event, true);
35
20
  }
36
21
  } else {
37
- editorManager.moveSelectionAfterEnter(event);
22
+ editorManager.moveSelectionAfterEnter(keys.includes('shift'));
38
23
  }
39
24
  (0, _event.stopImmediatePropagation)(event); // required by HandsontableEditor
40
25
  }
@@ -3,35 +3,20 @@ export const command = {
3
3
  name: 'editorOpen',
4
4
  callback(hot, event, keys) {
5
5
  const editorManager = hot._getEditorManager();
6
- const selectedRange = hot.getSelectedRangeLast();
7
6
  const {
8
7
  highlight
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
- }
8
+ } = hot.getSelectedRangeLast();
22
9
  if (highlight.isHeader()) {
23
10
  return;
24
11
  }
25
-
26
- // supports editor opening with enter key
27
12
  if (hot.getSettings().enterBeginsEditing) {
28
13
  if (editorManager.cellProperties.readOnly) {
29
- editorManager.moveSelectionAfterEnter(event);
14
+ editorManager.moveSelectionAfterEnter();
30
15
  } else {
31
16
  editorManager.openEditor(null, event, true);
32
17
  }
33
18
  } else {
34
- editorManager.moveSelectionAfterEnter(event);
19
+ editorManager.moveSelectionAfterEnter(keys.includes('shift'));
35
20
  }
36
21
  stopImmediatePropagation(event); // required by HandsontableEditor
37
22
  }
@@ -7,7 +7,7 @@ const command = exports.command = {
7
7
  const {
8
8
  highlight
9
9
  } = hot.getSelectedRangeLast();
10
- if (!hot.selection.isSelectedByColumnHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByRowHeader())) {
10
+ if (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 (!hot.selection.isSelectedByColumnHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByRowHeader())) {
7
+ if (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 (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {
10
+ if (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 (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {
7
+ if (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 (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {
10
+ if (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 (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {
7
+ if (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);
15
+ hot.selectColumns(from.col, to.col, highlight.row);
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);
12
+ hot.selectColumns(from.col, to.col, highlight.row);
13
13
  }
14
14
  }
15
15
  };
@@ -16,9 +16,7 @@ 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
- const newFrom = from.clone();
20
- newFrom.row = highlight.row;
21
- selection.setRangeStart(newFrom, undefined, false, highlight.clone());
19
+ selection.setRangeStart(from.clone());
22
20
 
23
21
  // Restore the row highlight by header flag after setting up a new selection.
24
22
  if (isFocusHighlightedByHeader) {
@@ -13,9 +13,7 @@ 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
- const newFrom = from.clone();
17
- newFrom.row = highlight.row;
18
- selection.setRangeStart(newFrom, undefined, false, highlight.clone());
16
+ selection.setRangeStart(from.clone());
19
17
 
20
18
  // Restore the row highlight by header flag after setting up a new selection.
21
19
  if (isFocusHighlightedByHeader) {
@@ -9,16 +9,10 @@ const command = exports.command = {
9
9
  columnIndexMapper
10
10
  } = hot;
11
11
  const {
12
- highlight,
13
- from,
14
- to
12
+ highlight
15
13
  } = hot.getSelectedRangeLast();
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));
14
+ if (highlight.isCell()) {
15
+ selection.setRangeEnd(hot._createCellCoords(selection.selectedRange.current().from.row, columnIndexMapper.getNearestNotHiddenIndex(hot.countCols() - 1, -1)));
22
16
  }
23
17
  }
24
18
  };