handsontable 14.2.0 → 14.3.0-next-3fa6b18-20240410

Sign up to get free protection for your applications and to get access to all the features.
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
  }