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
@@ -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
  }