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
@@ -15,16 +15,13 @@ var _ghostTable = _interopRequireDefault(require("./utils/ghostTable"));
15
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
16
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
17
17
  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; }
18
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
19
19
  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); }
20
20
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
21
21
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
22
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
23
- 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; } }
24
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
25
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
26
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
27
- function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
22
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
23
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
24
+ 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"); }
28
25
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'nestedHeaders';
29
26
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 280;
30
27
 
@@ -77,203 +74,40 @@ var _stateManager = /*#__PURE__*/new WeakMap();
77
74
  var _hidingIndexMapObserver = /*#__PURE__*/new WeakMap();
78
75
  var _focusInitialCoords = /*#__PURE__*/new WeakMap();
79
76
  var _isColumnsSelectionInProgress = /*#__PURE__*/new WeakMap();
80
- var _updateFocusHighlightPosition = /*#__PURE__*/new WeakSet();
81
- var _onBeforeViewportScrollHorizontally = /*#__PURE__*/new WeakSet();
82
- var _onBeforeHighlightingColumnHeader = /*#__PURE__*/new WeakSet();
83
- var _onBeforeCopy = /*#__PURE__*/new WeakSet();
84
- var _onBeforeOnCellMouseDown = /*#__PURE__*/new WeakSet();
85
- var _onAfterOnCellMouseDown = /*#__PURE__*/new WeakSet();
86
- var _onBeforeOnCellMouseOver = /*#__PURE__*/new WeakSet();
87
- var _onBeforeOnCellMouseUp = /*#__PURE__*/new WeakSet();
88
- var _onBeforeSelectionHighlightSet = /*#__PURE__*/new WeakSet();
89
- var _onModifyTransformStart = /*#__PURE__*/new WeakSet();
90
- var _onBeforeSelectColumns = /*#__PURE__*/new WeakSet();
91
- var _onAfterGetColumnHeaderRenderers = /*#__PURE__*/new WeakSet();
92
- var _onAfterViewportColumnCalculatorOverride = /*#__PURE__*/new WeakSet();
93
- var _onModifyColWidth = /*#__PURE__*/new WeakSet();
94
- var _onModifyColumnHeaderValue = /*#__PURE__*/new WeakSet();
95
- var _onModifyFocusedElement = /*#__PURE__*/new WeakSet();
96
- var _onInit = /*#__PURE__*/new WeakSet();
97
- var _onAfterLoadData = /*#__PURE__*/new WeakSet();
77
+ var _NestedHeaders_brand = /*#__PURE__*/new WeakSet();
98
78
  class NestedHeaders extends _base.BasePlugin {
99
79
  constructor() {
100
80
  super(...arguments);
101
- /**
102
- * Updates the plugin state after new dataset load.
103
- *
104
- * @param {Array[]} sourceData Array of arrays or array of objects containing data.
105
- * @param {boolean} initialLoad Flag that determines whether the data has been loaded
106
- * during the initialization.
107
- */
108
- _classPrivateMethodInitSpec(this, _onAfterLoadData);
109
- /**
110
- * Updates the plugin state after HoT initialization.
111
- */
112
- _classPrivateMethodInitSpec(this, _onInit);
113
- /**
114
- * `modifyFocusedElement` hook callback.
115
- *
116
- * @param {number} row Row index.
117
- * @param {number} column Column index.
118
- * @returns {HTMLTableCellElement} The `TH` element to be focused.
119
- */
120
- _classPrivateMethodInitSpec(this, _onModifyFocusedElement);
121
- /**
122
- * Listens the `modifyColumnHeaderValue` hook that overwrites the column headers values based on
123
- * the internal state and settings of the plugin.
124
- *
125
- * @param {string} value The column header value.
126
- * @param {number} visualColumnIndex The visual column index.
127
- * @param {number} headerLevel The index of header level. The header level accepts positive (0 to N)
128
- * and negative (-1 to -N) values. For positive values, 0 points to the
129
- * top most header, and for negative direction, -1 points to the most bottom
130
- * header (the header closest to the cells).
131
- * @returns {string} Returns the column header value to update.
132
- */
133
- _classPrivateMethodInitSpec(this, _onModifyColumnHeaderValue);
134
- /**
135
- * `modifyColWidth` hook callback - returns width from cache, when is greater than incoming from hook.
136
- *
137
- * @param {number} width Width from hook.
138
- * @param {number} column Visual index of an column.
139
- * @returns {number}
140
- */
141
- _classPrivateMethodInitSpec(this, _onModifyColWidth);
142
- /**
143
- * Make the renderer render the first nested column in its entirety.
144
- *
145
- * @param {object} calc Viewport column calculator.
146
- */
147
- _classPrivateMethodInitSpec(this, _onAfterViewportColumnCalculatorOverride);
148
- /**
149
- * `afterGetColumnHeader` hook callback - prepares the header structure.
150
- *
151
- * @param {Array} renderersArray Array of renderers.
152
- */
153
- _classPrivateMethodInitSpec(this, _onAfterGetColumnHeaderRenderers);
154
- /**
155
- * The hook observes the column selection from the Selection API and modifies the column range to
156
- * ensure that the whole nested column will be covered.
157
- *
158
- * @param {CellCoords} from The coords object where the selection starts.
159
- * @param {CellCoords} to The coords object where the selection ends.
160
- */
161
- _classPrivateMethodInitSpec(this, _onBeforeSelectColumns);
162
- /**
163
- * `modifyTransformStart` hook is called every time the keyboard navigation is used.
164
- *
165
- * @param {object} delta The transformation delta.
166
- */
167
- _classPrivateMethodInitSpec(this, _onModifyTransformStart);
168
- /**
169
- * The hook checks and ensures that the focus position that depends on the selected columns
170
- * range is always positioned within the range.
171
- */
172
- _classPrivateMethodInitSpec(this, _onBeforeSelectionHighlightSet);
173
- /**
174
- * Switches internal flag about selection progress to `false`.
175
- */
176
- _classPrivateMethodInitSpec(this, _onBeforeOnCellMouseUp);
177
- /**
178
- * Makes the header-selection properly select the nested headers.
179
- *
180
- * @param {MouseEvent} event Mouse event.
181
- * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.
182
- * @param {HTMLElement} TD The cell element.
183
- * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
184
- * a boolean value that allows or disallows changing the selection for that particular area.
185
- */
186
- _classPrivateMethodInitSpec(this, _onBeforeOnCellMouseOver);
187
- /**
188
- * Allows to control how the column selection based on the coordinates and the nested headers is made.
189
- *
190
- * @param {MouseEvent} event Mouse event.
191
- * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.
192
- */
193
- _classPrivateMethodInitSpec(this, _onAfterOnCellMouseDown);
194
- /**
195
- * Allows blocking the column selection that is controlled by the core Selection module.
196
- *
197
- * @param {MouseEvent} event Mouse event.
198
- * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.
199
- * @param {CellCoords} TD The table cell or header element.
200
- * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
201
- * a boolean value that allows or disallows changing the selection for that particular area.
202
- */
203
- _classPrivateMethodInitSpec(this, _onBeforeOnCellMouseDown);
204
- /**
205
- * Listens the `beforeCopy` hook that allows processing the copied column headers so that the
206
- * merged column headers do not propagate the value for each column but only once at the beginning
207
- * of the column.
208
- *
209
- * @private
210
- * @param {Array[]} data An array of arrays which contains data to copied.
211
- * @param {object[]} copyableRanges An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
212
- * which will copied.
213
- * @param {{ columnHeadersCount: number }} copiedHeadersCount An object with keys that holds information with
214
- * the number of copied headers.
215
- */
216
- _classPrivateMethodInitSpec(this, _onBeforeCopy);
217
- /**
218
- * Allows to control which header DOM element will be used to highlight.
219
- *
220
- * @param {number} visualColumn A visual column index of the highlighted row header.
221
- * @param {number} headerLevel A row header level that is currently highlighted.
222
- * @param {object} highlightMeta An object with meta data that describes the highlight state.
223
- * @returns {number}
224
- */
225
- _classPrivateMethodInitSpec(this, _onBeforeHighlightingColumnHeader);
226
- /**
227
- * Allows to control to which column index the viewport will be scrolled. To ensure that the viewport
228
- * is scrolled to the correct column for the nested header the most left and the most right visual column
229
- * indexes are used.
230
- *
231
- * @param {number} visualColumn A visual column index to which the viewport will be scrolled.
232
- * @returns {number}
233
- */
234
- _classPrivateMethodInitSpec(this, _onBeforeViewportScrollHorizontally);
235
81
  /**
236
82
  * Updates the selection focus highlight position to point to the nested header root element (TH)
237
83
  * even when the logical coordinates point in-between the header.
238
84
  */
239
- _classPrivateMethodInitSpec(this, _updateFocusHighlightPosition);
85
+ _classPrivateMethodInitSpec(this, _NestedHeaders_brand);
240
86
  /**
241
87
  * The state manager for the nested headers.
242
88
  *
243
89
  * @type {StateManager}
244
90
  */
245
- _classPrivateFieldInitSpec(this, _stateManager, {
246
- writable: true,
247
- value: new _stateManager2.default()
248
- });
91
+ _classPrivateFieldInitSpec(this, _stateManager, new _stateManager2.default());
249
92
  /**
250
93
  * The instance of the ChangesObservable class that allows track the changes that happens in the
251
94
  * column indexes.
252
95
  *
253
96
  * @type {ChangesObservable}
254
97
  */
255
- _classPrivateFieldInitSpec(this, _hidingIndexMapObserver, {
256
- writable: true,
257
- value: null
258
- });
98
+ _classPrivateFieldInitSpec(this, _hidingIndexMapObserver, null);
259
99
  /**
260
100
  * Holds the coords that points to the place where the column selection starts.
261
101
  *
262
102
  * @type {number|null}
263
103
  */
264
- _classPrivateFieldInitSpec(this, _focusInitialCoords, {
265
- writable: true,
266
- value: null
267
- });
104
+ _classPrivateFieldInitSpec(this, _focusInitialCoords, null);
268
105
  /**
269
106
  * Determines if there is performed the column selection.
270
107
  *
271
108
  * @type {boolean}
272
109
  */
273
- _classPrivateFieldInitSpec(this, _isColumnsSelectionInProgress, {
274
- writable: true,
275
- value: false
276
- });
110
+ _classPrivateFieldInitSpec(this, _isColumnsSelectionInProgress, false);
277
111
  /**
278
112
  * Custom helper for getting widths of the nested headers.
279
113
  *
@@ -320,101 +154,102 @@ class NestedHeaders extends _base.BasePlugin {
320
154
  (0, _console.warn)((0, _templateLiteralTag.toSingleLine)`Your Nested Headers plugin configuration is invalid. The settings has to be\x20
321
155
  passed as an array of arrays e.q. [['A1', { label: 'A2', colspan: 2 }]]`);
322
156
  }
323
- this.addHook('init', () => _classPrivateMethodGet(this, _onInit, _onInit2).call(this));
157
+ this.addHook('init', () => _assertClassBrand(_NestedHeaders_brand, this, _onInit).call(this));
324
158
  this.addHook('afterLoadData', function () {
325
159
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
326
160
  args[_key] = arguments[_key];
327
161
  }
328
- return _classPrivateMethodGet(_this, _onAfterLoadData, _onAfterLoadData2).call(_this, ...args);
162
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onAfterLoadData).call(_this, ...args);
329
163
  });
330
164
  this.addHook('beforeOnCellMouseDown', function () {
331
165
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
332
166
  args[_key2] = arguments[_key2];
333
167
  }
334
- return _classPrivateMethodGet(_this, _onBeforeOnCellMouseDown, _onBeforeOnCellMouseDown2).call(_this, ...args);
168
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeOnCellMouseDown).call(_this, ...args);
335
169
  });
336
170
  this.addHook('afterOnCellMouseDown', function () {
337
171
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
338
172
  args[_key3] = arguments[_key3];
339
173
  }
340
- return _classPrivateMethodGet(_this, _onAfterOnCellMouseDown, _onAfterOnCellMouseDown2).call(_this, ...args);
174
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onAfterOnCellMouseDown).call(_this, ...args);
341
175
  });
342
176
  this.addHook('beforeOnCellMouseOver', function () {
343
177
  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
344
178
  args[_key4] = arguments[_key4];
345
179
  }
346
- return _classPrivateMethodGet(_this, _onBeforeOnCellMouseOver, _onBeforeOnCellMouseOver2).call(_this, ...args);
180
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeOnCellMouseOver).call(_this, ...args);
347
181
  });
348
182
  this.addHook('beforeOnCellMouseUp', function () {
349
183
  for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
350
184
  args[_key5] = arguments[_key5];
351
185
  }
352
- return _classPrivateMethodGet(_this, _onBeforeOnCellMouseUp, _onBeforeOnCellMouseUp2).call(_this, ...args);
186
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeOnCellMouseUp).call(_this, ...args);
353
187
  });
354
188
  this.addHook('beforeSelectionHighlightSet', function () {
355
189
  for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
356
190
  args[_key6] = arguments[_key6];
357
191
  }
358
- return _classPrivateMethodGet(_this, _onBeforeSelectionHighlightSet, _onBeforeSelectionHighlightSet2).call(_this, ...args);
192
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeSelectionHighlightSet).call(_this, ...args);
359
193
  });
360
194
  this.addHook('modifyTransformStart', function () {
361
195
  for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
362
196
  args[_key7] = arguments[_key7];
363
197
  }
364
- return _classPrivateMethodGet(_this, _onModifyTransformStart, _onModifyTransformStart2).call(_this, ...args);
198
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onModifyTransformStart).call(_this, ...args);
365
199
  });
366
- this.addHook('afterSelection', () => _classPrivateMethodGet(this, _updateFocusHighlightPosition, _updateFocusHighlightPosition2).call(this));
200
+ this.addHook('afterSelection', () => _assertClassBrand(_NestedHeaders_brand, this, _updateFocusHighlightPosition).call(this));
201
+ this.addHook('afterSelectionFocusSet', () => _assertClassBrand(_NestedHeaders_brand, this, _updateFocusHighlightPosition).call(this));
367
202
  this.addHook('beforeViewportScrollHorizontally', function () {
368
203
  for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
369
204
  args[_key8] = arguments[_key8];
370
205
  }
371
- return _classPrivateMethodGet(_this, _onBeforeViewportScrollHorizontally, _onBeforeViewportScrollHorizontally2).call(_this, ...args);
206
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeViewportScrollHorizontally).call(_this, ...args);
372
207
  });
373
- this.addHook('afterGetColumnHeaderRenderers', array => _classPrivateMethodGet(this, _onAfterGetColumnHeaderRenderers, _onAfterGetColumnHeaderRenderers2).call(this, array));
208
+ this.addHook('afterGetColumnHeaderRenderers', array => _assertClassBrand(_NestedHeaders_brand, this, _onAfterGetColumnHeaderRenderers).call(this, array));
374
209
  this.addHook('modifyColWidth', function () {
375
210
  for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
376
211
  args[_key9] = arguments[_key9];
377
212
  }
378
- return _classPrivateMethodGet(_this, _onModifyColWidth, _onModifyColWidth2).call(_this, ...args);
213
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onModifyColWidth).call(_this, ...args);
379
214
  });
380
215
  this.addHook('modifyColumnHeaderValue', function () {
381
216
  for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
382
217
  args[_key10] = arguments[_key10];
383
218
  }
384
- return _classPrivateMethodGet(_this, _onModifyColumnHeaderValue, _onModifyColumnHeaderValue2).call(_this, ...args);
219
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onModifyColumnHeaderValue).call(_this, ...args);
385
220
  });
386
221
  this.addHook('beforeHighlightingColumnHeader', function () {
387
222
  for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
388
223
  args[_key11] = arguments[_key11];
389
224
  }
390
- return _classPrivateMethodGet(_this, _onBeforeHighlightingColumnHeader, _onBeforeHighlightingColumnHeader2).call(_this, ...args);
225
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeHighlightingColumnHeader).call(_this, ...args);
391
226
  });
392
227
  this.addHook('beforeCopy', function () {
393
228
  for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
394
229
  args[_key12] = arguments[_key12];
395
230
  }
396
- return _classPrivateMethodGet(_this, _onBeforeCopy, _onBeforeCopy2).call(_this, ...args);
231
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeCopy).call(_this, ...args);
397
232
  });
398
233
  this.addHook('beforeSelectColumns', function () {
399
234
  for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
400
235
  args[_key13] = arguments[_key13];
401
236
  }
402
- return _classPrivateMethodGet(_this, _onBeforeSelectColumns, _onBeforeSelectColumns2).call(_this, ...args);
237
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onBeforeSelectColumns).call(_this, ...args);
403
238
  });
404
239
  this.addHook('afterViewportColumnCalculatorOverride', function () {
405
240
  for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
406
241
  args[_key14] = arguments[_key14];
407
242
  }
408
- return _classPrivateMethodGet(_this, _onAfterViewportColumnCalculatorOverride, _onAfterViewportColumnCalculatorOverride2).call(_this, ...args);
243
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onAfterViewportColumnCalculatorOverride).call(_this, ...args);
409
244
  });
410
245
  this.addHook('modifyFocusedElement', function () {
411
246
  for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
412
247
  args[_key15] = arguments[_key15];
413
248
  }
414
- return _classPrivateMethodGet(_this, _onModifyFocusedElement, _onModifyFocusedElement2).call(_this, ...args);
249
+ return _assertClassBrand(_NestedHeaders_brand, _this, _onModifyFocusedElement).call(_this, ...args);
415
250
  });
416
- this.hot.columnIndexMapper.addLocalHook('cacheUpdated', () => _classPrivateMethodGet(this, _updateFocusHighlightPosition, _updateFocusHighlightPosition2).call(this));
417
- this.hot.rowIndexMapper.addLocalHook('cacheUpdated', () => _classPrivateMethodGet(this, _updateFocusHighlightPosition, _updateFocusHighlightPosition2).call(this));
251
+ this.hot.columnIndexMapper.addLocalHook('cacheUpdated', () => _assertClassBrand(_NestedHeaders_brand, this, _updateFocusHighlightPosition).call(this));
252
+ this.hot.rowIndexMapper.addLocalHook('cacheUpdated', () => _assertClassBrand(_NestedHeaders_brand, this, _updateFocusHighlightPosition).call(this));
418
253
  super.enablePlugin();
419
254
  this.updatePlugin(); // @TODO: Workaround for broken plugin initialization abstraction.
420
255
  }
@@ -433,9 +268,9 @@ class NestedHeaders extends _base.BasePlugin {
433
268
  const {
434
269
  nestedHeaders
435
270
  } = this.hot.getSettings();
436
- _classPrivateFieldGet(this, _stateManager).setColumnsLimit(this.hot.countCols());
271
+ _classPrivateFieldGet(_stateManager, this).setColumnsLimit(this.hot.countCols());
437
272
  if (Array.isArray(nestedHeaders)) {
438
- this.detectedOverlappedHeaders = _classPrivateFieldGet(this, _stateManager).setState(nestedHeaders);
273
+ this.detectedOverlappedHeaders = _classPrivateFieldGet(_stateManager, this).setState(nestedHeaders);
439
274
  }
440
275
  if (this.detectedOverlappedHeaders) {
441
276
  (0, _console.warn)((0, _templateLiteralTag.toSingleLine)`Your Nested Headers plugin setup contains overlapping headers. This kind of configuration\x20
@@ -447,11 +282,11 @@ class NestedHeaders extends _base.BasePlugin {
447
282
  // as if all the columns are visible, needs to be modified to be in sync with a dataset.
448
283
  this.hot.columnIndexMapper.hidingMapsCollection.getMergedValues().forEach((isColumnHidden, physicalColumnIndex) => {
449
284
  const actionName = isColumnHidden === true ? 'hide-column' : 'show-column';
450
- _classPrivateFieldGet(this, _stateManager).triggerColumnModification(actionName, physicalColumnIndex);
285
+ _classPrivateFieldGet(_stateManager, this).triggerColumnModification(actionName, physicalColumnIndex);
451
286
  });
452
287
  }
453
- if (!_classPrivateFieldGet(this, _hidingIndexMapObserver) && this.enabled) {
454
- _classPrivateFieldSet(this, _hidingIndexMapObserver, this.hot.columnIndexMapper.createChangesObserver('hiding').subscribe(changes => {
288
+ if (!_classPrivateFieldGet(_hidingIndexMapObserver, this) && this.enabled) {
289
+ _classPrivateFieldSet(_hidingIndexMapObserver, this, this.hot.columnIndexMapper.createChangesObserver('hiding').subscribe(changes => {
455
290
  changes.forEach(_ref => {
456
291
  let {
457
292
  op,
@@ -460,7 +295,7 @@ class NestedHeaders extends _base.BasePlugin {
460
295
  } = _ref;
461
296
  if (op === 'replace') {
462
297
  const actionName = newValue === true ? 'hide-column' : 'show-column';
463
- _classPrivateFieldGet(this, _stateManager).triggerColumnModification(actionName, columnIndex);
298
+ _classPrivateFieldGet(_stateManager, this).triggerColumnModification(actionName, columnIndex);
464
299
  }
465
300
  });
466
301
  this.ghostTable.buildWidthsMap();
@@ -475,9 +310,9 @@ class NestedHeaders extends _base.BasePlugin {
475
310
  */
476
311
  disablePlugin() {
477
312
  this.clearColspans();
478
- _classPrivateFieldGet(this, _stateManager).clear();
479
- _classPrivateFieldGet(this, _hidingIndexMapObserver).unsubscribe();
480
- _classPrivateFieldSet(this, _hidingIndexMapObserver, null);
313
+ _classPrivateFieldGet(_stateManager, this).clear();
314
+ _classPrivateFieldGet(_hidingIndexMapObserver, this).unsubscribe();
315
+ _classPrivateFieldSet(_hidingIndexMapObserver, this, null);
481
316
  this.ghostTable.clear();
482
317
  super.disablePlugin();
483
318
  }
@@ -489,7 +324,7 @@ class NestedHeaders extends _base.BasePlugin {
489
324
  * @returns {StateManager}
490
325
  */
491
326
  getStateManager() {
492
- return _classPrivateFieldGet(this, _stateManager);
327
+ return _classPrivateFieldGet(_stateManager, this);
493
328
  }
494
329
 
495
330
  /**
@@ -499,7 +334,7 @@ class NestedHeaders extends _base.BasePlugin {
499
334
  * @returns {number}
500
335
  */
501
336
  getLayersCount() {
502
- return _classPrivateFieldGet(this, _stateManager).getLayersCount();
337
+ return _classPrivateFieldGet(_stateManager, this).getLayersCount();
503
338
  }
504
339
 
505
340
  /**
@@ -513,7 +348,7 @@ class NestedHeaders extends _base.BasePlugin {
513
348
  * @returns {object}
514
349
  */
515
350
  getHeaderSettings(headerLevel, columnIndex) {
516
- return _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, columnIndex);
351
+ return _classPrivateFieldGet(_stateManager, this).getHeaderSettings(headerLevel, columnIndex);
517
352
  }
518
353
 
519
354
  /**
@@ -582,7 +417,7 @@ class NestedHeaders extends _base.BasePlugin {
582
417
  colspan,
583
418
  isHidden,
584
419
  isPlaceholder
585
- } = (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : {
420
+ } = (_classPrivateFieldGet2 = _classPrivateFieldGet(_stateManager, this).getHeaderSettings(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : {
586
421
  label: ''
587
422
  };
588
423
  if (isPlaceholder || isHidden) {
@@ -623,7 +458,7 @@ class NestedHeaders extends _base.BasePlugin {
623
458
  const {
624
459
  isHidden,
625
460
  isPlaceholder
626
- } = (_classPrivateFieldGet3 = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet3 !== void 0 ? _classPrivateFieldGet3 : {};
461
+ } = (_classPrivateFieldGet3 = _classPrivateFieldGet(_stateManager, this).getHeaderSettings(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet3 !== void 0 ? _classPrivateFieldGet3 : {};
627
462
  if (isPlaceholder || isHidden) {
628
463
  return '';
629
464
  }
@@ -633,10 +468,10 @@ class NestedHeaders extends _base.BasePlugin {
633
468
  * Destroys the plugin instance.
634
469
  */
635
470
  destroy() {
636
- _classPrivateFieldSet(this, _stateManager, null);
637
- if (_classPrivateFieldGet(this, _hidingIndexMapObserver) !== null) {
638
- _classPrivateFieldGet(this, _hidingIndexMapObserver).unsubscribe();
639
- _classPrivateFieldSet(this, _hidingIndexMapObserver, null);
471
+ _classPrivateFieldSet(_stateManager, this, null);
472
+ if (_classPrivateFieldGet(_hidingIndexMapObserver, this) !== null) {
473
+ _classPrivateFieldGet(_hidingIndexMapObserver, this).unsubscribe();
474
+ _classPrivateFieldSet(_hidingIndexMapObserver, this, null);
640
475
  }
641
476
  super.destroy();
642
477
  }
@@ -652,11 +487,11 @@ class NestedHeaders extends _base.BasePlugin {
652
487
  if (coords.row >= 0 || coords.col < 0) {
653
488
  return;
654
489
  }
655
- return _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(coords.row, coords.col);
490
+ return _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(coords.row, coords.col);
656
491
  }
657
492
  }
658
493
  exports.NestedHeaders = NestedHeaders;
659
- function _updateFocusHighlightPosition2() {
494
+ function _updateFocusHighlightPosition() {
660
495
  var _this$hot;
661
496
  const selection = (_this$hot = this.hot) === null || _this$hot === void 0 ? void 0 : _this$hot.getSelectedRangeLast();
662
497
  if (!selection) {
@@ -667,7 +502,7 @@ function _updateFocusHighlightPosition2() {
667
502
  } = selection;
668
503
  const isNestedHeadersRange = highlight.isHeader() && highlight.col >= 0;
669
504
  if (isNestedHeadersRange) {
670
- const columnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
505
+ const columnIndex = _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(highlight.row, highlight.col);
671
506
  const focusHighlight = this.hot.selection.highlight.getFocus();
672
507
 
673
508
  // Correct the highlight/focus selection to highlight the correct TH element
@@ -677,7 +512,15 @@ function _updateFocusHighlightPosition2() {
677
512
  focusHighlight.commit();
678
513
  }
679
514
  }
680
- function _onBeforeViewportScrollHorizontally2(visualColumn) {
515
+ /**
516
+ * Allows to control to which column index the viewport will be scrolled. To ensure that the viewport
517
+ * is scrolled to the correct column for the nested header the most left and the most right visual column
518
+ * indexes are used.
519
+ *
520
+ * @param {number} visualColumn A visual column index to which the viewport will be scrolled.
521
+ * @returns {number}
522
+ */
523
+ function _onBeforeViewportScrollHorizontally(visualColumn) {
681
524
  const selection = this.hot.getSelectedRangeLast();
682
525
  if (!selection) {
683
526
  return visualColumn;
@@ -691,8 +534,8 @@ function _onBeforeViewportScrollHorizontally2(visualColumn) {
691
534
  }
692
535
  const firstColumn = this.hot.view.getFirstFullyVisibleColumn();
693
536
  const lastColumn = this.hot.view.getLastFullyVisibleColumn();
694
- const mostLeftColumnIndex = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(highlight.row, highlight.col);
695
- const mostRightColumnIndex = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(highlight.row, highlight.col);
537
+ const mostLeftColumnIndex = _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(highlight.row, highlight.col);
538
+ const mostRightColumnIndex = _classPrivateFieldGet(_stateManager, this).findRightMostColumnIndex(highlight.row, highlight.col);
696
539
 
697
540
  // do not scroll the viewport when the header is wider than the viewport
698
541
  if (mostLeftColumnIndex < firstColumn && mostRightColumnIndex > lastColumn) {
@@ -700,8 +543,16 @@ function _onBeforeViewportScrollHorizontally2(visualColumn) {
700
543
  }
701
544
  return mostLeftColumnIndex < firstColumn ? mostLeftColumnIndex : mostRightColumnIndex;
702
545
  }
703
- function _onBeforeHighlightingColumnHeader2(visualColumn, headerLevel, highlightMeta) {
704
- const headerNodeData = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(headerLevel, visualColumn);
546
+ /**
547
+ * Allows to control which header DOM element will be used to highlight.
548
+ *
549
+ * @param {number} visualColumn A visual column index of the highlighted row header.
550
+ * @param {number} headerLevel A row header level that is currently highlighted.
551
+ * @param {object} highlightMeta An object with meta data that describes the highlight state.
552
+ * @returns {number}
553
+ */
554
+ function _onBeforeHighlightingColumnHeader(visualColumn, headerLevel, highlightMeta) {
555
+ const headerNodeData = _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(headerLevel, visualColumn);
705
556
  if (!headerNodeData) {
706
557
  return visualColumn;
707
558
  }
@@ -713,7 +564,7 @@ function _onBeforeHighlightingColumnHeader2(visualColumn, headerLevel, highlight
713
564
  const {
714
565
  isRoot,
715
566
  colspan
716
- } = _classPrivateFieldGet(this, _stateManager).getHeaderSettings(headerLevel, visualColumn);
567
+ } = _classPrivateFieldGet(_stateManager, this).getHeaderSettings(headerLevel, visualColumn);
717
568
  if (selectionType === _selection.HEADER_TYPE) {
718
569
  if (!isRoot) {
719
570
  return headerNodeData.columnIndex;
@@ -726,7 +577,19 @@ function _onBeforeHighlightingColumnHeader2(visualColumn, headerLevel, highlight
726
577
  }
727
578
  return visualColumn;
728
579
  }
729
- function _onBeforeCopy2(data, copyableRanges, _ref2) {
580
+ /**
581
+ * Listens the `beforeCopy` hook that allows processing the copied column headers so that the
582
+ * merged column headers do not propagate the value for each column but only once at the beginning
583
+ * of the column.
584
+ *
585
+ * @private
586
+ * @param {Array[]} data An array of arrays which contains data to copied.
587
+ * @param {object[]} copyableRanges An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
588
+ * which will copied.
589
+ * @param {{ columnHeadersCount: number }} copiedHeadersCount An object with keys that holds information with
590
+ * the number of copied headers.
591
+ */
592
+ function _onBeforeCopy(data, copyableRanges, _ref2) {
730
593
  let {
731
594
  columnHeadersCount
732
595
  } = _ref2;
@@ -755,7 +618,7 @@ function _onBeforeCopy2(data, copyableRanges, _ref2) {
755
618
  if (zeroBasedColumnIndex === 0) {
756
619
  continue; // eslint-disable-line no-continue
757
620
  }
758
- const isRoot = (_classPrivateFieldGet4 = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(row, column)) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.isRoot;
621
+ const isRoot = (_classPrivateFieldGet4 = _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(row, column)) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.isRoot;
759
622
  if (isRoot === false) {
760
623
  data[zeroBasedColumnHeaderLevel][zeroBasedColumnIndex] = '';
761
624
  }
@@ -763,7 +626,16 @@ function _onBeforeCopy2(data, copyableRanges, _ref2) {
763
626
  }
764
627
  }
765
628
  }
766
- function _onBeforeOnCellMouseDown2(event, coords, TD, controller) {
629
+ /**
630
+ * Allows blocking the column selection that is controlled by the core Selection module.
631
+ *
632
+ * @param {MouseEvent} event Mouse event.
633
+ * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.
634
+ * @param {CellCoords} TD The table cell or header element.
635
+ * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
636
+ * a boolean value that allows or disallows changing the selection for that particular area.
637
+ */
638
+ function _onBeforeOnCellMouseDown(event, coords, TD, controller) {
767
639
  const headerNodeData = this._getHeaderTreeNodeDataByCoords(coords);
768
640
  if (headerNodeData) {
769
641
  // Block the Selection module in controlling how the columns are selected. Pass the
@@ -771,13 +643,19 @@ function _onBeforeOnCellMouseDown2(event, coords, TD, controller) {
771
643
  controller.column = true;
772
644
  }
773
645
  }
774
- function _onAfterOnCellMouseDown2(event, coords) {
646
+ /**
647
+ * Allows to control how the column selection based on the coordinates and the nested headers is made.
648
+ *
649
+ * @param {MouseEvent} event Mouse event.
650
+ * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.
651
+ */
652
+ function _onAfterOnCellMouseDown(event, coords) {
775
653
  const headerNodeData = this._getHeaderTreeNodeDataByCoords(coords);
776
654
  if (!headerNodeData) {
777
655
  return;
778
656
  }
779
- _classPrivateFieldSet(this, _focusInitialCoords, coords.clone());
780
- _classPrivateFieldSet(this, _isColumnsSelectionInProgress, true);
657
+ _classPrivateFieldSet(_focusInitialCoords, this, coords.clone());
658
+ _classPrivateFieldSet(_isColumnsSelectionInProgress, this, true);
781
659
  const {
782
660
  selection
783
661
  } = this.hot;
@@ -808,7 +686,16 @@ function _onAfterOnCellMouseDown2(event, coords) {
808
686
  // The plugin takes control of how the columns are selected.
809
687
  selection.selectColumns(...columnsToSelect);
810
688
  }
811
- function _onBeforeOnCellMouseOver2(event, coords, TD, controller) {
689
+ /**
690
+ * Makes the header-selection properly select the nested headers.
691
+ *
692
+ * @param {MouseEvent} event Mouse event.
693
+ * @param {CellCoords} coords Cell coords object containing the visual coordinates of the clicked cell.
694
+ * @param {HTMLElement} TD The cell element.
695
+ * @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
696
+ * a boolean value that allows or disallows changing the selection for that particular area.
697
+ */
698
+ function _onBeforeOnCellMouseOver(event, coords, TD, controller) {
812
699
  if (!this.hot.view.isMouseDown()) {
813
700
  return;
814
701
  }
@@ -842,14 +729,21 @@ function _onBeforeOnCellMouseOver2(event, coords, TD, controller) {
842
729
  }
843
730
  this.hot.selection.selectColumns(...columnsToSelect);
844
731
  }
845
- function _onBeforeOnCellMouseUp2() {
846
- _classPrivateFieldSet(this, _isColumnsSelectionInProgress, false);
732
+ /**
733
+ * Switches internal flag about selection progress to `false`.
734
+ */
735
+ function _onBeforeOnCellMouseUp() {
736
+ _classPrivateFieldSet(_isColumnsSelectionInProgress, this, false);
847
737
  }
848
- function _onBeforeSelectionHighlightSet2() {
738
+ /**
739
+ * The hook checks and ensures that the focus position that depends on the selected columns
740
+ * range is always positioned within the range.
741
+ */
742
+ function _onBeforeSelectionHighlightSet() {
849
743
  const {
850
744
  navigableHeaders
851
745
  } = this.hot.getSettings();
852
- if (!this.hot.view.isMouseDown() || !_classPrivateFieldGet(this, _isColumnsSelectionInProgress) || !navigableHeaders) {
746
+ if (!this.hot.view.isMouseDown() || !_classPrivateFieldGet(_isColumnsSelectionInProgress, this) || !navigableHeaders) {
853
747
  return;
854
748
  }
855
749
  const selectedRange = this.hot.getSelectedRangeLast();
@@ -858,15 +752,20 @@ function _onBeforeSelectionHighlightSet2() {
858
752
  const {
859
753
  columnIndex,
860
754
  origColspan
861
- } = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(_classPrivateFieldGet(this, _focusInitialCoords).row, _classPrivateFieldGet(this, _focusInitialCoords).col);
862
- selectedRange.setHighlight(_classPrivateFieldGet(this, _focusInitialCoords));
755
+ } = _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(_classPrivateFieldGet(_focusInitialCoords, this).row, _classPrivateFieldGet(_focusInitialCoords, this).col);
756
+ selectedRange.setHighlight(_classPrivateFieldGet(_focusInitialCoords, this));
863
757
  if (origColspan > selectedRange.getWidth() || columnIndex < columnStart || columnIndex + origColspan - 1 > columnEnd) {
864
- const headerLevel = _classPrivateFieldGet(this, _stateManager).findTopMostEntireHeaderLevel((0, _number.clamp)(columnStart, columnIndex, columnIndex + origColspan - 1), (0, _number.clamp)(columnEnd, columnIndex, columnIndex + origColspan - 1));
758
+ const headerLevel = _classPrivateFieldGet(_stateManager, this).findTopMostEntireHeaderLevel((0, _number.clamp)(columnStart, columnIndex, columnIndex + origColspan - 1), (0, _number.clamp)(columnEnd, columnIndex, columnIndex + origColspan - 1));
865
759
  selectedRange.highlight.row = headerLevel;
866
760
  selectedRange.highlight.col = selectedRange.from.col;
867
761
  }
868
762
  }
869
- function _onModifyTransformStart2(delta) {
763
+ /**
764
+ * `modifyTransformStart` hook is called every time the keyboard navigation is used.
765
+ *
766
+ * @param {object} delta The transformation delta.
767
+ */
768
+ function _onModifyTransformStart(delta) {
870
769
  const {
871
770
  highlight
872
771
  } = this.hot.getSelectedRangeLast();
@@ -875,8 +774,8 @@ function _onModifyTransformStart2(delta) {
875
774
  if (!isNestedHeadersRange) {
876
775
  return;
877
776
  }
878
- const visualColumnIndexStart = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(nextCoords.row, nextCoords.col);
879
- const visualColumnIndexEnd = _classPrivateFieldGet(this, _stateManager).findRightMostColumnIndex(nextCoords.row, nextCoords.col);
777
+ const visualColumnIndexStart = _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(nextCoords.row, nextCoords.col);
778
+ const visualColumnIndexEnd = _classPrivateFieldGet(_stateManager, this).findRightMostColumnIndex(nextCoords.row, nextCoords.col);
880
779
  if (delta.col < 0) {
881
780
  const nextColumn = highlight.col >= visualColumnIndexStart && highlight.col <= visualColumnIndexEnd ? visualColumnIndexStart - 1 : visualColumnIndexEnd;
882
781
  const notHiddenColumnIndex = this.hot.columnIndexMapper.getNearestNotHiddenIndex(nextColumn, -1);
@@ -899,7 +798,14 @@ function _onModifyTransformStart2(delta) {
899
798
  }
900
799
  }
901
800
  }
902
- function _onBeforeSelectColumns2(from, to) {
801
+ /**
802
+ * The hook observes the column selection from the Selection API and modifies the column range to
803
+ * ensure that the whole nested column will be covered.
804
+ *
805
+ * @param {CellCoords} from The coords object where the selection starts.
806
+ * @param {CellCoords} to The coords object where the selection ends.
807
+ */
808
+ function _onBeforeSelectColumns(from, to) {
903
809
  const headerLevel = from.row;
904
810
  const startNodeData = this._getHeaderTreeNodeDataByCoords({
905
811
  row: headerLevel,
@@ -927,18 +833,28 @@ function _onBeforeSelectColumns2(from, to) {
927
833
  }
928
834
  }
929
835
  }
930
- function _onAfterGetColumnHeaderRenderers2(renderersArray) {
836
+ /**
837
+ * `afterGetColumnHeader` hook callback - prepares the header structure.
838
+ *
839
+ * @param {Array} renderersArray Array of renderers.
840
+ */
841
+ function _onAfterGetColumnHeaderRenderers(renderersArray) {
931
842
  renderersArray.length = 0;
932
- for (let headerLayer = 0; headerLayer < _classPrivateFieldGet(this, _stateManager).getLayersCount(); headerLayer++) {
843
+ for (let headerLayer = 0; headerLayer < _classPrivateFieldGet(_stateManager, this).getLayersCount(); headerLayer++) {
933
844
  renderersArray.push(this.headerRendererFactory(headerLayer));
934
845
  }
935
846
  }
936
- function _onAfterViewportColumnCalculatorOverride2(calc) {
937
- const headerLayersCount = _classPrivateFieldGet(this, _stateManager).getLayersCount();
847
+ /**
848
+ * Make the renderer render the first nested column in its entirety.
849
+ *
850
+ * @param {object} calc Viewport column calculator.
851
+ */
852
+ function _onAfterViewportColumnCalculatorOverride(calc) {
853
+ const headerLayersCount = _classPrivateFieldGet(_stateManager, this).getLayersCount();
938
854
  let newStartColumn = calc.startColumn;
939
855
  let nonRenderable = !!headerLayersCount;
940
856
  for (let headerLayer = 0; headerLayer < headerLayersCount; headerLayer++) {
941
- const startColumn = _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(headerLayer, calc.startColumn);
857
+ const startColumn = _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(headerLayer, calc.startColumn);
942
858
  const renderedStartColumn = this.hot.columnIndexMapper.getRenderableFromVisualIndex(startColumn);
943
859
 
944
860
  // If any of the headers for that column index is rendered, all of them should be rendered properly, see
@@ -957,31 +873,67 @@ function _onAfterViewportColumnCalculatorOverride2(calc) {
957
873
 
958
874
  // If no headers for the provided column index are renderable, start rendering from the beginning of the upmost
959
875
  // header for that position.
960
- calc.startColumn = nonRenderable ? _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(0, newStartColumn).columnIndex : newStartColumn;
876
+ calc.startColumn = nonRenderable ? _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(0, newStartColumn).columnIndex : newStartColumn;
961
877
  }
962
- function _onModifyColWidth2(width, column) {
878
+ /**
879
+ * `modifyColWidth` hook callback - returns width from cache, when is greater than incoming from hook.
880
+ *
881
+ * @param {number} width Width from hook.
882
+ * @param {number} column Visual index of an column.
883
+ * @returns {number}
884
+ */
885
+ function _onModifyColWidth(width, column) {
963
886
  const cachedWidth = this.ghostTable.getWidth(column);
964
887
  return width > cachedWidth ? width : cachedWidth;
965
888
  }
966
- function _onModifyColumnHeaderValue2(value, visualColumnIndex, headerLevel) {
889
+ /**
890
+ * Listens the `modifyColumnHeaderValue` hook that overwrites the column headers values based on
891
+ * the internal state and settings of the plugin.
892
+ *
893
+ * @param {string} value The column header value.
894
+ * @param {number} visualColumnIndex The visual column index.
895
+ * @param {number} headerLevel The index of header level. The header level accepts positive (0 to N)
896
+ * and negative (-1 to -N) values. For positive values, 0 points to the
897
+ * top most header, and for negative direction, -1 points to the most bottom
898
+ * header (the header closest to the cells).
899
+ * @returns {string} Returns the column header value to update.
900
+ */
901
+ function _onModifyColumnHeaderValue(value, visualColumnIndex, headerLevel) {
967
902
  var _classPrivateFieldGet5;
968
903
  const {
969
904
  label
970
- } = (_classPrivateFieldGet5 = _classPrivateFieldGet(this, _stateManager).getHeaderTreeNodeData(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet5 !== void 0 ? _classPrivateFieldGet5 : {
905
+ } = (_classPrivateFieldGet5 = _classPrivateFieldGet(_stateManager, this).getHeaderTreeNodeData(headerLevel, visualColumnIndex)) !== null && _classPrivateFieldGet5 !== void 0 ? _classPrivateFieldGet5 : {
971
906
  label: ''
972
907
  };
973
908
  return label;
974
909
  }
975
- function _onModifyFocusedElement2(row, column) {
910
+ /**
911
+ * `modifyFocusedElement` hook callback.
912
+ *
913
+ * @param {number} row Row index.
914
+ * @param {number} column Column index.
915
+ * @returns {HTMLTableCellElement} The `TH` element to be focused.
916
+ */
917
+ function _onModifyFocusedElement(row, column) {
976
918
  if (row < 0) {
977
- return this.hot.getCell(row, _classPrivateFieldGet(this, _stateManager).findLeftMostColumnIndex(row, column), true);
919
+ return this.hot.getCell(row, _classPrivateFieldGet(_stateManager, this).findLeftMostColumnIndex(row, column), true);
978
920
  }
979
921
  }
980
- function _onInit2() {
922
+ /**
923
+ * Updates the plugin state after HoT initialization.
924
+ */
925
+ function _onInit() {
981
926
  // @TODO: Workaround for broken plugin initialization abstraction.
982
927
  this.updatePlugin();
983
928
  }
984
- function _onAfterLoadData2(sourceData, initialLoad) {
929
+ /**
930
+ * Updates the plugin state after new dataset load.
931
+ *
932
+ * @param {Array[]} sourceData Array of arrays or array of objects containing data.
933
+ * @param {boolean} initialLoad Flag that determines whether the data has been loaded
934
+ * during the initialization.
935
+ */
936
+ function _onAfterLoadData(sourceData, initialLoad) {
985
937
  if (!initialLoad) {
986
938
  this.updatePlugin();
987
939
  }