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
@@ -3,16 +3,12 @@
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
5
 
6
- var _element = require("./../../../helpers/dom/element");
6
+ var _element = require("../../../helpers/dom/element");
7
7
 
8
- var _object = require("./../../../helpers/object");
9
-
10
- var _eventManager = _interopRequireDefault(require("./../../../eventManager"));
8
+ var _object = require("../../../helpers/object");
11
9
 
12
10
  var _calculator = require("./calculator");
13
11
 
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
12
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17
13
 
18
14
  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); } }
@@ -24,16 +20,24 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
24
20
  */
25
21
  var Viewport = /*#__PURE__*/function () {
26
22
  /**
27
- * @param {Walkontable} wotInstance The Walkontable instance.
23
+ * @param {ViewportDao} dataAccessObject The Walkontable instance.
24
+ * @param {DomBindings} domBindings Bindings into DOM.
25
+ * @param {Settings} wtSettings The Walkontable settings.
26
+ * @param {EventManager} eventManager The instance event manager.
27
+ * @param {Table} wtTable The table.
28
28
  */
29
- function Viewport(wotInstance) {
29
+ function Viewport(dataAccessObject, domBindings, wtSettings, eventManager, wtTable) {
30
30
  var _this = this;
31
31
 
32
32
  _classCallCheck(this, Viewport);
33
33
 
34
- this.wot = wotInstance; // legacy support
34
+ this.dataAccessObject = dataAccessObject; // legacy support
35
35
 
36
+ this.wot = dataAccessObject.wot;
36
37
  this.instance = this.wot;
38
+ this.domBindings = domBindings;
39
+ this.wtSettings = wtSettings;
40
+ this.wtTable = wtTable;
37
41
  this.oversizedRows = [];
38
42
  this.oversizedColumnHeaders = [];
39
43
  this.hasOversizedColumnHeadersMarked = {};
@@ -42,8 +46,8 @@ var Viewport = /*#__PURE__*/function () {
42
46
  this.rowHeaderWidth = NaN;
43
47
  this.rowsVisibleCalculator = null;
44
48
  this.columnsVisibleCalculator = null;
45
- this.eventManager = new _eventManager.default(this.wot);
46
- this.eventManager.addEventListener(this.wot.rootWindow, 'resize', function () {
49
+ this.eventManager = eventManager;
50
+ this.eventManager.addEventListener(this.domBindings.rootWindow, 'resize', function () {
47
51
  _this.clientHeight = _this.getWorkspaceHeight();
48
52
  });
49
53
  }
@@ -55,11 +59,11 @@ var Viewport = /*#__PURE__*/function () {
55
59
  _createClass(Viewport, [{
56
60
  key: "getWorkspaceHeight",
57
61
  value: function getWorkspaceHeight() {
58
- var currentDocument = this.wot.rootDocument;
59
- var trimmingContainer = this.instance.wtOverlays.topOverlay.trimmingContainer;
62
+ var currentDocument = this.domBindings.rootDocument;
63
+ var trimmingContainer = this.dataAccessObject.topOverlayTrimmingContainer;
60
64
  var height = 0;
61
65
 
62
- if (trimmingContainer === this.wot.rootWindow) {
66
+ if (trimmingContainer === this.domBindings.rootWindow) {
63
67
  height = currentDocument.documentElement.clientHeight;
64
68
  } else {
65
69
  var elemHeight = (0, _element.outerHeight)(trimmingContainer); // returns height without DIV scrollbar
@@ -72,24 +76,29 @@ var Viewport = /*#__PURE__*/function () {
72
76
  }, {
73
77
  key: "getWorkspaceWidth",
74
78
  value: function getWorkspaceWidth() {
75
- var wot = this.wot;
76
- var rootDocument = wot.rootDocument,
77
- rootWindow = wot.rootWindow;
78
- var trimmingContainer = this.instance.wtOverlays.leftOverlay.trimmingContainer;
79
+ var wtSettings = this.wtSettings;
80
+ var _this$domBindings = this.domBindings,
81
+ rootDocument = _this$domBindings.rootDocument,
82
+ rootWindow = _this$domBindings.rootWindow;
83
+ var trimmingContainer = this.dataAccessObject.inlineStartOverlayTrimmingContainer;
79
84
  var docOffsetWidth = rootDocument.documentElement.offsetWidth;
80
- var totalColumns = wot.getSetting('totalColumns');
81
- var preventOverflow = wot.getSetting('preventOverflow');
85
+ var totalColumns = wtSettings.getSetting('totalColumns');
86
+ var preventOverflow = wtSettings.getSetting('preventOverflow');
87
+ var isRtl = wtSettings.getSetting('rtlMode');
88
+ var tableRect = this.wtTable.TABLE.getBoundingClientRect();
89
+ var inlineStart = isRtl ? tableRect.right - docOffsetWidth : tableRect.left;
90
+ var tableOffset = docOffsetWidth - inlineStart;
82
91
  var width;
83
92
  var overflow;
84
93
 
85
94
  if (preventOverflow) {
86
- return (0, _element.outerWidth)(this.instance.wtTable.wtRootElement);
95
+ return (0, _element.outerWidth)(this.wtTable.wtRootElement);
87
96
  }
88
97
 
89
- if (wot.getSetting('freezeOverlays')) {
90
- width = Math.min(docOffsetWidth - this.getWorkspaceOffset().left, docOffsetWidth);
98
+ if (wtSettings.getSetting('freezeOverlays')) {
99
+ width = Math.min(tableOffset, docOffsetWidth);
91
100
  } else {
92
- width = Math.min(this.getContainerFillWidth(), docOffsetWidth - this.getWorkspaceOffset().left, docOffsetWidth);
101
+ width = Math.min(this.getContainerFillWidth(), tableOffset, docOffsetWidth);
93
102
  }
94
103
 
95
104
  if (trimmingContainer === rootWindow && totalColumns > 0 && this.sumColumnWidths(0, totalColumns - 1) > width) {
@@ -101,7 +110,7 @@ var Viewport = /*#__PURE__*/function () {
101
110
  }
102
111
 
103
112
  if (trimmingContainer !== rootWindow) {
104
- overflow = (0, _element.getStyle)(this.instance.wtOverlays.leftOverlay.trimmingContainer, 'overflow', rootWindow);
113
+ overflow = (0, _element.getStyle)(this.dataAccessObject.inlineStartOverlayTrimmingContainer, 'overflow', rootWindow);
105
114
 
106
115
  if (overflow === 'scroll' || overflow === 'hidden' || overflow === 'auto') {
107
116
  // this is used in `scroll.html`
@@ -110,11 +119,11 @@ var Viewport = /*#__PURE__*/function () {
110
119
  }
111
120
  }
112
121
 
113
- var stretchSetting = wot.getSetting('stretchH');
122
+ var stretchSetting = wtSettings.getSetting('stretchH');
114
123
 
115
124
  if (stretchSetting === 'none' || !stretchSetting) {
116
125
  // if no stretching is used, return the maximum used workspace width
117
- return Math.max(width, (0, _element.outerWidth)(this.instance.wtTable.TABLE));
126
+ return Math.max(width, (0, _element.outerWidth)(this.wtTable.TABLE));
118
127
  } // if stretching is used, return the actual container width, so the columns can fit inside it
119
128
 
120
129
 
@@ -129,7 +138,7 @@ var Viewport = /*#__PURE__*/function () {
129
138
  }, {
130
139
  key: "hasVerticalScroll",
131
140
  value: function hasVerticalScroll() {
132
- return this.getWorkspaceActualHeight() > this.getWorkspaceHeight();
141
+ return this.wtTable.hider.offsetHeight > this.getWorkspaceHeight();
133
142
  }
134
143
  /**
135
144
  * Checks if viewport has horizontal scroll.
@@ -140,7 +149,7 @@ var Viewport = /*#__PURE__*/function () {
140
149
  }, {
141
150
  key: "hasHorizontalScroll",
142
151
  value: function hasHorizontalScroll() {
143
- return this.getWorkspaceActualWidth() > this.getWorkspaceWidth();
152
+ return this.wtTable.hider.offsetWidth > this.getWorkspaceWidth();
144
153
  }
145
154
  /**
146
155
  * @param {number} from The visual column index from the width sum is start calculated.
@@ -151,12 +160,11 @@ var Viewport = /*#__PURE__*/function () {
151
160
  }, {
152
161
  key: "sumColumnWidths",
153
162
  value: function sumColumnWidths(from, length) {
154
- var wtTable = this.wot.wtTable;
155
163
  var sum = 0;
156
164
  var column = from;
157
165
 
158
166
  while (column < length) {
159
- sum += wtTable.getColumnWidth(column);
167
+ sum += this.wtTable.getColumnWidth(column);
160
168
  column += 1;
161
169
  }
162
170
 
@@ -173,8 +181,8 @@ var Viewport = /*#__PURE__*/function () {
173
181
  return this.containerWidth;
174
182
  }
175
183
 
176
- var mainContainer = this.instance.wtTable.holder;
177
- var dummyElement = this.wot.rootDocument.createElement('div');
184
+ var mainContainer = this.wtTable.holder;
185
+ var dummyElement = this.domBindings.rootDocument.createElement('div');
178
186
  dummyElement.style.width = '100%';
179
187
  dummyElement.style.height = '1px';
180
188
  mainContainer.appendChild(dummyElement);
@@ -190,26 +198,7 @@ var Viewport = /*#__PURE__*/function () {
190
198
  }, {
191
199
  key: "getWorkspaceOffset",
192
200
  value: function getWorkspaceOffset() {
193
- return (0, _element.offset)(this.wot.wtTable.TABLE);
194
- }
195
- /**
196
- * @returns {number}
197
- */
198
-
199
- }, {
200
- key: "getWorkspaceActualHeight",
201
- value: function getWorkspaceActualHeight() {
202
- return (0, _element.outerHeight)(this.wot.wtTable.TABLE);
203
- }
204
- /**
205
- * @returns {number}
206
- */
207
-
208
- }, {
209
- key: "getWorkspaceActualWidth",
210
- value: function getWorkspaceActualWidth() {
211
- var wtTable = this.wot.wtTable;
212
- return (0, _element.outerWidth)(wtTable.TABLE) || (0, _element.outerWidth)(wtTable.TBODY) || (0, _element.outerWidth)(wtTable.THEAD); // IE8 reports 0 as <table> offsetWidth;
201
+ return (0, _element.offset)(this.wtTable.TABLE);
213
202
  }
214
203
  /**
215
204
  * @returns {number}
@@ -218,12 +207,12 @@ var Viewport = /*#__PURE__*/function () {
218
207
  }, {
219
208
  key: "getColumnHeaderHeight",
220
209
  value: function getColumnHeaderHeight() {
221
- var columnHeaders = this.instance.getSetting('columnHeaders');
210
+ var columnHeaders = this.wtSettings.getSetting('columnHeaders');
222
211
 
223
212
  if (!columnHeaders.length) {
224
213
  this.columnHeaderHeight = 0;
225
214
  } else if (isNaN(this.columnHeaderHeight)) {
226
- this.columnHeaderHeight = (0, _element.outerHeight)(this.wot.wtTable.THEAD);
215
+ this.columnHeaderHeight = (0, _element.outerHeight)(this.wtTable.THEAD);
227
216
  }
228
217
 
229
218
  return this.columnHeaderHeight;
@@ -256,8 +245,8 @@ var Viewport = /*#__PURE__*/function () {
256
245
  }, {
257
246
  key: "getRowHeaderWidth",
258
247
  value: function getRowHeaderWidth() {
259
- var rowHeadersWidthSetting = this.instance.getSetting('rowHeaderWidth');
260
- var rowHeaders = this.instance.getSetting('rowHeaders');
248
+ var rowHeadersWidthSetting = this.wtSettings.getSetting('rowHeaderWidth');
249
+ var rowHeaders = this.wtSettings.getSetting('rowHeaders');
261
250
 
262
251
  if (rowHeadersWidthSetting) {
263
252
  this.rowHeaderWidth = 0;
@@ -267,13 +256,9 @@ var Viewport = /*#__PURE__*/function () {
267
256
  }
268
257
  }
269
258
 
270
- if (this.wot.cloneSource) {
271
- return this.wot.cloneSource.wtViewport.getRowHeaderWidth();
272
- }
273
-
274
259
  if (isNaN(this.rowHeaderWidth)) {
275
260
  if (rowHeaders.length) {
276
- var TH = this.instance.wtTable.TABLE.querySelector('TH');
261
+ var TH = this.wtTable.TABLE.querySelector('TH');
277
262
  this.rowHeaderWidth = 0;
278
263
 
279
264
  for (var _i = 0, _len = rowHeaders.length; _i < _len; _i++) {
@@ -291,7 +276,7 @@ var Viewport = /*#__PURE__*/function () {
291
276
  }
292
277
  }
293
278
 
294
- this.rowHeaderWidth = this.instance.getSetting('onModifyRowHeaderWidth', this.rowHeaderWidth) || this.rowHeaderWidth;
279
+ this.rowHeaderWidth = this.wtSettings.getSetting('onModifyRowHeaderWidth', this.rowHeaderWidth) || this.rowHeaderWidth;
295
280
  return this.rowHeaderWidth;
296
281
  }
297
282
  /**
@@ -329,57 +314,54 @@ var Viewport = /*#__PURE__*/function () {
329
314
  key: "createRowsCalculator",
330
315
  value: function createRowsCalculator() {
331
316
  var calculationType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _calculator.RENDER_TYPE;
332
- var wot = this.wot;
333
- var wtSettings = wot.wtSettings,
334
- wtOverlays = wot.wtOverlays,
335
- wtTable = wot.wtTable,
336
- rootDocument = wot.rootDocument;
317
+ var wtSettings = this.wtSettings,
318
+ wtTable = this.wtTable;
337
319
  var height;
338
320
  var scrollbarHeight;
339
321
  var fixedRowsHeight;
340
322
  this.rowHeaderWidth = NaN;
341
323
 
342
- if (wtSettings.settings.renderAllRows && calculationType === _calculator.RENDER_TYPE) {
324
+ if (wtSettings.getSetting('renderAllRows') && calculationType === _calculator.RENDER_TYPE) {
343
325
  height = Infinity;
344
326
  } else {
345
327
  height = this.getViewportHeight();
346
328
  }
347
329
 
348
- var pos = wtOverlays.topOverlay.getScrollPosition() - wtOverlays.topOverlay.getTableParentOffset();
330
+ var pos = this.dataAccessObject.topScrollPosition - this.dataAccessObject.topParentOffset;
349
331
 
350
332
  if (pos < 0) {
351
333
  pos = 0;
352
334
  }
353
335
 
354
- var fixedRowsTop = wot.getSetting('fixedRowsTop');
355
- var fixedRowsBottom = wot.getSetting('fixedRowsBottom');
356
- var totalRows = wot.getSetting('totalRows');
336
+ var fixedRowsTop = wtSettings.getSetting('fixedRowsTop');
337
+ var fixedRowsBottom = wtSettings.getSetting('fixedRowsBottom');
338
+ var totalRows = wtSettings.getSetting('totalRows');
357
339
 
358
340
  if (fixedRowsTop) {
359
- fixedRowsHeight = wtOverlays.topOverlay.sumCellSizes(0, fixedRowsTop);
341
+ fixedRowsHeight = this.dataAccessObject.topOverlay.sumCellSizes(0, fixedRowsTop);
360
342
  pos += fixedRowsHeight;
361
343
  height -= fixedRowsHeight;
362
344
  }
363
345
 
364
- if (fixedRowsBottom && wtOverlays.bottomOverlay.clone) {
365
- fixedRowsHeight = wtOverlays.bottomOverlay.sumCellSizes(totalRows - fixedRowsBottom, totalRows);
346
+ if (fixedRowsBottom && this.dataAccessObject.bottomOverlay.clone) {
347
+ fixedRowsHeight = this.dataAccessObject.bottomOverlay.sumCellSizes(totalRows - fixedRowsBottom, totalRows);
366
348
  height -= fixedRowsHeight;
367
349
  }
368
350
 
369
351
  if (wtTable.holder.clientHeight === wtTable.holder.offsetHeight) {
370
352
  scrollbarHeight = 0;
371
353
  } else {
372
- scrollbarHeight = (0, _element.getScrollbarWidth)(rootDocument);
354
+ scrollbarHeight = (0, _element.getScrollbarWidth)(this.domBindings.rootDocument);
373
355
  }
374
356
 
375
357
  return new _calculator.ViewportRowsCalculator({
376
358
  viewportSize: height,
377
359
  scrollOffset: pos,
378
- totalItems: wot.getSetting('totalRows'),
360
+ totalItems: wtSettings.getSetting('totalRows'),
379
361
  itemSizeFn: function itemSizeFn(sourceRow) {
380
362
  return wtTable.getRowHeight(sourceRow);
381
363
  },
382
- overrideFn: wtSettings.settings.viewportRowCalculatorOverride,
364
+ overrideFn: wtSettings.getSettingPure('viewportRowCalculatorOverride'),
383
365
  calculationType: calculationType,
384
366
  scrollbarHeight: scrollbarHeight
385
367
  });
@@ -391,50 +373,47 @@ var Viewport = /*#__PURE__*/function () {
391
373
  *
392
374
  * @param {number} calculationType The render type ID, which determines for what type of
393
375
  * calculation calculator is created.
394
- * @returns {ViewportRowsCalculator}
376
+ * @returns {ViewportColumnsCalculator}
395
377
  */
396
378
 
397
379
  }, {
398
380
  key: "createColumnsCalculator",
399
381
  value: function createColumnsCalculator() {
400
382
  var calculationType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _calculator.RENDER_TYPE;
401
- var wot = this.wot;
402
- var wtSettings = wot.wtSettings,
403
- wtOverlays = wot.wtOverlays,
404
- wtTable = wot.wtTable,
405
- rootDocument = wot.rootDocument;
383
+ var wtSettings = this.wtSettings,
384
+ wtTable = this.wtTable;
406
385
  var width = this.getViewportWidth();
407
- var pos = wtOverlays.leftOverlay.getScrollPosition() - wtOverlays.leftOverlay.getTableParentOffset();
386
+ var pos = Math.abs(this.dataAccessObject.inlineStartScrollPosition) - this.dataAccessObject.inlineStartParentOffset;
408
387
  this.columnHeaderHeight = NaN;
409
388
 
410
389
  if (pos < 0) {
411
390
  pos = 0;
412
391
  }
413
392
 
414
- var fixedColumnsLeft = wot.getSetting('fixedColumnsLeft');
393
+ var fixedColumnsStart = wtSettings.getSetting('fixedColumnsStart');
415
394
 
416
- if (fixedColumnsLeft) {
417
- var fixedColumnsWidth = wtOverlays.leftOverlay.sumCellSizes(0, fixedColumnsLeft);
395
+ if (fixedColumnsStart) {
396
+ var fixedColumnsWidth = this.dataAccessObject.inlineStartOverlay.sumCellSizes(0, fixedColumnsStart);
418
397
  pos += fixedColumnsWidth;
419
398
  width -= fixedColumnsWidth;
420
399
  }
421
400
 
422
401
  if (wtTable.holder.clientWidth !== wtTable.holder.offsetWidth) {
423
- width -= (0, _element.getScrollbarWidth)(rootDocument);
402
+ width -= (0, _element.getScrollbarWidth)(this.domBindings.rootDocument);
424
403
  }
425
404
 
426
405
  return new _calculator.ViewportColumnsCalculator({
427
406
  viewportSize: width,
428
- scrollOffset: pos,
429
- totalItems: wot.getSetting('totalColumns'),
407
+ scrollOffset: Math.abs(pos),
408
+ totalItems: wtSettings.getSetting('totalColumns'),
430
409
  itemSizeFn: function itemSizeFn(sourceCol) {
431
- return wot.wtTable.getColumnWidth(sourceCol);
410
+ return wtTable.getColumnWidth(sourceCol);
432
411
  },
433
- overrideFn: wtSettings.settings.viewportColumnCalculatorOverride,
412
+ overrideFn: wtSettings.getSettingPure('viewportColumnCalculatorOverride'),
434
413
  calculationType: calculationType,
435
- stretchMode: wot.getSetting('stretchH'),
414
+ stretchMode: wtSettings.getSetting('stretchH'),
436
415
  stretchingItemWidthFn: function stretchingItemWidthFn(stretchedWidth, column) {
437
- return wot.getSetting('onBeforeStretchingColumnWidth', stretchedWidth, column);
416
+ return wtSettings.getSetting('onBeforeStretchingColumnWidth', stretchedWidth, column);
438
417
  }
439
418
  });
440
419
  }
@@ -500,14 +479,19 @@ var Viewport = /*#__PURE__*/function () {
500
479
  }
501
480
 
502
481
  var startRow = proposedRowsVisibleCalculator.startRow,
503
- endRow = proposedRowsVisibleCalculator.endRow;
482
+ endRow = proposedRowsVisibleCalculator.endRow; // if there are no fully visible rows at all, return false
483
+
484
+ if (startRow === null && endRow === null) {
485
+ return false;
486
+ }
487
+
504
488
  var _this$rowsRenderCalcu = this.rowsRenderCalculator,
505
489
  renderedStartRow = _this$rowsRenderCalcu.startRow,
506
490
  renderedEndRow = _this$rowsRenderCalcu.endRow;
507
491
 
508
492
  if (startRow < renderedStartRow || startRow === renderedStartRow && startRow > 0) {
509
493
  return false;
510
- } else if (endRow > renderedEndRow || endRow === renderedEndRow && endRow < this.wot.getSetting('totalRows') - 1) {
494
+ } else if (endRow > renderedEndRow || endRow === renderedEndRow && endRow < this.wtSettings.getSetting('totalRows') - 1) {
511
495
  return false;
512
496
  }
513
497
 
@@ -530,14 +514,19 @@ var Viewport = /*#__PURE__*/function () {
530
514
  }
531
515
 
532
516
  var startColumn = proposedColumnsVisibleCalculator.startColumn,
533
- endColumn = proposedColumnsVisibleCalculator.endColumn;
517
+ endColumn = proposedColumnsVisibleCalculator.endColumn; // if there are no fully visible columns at all, return false
518
+
519
+ if (startColumn === null && endColumn === null) {
520
+ return false;
521
+ }
522
+
534
523
  var _this$columnsRenderCa = this.columnsRenderCalculator,
535
524
  renderedStartColumn = _this$columnsRenderCa.startColumn,
536
525
  renderedEndColumn = _this$columnsRenderCa.endColumn;
537
526
 
538
527
  if (startColumn < renderedStartColumn || startColumn === renderedStartColumn && startColumn > 0) {
539
528
  return false;
540
- } else if (endColumn > renderedEndColumn || endColumn === renderedEndColumn && endColumn < this.wot.getSetting('totalColumns') - 1) {
529
+ } else if (endColumn > renderedEndColumn || endColumn === renderedEndColumn && endColumn < this.wtSettings.getSetting('totalColumns') - 1) {
541
530
  return false;
542
531
  }
543
532