handsontable 0.0.0-next-08765b9-20230809 → 0.0.0-next-7e1ba35-20230821

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (299) hide show
  1. package/3rdparty/walkontable/src/{selection/border/border.js → border.js} +12 -7
  2. package/3rdparty/walkontable/src/{selection/border/border.mjs → border.mjs} +12 -7
  3. package/3rdparty/walkontable/src/cell/coords.d.ts +1 -6
  4. package/3rdparty/walkontable/src/cell/coords.js +11 -50
  5. package/3rdparty/walkontable/src/cell/coords.mjs +11 -50
  6. package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
  7. package/3rdparty/walkontable/src/cell/range.js +7 -38
  8. package/3rdparty/walkontable/src/cell/range.mjs +7 -38
  9. package/3rdparty/walkontable/src/core/_base.js +3 -9
  10. package/3rdparty/walkontable/src/core/_base.mjs +3 -9
  11. package/3rdparty/walkontable/src/core/clone.js +2 -2
  12. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  13. package/3rdparty/walkontable/src/core/core.js +2 -3
  14. package/3rdparty/walkontable/src/core/core.mjs +2 -3
  15. package/3rdparty/walkontable/src/event.js +7 -7
  16. package/3rdparty/walkontable/src/event.mjs +7 -7
  17. package/3rdparty/walkontable/src/facade/core.js +2 -2
  18. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  19. package/3rdparty/walkontable/src/index.js +2 -10
  20. package/3rdparty/walkontable/src/index.mjs +2 -2
  21. package/3rdparty/walkontable/src/overlay/_base.js +1 -1
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  23. package/3rdparty/walkontable/src/overlay/inlineStart.js +6 -2
  24. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +6 -2
  25. package/3rdparty/walkontable/src/overlay/top.js +6 -2
  26. package/3rdparty/walkontable/src/overlay/top.mjs +6 -2
  27. package/3rdparty/walkontable/src/selection.js +295 -0
  28. package/3rdparty/walkontable/src/selection.mjs +290 -0
  29. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
  30. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
  31. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
  32. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
  33. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
  34. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
  35. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
  36. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
  37. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
  38. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
  39. package/3rdparty/walkontable/src/table.js +78 -6
  40. package/3rdparty/walkontable/src/table.mjs +79 -7
  41. package/base.js +2 -2
  42. package/base.mjs +2 -2
  43. package/common.d.ts +1 -1
  44. package/core.d.ts +3 -6
  45. package/core.js +290 -173
  46. package/core.mjs +290 -173
  47. package/dataMap/metaManager/metaSchema.js +0 -41
  48. package/dataMap/metaManager/metaSchema.mjs +0 -41
  49. package/dist/handsontable.css +4 -24
  50. package/dist/handsontable.full.css +4 -24
  51. package/dist/handsontable.full.js +5384 -8679
  52. package/dist/handsontable.full.min.css +3 -4
  53. package/dist/handsontable.full.min.js +960 -29
  54. package/dist/handsontable.js +8132 -11427
  55. package/dist/handsontable.min.css +3 -4
  56. package/dist/handsontable.min.js +61 -24
  57. package/editorManager.js +75 -11
  58. package/editorManager.mjs +74 -11
  59. package/editors/baseEditor/baseEditor.d.ts +1 -0
  60. package/editors/textEditor/textEditor.js +11 -3
  61. package/editors/textEditor/textEditor.mjs +12 -4
  62. package/helpers/mixed.js +1 -1
  63. package/helpers/mixed.mjs +1 -1
  64. package/helpers/number.d.ts +0 -1
  65. package/helpers/number.js +0 -18
  66. package/helpers/number.mjs +0 -17
  67. package/package.json +1 -1
  68. package/pluginHooks.d.ts +1 -7
  69. package/pluginHooks.js +1 -106
  70. package/pluginHooks.mjs +1 -106
  71. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -58
  72. package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -58
  73. package/plugins/columnSorting/columnSorting.js +0 -38
  74. package/plugins/columnSorting/columnSorting.mjs +2 -38
  75. package/plugins/columnSorting/index.js +1 -3
  76. package/plugins/columnSorting/index.mjs +1 -1
  77. package/plugins/comments/commentEditor.js +0 -1
  78. package/plugins/comments/commentEditor.mjs +0 -1
  79. package/plugins/comments/comments.js +189 -251
  80. package/plugins/comments/comments.mjs +190 -250
  81. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  82. package/plugins/contextMenu/contextMenu.js +30 -72
  83. package/plugins/contextMenu/contextMenu.mjs +31 -73
  84. package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
  85. package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
  86. package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
  87. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
  88. package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
  89. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
  90. package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
  91. package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
  92. package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
  93. package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
  94. package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
  95. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
  96. package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
  97. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
  98. package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
  99. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
  100. package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
  101. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
  102. package/plugins/contextMenu/utils.js +16 -28
  103. package/plugins/contextMenu/utils.mjs +15 -27
  104. package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
  105. package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
  106. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
  107. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
  108. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
  109. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
  110. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
  111. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
  112. package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
  113. package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
  114. package/plugins/copyPaste/copyPaste.js +10 -14
  115. package/plugins/copyPaste/copyPaste.mjs +10 -14
  116. package/plugins/customBorders/customBorders.js +20 -23
  117. package/plugins/customBorders/customBorders.mjs +21 -24
  118. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  119. package/plugins/dropdownMenu/dropdownMenu.js +32 -89
  120. package/plugins/dropdownMenu/dropdownMenu.mjs +32 -89
  121. package/plugins/filters/filters.js +14 -31
  122. package/plugins/filters/filters.mjs +13 -30
  123. package/plugins/manualColumnResize/manualColumnResize.js +6 -0
  124. package/plugins/manualColumnResize/manualColumnResize.mjs +7 -1
  125. package/plugins/mergeCells/mergeCells.js +17 -5
  126. package/plugins/mergeCells/mergeCells.mjs +17 -5
  127. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
  128. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
  129. package/plugins/nestedHeaders/nestedHeaders.js +8 -121
  130. package/plugins/nestedHeaders/nestedHeaders.mjs +8 -121
  131. package/plugins/nestedHeaders/stateManager/index.js +0 -37
  132. package/plugins/nestedHeaders/stateManager/index.mjs +0 -37
  133. package/plugins/nestedRows/nestedRows.js +0 -41
  134. package/plugins/nestedRows/nestedRows.mjs +0 -41
  135. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  136. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  137. package/selection/highlight/constants.js +15 -0
  138. package/selection/highlight/constants.mjs +6 -0
  139. package/selection/highlight/highlight.js +71 -256
  140. package/selection/highlight/highlight.mjs +71 -250
  141. package/selection/highlight/types/activeHeader.js +8 -10
  142. package/selection/highlight/types/activeHeader.mjs +8 -10
  143. package/selection/highlight/types/area.js +18 -6
  144. package/selection/highlight/types/area.mjs +18 -6
  145. package/selection/highlight/types/{focus.js → cell.js} +7 -5
  146. package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
  147. package/selection/highlight/types/customSelection.js +9 -7
  148. package/selection/highlight/types/customSelection.mjs +9 -7
  149. package/selection/highlight/types/fill.js +7 -5
  150. package/selection/highlight/types/fill.mjs +7 -5
  151. package/selection/highlight/types/header.js +18 -9
  152. package/selection/highlight/types/header.mjs +18 -9
  153. package/selection/highlight/types/index.js +35 -0
  154. package/selection/highlight/types/index.mjs +31 -0
  155. package/selection/highlight/visualSelection.js +27 -31
  156. package/selection/highlight/visualSelection.mjs +27 -31
  157. package/selection/index.js +7 -4
  158. package/selection/index.mjs +3 -2
  159. package/selection/mouseEventHandler.js +1 -1
  160. package/selection/mouseEventHandler.mjs +1 -1
  161. package/selection/range.js +8 -8
  162. package/selection/range.mjs +8 -8
  163. package/selection/selection.js +154 -290
  164. package/selection/selection.mjs +153 -287
  165. package/selection/transformation.js +90 -232
  166. package/selection/transformation.mjs +90 -232
  167. package/selection/utils.js +21 -15
  168. package/selection/utils.mjs +21 -16
  169. package/settings.d.ts +0 -2
  170. package/shortcuts/manager.js +0 -2
  171. package/shortcuts/manager.mjs +0 -2
  172. package/shortcuts/recorder.js +2 -2
  173. package/shortcuts/recorder.mjs +2 -2
  174. package/shortcuts/utils.js +5 -19
  175. package/shortcuts/utils.mjs +4 -18
  176. package/tableView.js +13 -67
  177. package/tableView.mjs +13 -67
  178. package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
  179. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  180. package/3rdparty/walkontable/src/selection/constants.js +0 -62
  181. package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
  182. package/3rdparty/walkontable/src/selection/index.js +0 -26
  183. package/3rdparty/walkontable/src/selection/index.mjs +0 -5
  184. package/3rdparty/walkontable/src/selection/manager.js +0 -259
  185. package/3rdparty/walkontable/src/selection/manager.mjs +0 -254
  186. package/3rdparty/walkontable/src/selection/scanner.js +0 -270
  187. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
  188. package/3rdparty/walkontable/src/selection/selection.js +0 -101
  189. package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
  190. package/core/focusCatcher/focusDetector.js +0 -58
  191. package/core/focusCatcher/focusDetector.mjs +0 -54
  192. package/core/focusCatcher/index.js +0 -142
  193. package/core/focusCatcher/index.mjs +0 -138
  194. package/core/index.js +0 -9
  195. package/core/index.mjs +0 -1
  196. package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
  197. package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
  198. package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
  199. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
  200. package/plugins/comments/contextMenuItem/removeComment.js +0 -38
  201. package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
  202. package/selection/highlight/types/areaLayered.js +0 -31
  203. package/selection/highlight/types/areaLayered.mjs +0 -26
  204. package/selection/highlight/types/column.js +0 -27
  205. package/selection/highlight/types/column.mjs +0 -22
  206. package/selection/highlight/types/row.js +0 -27
  207. package/selection/highlight/types/row.mjs +0 -22
  208. package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
  209. package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
  210. package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
  211. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
  212. package/shortcutContexts/commands/editor/fastOpen.js +0 -16
  213. package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
  214. package/shortcutContexts/commands/editor/index.js +0 -16
  215. package/shortcutContexts/commands/editor/index.mjs +0 -12
  216. package/shortcutContexts/commands/editor/open.js +0 -27
  217. package/shortcutContexts/commands/editor/open.mjs +0 -23
  218. package/shortcutContexts/commands/emptySelectedCells.js +0 -11
  219. package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
  220. package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
  221. package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
  222. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -21
  223. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -17
  224. package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
  225. package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
  226. package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
  227. package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
  228. package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
  229. package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
  230. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
  231. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
  232. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
  233. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
  234. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
  235. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
  236. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
  237. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
  238. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
  239. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
  240. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
  241. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
  242. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
  243. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
  244. package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
  245. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
  246. package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
  247. package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
  248. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -21
  249. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -17
  250. package/shortcutContexts/commands/index.js +0 -35
  251. package/shortcutContexts/commands/index.mjs +0 -31
  252. package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
  253. package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
  254. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -31
  255. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -27
  256. package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
  257. package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
  258. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
  259. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
  260. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
  261. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
  262. package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
  263. package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
  264. package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
  265. package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
  266. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
  267. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
  268. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
  269. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
  270. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
  271. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
  272. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
  273. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
  274. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
  275. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
  276. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
  277. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
  278. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
  279. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
  280. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
  281. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
  282. package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
  283. package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
  284. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -31
  285. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -27
  286. package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
  287. package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
  288. package/shortcutContexts/commands/scrollToFocusedCell.js +0 -36
  289. package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -32
  290. package/shortcutContexts/commands/selectAll.js +0 -10
  291. package/shortcutContexts/commands/selectAll.mjs +0 -6
  292. package/shortcutContexts/constants.js +0 -13
  293. package/shortcutContexts/constants.mjs +0 -8
  294. package/shortcutContexts/editor.js +0 -25
  295. package/shortcutContexts/editor.mjs +0 -21
  296. package/shortcutContexts/grid.js +0 -163
  297. package/shortcutContexts/grid.mjs +0 -159
  298. package/shortcutContexts/index.js +0 -24
  299. package/shortcutContexts/index.mjs +0 -11
@@ -60,7 +60,7 @@ export class ContextMenu extends BasePlugin {
60
60
 
61
61
  constructor(hotInstance: Core);
62
62
  isEnabled(): boolean;
63
- open(position: { left: number, top: number } | Event, offset?: { above?: number, below?: number, left?: number, right?: number }): void;
63
+ open(event: Event): void;
64
64
  close(): void;
65
65
  executeCommand(commandName: string, ...params: any): void;
66
66
  }
@@ -4,12 +4,10 @@ exports.__esModule = true;
4
4
  var _base = require("../base");
5
5
  var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
6
6
  var _array = require("../../helpers/array");
7
- var _object = require("../../helpers/object");
8
7
  var _commandExecutor = _interopRequireDefault(require("./commandExecutor"));
9
8
  var _eventManager = _interopRequireDefault(require("../../eventManager"));
10
9
  var _itemsFactory = _interopRequireDefault(require("./itemsFactory"));
11
10
  var _menu = _interopRequireDefault(require("./menu"));
12
- var _utils = require("./utils");
13
11
  var _element = require("../../helpers/dom/element");
14
12
  var _predefinedItems = require("./predefinedItems");
15
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -17,7 +15,6 @@ const PLUGIN_KEY = 'contextMenu';
17
15
  exports.PLUGIN_KEY = PLUGIN_KEY;
18
16
  const PLUGIN_PRIORITY = 70;
19
17
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
20
- const SHORTCUTS_GROUP = PLUGIN_KEY;
21
18
  _pluginHooks.default.getSingleton().register('afterContextMenuDefaultOptions');
22
19
  _pluginHooks.default.getSingleton().register('beforeContextMenuShow');
23
20
  _pluginHooks.default.getSingleton().register('afterContextMenuShow');
@@ -140,7 +137,6 @@ class ContextMenu extends _base.BasePlugin {
140
137
  return _this.executeCommand.call(_this, ...params);
141
138
  });
142
139
  this.addHook('afterOnCellContextMenu', event => this.onAfterOnCellContextMenu(event));
143
- this.registerShortcuts();
144
140
  super.enablePlugin();
145
141
  }
146
142
 
@@ -153,7 +149,6 @@ class ContextMenu extends _base.BasePlugin {
153
149
  updatePlugin() {
154
150
  this.disablePlugin();
155
151
  this.enablePlugin();
156
- this.unregisterShortcuts();
157
152
  super.updatePlugin();
158
153
  }
159
154
 
@@ -169,83 +164,50 @@ class ContextMenu extends _base.BasePlugin {
169
164
  super.disablePlugin();
170
165
  }
171
166
 
172
- /**
173
- * Register shortcuts responsible for toggling context menu.
174
- *
175
- * @private
176
- */
177
- registerShortcuts() {
178
- this.hot.getShortcutManager().getContext('grid').addShortcut({
179
- keys: [['Control/Meta', 'Shift', '\\'], ['Shift', 'F10']],
180
- callback: () => {
181
- const {
182
- highlight
183
- } = this.hot.getSelectedRangeLast();
184
- this.hot.scrollToFocusedCell();
185
- const rect = this.hot.getCell(highlight.row, highlight.col, true).getBoundingClientRect();
186
- const offset = (0, _utils.getDocumentOffsetByElement)(this.menu.container, this.hot.rootDocument);
187
- this.open({
188
- left: rect.left + offset.left,
189
- top: rect.top + offset.top - 1 + rect.height
190
- }, {
191
- left: rect.width,
192
- above: -rect.height
193
- });
194
- this.hot._registerTimeout(() => {
195
- this.menu.selectFirstCell();
196
- });
197
- },
198
- runOnlyIf: () => this.hot.getSelectedRangeLast() && !this.menu.isOpened(),
199
- group: SHORTCUTS_GROUP
200
- });
201
- }
202
-
203
- /**
204
- * Unregister shortcuts responsible for toggling context menu.
205
- *
206
- * @private
207
- */
208
- unregisterShortcuts() {
209
- this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
210
- }
211
-
212
167
  /**
213
168
  * Opens menu and re-position it based on the passed coordinates.
214
169
  *
215
- * @param {{ top: number, left: number }|Event} position An object with `top` and `left` properties
216
- * which contains coordinates relative to the browsers viewport (without included scroll offsets).
217
- * Or if the native event is passed the menu will be positioned based on the `pageX` and `pageY`
218
- * coordinates.
219
- * @param {{ above: number, below: number, left: number, right: number }} offset An object allows applying
220
- * the offset to the menu position.
221
- * @fires Hooks#beforeContextMenuShow
222
- * @fires Hooks#afterContextMenuShow
170
+ * @param {Event} event The mouse event object.
223
171
  */
224
- open(position) {
225
- var _this$menu;
226
- let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
227
- above: 0,
228
- below: 0,
229
- left: 0,
230
- right: 0
231
- };
232
- if ((_this$menu = this.menu) !== null && _this$menu !== void 0 && _this$menu.isOpened()) {
172
+ open(event) {
173
+ if (!this.menu) {
233
174
  return;
234
175
  }
235
176
  this.prepareMenuItems();
236
177
  this.menu.open();
237
- (0, _object.objectEach)(offset, (value, key) => {
238
- this.menu.setOffset(key, value);
178
+ if (!this.menu.isOpened()) {
179
+ return;
180
+ }
181
+ let offsetTop = 0;
182
+ let offsetLeft = 0;
183
+ if (this.hot.rootDocument !== this.menu.container.ownerDocument) {
184
+ const {
185
+ frameElement
186
+ } = this.hot.rootWindow;
187
+ const {
188
+ top,
189
+ left
190
+ } = frameElement.getBoundingClientRect();
191
+ offsetTop = top - (0, _element.getWindowScrollTop)(event.view);
192
+ offsetLeft = left - (0, _element.getWindowScrollLeft)(event.view);
193
+ } else {
194
+ offsetTop = -1 * (0, _element.getWindowScrollTop)(this.menu.hotMenu.rootWindow);
195
+ offsetLeft = -1 * (0, _element.getWindowScrollLeft)(this.menu.hotMenu.rootWindow);
196
+ }
197
+ this.menu.setPosition({
198
+ top: parseInt(event.pageY, 10) + offsetTop,
199
+ left: parseInt(event.pageX, 10) + offsetLeft
239
200
  });
240
- this.menu.setPosition(position);
241
201
  }
242
202
 
243
203
  /**
244
204
  * Closes the menu.
245
205
  */
246
206
  close() {
247
- var _this$menu2;
248
- (_this$menu2 = this.menu) === null || _this$menu2 === void 0 ? void 0 : _this$menu2.close();
207
+ if (!this.menu) {
208
+ return;
209
+ }
210
+ this.menu.close();
249
211
  this.itemsFactory = null;
250
212
  }
251
213
 
@@ -343,11 +305,7 @@ class ContextMenu extends _base.BasePlugin {
343
305
  return;
344
306
  }
345
307
  }
346
- const offset = (0, _utils.getDocumentOffsetByElement)(this.menu.container, this.hot.rootDocument);
347
- this.open({
348
- top: event.clientY + offset.top,
349
- left: event.clientX + offset.left
350
- });
308
+ this.open(event);
351
309
  }
352
310
 
353
311
  /**
@@ -1,17 +1,14 @@
1
1
  import { BasePlugin } from "../base/index.mjs";
2
2
  import Hooks from "../../pluginHooks.mjs";
3
3
  import { arrayEach } from "../../helpers/array.mjs";
4
- import { objectEach } from "../../helpers/object.mjs";
5
4
  import CommandExecutor from "./commandExecutor.mjs";
6
5
  import EventManager from "../../eventManager.mjs";
7
6
  import ItemsFactory from "./itemsFactory.mjs";
8
7
  import Menu from "./menu.mjs";
9
- import { getDocumentOffsetByElement } from "./utils.mjs";
10
- import { hasClass } from "../../helpers/dom/element.mjs";
8
+ import { getWindowScrollLeft, getWindowScrollTop, hasClass } from "../../helpers/dom/element.mjs";
11
9
  import { ROW_ABOVE, ROW_BELOW, COLUMN_LEFT, COLUMN_RIGHT, REMOVE_ROW, REMOVE_COLUMN, UNDO, REDO, READ_ONLY, ALIGNMENT, SEPARATOR } from "./predefinedItems.mjs";
12
10
  export const PLUGIN_KEY = 'contextMenu';
13
11
  export const PLUGIN_PRIORITY = 70;
14
- const SHORTCUTS_GROUP = PLUGIN_KEY;
15
12
  Hooks.getSingleton().register('afterContextMenuDefaultOptions');
16
13
  Hooks.getSingleton().register('beforeContextMenuShow');
17
14
  Hooks.getSingleton().register('afterContextMenuShow');
@@ -134,7 +131,6 @@ export class ContextMenu extends BasePlugin {
134
131
  return _this.executeCommand.call(_this, ...params);
135
132
  });
136
133
  this.addHook('afterOnCellContextMenu', event => this.onAfterOnCellContextMenu(event));
137
- this.registerShortcuts();
138
134
  super.enablePlugin();
139
135
  }
140
136
 
@@ -147,7 +143,6 @@ export class ContextMenu extends BasePlugin {
147
143
  updatePlugin() {
148
144
  this.disablePlugin();
149
145
  this.enablePlugin();
150
- this.unregisterShortcuts();
151
146
  super.updatePlugin();
152
147
  }
153
148
 
@@ -163,83 +158,50 @@ export class ContextMenu extends BasePlugin {
163
158
  super.disablePlugin();
164
159
  }
165
160
 
166
- /**
167
- * Register shortcuts responsible for toggling context menu.
168
- *
169
- * @private
170
- */
171
- registerShortcuts() {
172
- this.hot.getShortcutManager().getContext('grid').addShortcut({
173
- keys: [['Control/Meta', 'Shift', '\\'], ['Shift', 'F10']],
174
- callback: () => {
175
- const {
176
- highlight
177
- } = this.hot.getSelectedRangeLast();
178
- this.hot.scrollToFocusedCell();
179
- const rect = this.hot.getCell(highlight.row, highlight.col, true).getBoundingClientRect();
180
- const offset = getDocumentOffsetByElement(this.menu.container, this.hot.rootDocument);
181
- this.open({
182
- left: rect.left + offset.left,
183
- top: rect.top + offset.top - 1 + rect.height
184
- }, {
185
- left: rect.width,
186
- above: -rect.height
187
- });
188
- this.hot._registerTimeout(() => {
189
- this.menu.selectFirstCell();
190
- });
191
- },
192
- runOnlyIf: () => this.hot.getSelectedRangeLast() && !this.menu.isOpened(),
193
- group: SHORTCUTS_GROUP
194
- });
195
- }
196
-
197
- /**
198
- * Unregister shortcuts responsible for toggling context menu.
199
- *
200
- * @private
201
- */
202
- unregisterShortcuts() {
203
- this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
204
- }
205
-
206
161
  /**
207
162
  * Opens menu and re-position it based on the passed coordinates.
208
163
  *
209
- * @param {{ top: number, left: number }|Event} position An object with `top` and `left` properties
210
- * which contains coordinates relative to the browsers viewport (without included scroll offsets).
211
- * Or if the native event is passed the menu will be positioned based on the `pageX` and `pageY`
212
- * coordinates.
213
- * @param {{ above: number, below: number, left: number, right: number }} offset An object allows applying
214
- * the offset to the menu position.
215
- * @fires Hooks#beforeContextMenuShow
216
- * @fires Hooks#afterContextMenuShow
164
+ * @param {Event} event The mouse event object.
217
165
  */
218
- open(position) {
219
- var _this$menu;
220
- let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
221
- above: 0,
222
- below: 0,
223
- left: 0,
224
- right: 0
225
- };
226
- if ((_this$menu = this.menu) !== null && _this$menu !== void 0 && _this$menu.isOpened()) {
166
+ open(event) {
167
+ if (!this.menu) {
227
168
  return;
228
169
  }
229
170
  this.prepareMenuItems();
230
171
  this.menu.open();
231
- objectEach(offset, (value, key) => {
232
- this.menu.setOffset(key, value);
172
+ if (!this.menu.isOpened()) {
173
+ return;
174
+ }
175
+ let offsetTop = 0;
176
+ let offsetLeft = 0;
177
+ if (this.hot.rootDocument !== this.menu.container.ownerDocument) {
178
+ const {
179
+ frameElement
180
+ } = this.hot.rootWindow;
181
+ const {
182
+ top,
183
+ left
184
+ } = frameElement.getBoundingClientRect();
185
+ offsetTop = top - getWindowScrollTop(event.view);
186
+ offsetLeft = left - getWindowScrollLeft(event.view);
187
+ } else {
188
+ offsetTop = -1 * getWindowScrollTop(this.menu.hotMenu.rootWindow);
189
+ offsetLeft = -1 * getWindowScrollLeft(this.menu.hotMenu.rootWindow);
190
+ }
191
+ this.menu.setPosition({
192
+ top: parseInt(event.pageY, 10) + offsetTop,
193
+ left: parseInt(event.pageX, 10) + offsetLeft
233
194
  });
234
- this.menu.setPosition(position);
235
195
  }
236
196
 
237
197
  /**
238
198
  * Closes the menu.
239
199
  */
240
200
  close() {
241
- var _this$menu2;
242
- (_this$menu2 = this.menu) === null || _this$menu2 === void 0 ? void 0 : _this$menu2.close();
201
+ if (!this.menu) {
202
+ return;
203
+ }
204
+ this.menu.close();
243
205
  this.itemsFactory = null;
244
206
  }
245
207
 
@@ -337,11 +299,7 @@ export class ContextMenu extends BasePlugin {
337
299
  return;
338
300
  }
339
301
  }
340
- const offset = getDocumentOffsetByElement(this.menu.container, this.hot.rootDocument);
341
- this.open({
342
- top: event.clientY + offset.top,
343
- left: event.clientX + offset.left
344
- });
302
+ this.open(event);
345
303
  }
346
304
 
347
305
  /**
@@ -23,13 +23,6 @@ function alignmentItem() {
23
23
  if (this.countRows() === 0 || this.countCols() === 0) {
24
24
  return true;
25
25
  }
26
- const range = this.getSelectedRangeLast();
27
- if (!range) {
28
- return true;
29
- }
30
- if (range.isSingleHeader()) {
31
- return true;
32
- }
33
26
  return !(this.getSelectedRange() && !this.selection.isSelectedByCorner());
34
27
  },
35
28
  submenu: {
@@ -16,13 +16,6 @@ export default function alignmentItem() {
16
16
  if (this.countRows() === 0 || this.countCols() === 0) {
17
17
  return true;
18
18
  }
19
- const range = this.getSelectedRangeLast();
20
- if (!range) {
21
- return true;
22
- }
23
- if (range.isSingleHeader()) {
24
- return true;
25
- }
26
19
  return !(this.getSelectedRange() && !this.selection.isSelectedByCorner());
27
20
  },
28
21
  submenu: {
@@ -2,6 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = clearColumnItem;
5
+ var _utils = require("../utils");
5
6
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
6
7
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
7
8
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -25,11 +26,8 @@ function clearColumnItem() {
25
26
  }
26
27
  },
27
28
  disabled() {
28
- const range = this.getSelectedRangeLast();
29
- if (!range) {
30
- return true;
31
- }
32
- if (range.isSingleHeader() && range.highlight.col < 0) {
29
+ const selected = (0, _utils.getValidSelection)(this);
30
+ if (!selected) {
33
31
  return true;
34
32
  }
35
33
  return !this.selection.isSelectedByColumnHeader();
@@ -1,3 +1,4 @@
1
+ import { getValidSelection } from "../utils.mjs";
1
2
  import * as C from "../../../i18n/constants.mjs";
2
3
  export const KEY = 'clear_column';
3
4
 
@@ -18,11 +19,8 @@ export default function clearColumnItem() {
18
19
  }
19
20
  },
20
21
  disabled() {
21
- const range = this.getSelectedRangeLast();
22
- if (!range) {
23
- return true;
24
- }
25
- if (range.isSingleHeader() && range.highlight.col < 0) {
22
+ const selected = getValidSelection(this);
23
+ if (!selected) {
26
24
  return true;
27
25
  }
28
26
  return !this.selection.isSelectedByColumnHeader();
@@ -2,6 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = columnLeftItem;
5
+ var _utils = require("../utils");
5
6
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
6
7
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
7
8
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -26,11 +27,8 @@ function columnLeftItem() {
26
27
  if (!this.isColumnModificationAllowed()) {
27
28
  return true;
28
29
  }
29
- const range = this.getSelectedRangeLast();
30
- if (!range) {
31
- return true;
32
- }
33
- if (range.isSingleHeader() && range.highlight.col < 0) {
30
+ const selected = (0, _utils.getValidSelection)(this);
31
+ if (!selected) {
34
32
  return true;
35
33
  }
36
34
  if (this.selection.isSelectedByCorner()) {
@@ -1,3 +1,4 @@
1
+ import { getValidSelection } from "../utils.mjs";
1
2
  import * as C from "../../../i18n/constants.mjs";
2
3
  export const KEY = 'col_left';
3
4
 
@@ -19,11 +20,8 @@ export default function columnLeftItem() {
19
20
  if (!this.isColumnModificationAllowed()) {
20
21
  return true;
21
22
  }
22
- const range = this.getSelectedRangeLast();
23
- if (!range) {
24
- return true;
25
- }
26
- if (range.isSingleHeader() && range.highlight.col < 0) {
23
+ const selected = getValidSelection(this);
24
+ if (!selected) {
27
25
  return true;
28
26
  }
29
27
  if (this.selection.isSelectedByCorner()) {
@@ -2,6 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = columnRightItem;
5
+ var _utils = require("../utils");
5
6
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
6
7
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
7
8
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -26,11 +27,8 @@ function columnRightItem() {
26
27
  if (!this.isColumnModificationAllowed()) {
27
28
  return true;
28
29
  }
29
- const range = this.getSelectedRangeLast();
30
- if (!range) {
31
- return true;
32
- }
33
- if (range.isSingleHeader() && range.highlight.col < 0) {
30
+ const selected = (0, _utils.getValidSelection)(this);
31
+ if (!selected) {
34
32
  return true;
35
33
  }
36
34
  if (this.selection.isSelectedByCorner()) {
@@ -1,3 +1,4 @@
1
+ import { getValidSelection } from "../utils.mjs";
1
2
  import * as C from "../../../i18n/constants.mjs";
2
3
  export const KEY = 'col_right';
3
4
 
@@ -19,11 +20,8 @@ export default function columnRightItem() {
19
20
  if (!this.isColumnModificationAllowed()) {
20
21
  return true;
21
22
  }
22
- const range = this.getSelectedRangeLast();
23
- if (!range) {
24
- return true;
25
- }
26
- if (range.isSingleHeader() && range.highlight.col < 0) {
23
+ const selected = getValidSelection(this);
24
+ if (!selected) {
27
25
  return true;
28
26
  }
29
27
  if (this.selection.isSelectedByCorner()) {
@@ -37,13 +37,6 @@ function readOnlyItem() {
37
37
  this.render();
38
38
  },
39
39
  disabled() {
40
- const range = this.getSelectedRangeLast();
41
- if (!range) {
42
- return true;
43
- }
44
- if (range.isSingleHeader()) {
45
- return true;
46
- }
47
40
  if (this.selection.isSelectedByCorner()) {
48
41
  return true;
49
42
  }
@@ -30,13 +30,6 @@ export default function readOnlyItem() {
30
30
  this.render();
31
31
  },
32
32
  disabled() {
33
- const range = this.getSelectedRangeLast();
34
- if (!range) {
35
- return true;
36
- }
37
- if (range.isSingleHeader()) {
38
- return true;
39
- }
40
33
  if (this.selection.isSelectedByCorner()) {
41
34
  return true;
42
35
  }
@@ -2,7 +2,8 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = removeColumnItem;
5
- var _utils = require("../../../selection/utils");
5
+ var _utils = require("../utils");
6
+ var _utils2 = require("../../../selection/utils");
6
7
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
7
8
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
8
9
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -31,17 +32,14 @@ function removeColumnItem() {
31
32
  return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_REMOVE_COLUMN, pluralForm);
32
33
  },
33
34
  callback() {
34
- this.alter('remove_col', (0, _utils.transformSelectionToColumnDistance)(this.getSelected()), null, 'ContextMenu.removeColumn');
35
+ this.alter('remove_col', (0, _utils2.transformSelectionToColumnDistance)(this.getSelected()), null, 'ContextMenu.removeColumn');
35
36
  },
36
37
  disabled() {
37
38
  if (!this.isColumnModificationAllowed()) {
38
39
  return true;
39
40
  }
40
- const range = this.getSelectedRangeLast();
41
- if (!range) {
42
- return true;
43
- }
44
- if (range.isSingleHeader() && range.highlight.col < 0) {
41
+ const selected = (0, _utils.getValidSelection)(this);
42
+ if (!selected) {
45
43
  return true;
46
44
  }
47
45
  const totalColumns = this.countCols();
@@ -1,3 +1,4 @@
1
+ import { getValidSelection } from "../utils.mjs";
1
2
  import { transformSelectionToColumnDistance } from "../../../selection/utils.mjs";
2
3
  import * as C from "../../../i18n/constants.mjs";
3
4
  export const KEY = 'remove_col';
@@ -30,11 +31,8 @@ export default function removeColumnItem() {
30
31
  if (!this.isColumnModificationAllowed()) {
31
32
  return true;
32
33
  }
33
- const range = this.getSelectedRangeLast();
34
- if (!range) {
35
- return true;
36
- }
37
- if (range.isSingleHeader() && range.highlight.col < 0) {
34
+ const selected = getValidSelection(this);
35
+ if (!selected) {
38
36
  return true;
39
37
  }
40
38
  const totalColumns = this.countCols();
@@ -2,7 +2,8 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = removeRowItem;
5
- var _utils = require("../../../selection/utils");
5
+ var _utils = require("../utils");
6
+ var _utils2 = require("../../../selection/utils");
6
7
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
7
8
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
8
9
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -33,14 +34,11 @@ function removeRowItem() {
33
34
  callback() {
34
35
  // TODO: Please keep in mind that below `1` may be improper. The table's way of work, before change `f1747b3912ea3b21fe423fd102ca94c87db81379` was restored.
35
36
  // There is still problem when removing more than one row.
36
- this.alter('remove_row', (0, _utils.transformSelectionToRowDistance)(this.getSelected()), 1, 'ContextMenu.removeRow');
37
+ this.alter('remove_row', (0, _utils2.transformSelectionToRowDistance)(this.getSelected()), 1, 'ContextMenu.removeRow');
37
38
  },
38
39
  disabled() {
39
- const range = this.getSelectedRangeLast();
40
- if (!range) {
41
- return true;
42
- }
43
- if (range.isSingleHeader() && range.highlight.row < 0) {
40
+ const selected = (0, _utils.getValidSelection)(this);
41
+ if (!selected) {
44
42
  return true;
45
43
  }
46
44
  const totalRows = this.countRows();
@@ -1,3 +1,4 @@
1
+ import { getValidSelection } from "../utils.mjs";
1
2
  import { transformSelectionToRowDistance } from "../../../selection/utils.mjs";
2
3
  import * as C from "../../../i18n/constants.mjs";
3
4
  export const KEY = 'remove_row';
@@ -29,11 +30,8 @@ export default function removeRowItem() {
29
30
  this.alter('remove_row', transformSelectionToRowDistance(this.getSelected()), 1, 'ContextMenu.removeRow');
30
31
  },
31
32
  disabled() {
32
- const range = this.getSelectedRangeLast();
33
- if (!range) {
34
- return true;
35
- }
36
- if (range.isSingleHeader() && range.highlight.row < 0) {
33
+ const selected = getValidSelection(this);
34
+ if (!selected) {
37
35
  return true;
38
36
  }
39
37
  const totalRows = this.countRows();
@@ -2,6 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = rowAboveItem;
5
+ var _utils = require("../utils");
5
6
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
6
7
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
7
8
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -22,11 +23,8 @@ function rowAboveItem() {
22
23
  this.alter('insert_row_above', latestSelection.row, 1, 'ContextMenu.rowAbove');
23
24
  },
24
25
  disabled() {
25
- const range = this.getSelectedRangeLast();
26
- if (!range) {
27
- return true;
28
- }
29
- if (range.isSingleHeader() && range.highlight.row < 0) {
26
+ const selected = (0, _utils.getValidSelection)(this);
27
+ if (!selected) {
30
28
  return true;
31
29
  }
32
30
  if (this.selection.isSelectedByCorner()) {
@@ -1,3 +1,4 @@
1
+ import { getValidSelection } from "../utils.mjs";
1
2
  import * as C from "../../../i18n/constants.mjs";
2
3
  export const KEY = 'row_above';
3
4
 
@@ -15,11 +16,8 @@ export default function rowAboveItem() {
15
16
  this.alter('insert_row_above', latestSelection.row, 1, 'ContextMenu.rowAbove');
16
17
  },
17
18
  disabled() {
18
- const range = this.getSelectedRangeLast();
19
- if (!range) {
20
- return true;
21
- }
22
- if (range.isSingleHeader() && range.highlight.row < 0) {
19
+ const selected = getValidSelection(this);
20
+ if (!selected) {
23
21
  return true;
24
22
  }
25
23
  if (this.selection.isSelectedByCorner()) {