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
@@ -11,7 +11,7 @@ import "core-js/modules/es.array.iterator.js";
11
11
  import "core-js/modules/es.string.iterator.js";
12
12
  import "core-js/modules/web.dom-collections.iterator.js";
13
13
 
14
- 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); }
14
+ function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
15
15
 
16
16
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17
17
 
@@ -21,7 +21,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
21
21
 
22
22
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
23
23
 
24
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
24
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
25
25
 
26
26
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
27
27
 
@@ -31,11 +31,11 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
31
31
 
32
32
  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; } }
33
33
 
34
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
34
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
35
35
 
36
36
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
37
37
 
38
- import { addClass, getScrollbarWidth, getScrollTop, getWindowScrollLeft, hasClass, outerHeight, removeClass, setOverlayPosition, resetCssTransform } from "./../../../../helpers/dom/element.mjs";
38
+ import { addClass, getScrollbarWidth, getScrollTop, getWindowScrollLeft, hasClass, outerHeight, removeClass, setOverlayPosition, resetCssTransform } from "../../../../helpers/dom/element.mjs";
39
39
  import TopOverlayTable from "./../table/top.mjs";
40
40
  import { Overlay } from "./_base.mjs";
41
41
  import { CLONE_TOP } from "./constants.mjs";
@@ -49,19 +49,28 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
49
49
  var _super = _createSuper(TopOverlay);
50
50
 
51
51
  /**
52
- * @param {Walkontable} wotInstance The Walkontable instance.
52
+ * Cached value which holds the previous value of the `fixedRowsTop` option.
53
+ * It is used as a comparison value that can be used to detect changes in this value.
54
+ *
55
+ * @type {number}
56
+ */
57
+
58
+ /**
59
+ * @param {Walkontable} wotInstance The Walkontable instance. @TODO refactoring: check if can be deleted.
60
+ * @param {FacadeGetter} facadeGetter Function which return proper facade.
61
+ * @param {Settings} wtSettings The Walkontable settings.
62
+ * @param {DomBindings} domBindings Dom elements bound to the current instance.
53
63
  */
54
- function TopOverlay(wotInstance) {
64
+ function TopOverlay(wotInstance, facadeGetter, wtSettings, domBindings) {
55
65
  var _this;
56
66
 
57
67
  _classCallCheck(this, TopOverlay);
58
68
 
59
- _this = _super.call(this, wotInstance);
69
+ _this = _super.call(this, wotInstance, facadeGetter, CLONE_TOP, wtSettings, domBindings);
60
70
 
61
71
  _defineProperty(_assertThisInitialized(_this), "cachedFixedRowsTop", -1);
62
72
 
63
- _this.clone = _this.makeClone(CLONE_TOP);
64
- _this.cachedFixedRowsTop = _this.wot.getSetting('fixedRowsTop');
73
+ _this.cachedFixedRowsTop = _this.wtSettings.getSetting('fixedRowsTop');
65
74
  return _this;
66
75
  }
67
76
  /**
@@ -69,7 +78,7 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
69
78
  *
70
79
  * @see Table#constructor
71
80
  * @param {...*} args Parameters that will be forwarded to the `Table` constructor.
72
- * @returns {Table}
81
+ * @returns {TopOverlayTable}
73
82
  */
74
83
 
75
84
 
@@ -91,7 +100,7 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
91
100
  }, {
92
101
  key: "shouldBeRendered",
93
102
  value: function shouldBeRendered() {
94
- return this.wot.getSetting('shouldRenderTopOverlay');
103
+ return this.wtSettings.getSetting('shouldRenderTopOverlay');
95
104
  }
96
105
  /**
97
106
  * Updates the top overlay position.
@@ -104,18 +113,18 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
104
113
  value: function resetFixedPosition() {
105
114
  if (!this.needFullRender || !this.wot.wtTable.holder.parentNode) {
106
115
  // removed from DOM
107
- return;
116
+ return false;
108
117
  }
109
118
 
110
119
  var overlayRoot = this.clone.wtTable.holder.parentNode;
111
- var preventOverflow = this.wot.getSetting('preventOverflow');
112
- var headerPosition = 0;
120
+ var rootWindow = this.domBindings.rootWindow;
121
+ var preventOverflow = this.wtSettings.getSetting('preventOverflow');
122
+ var overlayPosition = 0;
113
123
  var skipInnerBorderAdjusting = false;
114
124
 
115
- if (this.trimmingContainer === this.wot.rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {
125
+ if (this.trimmingContainer === rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {
116
126
  var wtTable = this.wot.wtTable;
117
127
  var hiderRect = wtTable.hider.getBoundingClientRect();
118
- var top = Math.ceil(hiderRect.top);
119
128
  var bottom = Math.ceil(hiderRect.bottom);
120
129
  var rootHeight = overlayRoot.offsetHeight; // This checks if the overlay is going to an infinite loop caused by added (or removed)
121
130
  // `innerBorderTop` class name. Toggling the class name shifts the viewport by 1px and
@@ -130,26 +139,14 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
130
139
  // frozen lines (no more `innerBorderTop` workaround).
131
140
 
132
141
  skipInnerBorderAdjusting = bottom === rootHeight;
133
- var finalLeft;
134
- var finalTop;
135
- finalLeft = wtTable.hider.style.left;
136
- finalLeft = finalLeft === '' ? 0 : finalLeft;
137
-
138
- if (top < 0 && bottom - rootHeight > 0) {
139
- finalTop = -top;
140
- } else {
141
- finalTop = 0;
142
- }
143
-
144
- headerPosition = finalTop;
145
- finalTop += 'px';
146
- setOverlayPosition(overlayRoot, finalLeft, finalTop);
142
+ overlayPosition = this.getOverlayOffset();
143
+ setOverlayPosition(overlayRoot, '0px', "".concat(overlayPosition, "px"));
147
144
  } else {
148
- headerPosition = this.getScrollPosition();
145
+ overlayPosition = this.getScrollPosition();
149
146
  resetCssTransform(overlayRoot);
150
147
  }
151
148
 
152
- var positionChanged = this.adjustHeaderBordersPosition(headerPosition, skipInnerBorderAdjusting);
149
+ var positionChanged = this.adjustHeaderBordersPosition(overlayPosition, skipInnerBorderAdjusting);
153
150
  this.adjustElementsSize();
154
151
  return positionChanged;
155
152
  }
@@ -163,7 +160,7 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
163
160
  }, {
164
161
  key: "setScrollPosition",
165
162
  value: function setScrollPosition(pos) {
166
- var rootWindow = this.wot.rootWindow;
163
+ var rootWindow = this.domBindings.rootWindow;
167
164
  var result = false;
168
165
 
169
166
  if (this.mainTableScrollableElement === rootWindow && rootWindow.scrollY !== pos) {
@@ -183,7 +180,7 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
183
180
  }, {
184
181
  key: "onScroll",
185
182
  value: function onScroll() {
186
- this.wot.getSetting('onScrollHorizontally');
183
+ this.wtSettings.getSetting('onScrollHorizontally');
187
184
  }
188
185
  /**
189
186
  * Calculates total sum cells height.
@@ -196,7 +193,7 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
196
193
  }, {
197
194
  key: "sumCellSizes",
198
195
  value: function sumCellSizes(from, to) {
199
- var defaultRowHeight = this.wot.wtSettings.settings.defaultRowHeight;
196
+ var defaultRowHeight = this.wtSettings.getSetting('defaultRowHeight');
200
197
  var row = from;
201
198
  var sum = 0;
202
199
 
@@ -232,14 +229,14 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
232
229
  }, {
233
230
  key: "adjustRootElementSize",
234
231
  value: function adjustRootElementSize() {
235
- var _this$wot = this.wot,
236
- wtTable = _this$wot.wtTable,
237
- rootDocument = _this$wot.rootDocument,
238
- rootWindow = _this$wot.rootWindow;
232
+ var wtTable = this.wot.wtTable;
233
+ var _this$domBindings = this.domBindings,
234
+ rootDocument = _this$domBindings.rootDocument,
235
+ rootWindow = _this$domBindings.rootWindow;
239
236
  var scrollbarWidth = getScrollbarWidth(rootDocument);
240
237
  var overlayRoot = this.clone.wtTable.holder.parentNode;
241
238
  var overlayRootStyle = overlayRoot.style;
242
- var preventOverflow = this.wot.getSetting('preventOverflow');
239
+ var preventOverflow = this.wtSettings.getSetting('preventOverflow');
243
240
 
244
241
  if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
245
242
  var width = this.wot.wtViewport.getWorkspaceWidth();
@@ -274,7 +271,8 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
274
271
 
275
272
  var holder = this.clone.wtTable.holder;
276
273
  var selections = this.wot.selections;
277
- var selectionCornerOffset = Math.abs((_selections$getCell$g = selections === null || selections === void 0 ? void 0 : selections.getCell().getBorder(this.wot).cornerCenterPointOffset) !== null && _selections$getCell$g !== void 0 ? _selections$getCell$g : 0);
274
+ var facade = this.facadeGetter();
275
+ var selectionCornerOffset = Math.abs((_selections$getCell$g = selections === null || selections === void 0 ? void 0 : selections.getCell().getBorder(facade).cornerCenterPointOffset) !== null && _selections$getCell$g !== void 0 ? _selections$getCell$g : 0);
278
276
  this.clone.wtTable.hider.style.width = this.hider.style.width;
279
277
  holder.style.width = holder.parentNode.style.width; // Add selection corner protruding part to the holder total height to make sure that
280
278
  // borders' corner won't be cut after vertical scroll (#6937).
@@ -288,7 +286,7 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
288
286
  }, {
289
287
  key: "applyToDOM",
290
288
  value: function applyToDOM() {
291
- var total = this.wot.getSetting('totalRows');
289
+ var total = this.wtSettings.getSetting('totalRows');
292
290
 
293
291
  if (typeof this.wot.wtViewport.rowsRenderCalculator.startPosition === 'number') {
294
292
  this.spreader.style.top = "".concat(this.wot.wtViewport.rowsRenderCalculator.startPosition, "px");
@@ -312,10 +310,13 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
312
310
  }, {
313
311
  key: "syncOverlayOffset",
314
312
  value: function syncOverlayOffset() {
313
+ var styleProperty = this.isRtl() ? 'right' : 'left';
314
+ var spreader = this.clone.wtTable.spreader;
315
+
315
316
  if (typeof this.wot.wtViewport.columnsRenderCalculator.startPosition === 'number') {
316
- this.clone.wtTable.spreader.style.left = "".concat(this.wot.wtViewport.columnsRenderCalculator.startPosition, "px");
317
+ spreader.style[styleProperty] = "".concat(this.wot.wtViewport.columnsRenderCalculator.startPosition, "px");
317
318
  } else {
318
- this.clone.wtTable.spreader.style.left = '';
319
+ spreader.style[styleProperty] = '';
319
320
  }
320
321
  }
321
322
  /**
@@ -329,25 +330,35 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
329
330
  }, {
330
331
  key: "scrollTo",
331
332
  value: function scrollTo(sourceRow, bottomEdge) {
332
- var wot = this.wot;
333
+ var wot = this.wot,
334
+ wtSettings = this.wtSettings;
333
335
  var sourceInstance = wot.cloneSource ? wot.cloneSource : wot;
334
336
  var mainHolder = sourceInstance.wtTable.holder;
335
337
  var newY = this.getTableParentOffset();
336
338
  var scrollbarCompensation = 0;
337
339
 
340
+ if (bottomEdge) {
341
+ var rowHeight = this.wot.wtTable.getRowHeight(sourceRow);
342
+ var viewportHeight = this.wot.wtViewport.getViewportHeight();
343
+
344
+ if (rowHeight > viewportHeight) {
345
+ bottomEdge = false;
346
+ }
347
+ }
348
+
338
349
  if (bottomEdge && mainHolder.offsetHeight !== mainHolder.clientHeight) {
339
- scrollbarCompensation = getScrollbarWidth(wot.rootDocument);
350
+ scrollbarCompensation = getScrollbarWidth(this.domBindings.rootDocument);
340
351
  }
341
352
 
342
353
  if (bottomEdge) {
343
- var fixedRowsBottom = wot.getSetting('fixedRowsBottom');
344
- var totalRows = wot.getSetting('totalRows');
354
+ var fixedRowsBottom = wtSettings.getSetting('fixedRowsBottom');
355
+ var totalRows = wtSettings.getSetting('totalRows');
345
356
  newY += this.sumCellSizes(0, sourceRow + 1);
346
357
  newY -= wot.wtViewport.getViewportHeight() - this.sumCellSizes(totalRows - fixedRowsBottom, totalRows); // Fix 1 pixel offset when cell is selected
347
358
 
348
359
  newY += 1;
349
360
  } else {
350
- newY += this.sumCellSizes(wot.getSetting('fixedRowsTop'), sourceRow);
361
+ newY += this.sumCellSizes(wtSettings.getSetting('fixedRowsTop'), sourceRow);
351
362
  }
352
363
 
353
364
  newY += scrollbarCompensation;
@@ -362,7 +373,7 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
362
373
  }, {
363
374
  key: "getTableParentOffset",
364
375
  value: function getTableParentOffset() {
365
- if (this.mainTableScrollableElement === this.wot.rootWindow) {
376
+ if (this.mainTableScrollableElement === this.domBindings.rootWindow) {
366
377
  return this.wot.wtTable.holderOffset.top;
367
378
  }
368
379
 
@@ -377,7 +388,33 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
377
388
  }, {
378
389
  key: "getScrollPosition",
379
390
  value: function getScrollPosition() {
380
- return getScrollTop(this.mainTableScrollableElement, this.wot.rootWindow);
391
+ return getScrollTop(this.mainTableScrollableElement, this.domBindings.rootWindow);
392
+ }
393
+ /**
394
+ * Gets the main overlay's vertical overlay offset.
395
+ *
396
+ * @returns {number} Main table's vertical overlay offset.
397
+ */
398
+
399
+ }, {
400
+ key: "getOverlayOffset",
401
+ value: function getOverlayOffset() {
402
+ var rootWindow = this.domBindings.rootWindow;
403
+ var preventOverflow = this.wtSettings.getSetting('preventOverflow');
404
+ var overlayOffset = 0;
405
+
406
+ if (this.trimmingContainer === rootWindow && (!preventOverflow || preventOverflow !== 'vertical')) {
407
+ var rootHeight = this.wot.wtTable.getTotalHeight();
408
+ var overlayRootHeight = this.clone.wtTable.getTotalHeight();
409
+ var maxOffset = rootHeight - overlayRootHeight;
410
+ overlayOffset = Math.max(this.getScrollPosition() - this.getTableParentOffset(), 0);
411
+
412
+ if (overlayOffset > maxOffset) {
413
+ overlayOffset = 0;
414
+ }
415
+ }
416
+
417
+ return overlayOffset;
381
418
  }
382
419
  /**
383
420
  * Adds css classes to hide the header border's header (cell-selection border hiding issue).
@@ -392,7 +429,7 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
392
429
  value: function adjustHeaderBordersPosition(position) {
393
430
  var skipInnerBorderAdjusting = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
394
431
  var masterParent = this.wot.wtTable.holder.parentNode;
395
- var totalColumns = this.wot.getSetting('totalColumns');
432
+ var totalColumns = this.wtSettings.getSetting('totalColumns');
396
433
 
397
434
  if (totalColumns) {
398
435
  removeClass(masterParent, 'emptyColumns');
@@ -403,15 +440,15 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
403
440
  var positionChanged = false;
404
441
 
405
442
  if (!skipInnerBorderAdjusting) {
406
- var fixedRowsTop = this.wot.getSetting('fixedRowsTop');
443
+ var fixedRowsTop = this.wtSettings.getSetting('fixedRowsTop');
407
444
  var areFixedRowsTopChanged = this.cachedFixedRowsTop !== fixedRowsTop;
408
- var columnHeaders = this.wot.getSetting('columnHeaders');
445
+ var columnHeaders = this.wtSettings.getSetting('columnHeaders');
409
446
 
410
447
  if ((areFixedRowsTopChanged || fixedRowsTop === 0) && columnHeaders.length > 0) {
411
448
  var previousState = hasClass(masterParent, 'innerBorderTop');
412
- this.cachedFixedRowsTop = this.wot.getSetting('fixedRowsTop');
449
+ this.cachedFixedRowsTop = this.wtSettings.getSetting('fixedRowsTop');
413
450
 
414
- if (position || this.wot.getSetting('totalRows') === 0) {
451
+ if (position || this.wtSettings.getSetting('totalRows') === 0) {
415
452
  addClass(masterParent, 'innerBorderTop');
416
453
  positionChanged = !previousState;
417
454
  } else {
@@ -423,18 +460,6 @@ export var TopOverlay = /*#__PURE__*/function (_Overlay) {
423
460
 
424
461
  return positionChanged;
425
462
  }
426
- }], [{
427
- key: "OVERLAY_NAME",
428
- get: function get() {
429
- return CLONE_TOP;
430
- }
431
- /**
432
- * Cached value which holds the previous value of the `fixedRowsTop` option.
433
- * It is used as a comparison value that can be used to detect changes in this value.
434
- *
435
- * @type {number}
436
- */
437
-
438
463
  }]);
439
464
 
440
465
  return TopOverlay;
@@ -2,6 +2,10 @@
2
2
 
3
3
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
5
+ require("core-js/modules/es.object.set-prototype-of.js");
6
+
7
+ require("core-js/modules/es.object.get-prototype-of.js");
8
+
5
9
  require("core-js/modules/es.object.to-string.js");
6
10
 
7
11
  require("core-js/modules/es.reflect.construct.js");
@@ -19,15 +23,11 @@ require("core-js/modules/es.string.iterator.js");
19
23
  require("core-js/modules/web.dom-collections.iterator.js");
20
24
 
21
25
  exports.__esModule = true;
22
- exports.TopLeftCornerOverlay = void 0;
26
+ exports.TopInlineStartCornerOverlay = void 0;
23
27
 
24
- require("core-js/modules/es.object.set-prototype-of.js");
28
+ var _element = require("../../../../helpers/dom/element");
25
29
 
26
- require("core-js/modules/es.object.get-prototype-of.js");
27
-
28
- var _element = require("./../../../../helpers/dom/element");
29
-
30
- var _topLeftCorner = _interopRequireDefault(require("./../table/topLeftCorner"));
30
+ var _topInlineStartCorner = _interopRequireDefault(require("../table/topInlineStartCorner"));
31
31
 
32
32
  var _base = require("./_base");
33
33
 
@@ -35,7 +35,7 @@ var _constants = require("./constants");
35
35
 
36
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
37
 
38
- function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
38
+ function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
39
39
 
40
40
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
41
41
 
@@ -45,7 +45,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
45
45
 
46
46
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
47
47
 
48
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
48
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
49
49
 
50
50
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
51
51
 
@@ -55,26 +55,51 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
55
55
 
56
56
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
57
57
 
58
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
58
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
59
+
60
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
59
61
 
60
62
  /**
61
- * @class TopLeftCornerOverlay
63
+ * @class TopInlineStartCornerOverlay
62
64
  */
63
- var TopLeftCornerOverlay = /*#__PURE__*/function (_Overlay) {
64
- _inherits(TopLeftCornerOverlay, _Overlay);
65
+ var TopInlineStartCornerOverlay = /*#__PURE__*/function (_Overlay) {
66
+ _inherits(TopInlineStartCornerOverlay, _Overlay);
67
+
68
+ var _super = _createSuper(TopInlineStartCornerOverlay);
69
+
70
+ /**
71
+ * The instance of the Top overlay.
72
+ *
73
+ * @type {TopOverlay}
74
+ */
65
75
 
66
- var _super = _createSuper(TopLeftCornerOverlay);
76
+ /**
77
+ * The instance of the InlineStart overlay.
78
+ *
79
+ * @type {InlineStartOverlay}
80
+ */
67
81
 
68
82
  /**
69
- * @param {Walkontable} wotInstance The Walkontable instance.
83
+ * @param {Walkontable} wotInstance The Walkontable instance. @TODO refactoring: check if can be deleted.
84
+ * @param {FacadeGetter} facadeGetter Function which return proper facade.
85
+ * @param {Settings} wtSettings The Walkontable settings.
86
+ * @param {DomBindings} domBindings Dom elements bound to the current instance.
87
+ * @param {TopOverlay} topOverlay The instance of the Top overlay.
88
+ * @param {InlineStartOverlay} inlineStartOverlay The instance of the InlineStart overlay.
70
89
  */
71
- function TopLeftCornerOverlay(wotInstance) {
90
+ function TopInlineStartCornerOverlay(wotInstance, facadeGetter, wtSettings, domBindings, topOverlay, inlineStartOverlay) {
72
91
  var _this;
73
92
 
74
- _classCallCheck(this, TopLeftCornerOverlay);
93
+ _classCallCheck(this, TopInlineStartCornerOverlay);
75
94
 
76
- _this = _super.call(this, wotInstance);
77
- _this.clone = _this.makeClone(_constants.CLONE_TOP_LEFT_CORNER);
95
+ _this = _super.call(this, wotInstance, facadeGetter, _constants.CLONE_TOP_INLINE_START_CORNER, wtSettings, domBindings);
96
+
97
+ _defineProperty(_assertThisInitialized(_this), "topOverlay", void 0);
98
+
99
+ _defineProperty(_assertThisInitialized(_this), "inlineStartOverlay", void 0);
100
+
101
+ _this.topOverlay = topOverlay;
102
+ _this.inlineStartOverlay = inlineStartOverlay;
78
103
  return _this;
79
104
  }
80
105
  /**
@@ -82,18 +107,18 @@ var TopLeftCornerOverlay = /*#__PURE__*/function (_Overlay) {
82
107
  *
83
108
  * @see Table#constructor
84
109
  * @param {...*} args Parameters that will be forwarded to the `Table` constructor.
85
- * @returns {Table}
110
+ * @returns {TopInlineStartCornerOverlayTable}
86
111
  */
87
112
 
88
113
 
89
- _createClass(TopLeftCornerOverlay, [{
114
+ _createClass(TopInlineStartCornerOverlay, [{
90
115
  key: "createTable",
91
116
  value: function createTable() {
92
117
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
93
118
  args[_key] = arguments[_key];
94
119
  }
95
120
 
96
- return _construct(_topLeftCorner.default, args);
121
+ return _construct(_topInlineStartCorner.default, args);
97
122
  }
98
123
  /**
99
124
  * Checks if overlay should be fully rendered.
@@ -104,8 +129,7 @@ var TopLeftCornerOverlay = /*#__PURE__*/function (_Overlay) {
104
129
  }, {
105
130
  key: "shouldBeRendered",
106
131
  value: function shouldBeRendered() {
107
- var wot = this.wot;
108
- return wot.getSetting('shouldRenderTopOverlay') && wot.getSetting('shouldRenderLeftOverlay');
132
+ return this.wtSettings.getSetting('shouldRenderTopOverlay') && this.wtSettings.getSetting('shouldRenderInlineStartOverlay');
109
133
  }
110
134
  /**
111
135
  * Updates the corner overlay position.
@@ -120,35 +144,15 @@ var TopLeftCornerOverlay = /*#__PURE__*/function (_Overlay) {
120
144
 
121
145
  if (!this.wot.wtTable.holder.parentNode) {
122
146
  // removed from DOM
123
- return;
147
+ return false;
124
148
  }
125
149
 
126
150
  var overlayRoot = this.clone.wtTable.holder.parentNode;
127
- var preventOverflow = this.wot.getSetting('preventOverflow');
128
-
129
- if (this.trimmingContainer === this.wot.rootWindow) {
130
- var wtTable = this.wot.wtTable;
131
- var hiderRect = wtTable.hider.getBoundingClientRect();
132
- var top = Math.ceil(hiderRect.top);
133
- var left = Math.ceil(hiderRect.left);
134
- var bottom = Math.ceil(hiderRect.bottom);
135
- var right = Math.ceil(hiderRect.right);
136
- var finalLeft = '0';
137
- var finalTop = '0';
138
-
139
- if (!preventOverflow || preventOverflow === 'vertical') {
140
- if (left < 0 && right - overlayRoot.offsetWidth > 0) {
141
- finalLeft = "".concat(-left, "px");
142
- }
143
- }
144
-
145
- if (!preventOverflow || preventOverflow === 'horizontal') {
146
- if (top < 0 && bottom - overlayRoot.offsetHeight > 0) {
147
- finalTop = "".concat(-top, "px");
148
- }
149
- }
150
-
151
- (0, _element.setOverlayPosition)(overlayRoot, finalLeft, finalTop);
151
+
152
+ if (this.trimmingContainer === this.domBindings.rootWindow) {
153
+ var left = this.inlineStartOverlay.getOverlayOffset() * (this.isRtl() ? -1 : 1);
154
+ var top = this.topOverlay.getOverlayOffset();
155
+ (0, _element.setOverlayPosition)(overlayRoot, "".concat(left, "px"), "".concat(top, "px"));
152
156
  } else {
153
157
  (0, _element.resetCssTransform)(overlayRoot);
154
158
  }
@@ -164,14 +168,9 @@ var TopLeftCornerOverlay = /*#__PURE__*/function (_Overlay) {
164
168
  overlayRoot.style.width = "".concat(tableWidth, "px");
165
169
  return false;
166
170
  }
167
- }], [{
168
- key: "OVERLAY_NAME",
169
- get: function get() {
170
- return _constants.CLONE_TOP_LEFT_CORNER;
171
- }
172
171
  }]);
173
172
 
174
- return TopLeftCornerOverlay;
173
+ return TopInlineStartCornerOverlay;
175
174
  }(_base.Overlay);
176
175
 
177
- exports.TopLeftCornerOverlay = TopLeftCornerOverlay;
176
+ exports.TopInlineStartCornerOverlay = TopInlineStartCornerOverlay;