handsontable 14.2.0 → 14.3.0-next-3fa6b18-20240410

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. package/3rdparty/walkontable/src/calculator/renderAllColumns.js +1 -1
  2. package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +1 -1
  3. package/3rdparty/walkontable/src/calculator/renderAllRows.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +1 -1
  5. package/3rdparty/walkontable/src/calculator/viewportColumns.js +13 -18
  6. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +13 -18
  7. package/3rdparty/walkontable/src/calculator/viewportRows.js +11 -16
  8. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +11 -16
  9. package/3rdparty/walkontable/src/cell/coords.js +13 -18
  10. package/3rdparty/walkontable/src/cell/coords.mjs +13 -18
  11. package/3rdparty/walkontable/src/cell/range.d.ts +2 -1
  12. package/3rdparty/walkontable/src/cell/range.js +42 -30
  13. package/3rdparty/walkontable/src/cell/range.mjs +42 -30
  14. package/3rdparty/walkontable/src/core/_base.js +2 -2
  15. package/3rdparty/walkontable/src/core/_base.mjs +2 -2
  16. package/3rdparty/walkontable/src/core/clone.js +1 -1
  17. package/3rdparty/walkontable/src/core/clone.mjs +1 -1
  18. package/3rdparty/walkontable/src/event.js +72 -104
  19. package/3rdparty/walkontable/src/event.mjs +72 -104
  20. package/3rdparty/walkontable/src/filter/column.js +1 -1
  21. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  22. package/3rdparty/walkontable/src/filter/row.js +1 -1
  23. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  24. package/3rdparty/walkontable/src/index.js +1 -1
  25. package/3rdparty/walkontable/src/overlay/_base.js +1 -1
  26. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  27. package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
  28. package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
  29. package/3rdparty/walkontable/src/overlay/inlineStart.js +15 -1
  30. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +16 -2
  31. package/3rdparty/walkontable/src/overlay/top.js +12 -1
  32. package/3rdparty/walkontable/src/overlay/top.mjs +13 -2
  33. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +1 -1
  34. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
  35. package/3rdparty/walkontable/src/overlays.js +47 -5
  36. package/3rdparty/walkontable/src/overlays.mjs +47 -5
  37. package/3rdparty/walkontable/src/renderer/_base.js +1 -1
  38. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  39. package/3rdparty/walkontable/src/renderer/cells.js +1 -1
  40. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
  41. package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -1
  42. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
  43. package/3rdparty/walkontable/src/renderer/rows.js +1 -1
  44. package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
  45. package/3rdparty/walkontable/src/renderer/table.js +1 -1
  46. package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
  47. package/3rdparty/walkontable/src/scroll.js +16 -18
  48. package/3rdparty/walkontable/src/scroll.mjs +16 -18
  49. package/3rdparty/walkontable/src/selection/manager.js +48 -69
  50. package/3rdparty/walkontable/src/selection/manager.mjs +48 -69
  51. package/3rdparty/walkontable/src/selection/scanner.js +33 -42
  52. package/3rdparty/walkontable/src/selection/scanner.mjs +33 -42
  53. package/3rdparty/walkontable/src/settings.js +1 -1
  54. package/3rdparty/walkontable/src/settings.mjs +1 -1
  55. package/3rdparty/walkontable/src/table.js +1 -1
  56. package/3rdparty/walkontable/src/table.mjs +1 -1
  57. package/3rdparty/walkontable/src/utils/column.js +1 -1
  58. package/3rdparty/walkontable/src/utils/column.mjs +1 -1
  59. package/3rdparty/walkontable/src/utils/columnStretching.js +28 -45
  60. package/3rdparty/walkontable/src/utils/columnStretching.mjs +28 -45
  61. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  62. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  63. package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
  64. package/3rdparty/walkontable/src/utils/orderView/view.mjs +2 -2
  65. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  66. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  67. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +1 -1
  68. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  69. package/3rdparty/walkontable/src/utils/row.js +1 -1
  70. package/3rdparty/walkontable/src/utils/row.mjs +1 -1
  71. package/CHANGELOG.md +20 -0
  72. package/base.js +2 -2
  73. package/base.mjs +2 -2
  74. package/core/viewportScroll/index.js +4 -1
  75. package/core/viewportScroll/index.mjs +4 -1
  76. package/core/viewportScroll/scrollStrategies/focusScroll.js +15 -0
  77. package/core/viewportScroll/scrollStrategies/focusScroll.mjs +11 -0
  78. package/core.d.ts +4 -3
  79. package/core.js +98 -43
  80. package/core.mjs +98 -43
  81. package/dataMap/dataMap.js +1 -1
  82. package/dataMap/dataMap.mjs +1 -1
  83. package/dataMap/dataSource.js +2 -2
  84. package/dataMap/dataSource.mjs +2 -2
  85. package/dataMap/metaManager/lazyFactoryMap.js +3 -5
  86. package/dataMap/metaManager/lazyFactoryMap.mjs +2 -4
  87. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
  88. package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -2
  89. package/dataMap/metaManager/metaLayers/columnMeta.js +1 -1
  90. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  91. package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
  92. package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
  93. package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
  94. package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
  95. package/dataMap/metaManager/metaSchema.js +272 -272
  96. package/dataMap/metaManager/metaSchema.mjs +272 -272
  97. package/dataMap/metaManager/mods/dynamicCellMeta.js +1 -1
  98. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  99. package/dataMap/metaManager/mods/extendMetaProperties.js +1 -1
  100. package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -1
  101. package/dataMap/replaceData.js +1 -1
  102. package/dataMap/replaceData.mjs +1 -1
  103. package/dist/handsontable.css +4 -4
  104. package/dist/handsontable.full.css +4 -4
  105. package/dist/handsontable.full.js +9814 -10020
  106. package/dist/handsontable.full.min.css +3 -3
  107. package/dist/handsontable.full.min.js +292 -292
  108. package/dist/handsontable.js +7484 -7056
  109. package/dist/handsontable.min.css +3 -3
  110. package/dist/handsontable.min.js +25 -25
  111. package/dist/languages/all.min.js +1 -1
  112. package/dist/languages/ar-AR.min.js +1 -1
  113. package/dist/languages/cs-CZ.min.js +1 -1
  114. package/dist/languages/de-CH.min.js +1 -1
  115. package/dist/languages/de-DE.min.js +1 -1
  116. package/dist/languages/en-US.min.js +1 -1
  117. package/dist/languages/es-MX.min.js +1 -1
  118. package/dist/languages/fr-FR.min.js +1 -1
  119. package/dist/languages/hr-HR.min.js +1 -1
  120. package/dist/languages/it-IT.min.js +1 -1
  121. package/dist/languages/ja-JP.min.js +1 -1
  122. package/dist/languages/ko-KR.min.js +1 -1
  123. package/dist/languages/lv-LV.min.js +1 -1
  124. package/dist/languages/nb-NO.min.js +1 -1
  125. package/dist/languages/nl-NL.min.js +1 -1
  126. package/dist/languages/pl-PL.min.js +1 -1
  127. package/dist/languages/pt-BR.min.js +1 -1
  128. package/dist/languages/ru-RU.min.js +1 -1
  129. package/dist/languages/sr-SP.min.js +1 -1
  130. package/dist/languages/zh-CN.min.js +1 -1
  131. package/dist/languages/zh-TW.min.js +1 -1
  132. package/editorManager.js +26 -24
  133. package/editorManager.mjs +26 -24
  134. package/editors/autocompleteEditor/autocompleteEditor.js +7 -11
  135. package/editors/autocompleteEditor/autocompleteEditor.mjs +7 -11
  136. package/editors/baseEditor/baseEditor.js +1 -1
  137. package/editors/baseEditor/baseEditor.mjs +1 -1
  138. package/editors/dateEditor/dateEditor.js +49 -11
  139. package/editors/dateEditor/dateEditor.mjs +49 -11
  140. package/editors/selectEditor/selectEditor.js +20 -19
  141. package/editors/selectEditor/selectEditor.mjs +20 -19
  142. package/editors/textEditor/textEditor.js +1 -1
  143. package/editors/textEditor/textEditor.mjs +1 -1
  144. package/eventManager.js +2 -2
  145. package/eventManager.mjs +2 -2
  146. package/focusManager.js +64 -82
  147. package/focusManager.mjs +64 -82
  148. package/helpers/dom/element.js +23 -1
  149. package/helpers/dom/element.mjs +21 -1
  150. package/helpers/mixed.js +2 -2
  151. package/helpers/mixed.mjs +2 -2
  152. package/helpers/object.js +2 -2
  153. package/helpers/object.mjs +2 -2
  154. package/i18n/languages/ar-AR.d.ts +5 -0
  155. package/i18n/languages/ar-AR.js +1 -1
  156. package/i18n/languages/cs-CZ.d.ts +5 -0
  157. package/i18n/languages/cs-CZ.js +1 -1
  158. package/i18n/languages/de-CH.js +1 -1
  159. package/i18n/languages/de-DE.js +1 -1
  160. package/i18n/languages/en-US.js +1 -1
  161. package/i18n/languages/es-MX.js +1 -1
  162. package/i18n/languages/fr-FR.js +1 -1
  163. package/i18n/languages/hr-HR.d.ts +5 -0
  164. package/i18n/languages/hr-HR.js +1 -1
  165. package/i18n/languages/it-IT.js +1 -1
  166. package/i18n/languages/ja-JP.js +1 -1
  167. package/i18n/languages/ko-KR.js +1 -1
  168. package/i18n/languages/lv-LV.js +1 -1
  169. package/i18n/languages/nb-NO.js +1 -1
  170. package/i18n/languages/nl-NL.js +1 -1
  171. package/i18n/languages/pl-PL.js +1 -1
  172. package/i18n/languages/pt-BR.js +1 -1
  173. package/i18n/languages/ru-RU.js +1 -1
  174. package/i18n/languages/sr-SP.d.ts +5 -0
  175. package/i18n/languages/sr-SP.js +1 -1
  176. package/i18n/languages/zh-CN.js +1 -1
  177. package/i18n/languages/zh-TW.js +1 -1
  178. package/i18n/registry.js +1 -1
  179. package/index.d.ts +10 -0
  180. package/index.js +1 -1
  181. package/package.json +14 -10
  182. package/pluginHooks.d.ts +4 -3
  183. package/pluginHooks.js +143 -82
  184. package/pluginHooks.mjs +143 -82
  185. package/plugins/autoColumnSize/autoColumnSize.js +50 -66
  186. package/plugins/autoColumnSize/autoColumnSize.mjs +50 -66
  187. package/plugins/autoRowSize/autoRowSize.js +29 -35
  188. package/plugins/autoRowSize/autoRowSize.mjs +29 -35
  189. package/plugins/autofill/autofill.js +31 -39
  190. package/plugins/autofill/autofill.mjs +31 -39
  191. package/plugins/base/base.js +13 -18
  192. package/plugins/base/base.mjs +13 -18
  193. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +6 -6
  194. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +6 -6
  195. package/plugins/collapsibleColumns/collapsibleColumns.js +60 -51
  196. package/plugins/collapsibleColumns/collapsibleColumns.mjs +60 -51
  197. package/plugins/columnSorting/columnSorting.js +50 -46
  198. package/plugins/columnSorting/columnSorting.mjs +50 -46
  199. package/plugins/columnSorting/columnStatesManager.js +1 -1
  200. package/plugins/columnSorting/columnStatesManager.mjs +1 -1
  201. package/plugins/columnSummary/columnSummary.js +36 -40
  202. package/plugins/columnSummary/columnSummary.mjs +36 -40
  203. package/plugins/columnSummary/endpoints.js +1 -1
  204. package/plugins/columnSummary/endpoints.mjs +1 -1
  205. package/plugins/comments/commentEditor.js +1 -1
  206. package/plugins/comments/commentEditor.mjs +1 -1
  207. package/plugins/comments/comments.js +117 -159
  208. package/plugins/comments/comments.mjs +117 -159
  209. package/plugins/comments/contextMenuItem/addEditComment.js +1 -1
  210. package/plugins/comments/contextMenuItem/readOnlyComment.js +1 -1
  211. package/plugins/comments/contextMenuItem/removeComment.js +1 -1
  212. package/plugins/comments/displaySwitch.js +1 -1
  213. package/plugins/comments/displaySwitch.mjs +1 -1
  214. package/plugins/contextMenu/commandExecutor.js +1 -1
  215. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  216. package/plugins/contextMenu/contextMenu.js +24 -30
  217. package/plugins/contextMenu/contextMenu.mjs +24 -30
  218. package/plugins/contextMenu/itemsFactory.js +2 -2
  219. package/plugins/contextMenu/itemsFactory.mjs +2 -2
  220. package/plugins/contextMenu/menu/cursor.js +1 -1
  221. package/plugins/contextMenu/menu/cursor.mjs +1 -1
  222. package/plugins/contextMenu/menu/defaultShortcutsList.js +26 -10
  223. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +26 -10
  224. package/plugins/contextMenu/menu/menu.js +14 -22
  225. package/plugins/contextMenu/menu/menu.mjs +14 -22
  226. package/plugins/contextMenu/menu/positioner.js +41 -58
  227. package/plugins/contextMenu/menu/positioner.mjs +41 -58
  228. package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
  229. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  230. package/plugins/contextMenu/predefinedItems/columnLeft.js +1 -1
  231. package/plugins/contextMenu/predefinedItems/columnRight.js +1 -1
  232. package/plugins/contextMenu/predefinedItems/index.js +1 -1
  233. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
  234. package/plugins/contextMenu/predefinedItems/redo.js +1 -1
  235. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  236. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  237. package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
  238. package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
  239. package/plugins/contextMenu/predefinedItems/undo.js +1 -1
  240. package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
  241. package/plugins/copyPaste/copyPaste.js +120 -161
  242. package/plugins/copyPaste/copyPaste.mjs +120 -161
  243. package/plugins/copyPaste/copyableRanges.js +43 -66
  244. package/plugins/copyPaste/copyableRanges.mjs +43 -66
  245. package/plugins/customBorders/contextMenuItem/bottom.js +1 -1
  246. package/plugins/customBorders/contextMenuItem/left.js +1 -1
  247. package/plugins/customBorders/contextMenuItem/noBorders.js +1 -1
  248. package/plugins/customBorders/contextMenuItem/right.js +1 -1
  249. package/plugins/customBorders/contextMenuItem/top.js +1 -1
  250. package/plugins/customBorders/customBorders.js +14 -16
  251. package/plugins/customBorders/customBorders.mjs +13 -15
  252. package/plugins/dragToScroll/dragToScroll.js +7 -7
  253. package/plugins/dragToScroll/dragToScroll.mjs +7 -7
  254. package/plugins/dropdownMenu/dropdownMenu.js +84 -110
  255. package/plugins/dropdownMenu/dropdownMenu.mjs +84 -110
  256. package/plugins/exportFile/dataProvider.js +2 -2
  257. package/plugins/exportFile/dataProvider.mjs +2 -2
  258. package/plugins/exportFile/exportFile.js +2 -2
  259. package/plugins/exportFile/exportFile.mjs +1 -1
  260. package/plugins/exportFile/types/_base.js +1 -1
  261. package/plugins/exportFile/types/_base.mjs +1 -1
  262. package/plugins/filters/component/_base.js +1 -1
  263. package/plugins/filters/component/_base.mjs +1 -1
  264. package/plugins/filters/component/actionBar.js +11 -11
  265. package/plugins/filters/component/actionBar.mjs +9 -9
  266. package/plugins/filters/component/condition.js +15 -17
  267. package/plugins/filters/component/condition.mjs +14 -16
  268. package/plugins/filters/component/operators.js +7 -7
  269. package/plugins/filters/component/operators.mjs +7 -7
  270. package/plugins/filters/component/value.js +26 -30
  271. package/plugins/filters/component/value.mjs +25 -29
  272. package/plugins/filters/condition/beginsWith.js +1 -1
  273. package/plugins/filters/condition/between.js +1 -1
  274. package/plugins/filters/condition/contains.js +1 -1
  275. package/plugins/filters/condition/date/after.js +1 -1
  276. package/plugins/filters/condition/date/before.js +1 -1
  277. package/plugins/filters/condition/date/today.js +1 -1
  278. package/plugins/filters/condition/date/tomorrow.js +1 -1
  279. package/plugins/filters/condition/date/yesterday.js +1 -1
  280. package/plugins/filters/condition/empty.js +1 -1
  281. package/plugins/filters/condition/endsWith.js +1 -1
  282. package/plugins/filters/condition/equal.js +1 -1
  283. package/plugins/filters/condition/greaterThan.js +1 -1
  284. package/plugins/filters/condition/greaterThanOrEqual.js +1 -1
  285. package/plugins/filters/condition/lessThan.js +1 -1
  286. package/plugins/filters/condition/lessThanOrEqual.js +1 -1
  287. package/plugins/filters/condition/none.js +1 -1
  288. package/plugins/filters/condition/notBetween.js +1 -1
  289. package/plugins/filters/condition/notContains.js +1 -1
  290. package/plugins/filters/condition/notEmpty.js +1 -1
  291. package/plugins/filters/condition/notEqual.js +1 -1
  292. package/plugins/filters/conditionCollection.js +1 -1
  293. package/plugins/filters/conditionCollection.mjs +1 -1
  294. package/plugins/filters/conditionUpdateObserver.js +23 -25
  295. package/plugins/filters/conditionUpdateObserver.mjs +23 -25
  296. package/plugins/filters/dataFilter.js +2 -2
  297. package/plugins/filters/dataFilter.mjs +2 -2
  298. package/plugins/filters/filters.js +84 -98
  299. package/plugins/filters/filters.mjs +83 -97
  300. package/plugins/filters/logicalOperations/conjunction.js +1 -1
  301. package/plugins/filters/logicalOperations/disjunction.js +1 -1
  302. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -1
  303. package/plugins/filters/ui/_base.js +2 -2
  304. package/plugins/filters/ui/_base.mjs +1 -1
  305. package/plugins/filters/ui/input.js +13 -19
  306. package/plugins/filters/ui/input.mjs +13 -19
  307. package/plugins/filters/ui/link.js +8 -13
  308. package/plugins/filters/ui/link.mjs +8 -13
  309. package/plugins/filters/ui/multipleSelect.js +86 -113
  310. package/plugins/filters/ui/multipleSelect.mjs +85 -112
  311. package/plugins/filters/ui/radioInput.js +12 -20
  312. package/plugins/filters/ui/radioInput.mjs +12 -20
  313. package/plugins/filters/ui/select.js +51 -73
  314. package/plugins/filters/ui/select.mjs +49 -71
  315. package/plugins/formulas/formulas.js +270 -328
  316. package/plugins/formulas/formulas.mjs +271 -329
  317. package/plugins/formulas/indexSyncer/axisSyncer.js +38 -61
  318. package/plugins/formulas/indexSyncer/axisSyncer.mjs +38 -61
  319. package/plugins/formulas/indexSyncer/index.js +25 -48
  320. package/plugins/formulas/indexSyncer/index.mjs +25 -48
  321. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
  322. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -1
  323. package/plugins/hiddenColumns/hiddenColumns.js +68 -87
  324. package/plugins/hiddenColumns/hiddenColumns.mjs +68 -87
  325. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
  326. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -1
  327. package/plugins/hiddenRows/hiddenRows.js +67 -86
  328. package/plugins/hiddenRows/hiddenRows.mjs +67 -86
  329. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  330. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  331. package/plugins/manualColumnFreeze/manualColumnFreeze.js +24 -32
  332. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +25 -33
  333. package/plugins/manualColumnMove/manualColumnMove.js +133 -177
  334. package/plugins/manualColumnMove/manualColumnMove.mjs +133 -177
  335. package/plugins/manualColumnMove/ui/_base.js +1 -1
  336. package/plugins/manualColumnMove/ui/_base.mjs +1 -1
  337. package/plugins/manualColumnResize/manualColumnResize.js +169 -230
  338. package/plugins/manualColumnResize/manualColumnResize.mjs +169 -230
  339. package/plugins/manualRowMove/manualRowMove.js +106 -135
  340. package/plugins/manualRowMove/manualRowMove.mjs +106 -135
  341. package/plugins/manualRowMove/ui/_base.js +1 -1
  342. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  343. package/plugins/manualRowResize/manualRowResize.js +150 -209
  344. package/plugins/manualRowResize/manualRowResize.mjs +150 -209
  345. package/plugins/mergeCells/calculations/autofill.js +1 -1
  346. package/plugins/mergeCells/calculations/autofill.mjs +1 -1
  347. package/plugins/mergeCells/calculations/selection.js +3 -72
  348. package/plugins/mergeCells/calculations/selection.mjs +3 -72
  349. package/plugins/mergeCells/cellCoords.js +1 -1
  350. package/plugins/mergeCells/cellCoords.mjs +1 -1
  351. package/plugins/mergeCells/cellsCollection.js +118 -2
  352. package/plugins/mergeCells/cellsCollection.mjs +118 -2
  353. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +12 -2
  354. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +11 -1
  355. package/plugins/mergeCells/focusOrder.js +305 -0
  356. package/plugins/mergeCells/focusOrder.mjs +300 -0
  357. package/plugins/mergeCells/mergeCells.js +500 -398
  358. package/plugins/mergeCells/mergeCells.mjs +500 -398
  359. package/plugins/multiColumnSorting/multiColumnSorting.js +9 -3
  360. package/plugins/multiColumnSorting/multiColumnSorting.mjs +9 -3
  361. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -2
  362. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +2 -2
  363. package/plugins/nestedHeaders/nestedHeaders.js +206 -254
  364. package/plugins/nestedHeaders/nestedHeaders.mjs +207 -255
  365. package/plugins/nestedHeaders/stateManager/headersTree.js +21 -32
  366. package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -32
  367. package/plugins/nestedHeaders/stateManager/index.js +30 -41
  368. package/plugins/nestedHeaders/stateManager/index.mjs +30 -41
  369. package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -30
  370. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -30
  371. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  372. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  373. package/plugins/nestedRows/data/dataManager.js +2 -2
  374. package/plugins/nestedRows/data/dataManager.mjs +2 -2
  375. package/plugins/nestedRows/nestedRows.js +154 -185
  376. package/plugins/nestedRows/nestedRows.mjs +155 -186
  377. package/plugins/nestedRows/ui/_base.js +1 -1
  378. package/plugins/nestedRows/ui/_base.mjs +1 -1
  379. package/plugins/nestedRows/ui/contextMenu.js +13 -17
  380. package/plugins/nestedRows/ui/contextMenu.mjs +11 -15
  381. package/plugins/nestedRows/utils/rowMoveController.js +6 -6
  382. package/plugins/nestedRows/utils/rowMoveController.mjs +6 -6
  383. package/plugins/persistentState/persistentState.js +1 -1
  384. package/plugins/persistentState/persistentState.mjs +1 -1
  385. package/plugins/persistentState/storage.js +3 -3
  386. package/plugins/persistentState/storage.mjs +3 -3
  387. package/plugins/search/search.js +8 -8
  388. package/plugins/search/search.mjs +8 -8
  389. package/plugins/touchScroll/touchScroll.js +16 -20
  390. package/plugins/touchScroll/touchScroll.mjs +17 -21
  391. package/plugins/trimRows/trimRows.js +7 -7
  392. package/plugins/trimRows/trimRows.mjs +7 -7
  393. package/plugins/undoRedo/index.js +1 -1
  394. package/renderers/checkboxRenderer/checkboxRenderer.js +8 -5
  395. package/renderers/checkboxRenderer/checkboxRenderer.mjs +8 -5
  396. package/selection/highlight/highlight.js +16 -18
  397. package/selection/highlight/highlight.mjs +15 -17
  398. package/selection/highlight/visualSelection.js +3 -1
  399. package/selection/highlight/visualSelection.mjs +3 -1
  400. package/selection/range.js +3 -5
  401. package/selection/range.mjs +2 -4
  402. package/selection/selection.js +227 -69
  403. package/selection/selection.mjs +225 -67
  404. package/selection/transformation.js +149 -118
  405. package/selection/transformation.mjs +149 -118
  406. package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
  407. package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
  408. package/shortcutContexts/commands/editor/open.js +18 -3
  409. package/shortcutContexts/commands/editor/open.mjs +18 -3
  410. package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
  411. package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
  412. package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
  413. package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
  414. package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
  415. package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
  416. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
  417. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
  418. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +3 -1
  419. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +3 -1
  420. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +9 -3
  421. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +9 -3
  422. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +10 -3
  423. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +10 -3
  424. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +3 -1
  425. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +3 -1
  426. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +3 -1
  427. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +3 -1
  428. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +3 -1
  429. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +3 -1
  430. package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
  431. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
  432. package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
  433. package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
  434. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +6 -1
  435. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +6 -1
  436. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +6 -1
  437. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +6 -1
  438. package/shortcutContexts/grid.js +9 -3
  439. package/shortcutContexts/grid.mjs +9 -3
  440. package/shortcuts/context.js +3 -2
  441. package/shortcuts/context.mjs +3 -2
  442. package/shortcuts/manager.js +2 -2
  443. package/shortcuts/manager.mjs +2 -2
  444. package/tableView.js +53 -79
  445. package/tableView.mjs +53 -79
  446. package/translations/changesObservable/observable.js +21 -38
  447. package/translations/changesObservable/observable.mjs +21 -38
  448. package/translations/changesObservable/observer.js +7 -12
  449. package/translations/changesObservable/observer.mjs +6 -11
  450. package/translations/indexMapper.js +1 -1
  451. package/translations/indexMapper.mjs +1 -1
  452. package/translations/mapCollections/aggregatedCollection.js +2 -2
  453. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  454. package/translations/mapCollections/mapCollection.js +1 -1
  455. package/translations/mapCollections/mapCollection.mjs +1 -1
  456. package/translations/maps/indexMap.js +2 -2
  457. package/translations/maps/indexMap.mjs +2 -2
  458. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
  459. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
  460. package/utils/dataStructures/linkedList.js +7 -2
  461. package/utils/dataStructures/linkedList.mjs +7 -2
  462. package/utils/dataStructures/tree.js +2 -2
  463. package/utils/dataStructures/tree.mjs +2 -2
  464. package/utils/ghostTable.js +1 -1
  465. package/utils/ghostTable.mjs +1 -1
  466. package/utils/interval.js +27 -45
  467. package/utils/interval.mjs +27 -45
  468. package/utils/samplesGenerator.js +1 -1
  469. package/utils/samplesGenerator.mjs +1 -1
@@ -1,11 +1,9 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
3
3
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
4
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
5
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
6
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
7
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
8
- 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; } }
4
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
5
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
6
+ 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"); }
9
7
  import { closestDown, hasClass, isChildOf, getParent } from "../../../helpers/dom/element.mjs";
10
8
  import { partial } from "../../../helpers/function.mjs";
11
9
  import { isTouchSupported } from "../../../helpers/feature.mjs";
@@ -36,35 +34,17 @@ class Event {
36
34
  */
37
35
  constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selectionManager) {
38
36
  let parent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
39
- _classPrivateFieldInitSpec(this, _wtSettings, {
40
- writable: true,
41
- value: void 0
42
- });
43
- _classPrivateFieldInitSpec(this, _domBindings, {
44
- writable: true,
45
- value: void 0
46
- });
47
- _classPrivateFieldInitSpec(this, _wtTable, {
48
- writable: true,
49
- value: void 0
50
- });
51
- _classPrivateFieldInitSpec(this, _selectionManager, {
52
- writable: true,
53
- value: void 0
54
- });
55
- _classPrivateFieldInitSpec(this, _parent, {
56
- writable: true,
57
- value: void 0
58
- });
37
+ _classPrivateFieldInitSpec(this, _wtSettings, void 0);
38
+ _classPrivateFieldInitSpec(this, _domBindings, void 0);
39
+ _classPrivateFieldInitSpec(this, _wtTable, void 0);
40
+ _classPrivateFieldInitSpec(this, _selectionManager, void 0);
41
+ _classPrivateFieldInitSpec(this, _parent, void 0);
59
42
  /**
60
43
  * Instance of {@link EventManager}.
61
44
  *
62
45
  * @type {EventManager}
63
46
  */
64
- _classPrivateFieldInitSpec(this, _eventManager, {
65
- writable: true,
66
- value: void 0
67
- });
47
+ _classPrivateFieldInitSpec(this, _eventManager, void 0);
68
48
  /**
69
49
  * Should be use only for passing face called external origin methods, like registered event listeners.
70
50
  * It provides backward compatibility by getting instance facade.
@@ -75,38 +55,26 @@ class Event {
75
55
  *
76
56
  * @type {FacadeGetter}
77
57
  */
78
- _classPrivateFieldInitSpec(this, _facadeGetter, {
79
- writable: true,
80
- value: void 0
81
- });
58
+ _classPrivateFieldInitSpec(this, _facadeGetter, void 0);
82
59
  /**
83
60
  * @type {boolean}
84
61
  */
85
- _classPrivateFieldInitSpec(this, _selectedCellBeforeTouchEnd, {
86
- writable: true,
87
- value: void 0
88
- });
62
+ _classPrivateFieldInitSpec(this, _selectedCellBeforeTouchEnd, void 0);
89
63
  /**
90
64
  * @type {number[]}
91
65
  */
92
- _classPrivateFieldInitSpec(this, _dblClickTimeout, {
93
- writable: true,
94
- value: [null, null]
95
- });
66
+ _classPrivateFieldInitSpec(this, _dblClickTimeout, [null, null]);
96
67
  /**
97
68
  * @type {number[]}
98
69
  */
99
- _classPrivateFieldInitSpec(this, _dblClickOrigin, {
100
- writable: true,
101
- value: [null, null]
102
- });
103
- _classPrivateFieldSet(this, _wtSettings, wtSettings);
104
- _classPrivateFieldSet(this, _domBindings, domBindings);
105
- _classPrivateFieldSet(this, _wtTable, wtTable);
106
- _classPrivateFieldSet(this, _selectionManager, selectionManager);
107
- _classPrivateFieldSet(this, _parent, parent);
108
- _classPrivateFieldSet(this, _eventManager, eventManager);
109
- _classPrivateFieldSet(this, _facadeGetter, facadeGetter);
70
+ _classPrivateFieldInitSpec(this, _dblClickOrigin, [null, null]);
71
+ _classPrivateFieldSet(_wtSettings, this, wtSettings);
72
+ _classPrivateFieldSet(_domBindings, this, domBindings);
73
+ _classPrivateFieldSet(_wtTable, this, wtTable);
74
+ _classPrivateFieldSet(_selectionManager, this, selectionManager);
75
+ _classPrivateFieldSet(_parent, this, parent);
76
+ _classPrivateFieldSet(_eventManager, this, eventManager);
77
+ _classPrivateFieldSet(_facadeGetter, this, facadeGetter);
110
78
  this.registerEvents();
111
79
  }
112
80
 
@@ -116,32 +84,32 @@ class Event {
116
84
  * @private
117
85
  */
118
86
  registerEvents() {
119
- _classPrivateFieldGet(this, _eventManager).addEventListener(_classPrivateFieldGet(this, _wtTable).holder, 'contextmenu', event => this.onContextMenu(event));
120
- _classPrivateFieldGet(this, _eventManager).addEventListener(_classPrivateFieldGet(this, _wtTable).TABLE, 'mouseover', event => this.onMouseOver(event));
121
- _classPrivateFieldGet(this, _eventManager).addEventListener(_classPrivateFieldGet(this, _wtTable).TABLE, 'mouseout', event => this.onMouseOut(event));
87
+ _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).holder, 'contextmenu', event => this.onContextMenu(event));
88
+ _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).TABLE, 'mouseover', event => this.onMouseOver(event));
89
+ _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).TABLE, 'mouseout', event => this.onMouseOut(event));
122
90
  const initTouchEvents = () => {
123
- _classPrivateFieldGet(this, _eventManager).addEventListener(_classPrivateFieldGet(this, _wtTable).holder, 'touchstart', event => this.onTouchStart(event));
124
- _classPrivateFieldGet(this, _eventManager).addEventListener(_classPrivateFieldGet(this, _wtTable).holder, 'touchend', event => this.onTouchEnd(event));
91
+ _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).holder, 'touchstart', event => this.onTouchStart(event));
92
+ _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).holder, 'touchend', event => this.onTouchEnd(event));
125
93
  if (!this.momentumScrolling) {
126
94
  this.momentumScrolling = {};
127
95
  }
128
- _classPrivateFieldGet(this, _eventManager).addEventListener(_classPrivateFieldGet(this, _wtTable).holder, 'scroll', () => {
96
+ _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).holder, 'scroll', () => {
129
97
  clearTimeout(this.momentumScrolling._timeout);
130
98
  if (!this.momentumScrolling.ongoing) {
131
- _classPrivateFieldGet(this, _wtSettings).getSetting('onBeforeTouchScroll');
99
+ _classPrivateFieldGet(_wtSettings, this).getSetting('onBeforeTouchScroll');
132
100
  }
133
101
  this.momentumScrolling.ongoing = true;
134
102
  this.momentumScrolling._timeout = setTimeout(() => {
135
103
  if (!this.touchApplied) {
136
104
  this.momentumScrolling.ongoing = false;
137
- _classPrivateFieldGet(this, _wtSettings).getSetting('onAfterMomentumScroll');
105
+ _classPrivateFieldGet(_wtSettings, this).getSetting('onAfterMomentumScroll');
138
106
  }
139
107
  }, 200);
140
108
  });
141
109
  };
142
110
  const initMouseEvents = () => {
143
- _classPrivateFieldGet(this, _eventManager).addEventListener(_classPrivateFieldGet(this, _wtTable).holder, 'mouseup', event => this.onMouseUp(event));
144
- _classPrivateFieldGet(this, _eventManager).addEventListener(_classPrivateFieldGet(this, _wtTable).holder, 'mousedown', event => this.onMouseDown(event));
111
+ _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).holder, 'mouseup', event => this.onMouseUp(event));
112
+ _classPrivateFieldGet(_eventManager, this).addEventListener(_classPrivateFieldGet(_wtTable, this).holder, 'mousedown', event => this.onMouseDown(event));
145
113
  };
146
114
  if (isMobileBrowser()) {
147
115
  initTouchEvents();
@@ -164,9 +132,9 @@ class Event {
164
132
  selectedCellWasTouched(touchTarget) {
165
133
  const cellUnderFinger = this.parentCell(touchTarget);
166
134
  const coordsOfCellUnderFinger = cellUnderFinger.coords;
167
- if (_classPrivateFieldGet(this, _selectedCellBeforeTouchEnd) && coordsOfCellUnderFinger) {
168
- const [rowTouched, rowSelected] = [coordsOfCellUnderFinger.row, _classPrivateFieldGet(this, _selectedCellBeforeTouchEnd).from.row];
169
- const [colTouched, colSelected] = [coordsOfCellUnderFinger.col, _classPrivateFieldGet(this, _selectedCellBeforeTouchEnd).from.col];
135
+ if (_classPrivateFieldGet(_selectedCellBeforeTouchEnd, this) && coordsOfCellUnderFinger) {
136
+ const [rowTouched, rowSelected] = [coordsOfCellUnderFinger.row, _classPrivateFieldGet(_selectedCellBeforeTouchEnd, this).from.row];
137
+ const [colTouched, colSelected] = [coordsOfCellUnderFinger.col, _classPrivateFieldGet(_selectedCellBeforeTouchEnd, this).from.col];
170
138
  return rowTouched === rowSelected && colTouched === colSelected;
171
139
  }
172
140
  return false;
@@ -181,18 +149,18 @@ class Event {
181
149
  */
182
150
  parentCell(elem) {
183
151
  const cell = {};
184
- const TABLE = _classPrivateFieldGet(this, _wtTable).TABLE;
152
+ const TABLE = _classPrivateFieldGet(_wtTable, this).TABLE;
185
153
  const TD = closestDown(elem, ['TD', 'TH'], TABLE);
186
154
  if (TD) {
187
- cell.coords = _classPrivateFieldGet(this, _wtTable).getCoords(TD);
155
+ cell.coords = _classPrivateFieldGet(_wtTable, this).getCoords(TD);
188
156
  cell.TD = TD;
189
157
  } else if (hasClass(elem, 'wtBorder') && hasClass(elem, 'current')) {
190
- cell.coords = _classPrivateFieldGet(this, _selectionManager).getFocusSelection().cellRange.highlight;
191
- cell.TD = _classPrivateFieldGet(this, _wtTable).getCell(cell.coords);
158
+ cell.coords = _classPrivateFieldGet(_selectionManager, this).getFocusSelection().cellRange.highlight;
159
+ cell.TD = _classPrivateFieldGet(_wtTable, this).getCell(cell.coords);
192
160
  } else if (hasClass(elem, 'wtBorder') && hasClass(elem, 'area')) {
193
- if (_classPrivateFieldGet(this, _selectionManager).getAreaSelection().cellRange) {
194
- cell.coords = _classPrivateFieldGet(this, _selectionManager).getAreaSelection().cellRange.to;
195
- cell.TD = _classPrivateFieldGet(this, _wtTable).getCell(cell.coords);
161
+ if (_classPrivateFieldGet(_selectionManager, this).getAreaSelection().cellRange) {
162
+ cell.coords = _classPrivateFieldGet(_selectionManager, this).getAreaSelection().cellRange.to;
163
+ cell.TD = _classPrivateFieldGet(_wtTable, this).getCell(cell.coords);
196
164
  }
197
165
  }
198
166
  return cell;
@@ -205,7 +173,7 @@ class Event {
205
173
  * @param {MouseEvent} event The mouse event object.
206
174
  */
207
175
  onMouseDown(event) {
208
- const activeElement = _classPrivateFieldGet(this, _domBindings).rootDocument.activeElement;
176
+ const activeElement = _classPrivateFieldGet(_domBindings, this).rootDocument.activeElement;
209
177
  const getParentNode = partial(getParent, event.target);
210
178
  const realTarget = event.target;
211
179
 
@@ -216,17 +184,17 @@ class Event {
216
184
  }
217
185
  const cell = this.parentCell(realTarget);
218
186
  if (hasClass(realTarget, 'corner')) {
219
- _classPrivateFieldGet(this, _wtSettings).getSetting('onCellCornerMouseDown', event, realTarget);
220
- } else if (cell.TD && _classPrivateFieldGet(this, _wtSettings).has('onCellMouseDown')) {
187
+ _classPrivateFieldGet(_wtSettings, this).getSetting('onCellCornerMouseDown', event, realTarget);
188
+ } else if (cell.TD && _classPrivateFieldGet(_wtSettings, this).has('onCellMouseDown')) {
221
189
  this.callListener('onCellMouseDown', event, cell.coords, cell.TD);
222
190
  }
223
191
 
224
192
  // doubleclick reacts only for left mouse button or from touch events
225
193
  if ((event.button === 0 || this.touchApplied) && cell.TD) {
226
- _classPrivateFieldGet(this, _dblClickOrigin)[0] = cell.TD;
227
- clearTimeout(_classPrivateFieldGet(this, _dblClickTimeout)[0]);
228
- _classPrivateFieldGet(this, _dblClickTimeout)[0] = setTimeout(() => {
229
- _classPrivateFieldGet(this, _dblClickOrigin)[0] = null;
194
+ _classPrivateFieldGet(_dblClickOrigin, this)[0] = cell.TD;
195
+ clearTimeout(_classPrivateFieldGet(_dblClickTimeout, this)[0]);
196
+ _classPrivateFieldGet(_dblClickTimeout, this)[0] = setTimeout(() => {
197
+ _classPrivateFieldGet(_dblClickOrigin, this)[0] = null;
230
198
  }, 1000);
231
199
  }
232
200
  }
@@ -238,7 +206,7 @@ class Event {
238
206
  * @param {MouseEvent} event The mouse event object.
239
207
  */
240
208
  onContextMenu(event) {
241
- if (_classPrivateFieldGet(this, _wtSettings).has('onCellContextMenu')) {
209
+ if (_classPrivateFieldGet(_wtSettings, this).has('onCellContextMenu')) {
242
210
  const cell = this.parentCell(event.target);
243
211
  if (cell.TD) {
244
212
  this.callListener('onCellContextMenu', event, cell.coords, cell.TD);
@@ -253,15 +221,15 @@ class Event {
253
221
  * @param {MouseEvent} event The mouse event object.
254
222
  */
255
223
  onMouseOver(event) {
256
- if (!_classPrivateFieldGet(this, _wtSettings).has('onCellMouseOver')) {
224
+ if (!_classPrivateFieldGet(_wtSettings, this).has('onCellMouseOver')) {
257
225
  return;
258
226
  }
259
- const table = _classPrivateFieldGet(this, _wtTable).TABLE;
227
+ const table = _classPrivateFieldGet(_wtTable, this).TABLE;
260
228
  const td = closestDown(event.target, ['TD', 'TH'], table);
261
- const parent = _classPrivateFieldGet(this, _parent) || this;
229
+ const parent = _classPrivateFieldGet(_parent, this) || this;
262
230
  if (td && td !== parent.lastMouseOver && isChildOf(td, table)) {
263
231
  parent.lastMouseOver = td;
264
- this.callListener('onCellMouseOver', event, _classPrivateFieldGet(this, _wtTable).getCoords(td), td);
232
+ this.callListener('onCellMouseOver', event, _classPrivateFieldGet(_wtTable, this).getCoords(td), td);
265
233
  }
266
234
  }
267
235
 
@@ -272,15 +240,15 @@ class Event {
272
240
  * @param {MouseEvent} event The mouse event object.
273
241
  */
274
242
  onMouseOut(event) {
275
- if (!_classPrivateFieldGet(this, _wtSettings).has('onCellMouseOut')) {
243
+ if (!_classPrivateFieldGet(_wtSettings, this).has('onCellMouseOut')) {
276
244
  return;
277
245
  }
278
- const table = _classPrivateFieldGet(this, _wtTable).TABLE;
246
+ const table = _classPrivateFieldGet(_wtTable, this).TABLE;
279
247
  const lastTD = closestDown(event.target, ['TD', 'TH'], table);
280
248
  const nextTD = closestDown(event.relatedTarget, ['TD', 'TH'], table);
281
- const parent = _classPrivateFieldGet(this, _parent) || this;
249
+ const parent = _classPrivateFieldGet(_parent, this) || this;
282
250
  if (lastTD && lastTD !== nextTD && isChildOf(lastTD, table)) {
283
- this.callListener('onCellMouseOut', event, _classPrivateFieldGet(this, _wtTable).getCoords(lastTD), lastTD);
251
+ this.callListener('onCellMouseOut', event, _classPrivateFieldGet(_wtTable, this).getCoords(lastTD), lastTD);
284
252
  if (nextTD === null) {
285
253
  parent.lastMouseOver = null;
286
254
  }
@@ -295,7 +263,7 @@ class Event {
295
263
  */
296
264
  onMouseUp(event) {
297
265
  const cell = this.parentCell(event.target);
298
- if (cell.TD && _classPrivateFieldGet(this, _wtSettings).has('onCellMouseUp')) {
266
+ if (cell.TD && _classPrivateFieldGet(_wtSettings, this).has('onCellMouseUp')) {
299
267
  this.callListener('onCellMouseUp', event, cell.coords, cell.TD);
300
268
  }
301
269
 
@@ -303,19 +271,19 @@ class Event {
303
271
  if (event.button !== 0 && !this.touchApplied) {
304
272
  return;
305
273
  }
306
- if (cell.TD === _classPrivateFieldGet(this, _dblClickOrigin)[0] && cell.TD === _classPrivateFieldGet(this, _dblClickOrigin)[1]) {
274
+ if (cell.TD === _classPrivateFieldGet(_dblClickOrigin, this)[0] && cell.TD === _classPrivateFieldGet(_dblClickOrigin, this)[1]) {
307
275
  if (hasClass(event.target, 'corner')) {
308
276
  this.callListener('onCellCornerDblClick', event, cell.coords, cell.TD);
309
277
  } else {
310
278
  this.callListener('onCellDblClick', event, cell.coords, cell.TD);
311
279
  }
312
- _classPrivateFieldGet(this, _dblClickOrigin)[0] = null;
313
- _classPrivateFieldGet(this, _dblClickOrigin)[1] = null;
314
- } else if (cell.TD === _classPrivateFieldGet(this, _dblClickOrigin)[0]) {
315
- _classPrivateFieldGet(this, _dblClickOrigin)[1] = cell.TD;
316
- clearTimeout(_classPrivateFieldGet(this, _dblClickTimeout)[1]);
317
- _classPrivateFieldGet(this, _dblClickTimeout)[1] = setTimeout(() => {
318
- _classPrivateFieldGet(this, _dblClickOrigin)[1] = null;
280
+ _classPrivateFieldGet(_dblClickOrigin, this)[0] = null;
281
+ _classPrivateFieldGet(_dblClickOrigin, this)[1] = null;
282
+ } else if (cell.TD === _classPrivateFieldGet(_dblClickOrigin, this)[0]) {
283
+ _classPrivateFieldGet(_dblClickOrigin, this)[1] = cell.TD;
284
+ clearTimeout(_classPrivateFieldGet(_dblClickTimeout, this)[1]);
285
+ _classPrivateFieldGet(_dblClickTimeout, this)[1] = setTimeout(() => {
286
+ _classPrivateFieldGet(_dblClickOrigin, this)[1] = null;
319
287
  }, 500);
320
288
  }
321
289
  }
@@ -327,7 +295,7 @@ class Event {
327
295
  * @param {MouseEvent} event The mouse event object.
328
296
  */
329
297
  onTouchStart(event) {
330
- _classPrivateFieldSet(this, _selectedCellBeforeTouchEnd, _classPrivateFieldGet(this, _selectionManager).getFocusSelection().cellRange);
298
+ _classPrivateFieldSet(_selectedCellBeforeTouchEnd, this, _classPrivateFieldGet(_selectionManager, this).getFocusSelection().cellRange);
331
299
  this.touchApplied = true;
332
300
  this.onMouseDown(event);
333
301
  }
@@ -343,7 +311,7 @@ class Event {
343
311
  const target = event.target;
344
312
  const parentCellCoords = (_this$parentCell = this.parentCell(target)) === null || _this$parentCell === void 0 ? void 0 : _this$parentCell.coords;
345
313
  const isCellsRange = isDefined(parentCellCoords) && parentCellCoords.row >= 0 && parentCellCoords.col >= 0;
346
- const isEventCancelable = event.cancelable && isCellsRange && _classPrivateFieldGet(this, _wtSettings).getSetting('isDataViewInstance');
314
+ const isEventCancelable = event.cancelable && isCellsRange && _classPrivateFieldGet(_wtSettings, this).getSetting('isDataViewInstance');
347
315
 
348
316
  // To prevent accidental redirects or other actions that the interactive elements (e.q "A" link) do
349
317
  // while the cell is highlighted, all touch events that are triggered on different cells are
@@ -379,9 +347,9 @@ class Event {
379
347
  * @param {HTMLElement} target Event target.
380
348
  */
381
349
  callListener(name, event, coords, target) {
382
- const listener = _classPrivateFieldGet(this, _wtSettings).getSettingPure(name);
350
+ const listener = _classPrivateFieldGet(_wtSettings, this).getSettingPure(name);
383
351
  if (listener) {
384
- listener(event, coords, target, _classPrivateFieldGet(this, _facadeGetter).call(this));
352
+ listener(event, coords, target, _classPrivateFieldGet(_facadeGetter, this).call(this));
385
353
  }
386
354
  }
387
355
 
@@ -389,9 +357,9 @@ class Event {
389
357
  * Clears double-click timeouts and destroys the internal eventManager instance.
390
358
  */
391
359
  destroy() {
392
- clearTimeout(_classPrivateFieldGet(this, _dblClickTimeout)[0]);
393
- clearTimeout(_classPrivateFieldGet(this, _dblClickTimeout)[1]);
394
- _classPrivateFieldGet(this, _eventManager).destroy();
360
+ clearTimeout(_classPrivateFieldGet(_dblClickTimeout, this)[0]);
361
+ clearTimeout(_classPrivateFieldGet(_dblClickTimeout, this)[1]);
362
+ _classPrivateFieldGet(_eventManager, this).destroy();
395
363
  }
396
364
  }
397
365
  export default Event;
@@ -3,7 +3,7 @@
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  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; }
6
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
7
7
  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); }
8
8
  /**
9
9
  * @class ColumnFilter
@@ -1,6 +1,6 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  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; }
3
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  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); }
5
5
  /**
6
6
  * @class ColumnFilter
@@ -3,7 +3,7 @@
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  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; }
6
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
7
7
  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); }
8
8
  /**
9
9
  * @class RowFilter
@@ -1,6 +1,6 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  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; }
3
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  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); }
5
5
  /**
6
6
  * @class RowFilter
@@ -29,5 +29,5 @@ exports.SharedOrderView = _orderView.SharedOrderView;
29
29
  var _eventManager = require("../../../eventManager");
30
30
  exports.getListenersCounter = _eventManager.getListenersCounter;
31
31
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
32
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
32
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
33
33
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -11,7 +11,7 @@ var _clone = _interopRequireDefault(require("../core/clone"));
11
11
  var _a11y = require("../../../../helpers/a11y");
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
  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; }
14
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
15
15
  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); }
16
16
  /**
17
17
  * Creates an overlay over the original Walkontable instance. The overlay renders the clone of the original Walkontable
@@ -1,6 +1,6 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  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; }
3
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  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); }
5
5
  import { getScrollableElement, getTrimmingContainer, getScrollbarWidth, setAttribute } from "../../../../helpers/dom/element.mjs";
6
6
  import { defineGetter } from "../../../../helpers/object.mjs";
@@ -8,7 +8,7 @@ var _base = require("./_base");
8
8
  var _constants = require("./constants");
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
10
  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; }
11
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
12
12
  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); }
13
13
  /**
14
14
  * @class BottomOverlay
@@ -1,6 +1,6 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  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; }
3
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  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); }
5
5
  import { addClass, getScrollbarWidth, getScrollTop, getWindowScrollLeft, hasClass, outerHeight, removeClass } from "../../../../helpers/dom/element.mjs";
6
6
  import BottomOverlayTable from "./../table/bottom.mjs";
@@ -227,9 +227,15 @@ class InlineStartOverlay extends _base.Overlay {
227
227
  * @returns {boolean}
228
228
  */
229
229
  scrollTo(sourceCol, beyondRendered) {
230
- let newX = this.getTableParentOffset();
230
+ const {
231
+ wtSettings
232
+ } = this;
233
+ const rowHeaders = wtSettings.getSetting('rowHeaders');
234
+ const fixedColumnsStart = wtSettings.getSetting('fixedColumnsStart');
231
235
  const sourceInstance = this.wot.cloneSource ? this.wot.cloneSource : this.wot;
232
236
  const mainHolder = sourceInstance.wtTable.holder;
237
+ const rowHeaderBorderCompensation = fixedColumnsStart === 0 && rowHeaders.length > 0 && !(0, _element.hasClass)(mainHolder.parentNode, 'innerBorderInlineStart') ? 1 : 0;
238
+ let newX = this.getTableParentOffset();
233
239
  let scrollbarCompensation = 0;
234
240
  if (beyondRendered) {
235
241
  const columnWidth = this.wot.wtTable.getColumnWidth(sourceCol);
@@ -244,10 +250,18 @@ class InlineStartOverlay extends _base.Overlay {
244
250
  if (beyondRendered) {
245
251
  newX += this.sumCellSizes(0, sourceCol + 1);
246
252
  newX -= this.wot.wtViewport.getViewportWidth();
253
+ // Compensate for the right header border if scrolled from the absolute left.
254
+ newX += rowHeaderBorderCompensation;
247
255
  } else {
248
256
  newX += this.sumCellSizes(this.wtSettings.getSetting('fixedColumnsStart'), sourceCol);
249
257
  }
250
258
  newX += scrollbarCompensation;
259
+
260
+ // If the table is scrolled all the way left when starting the scroll and going to be scrolled to the far right,
261
+ // we need to compensate for the potential header border width.
262
+ if ((0, _element.getMaximumScrollLeft)(this.mainTableScrollableElement) === newX - rowHeaderBorderCompensation && rowHeaderBorderCompensation > 0) {
263
+ this.wot.wtOverlays.expandHiderHorizontallyBy(rowHeaderBorderCompensation);
264
+ }
251
265
  return this.setScrollPosition(newX);
252
266
  }
253
267
 
@@ -1,5 +1,5 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
- import { addClass, getScrollbarWidth, getScrollLeft, getWindowScrollTop, hasClass, outerWidth, removeClass, setOverlayPosition, resetCssTransform } from "../../../../helpers/dom/element.mjs";
2
+ import { addClass, getScrollbarWidth, getScrollLeft, getMaximumScrollLeft, getWindowScrollTop, hasClass, outerWidth, removeClass, setOverlayPosition, resetCssTransform } from "../../../../helpers/dom/element.mjs";
3
3
  import InlineStartOverlayTable from "../table/inlineStart.mjs";
4
4
  import { Overlay } from "./_base.mjs";
5
5
  import { CORNER_DEFAULT_STYLE } from "../selection/index.mjs";
@@ -223,9 +223,15 @@ export class InlineStartOverlay extends Overlay {
223
223
  * @returns {boolean}
224
224
  */
225
225
  scrollTo(sourceCol, beyondRendered) {
226
- let newX = this.getTableParentOffset();
226
+ const {
227
+ wtSettings
228
+ } = this;
229
+ const rowHeaders = wtSettings.getSetting('rowHeaders');
230
+ const fixedColumnsStart = wtSettings.getSetting('fixedColumnsStart');
227
231
  const sourceInstance = this.wot.cloneSource ? this.wot.cloneSource : this.wot;
228
232
  const mainHolder = sourceInstance.wtTable.holder;
233
+ const rowHeaderBorderCompensation = fixedColumnsStart === 0 && rowHeaders.length > 0 && !hasClass(mainHolder.parentNode, 'innerBorderInlineStart') ? 1 : 0;
234
+ let newX = this.getTableParentOffset();
229
235
  let scrollbarCompensation = 0;
230
236
  if (beyondRendered) {
231
237
  const columnWidth = this.wot.wtTable.getColumnWidth(sourceCol);
@@ -240,10 +246,18 @@ export class InlineStartOverlay extends Overlay {
240
246
  if (beyondRendered) {
241
247
  newX += this.sumCellSizes(0, sourceCol + 1);
242
248
  newX -= this.wot.wtViewport.getViewportWidth();
249
+ // Compensate for the right header border if scrolled from the absolute left.
250
+ newX += rowHeaderBorderCompensation;
243
251
  } else {
244
252
  newX += this.sumCellSizes(this.wtSettings.getSetting('fixedColumnsStart'), sourceCol);
245
253
  }
246
254
  newX += scrollbarCompensation;
255
+
256
+ // If the table is scrolled all the way left when starting the scroll and going to be scrolled to the far right,
257
+ // we need to compensate for the potential header border width.
258
+ if (getMaximumScrollLeft(this.mainTableScrollableElement) === newX - rowHeaderBorderCompensation && rowHeaderBorderCompensation > 0) {
259
+ this.wot.wtOverlays.expandHiderHorizontallyBy(rowHeaderBorderCompensation);
260
+ }
247
261
  return this.setScrollPosition(newX);
248
262
  }
249
263
 
@@ -9,7 +9,7 @@ var _selection = require("../selection");
9
9
  var _constants = require("./constants");
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
  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; }
12
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
12
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
13
13
  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); }
14
14
  /**
15
15
  * @class TopOverlay
@@ -259,6 +259,9 @@ class TopOverlay extends _base.Overlay {
259
259
  } = this;
260
260
  const sourceInstance = wot.cloneSource ? wot.cloneSource : wot;
261
261
  const mainHolder = sourceInstance.wtTable.holder;
262
+ const columnHeaders = wtSettings.getSetting('columnHeaders');
263
+ const fixedRowsTop = wtSettings.getSetting('fixedRowsTop');
264
+ const columnHeaderBorderCompensation = fixedRowsTop === 0 && columnHeaders.length > 0 && !(0, _element.hasClass)(mainHolder.parentNode, 'innerBorderTop') ? 1 : 0;
262
265
  let newY = this.getTableParentOffset();
263
266
  let scrollbarCompensation = 0;
264
267
  if (bottomEdge) {
@@ -278,10 +281,18 @@ class TopOverlay extends _base.Overlay {
278
281
  newY -= wot.wtViewport.getViewportHeight() - this.sumCellSizes(totalRows - fixedRowsBottom, totalRows);
279
282
  // Fix 1 pixel offset when cell is selected
280
283
  newY += 1;
284
+ // Compensate for the bottom header border if scrolled from the absolute top.
285
+ newY += columnHeaderBorderCompensation;
281
286
  } else {
282
287
  newY += this.sumCellSizes(wtSettings.getSetting('fixedRowsTop'), sourceRow);
283
288
  }
284
289
  newY += scrollbarCompensation;
290
+
291
+ // If the table is scrolled all the way up when starting the scroll and going to be scrolled to the bottom,
292
+ // we need to compensate for the potential header bottom border height.
293
+ if ((0, _element.getMaximumScrollTop)(this.mainTableScrollableElement) === newY - columnHeaderBorderCompensation && columnHeaderBorderCompensation > 0) {
294
+ this.wot.wtOverlays.expandHiderVerticallyBy(columnHeaderBorderCompensation);
295
+ }
285
296
  return this.setScrollPosition(newY);
286
297
  }
287
298
 
@@ -1,8 +1,8 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  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; }
3
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  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); }
5
- import { addClass, getScrollbarWidth, getScrollTop, getWindowScrollLeft, hasClass, outerHeight, removeClass, setOverlayPosition, resetCssTransform } from "../../../../helpers/dom/element.mjs";
5
+ import { addClass, getMaximumScrollTop, getScrollbarWidth, getScrollTop, getWindowScrollLeft, hasClass, outerHeight, removeClass, setOverlayPosition, resetCssTransform } from "../../../../helpers/dom/element.mjs";
6
6
  import TopOverlayTable from "./../table/top.mjs";
7
7
  import { Overlay } from "./_base.mjs";
8
8
  import { CORNER_DEFAULT_STYLE } from "../selection/index.mjs";
@@ -255,6 +255,9 @@ export class TopOverlay extends Overlay {
255
255
  } = this;
256
256
  const sourceInstance = wot.cloneSource ? wot.cloneSource : wot;
257
257
  const mainHolder = sourceInstance.wtTable.holder;
258
+ const columnHeaders = wtSettings.getSetting('columnHeaders');
259
+ const fixedRowsTop = wtSettings.getSetting('fixedRowsTop');
260
+ const columnHeaderBorderCompensation = fixedRowsTop === 0 && columnHeaders.length > 0 && !hasClass(mainHolder.parentNode, 'innerBorderTop') ? 1 : 0;
258
261
  let newY = this.getTableParentOffset();
259
262
  let scrollbarCompensation = 0;
260
263
  if (bottomEdge) {
@@ -274,10 +277,18 @@ export class TopOverlay extends Overlay {
274
277
  newY -= wot.wtViewport.getViewportHeight() - this.sumCellSizes(totalRows - fixedRowsBottom, totalRows);
275
278
  // Fix 1 pixel offset when cell is selected
276
279
  newY += 1;
280
+ // Compensate for the bottom header border if scrolled from the absolute top.
281
+ newY += columnHeaderBorderCompensation;
277
282
  } else {
278
283
  newY += this.sumCellSizes(wtSettings.getSetting('fixedRowsTop'), sourceRow);
279
284
  }
280
285
  newY += scrollbarCompensation;
286
+
287
+ // If the table is scrolled all the way up when starting the scroll and going to be scrolled to the bottom,
288
+ // we need to compensate for the potential header bottom border height.
289
+ if (getMaximumScrollTop(this.mainTableScrollableElement) === newY - columnHeaderBorderCompensation && columnHeaderBorderCompensation > 0) {
290
+ this.wot.wtOverlays.expandHiderVerticallyBy(columnHeaderBorderCompensation);
291
+ }
281
292
  return this.setScrollPosition(newY);
282
293
  }
283
294
 
@@ -8,7 +8,7 @@ var _base = require("./_base");
8
8
  var _constants = require("./constants");
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
10
  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; }
11
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
12
12
  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); }
13
13
  /**
14
14
  * @class TopInlineStartCornerOverlay
@@ -1,6 +1,6 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  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; }
3
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  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); }
5
5
  import { outerHeight, outerWidth, setOverlayPosition, resetCssTransform } from "../../../../helpers/dom/element.mjs";
6
6
  import TopInlineStartCornerOverlayTable from "../table/topInlineStartCorner.mjs";