handsontable 11.1.0 → 12.1.0

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 (461) hide show
  1. package/3rdparty/walkontable/src/border.js +120 -98
  2. package/3rdparty/walkontable/src/border.mjs +120 -94
  3. package/3rdparty/walkontable/src/cell/coords.js +59 -17
  4. package/3rdparty/walkontable/src/cell/coords.mjs +55 -17
  5. package/3rdparty/walkontable/src/cell/range.d.ts +10 -2
  6. package/3rdparty/walkontable/src/cell/range.js +278 -99
  7. package/3rdparty/walkontable/src/cell/range.mjs +273 -99
  8. package/3rdparty/walkontable/src/core/_base.js +452 -0
  9. package/3rdparty/walkontable/src/core/_base.mjs +440 -0
  10. package/3rdparty/walkontable/src/core/clone.js +97 -0
  11. package/3rdparty/walkontable/src/core/clone.mjs +80 -0
  12. package/3rdparty/walkontable/src/core/core.js +183 -0
  13. package/3rdparty/walkontable/src/core/core.mjs +160 -0
  14. package/3rdparty/walkontable/src/event.js +99 -66
  15. package/3rdparty/walkontable/src/event.mjs +99 -63
  16. package/3rdparty/walkontable/src/facade/core.js +251 -0
  17. package/3rdparty/walkontable/src/facade/core.mjs +243 -0
  18. package/3rdparty/walkontable/src/index.js +2 -46
  19. package/3rdparty/walkontable/src/index.mjs +3 -13
  20. package/3rdparty/walkontable/src/overlay/_base.js +124 -57
  21. package/3rdparty/walkontable/src/overlay/_base.mjs +124 -57
  22. package/3rdparty/walkontable/src/overlay/bottom.js +96 -80
  23. package/3rdparty/walkontable/src/overlay/bottom.mjs +96 -80
  24. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.js → bottomInlineStartCorner.js} +45 -62
  25. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +44 -61
  26. package/3rdparty/walkontable/src/overlay/constants.js +25 -9
  27. package/3rdparty/walkontable/src/overlay/constants.mjs +14 -4
  28. package/3rdparty/walkontable/src/overlay/index.js +10 -19
  29. package/3rdparty/walkontable/src/overlay/index.mjs +4 -5
  30. package/3rdparty/walkontable/src/overlay/{left.js → inlineStart.js} +113 -82
  31. package/3rdparty/walkontable/src/overlay/{left.mjs → inlineStart.mjs} +112 -81
  32. package/3rdparty/walkontable/src/overlay/top.js +93 -68
  33. package/3rdparty/walkontable/src/overlay/top.mjs +93 -68
  34. package/3rdparty/walkontable/src/overlay/{topLeftCorner.js → topInlineStartCorner.js} +56 -57
  35. package/3rdparty/walkontable/src/overlay/{topLeftCorner.mjs → topInlineStartCorner.mjs} +51 -52
  36. package/3rdparty/walkontable/src/overlays.js +225 -156
  37. package/3rdparty/walkontable/src/overlays.mjs +224 -154
  38. package/3rdparty/walkontable/src/renderer/cells.js +4 -3
  39. package/3rdparty/walkontable/src/renderer/cells.mjs +4 -3
  40. package/3rdparty/walkontable/src/renderer/colGroup.js +2 -2
  41. package/3rdparty/walkontable/src/renderer/colGroup.mjs +2 -2
  42. package/3rdparty/walkontable/src/renderer/columnHeaders.js +2 -2
  43. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
  44. package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
  45. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +2 -2
  46. package/3rdparty/walkontable/src/renderer/rows.js +2 -2
  47. package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
  48. package/3rdparty/walkontable/src/scroll.js +125 -104
  49. package/3rdparty/walkontable/src/scroll.mjs +124 -104
  50. package/3rdparty/walkontable/src/selection.js +10 -14
  51. package/3rdparty/walkontable/src/selection.mjs +10 -12
  52. package/3rdparty/walkontable/src/settings.js +235 -126
  53. package/3rdparty/walkontable/src/settings.mjs +235 -125
  54. package/3rdparty/walkontable/src/table/bottom.js +16 -5
  55. package/3rdparty/walkontable/src/table/bottom.mjs +15 -5
  56. package/3rdparty/walkontable/src/table/{bottomLeftCorner.js → bottomInlineStartCorner.js} +27 -15
  57. package/3rdparty/walkontable/src/table/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +26 -15
  58. package/3rdparty/walkontable/src/table/{left.js → inlineStart.js} +23 -15
  59. package/3rdparty/walkontable/src/table/{left.mjs → inlineStart.mjs} +22 -15
  60. package/3rdparty/walkontable/src/table/master.js +22 -12
  61. package/3rdparty/walkontable/src/table/master.mjs +22 -12
  62. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +12 -6
  63. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +12 -6
  64. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +12 -6
  65. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +12 -6
  66. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.js → stickyColumnsStart.js} +13 -7
  67. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.mjs → stickyColumnsStart.mjs} +13 -7
  68. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +11 -5
  69. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +11 -5
  70. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -3
  71. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -3
  72. package/3rdparty/walkontable/src/table/top.js +16 -5
  73. package/3rdparty/walkontable/src/table/top.mjs +15 -5
  74. package/3rdparty/walkontable/src/table/{topLeftCorner.js → topInlineStartCorner.js} +27 -15
  75. package/3rdparty/walkontable/src/table/{topLeftCorner.mjs → topInlineStartCorner.mjs} +26 -15
  76. package/3rdparty/walkontable/src/table.js +235 -140
  77. package/3rdparty/walkontable/src/table.mjs +231 -134
  78. package/3rdparty/walkontable/src/types.js +103 -0
  79. package/3rdparty/walkontable/src/types.mjs +102 -0
  80. package/3rdparty/walkontable/src/utils/column.js +22 -33
  81. package/3rdparty/walkontable/src/utils/column.mjs +22 -30
  82. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -2
  83. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +2 -2
  84. package/3rdparty/walkontable/src/utils/row.js +9 -4
  85. package/3rdparty/walkontable/src/utils/row.mjs +9 -4
  86. package/3rdparty/walkontable/src/viewport.js +89 -100
  87. package/3rdparty/walkontable/src/viewport.mjs +89 -97
  88. package/CHANGELOG.md +92 -0
  89. package/LICENSE.txt +1 -1
  90. package/README.md +0 -1
  91. package/base.js +2 -2
  92. package/base.mjs +2 -2
  93. package/cellTypes/timeType/timeType.d.ts +6 -6
  94. package/cellTypes/timeType/timeType.js +4 -5
  95. package/cellTypes/timeType/timeType.mjs +4 -5
  96. package/core.d.ts +6 -1
  97. package/core.js +508 -80
  98. package/core.mjs +517 -92
  99. package/dataMap/index.js +4 -0
  100. package/dataMap/index.mjs +2 -1
  101. package/dataMap/metaManager/index.js +2 -2
  102. package/dataMap/metaManager/index.mjs +2 -2
  103. package/dataMap/metaManager/metaLayers/globalMeta.js +4 -0
  104. package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -0
  105. package/dataMap/metaManager/metaLayers/tableMeta.js +2 -2
  106. package/dataMap/metaManager/metaLayers/tableMeta.mjs +2 -2
  107. package/dataMap/metaManager/metaSchema.js +282 -187
  108. package/dataMap/metaManager/metaSchema.mjs +282 -187
  109. package/dataMap/metaManager/mods/extendMetaProperties.js +126 -0
  110. package/dataMap/metaManager/mods/extendMetaProperties.mjs +113 -0
  111. package/dataMap/replaceData.js +3 -17
  112. package/dataMap/replaceData.mjs +3 -17
  113. package/dist/handsontable.css +268 -92
  114. package/dist/handsontable.full.css +269 -103
  115. package/dist/handsontable.full.js +41990 -35658
  116. package/dist/handsontable.full.min.css +9 -9
  117. package/dist/handsontable.full.min.js +144 -144
  118. package/dist/handsontable.js +29561 -25597
  119. package/dist/handsontable.min.css +8 -8
  120. package/dist/handsontable.min.js +4 -4
  121. package/dist/languages/all.js +131 -34
  122. package/dist/languages/all.min.js +1 -1
  123. package/dist/languages/ar-AR.js +167 -0
  124. package/dist/languages/ar-AR.min.js +1 -0
  125. package/dist/languages/cs-CZ.js +167 -0
  126. package/dist/languages/cs-CZ.min.js +1 -0
  127. package/dist/languages/de-CH.js +31 -29
  128. package/dist/languages/de-CH.min.js +1 -1
  129. package/dist/languages/de-DE.js +4 -2
  130. package/dist/languages/de-DE.min.js +1 -1
  131. package/dist/languages/en-US.js +4 -2
  132. package/dist/languages/en-US.min.js +1 -1
  133. package/dist/languages/es-MX.js +4 -2
  134. package/dist/languages/es-MX.min.js +1 -1
  135. package/dist/languages/fr-FR.js +4 -2
  136. package/dist/languages/fr-FR.min.js +1 -1
  137. package/dist/languages/it-IT.js +4 -2
  138. package/dist/languages/it-IT.min.js +1 -1
  139. package/dist/languages/ja-JP.js +36 -38
  140. package/dist/languages/ja-JP.min.js +1 -1
  141. package/dist/languages/ko-KR.js +36 -39
  142. package/dist/languages/ko-KR.min.js +1 -1
  143. package/dist/languages/lv-LV.js +2 -2
  144. package/dist/languages/lv-LV.min.js +1 -1
  145. package/dist/languages/nb-NO.js +2 -2
  146. package/dist/languages/nb-NO.min.js +1 -1
  147. package/dist/languages/nl-NL.js +2 -2
  148. package/dist/languages/nl-NL.min.js +1 -1
  149. package/dist/languages/pl-PL.js +2 -2
  150. package/dist/languages/pl-PL.min.js +1 -1
  151. package/dist/languages/pt-BR.js +2 -2
  152. package/dist/languages/pt-BR.min.js +1 -1
  153. package/dist/languages/ru-RU.js +2 -2
  154. package/dist/languages/ru-RU.min.js +1 -1
  155. package/dist/languages/sr-SP.js +171 -0
  156. package/dist/languages/sr-SP.min.js +1 -0
  157. package/dist/languages/zh-CN.js +24 -24
  158. package/dist/languages/zh-CN.min.js +1 -1
  159. package/dist/languages/zh-TW.js +24 -24
  160. package/dist/languages/zh-TW.min.js +1 -1
  161. package/editorManager.js +120 -267
  162. package/editorManager.mjs +128 -278
  163. package/editors/autocompleteEditor/autocompleteEditor.js +22 -25
  164. package/editors/autocompleteEditor/autocompleteEditor.mjs +22 -25
  165. package/editors/baseEditor/baseEditor.js +205 -34
  166. package/editors/baseEditor/baseEditor.mjs +200 -32
  167. package/editors/checkboxEditor/checkboxEditor.js +2 -2
  168. package/editors/checkboxEditor/checkboxEditor.mjs +2 -2
  169. package/editors/dateEditor/dateEditor.js +21 -8
  170. package/editors/dateEditor/dateEditor.mjs +22 -9
  171. package/editors/dropdownEditor/dropdownEditor.js +3 -3
  172. package/editors/dropdownEditor/dropdownEditor.mjs +3 -3
  173. package/editors/handsontableEditor/handsontableEditor.js +106 -55
  174. package/editors/handsontableEditor/handsontableEditor.mjs +106 -55
  175. package/editors/index.d.ts +3 -0
  176. package/editors/index.js +6 -0
  177. package/editors/index.mjs +3 -1
  178. package/editors/numericEditor/numericEditor.js +2 -2
  179. package/editors/numericEditor/numericEditor.mjs +2 -2
  180. package/editors/passwordEditor/passwordEditor.js +3 -3
  181. package/editors/passwordEditor/passwordEditor.mjs +3 -3
  182. package/editors/selectEditor/selectEditor.js +65 -110
  183. package/editors/selectEditor/selectEditor.mjs +66 -109
  184. package/editors/textEditor/caretPositioner.js +49 -0
  185. package/editors/textEditor/caretPositioner.mjs +42 -0
  186. package/editors/textEditor/textEditor.js +205 -181
  187. package/editors/textEditor/textEditor.mjs +199 -179
  188. package/editors/timeEditor/index.d.ts +1 -0
  189. package/editors/timeEditor/index.js +9 -0
  190. package/editors/timeEditor/index.mjs +1 -0
  191. package/editors/timeEditor/timeEditor.d.ts +7 -0
  192. package/editors/timeEditor/timeEditor.js +105 -0
  193. package/editors/timeEditor/timeEditor.mjs +84 -0
  194. package/eventManager.js +4 -2
  195. package/eventManager.mjs +4 -2
  196. package/helpers/mixed.js +2 -2
  197. package/helpers/mixed.mjs +2 -2
  198. package/i18n/languages/ar-AR.js +41 -0
  199. package/i18n/languages/ar-AR.mjs +17 -0
  200. package/i18n/languages/cs-CZ.js +40 -0
  201. package/i18n/languages/cs-CZ.mjs +16 -0
  202. package/i18n/languages/index.js +12 -0
  203. package/i18n/languages/index.mjs +4 -1
  204. package/i18n/languages/sr-SP.js +40 -0
  205. package/i18n/languages/sr-SP.mjs +16 -0
  206. package/index.d.ts +4 -0
  207. package/languages/all.js +131 -34
  208. package/languages/ar-AR.js +167 -0
  209. package/languages/ar-AR.mjs +19 -0
  210. package/languages/cs-CZ.js +167 -0
  211. package/languages/cs-CZ.mjs +18 -0
  212. package/languages/de-CH.js +31 -29
  213. package/languages/de-DE.js +4 -2
  214. package/languages/en-US.js +4 -2
  215. package/languages/es-MX.js +4 -2
  216. package/languages/fr-FR.js +4 -2
  217. package/languages/index.js +131 -34
  218. package/languages/index.mjs +4 -1
  219. package/languages/it-IT.js +4 -2
  220. package/languages/ja-JP.js +36 -38
  221. package/languages/ko-KR.js +36 -39
  222. package/languages/lv-LV.js +2 -2
  223. package/languages/nb-NO.js +2 -2
  224. package/languages/nl-NL.js +2 -2
  225. package/languages/pl-PL.js +2 -2
  226. package/languages/pt-BR.js +2 -2
  227. package/languages/ru-RU.js +2 -2
  228. package/languages/sr-SP.js +171 -0
  229. package/languages/sr-SP.mjs +18 -0
  230. package/languages/zh-CN.js +24 -24
  231. package/languages/zh-TW.js +24 -24
  232. package/package.json +44 -4
  233. package/pluginHooks.js +49 -13
  234. package/pluginHooks.mjs +49 -13
  235. package/plugins/autoColumnSize/autoColumnSize.js +15 -10
  236. package/plugins/autoColumnSize/autoColumnSize.mjs +15 -10
  237. package/plugins/autoRowSize/autoRowSize.js +14 -9
  238. package/plugins/autoRowSize/autoRowSize.mjs +14 -9
  239. package/plugins/autofill/autofill.js +49 -33
  240. package/plugins/autofill/autofill.mjs +49 -32
  241. package/plugins/autofill/utils.js +10 -11
  242. package/plugins/autofill/utils.mjs +10 -10
  243. package/plugins/base/base.d.ts +8 -2
  244. package/plugins/base/base.js +67 -4
  245. package/plugins/base/base.mjs +66 -4
  246. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +3 -3
  247. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
  248. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +3 -3
  249. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +3 -3
  250. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +3 -3
  251. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +3 -3
  252. package/plugins/collapsibleColumns/collapsibleColumns.js +27 -9
  253. package/plugins/collapsibleColumns/collapsibleColumns.mjs +27 -9
  254. package/plugins/columnSorting/columnSorting.js +5 -7
  255. package/plugins/columnSorting/columnSorting.mjs +5 -6
  256. package/plugins/columnSummary/columnSummary.js +3 -3
  257. package/plugins/columnSummary/columnSummary.mjs +3 -3
  258. package/plugins/comments/commentEditor.js +18 -2
  259. package/plugins/comments/commentEditor.mjs +19 -3
  260. package/plugins/comments/comments.js +57 -46
  261. package/plugins/comments/comments.mjs +58 -46
  262. package/plugins/contextMenu/contextMenu.js +10 -6
  263. package/plugins/contextMenu/contextMenu.mjs +10 -6
  264. package/plugins/contextMenu/menu.js +222 -110
  265. package/plugins/contextMenu/menu.mjs +219 -111
  266. package/plugins/contextMenu/predefinedItems/columnLeft.js +12 -4
  267. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +11 -4
  268. package/plugins/contextMenu/predefinedItems/columnRight.js +9 -9
  269. package/plugins/contextMenu/predefinedItems/columnRight.mjs +9 -9
  270. package/plugins/contextMenu/utils.js +2 -2
  271. package/plugins/contextMenu/utils.mjs +2 -2
  272. package/plugins/copyPaste/copyPaste.js +31 -21
  273. package/plugins/copyPaste/copyPaste.mjs +30 -21
  274. package/plugins/customBorders/contextMenuItem/left.js +4 -3
  275. package/plugins/customBorders/contextMenuItem/left.mjs +4 -3
  276. package/plugins/customBorders/contextMenuItem/right.js +4 -3
  277. package/plugins/customBorders/contextMenuItem/right.mjs +4 -3
  278. package/plugins/customBorders/customBorders.js +144 -87
  279. package/plugins/customBorders/customBorders.mjs +143 -85
  280. package/plugins/customBorders/utils.js +131 -27
  281. package/plugins/customBorders/utils.mjs +115 -27
  282. package/plugins/dragToScroll/dragToScroll.js +10 -5
  283. package/plugins/dragToScroll/dragToScroll.mjs +10 -5
  284. package/plugins/dropdownMenu/dropdownMenu.js +9 -7
  285. package/plugins/dropdownMenu/dropdownMenu.mjs +9 -7
  286. package/plugins/exportFile/exportFile.js +2 -2
  287. package/plugins/exportFile/exportFile.mjs +2 -2
  288. package/plugins/exportFile/types/csv.js +2 -2
  289. package/plugins/exportFile/types/csv.mjs +2 -2
  290. package/plugins/filters/component/actionBar.js +2 -2
  291. package/plugins/filters/component/actionBar.mjs +2 -2
  292. package/plugins/filters/component/condition.js +3 -3
  293. package/plugins/filters/component/condition.mjs +3 -3
  294. package/plugins/filters/component/operators.js +2 -2
  295. package/plugins/filters/component/operators.mjs +2 -2
  296. package/plugins/filters/component/value.js +3 -3
  297. package/plugins/filters/component/value.mjs +3 -3
  298. package/plugins/filters/filters.js +11 -8
  299. package/plugins/filters/filters.mjs +11 -8
  300. package/plugins/filters/ui/input.js +3 -3
  301. package/plugins/filters/ui/input.mjs +3 -3
  302. package/plugins/filters/ui/link.js +3 -3
  303. package/plugins/filters/ui/link.mjs +3 -3
  304. package/plugins/filters/ui/multipleSelect.js +18 -31
  305. package/plugins/filters/ui/multipleSelect.mjs +18 -31
  306. package/plugins/filters/ui/radioInput.js +3 -3
  307. package/plugins/filters/ui/radioInput.mjs +3 -3
  308. package/plugins/filters/ui/select.js +4 -4
  309. package/plugins/filters/ui/select.mjs +4 -4
  310. package/plugins/formulas/formulas.js +14 -9
  311. package/plugins/formulas/formulas.mjs +14 -9
  312. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -4
  313. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +2 -4
  314. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +5 -5
  315. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +5 -5
  316. package/plugins/hiddenColumns/hiddenColumns.js +9 -4
  317. package/plugins/hiddenColumns/hiddenColumns.mjs +9 -4
  318. package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -4
  319. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +2 -4
  320. package/plugins/hiddenRows/contextMenuItem/showRow.js +5 -5
  321. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +5 -5
  322. package/plugins/hiddenRows/hiddenRows.js +9 -4
  323. package/plugins/hiddenRows/hiddenRows.mjs +9 -4
  324. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  325. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  326. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  327. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  328. package/plugins/manualColumnFreeze/manualColumnFreeze.js +54 -15
  329. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +49 -15
  330. package/plugins/manualColumnMove/manualColumnMove.js +70 -70
  331. package/plugins/manualColumnMove/manualColumnMove.mjs +71 -71
  332. package/plugins/manualColumnMove/ui/_base.js +25 -12
  333. package/plugins/manualColumnMove/ui/_base.mjs +24 -12
  334. package/plugins/manualColumnMove/ui/backlight.js +3 -3
  335. package/plugins/manualColumnMove/ui/backlight.mjs +3 -3
  336. package/plugins/manualColumnMove/ui/guideline.js +3 -3
  337. package/plugins/manualColumnMove/ui/guideline.mjs +3 -3
  338. package/plugins/manualColumnResize/manualColumnResize.js +37 -21
  339. package/plugins/manualColumnResize/manualColumnResize.mjs +37 -21
  340. package/plugins/manualRowMove/manualRowMove.js +26 -34
  341. package/plugins/manualRowMove/manualRowMove.mjs +26 -34
  342. package/plugins/manualRowMove/ui/backlight.js +3 -3
  343. package/plugins/manualRowMove/ui/backlight.mjs +3 -3
  344. package/plugins/manualRowMove/ui/guideline.js +3 -3
  345. package/plugins/manualRowMove/ui/guideline.mjs +3 -3
  346. package/plugins/manualRowResize/manualRowResize.js +34 -19
  347. package/plugins/manualRowResize/manualRowResize.mjs +34 -19
  348. package/plugins/mergeCells/calculations/autofill.js +6 -5
  349. package/plugins/mergeCells/calculations/autofill.mjs +6 -4
  350. package/plugins/mergeCells/calculations/selection.js +9 -4
  351. package/plugins/mergeCells/calculations/selection.mjs +9 -4
  352. package/plugins/mergeCells/cellCoords.js +16 -4
  353. package/plugins/mergeCells/cellCoords.mjs +16 -3
  354. package/plugins/mergeCells/cellsCollection.js +30 -23
  355. package/plugins/mergeCells/cellsCollection.mjs +30 -22
  356. package/plugins/mergeCells/mergeCells.js +94 -61
  357. package/plugins/mergeCells/mergeCells.mjs +94 -59
  358. package/plugins/multiColumnSorting/multiColumnSorting.js +4 -6
  359. package/plugins/multiColumnSorting/multiColumnSorting.mjs +4 -5
  360. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +51 -57
  361. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +52 -57
  362. package/plugins/nestedHeaders/nestedHeaders.js +31 -20
  363. package/plugins/nestedHeaders/nestedHeaders.mjs +31 -20
  364. package/plugins/nestedHeaders/stateManager/utils.js +3 -4
  365. package/plugins/nestedHeaders/stateManager/utils.mjs +3 -4
  366. package/plugins/nestedHeaders/utils/ghostTable.js +114 -75
  367. package/plugins/nestedHeaders/utils/ghostTable.mjs +114 -74
  368. package/plugins/nestedRows/nestedRows.js +9 -4
  369. package/plugins/nestedRows/nestedRows.mjs +9 -4
  370. package/plugins/nestedRows/ui/collapsing.js +2 -2
  371. package/plugins/nestedRows/ui/collapsing.mjs +2 -2
  372. package/plugins/nestedRows/ui/contextMenu.js +2 -2
  373. package/plugins/nestedRows/ui/contextMenu.mjs +2 -2
  374. package/plugins/nestedRows/ui/headers.js +2 -2
  375. package/plugins/nestedRows/ui/headers.mjs +2 -2
  376. package/plugins/nestedRows/utils/rowMoveController.js +2 -4
  377. package/plugins/nestedRows/utils/rowMoveController.mjs +2 -3
  378. package/plugins/persistentState/persistentState.js +9 -4
  379. package/plugins/persistentState/persistentState.mjs +9 -4
  380. package/plugins/search/search.js +9 -4
  381. package/plugins/search/search.mjs +9 -4
  382. package/plugins/touchScroll/touchScroll.js +27 -21
  383. package/plugins/touchScroll/touchScroll.mjs +27 -21
  384. package/plugins/trimRows/trimRows.js +9 -4
  385. package/plugins/trimRows/trimRows.mjs +9 -4
  386. package/plugins/undoRedo/undoRedo.js +53 -47
  387. package/plugins/undoRedo/undoRedo.mjs +53 -46
  388. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -3
  389. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -2
  390. package/renderers/checkboxRenderer/checkboxRenderer.js +48 -43
  391. package/renderers/checkboxRenderer/checkboxRenderer.mjs +48 -41
  392. package/renderers/index.d.ts +4 -1
  393. package/renderers/index.js +6 -0
  394. package/renderers/index.mjs +3 -1
  395. package/renderers/numericRenderer/numericRenderer.js +1 -0
  396. package/renderers/numericRenderer/numericRenderer.mjs +1 -0
  397. package/renderers/timeRenderer/index.d.ts +1 -0
  398. package/renderers/timeRenderer/index.js +9 -0
  399. package/renderers/timeRenderer/index.mjs +1 -0
  400. package/renderers/timeRenderer/timeRenderer.d.ts +5 -0
  401. package/renderers/timeRenderer/timeRenderer.js +31 -0
  402. package/renderers/timeRenderer/timeRenderer.mjs +20 -0
  403. package/selection/highlight/visualSelection.js +94 -220
  404. package/selection/highlight/visualSelection.mjs +91 -213
  405. package/selection/mouseEventHandler.js +15 -10
  406. package/selection/mouseEventHandler.mjs +15 -9
  407. package/selection/range.js +4 -5
  408. package/selection/range.mjs +4 -5
  409. package/selection/selection.js +35 -22
  410. package/selection/selection.mjs +35 -20
  411. package/selection/transformation.js +4 -6
  412. package/selection/transformation.mjs +4 -5
  413. package/settings.d.ts +3 -1
  414. package/shortcuts/context.d.ts +20 -0
  415. package/shortcuts/context.js +296 -0
  416. package/shortcuts/context.mjs +268 -0
  417. package/shortcuts/index.d.ts +1 -0
  418. package/shortcuts/index.js +8 -0
  419. package/shortcuts/index.mjs +1 -0
  420. package/shortcuts/keyObserver.js +67 -0
  421. package/shortcuts/keyObserver.mjs +58 -0
  422. package/shortcuts/manager.d.ts +10 -0
  423. package/shortcuts/manager.js +185 -0
  424. package/shortcuts/manager.mjs +176 -0
  425. package/shortcuts/recorder.js +192 -0
  426. package/shortcuts/recorder.mjs +180 -0
  427. package/shortcuts/utils.js +77 -0
  428. package/shortcuts/utils.mjs +54 -0
  429. package/tableView.js +164 -84
  430. package/tableView.mjs +164 -74
  431. package/translations/changesObservable/observer.js +0 -1
  432. package/translations/changesObservable/observer.mjs +0 -1
  433. package/translations/indexMapper.d.ts +3 -1
  434. package/translations/indexMapper.js +89 -11
  435. package/translations/indexMapper.mjs +91 -20
  436. package/translations/mapCollections/aggregatedCollection.js +2 -2
  437. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  438. package/translations/maps/hidingMap.js +4 -2
  439. package/translations/maps/hidingMap.mjs +4 -2
  440. package/translations/maps/indexMap.js +2 -0
  441. package/translations/maps/indexMap.mjs +2 -0
  442. package/translations/maps/indexesSequence.js +5 -3
  443. package/translations/maps/indexesSequence.mjs +5 -3
  444. package/translations/maps/linkedPhysicalIndexToValueMap.js +5 -3
  445. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +5 -3
  446. package/translations/maps/physicalIndexToValueMap.js +5 -3
  447. package/translations/maps/physicalIndexToValueMap.mjs +5 -3
  448. package/translations/maps/trimmingMap.js +4 -2
  449. package/translations/maps/trimmingMap.mjs +4 -2
  450. package/utils/dataStructures/uniqueMap.js +14 -1
  451. package/utils/dataStructures/uniqueMap.mjs +14 -1
  452. package/utils/dataStructures/uniqueSet.js +9 -0
  453. package/utils/dataStructures/uniqueSet.mjs +9 -0
  454. package/utils/ghostTable.js +1 -1
  455. package/utils/ghostTable.mjs +1 -1
  456. package/3rdparty/walkontable/src/core.js +0 -309
  457. package/3rdparty/walkontable/src/core.mjs +0 -293
  458. package/3rdparty/walkontable/src/overlay/registerer.js +0 -70
  459. package/3rdparty/walkontable/src/overlay/registerer.mjs +0 -57
  460. package/utils/keyStateObserver.js +0 -121
  461. package/utils/keyStateObserver.mjs +0 -103
@@ -25,7 +25,7 @@ require("core-js/modules/web.dom-collections.iterator.js");
25
25
  exports.__esModule = true;
26
26
  exports.BottomOverlay = void 0;
27
27
 
28
- var _element = require("./../../../../helpers/dom/element");
28
+ var _element = require("../../../../helpers/dom/element");
29
29
 
30
30
  var _bottom = _interopRequireDefault(require("./../table/bottom"));
31
31
 
@@ -35,7 +35,7 @@ var _constants = require("./constants");
35
35
 
36
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
37
 
38
- function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
38
+ function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
39
39
 
40
40
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
41
41
 
@@ -45,7 +45,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
45
45
 
46
46
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
47
47
 
48
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
48
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
49
49
 
50
50
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
51
51
 
@@ -55,7 +55,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
55
55
 
56
56
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
57
57
 
58
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
58
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
59
59
 
60
60
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
61
61
 
@@ -68,19 +68,28 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
68
68
  var _super = _createSuper(BottomOverlay);
69
69
 
70
70
  /**
71
- * @param {Walkontable} wotInstance The Walkontable instance.
71
+ * Cached value which holds the previous value of the `fixedRowsBottom` option.
72
+ * It is used as a comparison value that can be used to detect changes in that value.
73
+ *
74
+ * @type {number}
72
75
  */
73
- function BottomOverlay(wotInstance) {
76
+
77
+ /**
78
+ * @param {Walkontable} wotInstance The Walkontable instance. @TODO refactoring: check if can be deleted.
79
+ * @param {FacadeGetter} facadeGetter Function which return proper facade.
80
+ * @param {Settings} wtSettings The Walkontable settings.
81
+ * @param {DomBindings} domBindings Dom elements bound to the current instance.
82
+ */
83
+ function BottomOverlay(wotInstance, facadeGetter, wtSettings, domBindings) {
74
84
  var _this;
75
85
 
76
86
  _classCallCheck(this, BottomOverlay);
77
87
 
78
- _this = _super.call(this, wotInstance);
88
+ _this = _super.call(this, wotInstance, facadeGetter, _constants.CLONE_BOTTOM, wtSettings, domBindings);
79
89
 
80
90
  _defineProperty(_assertThisInitialized(_this), "cachedFixedRowsBottom", -1);
81
91
 
82
- _this.clone = _this.makeClone(_constants.CLONE_BOTTOM);
83
- _this.cachedFixedRowsBottom = _this.wot.getSetting('fixedRowsBottom');
92
+ _this.cachedFixedRowsBottom = _this.wtSettings.getSetting('fixedRowsBottom');
84
93
  return _this;
85
94
  }
86
95
  /**
@@ -88,7 +97,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
88
97
  *
89
98
  * @see Table#constructor
90
99
  * @param {...*} args Parameters that will be forwarded to the `Table` constructor.
91
- * @returns {Table}
100
+ * @returns {BottomOverlayTable}
92
101
  */
93
102
 
94
103
 
@@ -110,7 +119,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
110
119
  }, {
111
120
  key: "shouldBeRendered",
112
121
  value: function shouldBeRendered() {
113
- return this.wot.getSetting('shouldRenderBottomOverlay');
122
+ return this.wtSettings.getSetting('shouldRenderBottomOverlay');
114
123
  }
115
124
  /**
116
125
  * Updates the top overlay position.
@@ -123,42 +132,24 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
123
132
  value: function resetFixedPosition() {
124
133
  if (!this.needFullRender || !this.wot.wtTable.holder.parentNode) {
125
134
  // removed from DOM
126
- return;
135
+ return false;
127
136
  }
128
137
 
138
+ var rootWindow = this.domBindings.rootWindow;
129
139
  var overlayRoot = this.clone.wtTable.holder.parentNode;
130
140
  overlayRoot.style.top = '';
131
- var headerPosition = 0;
132
- var preventOverflow = this.wot.getSetting('preventOverflow');
133
-
134
- if (this.trimmingContainer === this.wot.rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {
135
- var _this$wot = this.wot,
136
- rootDocument = _this$wot.rootDocument,
137
- wtTable = _this$wot.wtTable;
138
- var hiderRect = wtTable.hider.getBoundingClientRect();
139
- var bottom = Math.ceil(hiderRect.bottom);
140
- var bodyHeight = rootDocument.documentElement.clientHeight;
141
- var finalLeft;
142
- var finalBottom;
143
- finalLeft = wtTable.hider.style.left;
144
- finalLeft = finalLeft === '' ? 0 : finalLeft;
145
-
146
- if (bottom > bodyHeight) {
147
- finalBottom = bottom - bodyHeight;
148
- } else {
149
- finalBottom = 0;
150
- }
141
+ var overlayPosition = 0;
142
+ var preventOverflow = this.wtSettings.getSetting('preventOverflow');
151
143
 
152
- headerPosition = finalBottom;
153
- finalBottom += 'px';
154
- overlayRoot.style.left = finalLeft;
155
- overlayRoot.style.bottom = finalBottom;
144
+ if (this.trimmingContainer === rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {
145
+ overlayPosition = this.getOverlayOffset();
146
+ overlayRoot.style.bottom = "".concat(overlayPosition, "px");
156
147
  } else {
157
- headerPosition = this.getScrollPosition();
148
+ overlayPosition = this.getScrollPosition();
158
149
  this.repositionOverlay();
159
150
  }
160
151
 
161
- var positionChanged = this.adjustHeaderBordersPosition(headerPosition);
152
+ var positionChanged = this.adjustHeaderBordersPosition(overlayPosition);
162
153
  this.adjustElementsSize();
163
154
  return positionChanged;
164
155
  }
@@ -169,17 +160,22 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
169
160
  }, {
170
161
  key: "repositionOverlay",
171
162
  value: function repositionOverlay() {
172
- var _this$wot2 = this.wot,
173
- wtTable = _this$wot2.wtTable,
174
- rootDocument = _this$wot2.rootDocument;
163
+ var _this$wot = this.wot,
164
+ wtTable = _this$wot.wtTable,
165
+ wtViewport = _this$wot.wtViewport;
166
+ var rootDocument = this.domBindings.rootDocument;
175
167
  var cloneRoot = this.clone.wtTable.holder.parentNode;
176
- var scrollbarWidth = (0, _element.getScrollbarWidth)(rootDocument);
168
+ var bottomOffset = 0;
177
169
 
178
- if (wtTable.holder.clientHeight === wtTable.holder.offsetHeight) {
179
- scrollbarWidth = 0;
170
+ if (!wtViewport.hasVerticalScroll()) {
171
+ bottomOffset += wtViewport.getWorkspaceHeight() - wtTable.getTotalHeight();
180
172
  }
181
173
 
182
- cloneRoot.style.bottom = "".concat(scrollbarWidth, "px");
174
+ if (wtViewport.hasVerticalScroll() && wtViewport.hasHorizontalScroll()) {
175
+ bottomOffset += (0, _element.getScrollbarWidth)(rootDocument);
176
+ }
177
+
178
+ cloneRoot.style.bottom = "".concat(bottomOffset, "px");
183
179
  }
184
180
  /**
185
181
  * Sets the main overlay's vertical scroll position.
@@ -191,7 +187,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
191
187
  }, {
192
188
  key: "setScrollPosition",
193
189
  value: function setScrollPosition(pos) {
194
- var rootWindow = this.wot.rootWindow;
190
+ var rootWindow = this.domBindings.rootWindow;
195
191
  var result = false;
196
192
 
197
193
  if (this.mainTableScrollableElement === rootWindow) {
@@ -211,7 +207,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
211
207
  }, {
212
208
  key: "onScroll",
213
209
  value: function onScroll() {
214
- this.wot.getSetting('onScrollHorizontally');
210
+ this.wtSettings.getSetting('onScrollHorizontally');
215
211
  }
216
212
  /**
217
213
  * Calculates total sum cells height.
@@ -224,10 +220,10 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
224
220
  }, {
225
221
  key: "sumCellSizes",
226
222
  value: function sumCellSizes(from, to) {
227
- var _this$wot3 = this.wot,
228
- wtTable = _this$wot3.wtTable,
229
- wtSettings = _this$wot3.wtSettings;
230
- var defaultRowHeight = wtSettings.settings.defaultRowHeight;
223
+ var _this$wot2 = this.wot,
224
+ wtTable = _this$wot2.wtTable,
225
+ wtSettings = _this$wot2.wtSettings;
226
+ var defaultRowHeight = wtSettings.getSetting('defaultRowHeight');
231
227
  var row = from;
232
228
  var sum = 0;
233
229
 
@@ -263,14 +259,16 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
263
259
  }, {
264
260
  key: "adjustRootElementSize",
265
261
  value: function adjustRootElementSize() {
266
- var _this$wot4 = this.wot,
267
- wtTable = _this$wot4.wtTable,
268
- wtViewport = _this$wot4.wtViewport,
269
- rootWindow = _this$wot4.rootWindow;
270
- var scrollbarWidth = (0, _element.getScrollbarWidth)(this.wot.rootDocument);
262
+ var _this$wot3 = this.wot,
263
+ wtTable = _this$wot3.wtTable,
264
+ wtViewport = _this$wot3.wtViewport;
265
+ var _this$domBindings = this.domBindings,
266
+ rootDocument = _this$domBindings.rootDocument,
267
+ rootWindow = _this$domBindings.rootWindow;
268
+ var scrollbarWidth = (0, _element.getScrollbarWidth)(rootDocument);
271
269
  var overlayRoot = this.clone.wtTable.holder.parentNode;
272
270
  var overlayRootStyle = overlayRoot.style;
273
- var preventOverflow = this.wot.getSetting('preventOverflow');
271
+ var preventOverflow = this.wtSettings.getSetting('preventOverflow');
274
272
 
275
273
  if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
276
274
  var width = wtViewport.getWorkspaceWidth();
@@ -313,7 +311,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
313
311
  }, {
314
312
  key: "applyToDOM",
315
313
  value: function applyToDOM() {
316
- var total = this.wot.getSetting('totalRows');
314
+ var total = this.wtSettings.getSetting('totalRows');
317
315
 
318
316
  if (typeof this.wot.wtViewport.rowsRenderCalculator.startPosition === 'number') {
319
317
  this.spreader.style.top = "".concat(this.wot.wtViewport.rowsRenderCalculator.startPosition, "px");
@@ -337,10 +335,13 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
337
335
  }, {
338
336
  key: "syncOverlayOffset",
339
337
  value: function syncOverlayOffset() {
338
+ var styleProperty = this.isRtl() ? 'right' : 'left';
339
+ var spreader = this.clone.wtTable.spreader;
340
+
340
341
  if (typeof this.wot.wtViewport.columnsRenderCalculator.startPosition === 'number') {
341
- this.clone.wtTable.spreader.style.left = "".concat(this.wot.wtViewport.columnsRenderCalculator.startPosition, "px");
342
+ spreader.style[styleProperty] = "".concat(this.wot.wtViewport.columnsRenderCalculator.startPosition, "px");
342
343
  } else {
343
- this.clone.wtTable.spreader.style.left = '';
344
+ spreader.style[styleProperty] = '';
344
345
  }
345
346
  }
346
347
  /**
@@ -359,7 +360,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
359
360
  var scrollbarCompensation = 0;
360
361
 
361
362
  if (bottomEdge && mainHolder.offsetHeight !== mainHolder.clientHeight) {
362
- scrollbarCompensation = (0, _element.getScrollbarWidth)(this.wot.rootDocument);
363
+ scrollbarCompensation = (0, _element.getScrollbarWidth)(this.domBindings.rootDocument);
363
364
  }
364
365
 
365
366
  if (bottomEdge) {
@@ -368,7 +369,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
368
369
 
369
370
  newY += 1;
370
371
  } else {
371
- newY += this.sumCellSizes(this.wot.getSetting('fixedRowsBottom'), sourceRow);
372
+ newY += this.sumCellSizes(this.wtSettings.getSetting('fixedRowsBottom'), sourceRow);
372
373
  }
373
374
 
374
375
  newY += scrollbarCompensation;
@@ -383,7 +384,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
383
384
  }, {
384
385
  key: "getTableParentOffset",
385
386
  value: function getTableParentOffset() {
386
- if (this.mainTableScrollableElement === this.wot.rootWindow) {
387
+ if (this.mainTableScrollableElement === this.domBindings.rootWindow) {
387
388
  return this.wot.wtTable.holderOffset.top;
388
389
  }
389
390
 
@@ -398,7 +399,34 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
398
399
  }, {
399
400
  key: "getScrollPosition",
400
401
  value: function getScrollPosition() {
401
- return (0, _element.getScrollTop)(this.mainTableScrollableElement, this.wot.rootWindow);
402
+ return (0, _element.getScrollTop)(this.mainTableScrollableElement, this.domBindings.rootWindow);
403
+ }
404
+ /**
405
+ * Gets the main overlay's vertical overlay offset.
406
+ *
407
+ * @returns {number} Main table's vertical overlay offset.
408
+ */
409
+
410
+ }, {
411
+ key: "getOverlayOffset",
412
+ value: function getOverlayOffset() {
413
+ var rootWindow = this.domBindings.rootWindow;
414
+ var preventOverflow = this.wtSettings.getSetting('preventOverflow');
415
+ var overlayOffset = 0;
416
+
417
+ if (this.trimmingContainer === rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {
418
+ var rootHeight = this.wot.wtTable.getTotalHeight();
419
+ var overlayRootHeight = this.clone.wtTable.getTotalHeight();
420
+ var maxOffset = rootHeight - overlayRootHeight;
421
+ var docClientHeight = this.domBindings.rootDocument.documentElement.clientHeight;
422
+ overlayOffset = Math.max(this.getTableParentOffset() - this.getScrollPosition() - docClientHeight + rootHeight, 0);
423
+
424
+ if (overlayOffset > maxOffset) {
425
+ overlayOffset = 0;
426
+ }
427
+ }
428
+
429
+ return overlayOffset;
402
430
  }
403
431
  /**
404
432
  * Adds css classes to hide the header border's header (cell-selection border hiding issue).
@@ -410,17 +438,17 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
410
438
  }, {
411
439
  key: "adjustHeaderBordersPosition",
412
440
  value: function adjustHeaderBordersPosition(position) {
413
- var fixedRowsBottom = this.wot.getSetting('fixedRowsBottom');
441
+ var fixedRowsBottom = this.wtSettings.getSetting('fixedRowsBottom');
414
442
  var areFixedRowsBottomChanged = this.cachedFixedRowsBottom !== fixedRowsBottom;
415
- var columnHeaders = this.wot.getSetting('columnHeaders');
443
+ var columnHeaders = this.wtSettings.getSetting('columnHeaders');
416
444
  var positionChanged = false;
417
445
 
418
446
  if ((areFixedRowsBottomChanged || fixedRowsBottom === 0) && columnHeaders.length > 0) {
419
447
  var masterParent = this.wot.wtTable.holder.parentNode;
420
448
  var previousState = (0, _element.hasClass)(masterParent, 'innerBorderBottom');
421
- this.cachedFixedRowsBottom = this.wot.getSetting('fixedRowsBottom');
449
+ this.cachedFixedRowsBottom = this.wtSettings.getSetting('fixedRowsBottom');
422
450
 
423
- if (position || this.wot.getSetting('totalRows') === 0) {
451
+ if (position || this.wtSettings.getSetting('totalRows') === 0) {
424
452
  (0, _element.addClass)(masterParent, 'innerBorderBottom');
425
453
  positionChanged = !previousState;
426
454
  } else {
@@ -431,18 +459,6 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
431
459
 
432
460
  return positionChanged;
433
461
  }
434
- }], [{
435
- key: "OVERLAY_NAME",
436
- get: function get() {
437
- return _constants.CLONE_BOTTOM;
438
- }
439
- /**
440
- * Cached value which holds the previous value of the `fixedRowsBottom` option.
441
- * It is used as a comparison value that can be used to detect changes in that value.
442
- *
443
- * @type {number}
444
- */
445
-
446
462
  }]);
447
463
 
448
464
  return BottomOverlay;