handsontable 0.0.0-next-08765b9-20230714 → 0.0.0-next-f8ea07b-20230714

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 (295) 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/core.d.ts +3 -6
  44. package/core.js +290 -173
  45. package/core.mjs +290 -173
  46. package/dataMap/metaManager/metaSchema.js +0 -41
  47. package/dataMap/metaManager/metaSchema.mjs +0 -41
  48. package/dist/handsontable.css +3 -19
  49. package/dist/handsontable.full.css +3 -19
  50. package/dist/handsontable.full.js +5369 -8671
  51. package/dist/handsontable.full.min.css +3 -3
  52. package/dist/handsontable.full.min.js +25 -25
  53. package/dist/handsontable.js +8117 -11419
  54. package/dist/handsontable.min.css +3 -3
  55. package/dist/handsontable.min.js +19 -19
  56. package/editorManager.js +75 -11
  57. package/editorManager.mjs +74 -11
  58. package/editors/textEditor/textEditor.js +11 -3
  59. package/editors/textEditor/textEditor.mjs +12 -4
  60. package/helpers/mixed.js +1 -1
  61. package/helpers/mixed.mjs +1 -1
  62. package/helpers/number.d.ts +0 -1
  63. package/helpers/number.js +0 -18
  64. package/helpers/number.mjs +0 -17
  65. package/package.json +1 -1
  66. package/pluginHooks.d.ts +1 -7
  67. package/pluginHooks.js +1 -106
  68. package/pluginHooks.mjs +1 -106
  69. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -58
  70. package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -58
  71. package/plugins/columnSorting/columnSorting.js +0 -38
  72. package/plugins/columnSorting/columnSorting.mjs +2 -38
  73. package/plugins/columnSorting/index.js +1 -3
  74. package/plugins/columnSorting/index.mjs +1 -1
  75. package/plugins/comments/commentEditor.js +0 -1
  76. package/plugins/comments/commentEditor.mjs +0 -1
  77. package/plugins/comments/comments.js +189 -251
  78. package/plugins/comments/comments.mjs +190 -250
  79. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  80. package/plugins/contextMenu/contextMenu.js +30 -72
  81. package/plugins/contextMenu/contextMenu.mjs +31 -73
  82. package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
  83. package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
  84. package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
  85. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
  86. package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
  87. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
  88. package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
  89. package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
  90. package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
  91. package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
  92. package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
  93. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
  94. package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
  95. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
  96. package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
  97. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
  98. package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
  99. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
  100. package/plugins/contextMenu/utils.js +16 -28
  101. package/plugins/contextMenu/utils.mjs +15 -27
  102. package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
  103. package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
  104. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
  105. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
  106. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
  107. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
  108. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
  109. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
  110. package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
  111. package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
  112. package/plugins/copyPaste/copyPaste.js +2 -6
  113. package/plugins/copyPaste/copyPaste.mjs +2 -6
  114. package/plugins/customBorders/customBorders.js +20 -23
  115. package/plugins/customBorders/customBorders.mjs +21 -24
  116. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  117. package/plugins/dropdownMenu/dropdownMenu.js +32 -89
  118. package/plugins/dropdownMenu/dropdownMenu.mjs +32 -89
  119. package/plugins/filters/filters.js +14 -31
  120. package/plugins/filters/filters.mjs +13 -30
  121. package/plugins/mergeCells/mergeCells.js +16 -5
  122. package/plugins/mergeCells/mergeCells.mjs +16 -5
  123. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
  124. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
  125. package/plugins/nestedHeaders/nestedHeaders.js +8 -121
  126. package/plugins/nestedHeaders/nestedHeaders.mjs +8 -121
  127. package/plugins/nestedHeaders/stateManager/index.js +0 -37
  128. package/plugins/nestedHeaders/stateManager/index.mjs +0 -37
  129. package/plugins/nestedRows/nestedRows.js +0 -41
  130. package/plugins/nestedRows/nestedRows.mjs +0 -41
  131. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  132. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  133. package/selection/highlight/constants.js +15 -0
  134. package/selection/highlight/constants.mjs +6 -0
  135. package/selection/highlight/highlight.js +71 -256
  136. package/selection/highlight/highlight.mjs +71 -250
  137. package/selection/highlight/types/activeHeader.js +8 -10
  138. package/selection/highlight/types/activeHeader.mjs +8 -10
  139. package/selection/highlight/types/area.js +18 -6
  140. package/selection/highlight/types/area.mjs +18 -6
  141. package/selection/highlight/types/{focus.js → cell.js} +7 -5
  142. package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
  143. package/selection/highlight/types/customSelection.js +9 -7
  144. package/selection/highlight/types/customSelection.mjs +9 -7
  145. package/selection/highlight/types/fill.js +7 -5
  146. package/selection/highlight/types/fill.mjs +7 -5
  147. package/selection/highlight/types/header.js +18 -9
  148. package/selection/highlight/types/header.mjs +18 -9
  149. package/selection/highlight/types/index.js +35 -0
  150. package/selection/highlight/types/index.mjs +31 -0
  151. package/selection/highlight/visualSelection.js +27 -31
  152. package/selection/highlight/visualSelection.mjs +27 -31
  153. package/selection/index.js +7 -4
  154. package/selection/index.mjs +3 -2
  155. package/selection/mouseEventHandler.js +1 -1
  156. package/selection/mouseEventHandler.mjs +1 -1
  157. package/selection/range.js +8 -8
  158. package/selection/range.mjs +8 -8
  159. package/selection/selection.js +154 -290
  160. package/selection/selection.mjs +153 -287
  161. package/selection/transformation.js +90 -232
  162. package/selection/transformation.mjs +90 -232
  163. package/selection/utils.js +21 -15
  164. package/selection/utils.mjs +21 -16
  165. package/settings.d.ts +0 -2
  166. package/shortcuts/manager.js +0 -2
  167. package/shortcuts/manager.mjs +0 -2
  168. package/shortcuts/recorder.js +2 -2
  169. package/shortcuts/recorder.mjs +2 -2
  170. package/shortcuts/utils.js +5 -19
  171. package/shortcuts/utils.mjs +4 -18
  172. package/tableView.js +13 -67
  173. package/tableView.mjs +13 -67
  174. package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
  175. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  176. package/3rdparty/walkontable/src/selection/constants.js +0 -62
  177. package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
  178. package/3rdparty/walkontable/src/selection/index.js +0 -26
  179. package/3rdparty/walkontable/src/selection/index.mjs +0 -5
  180. package/3rdparty/walkontable/src/selection/manager.js +0 -259
  181. package/3rdparty/walkontable/src/selection/manager.mjs +0 -254
  182. package/3rdparty/walkontable/src/selection/scanner.js +0 -270
  183. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
  184. package/3rdparty/walkontable/src/selection/selection.js +0 -101
  185. package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
  186. package/core/focusCatcher/focusDetector.js +0 -58
  187. package/core/focusCatcher/focusDetector.mjs +0 -54
  188. package/core/focusCatcher/index.js +0 -142
  189. package/core/focusCatcher/index.mjs +0 -138
  190. package/core/index.js +0 -9
  191. package/core/index.mjs +0 -1
  192. package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
  193. package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
  194. package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
  195. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
  196. package/plugins/comments/contextMenuItem/removeComment.js +0 -38
  197. package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
  198. package/selection/highlight/types/areaLayered.js +0 -31
  199. package/selection/highlight/types/areaLayered.mjs +0 -26
  200. package/selection/highlight/types/column.js +0 -27
  201. package/selection/highlight/types/column.mjs +0 -22
  202. package/selection/highlight/types/row.js +0 -27
  203. package/selection/highlight/types/row.mjs +0 -22
  204. package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
  205. package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
  206. package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
  207. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
  208. package/shortcutContexts/commands/editor/fastOpen.js +0 -16
  209. package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
  210. package/shortcutContexts/commands/editor/index.js +0 -16
  211. package/shortcutContexts/commands/editor/index.mjs +0 -12
  212. package/shortcutContexts/commands/editor/open.js +0 -27
  213. package/shortcutContexts/commands/editor/open.mjs +0 -23
  214. package/shortcutContexts/commands/emptySelectedCells.js +0 -11
  215. package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
  216. package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
  217. package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
  218. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -21
  219. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -17
  220. package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
  221. package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
  222. package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
  223. package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
  224. package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
  225. package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
  226. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
  227. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
  228. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
  229. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
  230. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
  231. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
  232. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
  233. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
  234. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
  235. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
  236. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
  237. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
  238. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
  239. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
  240. package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
  241. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
  242. package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
  243. package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
  244. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -21
  245. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -17
  246. package/shortcutContexts/commands/index.js +0 -35
  247. package/shortcutContexts/commands/index.mjs +0 -31
  248. package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
  249. package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
  250. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -31
  251. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -27
  252. package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
  253. package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
  254. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
  255. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
  256. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
  257. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
  258. package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
  259. package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
  260. package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
  261. package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
  262. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
  263. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
  264. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
  265. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
  266. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
  267. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
  268. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
  269. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
  270. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
  271. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
  272. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
  273. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
  274. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
  275. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
  276. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
  277. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
  278. package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
  279. package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
  280. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -31
  281. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -27
  282. package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
  283. package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
  284. package/shortcutContexts/commands/scrollToFocusedCell.js +0 -36
  285. package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -32
  286. package/shortcutContexts/commands/selectAll.js +0 -10
  287. package/shortcutContexts/commands/selectAll.mjs +0 -6
  288. package/shortcutContexts/constants.js +0 -13
  289. package/shortcutContexts/constants.mjs +0 -8
  290. package/shortcutContexts/editor.js +0 -25
  291. package/shortcutContexts/editor.mjs +0 -21
  292. package/shortcutContexts/grid.js +0 -163
  293. package/shortcutContexts/grid.mjs +0 -159
  294. package/shortcutContexts/index.js +0 -24
  295. package/shortcutContexts/index.mjs +0 -11
@@ -33,25 +33,11 @@ export const getKeysList = normalizedKeys => {
33
33
  };
34
34
 
35
35
  /**
36
- * The regex tests if the event.code matches to the pattern and it's used to extract letters and digits from
37
- * the string.
38
- */
39
- const codeToKeyRegExp = new RegExp('^(?:Key|Digit)([A-Z0-9])$');
40
-
41
- /**
42
- * Normalizes a keyboard event key value to a key before its modification. When the keyboard event
43
- * is triggered with Alt, Control or Shift keys the `key` property contains modified key e.g. for Alt+L
44
- * it will be `ł`. But that value is only valid for polish keyboard layout. To fix that limitations, for
45
- * letters and digits the value is taken from the `code` property which holds original value before
46
- * transformation.
36
+ * Normalize a `KeyboardEvent.key` property, to use it for keyboard shortcuts.
47
37
  *
48
- * @param {Event} event The KeyboardEvent object.
38
+ * @param {string} key KeyboardEvent's key property.
49
39
  * @returns {string}
50
40
  */
51
- export const normalizeEventKey = _ref => {
52
- let {
53
- key,
54
- code
55
- } = _ref;
56
- return (codeToKeyRegExp.test(code) ? code.replace(codeToKeyRegExp, '$1') : key).toLowerCase();
41
+ export const normalizeEventKey = key => {
42
+ return key.toLowerCase();
57
43
  };
package/tableView.js CHANGED
@@ -312,14 +312,11 @@ class TableView {
312
312
  });
313
313
  this.eventManager.addEventListener(documentElement, 'mouseup', event => {
314
314
  if (selection.isInProgress() && (0, _event.isLeftClick)(event)) {
315
+ // is left mouse button
315
316
  selection.finish();
316
317
  }
317
318
  priv.mouseDown = false;
318
- const isOutsideInputElement = (0, _element.isOutsideInput)(rootDocument.activeElement);
319
- if (!isOutsideInputElement) {
320
- return;
321
- }
322
- if (isOutsideInputElement || !selection.isSelected() && !selection.isSelectedByAnyHeader() && !rootElement.contains(event.target) && !(0, _event.isRightClick)(event)) {
319
+ if ((0, _element.isOutsideInput)(rootDocument.activeElement) || !selection.isSelected() && !selection.isSelectedByAnyHeader() && !rootElement.contains(event.target) && !(0, _event.isRightClick)(event)) {
323
320
  this.instance.unlisten();
324
321
  }
325
322
  });
@@ -553,40 +550,6 @@ class TableView {
553
550
  return this.countNotHiddenRowIndexes(visualFixedRowsBottom, 1);
554
551
  }
555
552
 
556
- /**
557
- * The function returns the number of renderable column indexes within the passed range of the visual indexes.
558
- *
559
- * @param {number} columnStart The column visual start index.
560
- * @param {number} columnEnd The column visual end index.
561
- * @returns {number}
562
- */
563
- countRenderableColumnsInRange(columnStart, columnEnd) {
564
- let count = 0;
565
- for (let column = columnStart; column <= columnEnd; column++) {
566
- if (this.instance.columnIndexMapper.getRenderableFromVisualIndex(column) !== null) {
567
- count += 1;
568
- }
569
- }
570
- return count;
571
- }
572
-
573
- /**
574
- * The function returns the number of renderable row indexes within the passed range of the visual indexes.
575
- *
576
- * @param {number} rowStart The row visual start index.
577
- * @param {number} rowEnd The row visual end index.
578
- * @returns {number}
579
- */
580
- countRenderableRowsInRange(rowStart, rowEnd) {
581
- let count = 0;
582
- for (let row = rowStart; row <= rowEnd; row++) {
583
- if (this.instance.rowIndexMapper.getRenderableFromVisualIndex(row) !== null) {
584
- count += 1;
585
- }
586
- }
587
- return count;
588
- }
589
-
590
553
  /**
591
554
  * Checks if at least one cell than belongs to the main table is not covered by the top, left or
592
555
  * bottom overlay.
@@ -806,40 +769,20 @@ class TableView {
806
769
  },
807
770
  beforeDraw: (force, skipRender) => this.beforeRender(force, skipRender),
808
771
  onDraw: force => this.afterRender(force),
809
- onScrollVertically: () => {
810
- this.instance.runHooks('afterScrollVertically');
811
- this.instance.runHooks('afterScroll');
812
- },
813
- onScrollHorizontally: () => {
814
- this.instance.runHooks('afterScrollHorizontally');
815
- this.instance.runHooks('afterScroll');
816
- },
772
+ onScrollVertically: () => this.instance.runHooks('afterScrollVertically'),
773
+ onScrollHorizontally: () => this.instance.runHooks('afterScrollHorizontally'),
817
774
  onBeforeRemoveCellClassNames: () => this.instance.runHooks('beforeRemoveCellClassNames'),
818
775
  onBeforeHighlightingRowHeader: (renderableRow, headerLevel, highlightMeta) => {
819
776
  const rowMapper = this.instance.rowIndexMapper;
820
- const areColumnHeadersSelected = renderableRow < 0;
821
- let visualRow = renderableRow;
822
- if (!areColumnHeadersSelected) {
823
- visualRow = rowMapper.getVisualFromRenderableIndex(renderableRow);
824
- }
777
+ const visualRow = rowMapper.getVisualFromRenderableIndex(renderableRow);
825
778
  const newVisualRow = this.instance.runHooks('beforeHighlightingRowHeader', visualRow, headerLevel, highlightMeta);
826
- if (!areColumnHeadersSelected) {
827
- return rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(newVisualRow, 1));
828
- }
829
- return newVisualRow;
779
+ return rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(newVisualRow, 1));
830
780
  },
831
781
  onBeforeHighlightingColumnHeader: (renderableColumn, headerLevel, highlightMeta) => {
832
782
  const columnMapper = this.instance.columnIndexMapper;
833
- const areRowHeadersSelected = renderableColumn < 0;
834
- let visualColumn = renderableColumn;
835
- if (!areRowHeadersSelected) {
836
- visualColumn = columnMapper.getVisualFromRenderableIndex(renderableColumn);
837
- }
783
+ const visualColumn = columnMapper.getVisualFromRenderableIndex(renderableColumn);
838
784
  const newVisualColumn = this.instance.runHooks('beforeHighlightingColumnHeader', visualColumn, headerLevel, highlightMeta);
839
- if (!areRowHeadersSelected) {
840
- return columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(newVisualColumn, 1));
841
- }
842
- return newVisualColumn;
785
+ return columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(newVisualColumn, 1));
843
786
  },
844
787
  onAfterDrawSelection: (currentRow, currentColumn, layerLevel) => {
845
788
  let cornersOfSelection;
@@ -847,7 +790,10 @@ class TableView {
847
790
  const selectedRange = this.instance.selection.getSelectedRange();
848
791
  const selectionRangeSize = selectedRange.size();
849
792
  if (selectionRangeSize > 0) {
850
- const selectionForLayer = selectedRange.peekByIndex(layerLevel !== null && layerLevel !== void 0 ? layerLevel : 0);
793
+ // Selection layers are stored from the "oldest" to the "newest". We should calculate the offset.
794
+ // Please look at the `SelectedRange` class and it's method for getting selection's layer for more information.
795
+ const selectionOffset = (layerLevel !== null && layerLevel !== void 0 ? layerLevel : 0) + 1 - selectionRangeSize;
796
+ const selectionForLayer = selectedRange.peekByIndex(selectionOffset);
851
797
  cornersOfSelection = [selectionForLayer.from.row, selectionForLayer.from.col, selectionForLayer.to.row, selectionForLayer.to.col];
852
798
  }
853
799
  return this.instance.runHooks('afterDrawSelection', visualRowIndex, visualColumnIndex, cornersOfSelection, layerLevel);
@@ -1000,7 +946,7 @@ class TableView {
1000
946
  */
1001
947
  isSelectedOnlyCell() {
1002
948
  var _this$instance$getSel, _this$instance$getSel2;
1003
- return (_this$instance$getSel = (_this$instance$getSel2 = this.instance.getSelectedRangeLast()) === null || _this$instance$getSel2 === void 0 ? void 0 : _this$instance$getSel2.isSingleCell()) !== null && _this$instance$getSel !== void 0 ? _this$instance$getSel : false;
949
+ return (_this$instance$getSel = (_this$instance$getSel2 = this.instance.getSelectedRangeLast()) === null || _this$instance$getSel2 === void 0 ? void 0 : _this$instance$getSel2.isSingle()) !== null && _this$instance$getSel !== void 0 ? _this$instance$getSel : false;
1004
950
  }
1005
951
 
1006
952
  /**
package/tableView.mjs CHANGED
@@ -308,14 +308,11 @@ class TableView {
308
308
  });
309
309
  this.eventManager.addEventListener(documentElement, 'mouseup', event => {
310
310
  if (selection.isInProgress() && isLeftClick(event)) {
311
+ // is left mouse button
311
312
  selection.finish();
312
313
  }
313
314
  priv.mouseDown = false;
314
- const isOutsideInputElement = isOutsideInput(rootDocument.activeElement);
315
- if (!isOutsideInputElement) {
316
- return;
317
- }
318
- if (isOutsideInputElement || !selection.isSelected() && !selection.isSelectedByAnyHeader() && !rootElement.contains(event.target) && !isRightClick(event)) {
315
+ if (isOutsideInput(rootDocument.activeElement) || !selection.isSelected() && !selection.isSelectedByAnyHeader() && !rootElement.contains(event.target) && !isRightClick(event)) {
319
316
  this.instance.unlisten();
320
317
  }
321
318
  });
@@ -549,40 +546,6 @@ class TableView {
549
546
  return this.countNotHiddenRowIndexes(visualFixedRowsBottom, 1);
550
547
  }
551
548
 
552
- /**
553
- * The function returns the number of renderable column indexes within the passed range of the visual indexes.
554
- *
555
- * @param {number} columnStart The column visual start index.
556
- * @param {number} columnEnd The column visual end index.
557
- * @returns {number}
558
- */
559
- countRenderableColumnsInRange(columnStart, columnEnd) {
560
- let count = 0;
561
- for (let column = columnStart; column <= columnEnd; column++) {
562
- if (this.instance.columnIndexMapper.getRenderableFromVisualIndex(column) !== null) {
563
- count += 1;
564
- }
565
- }
566
- return count;
567
- }
568
-
569
- /**
570
- * The function returns the number of renderable row indexes within the passed range of the visual indexes.
571
- *
572
- * @param {number} rowStart The row visual start index.
573
- * @param {number} rowEnd The row visual end index.
574
- * @returns {number}
575
- */
576
- countRenderableRowsInRange(rowStart, rowEnd) {
577
- let count = 0;
578
- for (let row = rowStart; row <= rowEnd; row++) {
579
- if (this.instance.rowIndexMapper.getRenderableFromVisualIndex(row) !== null) {
580
- count += 1;
581
- }
582
- }
583
- return count;
584
- }
585
-
586
549
  /**
587
550
  * Checks if at least one cell than belongs to the main table is not covered by the top, left or
588
551
  * bottom overlay.
@@ -802,40 +765,20 @@ class TableView {
802
765
  },
803
766
  beforeDraw: (force, skipRender) => this.beforeRender(force, skipRender),
804
767
  onDraw: force => this.afterRender(force),
805
- onScrollVertically: () => {
806
- this.instance.runHooks('afterScrollVertically');
807
- this.instance.runHooks('afterScroll');
808
- },
809
- onScrollHorizontally: () => {
810
- this.instance.runHooks('afterScrollHorizontally');
811
- this.instance.runHooks('afterScroll');
812
- },
768
+ onScrollVertically: () => this.instance.runHooks('afterScrollVertically'),
769
+ onScrollHorizontally: () => this.instance.runHooks('afterScrollHorizontally'),
813
770
  onBeforeRemoveCellClassNames: () => this.instance.runHooks('beforeRemoveCellClassNames'),
814
771
  onBeforeHighlightingRowHeader: (renderableRow, headerLevel, highlightMeta) => {
815
772
  const rowMapper = this.instance.rowIndexMapper;
816
- const areColumnHeadersSelected = renderableRow < 0;
817
- let visualRow = renderableRow;
818
- if (!areColumnHeadersSelected) {
819
- visualRow = rowMapper.getVisualFromRenderableIndex(renderableRow);
820
- }
773
+ const visualRow = rowMapper.getVisualFromRenderableIndex(renderableRow);
821
774
  const newVisualRow = this.instance.runHooks('beforeHighlightingRowHeader', visualRow, headerLevel, highlightMeta);
822
- if (!areColumnHeadersSelected) {
823
- return rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(newVisualRow, 1));
824
- }
825
- return newVisualRow;
775
+ return rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(newVisualRow, 1));
826
776
  },
827
777
  onBeforeHighlightingColumnHeader: (renderableColumn, headerLevel, highlightMeta) => {
828
778
  const columnMapper = this.instance.columnIndexMapper;
829
- const areRowHeadersSelected = renderableColumn < 0;
830
- let visualColumn = renderableColumn;
831
- if (!areRowHeadersSelected) {
832
- visualColumn = columnMapper.getVisualFromRenderableIndex(renderableColumn);
833
- }
779
+ const visualColumn = columnMapper.getVisualFromRenderableIndex(renderableColumn);
834
780
  const newVisualColumn = this.instance.runHooks('beforeHighlightingColumnHeader', visualColumn, headerLevel, highlightMeta);
835
- if (!areRowHeadersSelected) {
836
- return columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(newVisualColumn, 1));
837
- }
838
- return newVisualColumn;
781
+ return columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(newVisualColumn, 1));
839
782
  },
840
783
  onAfterDrawSelection: (currentRow, currentColumn, layerLevel) => {
841
784
  let cornersOfSelection;
@@ -843,7 +786,10 @@ class TableView {
843
786
  const selectedRange = this.instance.selection.getSelectedRange();
844
787
  const selectionRangeSize = selectedRange.size();
845
788
  if (selectionRangeSize > 0) {
846
- const selectionForLayer = selectedRange.peekByIndex(layerLevel !== null && layerLevel !== void 0 ? layerLevel : 0);
789
+ // Selection layers are stored from the "oldest" to the "newest". We should calculate the offset.
790
+ // Please look at the `SelectedRange` class and it's method for getting selection's layer for more information.
791
+ const selectionOffset = (layerLevel !== null && layerLevel !== void 0 ? layerLevel : 0) + 1 - selectionRangeSize;
792
+ const selectionForLayer = selectedRange.peekByIndex(selectionOffset);
847
793
  cornersOfSelection = [selectionForLayer.from.row, selectionForLayer.from.col, selectionForLayer.to.row, selectionForLayer.to.col];
848
794
  }
849
795
  return this.instance.runHooks('afterDrawSelection', visualRowIndex, visualColumnIndex, cornersOfSelection, layerLevel);
@@ -996,7 +942,7 @@ class TableView {
996
942
  */
997
943
  isSelectedOnlyCell() {
998
944
  var _this$instance$getSel, _this$instance$getSel2;
999
- return (_this$instance$getSel = (_this$instance$getSel2 = this.instance.getSelectedRangeLast()) === null || _this$instance$getSel2 === void 0 ? void 0 : _this$instance$getSel2.isSingleCell()) !== null && _this$instance$getSel !== void 0 ? _this$instance$getSel : false;
945
+ return (_this$instance$getSel = (_this$instance$getSel2 = this.instance.getSelectedRangeLast()) === null || _this$instance$getSel2 === void 0 ? void 0 : _this$instance$getSel2.isSingle()) !== null && _this$instance$getSel !== void 0 ? _this$instance$getSel : false;
1000
946
  }
1001
947
 
1002
948
  /**
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- /**
5
- * Default border corner style.
6
- *
7
- * @type {object}
8
- */
9
- const CORNER_DEFAULT_STYLE = Object.freeze({
10
- width: '6px',
11
- height: '6px',
12
- borderWidth: '1px',
13
- borderStyle: 'solid',
14
- borderColor: '#FFF'
15
- });
16
- exports.CORNER_DEFAULT_STYLE = CORNER_DEFAULT_STYLE;
@@ -1,12 +0,0 @@
1
- /**
2
- * Default border corner style.
3
- *
4
- * @type {object}
5
- */
6
- export const CORNER_DEFAULT_STYLE = Object.freeze({
7
- width: '6px',
8
- height: '6px',
9
- borderWidth: '1px',
10
- borderStyle: 'solid',
11
- borderColor: '#FFF'
12
- });
@@ -1,62 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- /**
5
- * Selection type that is visible only if the row or column header is clicked. If that happened
6
- * all row or column header layers are highlighted.
7
- *
8
- * @type {string}
9
- */
10
- const ACTIVE_HEADER_TYPE = 'active-header';
11
- /**
12
- * Selection type that is visible only if the a cell or cells are clicked. If that happened
13
- * only the most closest to the cells row or column header is highlighted.
14
- *
15
- * @type {string}
16
- */
17
- exports.ACTIVE_HEADER_TYPE = ACTIVE_HEADER_TYPE;
18
- const HEADER_TYPE = 'header';
19
- /**
20
- * Selection type that is visible when a cell or cells are clicked. The selected cells are
21
- * highlighted.
22
- *
23
- * @type {string}
24
- */
25
- exports.HEADER_TYPE = HEADER_TYPE;
26
- const AREA_TYPE = 'area';
27
- /**
28
- * Selection type defines a cell that follows the user (keyboard navigation).
29
- *
30
- * @type {string}
31
- */
32
- exports.AREA_TYPE = AREA_TYPE;
33
- const FOCUS_TYPE = 'focus';
34
- /**
35
- * Selection type defines borders for the autofill functionality.
36
- *
37
- * @type {string}
38
- */
39
- exports.FOCUS_TYPE = FOCUS_TYPE;
40
- const FILL_TYPE = 'fill';
41
- /**
42
- * Selection type defines highlights for the `currentRowClassName` option.
43
- *
44
- * @type {string}
45
- */
46
- exports.FILL_TYPE = FILL_TYPE;
47
- const ROW_TYPE = 'row';
48
- /**
49
- * Selection type defines highlights for the `currentColumnClassName` option.
50
- *
51
- * @type {string}
52
- */
53
- exports.ROW_TYPE = ROW_TYPE;
54
- const COLUMN_TYPE = 'column';
55
- /**
56
- * Selection type defines highlights managed by the CustomBorders plugin.
57
- *
58
- * @type {string}
59
- */
60
- exports.COLUMN_TYPE = COLUMN_TYPE;
61
- const CUSTOM_SELECTION_TYPE = 'custom-selection';
62
- exports.CUSTOM_SELECTION_TYPE = CUSTOM_SELECTION_TYPE;
@@ -1,51 +0,0 @@
1
- /**
2
- * Selection type that is visible only if the row or column header is clicked. If that happened
3
- * all row or column header layers are highlighted.
4
- *
5
- * @type {string}
6
- */
7
- export const ACTIVE_HEADER_TYPE = 'active-header';
8
- /**
9
- * Selection type that is visible only if the a cell or cells are clicked. If that happened
10
- * only the most closest to the cells row or column header is highlighted.
11
- *
12
- * @type {string}
13
- */
14
- export const HEADER_TYPE = 'header';
15
- /**
16
- * Selection type that is visible when a cell or cells are clicked. The selected cells are
17
- * highlighted.
18
- *
19
- * @type {string}
20
- */
21
- export const AREA_TYPE = 'area';
22
- /**
23
- * Selection type defines a cell that follows the user (keyboard navigation).
24
- *
25
- * @type {string}
26
- */
27
- export const FOCUS_TYPE = 'focus';
28
- /**
29
- * Selection type defines borders for the autofill functionality.
30
- *
31
- * @type {string}
32
- */
33
- export const FILL_TYPE = 'fill';
34
- /**
35
- * Selection type defines highlights for the `currentRowClassName` option.
36
- *
37
- * @type {string}
38
- */
39
- export const ROW_TYPE = 'row';
40
- /**
41
- * Selection type defines highlights for the `currentColumnClassName` option.
42
- *
43
- * @type {string}
44
- */
45
- export const COLUMN_TYPE = 'column';
46
- /**
47
- * Selection type defines highlights managed by the CustomBorders plugin.
48
- *
49
- * @type {string}
50
- */
51
- export const CUSTOM_SELECTION_TYPE = 'custom-selection';
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- var _exportNames = {
5
- SelectionManager: true,
6
- Selection: true
7
- };
8
- var _selection = _interopRequireDefault(require("./selection"));
9
- exports.Selection = _selection.default;
10
- var _constants = require("./constants");
11
- Object.keys(_constants).forEach(function (key) {
12
- if (key === "default" || key === "__esModule") return;
13
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
14
- if (key in exports && exports[key] === _constants[key]) return;
15
- exports[key] = _constants[key];
16
- });
17
- var _constants2 = require("./border/constants");
18
- Object.keys(_constants2).forEach(function (key) {
19
- if (key === "default" || key === "__esModule") return;
20
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
21
- if (key in exports && exports[key] === _constants2[key]) return;
22
- exports[key] = _constants2[key];
23
- });
24
- var _manager = require("./manager");
25
- exports.SelectionManager = _manager.SelectionManager;
26
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -1,5 +0,0 @@
1
- import Selection from "./selection.mjs";
2
- export * from "./constants.mjs";
3
- export * from "./border/constants.mjs";
4
- export { SelectionManager } from "./manager.mjs";
5
- export { Selection };