handsontable 0.0.0-next-010265d-20231005 → 0.0.0-next-9379dd1-20231020

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 (414) hide show
  1. package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
  2. package/3rdparty/walkontable/src/cell/coords.js +50 -11
  3. package/3rdparty/walkontable/src/cell/coords.mjs +50 -11
  4. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  5. package/3rdparty/walkontable/src/cell/range.js +38 -7
  6. package/3rdparty/walkontable/src/cell/range.mjs +38 -7
  7. package/3rdparty/walkontable/src/core/_base.js +9 -3
  8. package/3rdparty/walkontable/src/core/_base.mjs +9 -3
  9. package/3rdparty/walkontable/src/core/clone.js +2 -2
  10. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  11. package/3rdparty/walkontable/src/core/core.js +3 -2
  12. package/3rdparty/walkontable/src/core/core.mjs +3 -2
  13. package/3rdparty/walkontable/src/event.js +12 -10
  14. package/3rdparty/walkontable/src/event.mjs +12 -10
  15. package/3rdparty/walkontable/src/facade/core.js +2 -2
  16. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  17. package/3rdparty/walkontable/src/index.js +10 -2
  18. package/3rdparty/walkontable/src/index.mjs +2 -2
  19. package/3rdparty/walkontable/src/overlay/_base.js +13 -2
  20. package/3rdparty/walkontable/src/overlay/_base.mjs +14 -3
  21. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
  22. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
  23. package/3rdparty/walkontable/src/overlay/top.js +2 -6
  24. package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
  25. package/3rdparty/walkontable/src/renderer/cells.js +10 -0
  26. package/3rdparty/walkontable/src/renderer/cells.mjs +11 -1
  27. package/3rdparty/walkontable/src/renderer/columnHeaders.js +10 -0
  28. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +11 -1
  29. package/3rdparty/walkontable/src/renderer/rowHeaders.js +5 -0
  30. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +5 -0
  31. package/3rdparty/walkontable/src/renderer/rows.js +13 -0
  32. package/3rdparty/walkontable/src/renderer/rows.mjs +13 -0
  33. package/3rdparty/walkontable/src/renderer/table.js +9 -0
  34. package/3rdparty/walkontable/src/renderer/table.mjs +9 -0
  35. package/3rdparty/walkontable/src/scroll.js +2 -0
  36. package/3rdparty/walkontable/src/scroll.mjs +2 -0
  37. package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
  38. package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
  39. package/3rdparty/walkontable/src/selection/border/constants.js +16 -0
  40. package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
  41. package/3rdparty/walkontable/src/selection/constants.js +62 -0
  42. package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
  43. package/3rdparty/walkontable/src/selection/index.js +26 -0
  44. package/3rdparty/walkontable/src/selection/index.mjs +5 -0
  45. package/3rdparty/walkontable/src/selection/manager.js +274 -0
  46. package/3rdparty/walkontable/src/selection/manager.mjs +269 -0
  47. package/3rdparty/walkontable/src/selection/scanner.js +270 -0
  48. package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
  49. package/3rdparty/walkontable/src/selection/selection.js +101 -0
  50. package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
  51. package/3rdparty/walkontable/src/settings.js +13 -4
  52. package/3rdparty/walkontable/src/settings.mjs +13 -4
  53. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
  54. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
  55. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
  56. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
  57. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
  58. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
  59. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
  60. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
  61. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
  62. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
  63. package/3rdparty/walkontable/src/table.js +19 -78
  64. package/3rdparty/walkontable/src/table.mjs +20 -79
  65. package/base.js +2 -2
  66. package/base.mjs +2 -2
  67. package/cellTypes/dateType/dateType.d.ts +3 -3
  68. package/cellTypes/dateType/dateType.js +2 -2
  69. package/cellTypes/dateType/dateType.mjs +2 -2
  70. package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
  71. package/cellTypes/handsontableType/handsontableType.js +2 -2
  72. package/cellTypes/handsontableType/handsontableType.mjs +2 -2
  73. package/cellTypes/index.d.ts +3 -0
  74. package/cellTypes/index.js +4 -0
  75. package/cellTypes/index.mjs +3 -1
  76. package/cellTypes/selectType/index.d.ts +1 -0
  77. package/cellTypes/selectType/index.js +6 -0
  78. package/cellTypes/selectType/index.mjs +1 -0
  79. package/cellTypes/selectType/selectType.d.ts +14 -0
  80. package/cellTypes/selectType/selectType.js +13 -0
  81. package/cellTypes/selectType/selectType.mjs +8 -0
  82. package/core/focusCatcher/focusDetector.js +63 -0
  83. package/core/focusCatcher/focusDetector.mjs +59 -0
  84. package/core/focusCatcher/index.js +142 -0
  85. package/core/focusCatcher/index.mjs +138 -0
  86. package/core/index.js +9 -0
  87. package/core/index.mjs +1 -0
  88. package/core.d.ts +9 -4
  89. package/core.js +285 -327
  90. package/core.mjs +285 -327
  91. package/dataMap/metaManager/metaSchema.js +65 -0
  92. package/dataMap/metaManager/metaSchema.mjs +65 -0
  93. package/dataMap/metaManager/mods/extendMetaProperties.js +7 -1
  94. package/dataMap/metaManager/mods/extendMetaProperties.mjs +7 -1
  95. package/dataMap/replaceData.js +5 -0
  96. package/dataMap/replaceData.mjs +5 -0
  97. package/dist/handsontable.css +40 -5
  98. package/dist/handsontable.full.css +40 -5
  99. package/dist/handsontable.full.js +11744 -6945
  100. package/dist/handsontable.full.min.css +4 -4
  101. package/dist/handsontable.full.min.js +141 -141
  102. package/dist/handsontable.js +14036 -9237
  103. package/dist/handsontable.min.css +3 -3
  104. package/dist/handsontable.min.js +21 -21
  105. package/dist/languages/all.js +6 -2
  106. package/dist/languages/all.min.js +1 -1
  107. package/dist/languages/en-US.js +3 -1
  108. package/dist/languages/en-US.min.js +1 -1
  109. package/dist/languages/pl-PL.js +3 -1
  110. package/dist/languages/pl-PL.min.js +1 -1
  111. package/editorManager.js +15 -87
  112. package/editorManager.mjs +16 -87
  113. package/editors/autocompleteEditor/autocompleteEditor.js +53 -2
  114. package/editors/autocompleteEditor/autocompleteEditor.mjs +54 -3
  115. package/editors/dateEditor/dateEditor.js +26 -7
  116. package/editors/dateEditor/dateEditor.mjs +27 -8
  117. package/editors/handsontableEditor/handsontableEditor.js +9 -1
  118. package/editors/handsontableEditor/handsontableEditor.mjs +10 -2
  119. package/editors/textEditor/textEditor.js +19 -27
  120. package/editors/textEditor/textEditor.mjs +22 -30
  121. package/focusManager.d.ts +12 -0
  122. package/focusManager.js +265 -0
  123. package/focusManager.mjs +261 -0
  124. package/helpers/a11y.js +79 -0
  125. package/helpers/a11y.mjs +38 -0
  126. package/helpers/dom/element.js +188 -9
  127. package/helpers/dom/element.mjs +182 -9
  128. package/helpers/mixed.js +1 -1
  129. package/helpers/mixed.mjs +1 -1
  130. package/helpers/number.d.ts +1 -0
  131. package/helpers/number.js +18 -0
  132. package/helpers/number.mjs +17 -0
  133. package/i18n/constants.js +7 -1
  134. package/i18n/constants.mjs +4 -1
  135. package/i18n/languages/en-US.js +3 -1
  136. package/i18n/languages/en-US.mjs +3 -1
  137. package/i18n/languages/pl-PL.js +3 -1
  138. package/i18n/languages/pl-PL.mjs +3 -1
  139. package/languages/all.js +6 -2
  140. package/languages/en-US.js +3 -1
  141. package/languages/en-US.mjs +3 -1
  142. package/languages/index.js +6 -2
  143. package/languages/pl-PL.js +3 -1
  144. package/languages/pl-PL.mjs +3 -1
  145. package/package.json +21 -1
  146. package/pluginHooks.d.ts +12 -1
  147. package/pluginHooks.js +152 -1
  148. package/pluginHooks.mjs +152 -1
  149. package/plugins/collapsibleColumns/collapsibleColumns.js +74 -4
  150. package/plugins/collapsibleColumns/collapsibleColumns.mjs +75 -5
  151. package/plugins/columnSorting/columnSorting.js +43 -0
  152. package/plugins/columnSorting/columnSorting.mjs +44 -3
  153. package/plugins/columnSorting/index.js +3 -1
  154. package/plugins/columnSorting/index.mjs +1 -1
  155. package/plugins/comments/commentEditor.js +1 -0
  156. package/plugins/comments/commentEditor.mjs +1 -0
  157. package/plugins/comments/comments.js +252 -189
  158. package/plugins/comments/comments.mjs +251 -190
  159. package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
  160. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  161. package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
  162. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
  163. package/plugins/comments/contextMenuItem/removeComment.js +38 -0
  164. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  165. package/plugins/contextMenu/commandExecutor.js +2 -3
  166. package/plugins/contextMenu/commandExecutor.mjs +2 -3
  167. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  168. package/plugins/contextMenu/contextMenu.js +75 -36
  169. package/plugins/contextMenu/contextMenu.mjs +74 -35
  170. package/plugins/contextMenu/itemsFactory.js +2 -3
  171. package/plugins/contextMenu/itemsFactory.mjs +3 -4
  172. package/plugins/contextMenu/{cursor.mjs → menu/cursor.js} +6 -4
  173. package/plugins/contextMenu/{cursor.js → menu/cursor.mjs} +4 -10
  174. package/plugins/contextMenu/menu/index.js +9 -0
  175. package/plugins/contextMenu/menu/index.mjs +1 -0
  176. package/plugins/contextMenu/{menu.js → menu/menu.js} +96 -308
  177. package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +97 -309
  178. package/plugins/contextMenu/menu/navigator.js +152 -0
  179. package/plugins/contextMenu/menu/navigator.mjs +148 -0
  180. package/plugins/contextMenu/menu/positioner.js +213 -0
  181. package/plugins/contextMenu/menu/positioner.mjs +209 -0
  182. package/plugins/contextMenu/menu/utils.js +177 -0
  183. package/plugins/contextMenu/menu/utils.mjs +163 -0
  184. package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
  185. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  186. package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
  187. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  188. package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
  189. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  190. package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
  191. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  192. package/plugins/contextMenu/{predefinedItems.js → predefinedItems/index.js} +14 -14
  193. package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
  194. package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
  195. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  196. package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
  197. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
  198. package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
  199. package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
  200. package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
  201. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  202. package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
  203. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  204. package/plugins/contextMenu/utils.js +35 -151
  205. package/plugins/contextMenu/utils.mjs +35 -144
  206. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  207. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  208. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  209. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  210. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  211. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  212. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  213. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  214. package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
  215. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  216. package/plugins/copyPaste/copyPaste.js +127 -78
  217. package/plugins/copyPaste/copyPaste.mjs +128 -79
  218. package/plugins/customBorders/customBorders.js +23 -20
  219. package/plugins/customBorders/customBorders.mjs +24 -21
  220. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  221. package/plugins/dropdownMenu/dropdownMenu.js +97 -38
  222. package/plugins/dropdownMenu/dropdownMenu.mjs +96 -37
  223. package/plugins/filters/constants.mjs +1 -1
  224. package/plugins/filters/filters.js +31 -14
  225. package/plugins/filters/filters.mjs +31 -14
  226. package/plugins/filters/ui/select.js +3 -3
  227. package/plugins/filters/ui/select.mjs +2 -2
  228. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
  229. package/plugins/hiddenRows/hiddenRows.mjs +1 -1
  230. package/plugins/manualColumnMove/manualColumnMove.js +3 -1
  231. package/plugins/manualColumnMove/manualColumnMove.mjs +3 -1
  232. package/plugins/mergeCells/mergeCells.js +5 -16
  233. package/plugins/mergeCells/mergeCells.mjs +5 -16
  234. package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
  235. package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
  236. package/plugins/nestedHeaders/nestedHeaders.js +240 -10
  237. package/plugins/nestedHeaders/nestedHeaders.mjs +241 -11
  238. package/plugins/nestedHeaders/stateManager/index.js +102 -3
  239. package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
  240. package/plugins/nestedRows/nestedRows.js +41 -0
  241. package/plugins/nestedRows/nestedRows.mjs +41 -0
  242. package/plugins/nestedRows/ui/headers.js +11 -0
  243. package/plugins/nestedRows/ui/headers.mjs +12 -1
  244. package/renderers/autocompleteRenderer/autocompleteRenderer.js +8 -0
  245. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
  246. package/renderers/baseRenderer/baseRenderer.js +17 -0
  247. package/renderers/baseRenderer/baseRenderer.mjs +18 -1
  248. package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
  249. package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
  250. package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
  251. package/renderers/dateRenderer/dateRenderer.js +29 -0
  252. package/renderers/dateRenderer/dateRenderer.mjs +24 -0
  253. package/renderers/dateRenderer/index.d.ts +1 -0
  254. package/renderers/dateRenderer/index.js +6 -0
  255. package/renderers/dateRenderer/index.mjs +1 -0
  256. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
  257. package/renderers/handsontableRenderer/handsontableRenderer.js +29 -0
  258. package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
  259. package/renderers/handsontableRenderer/index.d.ts +1 -0
  260. package/renderers/handsontableRenderer/index.js +6 -0
  261. package/renderers/handsontableRenderer/index.mjs +1 -0
  262. package/renderers/index.d.ts +9 -0
  263. package/renderers/selectRenderer/index.d.ts +1 -0
  264. package/renderers/selectRenderer/index.js +6 -0
  265. package/renderers/selectRenderer/index.mjs +1 -0
  266. package/renderers/selectRenderer/selectRenderer.d.ts +5 -0
  267. package/renderers/selectRenderer/selectRenderer.js +27 -0
  268. package/renderers/selectRenderer/selectRenderer.mjs +22 -0
  269. package/selection/highlight/highlight.js +256 -71
  270. package/selection/highlight/highlight.mjs +250 -71
  271. package/selection/highlight/types/activeHeader.js +10 -8
  272. package/selection/highlight/types/activeHeader.mjs +10 -8
  273. package/selection/highlight/types/area.js +6 -18
  274. package/selection/highlight/types/area.mjs +6 -18
  275. package/selection/highlight/types/areaLayered.js +31 -0
  276. package/selection/highlight/types/areaLayered.mjs +26 -0
  277. package/selection/highlight/types/column.js +27 -0
  278. package/selection/highlight/types/column.mjs +22 -0
  279. package/selection/highlight/types/customSelection.js +7 -9
  280. package/selection/highlight/types/customSelection.mjs +7 -9
  281. package/selection/highlight/types/fill.js +5 -7
  282. package/selection/highlight/types/fill.mjs +5 -7
  283. package/selection/highlight/types/{cell.js → focus.js} +5 -7
  284. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  285. package/selection/highlight/types/header.js +9 -18
  286. package/selection/highlight/types/header.mjs +9 -18
  287. package/selection/highlight/types/row.js +27 -0
  288. package/selection/highlight/types/row.mjs +22 -0
  289. package/selection/highlight/visualSelection.js +31 -27
  290. package/selection/highlight/visualSelection.mjs +31 -27
  291. package/selection/index.js +4 -7
  292. package/selection/index.mjs +2 -3
  293. package/selection/mouseEventHandler.js +7 -1
  294. package/selection/mouseEventHandler.mjs +7 -1
  295. package/selection/range.js +8 -8
  296. package/selection/range.mjs +8 -8
  297. package/selection/selection.js +321 -152
  298. package/selection/selection.mjs +318 -151
  299. package/selection/transformation.js +232 -90
  300. package/selection/transformation.mjs +232 -90
  301. package/selection/utils.js +15 -21
  302. package/selection/utils.mjs +16 -21
  303. package/settings.d.ts +4 -0
  304. package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
  305. package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
  306. package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
  307. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  308. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  309. package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
  310. package/shortcutContexts/commands/editor/index.js +16 -0
  311. package/shortcutContexts/commands/editor/index.mjs +12 -0
  312. package/shortcutContexts/commands/editor/open.js +27 -0
  313. package/shortcutContexts/commands/editor/open.mjs +23 -0
  314. package/shortcutContexts/commands/emptySelectedCells.js +11 -0
  315. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  316. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  317. package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
  318. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +25 -0
  319. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +21 -0
  320. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  321. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  322. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  323. package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
  324. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  325. package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
  326. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  327. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
  328. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
  329. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
  330. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
  331. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
  332. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
  333. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
  334. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
  335. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
  336. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
  337. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
  338. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
  339. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
  340. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  341. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
  342. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  343. package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
  344. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +25 -0
  345. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +21 -0
  346. package/shortcutContexts/commands/index.js +35 -0
  347. package/shortcutContexts/commands/index.mjs +31 -0
  348. package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
  349. package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
  350. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +33 -0
  351. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +29 -0
  352. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  353. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  354. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
  355. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  356. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
  357. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  358. package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
  359. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  360. package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
  361. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  362. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
  363. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
  364. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
  365. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
  366. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
  367. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
  368. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
  369. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
  370. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
  371. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
  372. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
  373. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
  374. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
  375. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
  376. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
  377. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
  378. package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
  379. package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
  380. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +33 -0
  381. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
  382. package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
  383. package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
  384. package/shortcutContexts/commands/scrollToFocusedCell.js +35 -0
  385. package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
  386. package/shortcutContexts/commands/selectAll.js +12 -0
  387. package/shortcutContexts/commands/selectAll.mjs +8 -0
  388. package/shortcutContexts/constants.js +13 -0
  389. package/shortcutContexts/constants.mjs +8 -0
  390. package/shortcutContexts/editor.js +25 -0
  391. package/shortcutContexts/editor.mjs +21 -0
  392. package/shortcutContexts/grid.js +163 -0
  393. package/shortcutContexts/grid.mjs +159 -0
  394. package/shortcutContexts/index.js +24 -0
  395. package/shortcutContexts/index.mjs +11 -0
  396. package/shortcuts/context.js +20 -2
  397. package/shortcuts/context.mjs +20 -3
  398. package/shortcuts/manager.js +25 -7
  399. package/shortcuts/manager.mjs +26 -7
  400. package/shortcuts/recorder.js +3 -3
  401. package/shortcuts/recorder.mjs +3 -3
  402. package/shortcuts/utils.js +19 -5
  403. package/shortcuts/utils.mjs +18 -4
  404. package/tableView.js +111 -13
  405. package/tableView.mjs +112 -14
  406. package/3rdparty/walkontable/src/selection.js +0 -295
  407. package/3rdparty/walkontable/src/selection.mjs +0 -290
  408. package/plugins/contextMenu/predefinedItems.mjs +0 -68
  409. package/plugins/copyPaste/focusableElement.js +0 -186
  410. package/plugins/copyPaste/focusableElement.mjs +0 -180
  411. package/selection/highlight/constants.js +0 -15
  412. package/selection/highlight/constants.mjs +0 -6
  413. package/selection/highlight/types/index.js +0 -35
  414. package/selection/highlight/types/index.mjs +0 -31
@@ -1,4 +1,3 @@
1
- import { getValidSelection } from "../utils.mjs";
2
1
  import * as C from "../../../i18n/constants.mjs";
3
2
  export const KEY = 'col_right';
4
3
 
@@ -20,8 +19,11 @@ export default function columnRightItem() {
20
19
  if (!this.isColumnModificationAllowed()) {
21
20
  return true;
22
21
  }
23
- const selected = getValidSelection(this);
24
- if (!selected) {
22
+ const range = this.getSelectedRangeLast();
23
+ if (!range) {
24
+ return true;
25
+ }
26
+ if (range.isSingleHeader() && range.highlight.col < 0) {
25
27
  return true;
26
28
  }
27
29
  if (this.selection.isSelectedByCorner()) {
@@ -3,32 +3,32 @@
3
3
  exports.__esModule = true;
4
4
  exports.addItem = addItem;
5
5
  exports.predefinedItems = predefinedItems;
6
- var _object = require("../../helpers/object");
7
- var _alignment = _interopRequireWildcard(require("./predefinedItems/alignment"));
6
+ var _object = require("../../../helpers/object");
7
+ var _alignment = _interopRequireWildcard(require("./alignment"));
8
8
  exports.ALIGNMENT = _alignment.KEY;
9
- var _clearColumn = _interopRequireWildcard(require("./predefinedItems/clearColumn"));
9
+ var _clearColumn = _interopRequireWildcard(require("./clearColumn"));
10
10
  exports.CLEAR_COLUMN = _clearColumn.KEY;
11
- var _columnLeft = _interopRequireWildcard(require("./predefinedItems/columnLeft"));
11
+ var _columnLeft = _interopRequireWildcard(require("./columnLeft"));
12
12
  exports.COLUMN_LEFT = _columnLeft.KEY;
13
- var _columnRight = _interopRequireWildcard(require("./predefinedItems/columnRight"));
13
+ var _columnRight = _interopRequireWildcard(require("./columnRight"));
14
14
  exports.COLUMN_RIGHT = _columnRight.KEY;
15
- var _readOnly = _interopRequireWildcard(require("./predefinedItems/readOnly"));
15
+ var _readOnly = _interopRequireWildcard(require("./readOnly"));
16
16
  exports.READ_ONLY = _readOnly.KEY;
17
- var _redo = _interopRequireWildcard(require("./predefinedItems/redo"));
17
+ var _redo = _interopRequireWildcard(require("./redo"));
18
18
  exports.REDO = _redo.KEY;
19
- var _removeColumn = _interopRequireWildcard(require("./predefinedItems/removeColumn"));
19
+ var _removeColumn = _interopRequireWildcard(require("./removeColumn"));
20
20
  exports.REMOVE_COLUMN = _removeColumn.KEY;
21
- var _removeRow = _interopRequireWildcard(require("./predefinedItems/removeRow"));
21
+ var _removeRow = _interopRequireWildcard(require("./removeRow"));
22
22
  exports.REMOVE_ROW = _removeRow.KEY;
23
- var _rowAbove = _interopRequireWildcard(require("./predefinedItems/rowAbove"));
23
+ var _rowAbove = _interopRequireWildcard(require("./rowAbove"));
24
24
  exports.ROW_ABOVE = _rowAbove.KEY;
25
- var _rowBelow = _interopRequireWildcard(require("./predefinedItems/rowBelow"));
25
+ var _rowBelow = _interopRequireWildcard(require("./rowBelow"));
26
26
  exports.ROW_BELOW = _rowBelow.KEY;
27
- var _separator = _interopRequireWildcard(require("./predefinedItems/separator"));
27
+ var _separator = _interopRequireWildcard(require("./separator"));
28
28
  exports.SEPARATOR = _separator.KEY;
29
- var _noItems = _interopRequireWildcard(require("./predefinedItems/noItems"));
29
+ var _noItems = _interopRequireWildcard(require("./noItems"));
30
30
  exports.NO_ITEMS = _noItems.KEY;
31
- var _undo = _interopRequireWildcard(require("./predefinedItems/undo"));
31
+ var _undo = _interopRequireWildcard(require("./undo"));
32
32
  exports.UNDO = _undo.KEY;
33
33
  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); }
34
34
  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; }
@@ -0,0 +1,68 @@
1
+ import { objectEach } from "../../../helpers/object.mjs";
2
+ import alignmentItem, { KEY as ALIGNMENT } from "./alignment.mjs";
3
+ import clearColumnItem, { KEY as CLEAR_COLUMN } from "./clearColumn.mjs";
4
+ import columnLeftItem, { KEY as COLUMN_LEFT } from "./columnLeft.mjs";
5
+ import columnRightItem, { KEY as COLUMN_RIGHT } from "./columnRight.mjs";
6
+ import readOnlyItem, { KEY as READ_ONLY } from "./readOnly.mjs";
7
+ import redoItem, { KEY as REDO } from "./redo.mjs";
8
+ import removeColumnItem, { KEY as REMOVE_COLUMN } from "./removeColumn.mjs";
9
+ import removeRowItem, { KEY as REMOVE_ROW } from "./removeRow.mjs";
10
+ import rowAboveItem, { KEY as ROW_ABOVE } from "./rowAbove.mjs";
11
+ import rowBelowItem, { KEY as ROW_BELOW } from "./rowBelow.mjs";
12
+ import separatorItem, { KEY as SEPARATOR } from "./separator.mjs";
13
+ import noItemsItem, { KEY as NO_ITEMS } from "./noItems.mjs";
14
+ import undoItem, { KEY as UNDO } from "./undo.mjs";
15
+ export { KEY as ALIGNMENT } from "./alignment.mjs";
16
+ export { KEY as CLEAR_COLUMN } from "./clearColumn.mjs";
17
+ export { KEY as COLUMN_LEFT } from "./columnLeft.mjs";
18
+ export { KEY as COLUMN_RIGHT } from "./columnRight.mjs";
19
+ export { KEY as READ_ONLY } from "./readOnly.mjs";
20
+ export { KEY as REDO } from "./redo.mjs";
21
+ export { KEY as REMOVE_COLUMN } from "./removeColumn.mjs";
22
+ export { KEY as REMOVE_ROW } from "./removeRow.mjs";
23
+ export { KEY as ROW_ABOVE } from "./rowAbove.mjs";
24
+ export { KEY as ROW_BELOW } from "./rowBelow.mjs";
25
+ export { KEY as SEPARATOR } from "./separator.mjs";
26
+ export { KEY as NO_ITEMS } from "./noItems.mjs";
27
+ export { KEY as UNDO } from "./undo.mjs";
28
+ export const ITEMS = [ROW_ABOVE, ROW_BELOW, COLUMN_LEFT, COLUMN_RIGHT, CLEAR_COLUMN, REMOVE_ROW, REMOVE_COLUMN, UNDO, REDO, READ_ONLY, ALIGNMENT, SEPARATOR, NO_ITEMS];
29
+ const _predefinedItems = {
30
+ [SEPARATOR]: separatorItem,
31
+ [NO_ITEMS]: noItemsItem,
32
+ [ROW_ABOVE]: rowAboveItem,
33
+ [ROW_BELOW]: rowBelowItem,
34
+ [COLUMN_LEFT]: columnLeftItem,
35
+ [COLUMN_RIGHT]: columnRightItem,
36
+ [CLEAR_COLUMN]: clearColumnItem,
37
+ [REMOVE_ROW]: removeRowItem,
38
+ [REMOVE_COLUMN]: removeColumnItem,
39
+ [UNDO]: undoItem,
40
+ [REDO]: redoItem,
41
+ [READ_ONLY]: readOnlyItem,
42
+ [ALIGNMENT]: alignmentItem
43
+ };
44
+
45
+ /**
46
+ * Gets new object with all predefined menu items.
47
+ *
48
+ * @returns {object}
49
+ */
50
+ export function predefinedItems() {
51
+ const items = {};
52
+ objectEach(_predefinedItems, (itemFactory, key) => {
53
+ items[key] = itemFactory();
54
+ });
55
+ return items;
56
+ }
57
+
58
+ /**
59
+ * Add new predefined menu item to the collection.
60
+ *
61
+ * @param {string} key Menu command id.
62
+ * @param {object} item Object command descriptor.
63
+ */
64
+ export function addItem(key, item) {
65
+ if (ITEMS.indexOf(key) === -1) {
66
+ _predefinedItems[key] = item;
67
+ }
68
+ }
@@ -37,6 +37,13 @@ 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
+ }
40
47
  if (this.selection.isSelectedByCorner()) {
41
48
  return true;
42
49
  }
@@ -30,6 +30,13 @@ 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
+ }
33
40
  if (this.selection.isSelectedByCorner()) {
34
41
  return true;
35
42
  }
@@ -2,8 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = removeColumnItem;
5
- var _utils = require("../utils");
6
- var _utils2 = require("../../../selection/utils");
5
+ var _utils = require("../../../selection/utils");
7
6
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
8
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); }
9
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; }
@@ -32,14 +31,17 @@ function removeColumnItem() {
32
31
  return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_REMOVE_COLUMN, pluralForm);
33
32
  },
34
33
  callback() {
35
- this.alter('remove_col', (0, _utils2.transformSelectionToColumnDistance)(this.getSelected()), null, 'ContextMenu.removeColumn');
34
+ this.alter('remove_col', (0, _utils.transformSelectionToColumnDistance)(this.getSelected()), null, 'ContextMenu.removeColumn');
36
35
  },
37
36
  disabled() {
38
37
  if (!this.isColumnModificationAllowed()) {
39
38
  return true;
40
39
  }
41
- const selected = (0, _utils.getValidSelection)(this);
42
- if (!selected) {
40
+ const range = this.getSelectedRangeLast();
41
+ if (!range) {
42
+ return true;
43
+ }
44
+ if (range.isSingleHeader() && range.highlight.col < 0) {
43
45
  return true;
44
46
  }
45
47
  const totalColumns = this.countCols();
@@ -1,4 +1,3 @@
1
- import { getValidSelection } from "../utils.mjs";
2
1
  import { transformSelectionToColumnDistance } from "../../../selection/utils.mjs";
3
2
  import * as C from "../../../i18n/constants.mjs";
4
3
  export const KEY = 'remove_col';
@@ -31,8 +30,11 @@ export default function removeColumnItem() {
31
30
  if (!this.isColumnModificationAllowed()) {
32
31
  return true;
33
32
  }
34
- const selected = getValidSelection(this);
35
- if (!selected) {
33
+ const range = this.getSelectedRangeLast();
34
+ if (!range) {
35
+ return true;
36
+ }
37
+ if (range.isSingleHeader() && range.highlight.col < 0) {
36
38
  return true;
37
39
  }
38
40
  const totalColumns = this.countCols();
@@ -2,8 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = removeRowItem;
5
- var _utils = require("../utils");
6
- var _utils2 = require("../../../selection/utils");
5
+ var _utils = require("../../../selection/utils");
7
6
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
8
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); }
9
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; }
@@ -34,11 +33,14 @@ function removeRowItem() {
34
33
  callback() {
35
34
  // TODO: Please keep in mind that below `1` may be improper. The table's way of work, before change `f1747b3912ea3b21fe423fd102ca94c87db81379` was restored.
36
35
  // There is still problem when removing more than one row.
37
- this.alter('remove_row', (0, _utils2.transformSelectionToRowDistance)(this.getSelected()), 1, 'ContextMenu.removeRow');
36
+ this.alter('remove_row', (0, _utils.transformSelectionToRowDistance)(this.getSelected()), 1, 'ContextMenu.removeRow');
38
37
  },
39
38
  disabled() {
40
- const selected = (0, _utils.getValidSelection)(this);
41
- if (!selected) {
39
+ const range = this.getSelectedRangeLast();
40
+ if (!range) {
41
+ return true;
42
+ }
43
+ if (range.isSingleHeader() && range.highlight.row < 0) {
42
44
  return true;
43
45
  }
44
46
  const totalRows = this.countRows();
@@ -1,4 +1,3 @@
1
- import { getValidSelection } from "../utils.mjs";
2
1
  import { transformSelectionToRowDistance } from "../../../selection/utils.mjs";
3
2
  import * as C from "../../../i18n/constants.mjs";
4
3
  export const KEY = 'remove_row';
@@ -30,8 +29,11 @@ export default function removeRowItem() {
30
29
  this.alter('remove_row', transformSelectionToRowDistance(this.getSelected()), 1, 'ContextMenu.removeRow');
31
30
  },
32
31
  disabled() {
33
- const selected = getValidSelection(this);
34
- if (!selected) {
32
+ const range = this.getSelectedRangeLast();
33
+ if (!range) {
34
+ return true;
35
+ }
36
+ if (range.isSingleHeader() && range.highlight.row < 0) {
35
37
  return true;
36
38
  }
37
39
  const totalRows = this.countRows();
@@ -2,7 +2,6 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = rowAboveItem;
5
- var _utils = require("../utils");
6
5
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
7
6
  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
7
  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; }
@@ -23,8 +22,11 @@ function rowAboveItem() {
23
22
  this.alter('insert_row_above', latestSelection.row, 1, 'ContextMenu.rowAbove');
24
23
  },
25
24
  disabled() {
26
- const selected = (0, _utils.getValidSelection)(this);
27
- if (!selected) {
25
+ const range = this.getSelectedRangeLast();
26
+ if (!range) {
27
+ return true;
28
+ }
29
+ if (range.isSingleHeader() && range.highlight.row < 0) {
28
30
  return true;
29
31
  }
30
32
  if (this.selection.isSelectedByCorner()) {
@@ -1,4 +1,3 @@
1
- import { getValidSelection } from "../utils.mjs";
2
1
  import * as C from "../../../i18n/constants.mjs";
3
2
  export const KEY = 'row_above';
4
3
 
@@ -16,8 +15,11 @@ export default function rowAboveItem() {
16
15
  this.alter('insert_row_above', latestSelection.row, 1, 'ContextMenu.rowAbove');
17
16
  },
18
17
  disabled() {
19
- const selected = getValidSelection(this);
20
- if (!selected) {
18
+ const range = this.getSelectedRangeLast();
19
+ if (!range) {
20
+ return true;
21
+ }
22
+ if (range.isSingleHeader() && range.highlight.row < 0) {
21
23
  return true;
22
24
  }
23
25
  if (this.selection.isSelectedByCorner()) {
@@ -2,7 +2,6 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = rowBelowItem;
5
- var _utils = require("../utils");
6
5
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
7
6
  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
7
  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; }
@@ -23,8 +22,11 @@ function rowBelowItem() {
23
22
  this.alter('insert_row_below', latestSelection.row, 1, 'ContextMenu.rowBelow');
24
23
  },
25
24
  disabled() {
26
- const selected = (0, _utils.getValidSelection)(this);
27
- if (!selected) {
25
+ const range = this.getSelectedRangeLast();
26
+ if (!range) {
27
+ return true;
28
+ }
29
+ if (range.isSingleHeader() && range.highlight.row < 0) {
28
30
  return true;
29
31
  }
30
32
  if (this.selection.isSelectedByCorner()) {
@@ -1,4 +1,3 @@
1
- import { getValidSelection } from "../utils.mjs";
2
1
  import * as C from "../../../i18n/constants.mjs";
3
2
  export const KEY = 'row_below';
4
3
 
@@ -16,8 +15,11 @@ export default function rowBelowItem() {
16
15
  this.alter('insert_row_below', latestSelection.row, 1, 'ContextMenu.rowBelow');
17
16
  },
18
17
  disabled() {
19
- const selected = getValidSelection(this);
20
- if (!selected) {
18
+ const range = this.getSelectedRangeLast();
19
+ if (!range) {
20
+ return true;
21
+ }
22
+ if (range.isSingleHeader() && range.highlight.row < 0) {
21
23
  return true;
22
24
  }
23
25
  if (this.selection.isSelectedByCorner()) {
@@ -3,83 +3,15 @@
3
3
  exports.__esModule = true;
4
4
  exports.align = align;
5
5
  exports.checkSelectionConsistency = checkSelectionConsistency;
6
- exports.filterSeparators = filterSeparators;
7
6
  exports.getAlignmentClasses = getAlignmentClasses;
8
- exports.getValidSelection = getValidSelection;
9
- exports.hasSubMenu = hasSubMenu;
10
- exports.isDisabled = isDisabled;
11
- exports.isItemHidden = isItemHidden;
12
- exports.isSelectionDisabled = isSelectionDisabled;
13
- exports.isSeparator = isSeparator;
7
+ exports.getDocumentOffsetByElement = getDocumentOffsetByElement;
14
8
  exports.markLabelAsSelected = markLabelAsSelected;
15
- exports.normalizeSelection = normalizeSelection;
16
9
  exports.prepareHorizontalAlignClass = prepareHorizontalAlignClass;
17
10
  exports.prepareVerticalAlignClass = prepareVerticalAlignClass;
18
- require("core-js/modules/es.array.push.js");
19
11
  var _array = require("../../helpers/array");
20
- var _element = require("../../helpers/dom/element");
21
- var _separator = require("./predefinedItems/separator");
22
- /**
23
- * @param {CellRange[]} selRanges An array of the cell ranges.
24
- * @returns {object[]}
25
- */
26
- function normalizeSelection(selRanges) {
27
- return (0, _array.arrayMap)(selRanges, range => ({
28
- start: range.getTopStartCorner(),
29
- end: range.getBottomEndCorner()
30
- }));
31
- }
32
-
33
- /**
34
- * @param {HTMLElement} cell The HTML cell element to check.
35
- * @returns {boolean}
36
- */
37
- function isSeparator(cell) {
38
- return (0, _element.hasClass)(cell, 'htSeparator');
39
- }
40
-
41
- /**
42
- * @param {HTMLElement} cell The HTML cell element to check.
43
- * @returns {boolean}
44
- */
45
- function hasSubMenu(cell) {
46
- return (0, _element.hasClass)(cell, 'htSubmenu');
47
- }
48
-
49
- /**
50
- * @param {HTMLElement} cell The HTML cell element to check.
51
- * @returns {boolean}
52
- */
53
- function isDisabled(cell) {
54
- return (0, _element.hasClass)(cell, 'htDisabled');
55
- }
56
-
57
- /**
58
- * @param {HTMLElement} cell The HTML cell element to check.
59
- * @returns {boolean}
60
- */
61
- function isSelectionDisabled(cell) {
62
- return (0, _element.hasClass)(cell, 'htSelectionDisabled');
63
- }
64
-
65
- /**
66
- * @param {Core} hot The Handsontable instance.
67
- * @returns {Array[]|null}
68
- */
69
- function getValidSelection(hot) {
70
- const selected = hot.getSelected();
71
- if (!selected) {
72
- return null;
73
- }
74
- if (selected[0] < 0) {
75
- return null;
76
- }
77
- return selected;
78
- }
79
-
80
12
  /**
81
13
  * @param {string} className The full element class name to process.
82
- * @param {string} alignment The slignment class name to compare with.
14
+ * @param {string} alignment The alignment class name to compare with.
83
15
  * @returns {string}
84
16
  */
85
17
  function prepareVerticalAlignClass(className, alignment) {
@@ -92,7 +24,7 @@ function prepareVerticalAlignClass(className, alignment) {
92
24
 
93
25
  /**
94
26
  * @param {string} className The full element class name to process.
95
- * @param {string} alignment The slignment class name to compare with.
27
+ * @param {string} alignment The alignment class name to compare with.
96
28
  * @returns {string}
97
29
  */
98
30
  function prepareHorizontalAlignClass(className, alignment) {
@@ -163,6 +95,15 @@ function applyAlignClassName(row, col, type, alignment, cellDescriptor, property
163
95
  propertySetter(row, col, 'className', className);
164
96
  }
165
97
 
98
+ /**
99
+ * @param {string} label The label text.
100
+ * @returns {string}
101
+ */
102
+ function markLabelAsSelected(label) {
103
+ // workaround for https://github.com/handsontable/handsontable/issues/1946
104
+ return `<span class="selected">${String.fromCharCode(10003)}</span>${label}`;
105
+ }
106
+
166
107
  /**
167
108
  * @param {CellRange[]} ranges An array of the cell ranges.
168
109
  * @param {Function} comparator The comparator function.
@@ -186,85 +127,28 @@ function checkSelectionConsistency(ranges, comparator) {
186
127
  }
187
128
 
188
129
  /**
189
- * @param {string} label The label text.
190
- * @returns {string}
191
- */
192
- function markLabelAsSelected(label) {
193
- // workaround for https://github.com/handsontable/handsontable/issues/1946
194
- return `<span class="selected">${String.fromCharCode(10003)}</span>${label}`;
195
- }
196
-
197
- /**
198
- * @param {object} item The object which describes the context menu item properties.
199
- * @param {Core} instance The Handsontable instance.
200
- * @returns {boolean}
201
- */
202
- function isItemHidden(item, instance) {
203
- return !item.hidden || !(typeof item.hidden === 'function' && item.hidden.call(instance));
204
- }
205
-
206
- /**
207
- * @param {object[]} items The context menu items collection.
208
- * @param {string} separator The string which identifies the context menu separator item.
209
- * @returns {object[]}
210
- */
211
- function shiftSeparators(items, separator) {
212
- const result = items.slice(0);
213
- for (let i = 0; i < result.length;) {
214
- if (result[i].name === separator) {
215
- result.shift();
216
- } else {
217
- break;
218
- }
219
- }
220
- return result;
221
- }
222
-
223
- /**
224
- * @param {object[]} items The context menu items collection.
225
- * @param {string} separator The string which identifies the context menu separator item.
226
- * @returns {object[]}
227
- */
228
- function popSeparators(items, separator) {
229
- let result = items.slice(0);
230
- result.reverse();
231
- result = shiftSeparators(result, separator);
232
- result.reverse();
233
- return result;
234
- }
235
-
236
- /**
237
- * Removes duplicated menu separators from the context menu items collection.
130
+ * Returns document offset based on the passed element. If the document objects between element and the
131
+ * base document are not the same the offset as top and left properties will be returned.
238
132
  *
239
- * @param {object[]} items The context menu items collection.
240
- * @returns {object[]}
241
- */
242
- function removeDuplicatedSeparators(items) {
243
- const result = [];
244
- (0, _array.arrayEach)(items, (value, index) => {
245
- if (index > 0) {
246
- if (result[result.length - 1].name !== value.name) {
247
- result.push(value);
248
- }
249
- } else {
250
- result.push(value);
251
- }
252
- });
253
- return result;
254
- }
255
-
256
- /**
257
- * Removes menu separators from the context menu items collection.
258
- *
259
- * @param {object[]} items The context menu items collection.
260
- * @param {string} separator The string which identifies the context menu separator item.
261
- * @returns {object[]}
262
- */
263
- function filterSeparators(items) {
264
- let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _separator.KEY;
265
- let result = items.slice(0);
266
- result = shiftSeparators(result, separator);
267
- result = popSeparators(result, separator);
268
- result = removeDuplicatedSeparators(result);
269
- return result;
133
+ * @param {Element} elementToCheck The element to compare with Document object.
134
+ * @param {Document} baseDocument The base Document object.
135
+ * @returns {{ top: number, left: number }}
136
+ */
137
+ function getDocumentOffsetByElement(elementToCheck, baseDocument) {
138
+ const offset = {
139
+ top: 0,
140
+ left: 0
141
+ };
142
+ if (baseDocument !== elementToCheck.ownerDocument) {
143
+ const {
144
+ frameElement
145
+ } = baseDocument.defaultView;
146
+ const {
147
+ top,
148
+ left
149
+ } = frameElement.getBoundingClientRect();
150
+ offset.top = top;
151
+ offset.left = left;
152
+ }
153
+ return offset;
270
154
  }