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
package/tableView.mjs CHANGED
@@ -6,12 +6,6 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
6
6
 
7
7
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
8
 
9
- function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
10
-
11
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12
-
13
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
14
-
15
9
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
16
10
 
17
11
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -44,12 +38,10 @@ import "core-js/modules/es.array.from.js";
44
38
  import "core-js/modules/es.array.slice.js";
45
39
  import "core-js/modules/es.function.name.js";
46
40
  import "core-js/modules/es.regexp.exec.js";
47
- import "core-js/modules/es.object.set-prototype-of.js";
48
- import "core-js/modules/es.reflect.construct.js";
49
41
  import { addClass, clearTextSelection, empty, fastInnerHTML, fastInnerText, getScrollbarWidth, hasClass, isChildOf, isInput, isOutsideInput } from "./helpers/dom/element.mjs";
50
42
  import EventManager from "./eventManager.mjs";
51
43
  import { isImmediatePropagationStopped, isRightClick, isLeftClick } from "./helpers/dom/event.mjs";
52
- import Walkontable, { CellCoords } from "./3rdparty/walkontable/src/index.mjs";
44
+ import Walkontable from "./3rdparty/walkontable/src/index.mjs";
53
45
  import { handleMouseEvent } from "./selection/mouseEventHandler.mjs";
54
46
  import { isRootInstance } from "./utils/rootInstance.mjs";
55
47
  var privatePool = new WeakMap();
@@ -91,6 +83,7 @@ var TableView = /*#__PURE__*/function () {
91
83
  /**
92
84
  * Main <THEAD> element.
93
85
  *
86
+ * @private
94
87
  * @type {HTMLTableSectionElement}
95
88
  */
96
89
 
@@ -98,6 +91,7 @@ var TableView = /*#__PURE__*/function () {
98
91
  /**
99
92
  * Main <TBODY> element.
100
93
  *
94
+ * @private
101
95
  * @type {HTMLTableSectionElement}
102
96
  */
103
97
 
@@ -105,10 +99,11 @@ var TableView = /*#__PURE__*/function () {
105
99
  /**
106
100
  * Main Walkontable instance.
107
101
  *
102
+ * @private
108
103
  * @type {Walkontable}
109
104
  */
110
105
 
111
- this.wt = void 0;
106
+ this._wt = void 0;
112
107
  /**
113
108
  * Main Walkontable instance.
114
109
  *
@@ -184,7 +179,8 @@ var TableView = /*#__PURE__*/function () {
184
179
  this.adjustElementsSize(true);
185
180
  }
186
181
 
187
- this.wt.draw(!this.instance.forceFullRender);
182
+ this._wt.draw(!this.instance.forceFullRender);
183
+
188
184
  this.instance.runHooks('afterRender', this.instance.forceFullRender);
189
185
  this.instance.forceFullRender = false;
190
186
  this.instance.renderCall = false;
@@ -204,7 +200,7 @@ var TableView = /*#__PURE__*/function () {
204
200
  if (this.instance.isRenderSuspended()) {
205
201
  this.postponedAdjustElementsSize = true;
206
202
  } else {
207
- this.wt.wtOverlays.adjustElementsSize(force);
203
+ this._wt.wtOverlays.adjustElementsSize(force);
208
204
  }
209
205
  }
210
206
  /**
@@ -218,7 +214,7 @@ var TableView = /*#__PURE__*/function () {
218
214
  }, {
219
215
  key: "getCellAtCoords",
220
216
  value: function getCellAtCoords(coords, topmost) {
221
- var td = this.wt.getCell(coords, topmost);
217
+ var td = this._wt.getCell(coords, topmost);
222
218
 
223
219
  if (td < 0) {
224
220
  // there was an exit code (cell is out of bounds)
@@ -241,7 +237,7 @@ var TableView = /*#__PURE__*/function () {
241
237
  }, {
242
238
  key: "scrollViewport",
243
239
  value: function scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft) {
244
- return this.wt.scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft);
240
+ return this._wt.scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft);
245
241
  }
246
242
  /**
247
243
  * Scroll viewport to a column.
@@ -255,7 +251,7 @@ var TableView = /*#__PURE__*/function () {
255
251
  }, {
256
252
  key: "scrollViewportHorizontally",
257
253
  value: function scrollViewportHorizontally(column, snapToRight, snapToLeft) {
258
- return this.wt.scrollViewportHorizontally(column, snapToRight, snapToLeft);
254
+ return this._wt.scrollViewportHorizontally(column, snapToRight, snapToLeft);
259
255
  }
260
256
  /**
261
257
  * Scroll viewport to a row.
@@ -269,7 +265,7 @@ var TableView = /*#__PURE__*/function () {
269
265
  }, {
270
266
  key: "scrollViewportVertically",
271
267
  value: function scrollViewportVertically(row, snapToTop, snapToBottom) {
272
- return this.wt.scrollViewportVertically(row, snapToTop, snapToBottom);
268
+ return this._wt.scrollViewportVertically(row, snapToTop, snapToBottom);
273
269
  }
274
270
  /**
275
271
  * Prepares DOMElements and adds correct className to the root element.
@@ -337,7 +333,7 @@ var TableView = /*#__PURE__*/function () {
337
333
  });
338
334
  this.eventManager.addEventListener(rootElement, 'mousemove', function (event) {
339
335
  if (priv.selectionMouseDown && !_this.isTextSelectionAllowed(event.target)) {
340
- // Clear selection only when fragmentSelection is enabled, otherwise clearing selection breakes the IME editor.
336
+ // Clear selection only when fragmentSelection is enabled, otherwise clearing selection breaks the IME editor.
341
337
  if (_this.settings.fragmentSelection) {
342
338
  clearTextSelection(_this.instance.rootWindow);
343
339
  }
@@ -346,6 +342,7 @@ var TableView = /*#__PURE__*/function () {
346
342
  }
347
343
  });
348
344
  this.eventManager.addEventListener(documentElement, 'keyup', function (event) {
345
+ // TODO: is it the best place and way to finish cell selection?
349
346
  if (selection.isInProgress() && !event.shiftKey) {
350
347
  selection.finish();
351
348
  }
@@ -386,7 +383,7 @@ var TableView = /*#__PURE__*/function () {
386
383
  } // immediate click on "holder" means click on the right side of vertical scrollbar
387
384
 
388
385
 
389
- var holder = _this.instance.view.wt.wtTable.holder;
386
+ var holder = _this.instance.view._wt.wtTable.holder;
390
387
 
391
388
  if (next === holder) {
392
389
  var scrollbarWidth = getScrollbarWidth(rootDocument);
@@ -443,10 +440,12 @@ var TableView = /*#__PURE__*/function () {
443
440
  }, {
444
441
  key: "translateFromRenderableToVisualCoords",
445
442
  value: function translateFromRenderableToVisualCoords(_ref) {
443
+ var _this$instance3;
444
+
446
445
  var row = _ref.row,
447
446
  col = _ref.col;
448
447
  // TODO: To consider an idea to reusing the CellCoords instance instead creating new one.
449
- return _construct(CellCoords, _toConsumableArray(this.translateFromRenderableToVisualIndex(row, col)));
448
+ return (_this$instance3 = this.instance)._createCellCoords.apply(_this$instance3, _toConsumableArray(this.translateFromRenderableToVisualIndex(row, col)));
450
449
  }
451
450
  /**
452
451
  * Translate renderable row and column indexes to visual row and column indexes.
@@ -489,7 +488,7 @@ var TableView = /*#__PURE__*/function () {
489
488
  value: function countRenderableIndexes(indexMapper, maxElements) {
490
489
  var consideredElements = Math.min(indexMapper.getNotTrimmedIndexesLength(), maxElements); // Don't take hidden indexes into account. We are looking just for renderable indexes.
491
490
 
492
- var firstNotHiddenIndex = indexMapper.getFirstNotHiddenIndex(consideredElements - 1, -1); // There are no renderable indexes.
491
+ var firstNotHiddenIndex = indexMapper.getNearestNotHiddenIndex(consideredElements - 1, -1); // There are no renderable indexes.
493
492
 
494
493
  if (firstNotHiddenIndex === null) {
495
494
  return 0;
@@ -565,7 +564,7 @@ var TableView = /*#__PURE__*/function () {
565
564
  return 0;
566
565
  }
567
566
 
568
- var firstVisibleIndex = indexMapper.getFirstNotHiddenIndex(visualIndex, incrementBy);
567
+ var firstVisibleIndex = indexMapper.getNearestNotHiddenIndex(visualIndex, incrementBy);
569
568
  var renderableIndex = indexMapper.getRenderableFromVisualIndex(firstVisibleIndex);
570
569
 
571
570
  if (!Number.isInteger(renderableIndex)) {
@@ -584,7 +583,63 @@ var TableView = /*#__PURE__*/function () {
584
583
  return notHiddenIndexes;
585
584
  }
586
585
  /**
587
- * Defines default configuration and initializes WalkOnTable intance.
586
+ * The function returns the number of not hidden column indexes that fit between the first and
587
+ * last fixed column in the left (or right in RTL mode) overlay.
588
+ *
589
+ * @returns {number}
590
+ */
591
+
592
+ }, {
593
+ key: "countNotHiddenFixedColumnsStart",
594
+ value: function countNotHiddenFixedColumnsStart() {
595
+ var countCols = this.instance.countCols();
596
+ var visualFixedColumnsStart = Math.min(parseInt(this.settings.fixedColumnsStart, 10), countCols) - 1;
597
+ return this.countNotHiddenColumnIndexes(visualFixedColumnsStart, -1);
598
+ }
599
+ /**
600
+ * The function returns the number of not hidden row indexes that fit between the first and
601
+ * last fixed row in the top overlay.
602
+ *
603
+ * @returns {number}
604
+ */
605
+
606
+ }, {
607
+ key: "countNotHiddenFixedRowsTop",
608
+ value: function countNotHiddenFixedRowsTop() {
609
+ var countRows = this.instance.countRows();
610
+ var visualFixedRowsTop = Math.min(parseInt(this.settings.fixedRowsTop, 10), countRows) - 1;
611
+ return this.countNotHiddenRowIndexes(visualFixedRowsTop, -1);
612
+ }
613
+ /**
614
+ * The function returns the number of not hidden row indexes that fit between the first and
615
+ * last fixed row in the bottom overlay.
616
+ *
617
+ * @returns {number}
618
+ */
619
+
620
+ }, {
621
+ key: "countNotHiddenFixedRowsBottom",
622
+ value: function countNotHiddenFixedRowsBottom() {
623
+ var countRows = this.instance.countRows();
624
+ var visualFixedRowsBottom = Math.max(countRows - parseInt(this.settings.fixedRowsBottom, 10), 0);
625
+ return this.countNotHiddenRowIndexes(visualFixedRowsBottom, 1);
626
+ }
627
+ /**
628
+ * Checks if at least one cell than belongs to the main table is not covered by the top, left or
629
+ * bottom overlay.
630
+ *
631
+ * @returns {boolean}
632
+ */
633
+
634
+ }, {
635
+ key: "isMainTableNotFullyCoveredByOverlays",
636
+ value: function isMainTableNotFullyCoveredByOverlays() {
637
+ var fixedAllRows = this.countNotHiddenFixedRowsTop() + this.countNotHiddenFixedRowsBottom();
638
+ var fixedAllColumns = this.countNotHiddenFixedColumnsStart();
639
+ return this.instance.countRenderedRows() > fixedAllRows && this.instance.countRenderedCols() > fixedAllColumns;
640
+ }
641
+ /**
642
+ * Defines default configuration and initializes WalkOnTable instance.
588
643
  *
589
644
  * @private
590
645
  */
@@ -596,6 +651,7 @@ var TableView = /*#__PURE__*/function () {
596
651
 
597
652
  var priv = privatePool.get(this);
598
653
  var walkontableConfig = {
654
+ rtlMode: this.instance.isRtl(),
599
655
  externalRowCalculator: this.instance.getPlugin('autoRowSize') && this.instance.getPlugin('autoRowSize').isEnabled(),
600
656
  table: priv.table,
601
657
  isDataViewInstance: function isDataViewInstance() {
@@ -622,29 +678,20 @@ var TableView = /*#__PURE__*/function () {
622
678
  return _this2.countRenderableColumns();
623
679
  },
624
680
  // Number of renderable columns for the left overlay.
625
- fixedColumnsLeft: function fixedColumnsLeft() {
626
- var countCols = _this2.instance.countCols();
627
-
628
- var visualFixedColumnsLeft = Math.min(parseInt(_this2.settings.fixedColumnsLeft, 10), countCols) - 1;
629
- return _this2.countNotHiddenColumnIndexes(visualFixedColumnsLeft, -1);
681
+ fixedColumnsStart: function fixedColumnsStart() {
682
+ return _this2.countNotHiddenFixedColumnsStart();
630
683
  },
631
684
  // Number of renderable rows for the top overlay.
632
685
  fixedRowsTop: function fixedRowsTop() {
633
- var countRows = _this2.instance.countRows();
634
-
635
- var visualFixedRowsTop = Math.min(parseInt(_this2.settings.fixedRowsTop, 10), countRows) - 1;
636
- return _this2.countNotHiddenRowIndexes(visualFixedRowsTop, -1);
686
+ return _this2.countNotHiddenFixedRowsTop();
637
687
  },
638
688
  // Number of renderable rows for the bottom overlay.
639
689
  fixedRowsBottom: function fixedRowsBottom() {
640
- var countRows = _this2.instance.countRows();
641
-
642
- var visualFixedRowsBottom = Math.max(countRows - parseInt(_this2.settings.fixedRowsBottom, 10), 0);
643
- return _this2.countNotHiddenRowIndexes(visualFixedRowsBottom, 1);
690
+ return _this2.countNotHiddenFixedRowsBottom();
644
691
  },
645
- // Enable the left overlay when conditions are met.
646
- shouldRenderLeftOverlay: function shouldRenderLeftOverlay() {
647
- return _this2.settings.fixedColumnsLeft > 0 || walkontableConfig.rowHeaders().length > 0;
692
+ // Enable the inline start overlay when conditions are met.
693
+ shouldRenderInlineStartOverlay: function shouldRenderInlineStartOverlay() {
694
+ return _this2.settings.fixedColumnsStart > 0 || walkontableConfig.rowHeaders().length > 0;
648
695
  },
649
696
  // Enable the top overlay when conditions are met.
650
697
  shouldRenderTopOverlay: function shouldRenderTopOverlay() {
@@ -694,7 +741,7 @@ var TableView = /*#__PURE__*/function () {
694
741
  },
695
742
  columnWidth: function columnWidth(renderedColumnIndex) {
696
743
  var visualIndex = _this2.instance.columnIndexMapper.getVisualFromRenderableIndex(renderedColumnIndex); // It's not a bug that we can't find visual index for some handled by method indexes. The function is called also
697
- // for not displayed indexes (beyond the table boundaries), i.e. when `fixedColumnsLeft` > `startCols` (wrong config?) or
744
+ // for indexes that are not displayed (indexes that are beyond the grid's boundaries), i.e. when `fixedColumnsStart` > `startCols` (wrong config?) or
698
745
  // scrolling and dataset is empty (scroll should handle that?).
699
746
 
700
747
 
@@ -774,12 +821,15 @@ var TableView = /*#__PURE__*/function () {
774
821
  handleMouseEvent(event, {
775
822
  coords: visualCoords,
776
823
  selection: _this2.instance.selection,
777
- controller: controller
824
+ controller: controller,
825
+ cellCoordsFactory: function cellCoordsFactory(row, column) {
826
+ return _this2.instance._createCellCoords(row, column);
827
+ }
778
828
  });
779
829
 
780
830
  _this2.instance.runHooks('afterOnCellMouseDown', event, visualCoords, TD);
781
831
 
782
- _this2.activeWt = _this2.wt;
832
+ _this2.activeWt = _this2._wt;
783
833
  },
784
834
  onCellContextMenu: function onCellContextMenu(event, coords, TD, wt) {
785
835
  var visualCoords = _this2.translateFromRenderableToVisualCoords(coords);
@@ -799,7 +849,7 @@ var TableView = /*#__PURE__*/function () {
799
849
 
800
850
  _this2.instance.runHooks('afterOnCellContextMenu', event, visualCoords, TD);
801
851
 
802
- _this2.activeWt = _this2.wt;
852
+ _this2.activeWt = _this2._wt;
803
853
  },
804
854
  onCellMouseOut: function onCellMouseOut(event, coords, TD, wt) {
805
855
  var visualCoords = _this2.translateFromRenderableToVisualCoords(coords);
@@ -814,7 +864,7 @@ var TableView = /*#__PURE__*/function () {
814
864
 
815
865
  _this2.instance.runHooks('afterOnCellMouseOut', event, visualCoords, TD);
816
866
 
817
- _this2.activeWt = _this2.wt;
867
+ _this2.activeWt = _this2._wt;
818
868
  },
819
869
  onCellMouseOver: function onCellMouseOver(event, coords, TD, wt) {
820
870
  var visualCoords = _this2.translateFromRenderableToVisualCoords(coords);
@@ -836,13 +886,16 @@ var TableView = /*#__PURE__*/function () {
836
886
  handleMouseEvent(event, {
837
887
  coords: visualCoords,
838
888
  selection: _this2.instance.selection,
839
- controller: controller
889
+ controller: controller,
890
+ cellCoordsFactory: function cellCoordsFactory(row, column) {
891
+ return _this2.instance._createCellCoords(row, column);
892
+ }
840
893
  });
841
894
  }
842
895
 
843
896
  _this2.instance.runHooks('afterOnCellMouseOver', event, visualCoords, TD);
844
897
 
845
- _this2.activeWt = _this2.wt;
898
+ _this2.activeWt = _this2._wt;
846
899
  },
847
900
  onCellMouseUp: function onCellMouseUp(event, coords, TD, wt) {
848
901
  var visualCoords = _this2.translateFromRenderableToVisualCoords(coords);
@@ -861,7 +914,7 @@ var TableView = /*#__PURE__*/function () {
861
914
 
862
915
  _this2.instance.runHooks('afterOnCellMouseUp', event, visualCoords, TD);
863
916
 
864
- _this2.activeWt = _this2.wt;
917
+ _this2.activeWt = _this2._wt;
865
918
  },
866
919
  onCellCornerMouseDown: function onCellCornerMouseDown(event) {
867
920
  event.preventDefault();
@@ -894,7 +947,7 @@ var TableView = /*#__PURE__*/function () {
894
947
 
895
948
  var newVisualRow = _this2.instance.runHooks('beforeHighlightingRowHeader', visualRow, headerLevel, highlightMeta);
896
949
 
897
- return rowMapper.getRenderableFromVisualIndex(rowMapper.getFirstNotHiddenIndex(newVisualRow, 1));
950
+ return rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(newVisualRow, 1));
898
951
  },
899
952
  onBeforeHighlightingColumnHeader: function onBeforeHighlightingColumnHeader(renderableColumn, headerLevel, highlightMeta) {
900
953
  var columnMapper = _this2.instance.columnIndexMapper;
@@ -902,7 +955,7 @@ var TableView = /*#__PURE__*/function () {
902
955
 
903
956
  var newVisualColumn = _this2.instance.runHooks('beforeHighlightingColumnHeader', visualColumn, headerLevel, highlightMeta);
904
957
 
905
- return columnMapper.getRenderableFromVisualIndex(columnMapper.getFirstNotHiddenIndex(newVisualColumn, 1));
958
+ return columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(newVisualColumn, 1));
906
959
  },
907
960
  onAfterDrawSelection: function onAfterDrawSelection(currentRow, currentColumn, layerLevel) {
908
961
  var cornersOfSelection;
@@ -967,7 +1020,7 @@ var TableView = /*#__PURE__*/function () {
967
1020
  visualColumnTo = _visualIndexes[3]; // Result of the hook is handled by the Walkontable (renderable indexes).
968
1021
 
969
1022
 
970
- return [visualRowFrom >= 0 ? rowMapper.getRenderableFromVisualIndex(rowMapper.getFirstNotHiddenIndex(visualRowFrom, 1)) : visualRowFrom, visualColumnFrom >= 0 ? columnMapper.getRenderableFromVisualIndex(columnMapper.getFirstNotHiddenIndex(visualColumnFrom, 1)) : visualColumnFrom, visualRowTo >= 0 ? rowMapper.getRenderableFromVisualIndex(rowMapper.getFirstNotHiddenIndex(visualRowTo, -1)) : visualRowTo, visualColumnTo >= 0 ? columnMapper.getRenderableFromVisualIndex(columnMapper.getFirstNotHiddenIndex(visualColumnTo, -1)) : visualColumnTo];
1023
+ return [visualRowFrom >= 0 ? rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(visualRowFrom, 1)) : visualRowFrom, visualColumnFrom >= 0 ? columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(visualColumnFrom, 1)) : visualColumnFrom, visualRowTo >= 0 ? rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(visualRowTo, -1)) : visualRowTo, visualColumnTo >= 0 ? columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(visualColumnTo, -1)) : visualColumnTo];
971
1024
  }
972
1025
  },
973
1026
  viewportRowCalculatorOverride: function viewportRowCalculatorOverride(calc) {
@@ -998,7 +1051,7 @@ var TableView = /*#__PURE__*/function () {
998
1051
  viewportColumnCalculatorOverride: function viewportColumnCalculatorOverride(calc) {
999
1052
  var viewportOffset = _this2.settings.viewportColumnRenderingOffset;
1000
1053
 
1001
- if (viewportOffset === 'auto' && _this2.settings.fixedColumnsLeft) {
1054
+ if (viewportOffset === 'auto' && _this2.settings.fixedColumnsStart) {
1002
1055
  viewportOffset = 10;
1003
1056
  }
1004
1057
 
@@ -1032,9 +1085,9 @@ var TableView = /*#__PURE__*/function () {
1032
1085
  }
1033
1086
  };
1034
1087
  this.instance.runHooks('beforeInitWalkontable', walkontableConfig);
1035
- this.wt = new Walkontable(walkontableConfig);
1036
- this.activeWt = this.wt;
1037
- var spreader = this.wt.wtTable.spreader; // We have to cache width and height after Walkontable initialization.
1088
+ this._wt = new Walkontable(walkontableConfig);
1089
+ this.activeWt = this._wt;
1090
+ var spreader = this._wt.wtTable.spreader; // We have to cache width and height after Walkontable initialization.
1038
1091
 
1039
1092
  var _this$instance$rootEl = this.instance.rootElement.getBoundingClientRect(),
1040
1093
  width = _this$instance$rootEl.width,
@@ -1055,7 +1108,7 @@ var TableView = /*#__PURE__*/function () {
1055
1108
  });
1056
1109
  this.eventManager.addEventListener(this.instance.rootDocument.documentElement, 'click', function () {
1057
1110
  if (_this2.settings.observeDOMVisibility) {
1058
- if (_this2.wt.drawInterrupted) {
1111
+ if (_this2._wt.drawInterrupted) {
1059
1112
  _this2.instance.forceFullRender = true;
1060
1113
 
1061
1114
  _this2.render();
@@ -1078,7 +1131,7 @@ var TableView = /*#__PURE__*/function () {
1078
1131
  return true;
1079
1132
  }
1080
1133
 
1081
- var isChildOfTableBody = isChildOf(el, this.instance.view.wt.wtTable.spreader);
1134
+ var isChildOfTableBody = isChildOf(el, this.instance.view._wt.wtTable.spreader);
1082
1135
 
1083
1136
  if (this.settings.fragmentSelection === true && isChildOfTableBody) {
1084
1137
  return true;
@@ -1189,9 +1242,9 @@ var TableView = /*#__PURE__*/function () {
1189
1242
 
1190
1243
  this.updateCellHeader(container.querySelector('.rowHeader'), visualRowIndex, this.instance.getRowHeader);
1191
1244
  } else {
1192
- var _this$instance3 = this.instance,
1193
- rootDocument = _this$instance3.rootDocument,
1194
- getRowHeader = _this$instance3.getRowHeader;
1245
+ var _this$instance4 = this.instance,
1246
+ rootDocument = _this$instance4.rootDocument,
1247
+ getRowHeader = _this$instance4.getRowHeader;
1195
1248
  var div = rootDocument.createElement('div');
1196
1249
  var span = rootDocument.createElement('span');
1197
1250
  div.className = 'relative';
@@ -1249,7 +1302,9 @@ var TableView = /*#__PURE__*/function () {
1249
1302
  key: "updateCellHeader",
1250
1303
  value: function updateCellHeader(element, index, content) {
1251
1304
  var renderedIndex = index;
1252
- var parentOverlay = this.wt.wtOverlays.getParentOverlay(element) || this.wt; // prevent wrong calculations from SampleGenerator
1305
+
1306
+ var parentOverlay = this._wt.wtOverlays.getParentOverlay(element) || this._wt; // prevent wrong calculations from SampleGenerator
1307
+
1253
1308
 
1254
1309
  if (element.parentNode) {
1255
1310
  if (hasClass(element, 'colHeader')) {
@@ -1268,19 +1323,20 @@ var TableView = /*#__PURE__*/function () {
1268
1323
  }
1269
1324
  }
1270
1325
  /**
1271
- * Given a element's left position relative to the viewport, returns maximum element width until the right
1272
- * edge of the viewport (before scrollbar).
1326
+ * Given a element's left (or right in RTL mode) position relative to the viewport, returns maximum
1327
+ * element width until the right (or left) edge of the viewport (before scrollbar).
1273
1328
  *
1274
1329
  * @private
1275
- * @param {number} leftOffset The left offset.
1330
+ * @param {number} inlineOffset The left (or right in RTL mode) offset.
1276
1331
  * @returns {number}
1277
1332
  */
1278
1333
 
1279
1334
  }, {
1280
1335
  key: "maximumVisibleElementWidth",
1281
- value: function maximumVisibleElementWidth(leftOffset) {
1282
- var workspaceWidth = this.wt.wtViewport.getWorkspaceWidth();
1283
- var maxWidth = workspaceWidth - leftOffset;
1336
+ value: function maximumVisibleElementWidth(inlineOffset) {
1337
+ var workspaceWidth = this._wt.wtViewport.getWorkspaceWidth();
1338
+
1339
+ var maxWidth = workspaceWidth - inlineOffset;
1284
1340
  return maxWidth > 0 ? maxWidth : 0;
1285
1341
  }
1286
1342
  /**
@@ -1295,7 +1351,8 @@ var TableView = /*#__PURE__*/function () {
1295
1351
  }, {
1296
1352
  key: "maximumVisibleElementHeight",
1297
1353
  value: function maximumVisibleElementHeight(topOffset) {
1298
- var workspaceHeight = this.wt.wtViewport.getWorkspaceHeight();
1354
+ var workspaceHeight = this._wt.wtViewport.getWorkspaceHeight();
1355
+
1299
1356
  var maxHeight = workspaceHeight - topOffset;
1300
1357
  return maxHeight > 0 ? maxHeight : 0;
1301
1358
  }
@@ -1330,19 +1387,51 @@ var TableView = /*#__PURE__*/function () {
1330
1387
  };
1331
1388
  }
1332
1389
  /**
1333
- * Checks if master overlay is active.
1390
+ * Returns the first fully visible row in the table viewport.
1334
1391
  *
1335
- * @private
1336
- * @returns {boolean}
1392
+ * @returns {number}
1337
1393
  */
1338
1394
 
1339
1395
  }, {
1340
- key: "mainViewIsActive",
1341
- value: function mainViewIsActive() {
1342
- return this.wt === this.activeWt;
1396
+ key: "getFirstFullyVisibleRow",
1397
+ value: function getFirstFullyVisibleRow() {
1398
+ return this.instance.rowIndexMapper.getVisualFromRenderableIndex(this.instance.view._wt.wtScroll.getFirstVisibleRow());
1343
1399
  }
1344
1400
  /**
1345
- * Destroyes internal WalkOnTable's instance. Detaches all of the bonded listeners.
1401
+ * Returns the last fully visible row in the table viewport.
1402
+ *
1403
+ * @returns {number}
1404
+ */
1405
+
1406
+ }, {
1407
+ key: "getLastFullyVisibleRow",
1408
+ value: function getLastFullyVisibleRow() {
1409
+ return this.instance.rowIndexMapper.getVisualFromRenderableIndex(this.instance.view._wt.wtScroll.getLastVisibleRow());
1410
+ }
1411
+ /**
1412
+ * Returns the first fully visible column in the table viewport.
1413
+ *
1414
+ * @returns {number}
1415
+ */
1416
+
1417
+ }, {
1418
+ key: "getFirstFullyVisibleColumn",
1419
+ value: function getFirstFullyVisibleColumn() {
1420
+ return this.instance.columnIndexMapper.getVisualFromRenderableIndex(this.instance.view._wt.wtScroll.getFirstVisibleColumn());
1421
+ }
1422
+ /**
1423
+ * Returns the last fully visible column in the table viewport.
1424
+ *
1425
+ * @returns {number}
1426
+ */
1427
+
1428
+ }, {
1429
+ key: "getLastFullyVisibleColumn",
1430
+ value: function getLastFullyVisibleColumn() {
1431
+ return this.instance.columnIndexMapper.getVisualFromRenderableIndex(this.instance.view._wt.wtScroll.getLastVisibleColumn());
1432
+ }
1433
+ /**
1434
+ * Destroys internal WalkOnTable's instance. Detaches all of the bonded listeners.
1346
1435
  *
1347
1436
  * @private
1348
1437
  */
@@ -1350,7 +1439,8 @@ var TableView = /*#__PURE__*/function () {
1350
1439
  }, {
1351
1440
  key: "destroy",
1352
1441
  value: function destroy() {
1353
- this.wt.destroy();
1442
+ this._wt.destroy();
1443
+
1354
1444
  this.eventManager.destroy();
1355
1445
  }
1356
1446
  }]);
@@ -45,7 +45,6 @@ var _currentInitialChanges = /*#__PURE__*/new WeakMap();
45
45
  * The ChangesObserver module is an object that represents a disposable resource
46
46
  * provided by the ChangesObservable module.
47
47
  *
48
- * @private
49
48
  * @class ChangesObserver
50
49
  */
51
50
  var ChangesObserver = /*#__PURE__*/function () {
@@ -30,7 +30,6 @@ import localHooks from "../../mixins/localHooks.mjs";
30
30
  * The ChangesObserver module is an object that represents a disposable resource
31
31
  * provided by the ChangesObservable module.
32
32
  *
33
- * @private
34
33
  * @class ChangesObserver
35
34
  */
36
35
 
@@ -29,7 +29,9 @@ export class IndexMapper {
29
29
  getVisualFromRenderableIndex(renderableIndex: number): number;
30
30
  getRenderableFromVisualIndex(visualIndex: number): number;
31
31
  getFirstNotHiddenIndex(fromVisualIndex: number, incrementBy: number,
32
- searchAlsoOtherWayAround?: boolean, indexForNextSearch?: number): number;
32
+ searchAlsoOtherWayAround?: boolean, indexForNextSearch?: number): number | null;
33
+ getNearestNotHiddenIndex(fromVisualIndex: number, searchDirection: 1|-1,
34
+ searchAlsoOtherWayAround?: boolean): number | null;
33
35
  initToLength(length?: number): void;
34
36
  getIndexesSequence(): number[];
35
37
  setIndexesSequence(indexes: number[]): void;