handsontable 11.0.0 → 12.0.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 (633) hide show
  1. package/3rdparty/walkontable/src/border.js +121 -99
  2. package/3rdparty/walkontable/src/border.mjs +122 -96
  3. package/3rdparty/walkontable/src/calculator/viewportColumns.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +1 -1
  5. package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -1
  6. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +1 -1
  7. package/3rdparty/walkontable/src/cell/coords.js +60 -18
  8. package/3rdparty/walkontable/src/cell/coords.mjs +56 -18
  9. package/3rdparty/walkontable/src/cell/range.d.ts +10 -2
  10. package/3rdparty/walkontable/src/cell/range.js +279 -100
  11. package/3rdparty/walkontable/src/cell/range.mjs +274 -100
  12. package/3rdparty/walkontable/src/core/_base.js +452 -0
  13. package/3rdparty/walkontable/src/core/_base.mjs +440 -0
  14. package/3rdparty/walkontable/src/core/clone.js +97 -0
  15. package/3rdparty/walkontable/src/core/clone.mjs +80 -0
  16. package/3rdparty/walkontable/src/core/core.js +183 -0
  17. package/3rdparty/walkontable/src/core/core.mjs +160 -0
  18. package/3rdparty/walkontable/src/event.js +100 -67
  19. package/3rdparty/walkontable/src/event.mjs +100 -64
  20. package/3rdparty/walkontable/src/facade/core.js +251 -0
  21. package/3rdparty/walkontable/src/facade/core.mjs +243 -0
  22. package/3rdparty/walkontable/src/filter/column.js +1 -1
  23. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  24. package/3rdparty/walkontable/src/filter/row.js +1 -1
  25. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  26. package/3rdparty/walkontable/src/index.js +3 -47
  27. package/3rdparty/walkontable/src/index.mjs +3 -13
  28. package/3rdparty/walkontable/src/overlay/_base.js +125 -58
  29. package/3rdparty/walkontable/src/overlay/_base.mjs +126 -59
  30. package/3rdparty/walkontable/src/overlay/bottom.js +86 -76
  31. package/3rdparty/walkontable/src/overlay/bottom.mjs +86 -76
  32. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.js → bottomInlineStartCorner.js} +35 -58
  33. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +34 -57
  34. package/3rdparty/walkontable/src/overlay/constants.js +25 -9
  35. package/3rdparty/walkontable/src/overlay/constants.mjs +14 -4
  36. package/3rdparty/walkontable/src/overlay/index.js +10 -19
  37. package/3rdparty/walkontable/src/overlay/index.mjs +4 -5
  38. package/3rdparty/walkontable/src/overlay/{left.js → inlineStart.js} +102 -80
  39. package/3rdparty/walkontable/src/overlay/{left.mjs → inlineStart.mjs} +101 -79
  40. package/3rdparty/walkontable/src/overlay/top.js +84 -79
  41. package/3rdparty/walkontable/src/overlay/top.mjs +84 -79
  42. package/3rdparty/walkontable/src/overlay/{topLeftCorner.js → topInlineStartCorner.js} +56 -57
  43. package/3rdparty/walkontable/src/overlay/{topLeftCorner.mjs → topInlineStartCorner.mjs} +51 -52
  44. package/3rdparty/walkontable/src/overlays.js +226 -157
  45. package/3rdparty/walkontable/src/overlays.mjs +226 -156
  46. package/3rdparty/walkontable/src/renderer/_base.js +1 -1
  47. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  48. package/3rdparty/walkontable/src/renderer/cells.js +5 -4
  49. package/3rdparty/walkontable/src/renderer/cells.mjs +5 -4
  50. package/3rdparty/walkontable/src/renderer/colGroup.js +3 -3
  51. package/3rdparty/walkontable/src/renderer/colGroup.mjs +3 -3
  52. package/3rdparty/walkontable/src/renderer/columnHeaders.js +3 -3
  53. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +3 -3
  54. package/3rdparty/walkontable/src/renderer/index.js +1 -1
  55. package/3rdparty/walkontable/src/renderer/index.mjs +1 -1
  56. package/3rdparty/walkontable/src/renderer/rowHeaders.js +3 -3
  57. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +3 -3
  58. package/3rdparty/walkontable/src/renderer/rows.js +3 -3
  59. package/3rdparty/walkontable/src/renderer/rows.mjs +3 -3
  60. package/3rdparty/walkontable/src/renderer/table.js +1 -1
  61. package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
  62. package/3rdparty/walkontable/src/scroll.js +61 -88
  63. package/3rdparty/walkontable/src/scroll.mjs +61 -88
  64. package/3rdparty/walkontable/src/selection.js +12 -16
  65. package/3rdparty/walkontable/src/selection.mjs +12 -14
  66. package/3rdparty/walkontable/src/settings.js +236 -127
  67. package/3rdparty/walkontable/src/settings.mjs +236 -126
  68. package/3rdparty/walkontable/src/table/bottom.js +21 -6
  69. package/3rdparty/walkontable/src/table/bottom.mjs +20 -6
  70. package/3rdparty/walkontable/src/table/{bottomLeftCorner.js → bottomInlineStartCorner.js} +31 -15
  71. package/3rdparty/walkontable/src/table/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +30 -15
  72. package/3rdparty/walkontable/src/table/{left.js → inlineStart.js} +27 -15
  73. package/3rdparty/walkontable/src/table/{left.mjs → inlineStart.mjs} +26 -15
  74. package/3rdparty/walkontable/src/table/master.js +23 -13
  75. package/3rdparty/walkontable/src/table/master.mjs +23 -13
  76. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +12 -6
  77. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +12 -6
  78. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +12 -6
  79. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +12 -6
  80. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.js → stickyColumnsStart.js} +13 -7
  81. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.mjs → stickyColumnsStart.mjs} +13 -7
  82. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +11 -5
  83. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +11 -5
  84. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -3
  85. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -3
  86. package/3rdparty/walkontable/src/table/top.js +21 -6
  87. package/3rdparty/walkontable/src/table/top.mjs +20 -6
  88. package/3rdparty/walkontable/src/table/{topLeftCorner.js → topInlineStartCorner.js} +31 -15
  89. package/3rdparty/walkontable/src/table/{topLeftCorner.mjs → topInlineStartCorner.mjs} +30 -15
  90. package/3rdparty/walkontable/src/table.js +236 -141
  91. package/3rdparty/walkontable/src/table.mjs +232 -135
  92. package/3rdparty/walkontable/src/types.js +103 -0
  93. package/3rdparty/walkontable/src/types.mjs +102 -0
  94. package/3rdparty/walkontable/src/utils/column.js +23 -34
  95. package/3rdparty/walkontable/src/utils/column.mjs +23 -31
  96. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  97. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  98. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +3 -3
  99. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +3 -3
  100. package/3rdparty/walkontable/src/utils/orderView/view.js +1 -1
  101. package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
  102. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  103. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  104. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +1 -1
  105. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  106. package/3rdparty/walkontable/src/utils/row.js +10 -5
  107. package/3rdparty/walkontable/src/utils/row.mjs +10 -5
  108. package/3rdparty/walkontable/src/viewport.js +78 -81
  109. package/3rdparty/walkontable/src/viewport.mjs +78 -78
  110. package/CHANGELOG.md +94 -17
  111. package/README.md +10 -7
  112. package/base.js +2 -2
  113. package/base.mjs +2 -2
  114. package/cellTypes/timeType/timeType.d.ts +6 -6
  115. package/cellTypes/timeType/timeType.js +4 -5
  116. package/cellTypes/timeType/timeType.mjs +4 -5
  117. package/core.d.ts +9 -3
  118. package/core.js +590 -157
  119. package/core.mjs +599 -169
  120. package/dataMap/dataMap.js +2 -2
  121. package/dataMap/dataMap.mjs +2 -2
  122. package/dataMap/index.js +8 -0
  123. package/dataMap/index.mjs +3 -1
  124. package/dataMap/metaManager/index.js +3 -3
  125. package/dataMap/metaManager/index.mjs +3 -3
  126. package/dataMap/metaManager/lazyFactoryMap.js +1 -1
  127. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -1
  128. package/dataMap/metaManager/metaLayers/cellMeta.js +1 -1
  129. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
  130. package/dataMap/metaManager/metaLayers/columnMeta.js +1 -1
  131. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  132. package/dataMap/metaManager/metaLayers/globalMeta.js +7 -3
  133. package/dataMap/metaManager/metaLayers/globalMeta.mjs +7 -3
  134. package/dataMap/metaManager/metaLayers/tableMeta.js +3 -3
  135. package/dataMap/metaManager/metaLayers/tableMeta.mjs +3 -3
  136. package/dataMap/metaManager/metaSchema.js +2931 -2676
  137. package/dataMap/metaManager/metaSchema.mjs +2931 -2676
  138. package/dataMap/metaManager/mods/dynamicCellMeta.js +1 -1
  139. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  140. package/dataMap/metaManager/mods/extendMetaProperties.js +126 -0
  141. package/dataMap/metaManager/mods/extendMetaProperties.mjs +113 -0
  142. package/dataMap/replaceData.js +140 -0
  143. package/dataMap/replaceData.mjs +124 -0
  144. package/dataSource.js +1 -1
  145. package/dataSource.mjs +1 -1
  146. package/dist/README.md +2 -2
  147. package/dist/handsontable.css +424 -166
  148. package/dist/handsontable.full.css +559 -298
  149. package/dist/handsontable.full.js +47163 -41289
  150. package/dist/handsontable.full.min.css +8 -13
  151. package/dist/handsontable.full.min.js +143 -142
  152. package/dist/handsontable.js +28270 -24105
  153. package/dist/handsontable.min.css +8 -11
  154. package/dist/handsontable.min.js +3 -3
  155. package/dist/languages/all.js +69 -38
  156. package/dist/languages/all.min.js +1 -1
  157. package/dist/languages/ar-AR.js +167 -0
  158. package/dist/languages/ar-AR.min.js +1 -0
  159. package/dist/languages/de-CH.js +32 -33
  160. package/dist/languages/de-CH.min.js +1 -1
  161. package/dist/languages/de-DE.js +5 -6
  162. package/dist/languages/de-DE.min.js +1 -1
  163. package/dist/languages/en-US.js +5 -6
  164. package/dist/languages/en-US.min.js +1 -1
  165. package/dist/languages/es-MX.js +5 -6
  166. package/dist/languages/es-MX.min.js +1 -1
  167. package/dist/languages/fr-FR.js +5 -6
  168. package/dist/languages/fr-FR.min.js +1 -1
  169. package/dist/languages/it-IT.js +5 -6
  170. package/dist/languages/it-IT.min.js +1 -1
  171. package/dist/languages/ja-JP.js +5 -6
  172. package/dist/languages/ja-JP.min.js +1 -1
  173. package/dist/languages/ko-KR.js +37 -42
  174. package/dist/languages/ko-KR.min.js +1 -1
  175. package/dist/languages/lv-LV.js +4 -6
  176. package/dist/languages/lv-LV.min.js +1 -1
  177. package/dist/languages/nb-NO.js +4 -6
  178. package/dist/languages/nb-NO.min.js +1 -1
  179. package/dist/languages/nl-NL.js +4 -6
  180. package/dist/languages/nl-NL.min.js +1 -1
  181. package/dist/languages/pl-PL.js +4 -6
  182. package/dist/languages/pl-PL.min.js +1 -1
  183. package/dist/languages/pt-BR.js +4 -6
  184. package/dist/languages/pt-BR.min.js +1 -1
  185. package/dist/languages/ru-RU.js +4 -6
  186. package/dist/languages/ru-RU.min.js +1 -1
  187. package/dist/languages/zh-CN.js +4 -6
  188. package/dist/languages/zh-CN.min.js +1 -1
  189. package/dist/languages/zh-TW.js +25 -27
  190. package/dist/languages/zh-TW.min.js +1 -1
  191. package/editorManager.js +121 -268
  192. package/editorManager.mjs +129 -279
  193. package/editors/autocompleteEditor/autocompleteEditor.js +19 -17
  194. package/editors/autocompleteEditor/autocompleteEditor.mjs +19 -17
  195. package/editors/baseEditor/baseEditor.js +207 -36
  196. package/editors/baseEditor/baseEditor.mjs +202 -34
  197. package/editors/checkboxEditor/checkboxEditor.js +3 -3
  198. package/editors/checkboxEditor/checkboxEditor.mjs +3 -3
  199. package/editors/dateEditor/dateEditor.js +22 -9
  200. package/editors/dateEditor/dateEditor.mjs +23 -10
  201. package/editors/dropdownEditor/dropdownEditor.js +4 -4
  202. package/editors/dropdownEditor/dropdownEditor.mjs +4 -4
  203. package/editors/handsontableEditor/handsontableEditor.js +107 -56
  204. package/editors/handsontableEditor/handsontableEditor.mjs +107 -56
  205. package/editors/index.d.ts +3 -0
  206. package/editors/index.js +6 -0
  207. package/editors/index.mjs +3 -1
  208. package/editors/numericEditor/numericEditor.js +3 -3
  209. package/editors/numericEditor/numericEditor.mjs +3 -3
  210. package/editors/passwordEditor/passwordEditor.js +4 -4
  211. package/editors/passwordEditor/passwordEditor.mjs +4 -4
  212. package/editors/selectEditor/selectEditor.js +66 -111
  213. package/editors/selectEditor/selectEditor.mjs +67 -110
  214. package/editors/textEditor/caretPositioner.js +49 -0
  215. package/editors/textEditor/caretPositioner.mjs +42 -0
  216. package/editors/textEditor/textEditor.js +206 -182
  217. package/editors/textEditor/textEditor.mjs +200 -180
  218. package/editors/timeEditor/index.d.ts +1 -0
  219. package/editors/timeEditor/index.js +9 -0
  220. package/editors/timeEditor/index.mjs +1 -0
  221. package/editors/timeEditor/timeEditor.d.ts +7 -0
  222. package/editors/timeEditor/timeEditor.js +105 -0
  223. package/editors/timeEditor/timeEditor.mjs +84 -0
  224. package/eventManager.js +11 -5
  225. package/eventManager.mjs +11 -5
  226. package/helpers/data.js +1 -1
  227. package/helpers/data.mjs +1 -1
  228. package/helpers/dom/element.js +1 -1
  229. package/helpers/dom/element.mjs +1 -1
  230. package/helpers/feature.js +1 -1
  231. package/helpers/feature.mjs +1 -1
  232. package/helpers/mixed.js +3 -3
  233. package/helpers/mixed.mjs +3 -3
  234. package/helpers/number.js +4 -4
  235. package/helpers/number.mjs +4 -4
  236. package/helpers/object.js +1 -1
  237. package/helpers/object.mjs +1 -1
  238. package/i18n/languages/ar-AR.js +41 -0
  239. package/i18n/languages/ar-AR.mjs +17 -0
  240. package/i18n/languages/de-CH.js +1 -1
  241. package/i18n/languages/de-DE.js +1 -1
  242. package/i18n/languages/en-US.js +1 -1
  243. package/i18n/languages/es-MX.js +1 -1
  244. package/i18n/languages/fr-FR.js +1 -1
  245. package/i18n/languages/index.js +4 -0
  246. package/i18n/languages/index.mjs +2 -1
  247. package/i18n/languages/it-IT.js +1 -1
  248. package/i18n/languages/ja-JP.js +1 -1
  249. package/i18n/languages/ko-KR.js +1 -1
  250. package/i18n/languages/lv-LV.js +1 -1
  251. package/i18n/languages/nb-NO.js +1 -1
  252. package/i18n/languages/nl-NL.js +1 -1
  253. package/i18n/languages/pl-PL.js +1 -1
  254. package/i18n/languages/pt-BR.js +1 -1
  255. package/i18n/languages/ru-RU.js +1 -1
  256. package/i18n/languages/zh-CN.js +1 -1
  257. package/i18n/languages/zh-TW.js +1 -1
  258. package/i18n/registry.js +1 -1
  259. package/index.d.ts +4 -0
  260. package/index.js +1 -1
  261. package/languages/all.js +69 -38
  262. package/languages/ar-AR.js +167 -0
  263. package/languages/ar-AR.mjs +19 -0
  264. package/languages/de-CH.js +32 -33
  265. package/languages/de-DE.js +5 -6
  266. package/languages/en-US.js +5 -6
  267. package/languages/es-MX.js +5 -6
  268. package/languages/fr-FR.js +5 -6
  269. package/languages/index.js +69 -38
  270. package/languages/index.mjs +2 -1
  271. package/languages/it-IT.js +5 -6
  272. package/languages/ja-JP.js +5 -6
  273. package/languages/ko-KR.js +37 -42
  274. package/languages/lv-LV.js +4 -6
  275. package/languages/nb-NO.js +4 -6
  276. package/languages/nl-NL.js +4 -6
  277. package/languages/pl-PL.js +4 -6
  278. package/languages/pt-BR.js +4 -6
  279. package/languages/ru-RU.js +4 -6
  280. package/languages/zh-CN.js +4 -6
  281. package/languages/zh-TW.js +25 -27
  282. package/package.json +26 -8
  283. package/pluginHooks.d.ts +2 -0
  284. package/pluginHooks.js +58 -27
  285. package/pluginHooks.mjs +58 -27
  286. package/plugins/autoColumnSize/autoColumnSize.js +14 -9
  287. package/plugins/autoColumnSize/autoColumnSize.mjs +14 -9
  288. package/plugins/autoRowSize/autoRowSize.js +15 -10
  289. package/plugins/autoRowSize/autoRowSize.mjs +15 -10
  290. package/plugins/autofill/autofill.js +50 -34
  291. package/plugins/autofill/autofill.mjs +50 -33
  292. package/plugins/autofill/utils.js +10 -11
  293. package/plugins/autofill/utils.mjs +10 -10
  294. package/plugins/base/base.d.ts +8 -2
  295. package/plugins/base/base.js +68 -5
  296. package/plugins/base/base.mjs +67 -5
  297. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -4
  298. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +4 -4
  299. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +4 -4
  300. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +4 -4
  301. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +4 -4
  302. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +4 -4
  303. package/plugins/collapsibleColumns/collapsibleColumns.js +49 -30
  304. package/plugins/collapsibleColumns/collapsibleColumns.mjs +49 -30
  305. package/plugins/columnSorting/columnSorting.d.ts +1 -1
  306. package/plugins/columnSorting/columnSorting.js +10 -12
  307. package/plugins/columnSorting/columnSorting.mjs +10 -11
  308. package/plugins/columnSorting/columnStatesManager.js +3 -3
  309. package/plugins/columnSorting/columnStatesManager.mjs +3 -3
  310. package/plugins/columnSummary/columnSummary.js +4 -4
  311. package/plugins/columnSummary/columnSummary.mjs +4 -4
  312. package/plugins/columnSummary/endpoints.js +1 -1
  313. package/plugins/columnSummary/endpoints.mjs +1 -1
  314. package/plugins/comments/commentEditor.js +24 -4
  315. package/plugins/comments/commentEditor.mjs +25 -5
  316. package/plugins/comments/comments.js +63 -104
  317. package/plugins/comments/comments.mjs +63 -102
  318. package/plugins/comments/displaySwitch.js +1 -1
  319. package/plugins/comments/displaySwitch.mjs +1 -1
  320. package/plugins/contextMenu/commandExecutor.js +1 -1
  321. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  322. package/plugins/contextMenu/contextMenu.js +11 -7
  323. package/plugins/contextMenu/contextMenu.mjs +11 -7
  324. package/plugins/contextMenu/cursor.js +1 -1
  325. package/plugins/contextMenu/cursor.mjs +1 -1
  326. package/plugins/contextMenu/itemsFactory.js +1 -1
  327. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  328. package/plugins/contextMenu/menu.js +223 -111
  329. package/plugins/contextMenu/menu.mjs +220 -112
  330. package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
  331. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  332. package/plugins/contextMenu/predefinedItems/columnLeft.js +13 -5
  333. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +11 -4
  334. package/plugins/contextMenu/predefinedItems/columnRight.js +10 -10
  335. package/plugins/contextMenu/predefinedItems/columnRight.mjs +9 -9
  336. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
  337. package/plugins/contextMenu/predefinedItems/redo.js +1 -1
  338. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  339. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  340. package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
  341. package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
  342. package/plugins/contextMenu/predefinedItems/undo.js +1 -1
  343. package/plugins/contextMenu/predefinedItems.js +1 -1
  344. package/plugins/contextMenu/utils.js +2 -2
  345. package/plugins/contextMenu/utils.mjs +2 -2
  346. package/plugins/copyPaste/clipboardData.js +1 -1
  347. package/plugins/copyPaste/clipboardData.mjs +1 -1
  348. package/plugins/copyPaste/contextMenuItem/copy.js +1 -1
  349. package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
  350. package/plugins/copyPaste/copyPaste.js +29 -19
  351. package/plugins/copyPaste/copyPaste.mjs +28 -19
  352. package/plugins/copyPaste/focusableElement.js +1 -1
  353. package/plugins/copyPaste/focusableElement.mjs +1 -1
  354. package/plugins/copyPaste/pasteEvent.js +6 -2
  355. package/plugins/copyPaste/pasteEvent.mjs +6 -2
  356. package/plugins/customBorders/contextMenuItem/bottom.js +1 -1
  357. package/plugins/customBorders/contextMenuItem/left.js +5 -4
  358. package/plugins/customBorders/contextMenuItem/left.mjs +4 -3
  359. package/plugins/customBorders/contextMenuItem/noBorders.js +1 -1
  360. package/plugins/customBorders/contextMenuItem/right.js +5 -4
  361. package/plugins/customBorders/contextMenuItem/right.mjs +4 -3
  362. package/plugins/customBorders/contextMenuItem/top.js +1 -1
  363. package/plugins/customBorders/customBorders.js +141 -85
  364. package/plugins/customBorders/customBorders.mjs +139 -82
  365. package/plugins/customBorders/utils.js +131 -27
  366. package/plugins/customBorders/utils.mjs +115 -27
  367. package/plugins/dragToScroll/dragToScroll.js +11 -6
  368. package/plugins/dragToScroll/dragToScroll.mjs +11 -6
  369. package/plugins/dropdownMenu/dropdownMenu.js +8 -7
  370. package/plugins/dropdownMenu/dropdownMenu.mjs +8 -7
  371. package/plugins/exportFile/dataProvider.js +1 -1
  372. package/plugins/exportFile/dataProvider.mjs +1 -1
  373. package/plugins/exportFile/exportFile.js +3 -3
  374. package/plugins/exportFile/exportFile.mjs +3 -3
  375. package/plugins/exportFile/types/_base.js +1 -1
  376. package/plugins/exportFile/types/_base.mjs +1 -1
  377. package/plugins/exportFile/types/csv.js +3 -3
  378. package/plugins/exportFile/types/csv.mjs +3 -3
  379. package/plugins/filters/component/_base.js +1 -1
  380. package/plugins/filters/component/_base.mjs +1 -1
  381. package/plugins/filters/component/actionBar.js +3 -3
  382. package/plugins/filters/component/actionBar.mjs +3 -3
  383. package/plugins/filters/component/condition.js +4 -4
  384. package/plugins/filters/component/condition.mjs +4 -4
  385. package/plugins/filters/component/operators.js +3 -3
  386. package/plugins/filters/component/operators.mjs +3 -3
  387. package/plugins/filters/component/value.js +4 -4
  388. package/plugins/filters/component/value.mjs +4 -4
  389. package/plugins/filters/condition/beginsWith.js +1 -1
  390. package/plugins/filters/condition/between.js +1 -1
  391. package/plugins/filters/condition/contains.js +1 -1
  392. package/plugins/filters/condition/date/after.js +1 -1
  393. package/plugins/filters/condition/date/before.js +1 -1
  394. package/plugins/filters/condition/date/today.js +1 -1
  395. package/plugins/filters/condition/date/tomorrow.js +1 -1
  396. package/plugins/filters/condition/date/yesterday.js +1 -1
  397. package/plugins/filters/condition/empty.js +1 -1
  398. package/plugins/filters/condition/endsWith.js +1 -1
  399. package/plugins/filters/condition/equal.js +1 -1
  400. package/plugins/filters/condition/greaterThan.js +1 -1
  401. package/plugins/filters/condition/greaterThanOrEqual.js +1 -1
  402. package/plugins/filters/condition/lessThan.js +1 -1
  403. package/plugins/filters/condition/lessThanOrEqual.js +1 -1
  404. package/plugins/filters/condition/none.js +1 -1
  405. package/plugins/filters/condition/notBetween.js +1 -1
  406. package/plugins/filters/condition/notContains.js +1 -1
  407. package/plugins/filters/condition/notEmpty.js +1 -1
  408. package/plugins/filters/condition/notEqual.js +1 -1
  409. package/plugins/filters/conditionCollection.js +1 -1
  410. package/plugins/filters/conditionCollection.mjs +1 -1
  411. package/plugins/filters/conditionUpdateObserver.js +1 -1
  412. package/plugins/filters/conditionUpdateObserver.mjs +1 -1
  413. package/plugins/filters/dataFilter.js +1 -1
  414. package/plugins/filters/dataFilter.mjs +1 -1
  415. package/plugins/filters/filters.js +12 -9
  416. package/plugins/filters/filters.mjs +12 -9
  417. package/plugins/filters/logicalOperations/conjunction.js +1 -1
  418. package/plugins/filters/logicalOperations/disjunction.js +1 -1
  419. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -1
  420. package/plugins/filters/ui/_base.js +2 -2
  421. package/plugins/filters/ui/_base.mjs +1 -1
  422. package/plugins/filters/ui/input.js +4 -4
  423. package/plugins/filters/ui/input.mjs +4 -4
  424. package/plugins/filters/ui/link.js +4 -4
  425. package/plugins/filters/ui/link.mjs +4 -4
  426. package/plugins/filters/ui/multipleSelect.js +19 -32
  427. package/plugins/filters/ui/multipleSelect.mjs +19 -32
  428. package/plugins/filters/ui/radioInput.js +4 -4
  429. package/plugins/filters/ui/radioInput.mjs +4 -4
  430. package/plugins/filters/ui/select.js +5 -5
  431. package/plugins/filters/ui/select.mjs +5 -5
  432. package/plugins/formulas/engine/register.js +1 -1
  433. package/plugins/formulas/engine/register.mjs +1 -1
  434. package/plugins/formulas/engine/settings.js +2 -2
  435. package/plugins/formulas/engine/settings.mjs +2 -2
  436. package/plugins/formulas/formulas.js +10 -10
  437. package/plugins/formulas/formulas.mjs +10 -10
  438. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
  439. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +3 -3
  440. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -2
  441. package/plugins/hiddenColumns/hiddenColumns.js +10 -5
  442. package/plugins/hiddenColumns/hiddenColumns.mjs +10 -5
  443. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
  444. package/plugins/hiddenRows/contextMenuItem/showRow.js +3 -3
  445. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -2
  446. package/plugins/hiddenRows/hiddenRows.js +10 -5
  447. package/plugins/hiddenRows/hiddenRows.mjs +10 -5
  448. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +2 -2
  449. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  450. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +2 -2
  451. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  452. package/plugins/manualColumnFreeze/manualColumnFreeze.js +26 -13
  453. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +26 -13
  454. package/plugins/manualColumnMove/manualColumnMove.js +73 -62
  455. package/plugins/manualColumnMove/manualColumnMove.mjs +74 -63
  456. package/plugins/manualColumnMove/ui/_base.js +26 -13
  457. package/plugins/manualColumnMove/ui/_base.mjs +25 -13
  458. package/plugins/manualColumnMove/ui/backlight.js +4 -4
  459. package/plugins/manualColumnMove/ui/backlight.mjs +4 -4
  460. package/plugins/manualColumnMove/ui/guideline.js +4 -4
  461. package/plugins/manualColumnMove/ui/guideline.mjs +4 -4
  462. package/plugins/manualColumnResize/manualColumnResize.js +38 -22
  463. package/plugins/manualColumnResize/manualColumnResize.mjs +38 -22
  464. package/plugins/manualRowMove/manualRowMove.js +27 -17
  465. package/plugins/manualRowMove/manualRowMove.mjs +27 -17
  466. package/plugins/manualRowMove/ui/_base.js +1 -1
  467. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  468. package/plugins/manualRowMove/ui/backlight.js +4 -4
  469. package/plugins/manualRowMove/ui/backlight.mjs +4 -4
  470. package/plugins/manualRowMove/ui/guideline.js +4 -4
  471. package/plugins/manualRowMove/ui/guideline.mjs +4 -4
  472. package/plugins/manualRowResize/manualRowResize.js +35 -20
  473. package/plugins/manualRowResize/manualRowResize.mjs +35 -20
  474. package/plugins/mergeCells/calculations/autofill.js +7 -6
  475. package/plugins/mergeCells/calculations/autofill.mjs +7 -5
  476. package/plugins/mergeCells/calculations/selection.js +10 -5
  477. package/plugins/mergeCells/calculations/selection.mjs +10 -5
  478. package/plugins/mergeCells/cellCoords.js +17 -5
  479. package/plugins/mergeCells/cellCoords.mjs +17 -4
  480. package/plugins/mergeCells/cellsCollection.js +28 -21
  481. package/plugins/mergeCells/cellsCollection.mjs +28 -20
  482. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -1
  483. package/plugins/mergeCells/mergeCells.js +83 -50
  484. package/plugins/mergeCells/mergeCells.mjs +83 -48
  485. package/plugins/multiColumnSorting/multiColumnSorting.js +5 -7
  486. package/plugins/multiColumnSorting/multiColumnSorting.mjs +5 -6
  487. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +52 -58
  488. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +53 -58
  489. package/plugins/nestedHeaders/nestedHeaders.js +26 -19
  490. package/plugins/nestedHeaders/nestedHeaders.mjs +26 -19
  491. package/plugins/nestedHeaders/stateManager/headersTree.js +3 -3
  492. package/plugins/nestedHeaders/stateManager/headersTree.mjs +3 -3
  493. package/plugins/nestedHeaders/stateManager/index.js +3 -3
  494. package/plugins/nestedHeaders/stateManager/index.mjs +3 -3
  495. package/plugins/nestedHeaders/stateManager/sourceSettings.js +3 -3
  496. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +3 -3
  497. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  498. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  499. package/plugins/nestedRows/data/dataManager.js +2 -2
  500. package/plugins/nestedRows/data/dataManager.mjs +2 -2
  501. package/plugins/nestedRows/nestedRows.js +11 -5
  502. package/plugins/nestedRows/nestedRows.mjs +11 -5
  503. package/plugins/nestedRows/ui/_base.js +6 -2
  504. package/plugins/nestedRows/ui/_base.mjs +6 -2
  505. package/plugins/nestedRows/ui/collapsing.js +3 -3
  506. package/plugins/nestedRows/ui/collapsing.mjs +3 -3
  507. package/plugins/nestedRows/ui/contextMenu.js +3 -3
  508. package/plugins/nestedRows/ui/contextMenu.mjs +3 -3
  509. package/plugins/nestedRows/ui/headers.js +3 -3
  510. package/plugins/nestedRows/ui/headers.mjs +3 -3
  511. package/plugins/nestedRows/utils/rowMoveController.js +3 -5
  512. package/plugins/nestedRows/utils/rowMoveController.mjs +3 -4
  513. package/plugins/persistentState/persistentState.js +10 -5
  514. package/plugins/persistentState/persistentState.mjs +10 -5
  515. package/plugins/persistentState/storage.js +1 -1
  516. package/plugins/persistentState/storage.mjs +1 -1
  517. package/plugins/search/search.js +10 -5
  518. package/plugins/search/search.mjs +10 -5
  519. package/plugins/touchScroll/touchScroll.js +32 -26
  520. package/plugins/touchScroll/touchScroll.mjs +32 -25
  521. package/plugins/trimRows/trimRows.js +10 -5
  522. package/plugins/trimRows/trimRows.mjs +10 -5
  523. package/plugins/undoRedo/index.js +1 -1
  524. package/plugins/undoRedo/undoRedo.js +54 -48
  525. package/plugins/undoRedo/undoRedo.mjs +54 -47
  526. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -3
  527. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -2
  528. package/renderers/checkboxRenderer/checkboxRenderer.js +48 -43
  529. package/renderers/checkboxRenderer/checkboxRenderer.mjs +48 -41
  530. package/renderers/index.d.ts +4 -1
  531. package/renderers/index.js +6 -0
  532. package/renderers/index.mjs +3 -1
  533. package/renderers/numericRenderer/numericRenderer.js +1 -0
  534. package/renderers/numericRenderer/numericRenderer.mjs +1 -0
  535. package/renderers/timeRenderer/index.d.ts +1 -0
  536. package/renderers/timeRenderer/index.js +9 -0
  537. package/renderers/timeRenderer/index.mjs +1 -0
  538. package/renderers/timeRenderer/timeRenderer.d.ts +5 -0
  539. package/renderers/timeRenderer/timeRenderer.js +31 -0
  540. package/renderers/timeRenderer/timeRenderer.mjs +20 -0
  541. package/selection/highlight/highlight.js +3 -3
  542. package/selection/highlight/highlight.mjs +3 -3
  543. package/selection/highlight/types/activeHeader.js +2 -2
  544. package/selection/highlight/types/activeHeader.mjs +2 -2
  545. package/selection/highlight/types/area.js +2 -2
  546. package/selection/highlight/types/area.mjs +2 -2
  547. package/selection/highlight/types/cell.js +2 -2
  548. package/selection/highlight/types/cell.mjs +2 -2
  549. package/selection/highlight/types/customSelection.js +2 -2
  550. package/selection/highlight/types/customSelection.mjs +2 -2
  551. package/selection/highlight/types/fill.js +2 -2
  552. package/selection/highlight/types/fill.mjs +2 -2
  553. package/selection/highlight/types/header.js +2 -2
  554. package/selection/highlight/types/header.mjs +2 -2
  555. package/selection/highlight/types/index.js +2 -2
  556. package/selection/highlight/types/index.mjs +2 -2
  557. package/selection/highlight/visualSelection.js +17 -16
  558. package/selection/highlight/visualSelection.mjs +18 -17
  559. package/selection/mouseEventHandler.js +15 -10
  560. package/selection/mouseEventHandler.mjs +15 -9
  561. package/selection/range.js +5 -6
  562. package/selection/range.mjs +5 -6
  563. package/selection/selection.js +27 -20
  564. package/selection/selection.mjs +27 -18
  565. package/selection/transformation.js +5 -7
  566. package/selection/transformation.mjs +5 -6
  567. package/selection/utils.js +1 -1
  568. package/selection/utils.mjs +1 -1
  569. package/settings.d.ts +3 -1
  570. package/shortcuts/context.d.ts +20 -0
  571. package/shortcuts/context.js +296 -0
  572. package/shortcuts/context.mjs +268 -0
  573. package/shortcuts/index.d.ts +1 -0
  574. package/shortcuts/index.js +8 -0
  575. package/shortcuts/index.mjs +1 -0
  576. package/shortcuts/keyObserver.js +67 -0
  577. package/shortcuts/keyObserver.mjs +58 -0
  578. package/shortcuts/manager.d.ts +10 -0
  579. package/shortcuts/manager.js +183 -0
  580. package/shortcuts/manager.mjs +174 -0
  581. package/shortcuts/recorder.js +183 -0
  582. package/shortcuts/recorder.mjs +171 -0
  583. package/shortcuts/utils.js +77 -0
  584. package/shortcuts/utils.mjs +54 -0
  585. package/tableView.js +138 -80
  586. package/tableView.mjs +138 -70
  587. package/translations/changesObservable/observable.js +1 -1
  588. package/translations/changesObservable/observable.mjs +1 -1
  589. package/translations/changesObservable/observer.js +1 -2
  590. package/translations/changesObservable/observer.mjs +1 -2
  591. package/translations/indexMapper.d.ts +1 -0
  592. package/translations/indexMapper.js +25 -2
  593. package/translations/indexMapper.mjs +24 -2
  594. package/translations/mapCollections/aggregatedCollection.js +3 -3
  595. package/translations/mapCollections/aggregatedCollection.mjs +3 -3
  596. package/translations/mapCollections/mapCollection.js +1 -1
  597. package/translations/mapCollections/mapCollection.mjs +1 -1
  598. package/translations/maps/hidingMap.js +5 -3
  599. package/translations/maps/hidingMap.mjs +5 -3
  600. package/translations/maps/indexMap.js +3 -1
  601. package/translations/maps/indexMap.mjs +3 -1
  602. package/translations/maps/indexesSequence.js +6 -4
  603. package/translations/maps/indexesSequence.mjs +6 -4
  604. package/translations/maps/linkedPhysicalIndexToValueMap.js +6 -4
  605. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +6 -4
  606. package/translations/maps/physicalIndexToValueMap.js +6 -4
  607. package/translations/maps/physicalIndexToValueMap.mjs +6 -4
  608. package/translations/maps/trimmingMap.js +5 -3
  609. package/translations/maps/trimmingMap.mjs +5 -3
  610. package/utils/dataStructures/linkedList.js +3 -3
  611. package/utils/dataStructures/linkedList.mjs +3 -3
  612. package/utils/dataStructures/queue.js +1 -1
  613. package/utils/dataStructures/queue.mjs +1 -1
  614. package/utils/dataStructures/stack.js +1 -1
  615. package/utils/dataStructures/stack.mjs +1 -1
  616. package/utils/dataStructures/tree.js +3 -3
  617. package/utils/dataStructures/tree.mjs +3 -3
  618. package/utils/dataStructures/uniqueMap.js +14 -1
  619. package/utils/dataStructures/uniqueMap.mjs +14 -1
  620. package/utils/dataStructures/uniqueSet.js +9 -0
  621. package/utils/dataStructures/uniqueSet.mjs +9 -0
  622. package/utils/ghostTable.js +14 -3
  623. package/utils/ghostTable.mjs +15 -4
  624. package/utils/interval.js +1 -1
  625. package/utils/interval.mjs +1 -1
  626. package/utils/samplesGenerator.js +1 -1
  627. package/utils/samplesGenerator.mjs +1 -1
  628. package/3rdparty/walkontable/src/core.js +0 -309
  629. package/3rdparty/walkontable/src/core.mjs +0 -293
  630. package/3rdparty/walkontable/src/overlay/registerer.js +0 -70
  631. package/3rdparty/walkontable/src/overlay/registerer.mjs +0 -57
  632. package/utils/keyStateObserver.js +0 -121
  633. package/utils/keyStateObserver.mjs +0 -103
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
5
  require("core-js/modules/es.object.set-prototype-of.js");
6
6
 
@@ -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
 
@@ -41,9 +41,9 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
41
41
 
42
42
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
43
43
 
44
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
44
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
45
45
 
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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
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
48
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
49
49
 
@@ -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}
75
+ */
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.
72
82
  */
73
- function BottomOverlay(wotInstance) {
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,9 +160,8 @@ 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 wtTable = this.wot.wtTable;
164
+ var rootDocument = this.domBindings.rootDocument;
175
165
  var cloneRoot = this.clone.wtTable.holder.parentNode;
176
166
  var scrollbarWidth = (0, _element.getScrollbarWidth)(rootDocument);
177
167
 
@@ -191,7 +181,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
191
181
  }, {
192
182
  key: "setScrollPosition",
193
183
  value: function setScrollPosition(pos) {
194
- var rootWindow = this.wot.rootWindow;
184
+ var rootWindow = this.domBindings.rootWindow;
195
185
  var result = false;
196
186
 
197
187
  if (this.mainTableScrollableElement === rootWindow) {
@@ -211,7 +201,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
211
201
  }, {
212
202
  key: "onScroll",
213
203
  value: function onScroll() {
214
- this.wot.getSetting('onScrollHorizontally');
204
+ this.wtSettings.getSetting('onScrollHorizontally');
215
205
  }
216
206
  /**
217
207
  * Calculates total sum cells height.
@@ -224,10 +214,10 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
224
214
  }, {
225
215
  key: "sumCellSizes",
226
216
  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;
217
+ var _this$wot = this.wot,
218
+ wtTable = _this$wot.wtTable,
219
+ wtSettings = _this$wot.wtSettings;
220
+ var defaultRowHeight = wtSettings.getSetting('defaultRowHeight');
231
221
  var row = from;
232
222
  var sum = 0;
233
223
 
@@ -263,14 +253,16 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
263
253
  }, {
264
254
  key: "adjustRootElementSize",
265
255
  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);
256
+ var _this$wot2 = this.wot,
257
+ wtTable = _this$wot2.wtTable,
258
+ wtViewport = _this$wot2.wtViewport;
259
+ var _this$domBindings = this.domBindings,
260
+ rootDocument = _this$domBindings.rootDocument,
261
+ rootWindow = _this$domBindings.rootWindow;
262
+ var scrollbarWidth = (0, _element.getScrollbarWidth)(rootDocument);
271
263
  var overlayRoot = this.clone.wtTable.holder.parentNode;
272
264
  var overlayRootStyle = overlayRoot.style;
273
- var preventOverflow = this.wot.getSetting('preventOverflow');
265
+ var preventOverflow = this.wtSettings.getSetting('preventOverflow');
274
266
 
275
267
  if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
276
268
  var width = wtViewport.getWorkspaceWidth();
@@ -313,7 +305,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
313
305
  }, {
314
306
  key: "applyToDOM",
315
307
  value: function applyToDOM() {
316
- var total = this.wot.getSetting('totalRows');
308
+ var total = this.wtSettings.getSetting('totalRows');
317
309
 
318
310
  if (typeof this.wot.wtViewport.rowsRenderCalculator.startPosition === 'number') {
319
311
  this.spreader.style.top = "".concat(this.wot.wtViewport.rowsRenderCalculator.startPosition, "px");
@@ -337,10 +329,13 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
337
329
  }, {
338
330
  key: "syncOverlayOffset",
339
331
  value: function syncOverlayOffset() {
332
+ var styleProperty = this.isRtl() ? 'right' : 'left';
333
+ var spreader = this.clone.wtTable.spreader;
334
+
340
335
  if (typeof this.wot.wtViewport.columnsRenderCalculator.startPosition === 'number') {
341
- this.clone.wtTable.spreader.style.left = "".concat(this.wot.wtViewport.columnsRenderCalculator.startPosition, "px");
336
+ spreader.style[styleProperty] = "".concat(this.wot.wtViewport.columnsRenderCalculator.startPosition, "px");
342
337
  } else {
343
- this.clone.wtTable.spreader.style.left = '';
338
+ spreader.style[styleProperty] = '';
344
339
  }
345
340
  }
346
341
  /**
@@ -359,7 +354,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
359
354
  var scrollbarCompensation = 0;
360
355
 
361
356
  if (bottomEdge && mainHolder.offsetHeight !== mainHolder.clientHeight) {
362
- scrollbarCompensation = (0, _element.getScrollbarWidth)(this.wot.rootDocument);
357
+ scrollbarCompensation = (0, _element.getScrollbarWidth)(this.domBindings.rootDocument);
363
358
  }
364
359
 
365
360
  if (bottomEdge) {
@@ -368,7 +363,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
368
363
 
369
364
  newY += 1;
370
365
  } else {
371
- newY += this.sumCellSizes(this.wot.getSetting('fixedRowsBottom'), sourceRow);
366
+ newY += this.sumCellSizes(this.wtSettings.getSetting('fixedRowsBottom'), sourceRow);
372
367
  }
373
368
 
374
369
  newY += scrollbarCompensation;
@@ -383,7 +378,7 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
383
378
  }, {
384
379
  key: "getTableParentOffset",
385
380
  value: function getTableParentOffset() {
386
- if (this.mainTableScrollableElement === this.wot.rootWindow) {
381
+ if (this.mainTableScrollableElement === this.domBindings.rootWindow) {
387
382
  return this.wot.wtTable.holderOffset.top;
388
383
  }
389
384
 
@@ -398,7 +393,34 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
398
393
  }, {
399
394
  key: "getScrollPosition",
400
395
  value: function getScrollPosition() {
401
- return (0, _element.getScrollTop)(this.mainTableScrollableElement, this.wot.rootWindow);
396
+ return (0, _element.getScrollTop)(this.mainTableScrollableElement, this.domBindings.rootWindow);
397
+ }
398
+ /**
399
+ * Gets the main overlay's vertical overlay offset.
400
+ *
401
+ * @returns {number} Main table's vertical overlay offset.
402
+ */
403
+
404
+ }, {
405
+ key: "getOverlayOffset",
406
+ value: function getOverlayOffset() {
407
+ var rootWindow = this.domBindings.rootWindow;
408
+ var preventOverflow = this.wtSettings.getSetting('preventOverflow');
409
+ var overlayOffset = 0;
410
+
411
+ if (this.trimmingContainer === rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {
412
+ var rootHeight = this.wot.wtTable.getTotalHeight();
413
+ var overlayRootHeight = this.clone.wtTable.getTotalHeight();
414
+ var maxOffset = rootHeight - overlayRootHeight;
415
+ var docClientHeight = this.domBindings.rootDocument.documentElement.clientHeight;
416
+ overlayOffset = Math.max(this.getTableParentOffset() - this.getScrollPosition() - docClientHeight + rootHeight, 0);
417
+
418
+ if (overlayOffset > maxOffset) {
419
+ overlayOffset = 0;
420
+ }
421
+ }
422
+
423
+ return overlayOffset;
402
424
  }
403
425
  /**
404
426
  * Adds css classes to hide the header border's header (cell-selection border hiding issue).
@@ -410,17 +432,17 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
410
432
  }, {
411
433
  key: "adjustHeaderBordersPosition",
412
434
  value: function adjustHeaderBordersPosition(position) {
413
- var fixedRowsBottom = this.wot.getSetting('fixedRowsBottom');
435
+ var fixedRowsBottom = this.wtSettings.getSetting('fixedRowsBottom');
414
436
  var areFixedRowsBottomChanged = this.cachedFixedRowsBottom !== fixedRowsBottom;
415
- var columnHeaders = this.wot.getSetting('columnHeaders');
437
+ var columnHeaders = this.wtSettings.getSetting('columnHeaders');
416
438
  var positionChanged = false;
417
439
 
418
440
  if ((areFixedRowsBottomChanged || fixedRowsBottom === 0) && columnHeaders.length > 0) {
419
441
  var masterParent = this.wot.wtTable.holder.parentNode;
420
442
  var previousState = (0, _element.hasClass)(masterParent, 'innerBorderBottom');
421
- this.cachedFixedRowsBottom = this.wot.getSetting('fixedRowsBottom');
443
+ this.cachedFixedRowsBottom = this.wtSettings.getSetting('fixedRowsBottom');
422
444
 
423
- if (position || this.wot.getSetting('totalRows') === 0) {
445
+ if (position || this.wtSettings.getSetting('totalRows') === 0) {
424
446
  (0, _element.addClass)(masterParent, 'innerBorderBottom');
425
447
  positionChanged = !previousState;
426
448
  } else {
@@ -431,18 +453,6 @@ var BottomOverlay = /*#__PURE__*/function (_Overlay) {
431
453
 
432
454
  return positionChanged;
433
455
  }
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
456
  }]);
447
457
 
448
458
  return BottomOverlay;
@@ -1,4 +1,4 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
2
 
3
3
  import "core-js/modules/es.object.set-prototype-of.js";
4
4
  import "core-js/modules/es.object.get-prototype-of.js";
@@ -17,9 +17,9 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
17
17
 
18
18
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
19
19
 
20
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
20
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
21
21
 
22
- 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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
22
+ 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); }
23
23
 
24
24
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
25
25
 
@@ -35,7 +35,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
35
35
 
36
36
  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; }
37
37
 
38
- import { addClass, getScrollbarWidth, getScrollTop, getWindowScrollLeft, hasClass, outerHeight, removeClass } from "./../../../../helpers/dom/element.mjs";
38
+ import { addClass, getScrollbarWidth, getScrollTop, getWindowScrollLeft, hasClass, outerHeight, removeClass } from "../../../../helpers/dom/element.mjs";
39
39
  import BottomOverlayTable from "./../table/bottom.mjs";
40
40
  import { Overlay } from "./_base.mjs";
41
41
  import { CLONE_BOTTOM } from "./constants.mjs";
@@ -49,19 +49,28 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
49
49
  var _super = _createSuper(BottomOverlay);
50
50
 
51
51
  /**
52
- * @param {Walkontable} wotInstance The Walkontable instance.
52
+ * Cached value which holds the previous value of the `fixedRowsBottom` option.
53
+ * It is used as a comparison value that can be used to detect changes in that value.
54
+ *
55
+ * @type {number}
56
+ */
57
+
58
+ /**
59
+ * @param {Walkontable} wotInstance The Walkontable instance. @TODO refactoring: check if can be deleted.
60
+ * @param {FacadeGetter} facadeGetter Function which return proper facade.
61
+ * @param {Settings} wtSettings The Walkontable settings.
62
+ * @param {DomBindings} domBindings Dom elements bound to the current instance.
53
63
  */
54
- function BottomOverlay(wotInstance) {
64
+ function BottomOverlay(wotInstance, facadeGetter, wtSettings, domBindings) {
55
65
  var _this;
56
66
 
57
67
  _classCallCheck(this, BottomOverlay);
58
68
 
59
- _this = _super.call(this, wotInstance);
69
+ _this = _super.call(this, wotInstance, facadeGetter, CLONE_BOTTOM, wtSettings, domBindings);
60
70
 
61
71
  _defineProperty(_assertThisInitialized(_this), "cachedFixedRowsBottom", -1);
62
72
 
63
- _this.clone = _this.makeClone(CLONE_BOTTOM);
64
- _this.cachedFixedRowsBottom = _this.wot.getSetting('fixedRowsBottom');
73
+ _this.cachedFixedRowsBottom = _this.wtSettings.getSetting('fixedRowsBottom');
65
74
  return _this;
66
75
  }
67
76
  /**
@@ -69,7 +78,7 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
69
78
  *
70
79
  * @see Table#constructor
71
80
  * @param {...*} args Parameters that will be forwarded to the `Table` constructor.
72
- * @returns {Table}
81
+ * @returns {BottomOverlayTable}
73
82
  */
74
83
 
75
84
 
@@ -91,7 +100,7 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
91
100
  }, {
92
101
  key: "shouldBeRendered",
93
102
  value: function shouldBeRendered() {
94
- return this.wot.getSetting('shouldRenderBottomOverlay');
103
+ return this.wtSettings.getSetting('shouldRenderBottomOverlay');
95
104
  }
96
105
  /**
97
106
  * Updates the top overlay position.
@@ -104,42 +113,24 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
104
113
  value: function resetFixedPosition() {
105
114
  if (!this.needFullRender || !this.wot.wtTable.holder.parentNode) {
106
115
  // removed from DOM
107
- return;
116
+ return false;
108
117
  }
109
118
 
119
+ var rootWindow = this.domBindings.rootWindow;
110
120
  var overlayRoot = this.clone.wtTable.holder.parentNode;
111
121
  overlayRoot.style.top = '';
112
- var headerPosition = 0;
113
- var preventOverflow = this.wot.getSetting('preventOverflow');
114
-
115
- if (this.trimmingContainer === this.wot.rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {
116
- var _this$wot = this.wot,
117
- rootDocument = _this$wot.rootDocument,
118
- wtTable = _this$wot.wtTable;
119
- var hiderRect = wtTable.hider.getBoundingClientRect();
120
- var bottom = Math.ceil(hiderRect.bottom);
121
- var bodyHeight = rootDocument.documentElement.clientHeight;
122
- var finalLeft;
123
- var finalBottom;
124
- finalLeft = wtTable.hider.style.left;
125
- finalLeft = finalLeft === '' ? 0 : finalLeft;
126
-
127
- if (bottom > bodyHeight) {
128
- finalBottom = bottom - bodyHeight;
129
- } else {
130
- finalBottom = 0;
131
- }
122
+ var overlayPosition = 0;
123
+ var preventOverflow = this.wtSettings.getSetting('preventOverflow');
132
124
 
133
- headerPosition = finalBottom;
134
- finalBottom += 'px';
135
- overlayRoot.style.left = finalLeft;
136
- overlayRoot.style.bottom = finalBottom;
125
+ if (this.trimmingContainer === rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {
126
+ overlayPosition = this.getOverlayOffset();
127
+ overlayRoot.style.bottom = "".concat(overlayPosition, "px");
137
128
  } else {
138
- headerPosition = this.getScrollPosition();
129
+ overlayPosition = this.getScrollPosition();
139
130
  this.repositionOverlay();
140
131
  }
141
132
 
142
- var positionChanged = this.adjustHeaderBordersPosition(headerPosition);
133
+ var positionChanged = this.adjustHeaderBordersPosition(overlayPosition);
143
134
  this.adjustElementsSize();
144
135
  return positionChanged;
145
136
  }
@@ -150,9 +141,8 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
150
141
  }, {
151
142
  key: "repositionOverlay",
152
143
  value: function repositionOverlay() {
153
- var _this$wot2 = this.wot,
154
- wtTable = _this$wot2.wtTable,
155
- rootDocument = _this$wot2.rootDocument;
144
+ var wtTable = this.wot.wtTable;
145
+ var rootDocument = this.domBindings.rootDocument;
156
146
  var cloneRoot = this.clone.wtTable.holder.parentNode;
157
147
  var scrollbarWidth = getScrollbarWidth(rootDocument);
158
148
 
@@ -172,7 +162,7 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
172
162
  }, {
173
163
  key: "setScrollPosition",
174
164
  value: function setScrollPosition(pos) {
175
- var rootWindow = this.wot.rootWindow;
165
+ var rootWindow = this.domBindings.rootWindow;
176
166
  var result = false;
177
167
 
178
168
  if (this.mainTableScrollableElement === rootWindow) {
@@ -192,7 +182,7 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
192
182
  }, {
193
183
  key: "onScroll",
194
184
  value: function onScroll() {
195
- this.wot.getSetting('onScrollHorizontally');
185
+ this.wtSettings.getSetting('onScrollHorizontally');
196
186
  }
197
187
  /**
198
188
  * Calculates total sum cells height.
@@ -205,10 +195,10 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
205
195
  }, {
206
196
  key: "sumCellSizes",
207
197
  value: function sumCellSizes(from, to) {
208
- var _this$wot3 = this.wot,
209
- wtTable = _this$wot3.wtTable,
210
- wtSettings = _this$wot3.wtSettings;
211
- var defaultRowHeight = wtSettings.settings.defaultRowHeight;
198
+ var _this$wot = this.wot,
199
+ wtTable = _this$wot.wtTable,
200
+ wtSettings = _this$wot.wtSettings;
201
+ var defaultRowHeight = wtSettings.getSetting('defaultRowHeight');
212
202
  var row = from;
213
203
  var sum = 0;
214
204
 
@@ -244,14 +234,16 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
244
234
  }, {
245
235
  key: "adjustRootElementSize",
246
236
  value: function adjustRootElementSize() {
247
- var _this$wot4 = this.wot,
248
- wtTable = _this$wot4.wtTable,
249
- wtViewport = _this$wot4.wtViewport,
250
- rootWindow = _this$wot4.rootWindow;
251
- var scrollbarWidth = getScrollbarWidth(this.wot.rootDocument);
237
+ var _this$wot2 = this.wot,
238
+ wtTable = _this$wot2.wtTable,
239
+ wtViewport = _this$wot2.wtViewport;
240
+ var _this$domBindings = this.domBindings,
241
+ rootDocument = _this$domBindings.rootDocument,
242
+ rootWindow = _this$domBindings.rootWindow;
243
+ var scrollbarWidth = getScrollbarWidth(rootDocument);
252
244
  var overlayRoot = this.clone.wtTable.holder.parentNode;
253
245
  var overlayRootStyle = overlayRoot.style;
254
- var preventOverflow = this.wot.getSetting('preventOverflow');
246
+ var preventOverflow = this.wtSettings.getSetting('preventOverflow');
255
247
 
256
248
  if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
257
249
  var width = wtViewport.getWorkspaceWidth();
@@ -294,7 +286,7 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
294
286
  }, {
295
287
  key: "applyToDOM",
296
288
  value: function applyToDOM() {
297
- var total = this.wot.getSetting('totalRows');
289
+ var total = this.wtSettings.getSetting('totalRows');
298
290
 
299
291
  if (typeof this.wot.wtViewport.rowsRenderCalculator.startPosition === 'number') {
300
292
  this.spreader.style.top = "".concat(this.wot.wtViewport.rowsRenderCalculator.startPosition, "px");
@@ -318,10 +310,13 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
318
310
  }, {
319
311
  key: "syncOverlayOffset",
320
312
  value: function syncOverlayOffset() {
313
+ var styleProperty = this.isRtl() ? 'right' : 'left';
314
+ var spreader = this.clone.wtTable.spreader;
315
+
321
316
  if (typeof this.wot.wtViewport.columnsRenderCalculator.startPosition === 'number') {
322
- this.clone.wtTable.spreader.style.left = "".concat(this.wot.wtViewport.columnsRenderCalculator.startPosition, "px");
317
+ spreader.style[styleProperty] = "".concat(this.wot.wtViewport.columnsRenderCalculator.startPosition, "px");
323
318
  } else {
324
- this.clone.wtTable.spreader.style.left = '';
319
+ spreader.style[styleProperty] = '';
325
320
  }
326
321
  }
327
322
  /**
@@ -340,7 +335,7 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
340
335
  var scrollbarCompensation = 0;
341
336
 
342
337
  if (bottomEdge && mainHolder.offsetHeight !== mainHolder.clientHeight) {
343
- scrollbarCompensation = getScrollbarWidth(this.wot.rootDocument);
338
+ scrollbarCompensation = getScrollbarWidth(this.domBindings.rootDocument);
344
339
  }
345
340
 
346
341
  if (bottomEdge) {
@@ -349,7 +344,7 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
349
344
 
350
345
  newY += 1;
351
346
  } else {
352
- newY += this.sumCellSizes(this.wot.getSetting('fixedRowsBottom'), sourceRow);
347
+ newY += this.sumCellSizes(this.wtSettings.getSetting('fixedRowsBottom'), sourceRow);
353
348
  }
354
349
 
355
350
  newY += scrollbarCompensation;
@@ -364,7 +359,7 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
364
359
  }, {
365
360
  key: "getTableParentOffset",
366
361
  value: function getTableParentOffset() {
367
- if (this.mainTableScrollableElement === this.wot.rootWindow) {
362
+ if (this.mainTableScrollableElement === this.domBindings.rootWindow) {
368
363
  return this.wot.wtTable.holderOffset.top;
369
364
  }
370
365
 
@@ -379,7 +374,34 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
379
374
  }, {
380
375
  key: "getScrollPosition",
381
376
  value: function getScrollPosition() {
382
- return getScrollTop(this.mainTableScrollableElement, this.wot.rootWindow);
377
+ return getScrollTop(this.mainTableScrollableElement, this.domBindings.rootWindow);
378
+ }
379
+ /**
380
+ * Gets the main overlay's vertical overlay offset.
381
+ *
382
+ * @returns {number} Main table's vertical overlay offset.
383
+ */
384
+
385
+ }, {
386
+ key: "getOverlayOffset",
387
+ value: function getOverlayOffset() {
388
+ var rootWindow = this.domBindings.rootWindow;
389
+ var preventOverflow = this.wtSettings.getSetting('preventOverflow');
390
+ var overlayOffset = 0;
391
+
392
+ if (this.trimmingContainer === rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {
393
+ var rootHeight = this.wot.wtTable.getTotalHeight();
394
+ var overlayRootHeight = this.clone.wtTable.getTotalHeight();
395
+ var maxOffset = rootHeight - overlayRootHeight;
396
+ var docClientHeight = this.domBindings.rootDocument.documentElement.clientHeight;
397
+ overlayOffset = Math.max(this.getTableParentOffset() - this.getScrollPosition() - docClientHeight + rootHeight, 0);
398
+
399
+ if (overlayOffset > maxOffset) {
400
+ overlayOffset = 0;
401
+ }
402
+ }
403
+
404
+ return overlayOffset;
383
405
  }
384
406
  /**
385
407
  * Adds css classes to hide the header border's header (cell-selection border hiding issue).
@@ -391,17 +413,17 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
391
413
  }, {
392
414
  key: "adjustHeaderBordersPosition",
393
415
  value: function adjustHeaderBordersPosition(position) {
394
- var fixedRowsBottom = this.wot.getSetting('fixedRowsBottom');
416
+ var fixedRowsBottom = this.wtSettings.getSetting('fixedRowsBottom');
395
417
  var areFixedRowsBottomChanged = this.cachedFixedRowsBottom !== fixedRowsBottom;
396
- var columnHeaders = this.wot.getSetting('columnHeaders');
418
+ var columnHeaders = this.wtSettings.getSetting('columnHeaders');
397
419
  var positionChanged = false;
398
420
 
399
421
  if ((areFixedRowsBottomChanged || fixedRowsBottom === 0) && columnHeaders.length > 0) {
400
422
  var masterParent = this.wot.wtTable.holder.parentNode;
401
423
  var previousState = hasClass(masterParent, 'innerBorderBottom');
402
- this.cachedFixedRowsBottom = this.wot.getSetting('fixedRowsBottom');
424
+ this.cachedFixedRowsBottom = this.wtSettings.getSetting('fixedRowsBottom');
403
425
 
404
- if (position || this.wot.getSetting('totalRows') === 0) {
426
+ if (position || this.wtSettings.getSetting('totalRows') === 0) {
405
427
  addClass(masterParent, 'innerBorderBottom');
406
428
  positionChanged = !previousState;
407
429
  } else {
@@ -412,18 +434,6 @@ export var BottomOverlay = /*#__PURE__*/function (_Overlay) {
412
434
 
413
435
  return positionChanged;
414
436
  }
415
- }], [{
416
- key: "OVERLAY_NAME",
417
- get: function get() {
418
- return CLONE_BOTTOM;
419
- }
420
- /**
421
- * Cached value which holds the previous value of the `fixedRowsBottom` option.
422
- * It is used as a comparison value that can be used to detect changes in that value.
423
- *
424
- * @type {number}
425
- */
426
-
427
437
  }]);
428
438
 
429
439
  return BottomOverlay;