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
@@ -21,8 +21,6 @@ require("core-js/modules/es.symbol.js");
21
21
 
22
22
  require("core-js/modules/es.symbol.description.js");
23
23
 
24
- var _src = require("./../3rdparty/walkontable/src");
25
-
26
24
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27
25
 
28
26
  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); } }
@@ -37,7 +35,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
37
35
  * @util
38
36
  */
39
37
  var SelectionRange = /*#__PURE__*/function (_Symbol$iterator) {
40
- function SelectionRange() {
38
+ function SelectionRange(createCellRange) {
41
39
  _classCallCheck(this, SelectionRange);
42
40
 
43
41
  /**
@@ -46,6 +44,7 @@ var SelectionRange = /*#__PURE__*/function (_Symbol$iterator) {
46
44
  * @type {CellRange[]}
47
45
  */
48
46
  this.ranges = [];
47
+ this.createCellRange = createCellRange;
49
48
  }
50
49
  /**
51
50
  * Check if selected range is empty.
@@ -71,7 +70,7 @@ var SelectionRange = /*#__PURE__*/function (_Symbol$iterator) {
71
70
  key: "set",
72
71
  value: function set(coords) {
73
72
  this.clear();
74
- this.ranges.push(new _src.CellRange(coords));
73
+ this.ranges.push(this.createCellRange(coords));
75
74
  return this;
76
75
  }
77
76
  /**
@@ -84,7 +83,7 @@ var SelectionRange = /*#__PURE__*/function (_Symbol$iterator) {
84
83
  }, {
85
84
  key: "add",
86
85
  value: function add(coords) {
87
- this.ranges.push(new _src.CellRange(coords));
86
+ this.ranges.push(this.createCellRange(coords));
88
87
  return this;
89
88
  }
90
89
  /**
@@ -14,7 +14,6 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
14
14
 
15
15
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
16
16
 
17
- import { CellRange } from "./../3rdparty/walkontable/src/index.mjs";
18
17
  /**
19
18
  * The SelectionRange class is a simple CellRanges collection designed for easy manipulation of the multiple
20
19
  * consecutive and non-consecutive selections.
@@ -22,9 +21,8 @@ import { CellRange } from "./../3rdparty/walkontable/src/index.mjs";
22
21
  * @class SelectionRange
23
22
  * @util
24
23
  */
25
-
26
24
  var SelectionRange = /*#__PURE__*/function (_Symbol$iterator) {
27
- function SelectionRange() {
25
+ function SelectionRange(createCellRange) {
28
26
  _classCallCheck(this, SelectionRange);
29
27
 
30
28
  /**
@@ -33,6 +31,7 @@ var SelectionRange = /*#__PURE__*/function (_Symbol$iterator) {
33
31
  * @type {CellRange[]}
34
32
  */
35
33
  this.ranges = [];
34
+ this.createCellRange = createCellRange;
36
35
  }
37
36
  /**
38
37
  * Check if selected range is empty.
@@ -58,7 +57,7 @@ var SelectionRange = /*#__PURE__*/function (_Symbol$iterator) {
58
57
  key: "set",
59
58
  value: function set(coords) {
60
59
  this.clear();
61
- this.ranges.push(new CellRange(coords));
60
+ this.ranges.push(this.createCellRange(coords));
62
61
  return this;
63
62
  }
64
63
  /**
@@ -71,7 +70,7 @@ var SelectionRange = /*#__PURE__*/function (_Symbol$iterator) {
71
70
  }, {
72
71
  key: "add",
73
72
  value: function add(coords) {
74
- this.ranges.push(new CellRange(coords));
73
+ this.ranges.push(this.createCellRange(coords));
75
74
  return this;
76
75
  }
77
76
  /**
@@ -47,10 +47,6 @@ var _constants = require("./highlight/constants");
47
47
 
48
48
  var _range = _interopRequireDefault(require("./range"));
49
49
 
50
- var _src = require("./../3rdparty/walkontable/src");
51
-
52
- var _keyStateObserver = require("./../utils/keyStateObserver");
53
-
54
50
  var _object = require("./../helpers/object");
55
51
 
56
52
  var _mixed = require("./../helpers/mixed");
@@ -148,7 +144,9 @@ var Selection = /*#__PURE__*/function () {
148
144
  * @type {SelectionRange}
149
145
  */
150
146
 
151
- this.selectedRange = new _range.default();
147
+ this.selectedRange = new _range.default(function (highlight, from, to) {
148
+ return _this.tableProps.createCellRange(highlight, from, to);
149
+ });
152
150
  /**
153
151
  * Visualization layer.
154
152
  *
@@ -174,6 +172,18 @@ var Selection = /*#__PURE__*/function () {
174
172
  },
175
173
  renderableToVisualCoords: function renderableToVisualCoords(coords) {
176
174
  return _this.tableProps.renderableToVisualCoords(coords);
175
+ },
176
+ createCellCoords: function createCellCoords(row, column) {
177
+ return _this.tableProps.createCellCoords(row, column);
178
+ },
179
+ createCellRange: function createCellRange(highlight, from, to) {
180
+ return _this.tableProps.createCellRange(highlight, from, to);
181
+ },
182
+ rowIndexMapper: function rowIndexMapper() {
183
+ return _this.tableProps.rowIndexMapper();
184
+ },
185
+ columnIndexMapper: function columnIndexMapper() {
186
+ return _this.tableProps.columnIndexMapper();
177
187
  }
178
188
  });
179
189
  /**
@@ -195,6 +205,9 @@ var Selection = /*#__PURE__*/function () {
195
205
  renderableToVisualCoords: function renderableToVisualCoords(coords) {
196
206
  return _this.tableProps.renderableToVisualCoords(coords);
197
207
  },
208
+ createCellCoords: function createCellCoords(row, column) {
209
+ return _this.tableProps.createCellCoords(row, column);
210
+ },
198
211
  fixedRowsBottom: function fixedRowsBottom() {
199
212
  return settings.fixedRowsBottom;
200
213
  },
@@ -302,7 +315,7 @@ var Selection = /*#__PURE__*/function () {
302
315
  * @param {CellCoords} coords Visual coords.
303
316
  * @param {boolean} [multipleSelection] If `true`, selection will be worked in 'multiple' mode. This option works
304
317
  * only when 'selectionMode' is set as 'multiple'. If the argument is not defined
305
- * the default trigger will be used (isPressedCtrlKey() helper).
318
+ * the default trigger will be used.
306
319
  * @param {boolean} [fragment=false] If `true`, the selection will be treated as a partial selection where the
307
320
  * `setRangeEnd` method won't be called on every `setRangeStart` call.
308
321
  */
@@ -312,7 +325,7 @@ var Selection = /*#__PURE__*/function () {
312
325
  value: function setRangeStart(coords, multipleSelection) {
313
326
  var fragment = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
314
327
  var isMultipleMode = this.settings.selectionMode === 'multiple';
315
- var isMultipleSelection = (0, _mixed.isUndefined)(multipleSelection) ? (0, _keyStateObserver.isPressedCtrlKey)() : multipleSelection;
328
+ var isMultipleSelection = (0, _mixed.isUndefined)(multipleSelection) ? this.tableProps.getShortcutManager().isCtrlPressed() : multipleSelection;
316
329
  var isRowNegative = coords.row < 0;
317
330
  var isColumnNegative = coords.col < 0;
318
331
  var selectedByCorner = isRowNegative && isColumnNegative; // We are creating copy. We would like to modify just the start of the selection by below hook. Then original coords
@@ -351,7 +364,7 @@ var Selection = /*#__PURE__*/function () {
351
364
  * @param {CellCoords} coords Visual coords.
352
365
  * @param {boolean} [multipleSelection] If `true`, selection will be worked in 'multiple' mode. This option works
353
366
  * only when 'selectionMode' is set as 'multiple'. If the argument is not defined
354
- * the default trigger will be used (isPressedCtrlKey() helper).
367
+ * the default trigger will be used.
355
368
  */
356
369
 
357
370
  }, {
@@ -380,14 +393,14 @@ var Selection = /*#__PURE__*/function () {
380
393
  var cellRange = this.selectedRange.current();
381
394
 
382
395
  if (this.settings.selectionMode !== 'single') {
383
- cellRange.setTo(new _src.CellCoords(coordsClone.row, coordsClone.col));
396
+ cellRange.setTo(this.tableProps.createCellCoords(coordsClone.row, coordsClone.col));
384
397
  } // Set up current selection.
385
398
 
386
399
 
387
400
  this.highlight.getCell().clear();
388
401
 
389
402
  if (this.highlight.isEnabledFor(_constants.CELL_TYPE, cellRange.highlight)) {
390
- this.highlight.getCell().add(this.selectedRange.current().highlight).commit().adjustCoordinates(cellRange);
403
+ this.highlight.getCell().add(this.selectedRange.current().highlight).commit().syncWith(cellRange);
391
404
  }
392
405
 
393
406
  var layerLevel = this.getLayerLevel(); // If the next layer level is lower than previous then clear all area and header highlights. This is the
@@ -422,7 +435,7 @@ var Selection = /*#__PURE__*/function () {
422
435
  // based on previous coordinates. It only occurs when the previous selection wasn't select multiple cells.
423
436
  var previousRange = this.selectedRange.previous();
424
437
  this.highlight.useLayerLevel(layerLevel - 1).createOrGetArea().add(previousRange.from).commit() // Range may start with hidden indexes. Commit would not found start point (as we add just the `from` coords).
425
- .adjustCoordinates(previousRange);
438
+ .syncWith(previousRange);
426
439
  this.highlight.useLayerLevel(layerLevel);
427
440
  }
428
441
  }
@@ -462,7 +475,7 @@ var Selection = /*#__PURE__*/function () {
462
475
  var isRowSelected = this.tableProps.countCols() === cellRange.getWidth(); // Make sure that the whole row is selected (in case where selectionMode is set to 'single')
463
476
 
464
477
  if (isRowSelected) {
465
- activeHeaderHighlight.add(new _src.CellCoords(cellRange.from.row, -1)).add(new _src.CellCoords(cellRange.to.row, -1)).commit();
478
+ activeHeaderHighlight.add(this.tableProps.createCellCoords(cellRange.from.row, -1)).add(this.tableProps.createCellCoords(cellRange.to.row, -1)).commit();
466
479
  }
467
480
  }
468
481
 
@@ -470,7 +483,7 @@ var Selection = /*#__PURE__*/function () {
470
483
  var isColumnSelected = this.tableProps.countRows() === cellRange.getHeight(); // Make sure that the whole column is selected (in case where selectionMode is set to 'single')
471
484
 
472
485
  if (isColumnSelected) {
473
- activeHeaderHighlight.add(new _src.CellCoords(-1, cellRange.from.col)).add(new _src.CellCoords(-1, cellRange.to.col)).commit();
486
+ activeHeaderHighlight.add(this.tableProps.createCellCoords(-1, cellRange.from.col)).add(this.tableProps.createCellCoords(-1, cellRange.to.col)).commit();
474
487
  }
475
488
  }
476
489
  }
@@ -708,12 +721,12 @@ var Selection = /*#__PURE__*/function () {
708
721
  return;
709
722
  }
710
723
 
711
- var startCoords = new _src.CellCoords(includeColumnHeaders ? -1 : 0, includeRowHeaders ? -1 : 0);
724
+ var startCoords = this.tableProps.createCellCoords(includeColumnHeaders ? -1 : 0, includeRowHeaders ? -1 : 0);
712
725
  this.clear();
713
726
  this.setRangeStartOnly(startCoords);
714
727
  this.selectedByRowHeader.add(this.getLayerLevel());
715
728
  this.selectedByColumnHeader.add(this.getLayerLevel());
716
- this.setRangeEnd(new _src.CellCoords(nrOfRows - 1, nrOfColumns - 1));
729
+ this.setRangeEnd(this.tableProps.createCellCoords(nrOfRows - 1, nrOfColumns - 1));
717
730
  this.finish();
718
731
  }
719
732
  /**
@@ -771,9 +784,9 @@ var Selection = /*#__PURE__*/function () {
771
784
  rowEnd = _selectionSchemaNorma4[2],
772
785
  columnEnd = _selectionSchemaNorma4[3];
773
786
 
774
- _this2.setRangeStartOnly(new _src.CellCoords(rowStart, columnStart), false);
787
+ _this2.setRangeStartOnly(_this2.tableProps.createCellCoords(rowStart, columnStart), false);
775
788
 
776
- _this2.setRangeEnd(new _src.CellCoords(rowEnd, columnEnd));
789
+ _this2.setRangeEnd(_this2.tableProps.createCellCoords(rowEnd, columnEnd));
777
790
 
778
791
  _this2.finish();
779
792
  });
@@ -805,8 +818,8 @@ var Selection = /*#__PURE__*/function () {
805
818
  var isValid = (0, _utils.isValidCoord)(start, nrOfColumns) && (0, _utils.isValidCoord)(end, nrOfColumns);
806
819
 
807
820
  if (isValid) {
808
- this.setRangeStartOnly(new _src.CellCoords(headerLevel, start));
809
- this.setRangeEnd(new _src.CellCoords(nrOfRows - 1, end));
821
+ this.setRangeStartOnly(this.tableProps.createCellCoords(headerLevel, start));
822
+ this.setRangeEnd(this.tableProps.createCellCoords(nrOfRows - 1, end));
810
823
  this.finish();
811
824
  }
812
825
 
@@ -833,8 +846,8 @@ var Selection = /*#__PURE__*/function () {
833
846
  var isValid = (0, _utils.isValidCoord)(startRow, nrOfRows) && (0, _utils.isValidCoord)(endRow, nrOfRows);
834
847
 
835
848
  if (isValid) {
836
- this.setRangeStartOnly(new _src.CellCoords(startRow, headerLevel));
837
- this.setRangeEnd(new _src.CellCoords(endRow, nrOfColumns - 1));
849
+ this.setRangeStartOnly(this.tableProps.createCellCoords(startRow, headerLevel));
850
+ this.setRangeEnd(this.tableProps.createCellCoords(endRow, nrOfColumns - 1));
838
851
  this.finish();
839
852
  }
840
853
 
@@ -858,7 +871,7 @@ var Selection = /*#__PURE__*/function () {
858
871
 
859
872
  var cellHighlight = this.highlight.getCell();
860
873
  var currentLayer = this.getLayerLevel();
861
- cellHighlight.commit().adjustCoordinates(this.selectedRange.current()); // Rewriting rendered ranges going through all layers.
874
+ cellHighlight.commit().syncWith(this.selectedRange.current()); // Rewriting rendered ranges going through all layers.
862
875
 
863
876
  for (var layerLevel = 0; layerLevel < this.selectedRange.size(); layerLevel += 1) {
864
877
  this.highlight.useLayerLevel(layerLevel);
@@ -44,8 +44,6 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
44
44
  import Highlight from "./highlight/highlight.mjs";
45
45
  import { AREA_TYPE, HEADER_TYPE, CELL_TYPE } from "./highlight/constants.mjs";
46
46
  import SelectionRange from "./range.mjs";
47
- import { CellCoords } from "./../3rdparty/walkontable/src/index.mjs";
48
- import { isPressedCtrlKey } from "./../utils/keyStateObserver.mjs";
49
47
  import { createObjectPropListener, mixin } from "./../helpers/object.mjs";
50
48
  import { isUndefined } from "./../helpers/mixed.mjs";
51
49
  import { arrayEach } from "./../helpers/array.mjs";
@@ -113,7 +111,9 @@ var Selection = /*#__PURE__*/function () {
113
111
  * @type {SelectionRange}
114
112
  */
115
113
 
116
- this.selectedRange = new SelectionRange();
114
+ this.selectedRange = new SelectionRange(function (highlight, from, to) {
115
+ return _this.tableProps.createCellRange(highlight, from, to);
116
+ });
117
117
  /**
118
118
  * Visualization layer.
119
119
  *
@@ -139,6 +139,18 @@ var Selection = /*#__PURE__*/function () {
139
139
  },
140
140
  renderableToVisualCoords: function renderableToVisualCoords(coords) {
141
141
  return _this.tableProps.renderableToVisualCoords(coords);
142
+ },
143
+ createCellCoords: function createCellCoords(row, column) {
144
+ return _this.tableProps.createCellCoords(row, column);
145
+ },
146
+ createCellRange: function createCellRange(highlight, from, to) {
147
+ return _this.tableProps.createCellRange(highlight, from, to);
148
+ },
149
+ rowIndexMapper: function rowIndexMapper() {
150
+ return _this.tableProps.rowIndexMapper();
151
+ },
152
+ columnIndexMapper: function columnIndexMapper() {
153
+ return _this.tableProps.columnIndexMapper();
142
154
  }
143
155
  });
144
156
  /**
@@ -160,6 +172,9 @@ var Selection = /*#__PURE__*/function () {
160
172
  renderableToVisualCoords: function renderableToVisualCoords(coords) {
161
173
  return _this.tableProps.renderableToVisualCoords(coords);
162
174
  },
175
+ createCellCoords: function createCellCoords(row, column) {
176
+ return _this.tableProps.createCellCoords(row, column);
177
+ },
163
178
  fixedRowsBottom: function fixedRowsBottom() {
164
179
  return settings.fixedRowsBottom;
165
180
  },
@@ -267,7 +282,7 @@ var Selection = /*#__PURE__*/function () {
267
282
  * @param {CellCoords} coords Visual coords.
268
283
  * @param {boolean} [multipleSelection] If `true`, selection will be worked in 'multiple' mode. This option works
269
284
  * only when 'selectionMode' is set as 'multiple'. If the argument is not defined
270
- * the default trigger will be used (isPressedCtrlKey() helper).
285
+ * the default trigger will be used.
271
286
  * @param {boolean} [fragment=false] If `true`, the selection will be treated as a partial selection where the
272
287
  * `setRangeEnd` method won't be called on every `setRangeStart` call.
273
288
  */
@@ -277,7 +292,7 @@ var Selection = /*#__PURE__*/function () {
277
292
  value: function setRangeStart(coords, multipleSelection) {
278
293
  var fragment = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
279
294
  var isMultipleMode = this.settings.selectionMode === 'multiple';
280
- var isMultipleSelection = isUndefined(multipleSelection) ? isPressedCtrlKey() : multipleSelection;
295
+ var isMultipleSelection = isUndefined(multipleSelection) ? this.tableProps.getShortcutManager().isCtrlPressed() : multipleSelection;
281
296
  var isRowNegative = coords.row < 0;
282
297
  var isColumnNegative = coords.col < 0;
283
298
  var selectedByCorner = isRowNegative && isColumnNegative; // We are creating copy. We would like to modify just the start of the selection by below hook. Then original coords
@@ -316,7 +331,7 @@ var Selection = /*#__PURE__*/function () {
316
331
  * @param {CellCoords} coords Visual coords.
317
332
  * @param {boolean} [multipleSelection] If `true`, selection will be worked in 'multiple' mode. This option works
318
333
  * only when 'selectionMode' is set as 'multiple'. If the argument is not defined
319
- * the default trigger will be used (isPressedCtrlKey() helper).
334
+ * the default trigger will be used.
320
335
  */
321
336
 
322
337
  }, {
@@ -345,14 +360,14 @@ var Selection = /*#__PURE__*/function () {
345
360
  var cellRange = this.selectedRange.current();
346
361
 
347
362
  if (this.settings.selectionMode !== 'single') {
348
- cellRange.setTo(new CellCoords(coordsClone.row, coordsClone.col));
363
+ cellRange.setTo(this.tableProps.createCellCoords(coordsClone.row, coordsClone.col));
349
364
  } // Set up current selection.
350
365
 
351
366
 
352
367
  this.highlight.getCell().clear();
353
368
 
354
369
  if (this.highlight.isEnabledFor(CELL_TYPE, cellRange.highlight)) {
355
- this.highlight.getCell().add(this.selectedRange.current().highlight).commit().adjustCoordinates(cellRange);
370
+ this.highlight.getCell().add(this.selectedRange.current().highlight).commit().syncWith(cellRange);
356
371
  }
357
372
 
358
373
  var layerLevel = this.getLayerLevel(); // If the next layer level is lower than previous then clear all area and header highlights. This is the
@@ -387,7 +402,7 @@ var Selection = /*#__PURE__*/function () {
387
402
  // based on previous coordinates. It only occurs when the previous selection wasn't select multiple cells.
388
403
  var previousRange = this.selectedRange.previous();
389
404
  this.highlight.useLayerLevel(layerLevel - 1).createOrGetArea().add(previousRange.from).commit() // Range may start with hidden indexes. Commit would not found start point (as we add just the `from` coords).
390
- .adjustCoordinates(previousRange);
405
+ .syncWith(previousRange);
391
406
  this.highlight.useLayerLevel(layerLevel);
392
407
  }
393
408
  }
@@ -427,7 +442,7 @@ var Selection = /*#__PURE__*/function () {
427
442
  var isRowSelected = this.tableProps.countCols() === cellRange.getWidth(); // Make sure that the whole row is selected (in case where selectionMode is set to 'single')
428
443
 
429
444
  if (isRowSelected) {
430
- activeHeaderHighlight.add(new CellCoords(cellRange.from.row, -1)).add(new CellCoords(cellRange.to.row, -1)).commit();
445
+ activeHeaderHighlight.add(this.tableProps.createCellCoords(cellRange.from.row, -1)).add(this.tableProps.createCellCoords(cellRange.to.row, -1)).commit();
431
446
  }
432
447
  }
433
448
 
@@ -435,7 +450,7 @@ var Selection = /*#__PURE__*/function () {
435
450
  var isColumnSelected = this.tableProps.countRows() === cellRange.getHeight(); // Make sure that the whole column is selected (in case where selectionMode is set to 'single')
436
451
 
437
452
  if (isColumnSelected) {
438
- activeHeaderHighlight.add(new CellCoords(-1, cellRange.from.col)).add(new CellCoords(-1, cellRange.to.col)).commit();
453
+ activeHeaderHighlight.add(this.tableProps.createCellCoords(-1, cellRange.from.col)).add(this.tableProps.createCellCoords(-1, cellRange.to.col)).commit();
439
454
  }
440
455
  }
441
456
  }
@@ -673,12 +688,12 @@ var Selection = /*#__PURE__*/function () {
673
688
  return;
674
689
  }
675
690
 
676
- var startCoords = new CellCoords(includeColumnHeaders ? -1 : 0, includeRowHeaders ? -1 : 0);
691
+ var startCoords = this.tableProps.createCellCoords(includeColumnHeaders ? -1 : 0, includeRowHeaders ? -1 : 0);
677
692
  this.clear();
678
693
  this.setRangeStartOnly(startCoords);
679
694
  this.selectedByRowHeader.add(this.getLayerLevel());
680
695
  this.selectedByColumnHeader.add(this.getLayerLevel());
681
- this.setRangeEnd(new CellCoords(nrOfRows - 1, nrOfColumns - 1));
696
+ this.setRangeEnd(this.tableProps.createCellCoords(nrOfRows - 1, nrOfColumns - 1));
682
697
  this.finish();
683
698
  }
684
699
  /**
@@ -736,9 +751,9 @@ var Selection = /*#__PURE__*/function () {
736
751
  rowEnd = _selectionSchemaNorma4[2],
737
752
  columnEnd = _selectionSchemaNorma4[3];
738
753
 
739
- _this2.setRangeStartOnly(new CellCoords(rowStart, columnStart), false);
754
+ _this2.setRangeStartOnly(_this2.tableProps.createCellCoords(rowStart, columnStart), false);
740
755
 
741
- _this2.setRangeEnd(new CellCoords(rowEnd, columnEnd));
756
+ _this2.setRangeEnd(_this2.tableProps.createCellCoords(rowEnd, columnEnd));
742
757
 
743
758
  _this2.finish();
744
759
  });
@@ -770,8 +785,8 @@ var Selection = /*#__PURE__*/function () {
770
785
  var isValid = isValidCoord(start, nrOfColumns) && isValidCoord(end, nrOfColumns);
771
786
 
772
787
  if (isValid) {
773
- this.setRangeStartOnly(new CellCoords(headerLevel, start));
774
- this.setRangeEnd(new CellCoords(nrOfRows - 1, end));
788
+ this.setRangeStartOnly(this.tableProps.createCellCoords(headerLevel, start));
789
+ this.setRangeEnd(this.tableProps.createCellCoords(nrOfRows - 1, end));
775
790
  this.finish();
776
791
  }
777
792
 
@@ -798,8 +813,8 @@ var Selection = /*#__PURE__*/function () {
798
813
  var isValid = isValidCoord(startRow, nrOfRows) && isValidCoord(endRow, nrOfRows);
799
814
 
800
815
  if (isValid) {
801
- this.setRangeStartOnly(new CellCoords(startRow, headerLevel));
802
- this.setRangeEnd(new CellCoords(endRow, nrOfColumns - 1));
816
+ this.setRangeStartOnly(this.tableProps.createCellCoords(startRow, headerLevel));
817
+ this.setRangeEnd(this.tableProps.createCellCoords(endRow, nrOfColumns - 1));
803
818
  this.finish();
804
819
  }
805
820
 
@@ -823,7 +838,7 @@ var Selection = /*#__PURE__*/function () {
823
838
 
824
839
  var cellHighlight = this.highlight.getCell();
825
840
  var currentLayer = this.getLayerLevel();
826
- cellHighlight.commit().adjustCoordinates(this.selectedRange.current()); // Rewriting rendered ranges going through all layers.
841
+ cellHighlight.commit().syncWith(this.selectedRange.current()); // Rewriting rendered ranges going through all layers.
827
842
 
828
843
  for (var layerLevel = 0; layerLevel < this.selectedRange.size(); layerLevel += 1) {
829
844
  this.highlight.useLayerLevel(layerLevel);
@@ -3,8 +3,6 @@
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
5
 
6
- var _src = require("./../3rdparty/walkontable/src");
7
-
8
6
  var _object = require("../helpers/object");
9
7
 
10
8
  var _localHooks = _interopRequireDefault(require("./../mixins/localHooks"));
@@ -60,7 +58,7 @@ var Transformation = /*#__PURE__*/function () {
60
58
  key: "transformStart",
61
59
  value: function transformStart(rowDelta, colDelta) {
62
60
  var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
63
- var delta = new _src.CellCoords(rowDelta, colDelta);
61
+ var delta = this.options.createCellCoords(rowDelta, colDelta);
64
62
  var highlightCoords = this.range.current().highlight;
65
63
 
66
64
  var _this$options$visualT = this.options.visualToRenderableCoords(highlightCoords),
@@ -107,7 +105,7 @@ var Transformation = /*#__PURE__*/function () {
107
105
  delta.col = totalCols - 1;
108
106
  }
109
107
 
110
- var coords = new _src.CellCoords(renderableRow + delta.row, renderableColumn + delta.col);
108
+ var coords = this.options.createCellCoords(renderableRow + delta.row, renderableColumn + delta.col);
111
109
  rowTransformDir = 0;
112
110
  colTransformDir = 0;
113
111
 
@@ -144,7 +142,7 @@ var Transformation = /*#__PURE__*/function () {
144
142
  }, {
145
143
  key: "transformEnd",
146
144
  value: function transformEnd(rowDelta, colDelta) {
147
- var delta = new _src.CellCoords(rowDelta, colDelta);
145
+ var delta = this.options.createCellCoords(rowDelta, colDelta);
148
146
  var cellRange = this.range.current();
149
147
  var visualCoords = cellRange.to;
150
148
  var rowTransformDir = 0;
@@ -164,7 +162,7 @@ var Transformation = /*#__PURE__*/function () {
164
162
  rowTo = _this$options$visualT3.row,
165
163
  colTo = _this$options$visualT3.col;
166
164
 
167
- var coords = new _src.CellCoords(rowTo + delta.row, colTo + delta.col);
165
+ var coords = this.options.createCellCoords(rowTo + delta.row, colTo + delta.col);
168
166
  rowTransformDir = 0;
169
167
  colTransformDir = 0;
170
168
 
@@ -4,7 +4,6 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
4
4
 
5
5
  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
6
 
7
- import { CellCoords } from "./../3rdparty/walkontable/src/index.mjs";
8
7
  import { mixin } from "../helpers/object.mjs";
9
8
  import localHooks from "./../mixins/localHooks.mjs";
10
9
  /**
@@ -51,7 +50,7 @@ var Transformation = /*#__PURE__*/function () {
51
50
  key: "transformStart",
52
51
  value: function transformStart(rowDelta, colDelta) {
53
52
  var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
54
- var delta = new CellCoords(rowDelta, colDelta);
53
+ var delta = this.options.createCellCoords(rowDelta, colDelta);
55
54
  var highlightCoords = this.range.current().highlight;
56
55
 
57
56
  var _this$options$visualT = this.options.visualToRenderableCoords(highlightCoords),
@@ -98,7 +97,7 @@ var Transformation = /*#__PURE__*/function () {
98
97
  delta.col = totalCols - 1;
99
98
  }
100
99
 
101
- var coords = new CellCoords(renderableRow + delta.row, renderableColumn + delta.col);
100
+ var coords = this.options.createCellCoords(renderableRow + delta.row, renderableColumn + delta.col);
102
101
  rowTransformDir = 0;
103
102
  colTransformDir = 0;
104
103
 
@@ -135,7 +134,7 @@ var Transformation = /*#__PURE__*/function () {
135
134
  }, {
136
135
  key: "transformEnd",
137
136
  value: function transformEnd(rowDelta, colDelta) {
138
- var delta = new CellCoords(rowDelta, colDelta);
137
+ var delta = this.options.createCellCoords(rowDelta, colDelta);
139
138
  var cellRange = this.range.current();
140
139
  var visualCoords = cellRange.to;
141
140
  var rowTransformDir = 0;
@@ -155,7 +154,7 @@ var Transformation = /*#__PURE__*/function () {
155
154
  rowTo = _this$options$visualT3.row,
156
155
  colTo = _this$options$visualT3.col;
157
156
 
158
- var coords = new CellCoords(rowTo + delta.row, colTo + delta.col);
157
+ var coords = this.options.createCellCoords(rowTo + delta.row, colTo + delta.col);
159
158
  rowTransformDir = 0;
160
159
  colTransformDir = 0;
161
160
 
package/settings.d.ts CHANGED
@@ -60,7 +60,7 @@ export interface CellProperties extends CellMeta {
60
60
  }
61
61
 
62
62
  /**
63
- * @internal
63
+ * @package
64
64
  * Omit properties K from T
65
65
  */
66
66
  export type Omit<T, K extends keyof T> = Pick<T, ({ [P in keyof T]: P } & { [P in K]: never } & { [x: string]: never, [x: number]: never })[keyof T]>;
@@ -135,6 +135,7 @@ export interface GridSettings extends Events {
135
135
  filteringCaseSensitive?: boolean;
136
136
  filters?: boolean;
137
137
  fixedColumnsLeft?: number;
138
+ fixedColumnsStart?: number;
138
139
  fixedRowsBottom?: number;
139
140
  fixedRowsTop?: number;
140
141
  formulas?: FormulasSettings;
@@ -147,6 +148,7 @@ export interface GridSettings extends Events {
147
148
  isEmptyRow?: (this: Core, row: number) => boolean;
148
149
  label?: LabelOptions;
149
150
  language?: string;
151
+ layoutDirection?: 'ltr' | 'rtl' | 'inherit';
150
152
  licenseKey?: string | 'non-commercial-and-evaluation';
151
153
  manualColumnFreeze?: boolean;
152
154
  manualColumnMove?: boolean | number[];
@@ -0,0 +1,20 @@
1
+ interface Shortcut {
2
+ keys: string[][];
3
+ callback: (event: Event) => boolean | void;
4
+ group: string;
5
+ runOnlyIf?: () => boolean;
6
+ captureCtrl?: boolean;
7
+ preventDefault?: boolean;
8
+ stopPropagation?: boolean;
9
+ relativeToGroup?: string;
10
+ position?: 'before' | 'after';
11
+ }
12
+
13
+ export interface Context {
14
+ addShortcut(shortcut: Shortcut): void;
15
+ addShortcuts(shortcuts: Shortcut[]): void;
16
+ getShortcuts(): Shortcut[];
17
+ hasShortcut(keys: string[]): boolean;
18
+ removeShortcutsByKeys(keys: string[]): void;
19
+ removeShortcutsByGroup(group: string): void;
20
+ }