handsontable 0.0.0-next-b66c79f-20230713 → 0.0.0-next-08765b9-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 (373) hide show
  1. package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
  2. package/3rdparty/walkontable/src/cell/coords.js +87 -33
  3. package/3rdparty/walkontable/src/cell/coords.mjs +87 -33
  4. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  5. package/3rdparty/walkontable/src/cell/range.js +92 -46
  6. package/3rdparty/walkontable/src/cell/range.mjs +92 -46
  7. package/3rdparty/walkontable/src/core/_base.js +41 -33
  8. package/3rdparty/walkontable/src/core/_base.mjs +41 -33
  9. package/3rdparty/walkontable/src/core/clone.js +8 -5
  10. package/3rdparty/walkontable/src/core/clone.mjs +8 -5
  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 +9 -8
  14. package/3rdparty/walkontable/src/event.mjs +9 -8
  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 +11 -9
  20. package/3rdparty/walkontable/src/overlay/_base.mjs +11 -9
  21. package/3rdparty/walkontable/src/overlay/bottom.js +10 -8
  22. package/3rdparty/walkontable/src/overlay/bottom.mjs +10 -8
  23. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
  24. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
  25. package/3rdparty/walkontable/src/overlay/top.js +12 -14
  26. package/3rdparty/walkontable/src/overlay/top.mjs +12 -14
  27. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +16 -13
  28. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +16 -13
  29. package/3rdparty/walkontable/src/overlays.js +75 -80
  30. package/3rdparty/walkontable/src/overlays.mjs +75 -80
  31. package/3rdparty/walkontable/src/scroll.js +27 -24
  32. package/3rdparty/walkontable/src/scroll.mjs +27 -24
  33. package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
  34. package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
  35. package/3rdparty/walkontable/src/selection/border/constants.js +16 -0
  36. package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
  37. package/3rdparty/walkontable/src/selection/constants.js +62 -0
  38. package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
  39. package/3rdparty/walkontable/src/selection/index.js +26 -0
  40. package/3rdparty/walkontable/src/selection/index.mjs +5 -0
  41. package/3rdparty/walkontable/src/selection/manager.js +259 -0
  42. package/3rdparty/walkontable/src/selection/manager.mjs +254 -0
  43. package/3rdparty/walkontable/src/selection/scanner.js +270 -0
  44. package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
  45. package/3rdparty/walkontable/src/selection/selection.js +101 -0
  46. package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
  47. package/3rdparty/walkontable/src/settings.js +18 -17
  48. package/3rdparty/walkontable/src/settings.mjs +18 -17
  49. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
  50. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
  51. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
  52. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
  53. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
  54. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
  55. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
  56. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
  57. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
  58. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
  59. package/3rdparty/walkontable/src/table.js +48 -115
  60. package/3rdparty/walkontable/src/table.mjs +49 -116
  61. package/base.js +2 -2
  62. package/base.mjs +2 -2
  63. package/core/focusCatcher/focusDetector.js +58 -0
  64. package/core/focusCatcher/focusDetector.mjs +54 -0
  65. package/core/focusCatcher/index.js +142 -0
  66. package/core/focusCatcher/index.mjs +138 -0
  67. package/core/index.js +9 -0
  68. package/core/index.mjs +1 -0
  69. package/core.d.ts +6 -3
  70. package/core.js +181 -298
  71. package/core.mjs +181 -298
  72. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -1
  73. package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -1
  74. package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
  75. package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
  76. package/dataMap/metaManager/metaSchema.js +41 -0
  77. package/dataMap/metaManager/metaSchema.mjs +41 -0
  78. package/dataMap/metaManager/mods/dynamicCellMeta.js +3 -2
  79. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +3 -2
  80. package/dataMap/metaManager/utils.js +4 -2
  81. package/dataMap/metaManager/utils.mjs +4 -2
  82. package/dist/handsontable.css +19 -3
  83. package/dist/handsontable.full.css +19 -3
  84. package/dist/handsontable.full.js +10739 -7037
  85. package/dist/handsontable.full.min.css +3 -3
  86. package/dist/handsontable.full.min.js +25 -25
  87. package/dist/handsontable.js +24884 -21182
  88. package/dist/handsontable.min.css +3 -3
  89. package/dist/handsontable.min.js +19 -19
  90. package/editorManager.js +11 -75
  91. package/editorManager.mjs +11 -74
  92. package/editors/autocompleteEditor/autocompleteEditor.js +70 -67
  93. package/editors/autocompleteEditor/autocompleteEditor.mjs +70 -67
  94. package/editors/baseEditor/baseEditor.js +1 -1
  95. package/editors/baseEditor/baseEditor.mjs +1 -1
  96. package/editors/dateEditor/dateEditor.js +2 -1
  97. package/editors/dateEditor/dateEditor.mjs +2 -1
  98. package/editors/textEditor/textEditor.js +3 -11
  99. package/editors/textEditor/textEditor.mjs +4 -12
  100. package/helpers/mixed.js +1 -1
  101. package/helpers/mixed.mjs +1 -1
  102. package/helpers/number.d.ts +1 -0
  103. package/helpers/number.js +18 -0
  104. package/helpers/number.mjs +17 -0
  105. package/helpers/object.js +1 -0
  106. package/helpers/object.mjs +1 -0
  107. package/index.js +5 -5
  108. package/index.mjs +5 -5
  109. package/package.json +1 -1
  110. package/pluginHooks.d.ts +7 -1
  111. package/pluginHooks.js +106 -1
  112. package/pluginHooks.mjs +106 -1
  113. package/plugins/autoColumnSize/autoColumnSize.js +4 -1
  114. package/plugins/autoColumnSize/autoColumnSize.mjs +4 -1
  115. package/plugins/collapsibleColumns/collapsibleColumns.js +110 -40
  116. package/plugins/collapsibleColumns/collapsibleColumns.mjs +110 -40
  117. package/plugins/columnSorting/columnSorting.js +40 -1
  118. package/plugins/columnSorting/columnSorting.mjs +40 -3
  119. package/plugins/columnSorting/columnStatesManager.js +2 -1
  120. package/plugins/columnSorting/columnStatesManager.mjs +2 -1
  121. package/plugins/columnSorting/index.js +3 -1
  122. package/plugins/columnSorting/index.mjs +1 -1
  123. package/plugins/comments/commentEditor.js +1 -0
  124. package/plugins/comments/commentEditor.mjs +1 -0
  125. package/plugins/comments/comments.js +253 -191
  126. package/plugins/comments/comments.mjs +252 -192
  127. package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
  128. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  129. package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
  130. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
  131. package/plugins/comments/contextMenuItem/removeComment.js +38 -0
  132. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  133. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  134. package/plugins/contextMenu/contextMenu.js +72 -30
  135. package/plugins/contextMenu/contextMenu.mjs +73 -31
  136. package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
  137. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  138. package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
  139. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  140. package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
  141. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  142. package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
  143. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  144. package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
  145. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  146. package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
  147. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
  148. package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
  149. package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
  150. package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
  151. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  152. package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
  153. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  154. package/plugins/contextMenu/utils.js +28 -16
  155. package/plugins/contextMenu/utils.mjs +27 -15
  156. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  157. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  158. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  159. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  160. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  161. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  162. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  163. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  164. package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
  165. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  166. package/plugins/copyPaste/copyPaste.js +12 -6
  167. package/plugins/copyPaste/copyPaste.mjs +12 -6
  168. package/plugins/customBorders/customBorders.js +36 -29
  169. package/plugins/customBorders/customBorders.mjs +37 -30
  170. package/plugins/customBorders/utils.js +3 -3
  171. package/plugins/customBorders/utils.mjs +3 -3
  172. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  173. package/plugins/dropdownMenu/dropdownMenu.js +89 -32
  174. package/plugins/dropdownMenu/dropdownMenu.mjs +89 -32
  175. package/plugins/filters/conditionCollection.js +6 -5
  176. package/plugins/filters/conditionCollection.mjs +6 -5
  177. package/plugins/filters/filters.js +44 -21
  178. package/plugins/filters/filters.mjs +43 -20
  179. package/plugins/formulas/engine/register.js +3 -3
  180. package/plugins/formulas/engine/register.mjs +3 -3
  181. package/plugins/formulas/engine/settings.js +6 -3
  182. package/plugins/formulas/engine/settings.mjs +6 -3
  183. package/plugins/formulas/formulas.js +151 -143
  184. package/plugins/formulas/formulas.mjs +151 -143
  185. package/plugins/formulas/indexSyncer/axisSyncer.js +115 -79
  186. package/plugins/formulas/indexSyncer/axisSyncer.mjs +115 -79
  187. package/plugins/formulas/indexSyncer/index.js +100 -64
  188. package/plugins/formulas/indexSyncer/index.mjs +100 -64
  189. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -2
  190. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -2
  191. package/plugins/hiddenColumns/hiddenColumns.js +51 -34
  192. package/plugins/hiddenColumns/hiddenColumns.mjs +51 -34
  193. package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -2
  194. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -2
  195. package/plugins/hiddenRows/hiddenRows.js +50 -33
  196. package/plugins/hiddenRows/hiddenRows.mjs +50 -33
  197. package/plugins/manualRowResize/manualRowResize.js +2 -1
  198. package/plugins/manualRowResize/manualRowResize.mjs +2 -1
  199. package/plugins/mergeCells/mergeCells.js +6 -17
  200. package/plugins/mergeCells/mergeCells.mjs +6 -17
  201. package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
  202. package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
  203. package/plugins/nestedHeaders/nestedHeaders.js +209 -75
  204. package/plugins/nestedHeaders/nestedHeaders.mjs +208 -74
  205. package/plugins/nestedHeaders/stateManager/headersTree.js +58 -38
  206. package/plugins/nestedHeaders/stateManager/headersTree.mjs +58 -38
  207. package/plugins/nestedHeaders/stateManager/index.js +107 -49
  208. package/plugins/nestedHeaders/stateManager/index.mjs +105 -47
  209. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +1 -1
  210. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +1 -1
  211. package/plugins/nestedHeaders/stateManager/sourceSettings.js +57 -37
  212. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +57 -37
  213. package/plugins/nestedHeaders/utils/ghostTable.js +39 -35
  214. package/plugins/nestedHeaders/utils/ghostTable.mjs +39 -35
  215. package/plugins/nestedRows/data/dataManager.js +4 -2
  216. package/plugins/nestedRows/data/dataManager.mjs +4 -2
  217. package/plugins/nestedRows/nestedRows.js +41 -0
  218. package/plugins/nestedRows/nestedRows.mjs +41 -0
  219. package/plugins/persistentState/storage.js +1 -0
  220. package/plugins/persistentState/storage.mjs +1 -0
  221. package/plugins/undoRedo/undoRedo.js +2 -1
  222. package/plugins/undoRedo/undoRedo.mjs +2 -1
  223. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  224. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  225. package/selection/highlight/highlight.js +256 -71
  226. package/selection/highlight/highlight.mjs +250 -71
  227. package/selection/highlight/types/activeHeader.js +10 -8
  228. package/selection/highlight/types/activeHeader.mjs +10 -8
  229. package/selection/highlight/types/area.js +6 -18
  230. package/selection/highlight/types/area.mjs +6 -18
  231. package/selection/highlight/types/areaLayered.js +31 -0
  232. package/selection/highlight/types/areaLayered.mjs +26 -0
  233. package/selection/highlight/types/column.js +27 -0
  234. package/selection/highlight/types/column.mjs +22 -0
  235. package/selection/highlight/types/customSelection.js +7 -9
  236. package/selection/highlight/types/customSelection.mjs +7 -9
  237. package/selection/highlight/types/fill.js +5 -7
  238. package/selection/highlight/types/fill.mjs +5 -7
  239. package/selection/highlight/types/{cell.js → focus.js} +5 -7
  240. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  241. package/selection/highlight/types/header.js +9 -18
  242. package/selection/highlight/types/header.mjs +9 -18
  243. package/selection/highlight/types/row.js +27 -0
  244. package/selection/highlight/types/row.mjs +22 -0
  245. package/selection/highlight/visualSelection.js +41 -33
  246. package/selection/highlight/visualSelection.mjs +41 -33
  247. package/selection/index.js +4 -7
  248. package/selection/index.mjs +2 -3
  249. package/selection/mouseEventHandler.js +1 -1
  250. package/selection/mouseEventHandler.mjs +1 -1
  251. package/selection/range.js +8 -8
  252. package/selection/range.mjs +8 -8
  253. package/selection/selection.js +290 -154
  254. package/selection/selection.mjs +287 -153
  255. package/selection/transformation.js +232 -90
  256. package/selection/transformation.mjs +232 -90
  257. package/selection/utils.js +15 -21
  258. package/selection/utils.mjs +16 -21
  259. package/settings.d.ts +2 -0
  260. package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
  261. package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
  262. package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
  263. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  264. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  265. package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
  266. package/shortcutContexts/commands/editor/index.js +16 -0
  267. package/shortcutContexts/commands/editor/index.mjs +12 -0
  268. package/shortcutContexts/commands/editor/open.js +27 -0
  269. package/shortcutContexts/commands/editor/open.mjs +23 -0
  270. package/shortcutContexts/commands/emptySelectedCells.js +11 -0
  271. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  272. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  273. package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
  274. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
  275. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +17 -0
  276. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  277. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  278. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  279. package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
  280. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  281. package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
  282. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  283. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
  284. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
  285. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
  286. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
  287. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
  288. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
  289. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
  290. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
  291. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
  292. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
  293. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
  294. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
  295. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
  296. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  297. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
  298. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  299. package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
  300. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
  301. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +17 -0
  302. package/shortcutContexts/commands/index.js +35 -0
  303. package/shortcutContexts/commands/index.mjs +31 -0
  304. package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
  305. package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
  306. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +31 -0
  307. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +27 -0
  308. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  309. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  310. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
  311. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  312. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
  313. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  314. package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
  315. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  316. package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
  317. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  318. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
  319. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
  320. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
  321. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
  322. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
  323. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
  324. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
  325. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
  326. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
  327. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
  328. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
  329. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
  330. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
  331. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
  332. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
  333. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
  334. package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
  335. package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
  336. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +31 -0
  337. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +27 -0
  338. package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
  339. package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
  340. package/shortcutContexts/commands/scrollToFocusedCell.js +36 -0
  341. package/shortcutContexts/commands/scrollToFocusedCell.mjs +32 -0
  342. package/shortcutContexts/commands/selectAll.js +10 -0
  343. package/shortcutContexts/commands/selectAll.mjs +6 -0
  344. package/shortcutContexts/constants.js +13 -0
  345. package/shortcutContexts/constants.mjs +8 -0
  346. package/shortcutContexts/editor.js +25 -0
  347. package/shortcutContexts/editor.mjs +21 -0
  348. package/shortcutContexts/grid.js +163 -0
  349. package/shortcutContexts/grid.mjs +159 -0
  350. package/shortcutContexts/index.js +24 -0
  351. package/shortcutContexts/index.mjs +11 -0
  352. package/shortcuts/manager.js +2 -0
  353. package/shortcuts/manager.mjs +2 -0
  354. package/shortcuts/recorder.js +2 -2
  355. package/shortcuts/recorder.mjs +2 -2
  356. package/shortcuts/utils.js +19 -5
  357. package/shortcuts/utils.mjs +18 -4
  358. package/tableView.js +163 -91
  359. package/tableView.mjs +163 -91
  360. package/translations/changesObservable/observable.js +82 -54
  361. package/translations/changesObservable/observable.mjs +82 -54
  362. package/translations/changesObservable/observer.js +24 -11
  363. package/translations/changesObservable/observer.mjs +24 -11
  364. package/translations/maps/linkedPhysicalIndexToValueMap.js +14 -8
  365. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +14 -8
  366. package/utils/dataStructures/tree.js +21 -18
  367. package/utils/dataStructures/tree.mjs +21 -18
  368. package/3rdparty/walkontable/src/selection.js +0 -295
  369. package/3rdparty/walkontable/src/selection.mjs +0 -290
  370. package/selection/highlight/constants.js +0 -15
  371. package/selection/highlight/constants.mjs +0 -6
  372. package/selection/highlight/types/index.js +0 -35
  373. package/selection/highlight/types/index.mjs +0 -31
@@ -1,161 +1,303 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
4
5
  var _object = require("../helpers/object");
5
6
  var _localHooks = _interopRequireDefault(require("./../mixins/localHooks"));
6
7
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
9
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
10
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
11
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
12
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
13
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
14
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
15
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
16
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
7
17
  /**
8
18
  * The Transformation class implements algorithms for transforming coordinates based on current settings
9
- * passed to the Handsontable.
19
+ * passed to the Handsontable. The class performs the calculations based on the renderable indexes.
10
20
  *
11
21
  * Transformation is always applied relative to the current selection.
12
22
  *
23
+ * The class operates on a table size defined by the renderable indexes. If the `navigableHeaders`
24
+ * option is enabled, the table size is increased by the number of row and/or column headers.
25
+ * Because the headers are treated as cells as part of the table size (indexes always go from 0 to N),
26
+ * the algorithm can be written as simply as possible (without new if's that distinguish the headers
27
+ * logic).
28
+ *
13
29
  * @class Transformation
14
30
  * @util
15
31
  */
32
+ var _range = /*#__PURE__*/new WeakMap();
33
+ var _options = /*#__PURE__*/new WeakMap();
34
+ var _offset = /*#__PURE__*/new WeakMap();
35
+ var _setOffsetSize = /*#__PURE__*/new WeakSet();
36
+ var _clampCoords = /*#__PURE__*/new WeakSet();
37
+ var _getTableSize = /*#__PURE__*/new WeakSet();
38
+ var _visualToZeroBasedCoords = /*#__PURE__*/new WeakSet();
39
+ var _zeroBasedToVisualCoords = /*#__PURE__*/new WeakSet();
16
40
  class Transformation {
17
41
  constructor(range, options) {
42
+ /**
43
+ * Translates the zero-based coordinates to visual ones.
44
+ *
45
+ * @param {CellCoords} zeroBasedCoords The coordinates to process.
46
+ * @returns {CellCoords}
47
+ */
48
+ _classPrivateMethodInitSpec(this, _zeroBasedToVisualCoords);
49
+ /**
50
+ * Translates the visual coordinates to zero-based ones.
51
+ *
52
+ * @param {CellCoords} visualCoords The visual coords to process.
53
+ * @returns {{x: number, y: number}}
54
+ */
55
+ _classPrivateMethodInitSpec(this, _visualToZeroBasedCoords);
56
+ /**
57
+ * Gets the table size in number of rows with headers as "height" and number of columns with
58
+ * headers as "width".
59
+ *
60
+ * @returns {{width: number, height: number}}
61
+ */
62
+ _classPrivateMethodInitSpec(this, _getTableSize);
63
+ /**
64
+ * Clamps the coords to make sure they points to the cell (or header) in the table range.
65
+ *
66
+ * @param {CellCoords} zeroBasedCoords The coords object to clamp.
67
+ * @returns {{rowDir: 1|0|-1, colDir: 1|0|-1}}
68
+ */
69
+ _classPrivateMethodInitSpec(this, _clampCoords);
70
+ /**
71
+ * Sets the additional offset in table size that may occur when the `navigableHeaders` option
72
+ * is enabled.
73
+ *
74
+ * @param {{x: number, y: number}} offset Offset as x and y properties.
75
+ */
76
+ _classPrivateMethodInitSpec(this, _setOffsetSize);
18
77
  /**
19
78
  * Instance of the SelectionRange, holder for visual coordinates applied to the table.
20
79
  *
21
80
  * @type {SelectionRange}
22
81
  */
23
- this.range = range;
82
+ _classPrivateFieldInitSpec(this, _range, {
83
+ writable: true,
84
+ value: void 0
85
+ });
24
86
  /**
25
87
  * Additional options which define the state of the settings which can infer transformation and
26
88
  * give the possibility to translate indexes.
27
89
  *
28
90
  * @type {object}
29
91
  */
30
- this.options = options;
92
+ _classPrivateFieldInitSpec(this, _options, {
93
+ writable: true,
94
+ value: void 0
95
+ });
96
+ /**
97
+ * Increases the table size by applying the offsets. The option is used by the `navigableHeaders`
98
+ * option.
99
+ *
100
+ * @type {{ x: number, y: number }}
101
+ */
102
+ _classPrivateFieldInitSpec(this, _offset, {
103
+ writable: true,
104
+ value: {
105
+ x: 0,
106
+ y: 0
107
+ }
108
+ });
109
+ _classPrivateFieldSet(this, _range, range);
110
+ _classPrivateFieldSet(this, _options, options);
31
111
  }
32
112
 
33
113
  /**
34
- * Selects cell relative to current cell (if possible).
114
+ * Selects cell relative to the current cell (if possible).
35
115
  *
36
116
  * @param {number} rowDelta Rows number to move, value can be passed as negative number.
37
117
  * @param {number} colDelta Columns number to move, value can be passed as negative number.
38
- * @param {boolean} [force=false] If `true` the new rows/columns will be created if necessary. Otherwise, row/column will
118
+ * @param {boolean} [createMissingRecords=false] If `true` the new rows/columns will be created if necessary. Otherwise, row/column will
39
119
  * be created according to `minSpareRows/minSpareCols` settings of Handsontable.
40
120
  * @returns {CellCoords} Visual coordinates after transformation.
41
121
  */
42
122
  transformStart(rowDelta, colDelta) {
43
- let force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
44
- const delta = this.options.createCellCoords(rowDelta, colDelta);
45
- const highlightCoords = this.range.current().highlight;
46
- const {
47
- row: renderableRow,
48
- col: renderableColumn
49
- } = this.options.visualToRenderableCoords(highlightCoords);
50
- let visualCoords = highlightCoords;
123
+ let createMissingRecords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
124
+ _classPrivateMethodGet(this, _setOffsetSize, _setOffsetSize2).call(this, {
125
+ x: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countRowHeaders() : 0,
126
+ y: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countColHeaders() : 0
127
+ });
128
+ const delta = _classPrivateFieldGet(this, _options).createCellCoords(rowDelta, colDelta);
129
+ let visualCoords = _classPrivateFieldGet(this, _range).current().highlight;
130
+ const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(visualCoords);
51
131
  let rowTransformDir = 0;
52
132
  let colTransformDir = 0;
53
133
  this.runLocalHooks('beforeTransformStart', delta);
54
- if (renderableRow !== null && renderableColumn !== null) {
55
- let totalRows = this.options.countRows();
56
- let totalCols = this.options.countCols();
57
- const fixedRowsBottom = this.options.fixedRowsBottom();
58
- const minSpareRows = this.options.minSpareRows();
59
- const minSpareCols = this.options.minSpareCols();
60
- const autoWrapRow = this.options.autoWrapRow();
61
- const autoWrapCol = this.options.autoWrapCol();
62
- if (renderableRow + rowDelta > totalRows - 1) {
63
- if (force && minSpareRows > 0 && !(fixedRowsBottom && renderableRow >= totalRows - fixedRowsBottom - 1)) {
64
- this.runLocalHooks('insertRowRequire', totalRows);
65
- totalRows = this.options.countRows();
134
+ if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null) {
135
+ const {
136
+ width,
137
+ height
138
+ } = _classPrivateMethodGet(this, _getTableSize, _getTableSize2).call(this);
139
+ const {
140
+ x,
141
+ y
142
+ } = _classPrivateMethodGet(this, _visualToZeroBasedCoords, _visualToZeroBasedCoords2).call(this, visualCoords);
143
+ const fixedRowsBottom = _classPrivateFieldGet(this, _options).fixedRowsBottom();
144
+ const minSpareRows = _classPrivateFieldGet(this, _options).minSpareRows();
145
+ const minSpareCols = _classPrivateFieldGet(this, _options).minSpareCols();
146
+ const autoWrapRow = _classPrivateFieldGet(this, _options).autoWrapRow();
147
+ const autoWrapCol = _classPrivateFieldGet(this, _options).autoWrapCol();
148
+ const rawCoords = {
149
+ row: y + delta.row,
150
+ col: x + delta.col
151
+ };
152
+ if (rawCoords.row >= height) {
153
+ if (createMissingRecords && minSpareRows > 0 && fixedRowsBottom === 0) {
154
+ this.runLocalHooks('insertRowRequire', _classPrivateFieldGet(this, _options).countRenderableRows());
66
155
  } else if (autoWrapCol) {
67
- delta.row = 1 - totalRows;
68
- delta.col = renderableColumn + delta.col === totalCols - 1 ? 1 - totalCols : 1;
156
+ const nextColumn = rawCoords.col + 1;
157
+ rawCoords.row = rawCoords.row - height;
158
+ rawCoords.col = nextColumn >= width ? nextColumn - width : nextColumn;
159
+ }
160
+ } else if (rawCoords.row < 0) {
161
+ if (autoWrapCol) {
162
+ const previousColumn = rawCoords.col - 1;
163
+ rawCoords.row = height + rawCoords.row;
164
+ rawCoords.col = previousColumn < 0 ? width + previousColumn : previousColumn;
69
165
  }
70
- } else if (autoWrapCol && renderableRow + delta.row < 0 && renderableColumn + delta.col >= 0) {
71
- delta.row = totalRows - 1;
72
- delta.col = renderableColumn + delta.col === 0 ? totalCols - 1 : -1;
73
166
  }
74
- if (renderableColumn + delta.col > totalCols - 1) {
75
- if (force && minSpareCols > 0) {
76
- this.runLocalHooks('insertColRequire', totalCols);
77
- totalCols = this.options.countCols();
167
+ if (rawCoords.col >= width) {
168
+ if (createMissingRecords && minSpareCols > 0) {
169
+ this.runLocalHooks('insertColRequire', _classPrivateFieldGet(this, _options).countRenderableColumns());
78
170
  } else if (autoWrapRow) {
79
- delta.row = renderableRow + delta.row === totalRows - 1 ? 1 - totalRows : 1;
80
- delta.col = 1 - totalCols;
171
+ const nextRow = rawCoords.row + 1;
172
+ rawCoords.row = nextRow >= height ? nextRow - height : nextRow;
173
+ rawCoords.col = rawCoords.col - width;
174
+ }
175
+ } else if (rawCoords.col < 0) {
176
+ if (autoWrapRow) {
177
+ const previousRow = rawCoords.row - 1;
178
+ rawCoords.row = previousRow < 0 ? height + previousRow : previousRow;
179
+ rawCoords.col = width + rawCoords.col;
81
180
  }
82
- } else if (autoWrapRow && renderableColumn + delta.col < 0 && renderableRow + delta.row >= 0) {
83
- delta.row = renderableRow + delta.row === 0 ? totalRows - 1 : -1;
84
- delta.col = totalCols - 1;
85
- }
86
- const coords = this.options.createCellCoords(renderableRow + delta.row, renderableColumn + delta.col);
87
- rowTransformDir = 0;
88
- colTransformDir = 0;
89
- if (coords.row < 0) {
90
- rowTransformDir = -1;
91
- coords.row = 0;
92
- } else if (coords.row > 0 && coords.row >= totalRows) {
93
- rowTransformDir = 1;
94
- coords.row = totalRows - 1;
95
- }
96
- if (coords.col < 0) {
97
- colTransformDir = -1;
98
- coords.col = 0;
99
- } else if (coords.col > 0 && coords.col >= totalCols) {
100
- colTransformDir = 1;
101
- coords.col = totalCols - 1;
102
181
  }
103
- visualCoords = this.options.renderableToVisualCoords(coords);
182
+ const coords = _classPrivateFieldGet(this, _options).createCellCoords(rawCoords.row, rawCoords.col);
183
+ const {
184
+ rowDir,
185
+ colDir
186
+ } = _classPrivateMethodGet(this, _clampCoords, _clampCoords2).call(this, coords);
187
+ rowTransformDir = rowDir;
188
+ colTransformDir = colDir;
189
+ visualCoords = _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, coords);
104
190
  }
105
191
  this.runLocalHooks('afterTransformStart', visualCoords, rowTransformDir, colTransformDir);
106
192
  return visualCoords;
107
193
  }
108
194
 
109
195
  /**
110
- * Sets selection end cell relative to current selection end cell (if possible).
196
+ * Sets selection end cell relative to the current selection end cell (if possible).
111
197
  *
112
198
  * @param {number} rowDelta Rows number to move, value can be passed as negative number.
113
199
  * @param {number} colDelta Columns number to move, value can be passed as negative number.
114
200
  * @returns {CellCoords} Visual coordinates after transformation.
115
201
  */
116
202
  transformEnd(rowDelta, colDelta) {
117
- const delta = this.options.createCellCoords(rowDelta, colDelta);
118
- const cellRange = this.range.current();
119
- let visualCoords = cellRange.to;
203
+ _classPrivateMethodGet(this, _setOffsetSize, _setOffsetSize2).call(this, {
204
+ x: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countRowHeaders() : 0,
205
+ y: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countColHeaders() : 0
206
+ });
207
+ const delta = _classPrivateFieldGet(this, _options).createCellCoords(rowDelta, colDelta);
208
+ const cellRange = _classPrivateFieldGet(this, _range).current();
209
+ const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(cellRange.highlight);
210
+ const visualCoords = cellRange.to.clone();
120
211
  let rowTransformDir = 0;
121
212
  let colTransformDir = 0;
122
213
  this.runLocalHooks('beforeTransformEnd', delta);
123
- const {
124
- row: rowHighlight,
125
- col: colHighlight
126
- } = this.options.visualToRenderableCoords(cellRange.highlight);
127
-
128
- // We have highlight (start point for the selection).
129
- if (rowHighlight !== null && colHighlight !== null) {
130
- const totalRows = this.options.countRows();
131
- const totalCols = this.options.countCols();
214
+ if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null) {
132
215
  const {
133
- row: rowTo,
134
- col: colTo
135
- } = this.options.visualToRenderableCoords(cellRange.to);
136
- const coords = this.options.createCellCoords(rowTo + delta.row, colTo + delta.col);
137
- rowTransformDir = 0;
138
- colTransformDir = 0;
139
- if (coords.row < 0) {
140
- rowTransformDir = -1;
141
- coords.row = 0;
142
- } else if (coords.row > 0 && coords.row >= totalRows) {
143
- rowTransformDir = 1;
144
- coords.row = totalRows - 1;
145
- }
146
- if (coords.col < 0) {
147
- colTransformDir = -1;
148
- coords.col = 0;
149
- } else if (coords.col > 0 && coords.col >= totalCols) {
150
- colTransformDir = 1;
151
- coords.col = totalCols - 1;
216
+ x,
217
+ y
218
+ } = _classPrivateMethodGet(this, _visualToZeroBasedCoords, _visualToZeroBasedCoords2).call(this, cellRange.to);
219
+ const rawCoords = {
220
+ row: y + delta.row,
221
+ col: x + delta.col
222
+ };
223
+ const coords = _classPrivateFieldGet(this, _options).createCellCoords(rawCoords.row, rawCoords.col);
224
+ const {
225
+ rowDir,
226
+ colDir
227
+ } = _classPrivateMethodGet(this, _clampCoords, _clampCoords2).call(this, coords);
228
+ rowTransformDir = rowDir;
229
+ colTransformDir = colDir;
230
+ const newVisualCoords = _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, coords);
231
+ if (delta.row === 0 && delta.col !== 0) {
232
+ visualCoords.col = newVisualCoords.col;
233
+ } else if (delta.row !== 0 && delta.col === 0) {
234
+ visualCoords.row = newVisualCoords.row;
235
+ } else {
236
+ visualCoords.row = newVisualCoords.row;
237
+ visualCoords.col = newVisualCoords.col;
152
238
  }
153
- visualCoords = this.options.renderableToVisualCoords(coords);
154
239
  }
155
240
  this.runLocalHooks('afterTransformEnd', visualCoords, rowTransformDir, colTransformDir);
156
241
  return visualCoords;
157
242
  }
158
243
  }
244
+ function _setOffsetSize2(_ref) {
245
+ let {
246
+ x,
247
+ y
248
+ } = _ref;
249
+ _classPrivateFieldSet(this, _offset, {
250
+ x,
251
+ y
252
+ });
253
+ }
254
+ function _clampCoords2(zeroBasedCoords) {
255
+ const {
256
+ width,
257
+ height
258
+ } = _classPrivateMethodGet(this, _getTableSize, _getTableSize2).call(this);
259
+ let rowDir = 0;
260
+ let colDir = 0;
261
+ if (zeroBasedCoords.row < 0) {
262
+ rowDir = -1;
263
+ zeroBasedCoords.row = 0;
264
+ } else if (zeroBasedCoords.row > 0 && zeroBasedCoords.row >= height) {
265
+ rowDir = 1;
266
+ zeroBasedCoords.row = height - 1;
267
+ }
268
+ if (zeroBasedCoords.col < 0) {
269
+ colDir = -1;
270
+ zeroBasedCoords.col = 0;
271
+ } else if (zeroBasedCoords.col > 0 && zeroBasedCoords.col >= width) {
272
+ colDir = 1;
273
+ zeroBasedCoords.col = width - 1;
274
+ }
275
+ return {
276
+ rowDir,
277
+ colDir
278
+ };
279
+ }
280
+ function _getTableSize2() {
281
+ return {
282
+ width: _classPrivateFieldGet(this, _offset).x + _classPrivateFieldGet(this, _options).countRenderableColumns(),
283
+ height: _classPrivateFieldGet(this, _offset).y + _classPrivateFieldGet(this, _options).countRenderableRows()
284
+ };
285
+ }
286
+ function _visualToZeroBasedCoords2(visualCoords) {
287
+ const {
288
+ row,
289
+ col
290
+ } = _classPrivateFieldGet(this, _options).visualToRenderableCoords(visualCoords);
291
+ return {
292
+ x: _classPrivateFieldGet(this, _offset).x + col,
293
+ y: _classPrivateFieldGet(this, _offset).y + row
294
+ };
295
+ }
296
+ function _zeroBasedToVisualCoords2(zeroBasedCoords) {
297
+ zeroBasedCoords.col = zeroBasedCoords.col - _classPrivateFieldGet(this, _offset).x;
298
+ zeroBasedCoords.row = zeroBasedCoords.row - _classPrivateFieldGet(this, _offset).y;
299
+ return _classPrivateFieldGet(this, _options).renderableToVisualCoords(zeroBasedCoords);
300
+ }
159
301
  (0, _object.mixin)(Transformation, _localHooks.default);
160
302
  var _default = Transformation;
161
303
  exports.default = _default;