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
@@ -1,22 +1,56 @@
1
+ import "core-js/modules/es.number.is-integer.js";
2
+ import "core-js/modules/es.number.constructor.js";
3
+
1
4
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2
5
 
3
6
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
4
7
 
5
8
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
6
9
 
7
- import { innerHeight, innerWidth, getScrollLeft, getScrollTop, offset } from "./../../../helpers/dom/element.mjs";
10
+ 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; }
11
+
12
+ import { innerHeight, innerWidth, getScrollLeft, getScrollTop, offset } from "../../../helpers/dom/element.mjs";
8
13
  /**
9
14
  * @class Scroll
10
15
  */
11
16
 
12
17
  var Scroll = /*#__PURE__*/function () {
13
18
  /**
14
- * @param {Walkontable} wotInstance The Walkontable instance.
19
+ * The data access object.
20
+ *
21
+ * @protected
22
+ * @type {ScrollDao}
23
+ */
24
+
25
+ /**
26
+ * Holds the last column reached by the scroll, which determines the scroll snapping direction
27
+ * (left or right) for a next horizontal scroll.
28
+ *
29
+ * @protected
30
+ * @type {number}
31
+ */
32
+
33
+ /**
34
+ * Holds the last row reached by the scroll, which determines the scroll snapping direction
35
+ * (top or bottom) for a next vertical scroll.
36
+ *
37
+ * @protected
38
+ * @type {number}
15
39
  */
16
- function Scroll(wotInstance) {
40
+
41
+ /**
42
+ * @param {ScrollDao} dataAccessObject Tha data access object.
43
+ */
44
+ function Scroll(dataAccessObject) {
17
45
  _classCallCheck(this, Scroll);
18
46
 
19
- this.wot = wotInstance;
47
+ _defineProperty(this, "dataAccessObject", void 0);
48
+
49
+ _defineProperty(this, "lastScrolledColumnPos", -1);
50
+
51
+ _defineProperty(this, "lastScrolledRowPos", -1);
52
+
53
+ this.dataAccessObject = dataAccessObject;
20
54
  }
21
55
  /**
22
56
  * Scrolls viewport to a cell.
@@ -33,10 +67,6 @@ var Scroll = /*#__PURE__*/function () {
33
67
  _createClass(Scroll, [{
34
68
  key: "scrollViewport",
35
69
  value: function scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft) {
36
- if (coords.col < 0 || coords.row < 0) {
37
- return false;
38
- }
39
-
40
70
  var scrolledHorizontally = this.scrollViewportHorizontally(coords.col, snapToRight, snapToLeft);
41
71
  var scrolledVertically = this.scrollViewportVertically(coords.row, snapToTop, snapToBottom);
42
72
  return scrolledHorizontally || scrolledVertically;
@@ -53,26 +83,39 @@ var Scroll = /*#__PURE__*/function () {
53
83
  }, {
54
84
  key: "scrollViewportHorizontally",
55
85
  value: function scrollViewportHorizontally(column, snapToRight, snapToLeft) {
56
- if (!this.wot.drawn) {
86
+ var _this$dataAccessObjec = this.dataAccessObject,
87
+ drawn = _this$dataAccessObjec.drawn,
88
+ totalColumns = _this$dataAccessObjec.totalColumns; // do not scroll the viewport when the column points to a range outside of the dataset
89
+
90
+ if (!drawn || !Number.isInteger(column) || column < 0 || column > totalColumns) {
57
91
  return false;
58
92
  }
59
93
 
60
- var _this$_getVariables = this._getVariables(),
61
- fixedColumnsLeft = _this$_getVariables.fixedColumnsLeft,
62
- leftOverlay = _this$_getVariables.leftOverlay,
63
- totalColumns = _this$_getVariables.totalColumns;
94
+ var firstVisibleColumn = this.getFirstVisibleColumn();
95
+ var lastVisibleColumn = this.getLastVisibleColumn();
96
+ var autoSnapping = snapToRight === void 0 && snapToLeft === void 0;
97
+ var _this$dataAccessObjec2 = this.dataAccessObject,
98
+ fixedColumnsStart = _this$dataAccessObjec2.fixedColumnsStart,
99
+ inlineStartOverlay = _this$dataAccessObjec2.inlineStartOverlay; // for auto-snapping (both snap* arguments are undefined) do not scroll the viewport
100
+ // when the columns points to the overlays
64
101
 
65
- var result = false;
102
+ if (autoSnapping && column < fixedColumnsStart) {
103
+ return false;
104
+ }
66
105
 
67
- if (column >= 0 && column <= Math.max(totalColumns - 1, 0)) {
68
- var firstVisibleColumn = this.getFirstVisibleColumn();
69
- var lastVisibleColumn = this.getLastVisibleColumn();
106
+ var result = false; // if there is no fully visible columns use the supporting variable (lastScrolledColumnPos) to
107
+ // determine the snapping direction (left or right)
70
108
 
71
- if (column >= fixedColumnsLeft && firstVisibleColumn > -1 && (column < firstVisibleColumn || snapToLeft)) {
72
- result = leftOverlay.scrollTo(column);
73
- } else if (lastVisibleColumn === -1 || lastVisibleColumn > -1 && (column > lastVisibleColumn || snapToRight)) {
74
- result = leftOverlay.scrollTo(column, true);
75
- }
109
+ if (firstVisibleColumn === -1) {
110
+ result = inlineStartOverlay.scrollTo(column, autoSnapping ? column > this.lastScrolledColumnPos : snapToRight);
111
+ } else if (autoSnapping && (column < firstVisibleColumn || column > lastVisibleColumn) || !autoSnapping) {
112
+ // if there is at least one fully visible column determine the snapping direction based on
113
+ // that columns or by snapToRight/snapToLeft flags, if provided.
114
+ result = inlineStartOverlay.scrollTo(column, autoSnapping ? column > lastVisibleColumn : snapToRight);
115
+ }
116
+
117
+ if (result) {
118
+ this.lastScrolledColumnPos = column;
76
119
  }
77
120
 
78
121
  return result;
@@ -89,27 +132,40 @@ var Scroll = /*#__PURE__*/function () {
89
132
  }, {
90
133
  key: "scrollViewportVertically",
91
134
  value: function scrollViewportVertically(row, snapToTop, snapToBottom) {
92
- if (!this.wot.drawn) {
135
+ var _this$dataAccessObjec3 = this.dataAccessObject,
136
+ drawn = _this$dataAccessObjec3.drawn,
137
+ totalRows = _this$dataAccessObjec3.totalRows; // do not scroll the viewport when the row points to a range outside of the dataset
138
+
139
+ if (!drawn || !Number.isInteger(row) || row < 0 || row > totalRows) {
93
140
  return false;
94
141
  }
95
142
 
96
- var _this$_getVariables2 = this._getVariables(),
97
- fixedRowsBottom = _this$_getVariables2.fixedRowsBottom,
98
- fixedRowsTop = _this$_getVariables2.fixedRowsTop,
99
- topOverlay = _this$_getVariables2.topOverlay,
100
- totalRows = _this$_getVariables2.totalRows;
143
+ var firstVisibleRow = this.getFirstVisibleRow();
144
+ var lastVisibleRow = this.getLastVisibleRow();
145
+ var autoSnapping = snapToTop === void 0 && snapToBottom === void 0;
146
+ var _this$dataAccessObjec4 = this.dataAccessObject,
147
+ fixedRowsBottom = _this$dataAccessObjec4.fixedRowsBottom,
148
+ fixedRowsTop = _this$dataAccessObjec4.fixedRowsTop,
149
+ topOverlay = _this$dataAccessObjec4.topOverlay; // for auto-snapping (both snap* arguments are undefined) do not scroll the viewport
150
+ // when the rows points to the overlays
101
151
 
102
- var result = false;
152
+ if (autoSnapping && (row < fixedRowsTop || row > totalRows - fixedRowsBottom - 1)) {
153
+ return false;
154
+ }
103
155
 
104
- if (row >= 0 && row <= Math.max(totalRows - 1, 0)) {
105
- var firstVisibleRow = this.getFirstVisibleRow();
106
- var lastVisibleRow = this.getLastVisibleRow();
156
+ var result = false; // if there is no fully visible rows use the supporting variable (lastScrolledRowPos) to
157
+ // determine the snapping direction (top or bottom)
107
158
 
108
- if (row >= fixedRowsTop && firstVisibleRow > -1 && (row < firstVisibleRow || snapToTop)) {
109
- result = topOverlay.scrollTo(row);
110
- } else if (lastVisibleRow === -1 || lastVisibleRow > -1 && (row > lastVisibleRow && row < totalRows - fixedRowsBottom || snapToBottom)) {
111
- result = topOverlay.scrollTo(row, true);
112
- }
159
+ if (firstVisibleRow === -1) {
160
+ result = topOverlay.scrollTo(row, autoSnapping ? row > this.lastScrolledRowPos : snapToBottom);
161
+ } else if (autoSnapping && (row < firstVisibleRow || row > lastVisibleRow) || !autoSnapping) {
162
+ // if there is at least one fully visible row determine the snapping direction based on
163
+ // that rows or by snapToTop/snapToBottom flags, if provided.
164
+ result = topOverlay.scrollTo(row, autoSnapping ? row > lastVisibleRow : snapToBottom);
165
+ }
166
+
167
+ if (result) {
168
+ this.lastScrolledRowPos = row;
113
169
  }
114
170
 
115
171
  return result;
@@ -123,14 +179,13 @@ var Scroll = /*#__PURE__*/function () {
123
179
  }, {
124
180
  key: "getFirstVisibleRow",
125
181
  value: function getFirstVisibleRow() {
126
- var _this$_getVariables3 = this._getVariables(),
127
- topOverlay = _this$_getVariables3.topOverlay,
128
- wtTable = _this$_getVariables3.wtTable,
129
- wtViewport = _this$_getVariables3.wtViewport,
130
- totalRows = _this$_getVariables3.totalRows,
131
- fixedRowsTop = _this$_getVariables3.fixedRowsTop;
132
-
133
- var rootWindow = this.wot.rootWindow;
182
+ var _this$dataAccessObjec5 = this.dataAccessObject,
183
+ topOverlay = _this$dataAccessObjec5.topOverlay,
184
+ wtTable = _this$dataAccessObjec5.wtTable,
185
+ wtViewport = _this$dataAccessObjec5.wtViewport,
186
+ totalRows = _this$dataAccessObjec5.totalRows,
187
+ fixedRowsTop = _this$dataAccessObjec5.fixedRowsTop,
188
+ rootWindow = _this$dataAccessObjec5.rootWindow;
134
189
  var firstVisibleRow = wtTable.getFirstVisibleRow();
135
190
 
136
191
  if (topOverlay.mainTableScrollableElement === rootWindow) {
@@ -166,13 +221,12 @@ var Scroll = /*#__PURE__*/function () {
166
221
  }, {
167
222
  key: "getLastVisibleRow",
168
223
  value: function getLastVisibleRow() {
169
- var _this$_getVariables4 = this._getVariables(),
170
- topOverlay = _this$_getVariables4.topOverlay,
171
- wtTable = _this$_getVariables4.wtTable,
172
- wtViewport = _this$_getVariables4.wtViewport,
173
- totalRows = _this$_getVariables4.totalRows;
174
-
175
- var rootWindow = this.wot.rootWindow;
224
+ var _this$dataAccessObjec6 = this.dataAccessObject,
225
+ topOverlay = _this$dataAccessObjec6.topOverlay,
226
+ wtTable = _this$dataAccessObjec6.wtTable,
227
+ wtViewport = _this$dataAccessObjec6.wtViewport,
228
+ totalRows = _this$dataAccessObjec6.totalRows,
229
+ rootWindow = _this$dataAccessObjec6.rootWindow;
176
230
  var lastVisibleRow = wtTable.getLastVisibleRow();
177
231
 
178
232
  if (topOverlay.mainTableScrollableElement === rootWindow) {
@@ -206,26 +260,25 @@ var Scroll = /*#__PURE__*/function () {
206
260
  }, {
207
261
  key: "getFirstVisibleColumn",
208
262
  value: function getFirstVisibleColumn() {
209
- var _this$_getVariables5 = this._getVariables(),
210
- leftOverlay = _this$_getVariables5.leftOverlay,
211
- wtTable = _this$_getVariables5.wtTable,
212
- wtViewport = _this$_getVariables5.wtViewport,
213
- totalColumns = _this$_getVariables5.totalColumns;
214
-
215
- var rootWindow = this.wot.rootWindow;
263
+ var _this$dataAccessObjec7 = this.dataAccessObject,
264
+ inlineStartOverlay = _this$dataAccessObjec7.inlineStartOverlay,
265
+ wtTable = _this$dataAccessObjec7.wtTable,
266
+ wtViewport = _this$dataAccessObjec7.wtViewport,
267
+ totalColumns = _this$dataAccessObjec7.totalColumns,
268
+ rootWindow = _this$dataAccessObjec7.rootWindow;
216
269
  var firstVisibleColumn = wtTable.getFirstVisibleColumn();
217
270
 
218
- if (leftOverlay.mainTableScrollableElement === rootWindow) {
271
+ if (inlineStartOverlay.mainTableScrollableElement === rootWindow) {
219
272
  var rootElementOffset = offset(wtTable.wtRootElement);
220
273
  var totalTableWidth = innerWidth(wtTable.hider);
221
274
  var windowWidth = innerWidth(rootWindow);
222
- var windowScrollLeft = getScrollLeft(rootWindow, rootWindow); // Only calculate firstVisibleColumn when table didn't filled (from left) whole viewport space
275
+ var windowScrollLeft = Math.abs(getScrollLeft(rootWindow, rootWindow)); // Only calculate firstVisibleColumn when table didn't filled (from left) whole viewport space
223
276
 
224
277
  if (rootElementOffset.left + totalTableWidth - windowWidth <= windowScrollLeft) {
225
278
  var columnsWidth = wtViewport.getRowHeaderWidth();
226
279
 
227
280
  for (var column = totalColumns; column > 0; column--) {
228
- columnsWidth += leftOverlay.sumCellSizes(column - 1, column);
281
+ columnsWidth += inlineStartOverlay.sumCellSizes(column - 1, column);
229
282
 
230
283
  if (rootElementOffset.left + totalTableWidth - columnsWidth <= windowScrollLeft) {
231
284
  // Return physical column + 1
@@ -247,25 +300,24 @@ var Scroll = /*#__PURE__*/function () {
247
300
  }, {
248
301
  key: "getLastVisibleColumn",
249
302
  value: function getLastVisibleColumn() {
250
- var _this$_getVariables6 = this._getVariables(),
251
- leftOverlay = _this$_getVariables6.leftOverlay,
252
- wtTable = _this$_getVariables6.wtTable,
253
- wtViewport = _this$_getVariables6.wtViewport,
254
- totalColumns = _this$_getVariables6.totalColumns;
255
-
256
- var rootWindow = this.wot.rootWindow;
303
+ var _this$dataAccessObjec8 = this.dataAccessObject,
304
+ inlineStartOverlay = _this$dataAccessObjec8.inlineStartOverlay,
305
+ wtTable = _this$dataAccessObjec8.wtTable,
306
+ wtViewport = _this$dataAccessObjec8.wtViewport,
307
+ totalColumns = _this$dataAccessObjec8.totalColumns,
308
+ rootWindow = _this$dataAccessObjec8.rootWindow;
257
309
  var lastVisibleColumn = wtTable.getLastVisibleColumn();
258
310
 
259
- if (leftOverlay.mainTableScrollableElement === rootWindow) {
311
+ if (inlineStartOverlay.mainTableScrollableElement === rootWindow) {
260
312
  var rootElementOffset = offset(wtTable.wtRootElement);
261
- var windowScrollLeft = getScrollLeft(rootWindow, rootWindow); // Only calculate lastVisibleColumn when table didn't filled (from right) whole viewport space
313
+ var windowScrollLeft = Math.abs(getScrollLeft(rootWindow, rootWindow)); // Only calculate lastVisibleColumn when table didn't filled (from right) whole viewport space
262
314
 
263
315
  if (rootElementOffset.left > windowScrollLeft) {
264
316
  var windowWidth = innerWidth(rootWindow);
265
317
  var columnsWidth = wtViewport.getRowHeaderWidth();
266
318
 
267
319
  for (var column = 1; column <= totalColumns; column++) {
268
- columnsWidth += leftOverlay.sumCellSizes(column - 1, column);
320
+ columnsWidth += inlineStartOverlay.sumCellSizes(column - 1, column);
269
321
 
270
322
  if (rootElementOffset.left + columnsWidth - windowScrollLeft >= windowWidth) {
271
323
  // Return physical column - 1 (-2 because rangeEach gives column index + 1 - sumCellSizes requirements)
@@ -278,38 +330,6 @@ var Scroll = /*#__PURE__*/function () {
278
330
 
279
331
  return lastVisibleColumn;
280
332
  }
281
- /**
282
- * Returns collection of variables used to rows and columns visibility calculations.
283
- *
284
- * @returns {object}
285
- * @private
286
- */
287
-
288
- }, {
289
- key: "_getVariables",
290
- value: function _getVariables() {
291
- var wot = this.wot;
292
- var topOverlay = wot.wtOverlays.topOverlay;
293
- var leftOverlay = wot.wtOverlays.leftOverlay;
294
- var wtTable = wot.wtTable;
295
- var wtViewport = wot.wtViewport;
296
- var totalRows = wot.getSetting('totalRows');
297
- var totalColumns = wot.getSetting('totalColumns');
298
- var fixedRowsTop = wot.getSetting('fixedRowsTop');
299
- var fixedRowsBottom = wot.getSetting('fixedRowsBottom');
300
- var fixedColumnsLeft = wot.getSetting('fixedColumnsLeft');
301
- return {
302
- topOverlay: topOverlay,
303
- leftOverlay: leftOverlay,
304
- wtTable: wtTable,
305
- wtViewport: wtViewport,
306
- totalRows: totalRows,
307
- totalColumns: totalColumns,
308
- fixedRowsTop: fixedRowsTop,
309
- fixedRowsBottom: fixedRowsBottom,
310
- fixedColumnsLeft: fixedColumnsLeft
311
- };
312
- }
313
333
  }]);
314
334
 
315
335
  return Scroll;
@@ -39,10 +39,6 @@ var _element = require("./../../../helpers/dom/element");
39
39
 
40
40
  var _border = _interopRequireDefault(require("./border"));
41
41
 
42
- var _coords = _interopRequireDefault(require("./cell/coords"));
43
-
44
- var _range = _interopRequireDefault(require("./cell/range"));
45
-
46
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
47
43
 
48
44
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -70,7 +66,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
70
66
  */
71
67
  var Selection = /*#__PURE__*/function () {
72
68
  /**
73
- * @param {object} settings The selection settings object.
69
+ * @param {object} settings The selection settings object. @todo type.
74
70
  * @param {CellRange} cellRange The cell range instance.
75
71
  */
76
72
  function Selection(settings, cellRange) {
@@ -86,7 +82,7 @@ var Selection = /*#__PURE__*/function () {
86
82
  * Each Walkontable clone requires it's own border for every selection. This method creates and returns selection
87
83
  * borders per instance.
88
84
  *
89
- * @param {Walkontable} wotInstance The Walkontable instance.
85
+ * @param {WalkontableFacade} wotInstance The Walkontable instance.
90
86
  * @returns {Border}
91
87
  */
92
88
 
@@ -122,7 +118,7 @@ var Selection = /*#__PURE__*/function () {
122
118
  key: "add",
123
119
  value: function add(coords) {
124
120
  if (this.isEmpty()) {
125
- this.cellRange = new _range.default(coords);
121
+ this.cellRange = this.settings.createCellRange(coords);
126
122
  } else {
127
123
  this.cellRange.expand(coords);
128
124
  }
@@ -168,7 +164,7 @@ var Selection = /*#__PURE__*/function () {
168
164
  return this;
169
165
  }
170
166
  /**
171
- * Returns the top left (TL) and bottom right (BR) selection coordinates.
167
+ * Returns the top left (or top right in RTL) and bottom right (or bottom left in RTL) selection coordinates.
172
168
  *
173
169
  * @returns {Array} Returns array of coordinates for example `[1, 1, 5, 5]`.
174
170
  */
@@ -176,14 +172,14 @@ var Selection = /*#__PURE__*/function () {
176
172
  }, {
177
173
  key: "getCorners",
178
174
  value: function getCorners() {
179
- var topLeft = this.cellRange.getOuterTopLeftCorner();
180
- var bottomRight = this.cellRange.getOuterBottomRightCorner();
181
- return [topLeft.row, topLeft.col, bottomRight.row, bottomRight.col];
175
+ var topStart = this.cellRange.getOuterTopStartCorner();
176
+ var bottomEnd = this.cellRange.getOuterBottomEndCorner();
177
+ return [topStart.row, topStart.col, bottomEnd.row, bottomEnd.col];
182
178
  }
183
179
  /**
184
180
  * Adds class name to cell element at given coords.
185
181
  *
186
- * @param {Walkontable} wotInstance Walkontable instance.
182
+ * @param {WalkontableFacade} wotInstance Walkontable instance.
187
183
  * @param {number} sourceRow Cell row coord.
188
184
  * @param {number} sourceColumn Cell column coord.
189
185
  * @param {string} className Class name.
@@ -196,7 +192,7 @@ var Selection = /*#__PURE__*/function () {
196
192
  key: "addClassAtCoords",
197
193
  value: function addClassAtCoords(wotInstance, sourceRow, sourceColumn, className) {
198
194
  var markIntersections = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
199
- var TD = wotInstance.wtTable.getCell(new _coords.default(sourceRow, sourceColumn));
195
+ var TD = wotInstance.wtTable.getCell(this.settings.createCellCoords(sourceRow, sourceColumn));
200
196
 
201
197
  if (_typeof(TD) === 'object') {
202
198
  var cellClassName = className;
@@ -252,7 +248,7 @@ var Selection = /*#__PURE__*/function () {
252
248
  };
253
249
  }
254
250
  /**
255
- * @param {Walkontable} wotInstance The Walkontable instance.
251
+ * @param {WalkontableFacade} wotInstance The Walkontable instance.
256
252
  */
257
253
 
258
254
  }, {
@@ -37,15 +37,13 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
37
37
 
38
38
  import { addClass, hasClass } from "./../../../helpers/dom/element.mjs";
39
39
  import Border from "./border.mjs";
40
- import CellCoords from "./cell/coords.mjs";
41
- import CellRange from "./cell/range.mjs";
42
40
  /**
43
41
  * @class Selection
44
42
  */
45
43
 
46
44
  var Selection = /*#__PURE__*/function () {
47
45
  /**
48
- * @param {object} settings The selection settings object.
46
+ * @param {object} settings The selection settings object. @todo type.
49
47
  * @param {CellRange} cellRange The cell range instance.
50
48
  */
51
49
  function Selection(settings, cellRange) {
@@ -61,7 +59,7 @@ var Selection = /*#__PURE__*/function () {
61
59
  * Each Walkontable clone requires it's own border for every selection. This method creates and returns selection
62
60
  * borders per instance.
63
61
  *
64
- * @param {Walkontable} wotInstance The Walkontable instance.
62
+ * @param {WalkontableFacade} wotInstance The Walkontable instance.
65
63
  * @returns {Border}
66
64
  */
67
65
 
@@ -97,7 +95,7 @@ var Selection = /*#__PURE__*/function () {
97
95
  key: "add",
98
96
  value: function add(coords) {
99
97
  if (this.isEmpty()) {
100
- this.cellRange = new CellRange(coords);
98
+ this.cellRange = this.settings.createCellRange(coords);
101
99
  } else {
102
100
  this.cellRange.expand(coords);
103
101
  }
@@ -143,7 +141,7 @@ var Selection = /*#__PURE__*/function () {
143
141
  return this;
144
142
  }
145
143
  /**
146
- * Returns the top left (TL) and bottom right (BR) selection coordinates.
144
+ * Returns the top left (or top right in RTL) and bottom right (or bottom left in RTL) selection coordinates.
147
145
  *
148
146
  * @returns {Array} Returns array of coordinates for example `[1, 1, 5, 5]`.
149
147
  */
@@ -151,14 +149,14 @@ var Selection = /*#__PURE__*/function () {
151
149
  }, {
152
150
  key: "getCorners",
153
151
  value: function getCorners() {
154
- var topLeft = this.cellRange.getOuterTopLeftCorner();
155
- var bottomRight = this.cellRange.getOuterBottomRightCorner();
156
- return [topLeft.row, topLeft.col, bottomRight.row, bottomRight.col];
152
+ var topStart = this.cellRange.getOuterTopStartCorner();
153
+ var bottomEnd = this.cellRange.getOuterBottomEndCorner();
154
+ return [topStart.row, topStart.col, bottomEnd.row, bottomEnd.col];
157
155
  }
158
156
  /**
159
157
  * Adds class name to cell element at given coords.
160
158
  *
161
- * @param {Walkontable} wotInstance Walkontable instance.
159
+ * @param {WalkontableFacade} wotInstance Walkontable instance.
162
160
  * @param {number} sourceRow Cell row coord.
163
161
  * @param {number} sourceColumn Cell column coord.
164
162
  * @param {string} className Class name.
@@ -171,7 +169,7 @@ var Selection = /*#__PURE__*/function () {
171
169
  key: "addClassAtCoords",
172
170
  value: function addClassAtCoords(wotInstance, sourceRow, sourceColumn, className) {
173
171
  var markIntersections = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
174
- var TD = wotInstance.wtTable.getCell(new CellCoords(sourceRow, sourceColumn));
172
+ var TD = wotInstance.wtTable.getCell(this.settings.createCellCoords(sourceRow, sourceColumn));
175
173
 
176
174
  if (_typeof(TD) === 'object') {
177
175
  var cellClassName = className;
@@ -227,7 +225,7 @@ var Selection = /*#__PURE__*/function () {
227
225
  };
228
226
  }
229
227
  /**
230
- * @param {Walkontable} wotInstance The Walkontable instance.
228
+ * @param {WalkontableFacade} wotInstance The Walkontable instance.
231
229
  */
232
230
 
233
231
  }, {