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
@@ -59,13 +59,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
59
59
 
60
60
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
61
61
 
62
- function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
62
+ function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
63
63
 
64
64
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
65
65
 
66
66
  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); }
67
67
 
68
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
68
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
69
69
 
70
70
  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); }; }
71
71
 
@@ -75,7 +75,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
75
75
 
76
76
  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; } }
77
77
 
78
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
78
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
79
79
 
80
80
  _pluginHooks.default.getSingleton().register('beforeColumnMove');
81
81
 
@@ -90,6 +90,8 @@ var CSS_PLUGIN = 'ht__manualColumnMove';
90
90
  var CSS_SHOW_UI = 'show-ui';
91
91
  var CSS_ON_MOVING = 'on-moving--columns';
92
92
  var CSS_AFTER_SELECTION = 'after-selection--columns';
93
+ /* eslint-disable jsdoc/require-description-complete-sentence */
94
+
93
95
  /**
94
96
  * @plugin ManualColumnMove
95
97
  * @class ManualColumnMove
@@ -216,7 +218,10 @@ var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
216
218
  _get(_getPrototypeOf(ManualColumnMove.prototype), "enablePlugin", this).call(this);
217
219
  }
218
220
  /**
219
- * Updates the plugin state. This method is executed when {@link Core#updateSettings} is invoked.
221
+ * Updates the plugin's state.
222
+ *
223
+ * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
224
+ * - [`manualColumnMove`](@/api/options.md#manualcolumnmove)
220
225
  */
221
226
 
222
227
  }, {
@@ -414,9 +419,9 @@ var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
414
419
  var renderableIndex = columnMapper.getRenderableFromVisualIndex(visualColumnIndex);
415
420
 
416
421
  if (visualColumnIndex < 0) {
417
- columnsWidth += this.hot.view.wt.wtViewport.getRowHeaderWidth() || 0;
422
+ columnsWidth += this.hot.view._wt.wtViewport.getRowHeaderWidth() || 0;
418
423
  } else if (renderableIndex !== null) {
419
- columnsWidth += this.hot.view.wt.wtTable.getStretchedColumnWidth(renderableIndex) || 0;
424
+ columnsWidth += this.hot.view._wt.wtTable.getStretchedColumnWidth(renderableIndex) || 0;
420
425
  }
421
426
  }
422
427
 
@@ -452,9 +457,9 @@ var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
452
457
  */
453
458
 
454
459
  }, {
455
- key: "isFixedColumnsLeft",
456
- value: function isFixedColumnsLeft(column) {
457
- return column < this.hot.getSettings().fixedColumnsLeft;
460
+ key: "isFixedColumnsStart",
461
+ value: function isFixedColumnsStart(column) {
462
+ return column < this.hot.getSettings().fixedColumnsStart;
458
463
  }
459
464
  /**
460
465
  * Saves the manual column positions to the persistent state (the {@link Options#persistentState} option has to be enabled).
@@ -511,89 +516,83 @@ var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
511
516
  key: "refreshPositions",
512
517
  value: function refreshPositions() {
513
518
  var priv = privatePool.get(this);
514
- var firstVisible = this.hot.view.wt.wtTable.getFirstVisibleColumn();
515
- var lastVisible = this.hot.view.wt.wtTable.getLastVisibleColumn();
516
- var wtTable = this.hot.view.wt.wtTable;
517
- var scrollableElement = this.hot.view.wt.wtOverlays.scrollableElement;
518
- var scrollLeft = typeof scrollableElement.scrollX === 'number' ? scrollableElement.scrollX : scrollableElement.scrollLeft;
519
- var tdOffsetLeft = this.hot.view.THEAD.offsetLeft + this.getColumnsWidth(0, priv.coords - 1);
520
- var mouseOffsetLeft = priv.target.eventPageX - (priv.rootElementOffset - (scrollableElement.scrollX === void 0 ? scrollLeft : 0)); // eslint-disable-line max-len
519
+ var firstVisible = this.hot.view.getFirstFullyVisibleColumn();
520
+
521
+ if (this.isFixedColumnsStart(priv.hoveredColumn) && firstVisible > 0) {
522
+ this.hot.scrollViewportTo(void 0, this.hot.columnIndexMapper.getNearestNotHiddenIndex(firstVisible - 1, -1));
523
+ }
521
524
 
525
+ var wtTable = this.hot.view._wt.wtTable;
526
+ var scrollableElement = this.hot.view._wt.wtOverlays.scrollableElement;
527
+ var scrollStart = typeof scrollableElement.scrollX === 'number' ? scrollableElement.scrollX : scrollableElement.scrollLeft;
528
+ var tdOffsetStart = this.hot.view.THEAD.offsetLeft + this.getColumnsWidth(0, priv.hoveredColumn - 1);
522
529
  var hiderWidth = wtTable.hider.offsetWidth;
523
530
  var tbodyOffsetLeft = wtTable.TBODY.offsetLeft;
524
- var backlightElemMarginLeft = this.backlight.getOffset().left;
531
+ var backlightElemMarginStart = this.backlight.getOffset().start;
525
532
  var backlightElemWidth = this.backlight.getSize().width;
526
533
  var rowHeaderWidth = 0;
534
+ var mouseOffsetStart = 0;
527
535
 
528
- if (priv.rootElementOffset + wtTable.holder.offsetWidth + scrollLeft < priv.target.eventPageX) {
529
- if (priv.coords < priv.countCols) {
530
- priv.coords += 1;
531
- }
536
+ if (this.hot.isRtl()) {
537
+ var rootWindow = this.hot.rootWindow;
538
+ var containerWidth = (0, _element.outerWidth)(this.hot.rootElement);
539
+ var gridMostRightPos = rootWindow.innerWidth - priv.rootElementOffset - containerWidth;
540
+ mouseOffsetStart = rootWindow.innerWidth - priv.target.eventPageX - gridMostRightPos - (scrollableElement.scrollX === void 0 ? scrollStart : 0);
541
+ } else {
542
+ mouseOffsetStart = priv.target.eventPageX - (priv.rootElementOffset - (scrollableElement.scrollX === void 0 ? scrollStart : 0));
532
543
  }
533
544
 
534
545
  if (priv.hasRowHeaders) {
535
- rowHeaderWidth = this.hot.view.wt.wtOverlays.leftOverlay.clone.wtTable.getColumnHeader(-1).offsetWidth;
546
+ rowHeaderWidth = this.hot.view._wt.wtOverlays.inlineStartOverlay.clone.wtTable.getColumnHeader(-1).offsetWidth;
536
547
  }
537
548
 
538
- if (this.isFixedColumnsLeft(priv.coords)) {
539
- tdOffsetLeft += scrollLeft;
549
+ if (this.isFixedColumnsStart(priv.hoveredColumn)) {
550
+ tdOffsetStart += scrollStart;
540
551
  }
541
552
 
542
- tdOffsetLeft += rowHeaderWidth;
553
+ tdOffsetStart += rowHeaderWidth;
543
554
 
544
- if (priv.coords < 0) {
555
+ if (priv.hoveredColumn < 0) {
545
556
  // if hover on rowHeader
546
- if (priv.fixedColumns > 0) {
557
+ if (priv.fixedColumnsStart > 0) {
547
558
  priv.target.col = 0;
548
559
  } else {
549
560
  priv.target.col = firstVisible > 0 ? firstVisible - 1 : firstVisible;
550
561
  }
551
- } else if (priv.target.TD.offsetWidth / 2 + tdOffsetLeft <= mouseOffsetLeft) {
552
- var newCoordsCol = priv.coords >= priv.countCols ? priv.countCols - 1 : priv.coords; // if hover on right part of TD
562
+ } else if (priv.target.TD.offsetWidth / 2 + tdOffsetStart <= mouseOffsetStart) {
563
+ var newCoordsCol = priv.hoveredColumn >= priv.countCols ? priv.countCols - 1 : priv.hoveredColumn; // if hover on right part of TD
553
564
 
554
565
  priv.target.col = newCoordsCol + 1; // unfortunately first column is bigger than rest
555
566
 
556
- tdOffsetLeft += priv.target.TD.offsetWidth;
557
-
558
- if (priv.target.col > lastVisible && lastVisible < priv.countCols) {
559
- this.hot.scrollViewportTo(void 0, lastVisible + 1, void 0, true);
560
- }
567
+ tdOffsetStart += priv.target.TD.offsetWidth;
561
568
  } else {
562
569
  // elsewhere on table
563
- priv.target.col = priv.coords;
564
-
565
- if (priv.target.col <= firstVisible && priv.target.col >= priv.fixedColumns && firstVisible > 0) {
566
- this.hot.scrollViewportTo(void 0, firstVisible - 1);
567
- }
568
- }
569
-
570
- if (priv.target.col <= firstVisible && priv.target.col >= priv.fixedColumns && firstVisible > 0) {
571
- this.hot.scrollViewportTo(void 0, firstVisible - 1);
570
+ priv.target.col = priv.hoveredColumn;
572
571
  }
573
572
 
574
- var backlightLeft = mouseOffsetLeft;
575
- var guidelineLeft = tdOffsetLeft;
573
+ var backlightStart = mouseOffsetStart;
574
+ var guidelineStart = tdOffsetStart;
576
575
 
577
- if (mouseOffsetLeft + backlightElemWidth + backlightElemMarginLeft >= hiderWidth) {
576
+ if (mouseOffsetStart + backlightElemWidth + backlightElemMarginStart >= hiderWidth) {
578
577
  // prevent display backlight on the right side of the table
579
- backlightLeft = hiderWidth - backlightElemWidth - backlightElemMarginLeft;
580
- } else if (mouseOffsetLeft + backlightElemMarginLeft < tbodyOffsetLeft + rowHeaderWidth) {
578
+ backlightStart = hiderWidth - backlightElemWidth - backlightElemMarginStart;
579
+ } else if (mouseOffsetStart + backlightElemMarginStart < tbodyOffsetLeft + rowHeaderWidth) {
581
580
  // prevent display backlight on the left side of the table
582
- backlightLeft = tbodyOffsetLeft + rowHeaderWidth + Math.abs(backlightElemMarginLeft);
581
+ backlightStart = tbodyOffsetLeft + rowHeaderWidth + Math.abs(backlightElemMarginStart);
583
582
  }
584
583
 
585
- if (tdOffsetLeft >= hiderWidth - 1) {
584
+ if (tdOffsetStart >= hiderWidth - 1) {
586
585
  // prevent display guideline outside the table
587
- guidelineLeft = hiderWidth - 1;
588
- } else if (guidelineLeft === 0) {
586
+ guidelineStart = hiderWidth - 1;
587
+ } else if (guidelineStart === 0) {
589
588
  // guideline has got `margin-left: -1px` as default
590
- guidelineLeft = 1;
591
- } else if (scrollableElement.scrollX !== void 0 && priv.coords < priv.fixedColumns) {
592
- guidelineLeft -= priv.rootElementOffset <= scrollableElement.scrollX ? priv.rootElementOffset : 0;
589
+ guidelineStart = 1;
590
+ } else if (scrollableElement.scrollX !== void 0 && priv.hoveredColumn < priv.fixedColumnsStart) {
591
+ guidelineStart -= priv.rootElementOffset <= scrollableElement.scrollX ? priv.rootElementOffset : 0;
593
592
  }
594
593
 
595
- this.backlight.setPosition(null, backlightLeft);
596
- this.guideline.setPosition(null, guidelineLeft);
594
+ this.backlight.setPosition(null, backlightStart);
595
+ this.guideline.setPosition(null, guidelineStart);
597
596
  }
598
597
  /**
599
598
  * Binds the events used by the plugin.
@@ -639,7 +638,7 @@ var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
639
638
  }, {
640
639
  key: "onBeforeOnCellMouseDown",
641
640
  value: function onBeforeOnCellMouseDown(event, coords, TD, controller) {
642
- var wtTable = this.hot.view.wt.wtTable;
641
+ var wtTable = this.hot.view._wt.wtTable;
643
642
  var isHeaderSelection = this.hot.selection.isSelectedByColumnHeader();
644
643
  var selection = this.hot.getSelectedRangeLast();
645
644
  var priv = privatePool.get(this); // This block action shouldn't be handled below.
@@ -670,24 +669,25 @@ var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
670
669
  controller.column = true;
671
670
  priv.pressed = true;
672
671
  priv.target.eventPageX = event.pageX;
673
- priv.coords = coords.col;
672
+ priv.target.eventOffsetX = event.offsetX;
673
+ priv.hoveredColumn = coords.col;
674
674
  priv.target.TD = TD;
675
675
  priv.target.col = coords.col;
676
676
  priv.columnsToMove = this.prepareColumnsToMoving(start, end);
677
677
  priv.hasRowHeaders = !!this.hot.getSettings().rowHeaders;
678
678
  priv.countCols = this.hot.countCols();
679
- priv.fixedColumns = this.hot.getSettings().fixedColumnsLeft;
679
+ priv.fixedColumnsStart = this.hot.getSettings().fixedColumnsStart;
680
680
  priv.rootElementOffset = (0, _element.offset)(this.hot.rootElement).left;
681
681
  var countColumnsFrom = priv.hasRowHeaders ? -1 : 0;
682
682
  var topPos = wtTable.holder.scrollTop + wtTable.getColumnHeaderHeight(0) + 1;
683
- var fixedColumns = coords.col < priv.fixedColumns;
684
- var scrollableElement = this.hot.view.wt.wtOverlays.scrollableElement;
685
- var wrapperIsWindow = scrollableElement.scrollX ? scrollableElement.scrollX - priv.rootElementOffset : 0;
686
- var mouseOffset = event.offsetX - (fixedColumns ? wrapperIsWindow : 0);
687
- var leftOffset = Math.abs(this.getColumnsWidth(start, coords.col - 1) + mouseOffset);
688
- this.backlight.setPosition(topPos, this.getColumnsWidth(countColumnsFrom, start - 1) + leftOffset);
683
+ var fixedColumnsStart = coords.col < priv.fixedColumnsStart;
684
+ var horizontalScrollPosition = Math.abs(this.hot.view._wt.wtOverlays.inlineStartOverlay.getScrollPosition());
685
+ var offsetX = Math.abs(event.offsetX - (this.hot.isRtl() ? event.target.offsetWidth : 0));
686
+ var inlineOffset = this.getColumnsWidth(start, coords.col - 1) + offsetX;
687
+ var inlinePos = this.getColumnsWidth(countColumnsFrom, start - 1) + (fixedColumnsStart ? horizontalScrollPosition : 0) + inlineOffset;
688
+ this.backlight.setPosition(topPos, inlinePos);
689
689
  this.backlight.setSize(this.getColumnsWidth(start, end), wtTable.hider.offsetHeight - topPos);
690
- this.backlight.setOffset(null, leftOffset * -1);
690
+ this.backlight.setOffset(null, -inlineOffset);
691
691
  (0, _element.addClass)(this.hot.rootElement, CSS_ON_MOVING);
692
692
  } else {
693
693
  (0, _element.removeClass)(this.hot.rootElement, CSS_AFTER_SELECTION);
@@ -753,7 +753,7 @@ var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
753
753
  controller.row = true;
754
754
  controller.column = true;
755
755
  controller.cell = true;
756
- priv.coords = coords.col;
756
+ priv.hoveredColumn = coords.col;
757
757
  priv.target.TD = TD;
758
758
  }
759
759
  /**
@@ -768,7 +768,7 @@ var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
768
768
  var priv = privatePool.get(this);
769
769
  var target = priv.target.col;
770
770
  var columnsLen = priv.columnsToMove.length;
771
- priv.coords = void 0;
771
+ priv.hoveredColumn = void 0;
772
772
  priv.pressed = false;
773
773
  priv.backlightWidth = 0;
774
774
  (0, _element.removeClass)(this.hot.rootElement, [CSS_ON_MOVING, CSS_SHOW_UI, CSS_AFTER_SELECTION]);
@@ -804,7 +804,7 @@ var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
804
804
  }, {
805
805
  key: "onAfterScrollVertically",
806
806
  value: function onAfterScrollVertically() {
807
- var wtTable = this.hot.view.wt.wtTable;
807
+ var wtTable = this.hot.view._wt.wtTable;
808
808
  var headerHeight = wtTable.getColumnHeaderHeight(0) + 1;
809
809
  var scrollTop = wtTable.holder.scrollTop;
810
810
  var posTop = headerHeight + scrollTop;
@@ -6,13 +6,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
6
6
 
7
7
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
8
 
9
- function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
9
+ function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
10
10
 
11
11
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
12
12
 
13
13
  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); }
14
14
 
15
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
15
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
16
16
 
17
17
  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); }; }
18
18
 
@@ -22,7 +22,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
22
22
 
23
23
  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; } }
24
24
 
25
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
25
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
26
26
 
27
27
  import "core-js/modules/es.array.iterator.js";
28
28
  import "core-js/modules/es.object.to-string.js";
@@ -42,7 +42,7 @@ import "core-js/modules/es.symbol.iterator.js";
42
42
  import { BasePlugin } from "../base/index.mjs";
43
43
  import Hooks from "../../pluginHooks.mjs";
44
44
  import { arrayReduce } from "../../helpers/array.mjs";
45
- import { addClass, removeClass, offset, hasClass } from "../../helpers/dom/element.mjs";
45
+ import { addClass, removeClass, offset, hasClass, outerWidth } from "../../helpers/dom/element.mjs";
46
46
  import { rangeEach } from "../../helpers/number.mjs";
47
47
  import EventManager from "../../eventManager.mjs";
48
48
  import BacklightUI from "./ui/backlight.mjs";
@@ -56,6 +56,8 @@ var CSS_PLUGIN = 'ht__manualColumnMove';
56
56
  var CSS_SHOW_UI = 'show-ui';
57
57
  var CSS_ON_MOVING = 'on-moving--columns';
58
58
  var CSS_AFTER_SELECTION = 'after-selection--columns';
59
+ /* eslint-disable jsdoc/require-description-complete-sentence */
60
+
59
61
  /**
60
62
  * @plugin ManualColumnMove
61
63
  * @class ManualColumnMove
@@ -182,7 +184,10 @@ export var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
182
184
  _get(_getPrototypeOf(ManualColumnMove.prototype), "enablePlugin", this).call(this);
183
185
  }
184
186
  /**
185
- * Updates the plugin state. This method is executed when {@link Core#updateSettings} is invoked.
187
+ * Updates the plugin's state.
188
+ *
189
+ * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
190
+ * - [`manualColumnMove`](@/api/options.md#manualcolumnmove)
186
191
  */
187
192
 
188
193
  }, {
@@ -380,9 +385,9 @@ export var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
380
385
  var renderableIndex = columnMapper.getRenderableFromVisualIndex(visualColumnIndex);
381
386
 
382
387
  if (visualColumnIndex < 0) {
383
- columnsWidth += this.hot.view.wt.wtViewport.getRowHeaderWidth() || 0;
388
+ columnsWidth += this.hot.view._wt.wtViewport.getRowHeaderWidth() || 0;
384
389
  } else if (renderableIndex !== null) {
385
- columnsWidth += this.hot.view.wt.wtTable.getStretchedColumnWidth(renderableIndex) || 0;
390
+ columnsWidth += this.hot.view._wt.wtTable.getStretchedColumnWidth(renderableIndex) || 0;
386
391
  }
387
392
  }
388
393
 
@@ -418,9 +423,9 @@ export var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
418
423
  */
419
424
 
420
425
  }, {
421
- key: "isFixedColumnsLeft",
422
- value: function isFixedColumnsLeft(column) {
423
- return column < this.hot.getSettings().fixedColumnsLeft;
426
+ key: "isFixedColumnsStart",
427
+ value: function isFixedColumnsStart(column) {
428
+ return column < this.hot.getSettings().fixedColumnsStart;
424
429
  }
425
430
  /**
426
431
  * Saves the manual column positions to the persistent state (the {@link Options#persistentState} option has to be enabled).
@@ -477,89 +482,83 @@ export var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
477
482
  key: "refreshPositions",
478
483
  value: function refreshPositions() {
479
484
  var priv = privatePool.get(this);
480
- var firstVisible = this.hot.view.wt.wtTable.getFirstVisibleColumn();
481
- var lastVisible = this.hot.view.wt.wtTable.getLastVisibleColumn();
482
- var wtTable = this.hot.view.wt.wtTable;
483
- var scrollableElement = this.hot.view.wt.wtOverlays.scrollableElement;
484
- var scrollLeft = typeof scrollableElement.scrollX === 'number' ? scrollableElement.scrollX : scrollableElement.scrollLeft;
485
- var tdOffsetLeft = this.hot.view.THEAD.offsetLeft + this.getColumnsWidth(0, priv.coords - 1);
486
- var mouseOffsetLeft = priv.target.eventPageX - (priv.rootElementOffset - (scrollableElement.scrollX === void 0 ? scrollLeft : 0)); // eslint-disable-line max-len
485
+ var firstVisible = this.hot.view.getFirstFullyVisibleColumn();
486
+
487
+ if (this.isFixedColumnsStart(priv.hoveredColumn) && firstVisible > 0) {
488
+ this.hot.scrollViewportTo(void 0, this.hot.columnIndexMapper.getNearestNotHiddenIndex(firstVisible - 1, -1));
489
+ }
487
490
 
491
+ var wtTable = this.hot.view._wt.wtTable;
492
+ var scrollableElement = this.hot.view._wt.wtOverlays.scrollableElement;
493
+ var scrollStart = typeof scrollableElement.scrollX === 'number' ? scrollableElement.scrollX : scrollableElement.scrollLeft;
494
+ var tdOffsetStart = this.hot.view.THEAD.offsetLeft + this.getColumnsWidth(0, priv.hoveredColumn - 1);
488
495
  var hiderWidth = wtTable.hider.offsetWidth;
489
496
  var tbodyOffsetLeft = wtTable.TBODY.offsetLeft;
490
- var backlightElemMarginLeft = this.backlight.getOffset().left;
497
+ var backlightElemMarginStart = this.backlight.getOffset().start;
491
498
  var backlightElemWidth = this.backlight.getSize().width;
492
499
  var rowHeaderWidth = 0;
500
+ var mouseOffsetStart = 0;
493
501
 
494
- if (priv.rootElementOffset + wtTable.holder.offsetWidth + scrollLeft < priv.target.eventPageX) {
495
- if (priv.coords < priv.countCols) {
496
- priv.coords += 1;
497
- }
502
+ if (this.hot.isRtl()) {
503
+ var rootWindow = this.hot.rootWindow;
504
+ var containerWidth = outerWidth(this.hot.rootElement);
505
+ var gridMostRightPos = rootWindow.innerWidth - priv.rootElementOffset - containerWidth;
506
+ mouseOffsetStart = rootWindow.innerWidth - priv.target.eventPageX - gridMostRightPos - (scrollableElement.scrollX === void 0 ? scrollStart : 0);
507
+ } else {
508
+ mouseOffsetStart = priv.target.eventPageX - (priv.rootElementOffset - (scrollableElement.scrollX === void 0 ? scrollStart : 0));
498
509
  }
499
510
 
500
511
  if (priv.hasRowHeaders) {
501
- rowHeaderWidth = this.hot.view.wt.wtOverlays.leftOverlay.clone.wtTable.getColumnHeader(-1).offsetWidth;
512
+ rowHeaderWidth = this.hot.view._wt.wtOverlays.inlineStartOverlay.clone.wtTable.getColumnHeader(-1).offsetWidth;
502
513
  }
503
514
 
504
- if (this.isFixedColumnsLeft(priv.coords)) {
505
- tdOffsetLeft += scrollLeft;
515
+ if (this.isFixedColumnsStart(priv.hoveredColumn)) {
516
+ tdOffsetStart += scrollStart;
506
517
  }
507
518
 
508
- tdOffsetLeft += rowHeaderWidth;
519
+ tdOffsetStart += rowHeaderWidth;
509
520
 
510
- if (priv.coords < 0) {
521
+ if (priv.hoveredColumn < 0) {
511
522
  // if hover on rowHeader
512
- if (priv.fixedColumns > 0) {
523
+ if (priv.fixedColumnsStart > 0) {
513
524
  priv.target.col = 0;
514
525
  } else {
515
526
  priv.target.col = firstVisible > 0 ? firstVisible - 1 : firstVisible;
516
527
  }
517
- } else if (priv.target.TD.offsetWidth / 2 + tdOffsetLeft <= mouseOffsetLeft) {
518
- var newCoordsCol = priv.coords >= priv.countCols ? priv.countCols - 1 : priv.coords; // if hover on right part of TD
528
+ } else if (priv.target.TD.offsetWidth / 2 + tdOffsetStart <= mouseOffsetStart) {
529
+ var newCoordsCol = priv.hoveredColumn >= priv.countCols ? priv.countCols - 1 : priv.hoveredColumn; // if hover on right part of TD
519
530
 
520
531
  priv.target.col = newCoordsCol + 1; // unfortunately first column is bigger than rest
521
532
 
522
- tdOffsetLeft += priv.target.TD.offsetWidth;
523
-
524
- if (priv.target.col > lastVisible && lastVisible < priv.countCols) {
525
- this.hot.scrollViewportTo(void 0, lastVisible + 1, void 0, true);
526
- }
533
+ tdOffsetStart += priv.target.TD.offsetWidth;
527
534
  } else {
528
535
  // elsewhere on table
529
- priv.target.col = priv.coords;
530
-
531
- if (priv.target.col <= firstVisible && priv.target.col >= priv.fixedColumns && firstVisible > 0) {
532
- this.hot.scrollViewportTo(void 0, firstVisible - 1);
533
- }
534
- }
535
-
536
- if (priv.target.col <= firstVisible && priv.target.col >= priv.fixedColumns && firstVisible > 0) {
537
- this.hot.scrollViewportTo(void 0, firstVisible - 1);
536
+ priv.target.col = priv.hoveredColumn;
538
537
  }
539
538
 
540
- var backlightLeft = mouseOffsetLeft;
541
- var guidelineLeft = tdOffsetLeft;
539
+ var backlightStart = mouseOffsetStart;
540
+ var guidelineStart = tdOffsetStart;
542
541
 
543
- if (mouseOffsetLeft + backlightElemWidth + backlightElemMarginLeft >= hiderWidth) {
542
+ if (mouseOffsetStart + backlightElemWidth + backlightElemMarginStart >= hiderWidth) {
544
543
  // prevent display backlight on the right side of the table
545
- backlightLeft = hiderWidth - backlightElemWidth - backlightElemMarginLeft;
546
- } else if (mouseOffsetLeft + backlightElemMarginLeft < tbodyOffsetLeft + rowHeaderWidth) {
544
+ backlightStart = hiderWidth - backlightElemWidth - backlightElemMarginStart;
545
+ } else if (mouseOffsetStart + backlightElemMarginStart < tbodyOffsetLeft + rowHeaderWidth) {
547
546
  // prevent display backlight on the left side of the table
548
- backlightLeft = tbodyOffsetLeft + rowHeaderWidth + Math.abs(backlightElemMarginLeft);
547
+ backlightStart = tbodyOffsetLeft + rowHeaderWidth + Math.abs(backlightElemMarginStart);
549
548
  }
550
549
 
551
- if (tdOffsetLeft >= hiderWidth - 1) {
550
+ if (tdOffsetStart >= hiderWidth - 1) {
552
551
  // prevent display guideline outside the table
553
- guidelineLeft = hiderWidth - 1;
554
- } else if (guidelineLeft === 0) {
552
+ guidelineStart = hiderWidth - 1;
553
+ } else if (guidelineStart === 0) {
555
554
  // guideline has got `margin-left: -1px` as default
556
- guidelineLeft = 1;
557
- } else if (scrollableElement.scrollX !== void 0 && priv.coords < priv.fixedColumns) {
558
- guidelineLeft -= priv.rootElementOffset <= scrollableElement.scrollX ? priv.rootElementOffset : 0;
555
+ guidelineStart = 1;
556
+ } else if (scrollableElement.scrollX !== void 0 && priv.hoveredColumn < priv.fixedColumnsStart) {
557
+ guidelineStart -= priv.rootElementOffset <= scrollableElement.scrollX ? priv.rootElementOffset : 0;
559
558
  }
560
559
 
561
- this.backlight.setPosition(null, backlightLeft);
562
- this.guideline.setPosition(null, guidelineLeft);
560
+ this.backlight.setPosition(null, backlightStart);
561
+ this.guideline.setPosition(null, guidelineStart);
563
562
  }
564
563
  /**
565
564
  * Binds the events used by the plugin.
@@ -605,7 +604,7 @@ export var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
605
604
  }, {
606
605
  key: "onBeforeOnCellMouseDown",
607
606
  value: function onBeforeOnCellMouseDown(event, coords, TD, controller) {
608
- var wtTable = this.hot.view.wt.wtTable;
607
+ var wtTable = this.hot.view._wt.wtTable;
609
608
  var isHeaderSelection = this.hot.selection.isSelectedByColumnHeader();
610
609
  var selection = this.hot.getSelectedRangeLast();
611
610
  var priv = privatePool.get(this); // This block action shouldn't be handled below.
@@ -636,24 +635,25 @@ export var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
636
635
  controller.column = true;
637
636
  priv.pressed = true;
638
637
  priv.target.eventPageX = event.pageX;
639
- priv.coords = coords.col;
638
+ priv.target.eventOffsetX = event.offsetX;
639
+ priv.hoveredColumn = coords.col;
640
640
  priv.target.TD = TD;
641
641
  priv.target.col = coords.col;
642
642
  priv.columnsToMove = this.prepareColumnsToMoving(start, end);
643
643
  priv.hasRowHeaders = !!this.hot.getSettings().rowHeaders;
644
644
  priv.countCols = this.hot.countCols();
645
- priv.fixedColumns = this.hot.getSettings().fixedColumnsLeft;
645
+ priv.fixedColumnsStart = this.hot.getSettings().fixedColumnsStart;
646
646
  priv.rootElementOffset = offset(this.hot.rootElement).left;
647
647
  var countColumnsFrom = priv.hasRowHeaders ? -1 : 0;
648
648
  var topPos = wtTable.holder.scrollTop + wtTable.getColumnHeaderHeight(0) + 1;
649
- var fixedColumns = coords.col < priv.fixedColumns;
650
- var scrollableElement = this.hot.view.wt.wtOverlays.scrollableElement;
651
- var wrapperIsWindow = scrollableElement.scrollX ? scrollableElement.scrollX - priv.rootElementOffset : 0;
652
- var mouseOffset = event.offsetX - (fixedColumns ? wrapperIsWindow : 0);
653
- var leftOffset = Math.abs(this.getColumnsWidth(start, coords.col - 1) + mouseOffset);
654
- this.backlight.setPosition(topPos, this.getColumnsWidth(countColumnsFrom, start - 1) + leftOffset);
649
+ var fixedColumnsStart = coords.col < priv.fixedColumnsStart;
650
+ var horizontalScrollPosition = Math.abs(this.hot.view._wt.wtOverlays.inlineStartOverlay.getScrollPosition());
651
+ var offsetX = Math.abs(event.offsetX - (this.hot.isRtl() ? event.target.offsetWidth : 0));
652
+ var inlineOffset = this.getColumnsWidth(start, coords.col - 1) + offsetX;
653
+ var inlinePos = this.getColumnsWidth(countColumnsFrom, start - 1) + (fixedColumnsStart ? horizontalScrollPosition : 0) + inlineOffset;
654
+ this.backlight.setPosition(topPos, inlinePos);
655
655
  this.backlight.setSize(this.getColumnsWidth(start, end), wtTable.hider.offsetHeight - topPos);
656
- this.backlight.setOffset(null, leftOffset * -1);
656
+ this.backlight.setOffset(null, -inlineOffset);
657
657
  addClass(this.hot.rootElement, CSS_ON_MOVING);
658
658
  } else {
659
659
  removeClass(this.hot.rootElement, CSS_AFTER_SELECTION);
@@ -719,7 +719,7 @@ export var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
719
719
  controller.row = true;
720
720
  controller.column = true;
721
721
  controller.cell = true;
722
- priv.coords = coords.col;
722
+ priv.hoveredColumn = coords.col;
723
723
  priv.target.TD = TD;
724
724
  }
725
725
  /**
@@ -734,7 +734,7 @@ export var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
734
734
  var priv = privatePool.get(this);
735
735
  var target = priv.target.col;
736
736
  var columnsLen = priv.columnsToMove.length;
737
- priv.coords = void 0;
737
+ priv.hoveredColumn = void 0;
738
738
  priv.pressed = false;
739
739
  priv.backlightWidth = 0;
740
740
  removeClass(this.hot.rootElement, [CSS_ON_MOVING, CSS_SHOW_UI, CSS_AFTER_SELECTION]);
@@ -770,7 +770,7 @@ export var ManualColumnMove = /*#__PURE__*/function (_BasePlugin) {
770
770
  }, {
771
771
  key: "onAfterScrollVertically",
772
772
  value: function onAfterScrollVertically() {
773
- var wtTable = this.hot.view.wt.wtTable;
773
+ var wtTable = this.hot.view._wt.wtTable;
774
774
  var headerHeight = wtTable.getColumnHeaderHeight(0) + 1;
775
775
  var scrollTop = wtTable.holder.scrollTop;
776
776
  var posTop = headerHeight + scrollTop;