handsontable 14.2.0 → 14.3.0-next-3fa6b18-20240410

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. package/3rdparty/walkontable/src/calculator/renderAllColumns.js +1 -1
  2. package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +1 -1
  3. package/3rdparty/walkontable/src/calculator/renderAllRows.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +1 -1
  5. package/3rdparty/walkontable/src/calculator/viewportColumns.js +13 -18
  6. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +13 -18
  7. package/3rdparty/walkontable/src/calculator/viewportRows.js +11 -16
  8. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +11 -16
  9. package/3rdparty/walkontable/src/cell/coords.js +13 -18
  10. package/3rdparty/walkontable/src/cell/coords.mjs +13 -18
  11. package/3rdparty/walkontable/src/cell/range.d.ts +2 -1
  12. package/3rdparty/walkontable/src/cell/range.js +42 -30
  13. package/3rdparty/walkontable/src/cell/range.mjs +42 -30
  14. package/3rdparty/walkontable/src/core/_base.js +2 -2
  15. package/3rdparty/walkontable/src/core/_base.mjs +2 -2
  16. package/3rdparty/walkontable/src/core/clone.js +1 -1
  17. package/3rdparty/walkontable/src/core/clone.mjs +1 -1
  18. package/3rdparty/walkontable/src/event.js +72 -104
  19. package/3rdparty/walkontable/src/event.mjs +72 -104
  20. package/3rdparty/walkontable/src/filter/column.js +1 -1
  21. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  22. package/3rdparty/walkontable/src/filter/row.js +1 -1
  23. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  24. package/3rdparty/walkontable/src/index.js +1 -1
  25. package/3rdparty/walkontable/src/overlay/_base.js +1 -1
  26. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  27. package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
  28. package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
  29. package/3rdparty/walkontable/src/overlay/inlineStart.js +15 -1
  30. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +16 -2
  31. package/3rdparty/walkontable/src/overlay/top.js +12 -1
  32. package/3rdparty/walkontable/src/overlay/top.mjs +13 -2
  33. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +1 -1
  34. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
  35. package/3rdparty/walkontable/src/overlays.js +47 -5
  36. package/3rdparty/walkontable/src/overlays.mjs +47 -5
  37. package/3rdparty/walkontable/src/renderer/_base.js +1 -1
  38. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  39. package/3rdparty/walkontable/src/renderer/cells.js +1 -1
  40. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
  41. package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -1
  42. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
  43. package/3rdparty/walkontable/src/renderer/rows.js +1 -1
  44. package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
  45. package/3rdparty/walkontable/src/renderer/table.js +1 -1
  46. package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
  47. package/3rdparty/walkontable/src/scroll.js +16 -18
  48. package/3rdparty/walkontable/src/scroll.mjs +16 -18
  49. package/3rdparty/walkontable/src/selection/manager.js +48 -69
  50. package/3rdparty/walkontable/src/selection/manager.mjs +48 -69
  51. package/3rdparty/walkontable/src/selection/scanner.js +33 -42
  52. package/3rdparty/walkontable/src/selection/scanner.mjs +33 -42
  53. package/3rdparty/walkontable/src/settings.js +1 -1
  54. package/3rdparty/walkontable/src/settings.mjs +1 -1
  55. package/3rdparty/walkontable/src/table.js +1 -1
  56. package/3rdparty/walkontable/src/table.mjs +1 -1
  57. package/3rdparty/walkontable/src/utils/column.js +1 -1
  58. package/3rdparty/walkontable/src/utils/column.mjs +1 -1
  59. package/3rdparty/walkontable/src/utils/columnStretching.js +28 -45
  60. package/3rdparty/walkontable/src/utils/columnStretching.mjs +28 -45
  61. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  62. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  63. package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
  64. package/3rdparty/walkontable/src/utils/orderView/view.mjs +2 -2
  65. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  66. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  67. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +1 -1
  68. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  69. package/3rdparty/walkontable/src/utils/row.js +1 -1
  70. package/3rdparty/walkontable/src/utils/row.mjs +1 -1
  71. package/CHANGELOG.md +20 -0
  72. package/base.js +2 -2
  73. package/base.mjs +2 -2
  74. package/core/viewportScroll/index.js +4 -1
  75. package/core/viewportScroll/index.mjs +4 -1
  76. package/core/viewportScroll/scrollStrategies/focusScroll.js +15 -0
  77. package/core/viewportScroll/scrollStrategies/focusScroll.mjs +11 -0
  78. package/core.d.ts +4 -3
  79. package/core.js +98 -43
  80. package/core.mjs +98 -43
  81. package/dataMap/dataMap.js +1 -1
  82. package/dataMap/dataMap.mjs +1 -1
  83. package/dataMap/dataSource.js +2 -2
  84. package/dataMap/dataSource.mjs +2 -2
  85. package/dataMap/metaManager/lazyFactoryMap.js +3 -5
  86. package/dataMap/metaManager/lazyFactoryMap.mjs +2 -4
  87. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
  88. package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -2
  89. package/dataMap/metaManager/metaLayers/columnMeta.js +1 -1
  90. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  91. package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
  92. package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
  93. package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
  94. package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
  95. package/dataMap/metaManager/metaSchema.js +272 -272
  96. package/dataMap/metaManager/metaSchema.mjs +272 -272
  97. package/dataMap/metaManager/mods/dynamicCellMeta.js +1 -1
  98. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  99. package/dataMap/metaManager/mods/extendMetaProperties.js +1 -1
  100. package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -1
  101. package/dataMap/replaceData.js +1 -1
  102. package/dataMap/replaceData.mjs +1 -1
  103. package/dist/handsontable.css +4 -4
  104. package/dist/handsontable.full.css +4 -4
  105. package/dist/handsontable.full.js +9814 -10020
  106. package/dist/handsontable.full.min.css +3 -3
  107. package/dist/handsontable.full.min.js +292 -292
  108. package/dist/handsontable.js +7484 -7056
  109. package/dist/handsontable.min.css +3 -3
  110. package/dist/handsontable.min.js +25 -25
  111. package/dist/languages/all.min.js +1 -1
  112. package/dist/languages/ar-AR.min.js +1 -1
  113. package/dist/languages/cs-CZ.min.js +1 -1
  114. package/dist/languages/de-CH.min.js +1 -1
  115. package/dist/languages/de-DE.min.js +1 -1
  116. package/dist/languages/en-US.min.js +1 -1
  117. package/dist/languages/es-MX.min.js +1 -1
  118. package/dist/languages/fr-FR.min.js +1 -1
  119. package/dist/languages/hr-HR.min.js +1 -1
  120. package/dist/languages/it-IT.min.js +1 -1
  121. package/dist/languages/ja-JP.min.js +1 -1
  122. package/dist/languages/ko-KR.min.js +1 -1
  123. package/dist/languages/lv-LV.min.js +1 -1
  124. package/dist/languages/nb-NO.min.js +1 -1
  125. package/dist/languages/nl-NL.min.js +1 -1
  126. package/dist/languages/pl-PL.min.js +1 -1
  127. package/dist/languages/pt-BR.min.js +1 -1
  128. package/dist/languages/ru-RU.min.js +1 -1
  129. package/dist/languages/sr-SP.min.js +1 -1
  130. package/dist/languages/zh-CN.min.js +1 -1
  131. package/dist/languages/zh-TW.min.js +1 -1
  132. package/editorManager.js +26 -24
  133. package/editorManager.mjs +26 -24
  134. package/editors/autocompleteEditor/autocompleteEditor.js +7 -11
  135. package/editors/autocompleteEditor/autocompleteEditor.mjs +7 -11
  136. package/editors/baseEditor/baseEditor.js +1 -1
  137. package/editors/baseEditor/baseEditor.mjs +1 -1
  138. package/editors/dateEditor/dateEditor.js +49 -11
  139. package/editors/dateEditor/dateEditor.mjs +49 -11
  140. package/editors/selectEditor/selectEditor.js +20 -19
  141. package/editors/selectEditor/selectEditor.mjs +20 -19
  142. package/editors/textEditor/textEditor.js +1 -1
  143. package/editors/textEditor/textEditor.mjs +1 -1
  144. package/eventManager.js +2 -2
  145. package/eventManager.mjs +2 -2
  146. package/focusManager.js +64 -82
  147. package/focusManager.mjs +64 -82
  148. package/helpers/dom/element.js +23 -1
  149. package/helpers/dom/element.mjs +21 -1
  150. package/helpers/mixed.js +2 -2
  151. package/helpers/mixed.mjs +2 -2
  152. package/helpers/object.js +2 -2
  153. package/helpers/object.mjs +2 -2
  154. package/i18n/languages/ar-AR.d.ts +5 -0
  155. package/i18n/languages/ar-AR.js +1 -1
  156. package/i18n/languages/cs-CZ.d.ts +5 -0
  157. package/i18n/languages/cs-CZ.js +1 -1
  158. package/i18n/languages/de-CH.js +1 -1
  159. package/i18n/languages/de-DE.js +1 -1
  160. package/i18n/languages/en-US.js +1 -1
  161. package/i18n/languages/es-MX.js +1 -1
  162. package/i18n/languages/fr-FR.js +1 -1
  163. package/i18n/languages/hr-HR.d.ts +5 -0
  164. package/i18n/languages/hr-HR.js +1 -1
  165. package/i18n/languages/it-IT.js +1 -1
  166. package/i18n/languages/ja-JP.js +1 -1
  167. package/i18n/languages/ko-KR.js +1 -1
  168. package/i18n/languages/lv-LV.js +1 -1
  169. package/i18n/languages/nb-NO.js +1 -1
  170. package/i18n/languages/nl-NL.js +1 -1
  171. package/i18n/languages/pl-PL.js +1 -1
  172. package/i18n/languages/pt-BR.js +1 -1
  173. package/i18n/languages/ru-RU.js +1 -1
  174. package/i18n/languages/sr-SP.d.ts +5 -0
  175. package/i18n/languages/sr-SP.js +1 -1
  176. package/i18n/languages/zh-CN.js +1 -1
  177. package/i18n/languages/zh-TW.js +1 -1
  178. package/i18n/registry.js +1 -1
  179. package/index.d.ts +10 -0
  180. package/index.js +1 -1
  181. package/package.json +14 -10
  182. package/pluginHooks.d.ts +4 -3
  183. package/pluginHooks.js +143 -82
  184. package/pluginHooks.mjs +143 -82
  185. package/plugins/autoColumnSize/autoColumnSize.js +50 -66
  186. package/plugins/autoColumnSize/autoColumnSize.mjs +50 -66
  187. package/plugins/autoRowSize/autoRowSize.js +29 -35
  188. package/plugins/autoRowSize/autoRowSize.mjs +29 -35
  189. package/plugins/autofill/autofill.js +31 -39
  190. package/plugins/autofill/autofill.mjs +31 -39
  191. package/plugins/base/base.js +13 -18
  192. package/plugins/base/base.mjs +13 -18
  193. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +6 -6
  194. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +6 -6
  195. package/plugins/collapsibleColumns/collapsibleColumns.js +60 -51
  196. package/plugins/collapsibleColumns/collapsibleColumns.mjs +60 -51
  197. package/plugins/columnSorting/columnSorting.js +50 -46
  198. package/plugins/columnSorting/columnSorting.mjs +50 -46
  199. package/plugins/columnSorting/columnStatesManager.js +1 -1
  200. package/plugins/columnSorting/columnStatesManager.mjs +1 -1
  201. package/plugins/columnSummary/columnSummary.js +36 -40
  202. package/plugins/columnSummary/columnSummary.mjs +36 -40
  203. package/plugins/columnSummary/endpoints.js +1 -1
  204. package/plugins/columnSummary/endpoints.mjs +1 -1
  205. package/plugins/comments/commentEditor.js +1 -1
  206. package/plugins/comments/commentEditor.mjs +1 -1
  207. package/plugins/comments/comments.js +117 -159
  208. package/plugins/comments/comments.mjs +117 -159
  209. package/plugins/comments/contextMenuItem/addEditComment.js +1 -1
  210. package/plugins/comments/contextMenuItem/readOnlyComment.js +1 -1
  211. package/plugins/comments/contextMenuItem/removeComment.js +1 -1
  212. package/plugins/comments/displaySwitch.js +1 -1
  213. package/plugins/comments/displaySwitch.mjs +1 -1
  214. package/plugins/contextMenu/commandExecutor.js +1 -1
  215. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  216. package/plugins/contextMenu/contextMenu.js +24 -30
  217. package/plugins/contextMenu/contextMenu.mjs +24 -30
  218. package/plugins/contextMenu/itemsFactory.js +2 -2
  219. package/plugins/contextMenu/itemsFactory.mjs +2 -2
  220. package/plugins/contextMenu/menu/cursor.js +1 -1
  221. package/plugins/contextMenu/menu/cursor.mjs +1 -1
  222. package/plugins/contextMenu/menu/defaultShortcutsList.js +26 -10
  223. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +26 -10
  224. package/plugins/contextMenu/menu/menu.js +14 -22
  225. package/plugins/contextMenu/menu/menu.mjs +14 -22
  226. package/plugins/contextMenu/menu/positioner.js +41 -58
  227. package/plugins/contextMenu/menu/positioner.mjs +41 -58
  228. package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
  229. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  230. package/plugins/contextMenu/predefinedItems/columnLeft.js +1 -1
  231. package/plugins/contextMenu/predefinedItems/columnRight.js +1 -1
  232. package/plugins/contextMenu/predefinedItems/index.js +1 -1
  233. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
  234. package/plugins/contextMenu/predefinedItems/redo.js +1 -1
  235. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  236. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  237. package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
  238. package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
  239. package/plugins/contextMenu/predefinedItems/undo.js +1 -1
  240. package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
  241. package/plugins/copyPaste/copyPaste.js +120 -161
  242. package/plugins/copyPaste/copyPaste.mjs +120 -161
  243. package/plugins/copyPaste/copyableRanges.js +43 -66
  244. package/plugins/copyPaste/copyableRanges.mjs +43 -66
  245. package/plugins/customBorders/contextMenuItem/bottom.js +1 -1
  246. package/plugins/customBorders/contextMenuItem/left.js +1 -1
  247. package/plugins/customBorders/contextMenuItem/noBorders.js +1 -1
  248. package/plugins/customBorders/contextMenuItem/right.js +1 -1
  249. package/plugins/customBorders/contextMenuItem/top.js +1 -1
  250. package/plugins/customBorders/customBorders.js +14 -16
  251. package/plugins/customBorders/customBorders.mjs +13 -15
  252. package/plugins/dragToScroll/dragToScroll.js +7 -7
  253. package/plugins/dragToScroll/dragToScroll.mjs +7 -7
  254. package/plugins/dropdownMenu/dropdownMenu.js +84 -110
  255. package/plugins/dropdownMenu/dropdownMenu.mjs +84 -110
  256. package/plugins/exportFile/dataProvider.js +2 -2
  257. package/plugins/exportFile/dataProvider.mjs +2 -2
  258. package/plugins/exportFile/exportFile.js +2 -2
  259. package/plugins/exportFile/exportFile.mjs +1 -1
  260. package/plugins/exportFile/types/_base.js +1 -1
  261. package/plugins/exportFile/types/_base.mjs +1 -1
  262. package/plugins/filters/component/_base.js +1 -1
  263. package/plugins/filters/component/_base.mjs +1 -1
  264. package/plugins/filters/component/actionBar.js +11 -11
  265. package/plugins/filters/component/actionBar.mjs +9 -9
  266. package/plugins/filters/component/condition.js +15 -17
  267. package/plugins/filters/component/condition.mjs +14 -16
  268. package/plugins/filters/component/operators.js +7 -7
  269. package/plugins/filters/component/operators.mjs +7 -7
  270. package/plugins/filters/component/value.js +26 -30
  271. package/plugins/filters/component/value.mjs +25 -29
  272. package/plugins/filters/condition/beginsWith.js +1 -1
  273. package/plugins/filters/condition/between.js +1 -1
  274. package/plugins/filters/condition/contains.js +1 -1
  275. package/plugins/filters/condition/date/after.js +1 -1
  276. package/plugins/filters/condition/date/before.js +1 -1
  277. package/plugins/filters/condition/date/today.js +1 -1
  278. package/plugins/filters/condition/date/tomorrow.js +1 -1
  279. package/plugins/filters/condition/date/yesterday.js +1 -1
  280. package/plugins/filters/condition/empty.js +1 -1
  281. package/plugins/filters/condition/endsWith.js +1 -1
  282. package/plugins/filters/condition/equal.js +1 -1
  283. package/plugins/filters/condition/greaterThan.js +1 -1
  284. package/plugins/filters/condition/greaterThanOrEqual.js +1 -1
  285. package/plugins/filters/condition/lessThan.js +1 -1
  286. package/plugins/filters/condition/lessThanOrEqual.js +1 -1
  287. package/plugins/filters/condition/none.js +1 -1
  288. package/plugins/filters/condition/notBetween.js +1 -1
  289. package/plugins/filters/condition/notContains.js +1 -1
  290. package/plugins/filters/condition/notEmpty.js +1 -1
  291. package/plugins/filters/condition/notEqual.js +1 -1
  292. package/plugins/filters/conditionCollection.js +1 -1
  293. package/plugins/filters/conditionCollection.mjs +1 -1
  294. package/plugins/filters/conditionUpdateObserver.js +23 -25
  295. package/plugins/filters/conditionUpdateObserver.mjs +23 -25
  296. package/plugins/filters/dataFilter.js +2 -2
  297. package/plugins/filters/dataFilter.mjs +2 -2
  298. package/plugins/filters/filters.js +84 -98
  299. package/plugins/filters/filters.mjs +83 -97
  300. package/plugins/filters/logicalOperations/conjunction.js +1 -1
  301. package/plugins/filters/logicalOperations/disjunction.js +1 -1
  302. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -1
  303. package/plugins/filters/ui/_base.js +2 -2
  304. package/plugins/filters/ui/_base.mjs +1 -1
  305. package/plugins/filters/ui/input.js +13 -19
  306. package/plugins/filters/ui/input.mjs +13 -19
  307. package/plugins/filters/ui/link.js +8 -13
  308. package/plugins/filters/ui/link.mjs +8 -13
  309. package/plugins/filters/ui/multipleSelect.js +86 -113
  310. package/plugins/filters/ui/multipleSelect.mjs +85 -112
  311. package/plugins/filters/ui/radioInput.js +12 -20
  312. package/plugins/filters/ui/radioInput.mjs +12 -20
  313. package/plugins/filters/ui/select.js +51 -73
  314. package/plugins/filters/ui/select.mjs +49 -71
  315. package/plugins/formulas/formulas.js +270 -328
  316. package/plugins/formulas/formulas.mjs +271 -329
  317. package/plugins/formulas/indexSyncer/axisSyncer.js +38 -61
  318. package/plugins/formulas/indexSyncer/axisSyncer.mjs +38 -61
  319. package/plugins/formulas/indexSyncer/index.js +25 -48
  320. package/plugins/formulas/indexSyncer/index.mjs +25 -48
  321. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
  322. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -1
  323. package/plugins/hiddenColumns/hiddenColumns.js +68 -87
  324. package/plugins/hiddenColumns/hiddenColumns.mjs +68 -87
  325. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
  326. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -1
  327. package/plugins/hiddenRows/hiddenRows.js +67 -86
  328. package/plugins/hiddenRows/hiddenRows.mjs +67 -86
  329. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  330. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  331. package/plugins/manualColumnFreeze/manualColumnFreeze.js +24 -32
  332. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +25 -33
  333. package/plugins/manualColumnMove/manualColumnMove.js +133 -177
  334. package/plugins/manualColumnMove/manualColumnMove.mjs +133 -177
  335. package/plugins/manualColumnMove/ui/_base.js +1 -1
  336. package/plugins/manualColumnMove/ui/_base.mjs +1 -1
  337. package/plugins/manualColumnResize/manualColumnResize.js +169 -230
  338. package/plugins/manualColumnResize/manualColumnResize.mjs +169 -230
  339. package/plugins/manualRowMove/manualRowMove.js +106 -135
  340. package/plugins/manualRowMove/manualRowMove.mjs +106 -135
  341. package/plugins/manualRowMove/ui/_base.js +1 -1
  342. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  343. package/plugins/manualRowResize/manualRowResize.js +150 -209
  344. package/plugins/manualRowResize/manualRowResize.mjs +150 -209
  345. package/plugins/mergeCells/calculations/autofill.js +1 -1
  346. package/plugins/mergeCells/calculations/autofill.mjs +1 -1
  347. package/plugins/mergeCells/calculations/selection.js +3 -72
  348. package/plugins/mergeCells/calculations/selection.mjs +3 -72
  349. package/plugins/mergeCells/cellCoords.js +1 -1
  350. package/plugins/mergeCells/cellCoords.mjs +1 -1
  351. package/plugins/mergeCells/cellsCollection.js +118 -2
  352. package/plugins/mergeCells/cellsCollection.mjs +118 -2
  353. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +12 -2
  354. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +11 -1
  355. package/plugins/mergeCells/focusOrder.js +305 -0
  356. package/plugins/mergeCells/focusOrder.mjs +300 -0
  357. package/plugins/mergeCells/mergeCells.js +500 -398
  358. package/plugins/mergeCells/mergeCells.mjs +500 -398
  359. package/plugins/multiColumnSorting/multiColumnSorting.js +9 -3
  360. package/plugins/multiColumnSorting/multiColumnSorting.mjs +9 -3
  361. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -2
  362. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +2 -2
  363. package/plugins/nestedHeaders/nestedHeaders.js +206 -254
  364. package/plugins/nestedHeaders/nestedHeaders.mjs +207 -255
  365. package/plugins/nestedHeaders/stateManager/headersTree.js +21 -32
  366. package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -32
  367. package/plugins/nestedHeaders/stateManager/index.js +30 -41
  368. package/plugins/nestedHeaders/stateManager/index.mjs +30 -41
  369. package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -30
  370. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -30
  371. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  372. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  373. package/plugins/nestedRows/data/dataManager.js +2 -2
  374. package/plugins/nestedRows/data/dataManager.mjs +2 -2
  375. package/plugins/nestedRows/nestedRows.js +154 -185
  376. package/plugins/nestedRows/nestedRows.mjs +155 -186
  377. package/plugins/nestedRows/ui/_base.js +1 -1
  378. package/plugins/nestedRows/ui/_base.mjs +1 -1
  379. package/plugins/nestedRows/ui/contextMenu.js +13 -17
  380. package/plugins/nestedRows/ui/contextMenu.mjs +11 -15
  381. package/plugins/nestedRows/utils/rowMoveController.js +6 -6
  382. package/plugins/nestedRows/utils/rowMoveController.mjs +6 -6
  383. package/plugins/persistentState/persistentState.js +1 -1
  384. package/plugins/persistentState/persistentState.mjs +1 -1
  385. package/plugins/persistentState/storage.js +3 -3
  386. package/plugins/persistentState/storage.mjs +3 -3
  387. package/plugins/search/search.js +8 -8
  388. package/plugins/search/search.mjs +8 -8
  389. package/plugins/touchScroll/touchScroll.js +16 -20
  390. package/plugins/touchScroll/touchScroll.mjs +17 -21
  391. package/plugins/trimRows/trimRows.js +7 -7
  392. package/plugins/trimRows/trimRows.mjs +7 -7
  393. package/plugins/undoRedo/index.js +1 -1
  394. package/renderers/checkboxRenderer/checkboxRenderer.js +8 -5
  395. package/renderers/checkboxRenderer/checkboxRenderer.mjs +8 -5
  396. package/selection/highlight/highlight.js +16 -18
  397. package/selection/highlight/highlight.mjs +15 -17
  398. package/selection/highlight/visualSelection.js +3 -1
  399. package/selection/highlight/visualSelection.mjs +3 -1
  400. package/selection/range.js +3 -5
  401. package/selection/range.mjs +2 -4
  402. package/selection/selection.js +227 -69
  403. package/selection/selection.mjs +225 -67
  404. package/selection/transformation.js +149 -118
  405. package/selection/transformation.mjs +149 -118
  406. package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
  407. package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
  408. package/shortcutContexts/commands/editor/open.js +18 -3
  409. package/shortcutContexts/commands/editor/open.mjs +18 -3
  410. package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
  411. package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
  412. package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
  413. package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
  414. package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
  415. package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
  416. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
  417. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
  418. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +3 -1
  419. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +3 -1
  420. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +9 -3
  421. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +9 -3
  422. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +10 -3
  423. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +10 -3
  424. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +3 -1
  425. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +3 -1
  426. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +3 -1
  427. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +3 -1
  428. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +3 -1
  429. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +3 -1
  430. package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
  431. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
  432. package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
  433. package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
  434. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +6 -1
  435. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +6 -1
  436. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +6 -1
  437. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +6 -1
  438. package/shortcutContexts/grid.js +9 -3
  439. package/shortcutContexts/grid.mjs +9 -3
  440. package/shortcuts/context.js +3 -2
  441. package/shortcuts/context.mjs +3 -2
  442. package/shortcuts/manager.js +2 -2
  443. package/shortcuts/manager.mjs +2 -2
  444. package/tableView.js +53 -79
  445. package/tableView.mjs +53 -79
  446. package/translations/changesObservable/observable.js +21 -38
  447. package/translations/changesObservable/observable.mjs +21 -38
  448. package/translations/changesObservable/observer.js +7 -12
  449. package/translations/changesObservable/observer.mjs +6 -11
  450. package/translations/indexMapper.js +1 -1
  451. package/translations/indexMapper.mjs +1 -1
  452. package/translations/mapCollections/aggregatedCollection.js +2 -2
  453. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  454. package/translations/mapCollections/mapCollection.js +1 -1
  455. package/translations/mapCollections/mapCollection.mjs +1 -1
  456. package/translations/maps/indexMap.js +2 -2
  457. package/translations/maps/indexMap.mjs +2 -2
  458. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
  459. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
  460. package/utils/dataStructures/linkedList.js +7 -2
  461. package/utils/dataStructures/linkedList.mjs +7 -2
  462. package/utils/dataStructures/tree.js +2 -2
  463. package/utils/dataStructures/tree.mjs +2 -2
  464. package/utils/ghostTable.js +1 -1
  465. package/utils/ghostTable.mjs +1 -1
  466. package/utils/interval.js +27 -45
  467. package/utils/interval.mjs +27 -45
  468. package/utils/samplesGenerator.js +1 -1
  469. package/utils/samplesGenerator.mjs +1 -1
@@ -1,17 +1,14 @@
1
- import "core-js/modules/es.array.push.js";
2
1
  import "core-js/modules/es.error.cause.js";
2
+ import "core-js/modules/es.array.push.js";
3
3
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
4
4
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
6
6
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
7
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
8
8
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
9
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
10
- 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; } }
11
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
12
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
13
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
14
- function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
9
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
10
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
11
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
15
12
  import { addClass, removeClass } from "../../helpers/dom/element.mjs";
16
13
  import { isNumeric, clamp } from "../../helpers/number.mjs";
17
14
  import { toSingleLine } from "../../helpers/templateLiteralTag.mjs";
@@ -73,203 +70,40 @@ var _stateManager = /*#__PURE__*/new WeakMap();
73
70
  var _hidingIndexMapObserver = /*#__PURE__*/new WeakMap();
74
71
  var _focusInitialCoords = /*#__PURE__*/new WeakMap();
75
72
  var _isColumnsSelectionInProgress = /*#__PURE__*/new WeakMap();
76
- var _updateFocusHighlightPosition = /*#__PURE__*/new WeakSet();
77
- var _onBeforeViewportScrollHorizontally = /*#__PURE__*/new WeakSet();
78
- var _onBeforeHighlightingColumnHeader = /*#__PURE__*/new WeakSet();
79
- var _onBeforeCopy = /*#__PURE__*/new WeakSet();
80
- var _onBeforeOnCellMouseDown = /*#__PURE__*/new WeakSet();
81
- var _onAfterOnCellMouseDown = /*#__PURE__*/new WeakSet();
82
- var _onBeforeOnCellMouseOver = /*#__PURE__*/new WeakSet();
83
- var _onBeforeOnCellMouseUp = /*#__PURE__*/new WeakSet();
84
- var _onBeforeSelectionHighlightSet = /*#__PURE__*/new WeakSet();
85
- var _onModifyTransformStart = /*#__PURE__*/new WeakSet();
86
- var _onBeforeSelectColumns = /*#__PURE__*/new WeakSet();
87
- var _onAfterGetColumnHeaderRenderers = /*#__PURE__*/new WeakSet();
88
- var _onAfterViewportColumnCalculatorOverride = /*#__PURE__*/new WeakSet();
89
- var _onModifyColWidth = /*#__PURE__*/new WeakSet();
90
- var _onModifyColumnHeaderValue = /*#__PURE__*/new WeakSet();
91
- var _onModifyFocusedElement = /*#__PURE__*/new WeakSet();
92
- var _onInit = /*#__PURE__*/new WeakSet();
93
- var _onAfterLoadData = /*#__PURE__*/new WeakSet();
73
+ var _NestedHeaders_brand = /*#__PURE__*/new WeakSet();
94
74
  export class NestedHeaders extends BasePlugin {
95
75
  constructor() {
96
76
  super(...arguments);
97
- /**
98
- * Updates the plugin state after new dataset load.
99
- *
100
- * @param {Array[]} sourceData Array of arrays or array of objects containing data.
101
- * @param {boolean} initialLoad Flag that determines whether the data has been loaded
102
- * during the initialization.
103
- */
104
- _classPrivateMethodInitSpec(this, _onAfterLoadData);
105
- /**
106
- * Updates the plugin state after HoT initialization.
107
- */
108
- _classPrivateMethodInitSpec(this, _onInit);
109
- /**
110
- * `modifyFocusedElement` hook callback.
111
- *
112
- * @param {number} row Row index.
113
- * @param {number} column Column index.
114
- * @returns {HTMLTableCellElement} The `TH` element to be focused.
115
- */
116
- _classPrivateMethodInitSpec(this, _onModifyFocusedElement);
117
- /**
118
- * Listens the `modifyColumnHeaderValue` hook that overwrites the column headers values based on
119
- * the internal state and settings of the plugin.
120
- *
121
- * @param {string} value The column header value.
122
- * @param {number} visualColumnIndex The visual column index.
123
- * @param {number} headerLevel The index of header level. The header level accepts positive (0 to N)
124
- * and negative (-1 to -N) values. For positive values, 0 points to the
125
- * top most header, and for negative direction, -1 points to the most bottom
126
- * header (the header closest to the cells).
127
- * @returns {string} Returns the column header value to update.
128
- */
129
- _classPrivateMethodInitSpec(this, _onModifyColumnHeaderValue);
130
- /**
131
- * `modifyColWidth` hook callback - returns width from cache, when is greater than incoming from hook.
132
- *
133
- * @param {number} width Width from hook.
134
- * @param {number} column Visual index of an column.
135
- * @returns {number}
136
- */
137
- _classPrivateMethodInitSpec(this, _onModifyColWidth);
138
- /**
139
- * Make the renderer render the first nested column in its entirety.
140
- *
141
- * @param {object} calc Viewport column calculator.
142
- */
143
- _classPrivateMethodInitSpec(this, _onAfterViewportColumnCalculatorOverride);
144
- /**
145
- * `afterGetColumnHeader` hook callback - prepares the header structure.
146
- *
147
- * @param {Array} renderersArray Array of renderers.
148
- */
149
- _classPrivateMethodInitSpec(this, _onAfterGetColumnHeaderRenderers);
150
- /**
151
- * The hook observes the column selection from the Selection API and modifies the column range to
152
- * ensure that the whole nested column will be covered.
153
- *
154
- * @param {CellCoords} from The coords object where the selection starts.
155
- * @param {CellCoords} to The coords object where the selection ends.
156
- */
157
- _classPrivateMethodInitSpec(this, _onBeforeSelectColumns);
158
- /**
159
- * `modifyTransformStart` hook is called every time the keyboard navigation is used.
160
- *
161
- * @param {object} delta The transformation delta.
162
- */
163
- _classPrivateMethodInitSpec(this, _onModifyTransformStart);
164
- /**
165
- * The hook checks and ensures that the focus position that depends on the selected columns
166
- * range is always positioned within the range.
167
- */
168
- _classPrivateMethodInitSpec(this, _onBeforeSelectionHighlightSet);
169
- /**
170
- * Switches internal flag about selection progress to `false`.
171
- */
172
- _classPrivateMethodInitSpec(this, _onBeforeOnCellMouseUp);
173
- /**
174
- * Makes the header-selection properly select the nested headers.
175
- *
176
- * @param {MouseEvent} event Mouse event.
177
- * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.
178
- * @param {HTMLElement} TD The cell element.
179
- * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
180
- * a boolean value that allows or disallows changing the selection for that particular area.
181
- */
182
- _classPrivateMethodInitSpec(this, _onBeforeOnCellMouseOver);
183
- /**
184
- * Allows to control how the column selection based on the coordinates and the nested headers is made.
185
- *
186
- * @param {MouseEvent} event Mouse event.
187
- * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.
188
- */
189
- _classPrivateMethodInitSpec(this, _onAfterOnCellMouseDown);
190
- /**
191
- * Allows blocking the column selection that is controlled by the core Selection module.
192
- *
193
- * @param {MouseEvent} event Mouse event.
194
- * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.
195
- * @param {CellCoords} TD The table cell or header element.
196
- * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
197
- * a boolean value that allows or disallows changing the selection for that particular area.
198
- */
199
- _classPrivateMethodInitSpec(this, _onBeforeOnCellMouseDown);
200
- /**
201
- * Listens the `beforeCopy` hook that allows processing the copied column headers so that the
202
- * merged column headers do not propagate the value for each column but only once at the beginning
203
- * of the column.
204
- *
205
- * @private
206
- * @param {Array[]} data An array of arrays which contains data to copied.
207
- * @param {object[]} copyableRanges An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
208
- * which will copied.
209
- * @param {{ columnHeadersCount: number }} copiedHeadersCount An object with keys that holds information with
210
- * the number of copied headers.
211
- */
212
- _classPrivateMethodInitSpec(this, _onBeforeCopy);
213
- /**
214
- * Allows to control which header DOM element will be used to highlight.
215
- *
216
- * @param {number} visualColumn A visual column index of the highlighted row header.
217
- * @param {number} headerLevel A row header level that is currently highlighted.
218
- * @param {object} highlightMeta An object with meta data that describes the highlight state.
219
- * @returns {number}
220
- */
221
- _classPrivateMethodInitSpec(this, _onBeforeHighlightingColumnHeader);
222
- /**
223
- * Allows to control to which column index the viewport will be scrolled. To ensure that the viewport
224
- * is scrolled to the correct column for the nested header the most left and the most right visual column
225
- * indexes are used.
226
- *
227
- * @param {number} visualColumn A visual column index to which the viewport will be scrolled.
228
- * @returns {number}
229
- */
230
- _classPrivateMethodInitSpec(this, _onBeforeViewportScrollHorizontally);
231
77
  /**
232
78
  * Updates the selection focus highlight position to point to the nested header root element (TH)
233
79
  * even when the logical coordinates point in-between the header.
234
80
  */
235
- _classPrivateMethodInitSpec(this, _updateFocusHighlightPosition);
81
+ _classPrivateMethodInitSpec(this, _NestedHeaders_brand);
236
82
  /**
237
83
  * The state manager for the nested headers.
238
84
  *
239
85
  * @type {StateManager}
240
86
  */
241
- _classPrivateFieldInitSpec(this, _stateManager, {
242
- writable: true,
243
- value: new StateManager()
244
- });
87
+ _classPrivateFieldInitSpec(this, _stateManager, new StateManager());
245
88
  /**
246
89
  * The instance of the ChangesObservable class that allows track the changes that happens in the
247
90
  * column indexes.
248
91
  *
249
92
  * @type {ChangesObservable}
250
93
  */
251
- _classPrivateFieldInitSpec(this, _hidingIndexMapObserver, {
252
- writable: true,
253
- value: null
254
- });
94
+ _classPrivateFieldInitSpec(this, _hidingIndexMapObserver, null);
255
95
  /**
256
96
  * Holds the coords that points to the place where the column selection starts.
257
97
  *
258
98
  * @type {number|null}
259
99
  */
260
- _classPrivateFieldInitSpec(this, _focusInitialCoords, {
261
- writable: true,
262
- value: null
263
- });
100
+ _classPrivateFieldInitSpec(this, _focusInitialCoords, null);
264
101
  /**
265
102
  * Determines if there is performed the column selection.
266
103
  *
267
104
  * @type {boolean}
268
105
  */
269
- _classPrivateFieldInitSpec(this, _isColumnsSelectionInProgress, {
270
- writable: true,
271
- value: false
272
- });
106
+ _classPrivateFieldInitSpec(this, _isColumnsSelectionInProgress, false);
273
107
  /**
274
108
  * Custom helper for getting widths of the nested headers.
275
109
  *
@@ -316,101 +150,102 @@ export class NestedHeaders extends BasePlugin {
316
150
  warn(toSingleLine`Your Nested Headers plugin configuration is invalid. The settings has to be\x20
317
151
  passed as an array of arrays e.q. [['A1', { label: 'A2', colspan: 2 }]]`);
318
152
  }
319
- this.addHook('init', () => _classPrivateMethodGet(this, _onInit, _onInit2).call(this));
153
+ this.addHook('init', () => _assertClassBrand(_NestedHeaders_brand, this, _onInit).call(this));
320
154
  this.addHook('afterLoadData', function () {
321
155
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
322
156
  args[_key] = arguments[_key];
323
157
  }
324
- return _classPrivateMethodGet(_this, _onAfterLoadData, _onAfterLoadData2).call(_this, ...args);
158
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onAfterLoadData).call(_this, ...args);
325
159
  });
326
160
  this.addHook('beforeOnCellMouseDown', function () {
327
161
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
328
162
  args[_key2] = arguments[_key2];
329
163
  }
330
- return _classPrivateMethodGet(_this, _onBeforeOnCellMouseDown, _onBeforeOnCellMouseDown2).call(_this, ...args);
164
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeOnCellMouseDown).call(_this, ...args);
331
165
  });
332
166
  this.addHook('afterOnCellMouseDown', function () {
333
167
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
334
168
  args[_key3] = arguments[_key3];
335
169
  }
336
- return _classPrivateMethodGet(_this, _onAfterOnCellMouseDown, _onAfterOnCellMouseDown2).call(_this, ...args);
170
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onAfterOnCellMouseDown).call(_this, ...args);
337
171
  });
338
172
  this.addHook('beforeOnCellMouseOver', function () {
339
173
  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
340
174
  args[_key4] = arguments[_key4];
341
175
  }
342
- return _classPrivateMethodGet(_this, _onBeforeOnCellMouseOver, _onBeforeOnCellMouseOver2).call(_this, ...args);
176
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeOnCellMouseOver).call(_this, ...args);
343
177
  });
344
178
  this.addHook('beforeOnCellMouseUp', function () {
345
179
  for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
346
180
  args[_key5] = arguments[_key5];
347
181
  }
348
- return _classPrivateMethodGet(_this, _onBeforeOnCellMouseUp, _onBeforeOnCellMouseUp2).call(_this, ...args);
182
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeOnCellMouseUp).call(_this, ...args);
349
183
  });
350
184
  this.addHook('beforeSelectionHighlightSet', function () {
351
185
  for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
352
186
  args[_key6] = arguments[_key6];
353
187
  }
354
- return _classPrivateMethodGet(_this, _onBeforeSelectionHighlightSet, _onBeforeSelectionHighlightSet2).call(_this, ...args);
188
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeSelectionHighlightSet).call(_this, ...args);
355
189
  });
356
190
  this.addHook('modifyTransformStart', function () {
357
191
  for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
358
192
  args[_key7] = arguments[_key7];
359
193
  }
360
- return _classPrivateMethodGet(_this, _onModifyTransformStart, _onModifyTransformStart2).call(_this, ...args);
194
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onModifyTransformStart).call(_this, ...args);
361
195
  });
362
- this.addHook('afterSelection', () => _classPrivateMethodGet(this, _updateFocusHighlightPosition, _updateFocusHighlightPosition2).call(this));
196
+ this.addHook('afterSelection', () => _assertClassBrand(_NestedHeaders_brand, this, _updateFocusHighlightPosition).call(this));
197
+ this.addHook('afterSelectionFocusSet', () => _assertClassBrand(_NestedHeaders_brand, this, _updateFocusHighlightPosition).call(this));
363
198
  this.addHook('beforeViewportScrollHorizontally', function () {
364
199
  for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
365
200
  args[_key8] = arguments[_key8];
366
201
  }
367
- return _classPrivateMethodGet(_this, _onBeforeViewportScrollHorizontally, _onBeforeViewportScrollHorizontally2).call(_this, ...args);
202
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeViewportScrollHorizontally).call(_this, ...args);
368
203
  });
369
- this.addHook('afterGetColumnHeaderRenderers', array => _classPrivateMethodGet(this, _onAfterGetColumnHeaderRenderers, _onAfterGetColumnHeaderRenderers2).call(this, array));
204
+ this.addHook('afterGetColumnHeaderRenderers', array => _assertClassBrand(_NestedHeaders_brand, this, _onAfterGetColumnHeaderRenderers).call(this, array));
370
205
  this.addHook('modifyColWidth', function () {
371
206
  for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
372
207
  args[_key9] = arguments[_key9];
373
208
  }
374
- return _classPrivateMethodGet(_this, _onModifyColWidth, _onModifyColWidth2).call(_this, ...args);
209
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onModifyColWidth).call(_this, ...args);
375
210
  });
376
211
  this.addHook('modifyColumnHeaderValue', function () {
377
212
  for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
378
213
  args[_key10] = arguments[_key10];
379
214
  }
380
- return _classPrivateMethodGet(_this, _onModifyColumnHeaderValue, _onModifyColumnHeaderValue2).call(_this, ...args);
215
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onModifyColumnHeaderValue).call(_this, ...args);
381
216
  });
382
217
  this.addHook('beforeHighlightingColumnHeader', function () {
383
218
  for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
384
219
  args[_key11] = arguments[_key11];
385
220
  }
386
- return _classPrivateMethodGet(_this, _onBeforeHighlightingColumnHeader, _onBeforeHighlightingColumnHeader2).call(_this, ...args);
221
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeHighlightingColumnHeader).call(_this, ...args);
387
222
  });
388
223
  this.addHook('beforeCopy', function () {
389
224
  for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
390
225
  args[_key12] = arguments[_key12];
391
226
  }
392
- return _classPrivateMethodGet(_this, _onBeforeCopy, _onBeforeCopy2).call(_this, ...args);
227
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeCopy).call(_this, ...args);
393
228
  });
394
229
  this.addHook('beforeSelectColumns', function () {
395
230
  for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
396
231
  args[_key13] = arguments[_key13];
397
232
  }
398
- return _classPrivateMethodGet(_this, _onBeforeSelectColumns, _onBeforeSelectColumns2).call(_this, ...args);
233
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeSelectColumns).call(_this, ...args);
399
234
  });
400
235
  this.addHook('afterViewportColumnCalculatorOverride', function () {
401
236
  for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
402
237
  args[_key14] = arguments[_key14];
403
238
  }
404
- return _classPrivateMethodGet(_this, _onAfterViewportColumnCalculatorOverride, _onAfterViewportColumnCalculatorOverride2).call(_this, ...args);
239
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onAfterViewportColumnCalculatorOverride).call(_this, ...args);
405
240
  });
406
241
  this.addHook('modifyFocusedElement', function () {
407
242
  for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
408
243
  args[_key15] = arguments[_key15];
409
244
  }
410
- return _classPrivateMethodGet(_this, _onModifyFocusedElement, _onModifyFocusedElement2).call(_this, ...args);
245
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onModifyFocusedElement).call(_this, ...args);
411
246
  });
412
- this.hot.columnIndexMapper.addLocalHook('cacheUpdated', () => _classPrivateMethodGet(this, _updateFocusHighlightPosition, _updateFocusHighlightPosition2).call(this));
413
- this.hot.rowIndexMapper.addLocalHook('cacheUpdated', () => _classPrivateMethodGet(this, _updateFocusHighlightPosition, _updateFocusHighlightPosition2).call(this));
247
+ this.hot.columnIndexMapper.addLocalHook('cacheUpdated', () => _assertClassBrand(_NestedHeaders_brand, this, _updateFocusHighlightPosition).call(this));
248
+ this.hot.rowIndexMapper.addLocalHook('cacheUpdated', () => _assertClassBrand(_NestedHeaders_brand, this, _updateFocusHighlightPosition).call(this));
414
249
  super.enablePlugin();
415
250
  this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
416
251
  }
@@ -429,9 +264,9 @@ export class NestedHeaders extends BasePlugin {
429
264
  const {
430
265
  nestedHeaders
431
266
  } = this.hot.getSettings();
432
- _classPrivateFieldGet(this, _stateManager).setColumnsLimit(this.hot.countCols());
267
+ _classPrivateFieldGet(_stateManager, this).setColumnsLimit(this.hot.countCols());
433
268
  if (Array.isArray(nestedHeaders)) {
434
- this.detectedOverlappedHeaders = _classPrivateFieldGet(this, _stateManager).setState(nestedHeaders);
269
+ this.detectedOverlappedHeaders = _classPrivateFieldGet(_stateManager, this).setState(nestedHeaders);
435
270
  }
436
271
  if (this.detectedOverlappedHeaders) {
437
272
  warn(toSingleLine`Your Nested Headers plugin setup contains overlapping headers. This kind of configuration\x20
@@ -443,11 +278,11 @@ export class NestedHeaders extends BasePlugin {
443
278
  // as if all the columns are visible, needs to be modified to be in sync with a dataset.
444
279
  this.hot.columnIndexMapper.hidingMapsCollection.getMergedValues().forEach((isColumnHidden, physicalColumnIndex) => {
445
280
  const actionName = isColumnHidden === true ? 'hide-column' : 'show-column';
446
- _classPrivateFieldGet(this, _stateManager).triggerColumnModification(actionName, physicalColumnIndex);
281
+ _classPrivateFieldGet(_stateManager, this).triggerColumnModification(actionName, physicalColumnIndex);
447
282
  });
448
283
  }
449
- if (!_classPrivateFieldGet(this, _hidingIndexMapObserver) && this.enabled) {
450
- _classPrivateFieldSet(this, _hidingIndexMapObserver, this.hot.columnIndexMapper.createChangesObserver('hiding').subscribe(changes => {
284
+ if (!_classPrivateFieldGet(_hidingIndexMapObserver, this) && this.enabled) {
285
+ _classPrivateFieldSet(_hidingIndexMapObserver, this, this.hot.columnIndexMapper.createChangesObserver('hiding').subscribe(changes => {
451
286
  changes.forEach(_ref => {
452
287
  let {
453
288
  op,
@@ -456,7 +291,7 @@ export class NestedHeaders extends BasePlugin {
456
291
  } = _ref;
457
292
  if (op === 'replace') {
458
293
  const actionName = newValue === true ? 'hide-column' : 'show-column';
459
- _classPrivateFieldGet(this, _stateManager).triggerColumnModification(actionName, columnIndex);
294
+ _classPrivateFieldGet(_stateManager, this).triggerColumnModification(actionName, columnIndex);
460
295
  }
461
296
  });
462
297
  this.ghostTable.buildWidthsMap();
@@ -471,9 +306,9 @@ export class NestedHeaders extends BasePlugin {
471
306
  */
472
307
  disablePlugin() {
473
308
  this.clearColspans();
474
- _classPrivateFieldGet(this, _stateManager).clear();
475
- _classPrivateFieldGet(this, _hidingIndexMapObserver).unsubscribe();
476
- _classPrivateFieldSet(this, _hidingIndexMapObserver, null);
309
+ _classPrivateFieldGet(_stateManager, this).clear();
310
+ _classPrivateFieldGet(_hidingIndexMapObserver, this).unsubscribe();
311
+ _classPrivateFieldSet(_hidingIndexMapObserver, this, null);
477
312
  this.ghostTable.clear();
478
313
  super.disablePlugin();
479
314
  }
@@ -485,7 +320,7 @@ export class NestedHeaders extends BasePlugin {
485
320
  * @returns {StateManager}
486
321
  */
487
322
  getStateManager() {
488
- return _classPrivateFieldGet(this, _stateManager);
323
+ return _classPrivateFieldGet(_stateManager, this);
489
324
  }
490
325
 
491
326
  /**
@@ -495,7 +330,7 @@ export class NestedHeaders extends BasePlugin {
495
330
  * @returns {number}
496
331
  */
497
332
  getLayersCount() {
498
- return _classPrivateFieldGet(this, _stateManager).getLayersCount();
333
+ return _classPrivateFieldGet(_stateManager, this).getLayersCount();
499
334
  }
500
335
 
501
336
  /**
@@ -509,7 +344,7 @@ export class NestedHeaders extends BasePlugin {
509
344
  * @returns {object}
510
345
  */
511
346
  getHeaderSettings(headerLevel, columnIndex) {
512
- return _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, columnIndex);
347
+ return _classPrivateFieldGet(_stateManager, this).getHeaderSettings(headerLevel, columnIndex);
513
348
  }
514
349
 
515
350
  /**
@@ -578,7 +413,7 @@ export class NestedHeaders extends BasePlugin {
578
413
  colspan,
579
414
  isHidden,
580
415
  isPlaceholder
581
- } = (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : {
416
+ } = (_classPrivateFieldGet2 = _classPrivateFieldGet(_stateManager, this).getHeaderSettings(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : {
582
417
  label: ''
583
418
  };
584
419
  if (isPlaceholder || isHidden) {
@@ -619,7 +454,7 @@ export class NestedHeaders extends BasePlugin {
619
454
  const {
620
455
  isHidden,
621
456
  isPlaceholder
622
- } = (_classPrivateFieldGet3 = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet3 !== void 0 ? _classPrivateFieldGet3 : {};
457
+ } = (_classPrivateFieldGet3 = _classPrivateFieldGet(_stateManager, this).getHeaderSettings(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet3 !== void 0 ? _classPrivateFieldGet3 : {};
623
458
  if (isPlaceholder || isHidden) {
624
459
  return '';
625
460
  }
@@ -629,10 +464,10 @@ export class NestedHeaders extends BasePlugin {
629
464
  * Destroys the plugin instance.
630
465
  */
631
466
  destroy() {
632
- _classPrivateFieldSet(this, _stateManager, null);
633
- if (_classPrivateFieldGet(this, _hidingIndexMapObserver) !== null) {
634
- _classPrivateFieldGet(this, _hidingIndexMapObserver).unsubscribe();
635
- _classPrivateFieldSet(this, _hidingIndexMapObserver, null);
467
+ _classPrivateFieldSet(_stateManager, this, null);
468
+ if (_classPrivateFieldGet(_hidingIndexMapObserver, this) !== null) {
469
+ _classPrivateFieldGet(_hidingIndexMapObserver, this).unsubscribe();
470
+ _classPrivateFieldSet(_hidingIndexMapObserver, this, null);
636
471
  }
637
472
  super.destroy();
638
473
  }
@@ -648,10 +483,10 @@ export class NestedHeaders extends BasePlugin {
648
483
  if (coords.row >= 0 || coords.col < 0) {
649
484
  return;
650
485
  }
651
- return _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(coords.row, coords.col);
486
+ return _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(coords.row, coords.col);
652
487
  }
653
488
  }
654
- function _updateFocusHighlightPosition2() {
489
+ function _updateFocusHighlightPosition() {
655
490
  var _this$hot;
656
491
  const selection = (_this$hot = this.hot) === null || _this$hot === void 0 ? void 0 : _this$hot.getSelectedRangeLast();
657
492
  if (!selection) {
@@ -662,7 +497,7 @@ function _updateFocusHighlightPosition2() {
662
497
  } = selection;
663
498
  const isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;
664
499
  if (isNestedHeadersRange) {
665
- const columnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
500
+ const columnIndex = _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(highlight.row, highlight.col);
666
501
  const focusHighlight = this.hot.selection.highlight.getFocus();
667
502
 
668
503
  // Correct the highlight/focus selection to highlight the correct TH element
@@ -672,7 +507,15 @@ function _updateFocusHighlightPosition2() {
672
507
  focusHighlight.commit();
673
508
  }
674
509
  }
675
- function _onBeforeViewportScrollHorizontally2(visualColumn) {
510
+ /**
511
+ * Allows to control to which column index the viewport will be scrolled. To ensure that the viewport
512
+ * is scrolled to the correct column for the nested header the most left and the most right visual column
513
+ * indexes are used.
514
+ *
515
+ * @param {number} visualColumn A visual column index to which the viewport will be scrolled.
516
+ * @returns {number}
517
+ */
518
+ function _onBeforeViewportScrollHorizontally(visualColumn) {
676
519
  const selection = this.hot.getSelectedRangeLast();
677
520
  if (!selection) {
678
521
  return visualColumn;
@@ -686,8 +529,8 @@ function _onBeforeViewportScrollHorizontally2(visualColumn) {
686
529
  }
687
530
  const firstColumn = this.hot.view.getFirstFullyVisibleColumn();
688
531
  const lastColumn = this.hot.view.getLastFullyVisibleColumn();
689
- const mostLeftColumnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
690
- const mostRightColumnIndex = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(highlight.row, highlight.col);
532
+ const mostLeftColumnIndex = _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(highlight.row, highlight.col);
533
+ const mostRightColumnIndex = _classPrivateFieldGet(_stateManager, this).findRightMostColumnIndex(highlight.row, highlight.col);
691
534
 
692
535
  // do not scroll the viewport when the header is wider than the viewport
693
536
  if (mostLeftColumnIndex < firstColumn && mostRightColumnIndex > lastColumn) {
@@ -695,8 +538,16 @@ function _onBeforeViewportScrollHorizontally2(visualColumn) {
695
538
  }
696
539
  return mostLeftColumnIndex < firstColumn ? mostLeftColumnIndex : mostRightColumnIndex;
697
540
  }
698
- function _onBeforeHighlightingColumnHeader2(visualColumn, headerLevel, highlightMeta) {
699
- const headerNodeData = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(headerLevel, visualColumn);
541
+ /**
542
+ * Allows to control which header DOM element will be used to highlight.
543
+ *
544
+ * @param {number} visualColumn A visual column index of the highlighted row header.
545
+ * @param {number} headerLevel A row header level that is currently highlighted.
546
+ * @param {object} highlightMeta An object with meta data that describes the highlight state.
547
+ * @returns {number}
548
+ */
549
+ function _onBeforeHighlightingColumnHeader(visualColumn, headerLevel, highlightMeta) {
550
+ const headerNodeData = _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(headerLevel, visualColumn);
700
551
  if (!headerNodeData) {
701
552
  return visualColumn;
702
553
  }
@@ -708,7 +559,7 @@ function _onBeforeHighlightingColumnHeader2(visualColumn, headerLevel, highlight
708
559
  const {
709
560
  isRoot,
710
561
  colspan
711
- } = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumn);
562
+ } = _classPrivateFieldGet(_stateManager, this).getHeaderSettings(headerLevel, visualColumn);
712
563
  if (selectionType === HEADER_TYPE) {
713
564
  if (!isRoot) {
714
565
  return headerNodeData.columnIndex;
@@ -721,7 +572,19 @@ function _onBeforeHighlightingColumnHeader2(visualColumn, headerLevel, highlight
721
572
  }
722
573
  return visualColumn;
723
574
  }
724
- function _onBeforeCopy2(data, copyableRanges, _ref2) {
575
+ /**
576
+ * Listens the `beforeCopy` hook that allows processing the copied column headers so that the
577
+ * merged column headers do not propagate the value for each column but only once at the beginning
578
+ * of the column.
579
+ *
580
+ * @private
581
+ * @param {Array[]} data An array of arrays which contains data to copied.
582
+ * @param {object[]} copyableRanges An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
583
+ * which will copied.
584
+ * @param {{ columnHeadersCount: number }} copiedHeadersCount An object with keys that holds information with
585
+ * the number of copied headers.
586
+ */
587
+ function _onBeforeCopy(data, copyableRanges, _ref2) {
725
588
  let {
726
589
  columnHeadersCount
727
590
  } = _ref2;
@@ -750,7 +613,7 @@ function _onBeforeCopy2(data, copyableRanges, _ref2) {
750
613
  if (zeroBasedColumnIndex === 0) {
751
614
  continue; // eslint-disable-line no-continue
752
615
  }
753
- const isRoot = (_classPrivateFieldGet4 = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(row, column)) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.isRoot;
616
+ const isRoot = (_classPrivateFieldGet4 = _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(row, column)) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.isRoot;
754
617
  if (isRoot === false) {
755
618
  data[zeroBasedColumnHeaderLevel][zeroBasedColumnIndex] = '';
756
619
  }
@@ -758,7 +621,16 @@ function _onBeforeCopy2(data, copyableRanges, _ref2) {
758
621
  }
759
622
  }
760
623
  }
761
- function _onBeforeOnCellMouseDown2(event, coords, TD, controller) {
624
+ /**
625
+ * Allows blocking the column selection that is controlled by the core Selection module.
626
+ *
627
+ * @param {MouseEvent} event Mouse event.
628
+ * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.
629
+ * @param {CellCoords} TD The table cell or header element.
630
+ * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
631
+ * a boolean value that allows or disallows changing the selection for that particular area.
632
+ */
633
+ function _onBeforeOnCellMouseDown(event, coords, TD, controller) {
762
634
  const headerNodeData = this._getHeaderTreeNodeDataByCoords(coords);
763
635
  if (headerNodeData) {
764
636
  // Block the Selection module in controlling how the columns are selected. Pass the
@@ -766,13 +638,19 @@ function _onBeforeOnCellMouseDown2(event, coords, TD, controller) {
766
638
  controller.column = true;
767
639
  }
768
640
  }
769
- function _onAfterOnCellMouseDown2(event, coords) {
641
+ /**
642
+ * Allows to control how the column selection based on the coordinates and the nested headers is made.
643
+ *
644
+ * @param {MouseEvent} event Mouse event.
645
+ * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.
646
+ */
647
+ function _onAfterOnCellMouseDown(event, coords) {
770
648
  const headerNodeData = this._getHeaderTreeNodeDataByCoords(coords);
771
649
  if (!headerNodeData) {
772
650
  return;
773
651
  }
774
- _classPrivateFieldSet(this, _focusInitialCoords, coords.clone());
775
- _classPrivateFieldSet(this, _isColumnsSelectionInProgress, true);
652
+ _classPrivateFieldSet(_focusInitialCoords, this, coords.clone());
653
+ _classPrivateFieldSet(_isColumnsSelectionInProgress, this, true);
776
654
  const {
777
655
  selection
778
656
  } = this.hot;
@@ -803,7 +681,16 @@ function _onAfterOnCellMouseDown2(event, coords) {
803
681
  // The plugin takes control of how the columns are selected.
804
682
  selection.selectColumns(...columnsToSelect);
805
683
  }
806
- function _onBeforeOnCellMouseOver2(event, coords, TD, controller) {
684
+ /**
685
+ * Makes the header-selection properly select the nested headers.
686
+ *
687
+ * @param {MouseEvent} event Mouse event.
688
+ * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.
689
+ * @param {HTMLElement} TD The cell element.
690
+ * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
691
+ * a boolean value that allows or disallows changing the selection for that particular area.
692
+ */
693
+ function _onBeforeOnCellMouseOver(event, coords, TD, controller) {
807
694
  if (!this.hot.view.isMouseDown()) {
808
695
  return;
809
696
  }
@@ -837,14 +724,21 @@ function _onBeforeOnCellMouseOver2(event, coords, TD, controller) {
837
724
  }
838
725
  this.hot.selection.selectColumns(...columnsToSelect);
839
726
  }
840
- function _onBeforeOnCellMouseUp2() {
841
- _classPrivateFieldSet(this, _isColumnsSelectionInProgress, false);
727
+ /**
728
+ * Switches internal flag about selection progress to `false`.
729
+ */
730
+ function _onBeforeOnCellMouseUp() {
731
+ _classPrivateFieldSet(_isColumnsSelectionInProgress, this, false);
842
732
  }
843
- function _onBeforeSelectionHighlightSet2() {
733
+ /**
734
+ * The hook checks and ensures that the focus position that depends on the selected columns
735
+ * range is always positioned within the range.
736
+ */
737
+ function _onBeforeSelectionHighlightSet() {
844
738
  const {
845
739
  navigableHeaders
846
740
  } = this.hot.getSettings();
847
- if (!this.hot.view.isMouseDown() || !_classPrivateFieldGet(this, _isColumnsSelectionInProgress) || !navigableHeaders) {
741
+ if (!this.hot.view.isMouseDown() || !_classPrivateFieldGet(_isColumnsSelectionInProgress, this) || !navigableHeaders) {
848
742
  return;
849
743
  }
850
744
  const selectedRange = this.hot.getSelectedRangeLast();
@@ -853,15 +747,20 @@ function _onBeforeSelectionHighlightSet2() {
853
747
  const {
854
748
  columnIndex,
855
749
  origColspan
856
- } = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(_classPrivateFieldGet(this, _focusInitialCoords).row, _classPrivateFieldGet(this, _focusInitialCoords).col);
857
- selectedRange.setHighlight(_classPrivateFieldGet(this, _focusInitialCoords));
750
+ } = _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(_classPrivateFieldGet(_focusInitialCoords, this).row, _classPrivateFieldGet(_focusInitialCoords, this).col);
751
+ selectedRange.setHighlight(_classPrivateFieldGet(_focusInitialCoords, this));
858
752
  if (origColspan > selectedRange.getWidth() || columnIndex < columnStart || columnIndex + origColspan - 1 > columnEnd) {
859
- const headerLevel = _classPrivateFieldGet(this, _stateManager).findTopMostEntireHeaderLevel(clamp(columnStart, columnIndex, columnIndex + origColspan - 1), clamp(columnEnd, columnIndex, columnIndex + origColspan - 1));
753
+ const headerLevel = _classPrivateFieldGet(_stateManager, this).findTopMostEntireHeaderLevel(clamp(columnStart, columnIndex, columnIndex + origColspan - 1), clamp(columnEnd, columnIndex, columnIndex + origColspan - 1));
860
754
  selectedRange.highlight.row = headerLevel;
861
755
  selectedRange.highlight.col = selectedRange.from.col;
862
756
  }
863
757
  }
864
- function _onModifyTransformStart2(delta) {
758
+ /**
759
+ * `modifyTransformStart` hook is called every time the keyboard navigation is used.
760
+ *
761
+ * @param {object} delta The transformation delta.
762
+ */
763
+ function _onModifyTransformStart(delta) {
865
764
  const {
866
765
  highlight
867
766
  } = this.hot.getSelectedRangeLast();
@@ -870,8 +769,8 @@ function _onModifyTransformStart2(delta) {
870
769
  if (!isNestedHeadersRange) {
871
770
  return;
872
771
  }
873
- const visualColumnIndexStart = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(nextCoords.row, nextCoords.col);
874
- const visualColumnIndexEnd = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(nextCoords.row, nextCoords.col);
772
+ const visualColumnIndexStart = _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(nextCoords.row, nextCoords.col);
773
+ const visualColumnIndexEnd = _classPrivateFieldGet(_stateManager, this).findRightMostColumnIndex(nextCoords.row, nextCoords.col);
875
774
  if (delta.col < 0) {
876
775
  const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;
877
776
  const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);
@@ -894,7 +793,14 @@ function _onModifyTransformStart2(delta) {
894
793
  }
895
794
  }
896
795
  }
897
- function _onBeforeSelectColumns2(from, to) {
796
+ /**
797
+ * The hook observes the column selection from the Selection API and modifies the column range to
798
+ * ensure that the whole nested column will be covered.
799
+ *
800
+ * @param {CellCoords} from The coords object where the selection starts.
801
+ * @param {CellCoords} to The coords object where the selection ends.
802
+ */
803
+ function _onBeforeSelectColumns(from, to) {
898
804
  const headerLevel = from.row;
899
805
  const startNodeData = this._getHeaderTreeNodeDataByCoords({
900
806
  row: headerLevel,
@@ -922,18 +828,28 @@ function _onBeforeSelectColumns2(from, to) {
922
828
  }
923
829
  }
924
830
  }
925
- function _onAfterGetColumnHeaderRenderers2(renderersArray) {
831
+ /**
832
+ * `afterGetColumnHeader` hook callback - prepares the header structure.
833
+ *
834
+ * @param {Array} renderersArray Array of renderers.
835
+ */
836
+ function _onAfterGetColumnHeaderRenderers(renderersArray) {
926
837
  renderersArray.length = 0;
927
- for (let headerLayer = 0; headerLayer < _classPrivateFieldGet(this, _stateManager).getLayersCount(); headerLayer++) {
838
+ for (let headerLayer = 0; headerLayer < _classPrivateFieldGet(_stateManager, this).getLayersCount(); headerLayer++) {
928
839
  renderersArray.push(this.headerRendererFactory(headerLayer));
929
840
  }
930
841
  }
931
- function _onAfterViewportColumnCalculatorOverride2(calc) {
932
- const headerLayersCount = _classPrivateFieldGet(this, _stateManager).getLayersCount();
842
+ /**
843
+ * Make the renderer render the first nested column in its entirety.
844
+ *
845
+ * @param {object} calc Viewport column calculator.
846
+ */
847
+ function _onAfterViewportColumnCalculatorOverride(calc) {
848
+ const headerLayersCount = _classPrivateFieldGet(_stateManager, this).getLayersCount();
933
849
  let newStartColumn = calc.startColumn;
934
850
  let nonRenderable = !!headerLayersCount;
935
851
  for (let headerLayer = 0; headerLayer < headerLayersCount; headerLayer++) {
936
- const startColumn = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(headerLayer, calc.startColumn);
852
+ const startColumn = _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(headerLayer, calc.startColumn);
937
853
  const renderedStartColumn = this.hot.columnIndexMapper.getRenderableFromVisualIndex(startColumn);
938
854
 
939
855
  // If any of the headers for that column index is rendered, all of them should be rendered properly, see
@@ -952,31 +868,67 @@ function _onAfterViewportColumnCalculatorOverride2(calc) {
952
868
 
953
869
  // If no headers for the provided column index are renderable, start rendering from the beginning of the upmost
954
870
  // header for that position.
955
- calc.startColumn = nonRenderable ? _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(0, newStartColumn).columnIndex : newStartColumn;
871
+ calc.startColumn = nonRenderable ? _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(0, newStartColumn).columnIndex : newStartColumn;
956
872
  }
957
- function _onModifyColWidth2(width, column) {
873
+ /**
874
+ * `modifyColWidth` hook callback - returns width from cache, when is greater than incoming from hook.
875
+ *
876
+ * @param {number} width Width from hook.
877
+ * @param {number} column Visual index of an column.
878
+ * @returns {number}
879
+ */
880
+ function _onModifyColWidth(width, column) {
958
881
  const cachedWidth = this.ghostTable.getWidth(column);
959
882
  return width > cachedWidth ? width : cachedWidth;
960
883
  }
961
- function _onModifyColumnHeaderValue2(value, visualColumnIndex, headerLevel) {
884
+ /**
885
+ * Listens the `modifyColumnHeaderValue` hook that overwrites the column headers values based on
886
+ * the internal state and settings of the plugin.
887
+ *
888
+ * @param {string} value The column header value.
889
+ * @param {number} visualColumnIndex The visual column index.
890
+ * @param {number} headerLevel The index of header level. The header level accepts positive (0 to N)
891
+ * and negative (-1 to -N) values. For positive values, 0 points to the
892
+ * top most header, and for negative direction, -1 points to the most bottom
893
+ * header (the header closest to the cells).
894
+ * @returns {string} Returns the column header value to update.
895
+ */
896
+ function _onModifyColumnHeaderValue(value, visualColumnIndex, headerLevel) {
962
897
  var _classPrivateFieldGet5;
963
898
  const {
964
899
  label
965
- } = (_classPrivateFieldGet5 = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet5 !== void 0 ? _classPrivateFieldGet5 : {
900
+ } = (_classPrivateFieldGet5 = _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet5 !== void 0 ? _classPrivateFieldGet5 : {
966
901
  label: ''
967
902
  };
968
903
  return label;
969
904
  }
970
- function _onModifyFocusedElement2(row, column) {
905
+ /**
906
+ * `modifyFocusedElement` hook callback.
907
+ *
908
+ * @param {number} row Row index.
909
+ * @param {number} column Column index.
910
+ * @returns {HTMLTableCellElement} The `TH` element to be focused.
911
+ */
912
+ function _onModifyFocusedElement(row, column) {
971
913
  if (row < 0) {
972
- return this.hot.getCell(row, _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(row, column), true);
914
+ return this.hot.getCell(row, _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(row, column), true);
973
915
  }
974
916
  }
975
- function _onInit2() {
917
+ /**
918
+ * Updates the plugin state after HoT initialization.
919
+ */
920
+ function _onInit() {
976
921
  // @TODO: Workaround for broken plugin initialization abstraction.
977
922
  this.updatePlugin();
978
923
  }
979
- function _onAfterLoadData2(sourceData, initialLoad) {
924
+ /**
925
+ * Updates the plugin state after new dataset load.
926
+ *
927
+ * @param {Array[]} sourceData Array of arrays or array of objects containing data.
928
+ * @param {boolean} initialLoad Flag that determines whether the data has been loaded
929
+ * during the initialization.
930
+ */
931
+ function _onAfterLoadData(sourceData, initialLoad) {
980
932
  if (!initialLoad) {
981
933
  this.updatePlugin();
982
934
  }