handsontable 0.0.0-next-b0a4ea2-20231024 → 0.0.0-next-9059914-20231025

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 (446) 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 +10 -12
  16. package/3rdparty/walkontable/src/event.mjs +10 -12
  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 +2 -13
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +3 -14
  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/renderer/cells.js +0 -10
  28. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -11
  29. package/3rdparty/walkontable/src/renderer/columnHeaders.js +0 -10
  30. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +1 -11
  31. package/3rdparty/walkontable/src/renderer/rowHeaders.js +0 -5
  32. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +0 -5
  33. package/3rdparty/walkontable/src/renderer/rows.js +0 -13
  34. package/3rdparty/walkontable/src/renderer/rows.mjs +0 -13
  35. package/3rdparty/walkontable/src/renderer/table.js +0 -9
  36. package/3rdparty/walkontable/src/renderer/table.mjs +0 -9
  37. package/3rdparty/walkontable/src/scroll.js +0 -2
  38. package/3rdparty/walkontable/src/scroll.mjs +0 -2
  39. package/3rdparty/walkontable/src/selection.js +295 -0
  40. package/3rdparty/walkontable/src/selection.mjs +290 -0
  41. package/3rdparty/walkontable/src/settings.js +4 -13
  42. package/3rdparty/walkontable/src/settings.mjs +4 -13
  43. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
  44. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
  45. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
  46. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
  47. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
  48. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
  49. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
  50. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
  51. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
  52. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
  53. package/3rdparty/walkontable/src/table.js +78 -19
  54. package/3rdparty/walkontable/src/table.mjs +79 -20
  55. package/base.js +2 -2
  56. package/base.mjs +2 -2
  57. package/cellTypes/dateType/dateType.d.ts +3 -3
  58. package/cellTypes/dateType/dateType.js +2 -2
  59. package/cellTypes/dateType/dateType.mjs +2 -2
  60. package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
  61. package/cellTypes/handsontableType/handsontableType.js +2 -2
  62. package/cellTypes/handsontableType/handsontableType.mjs +2 -2
  63. package/cellTypes/index.d.ts +0 -3
  64. package/cellTypes/index.js +0 -4
  65. package/cellTypes/index.mjs +1 -3
  66. package/core.d.ts +4 -9
  67. package/core.js +327 -285
  68. package/core.mjs +327 -285
  69. package/dataMap/metaManager/metaSchema.js +0 -65
  70. package/dataMap/metaManager/metaSchema.mjs +0 -65
  71. package/dataMap/metaManager/mods/extendMetaProperties.js +1 -7
  72. package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -7
  73. package/dataMap/replaceData.js +0 -5
  74. package/dataMap/replaceData.mjs +0 -5
  75. package/dist/handsontable.css +15 -51
  76. package/dist/handsontable.full.css +15 -51
  77. package/dist/handsontable.full.js +8668 -14188
  78. package/dist/handsontable.full.min.css +7 -7
  79. package/dist/handsontable.full.min.js +136 -136
  80. package/dist/handsontable.js +22829 -28349
  81. package/dist/handsontable.min.css +6 -6
  82. package/dist/handsontable.min.js +24 -24
  83. package/dist/languages/all.js +2 -6
  84. package/dist/languages/all.min.js +1 -1
  85. package/dist/languages/en-US.js +1 -3
  86. package/dist/languages/en-US.min.js +1 -1
  87. package/dist/languages/pl-PL.js +1 -3
  88. package/dist/languages/pl-PL.min.js +1 -1
  89. package/editorManager.js +87 -15
  90. package/editorManager.mjs +87 -16
  91. package/editors/autocompleteEditor/autocompleteEditor.js +2 -53
  92. package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -54
  93. package/editors/dateEditor/dateEditor.js +7 -26
  94. package/editors/dateEditor/dateEditor.mjs +8 -27
  95. package/editors/handsontableEditor/handsontableEditor.js +1 -9
  96. package/editors/handsontableEditor/handsontableEditor.mjs +2 -10
  97. package/editors/textEditor/textEditor.js +27 -19
  98. package/editors/textEditor/textEditor.mjs +30 -22
  99. package/helpers/dom/element.js +9 -188
  100. package/helpers/dom/element.mjs +9 -182
  101. package/helpers/mixed.js +1 -1
  102. package/helpers/mixed.mjs +1 -1
  103. package/helpers/number.d.ts +0 -1
  104. package/helpers/number.js +0 -18
  105. package/helpers/number.mjs +0 -17
  106. package/i18n/constants.js +1 -7
  107. package/i18n/constants.mjs +1 -4
  108. package/i18n/languages/en-US.js +1 -3
  109. package/i18n/languages/en-US.mjs +1 -3
  110. package/i18n/languages/pl-PL.js +1 -3
  111. package/i18n/languages/pl-PL.mjs +1 -3
  112. package/languages/all.js +2 -6
  113. package/languages/en-US.js +1 -3
  114. package/languages/en-US.mjs +1 -3
  115. package/languages/index.js +2 -6
  116. package/languages/pl-PL.js +1 -3
  117. package/languages/pl-PL.mjs +1 -3
  118. package/package.json +99 -116
  119. package/pluginHooks.d.ts +1 -12
  120. package/pluginHooks.js +1 -152
  121. package/pluginHooks.mjs +1 -152
  122. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -74
  123. package/plugins/collapsibleColumns/collapsibleColumns.mjs +5 -75
  124. package/plugins/columnSorting/columnSorting.js +0 -43
  125. package/plugins/columnSorting/columnSorting.mjs +3 -44
  126. package/plugins/columnSorting/index.js +1 -3
  127. package/plugins/columnSorting/index.mjs +1 -1
  128. package/plugins/comments/commentEditor.js +0 -1
  129. package/plugins/comments/commentEditor.mjs +0 -1
  130. package/plugins/comments/comments.js +189 -252
  131. package/plugins/comments/comments.mjs +190 -251
  132. package/plugins/contextMenu/commandExecutor.js +3 -2
  133. package/plugins/contextMenu/commandExecutor.mjs +3 -2
  134. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  135. package/plugins/contextMenu/contextMenu.js +36 -75
  136. package/plugins/contextMenu/contextMenu.mjs +35 -74
  137. package/plugins/contextMenu/{menu/cursor.mjs → cursor.js} +10 -4
  138. package/plugins/contextMenu/{menu/cursor.js → cursor.mjs} +4 -6
  139. package/plugins/contextMenu/itemsFactory.js +3 -2
  140. package/plugins/contextMenu/itemsFactory.mjs +4 -3
  141. package/plugins/contextMenu/{menu/menu.js → menu.js} +421 -145
  142. package/plugins/contextMenu/{menu/menu.mjs → menu.mjs} +422 -146
  143. package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
  144. package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
  145. package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
  146. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
  147. package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
  148. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
  149. package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
  150. package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
  151. package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
  152. package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
  153. package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
  154. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
  155. package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
  156. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
  157. package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
  158. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
  159. package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
  160. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
  161. package/plugins/contextMenu/{predefinedItems/index.js → predefinedItems.js} +14 -14
  162. package/plugins/contextMenu/predefinedItems.mjs +68 -0
  163. package/plugins/contextMenu/utils.js +151 -35
  164. package/plugins/contextMenu/utils.mjs +144 -35
  165. package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
  166. package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
  167. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
  168. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
  169. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
  170. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
  171. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
  172. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
  173. package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
  174. package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
  175. package/plugins/copyPaste/copyPaste.js +78 -127
  176. package/plugins/copyPaste/copyPaste.mjs +79 -128
  177. package/plugins/copyPaste/focusableElement.js +186 -0
  178. package/plugins/copyPaste/focusableElement.mjs +180 -0
  179. package/plugins/customBorders/customBorders.js +20 -23
  180. package/plugins/customBorders/customBorders.mjs +21 -24
  181. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  182. package/plugins/dropdownMenu/dropdownMenu.js +40 -127
  183. package/plugins/dropdownMenu/dropdownMenu.mjs +39 -126
  184. package/plugins/filters/component/_base.js +8 -23
  185. package/plugins/filters/component/_base.mjs +8 -23
  186. package/plugins/filters/component/actionBar.js +27 -29
  187. package/plugins/filters/component/actionBar.mjs +23 -26
  188. package/plugins/filters/component/condition.js +59 -46
  189. package/plugins/filters/component/condition.mjs +52 -40
  190. package/plugins/filters/component/operators.js +22 -21
  191. package/plugins/filters/component/operators.mjs +18 -18
  192. package/plugins/filters/component/value.js +26 -35
  193. package/plugins/filters/component/value.mjs +22 -32
  194. package/plugins/filters/constants.mjs +1 -1
  195. package/plugins/filters/filters.js +62 -106
  196. package/plugins/filters/filters.mjs +55 -99
  197. package/plugins/filters/ui/_base.js +13 -35
  198. package/plugins/filters/ui/_base.mjs +13 -35
  199. package/plugins/filters/ui/input.js +32 -43
  200. package/plugins/filters/ui/input.mjs +30 -42
  201. package/plugins/filters/ui/link.js +12 -44
  202. package/plugins/filters/ui/link.mjs +11 -44
  203. package/plugins/filters/ui/multipleSelect.js +129 -234
  204. package/plugins/filters/ui/multipleSelect.mjs +127 -232
  205. package/plugins/filters/ui/radioInput.js +18 -42
  206. package/plugins/filters/ui/radioInput.mjs +17 -42
  207. package/plugins/filters/ui/select.js +75 -144
  208. package/plugins/filters/ui/select.mjs +72 -142
  209. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
  210. package/plugins/hiddenRows/hiddenRows.mjs +1 -1
  211. package/plugins/manualColumnMove/manualColumnMove.js +1 -3
  212. package/plugins/manualColumnMove/manualColumnMove.mjs +1 -3
  213. package/plugins/mergeCells/mergeCells.js +16 -5
  214. package/plugins/mergeCells/mergeCells.mjs +16 -5
  215. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
  216. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
  217. package/plugins/nestedHeaders/nestedHeaders.js +10 -240
  218. package/plugins/nestedHeaders/nestedHeaders.mjs +11 -241
  219. package/plugins/nestedHeaders/stateManager/index.js +3 -102
  220. package/plugins/nestedHeaders/stateManager/index.mjs +3 -102
  221. package/plugins/nestedRows/nestedRows.js +0 -41
  222. package/plugins/nestedRows/nestedRows.mjs +0 -41
  223. package/plugins/nestedRows/ui/headers.js +0 -11
  224. package/plugins/nestedRows/ui/headers.mjs +1 -12
  225. package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -8
  226. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +0 -8
  227. package/renderers/baseRenderer/baseRenderer.js +0 -17
  228. package/renderers/baseRenderer/baseRenderer.mjs +1 -18
  229. package/renderers/checkboxRenderer/checkboxRenderer.js +4 -9
  230. package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -9
  231. package/renderers/index.d.ts +0 -9
  232. package/selection/highlight/constants.js +15 -0
  233. package/selection/highlight/constants.mjs +6 -0
  234. package/selection/highlight/highlight.js +71 -256
  235. package/selection/highlight/highlight.mjs +71 -250
  236. package/selection/highlight/types/activeHeader.js +8 -10
  237. package/selection/highlight/types/activeHeader.mjs +8 -10
  238. package/selection/highlight/types/area.js +18 -6
  239. package/selection/highlight/types/area.mjs +18 -6
  240. package/selection/highlight/types/{focus.js → cell.js} +7 -5
  241. package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
  242. package/selection/highlight/types/customSelection.js +9 -7
  243. package/selection/highlight/types/customSelection.mjs +9 -7
  244. package/selection/highlight/types/fill.js +7 -5
  245. package/selection/highlight/types/fill.mjs +7 -5
  246. package/selection/highlight/types/header.js +18 -9
  247. package/selection/highlight/types/header.mjs +18 -9
  248. package/selection/highlight/types/index.js +35 -0
  249. package/selection/highlight/types/index.mjs +31 -0
  250. package/selection/highlight/visualSelection.js +27 -31
  251. package/selection/highlight/visualSelection.mjs +27 -31
  252. package/selection/index.js +7 -4
  253. package/selection/index.mjs +3 -2
  254. package/selection/mouseEventHandler.js +1 -7
  255. package/selection/mouseEventHandler.mjs +1 -7
  256. package/selection/range.js +8 -8
  257. package/selection/range.mjs +8 -8
  258. package/selection/selection.js +152 -321
  259. package/selection/selection.mjs +151 -318
  260. package/selection/transformation.js +90 -232
  261. package/selection/transformation.mjs +90 -232
  262. package/selection/utils.js +21 -15
  263. package/selection/utils.mjs +21 -16
  264. package/settings.d.ts +0 -4
  265. package/shortcuts/context.js +4 -23
  266. package/shortcuts/context.mjs +5 -23
  267. package/shortcuts/manager.js +7 -25
  268. package/shortcuts/manager.mjs +7 -26
  269. package/shortcuts/recorder.js +3 -3
  270. package/shortcuts/recorder.mjs +3 -3
  271. package/shortcuts/utils.js +5 -19
  272. package/shortcuts/utils.mjs +4 -18
  273. package/tableView.js +13 -111
  274. package/tableView.mjs +14 -112
  275. package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
  276. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  277. package/3rdparty/walkontable/src/selection/constants.js +0 -62
  278. package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
  279. package/3rdparty/walkontable/src/selection/index.js +0 -26
  280. package/3rdparty/walkontable/src/selection/index.mjs +0 -5
  281. package/3rdparty/walkontable/src/selection/manager.js +0 -274
  282. package/3rdparty/walkontable/src/selection/manager.mjs +0 -269
  283. package/3rdparty/walkontable/src/selection/scanner.js +0 -270
  284. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
  285. package/3rdparty/walkontable/src/selection/selection.js +0 -101
  286. package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
  287. package/cellTypes/selectType/index.d.ts +0 -1
  288. package/cellTypes/selectType/index.js +0 -6
  289. package/cellTypes/selectType/index.mjs +0 -1
  290. package/cellTypes/selectType/selectType.d.ts +0 -14
  291. package/cellTypes/selectType/selectType.js +0 -13
  292. package/cellTypes/selectType/selectType.mjs +0 -8
  293. package/core/focusCatcher/focusDetector.js +0 -63
  294. package/core/focusCatcher/focusDetector.mjs +0 -59
  295. package/core/focusCatcher/index.js +0 -142
  296. package/core/focusCatcher/index.mjs +0 -138
  297. package/core/index.js +0 -9
  298. package/core/index.mjs +0 -1
  299. package/focusManager.d.ts +0 -12
  300. package/focusManager.js +0 -265
  301. package/focusManager.mjs +0 -261
  302. package/helpers/a11y.js +0 -79
  303. package/helpers/a11y.mjs +0 -38
  304. package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
  305. package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
  306. package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
  307. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
  308. package/plugins/comments/contextMenuItem/removeComment.js +0 -38
  309. package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
  310. package/plugins/contextMenu/menu/defaultShortcutsList.js +0 -88
  311. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +0 -84
  312. package/plugins/contextMenu/menu/index.js +0 -9
  313. package/plugins/contextMenu/menu/index.mjs +0 -1
  314. package/plugins/contextMenu/menu/menuItemRenderer.js +0 -58
  315. package/plugins/contextMenu/menu/menuItemRenderer.mjs +0 -54
  316. package/plugins/contextMenu/menu/navigator.js +0 -27
  317. package/plugins/contextMenu/menu/navigator.mjs +0 -23
  318. package/plugins/contextMenu/menu/positioner.js +0 -213
  319. package/plugins/contextMenu/menu/positioner.mjs +0 -209
  320. package/plugins/contextMenu/menu/shortcuts.js +0 -114
  321. package/plugins/contextMenu/menu/shortcuts.mjs +0 -110
  322. package/plugins/contextMenu/menu/utils.js +0 -177
  323. package/plugins/contextMenu/menu/utils.mjs +0 -163
  324. package/plugins/contextMenu/predefinedItems/index.mjs +0 -68
  325. package/plugins/filters/menu/focusController.js +0 -123
  326. package/plugins/filters/menu/focusController.mjs +0 -119
  327. package/plugins/filters/menu/focusNavigator.js +0 -30
  328. package/plugins/filters/menu/focusNavigator.mjs +0 -26
  329. package/renderers/dateRenderer/dateRenderer.d.ts +0 -5
  330. package/renderers/dateRenderer/dateRenderer.js +0 -29
  331. package/renderers/dateRenderer/dateRenderer.mjs +0 -24
  332. package/renderers/dateRenderer/index.d.ts +0 -1
  333. package/renderers/dateRenderer/index.js +0 -6
  334. package/renderers/dateRenderer/index.mjs +0 -1
  335. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +0 -5
  336. package/renderers/handsontableRenderer/handsontableRenderer.js +0 -29
  337. package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -24
  338. package/renderers/handsontableRenderer/index.d.ts +0 -1
  339. package/renderers/handsontableRenderer/index.js +0 -6
  340. package/renderers/handsontableRenderer/index.mjs +0 -1
  341. package/renderers/selectRenderer/index.d.ts +0 -1
  342. package/renderers/selectRenderer/index.js +0 -6
  343. package/renderers/selectRenderer/index.mjs +0 -1
  344. package/renderers/selectRenderer/selectRenderer.d.ts +0 -5
  345. package/renderers/selectRenderer/selectRenderer.js +0 -27
  346. package/renderers/selectRenderer/selectRenderer.mjs +0 -22
  347. package/selection/highlight/types/areaLayered.js +0 -31
  348. package/selection/highlight/types/areaLayered.mjs +0 -26
  349. package/selection/highlight/types/column.js +0 -27
  350. package/selection/highlight/types/column.mjs +0 -22
  351. package/selection/highlight/types/row.js +0 -27
  352. package/selection/highlight/types/row.mjs +0 -22
  353. package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
  354. package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
  355. package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
  356. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
  357. package/shortcutContexts/commands/editor/fastOpen.js +0 -16
  358. package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
  359. package/shortcutContexts/commands/editor/index.js +0 -16
  360. package/shortcutContexts/commands/editor/index.mjs +0 -12
  361. package/shortcutContexts/commands/editor/open.js +0 -27
  362. package/shortcutContexts/commands/editor/open.mjs +0 -23
  363. package/shortcutContexts/commands/emptySelectedCells.js +0 -11
  364. package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
  365. package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
  366. package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
  367. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -25
  368. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -21
  369. package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
  370. package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
  371. package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
  372. package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
  373. package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
  374. package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
  375. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
  376. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
  377. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
  378. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
  379. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
  380. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
  381. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
  382. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
  383. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
  384. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
  385. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
  386. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
  387. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
  388. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
  389. package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
  390. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
  391. package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
  392. package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
  393. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -25
  394. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -21
  395. package/shortcutContexts/commands/index.js +0 -35
  396. package/shortcutContexts/commands/index.mjs +0 -31
  397. package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
  398. package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
  399. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -33
  400. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -29
  401. package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
  402. package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
  403. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
  404. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
  405. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
  406. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
  407. package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
  408. package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
  409. package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
  410. package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
  411. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
  412. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
  413. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
  414. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
  415. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
  416. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
  417. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
  418. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
  419. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
  420. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
  421. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
  422. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
  423. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
  424. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
  425. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
  426. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
  427. package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
  428. package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
  429. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -33
  430. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -29
  431. package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
  432. package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
  433. package/shortcutContexts/commands/scrollToFocusedCell.js +0 -35
  434. package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -31
  435. package/shortcutContexts/commands/selectAll.js +0 -12
  436. package/shortcutContexts/commands/selectAll.mjs +0 -8
  437. package/shortcutContexts/constants.js +0 -13
  438. package/shortcutContexts/constants.mjs +0 -8
  439. package/shortcutContexts/editor.js +0 -25
  440. package/shortcutContexts/editor.mjs +0 -21
  441. package/shortcutContexts/grid.js +0 -163
  442. package/shortcutContexts/grid.mjs +0 -159
  443. package/shortcutContexts/index.js +0 -24
  444. package/shortcutContexts/index.mjs +0 -11
  445. package/utils/paginator.js +0 -151
  446. package/utils/paginator.mjs +0 -147
@@ -5,8 +5,8 @@ exports.__esModule = true;
5
5
  require("core-js/modules/es.array.push.js");
6
6
  var _element = require("../../helpers/dom/element");
7
7
  var _number = require("../../helpers/number");
8
- var _templateLiteralTag = require("../../helpers/templateLiteralTag");
9
8
  var _event = require("../../helpers/dom/event");
9
+ var _templateLiteralTag = require("../../helpers/templateLiteralTag");
10
10
  var _console = require("../../helpers/console");
11
11
  var _selection = require("../../selection");
12
12
  var _base = require("../base");
@@ -75,14 +75,13 @@ const PLUGIN_PRIORITY = 280;
75
75
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
76
76
  var _stateManager = /*#__PURE__*/new WeakMap();
77
77
  var _hidingIndexMapObserver = /*#__PURE__*/new WeakMap();
78
- var _focusInitialCoords = /*#__PURE__*/new WeakMap();
79
- var _isColumnsSelectionInProgress = /*#__PURE__*/new WeakMap();
80
78
  class NestedHeaders extends _base.BasePlugin {
81
79
  constructor() {
82
80
  super(...arguments);
83
81
  /**
84
82
  * The state manager for the nested headers.
85
83
  *
84
+ * @private
86
85
  * @type {StateManager}
87
86
  */
88
87
  _classPrivateFieldInitSpec(this, _stateManager, {
@@ -93,30 +92,13 @@ class NestedHeaders extends _base.BasePlugin {
93
92
  * The instance of the ChangesObservable class that allows track the changes that happens in the
94
93
  * column indexes.
95
94
  *
95
+ * @private
96
96
  * @type {ChangesObservable}
97
97
  */
98
98
  _classPrivateFieldInitSpec(this, _hidingIndexMapObserver, {
99
99
  writable: true,
100
100
  value: null
101
101
  });
102
- /**
103
- * Holds the coords that points to the place where the column selection starts.
104
- *
105
- * @type {number|null}
106
- */
107
- _classPrivateFieldInitSpec(this, _focusInitialCoords, {
108
- writable: true,
109
- value: null
110
- });
111
- /**
112
- * Determines if there is performed the column selection.
113
- *
114
- * @type {boolean}
115
- */
116
- _classPrivateFieldInitSpec(this, _isColumnsSelectionInProgress, {
117
- writable: true,
118
- value: false
119
- });
120
102
  /**
121
103
  * Custom helper for getting widths of the nested headers.
122
104
  *
@@ -176,19 +158,6 @@ class NestedHeaders extends _base.BasePlugin {
176
158
  this.addHook('beforeOnCellMouseOver', function () {
177
159
  return _this.onBeforeOnCellMouseOver(...arguments);
178
160
  });
179
- this.addHook('beforeOnCellMouseUp', function () {
180
- return _this.onBeforeOnCellMouseUp(...arguments);
181
- });
182
- this.addHook('beforeSelectionHighlightSet', function () {
183
- return _this.onBeforeSelectionHighlightSet(...arguments);
184
- });
185
- this.addHook('modifyTransformStart', function () {
186
- return _this.onModifyTransformStart(...arguments);
187
- });
188
- this.addHook('afterSelection', () => this.updateFocusHighlightPosition());
189
- this.addHook('beforeViewportScrollHorizontally', function () {
190
- return _this.onBeforeViewportScrollHorizontally(...arguments);
191
- });
192
161
  this.addHook('afterGetColumnHeaderRenderers', array => this.onAfterGetColumnHeaderRenderers(array));
193
162
  this.addHook('modifyColWidth', function () {
194
163
  return _this.onModifyColWidth(...arguments);
@@ -202,17 +171,9 @@ class NestedHeaders extends _base.BasePlugin {
202
171
  this.addHook('beforeCopy', function () {
203
172
  return _this.onBeforeCopy(...arguments);
204
173
  });
205
- this.addHook('beforeSelectColumns', function () {
206
- return _this.onBeforeSelectColumns(...arguments);
207
- });
208
174
  this.addHook('afterViewportColumnCalculatorOverride', function () {
209
175
  return _this.onAfterViewportColumnCalculatorOverride(...arguments);
210
176
  });
211
- this.addHook('modifyFocusedElement', function () {
212
- return _this.onModifyFocusedElement(...arguments);
213
- });
214
- this.hot.columnIndexMapper.addLocalHook('cacheUpdated', () => this.updateFocusHighlightPosition());
215
- this.hot.rowIndexMapper.addLocalHook('cacheUpdated', () => this.updateFocusHighlightPosition());
216
177
  super.enablePlugin();
217
178
  this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
218
179
  }
@@ -428,67 +389,6 @@ class NestedHeaders extends _base.BasePlugin {
428
389
  return this.hot.getColHeader(visualColumnIndex, headerLevel);
429
390
  }
430
391
 
431
- /**
432
- * Updates the selection focus highlight position to point to the nested header root element (TH)
433
- * even when the logical coordinates point in-between the header.
434
- *
435
- * @private
436
- */
437
- updateFocusHighlightPosition() {
438
- var _this$hot;
439
- const selection = (_this$hot = this.hot) === null || _this$hot === void 0 ? void 0 : _this$hot.getSelectedRangeLast();
440
- if (!selection) {
441
- return;
442
- }
443
- const {
444
- highlight
445
- } = selection;
446
- const isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;
447
- if (isNestedHeadersRange) {
448
- const columnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
449
- const focusHighlight = this.hot.selection.highlight.getFocus();
450
-
451
- // Correct the highlight/focus selection to highlight the correct TH element
452
- focusHighlight.visualCellRange.highlight.col = columnIndex;
453
- focusHighlight.visualCellRange.from.col = columnIndex;
454
- focusHighlight.visualCellRange.to.col = columnIndex;
455
- focusHighlight.commit();
456
- }
457
- }
458
-
459
- /**
460
- * Allows to control to which column index the viewport will be scrolled. To ensure that the viewport
461
- * is scrolled to the correct column for the nested header the most left and the most right visual column
462
- * indexes are used.
463
- *
464
- * @private
465
- * @param {number} visualColumn A visual column index to which the viewport will be scrolled.
466
- * @returns {number}
467
- */
468
- onBeforeViewportScrollHorizontally(visualColumn) {
469
- const selection = this.hot.getSelectedRangeLast();
470
- if (!selection) {
471
- return visualColumn;
472
- }
473
- const {
474
- highlight
475
- } = selection;
476
- const isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;
477
- if (!isNestedHeadersRange) {
478
- return visualColumn;
479
- }
480
- const firstColumn = this.hot.view.getFirstFullyVisibleColumn();
481
- const lastColumn = this.hot.view.getLastFullyVisibleColumn();
482
- const mostLeftColumnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
483
- const mostRightColumnIndex = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(highlight.row, highlight.col);
484
-
485
- // do not scroll the viewport when the header is wider than the viewport
486
- if (mostLeftColumnIndex < firstColumn && mostRightColumnIndex > lastColumn) {
487
- return visualColumn;
488
- }
489
- return mostLeftColumnIndex < firstColumn ? mostLeftColumnIndex : mostRightColumnIndex;
490
- }
491
-
492
392
  /**
493
393
  * Allows to control which header DOM element will be used to highlight.
494
394
  *
@@ -504,6 +404,7 @@ class NestedHeaders extends _base.BasePlugin {
504
404
  return visualColumn;
505
405
  }
506
406
  const {
407
+ classNames,
507
408
  columnCursor,
508
409
  selectionType,
509
410
  selectionWidth
@@ -518,8 +419,8 @@ class NestedHeaders extends _base.BasePlugin {
518
419
  }
519
420
  } else if (selectionType === _selection.ACTIVE_HEADER_TYPE) {
520
421
  if (colspan > selectionWidth - columnCursor || !isRoot) {
521
- // Prevents adding any CSS class names to the TH element
522
- return null;
422
+ // Reset the class names array so the generated TH element won't be modified.
423
+ classNames.length = 0;
523
424
  }
524
425
  }
525
426
  return visualColumn;
@@ -607,8 +508,6 @@ class NestedHeaders extends _base.BasePlugin {
607
508
  if (!headerNodeData) {
608
509
  return;
609
510
  }
610
- _classPrivateFieldSet(this, _focusInitialCoords, coords.clone());
611
- _classPrivateFieldSet(this, _isColumnsSelectionInProgress, true);
612
511
  const {
613
512
  selection
614
513
  } = this.hot;
@@ -674,129 +573,14 @@ class NestedHeaders extends _base.BasePlugin {
674
573
  controller.column = true;
675
574
  controller.cell = true;
676
575
  const columnsToSelect = [];
677
- const headerLevel = (0, _number.clamp)(coords.row, -Infinity, -1);
678
576
  if (coords.col < from.col) {
679
- columnsToSelect.push(bottomEndCoords.col, columnIndex, headerLevel);
577
+ columnsToSelect.push(bottomEndCoords.col, columnIndex);
680
578
  } else if (coords.col > from.col) {
681
- columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1, headerLevel);
579
+ columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1);
682
580
  } else {
683
- columnsToSelect.push(columnIndex, columnIndex + origColspan - 1, headerLevel);
684
- }
685
- this.hot.selection.selectColumns(...columnsToSelect);
686
- }
687
-
688
- /**
689
- * Switches internal flag about selection progress to `false`.
690
- *
691
- * @private
692
- */
693
- onBeforeOnCellMouseUp() {
694
- _classPrivateFieldSet(this, _isColumnsSelectionInProgress, false);
695
- }
696
-
697
- /**
698
- * The hook checks and ensures that the focus position that depends on the selected columns
699
- * range is always positioned within the range.
700
- *
701
- * @private
702
- */
703
- onBeforeSelectionHighlightSet() {
704
- const {
705
- navigableHeaders
706
- } = this.hot.getSettings();
707
- if (!this.hot.view.isMouseDown() || !_classPrivateFieldGet(this, _isColumnsSelectionInProgress) || !navigableHeaders) {
708
- return;
709
- }
710
- const selectedRange = this.hot.getSelectedRangeLast();
711
- const columnStart = selectedRange.getTopStartCorner().col;
712
- const columnEnd = selectedRange.getBottomEndCorner().col;
713
- const {
714
- columnIndex,
715
- origColspan
716
- } = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(_classPrivateFieldGet(this, _focusInitialCoords).row, _classPrivateFieldGet(this, _focusInitialCoords).col);
717
- selectedRange.setHighlight(_classPrivateFieldGet(this, _focusInitialCoords));
718
- if (origColspan > selectedRange.getWidth() || columnIndex < columnStart || columnIndex + origColspan - 1 > columnEnd) {
719
- const headerLevel = _classPrivateFieldGet(this, _stateManager).findTopMostEntireHeaderLevel((0, _number.clamp)(columnStart, columnIndex, columnIndex + origColspan - 1), (0, _number.clamp)(columnEnd, columnIndex, columnIndex + origColspan - 1));
720
- selectedRange.highlight.row = headerLevel;
721
- selectedRange.highlight.col = selectedRange.from.col;
722
- }
723
- }
724
-
725
- /**
726
- * `modifyTransformStart` hook is called every time the keyboard navigation is used.
727
- *
728
- * @private
729
- * @param {object} delta The transformation delta.
730
- */
731
- onModifyTransformStart(delta) {
732
- const {
733
- highlight
734
- } = this.hot.getSelectedRangeLast();
735
- const nextCoords = this.hot._createCellCoords(highlight.row + delta.row, highlight.col + delta.col);
736
- const isNestedHeadersRange = nextCoords.isHeader() && nextCoords.col >= 0;
737
- if (!isNestedHeadersRange) {
738
- return;
739
- }
740
- const visualColumnIndexStart = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(nextCoords.row, nextCoords.col);
741
- const visualColumnIndexEnd = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(nextCoords.row, nextCoords.col);
742
- if (delta.col < 0) {
743
- const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;
744
- const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);
745
- if (notHiddenColumnIndex === null) {
746
- // There are no visible columns anymore, so move the selection out of the table edge. This will
747
- // be processed by the selection Transformer class as a move selection to the previous row (if autoWrapRow is enabled).
748
- delta.col = -this.hot.view.countRenderableColumnsInRange(0, highlight.col);
749
- } else {
750
- delta.col = -Math.max(this.hot.view.countRenderableColumnsInRange(notHiddenColumnIndex, highlight.col) - 1, 1);
751
- }
752
- } else if (delta.col > 0) {
753
- const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexEnd + 1 : visualColumnIndexStart;
754
- const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, 1);
755
- if (notHiddenColumnIndex === null) {
756
- // There are no visible columns anymore, so move the selection out of the table edge. This will
757
- // be processed by the selection Transformer class as a move selection to the next row (if autoWrapRow is enabled).
758
- delta.col = this.hot.view.countRenderableColumnsInRange(highlight.col, this.hot.countCols());
759
- } else {
760
- delta.col = Math.max(this.hot.view.countRenderableColumnsInRange(highlight.col, notHiddenColumnIndex) - 1, 1);
761
- }
762
- }
763
- }
764
-
765
- /**
766
- * The hook observes the column selection from the Selection API and modifies the column range to
767
- * ensure that the whole nested column will be covered.
768
- *
769
- * @private
770
- * @param {CellCoords} from The coords object where the selection starts.
771
- * @param {CellCoords} to The coords object where the selection ends.
772
- */
773
- onBeforeSelectColumns(from, to) {
774
- const headerLevel = from.row;
775
- const startNodeData = this._getHeaderTreeNodeDataByCoords({
776
- row: headerLevel,
777
- col: from.col
778
- });
779
- const endNodeData = this._getHeaderTreeNodeDataByCoords({
780
- row: headerLevel,
781
- col: to.col
782
- });
783
- if (to.col < from.col) {
784
- // Column selection from right to left
785
- if (startNodeData) {
786
- from.col = startNodeData.columnIndex + startNodeData.origColspan - 1;
787
- }
788
- if (endNodeData) {
789
- to.col = endNodeData.columnIndex;
790
- }
791
- } else if (to.col >= from.col) {
792
- // Column selection from left to right or a single column selection
793
- if (startNodeData) {
794
- from.col = startNodeData.columnIndex;
795
- }
796
- if (endNodeData) {
797
- to.col = endNodeData.columnIndex + endNodeData.origColspan - 1;
798
- }
581
+ columnsToSelect.push(columnIndex, columnIndex + origColspan - 1);
799
582
  }
583
+ this.hot.selectColumns(...columnsToSelect);
800
584
  }
801
585
 
802
586
  /**
@@ -881,20 +665,6 @@ class NestedHeaders extends _base.BasePlugin {
881
665
  return label;
882
666
  }
883
667
 
884
- /**
885
- * `modifyFocusedElement` hook callback.
886
- *
887
- * @private
888
- * @param {number} row Row index.
889
- * @param {number} column Column index.
890
- * @returns {HTMLTableCellElement} The `TH` element to be focused.
891
- */
892
- onModifyFocusedElement(row, column) {
893
- if (row < 0) {
894
- return this.hot.getCell(row, _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(row, column), true);
895
- }
896
- }
897
-
898
668
  /**
899
669
  * Updates the plugin state after HoT initialization.
900
670
  *
@@ -11,9 +11,9 @@ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classEx
11
11
  function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
12
12
  function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
13
13
  import { addClass, removeClass } from "../../helpers/dom/element.mjs";
14
- import { isNumeric, clamp } from "../../helpers/number.mjs";
15
- import { toSingleLine } from "../../helpers/templateLiteralTag.mjs";
14
+ import { isNumeric } from "../../helpers/number.mjs";
16
15
  import { isLeftClick, isRightClick } from "../../helpers/dom/event.mjs";
16
+ import { toSingleLine } from "../../helpers/templateLiteralTag.mjs";
17
17
  import { warn } from "../../helpers/console.mjs";
18
18
  import { ACTIVE_HEADER_TYPE, HEADER_TYPE } from "../../selection/index.mjs";
19
19
  import { BasePlugin } from "../base/index.mjs";
@@ -69,14 +69,13 @@ export const PLUGIN_PRIORITY = 280;
69
69
  */
70
70
  var _stateManager = /*#__PURE__*/new WeakMap();
71
71
  var _hidingIndexMapObserver = /*#__PURE__*/new WeakMap();
72
- var _focusInitialCoords = /*#__PURE__*/new WeakMap();
73
- var _isColumnsSelectionInProgress = /*#__PURE__*/new WeakMap();
74
72
  export class NestedHeaders extends BasePlugin {
75
73
  constructor() {
76
74
  super(...arguments);
77
75
  /**
78
76
  * The state manager for the nested headers.
79
77
  *
78
+ * @private
80
79
  * @type {StateManager}
81
80
  */
82
81
  _classPrivateFieldInitSpec(this, _stateManager, {
@@ -87,30 +86,13 @@ export class NestedHeaders extends BasePlugin {
87
86
  * The instance of the ChangesObservable class that allows track the changes that happens in the
88
87
  * column indexes.
89
88
  *
89
+ * @private
90
90
  * @type {ChangesObservable}
91
91
  */
92
92
  _classPrivateFieldInitSpec(this, _hidingIndexMapObserver, {
93
93
  writable: true,
94
94
  value: null
95
95
  });
96
- /**
97
- * Holds the coords that points to the place where the column selection starts.
98
- *
99
- * @type {number|null}
100
- */
101
- _classPrivateFieldInitSpec(this, _focusInitialCoords, {
102
- writable: true,
103
- value: null
104
- });
105
- /**
106
- * Determines if there is performed the column selection.
107
- *
108
- * @type {boolean}
109
- */
110
- _classPrivateFieldInitSpec(this, _isColumnsSelectionInProgress, {
111
- writable: true,
112
- value: false
113
- });
114
96
  /**
115
97
  * Custom helper for getting widths of the nested headers.
116
98
  *
@@ -170,19 +152,6 @@ export class NestedHeaders extends BasePlugin {
170
152
  this.addHook('beforeOnCellMouseOver', function () {
171
153
  return _this.onBeforeOnCellMouseOver(...arguments);
172
154
  });
173
- this.addHook('beforeOnCellMouseUp', function () {
174
- return _this.onBeforeOnCellMouseUp(...arguments);
175
- });
176
- this.addHook('beforeSelectionHighlightSet', function () {
177
- return _this.onBeforeSelectionHighlightSet(...arguments);
178
- });
179
- this.addHook('modifyTransformStart', function () {
180
- return _this.onModifyTransformStart(...arguments);
181
- });
182
- this.addHook('afterSelection', () => this.updateFocusHighlightPosition());
183
- this.addHook('beforeViewportScrollHorizontally', function () {
184
- return _this.onBeforeViewportScrollHorizontally(...arguments);
185
- });
186
155
  this.addHook('afterGetColumnHeaderRenderers', array => this.onAfterGetColumnHeaderRenderers(array));
187
156
  this.addHook('modifyColWidth', function () {
188
157
  return _this.onModifyColWidth(...arguments);
@@ -196,17 +165,9 @@ export class NestedHeaders extends BasePlugin {
196
165
  this.addHook('beforeCopy', function () {
197
166
  return _this.onBeforeCopy(...arguments);
198
167
  });
199
- this.addHook('beforeSelectColumns', function () {
200
- return _this.onBeforeSelectColumns(...arguments);
201
- });
202
168
  this.addHook('afterViewportColumnCalculatorOverride', function () {
203
169
  return _this.onAfterViewportColumnCalculatorOverride(...arguments);
204
170
  });
205
- this.addHook('modifyFocusedElement', function () {
206
- return _this.onModifyFocusedElement(...arguments);
207
- });
208
- this.hot.columnIndexMapper.addLocalHook('cacheUpdated', () => this.updateFocusHighlightPosition());
209
- this.hot.rowIndexMapper.addLocalHook('cacheUpdated', () => this.updateFocusHighlightPosition());
210
171
  super.enablePlugin();
211
172
  this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
212
173
  }
@@ -422,67 +383,6 @@ export class NestedHeaders extends BasePlugin {
422
383
  return this.hot.getColHeader(visualColumnIndex, headerLevel);
423
384
  }
424
385
 
425
- /**
426
- * Updates the selection focus highlight position to point to the nested header root element (TH)
427
- * even when the logical coordinates point in-between the header.
428
- *
429
- * @private
430
- */
431
- updateFocusHighlightPosition() {
432
- var _this$hot;
433
- const selection = (_this$hot = this.hot) === null || _this$hot === void 0 ? void 0 : _this$hot.getSelectedRangeLast();
434
- if (!selection) {
435
- return;
436
- }
437
- const {
438
- highlight
439
- } = selection;
440
- const isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;
441
- if (isNestedHeadersRange) {
442
- const columnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
443
- const focusHighlight = this.hot.selection.highlight.getFocus();
444
-
445
- // Correct the highlight/focus selection to highlight the correct TH element
446
- focusHighlight.visualCellRange.highlight.col = columnIndex;
447
- focusHighlight.visualCellRange.from.col = columnIndex;
448
- focusHighlight.visualCellRange.to.col = columnIndex;
449
- focusHighlight.commit();
450
- }
451
- }
452
-
453
- /**
454
- * Allows to control to which column index the viewport will be scrolled. To ensure that the viewport
455
- * is scrolled to the correct column for the nested header the most left and the most right visual column
456
- * indexes are used.
457
- *
458
- * @private
459
- * @param {number} visualColumn A visual column index to which the viewport will be scrolled.
460
- * @returns {number}
461
- */
462
- onBeforeViewportScrollHorizontally(visualColumn) {
463
- const selection = this.hot.getSelectedRangeLast();
464
- if (!selection) {
465
- return visualColumn;
466
- }
467
- const {
468
- highlight
469
- } = selection;
470
- const isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;
471
- if (!isNestedHeadersRange) {
472
- return visualColumn;
473
- }
474
- const firstColumn = this.hot.view.getFirstFullyVisibleColumn();
475
- const lastColumn = this.hot.view.getLastFullyVisibleColumn();
476
- const mostLeftColumnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
477
- const mostRightColumnIndex = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(highlight.row, highlight.col);
478
-
479
- // do not scroll the viewport when the header is wider than the viewport
480
- if (mostLeftColumnIndex < firstColumn && mostRightColumnIndex > lastColumn) {
481
- return visualColumn;
482
- }
483
- return mostLeftColumnIndex < firstColumn ? mostLeftColumnIndex : mostRightColumnIndex;
484
- }
485
-
486
386
  /**
487
387
  * Allows to control which header DOM element will be used to highlight.
488
388
  *
@@ -498,6 +398,7 @@ export class NestedHeaders extends BasePlugin {
498
398
  return visualColumn;
499
399
  }
500
400
  const {
401
+ classNames,
501
402
  columnCursor,
502
403
  selectionType,
503
404
  selectionWidth
@@ -512,8 +413,8 @@ export class NestedHeaders extends BasePlugin {
512
413
  }
513
414
  } else if (selectionType === ACTIVE_HEADER_TYPE) {
514
415
  if (colspan > selectionWidth - columnCursor || !isRoot) {
515
- // Prevents adding any CSS class names to the TH element
516
- return null;
416
+ // Reset the class names array so the generated TH element won't be modified.
417
+ classNames.length = 0;
517
418
  }
518
419
  }
519
420
  return visualColumn;
@@ -601,8 +502,6 @@ export class NestedHeaders extends BasePlugin {
601
502
  if (!headerNodeData) {
602
503
  return;
603
504
  }
604
- _classPrivateFieldSet(this, _focusInitialCoords, coords.clone());
605
- _classPrivateFieldSet(this, _isColumnsSelectionInProgress, true);
606
505
  const {
607
506
  selection
608
507
  } = this.hot;
@@ -668,129 +567,14 @@ export class NestedHeaders extends BasePlugin {
668
567
  controller.column = true;
669
568
  controller.cell = true;
670
569
  const columnsToSelect = [];
671
- const headerLevel = clamp(coords.row, -Infinity, -1);
672
570
  if (coords.col < from.col) {
673
- columnsToSelect.push(bottomEndCoords.col, columnIndex, headerLevel);
571
+ columnsToSelect.push(bottomEndCoords.col, columnIndex);
674
572
  } else if (coords.col > from.col) {
675
- columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1, headerLevel);
573
+ columnsToSelect.push(topStartCoords.col, columnIndex + origColspan - 1);
676
574
  } else {
677
- columnsToSelect.push(columnIndex, columnIndex + origColspan - 1, headerLevel);
678
- }
679
- this.hot.selection.selectColumns(...columnsToSelect);
680
- }
681
-
682
- /**
683
- * Switches internal flag about selection progress to `false`.
684
- *
685
- * @private
686
- */
687
- onBeforeOnCellMouseUp() {
688
- _classPrivateFieldSet(this, _isColumnsSelectionInProgress, false);
689
- }
690
-
691
- /**
692
- * The hook checks and ensures that the focus position that depends on the selected columns
693
- * range is always positioned within the range.
694
- *
695
- * @private
696
- */
697
- onBeforeSelectionHighlightSet() {
698
- const {
699
- navigableHeaders
700
- } = this.hot.getSettings();
701
- if (!this.hot.view.isMouseDown() || !_classPrivateFieldGet(this, _isColumnsSelectionInProgress) || !navigableHeaders) {
702
- return;
703
- }
704
- const selectedRange = this.hot.getSelectedRangeLast();
705
- const columnStart = selectedRange.getTopStartCorner().col;
706
- const columnEnd = selectedRange.getBottomEndCorner().col;
707
- const {
708
- columnIndex,
709
- origColspan
710
- } = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(_classPrivateFieldGet(this, _focusInitialCoords).row, _classPrivateFieldGet(this, _focusInitialCoords).col);
711
- selectedRange.setHighlight(_classPrivateFieldGet(this, _focusInitialCoords));
712
- if (origColspan > selectedRange.getWidth() || columnIndex < columnStart || columnIndex + origColspan - 1 > columnEnd) {
713
- const headerLevel = _classPrivateFieldGet(this, _stateManager).findTopMostEntireHeaderLevel(clamp(columnStart, columnIndex, columnIndex + origColspan - 1), clamp(columnEnd, columnIndex, columnIndex + origColspan - 1));
714
- selectedRange.highlight.row = headerLevel;
715
- selectedRange.highlight.col = selectedRange.from.col;
716
- }
717
- }
718
-
719
- /**
720
- * `modifyTransformStart` hook is called every time the keyboard navigation is used.
721
- *
722
- * @private
723
- * @param {object} delta The transformation delta.
724
- */
725
- onModifyTransformStart(delta) {
726
- const {
727
- highlight
728
- } = this.hot.getSelectedRangeLast();
729
- const nextCoords = this.hot._createCellCoords(highlight.row + delta.row, highlight.col + delta.col);
730
- const isNestedHeadersRange = nextCoords.isHeader() && nextCoords.col >= 0;
731
- if (!isNestedHeadersRange) {
732
- return;
733
- }
734
- const visualColumnIndexStart = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(nextCoords.row, nextCoords.col);
735
- const visualColumnIndexEnd = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(nextCoords.row, nextCoords.col);
736
- if (delta.col < 0) {
737
- const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;
738
- const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);
739
- if (notHiddenColumnIndex === null) {
740
- // There are no visible columns anymore, so move the selection out of the table edge. This will
741
- // be processed by the selection Transformer class as a move selection to the previous row (if autoWrapRow is enabled).
742
- delta.col = -this.hot.view.countRenderableColumnsInRange(0, highlight.col);
743
- } else {
744
- delta.col = -Math.max(this.hot.view.countRenderableColumnsInRange(notHiddenColumnIndex, highlight.col) - 1, 1);
745
- }
746
- } else if (delta.col > 0) {
747
- const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexEnd + 1 : visualColumnIndexStart;
748
- const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, 1);
749
- if (notHiddenColumnIndex === null) {
750
- // There are no visible columns anymore, so move the selection out of the table edge. This will
751
- // be processed by the selection Transformer class as a move selection to the next row (if autoWrapRow is enabled).
752
- delta.col = this.hot.view.countRenderableColumnsInRange(highlight.col, this.hot.countCols());
753
- } else {
754
- delta.col = Math.max(this.hot.view.countRenderableColumnsInRange(highlight.col, notHiddenColumnIndex) - 1, 1);
755
- }
756
- }
757
- }
758
-
759
- /**
760
- * The hook observes the column selection from the Selection API and modifies the column range to
761
- * ensure that the whole nested column will be covered.
762
- *
763
- * @private
764
- * @param {CellCoords} from The coords object where the selection starts.
765
- * @param {CellCoords} to The coords object where the selection ends.
766
- */
767
- onBeforeSelectColumns(from, to) {
768
- const headerLevel = from.row;
769
- const startNodeData = this._getHeaderTreeNodeDataByCoords({
770
- row: headerLevel,
771
- col: from.col
772
- });
773
- const endNodeData = this._getHeaderTreeNodeDataByCoords({
774
- row: headerLevel,
775
- col: to.col
776
- });
777
- if (to.col < from.col) {
778
- // Column selection from right to left
779
- if (startNodeData) {
780
- from.col = startNodeData.columnIndex + startNodeData.origColspan - 1;
781
- }
782
- if (endNodeData) {
783
- to.col = endNodeData.columnIndex;
784
- }
785
- } else if (to.col >= from.col) {
786
- // Column selection from left to right or a single column selection
787
- if (startNodeData) {
788
- from.col = startNodeData.columnIndex;
789
- }
790
- if (endNodeData) {
791
- to.col = endNodeData.columnIndex + endNodeData.origColspan - 1;
792
- }
575
+ columnsToSelect.push(columnIndex, columnIndex + origColspan - 1);
793
576
  }
577
+ this.hot.selectColumns(...columnsToSelect);
794
578
  }
795
579
 
796
580
  /**
@@ -875,20 +659,6 @@ export class NestedHeaders extends BasePlugin {
875
659
  return label;
876
660
  }
877
661
 
878
- /**
879
- * `modifyFocusedElement` hook callback.
880
- *
881
- * @private
882
- * @param {number} row Row index.
883
- * @param {number} column Column index.
884
- * @returns {HTMLTableCellElement} The `TH` element to be focused.
885
- */
886
- onModifyFocusedElement(row, column) {
887
- if (row < 0) {
888
- return this.hot.getCell(row, _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(row, column), true);
889
- }
890
- }
891
-
892
662
  /**
893
663
  * Updates the plugin state after HoT initialization.
894
664
  *