handsontable 11.1.0 → 12.1.0

Sign up to get free protection for your applications and to get access to all the features.
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,5 +1,15 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.symbol.js");
4
+
5
+ require("core-js/modules/es.array.filter.js");
6
+
7
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
8
+
9
+ require("core-js/modules/web.dom-collections.for-each.js");
10
+
11
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
12
+
3
13
  exports.__esModule = true;
4
14
  exports.default = void 0;
5
15
 
@@ -45,12 +55,16 @@ var _mixed = require("../../helpers/mixed");
45
55
 
46
56
  var _object = require("../../helpers/object");
47
57
 
48
- var _unicode = require("../../helpers/unicode");
49
-
50
58
  var _localHooks = _interopRequireDefault(require("../../mixins/localHooks"));
51
59
 
52
60
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
53
61
 
62
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
63
+
64
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
65
+
66
+ 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; }
67
+
54
68
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
55
69
 
56
70
  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); } }
@@ -58,12 +72,29 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
58
72
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
59
73
 
60
74
  var MIN_WIDTH = 215;
75
+ var SHORTCUTS_CONTEXT = 'menu';
76
+ var SHORTCUTS_GROUP = SHORTCUTS_CONTEXT;
77
+ /**
78
+ * @typedef MenuOptions
79
+ * @property {Menu} [parent=null] Instance of {@link Menu}.
80
+ * @property {string} [name=null] Name of the menu.
81
+ * @property {string} [className=''] Custom class name.
82
+ * @property {boolean} [keepInViewport=true] Determine if should be kept in viewport.
83
+ * @property {boolean} [standalone] Enabling closing menu when clicked element is not belongs to menu itself.
84
+ * @property {number} [minWidth=MIN_WIDTH] The minimum width.
85
+ * @property {HTMLElement} [container] The container.
86
+ */
87
+
61
88
  /**
62
89
  * @private
63
90
  * @class Menu
64
91
  */
65
92
 
66
93
  var Menu = /*#__PURE__*/function () {
94
+ /**
95
+ * @param {Core} hotInstance Handsontable instance.
96
+ * @param {MenuOptions} [options] Menu options.
97
+ */
67
98
  function Menu(hotInstance, options) {
68
99
  _classCallCheck(this, Menu);
69
100
 
@@ -238,9 +269,7 @@ var Menu = /*#__PURE__*/function () {
238
269
  fragmentSelection: false,
239
270
  outsideClickDeselects: false,
240
271
  disableVisualSelection: 'area',
241
- beforeKeyDown: function beforeKeyDown(event) {
242
- return _this2.onBeforeKeyDown(event);
243
- },
272
+ layoutDirection: this.hot.isRtl() ? 'rtl' : 'ltr',
244
273
  afterOnCellMouseOver: function afterOnCellMouseOver(event, coords) {
245
274
  if (_this2.isAllSubMenusClosed()) {
246
275
  delayedOpenSubMenu(coords.row);
@@ -304,6 +333,139 @@ var Menu = /*#__PURE__*/function () {
304
333
  });
305
334
  this.hotMenu.init();
306
335
  this.hotMenu.listen();
336
+ var shortcutManager = this.hotMenu.getShortcutManager();
337
+ var menuContext = shortcutManager.addContext(SHORTCUTS_GROUP);
338
+ var config = {
339
+ group: SHORTCUTS_CONTEXT
340
+ };
341
+
342
+ var menuContextConfig = _objectSpread(_objectSpread({}, config), {}, {
343
+ runOnlyIf: function runOnlyIf(event) {
344
+ return (0, _element.isInput)(event.target) === false || _this2.container.contains(event.target) === false;
345
+ }
346
+ }); // Default shortcuts for Handsontable should not be handled. Changing context will help with that.
347
+
348
+
349
+ shortcutManager.setActiveContextName('menu');
350
+ menuContext.addShortcuts([{
351
+ keys: [['Escape']],
352
+ callback: function callback() {
353
+ _this2.keyEvent = true;
354
+
355
+ _this2.close();
356
+
357
+ _this2.keyEvent = false;
358
+ }
359
+ }, {
360
+ keys: [['ArrowDown']],
361
+ callback: function callback() {
362
+ var selection = _this2.hotMenu.getSelectedLast();
363
+
364
+ _this2.keyEvent = true;
365
+
366
+ if (selection) {
367
+ _this2.selectNextCell(selection[0], selection[1]);
368
+ } else {
369
+ _this2.selectFirstCell();
370
+ }
371
+
372
+ _this2.keyEvent = false;
373
+ }
374
+ }, {
375
+ keys: [['ArrowUp']],
376
+ callback: function callback() {
377
+ var selection = _this2.hotMenu.getSelectedLast();
378
+
379
+ _this2.keyEvent = true;
380
+
381
+ if (selection) {
382
+ _this2.selectPrevCell(selection[0], selection[1]);
383
+ } else {
384
+ _this2.selectLastCell();
385
+ }
386
+
387
+ _this2.keyEvent = false;
388
+ }
389
+ }, {
390
+ keys: [['ArrowRight']],
391
+ callback: function callback() {
392
+ var selection = _this2.hotMenu.getSelectedLast();
393
+
394
+ _this2.keyEvent = true;
395
+
396
+ if (selection) {
397
+ var menu = _this2.openSubMenu(selection[0]);
398
+
399
+ if (menu) {
400
+ menu.selectFirstCell();
401
+ }
402
+ }
403
+
404
+ _this2.keyEvent = false;
405
+ }
406
+ }, {
407
+ keys: [['ArrowLeft']],
408
+ callback: function callback() {
409
+ var selection = _this2.hotMenu.getSelectedLast();
410
+
411
+ _this2.keyEvent = true;
412
+
413
+ if (selection && _this2.isSubMenu()) {
414
+ _this2.close();
415
+
416
+ if (_this2.parentMenu) {
417
+ _this2.parentMenu.hotMenu.listen();
418
+ }
419
+ }
420
+
421
+ _this2.keyEvent = false;
422
+ }
423
+ }, {
424
+ keys: [['Enter']],
425
+ callback: function callback(event) {
426
+ var selection = _this2.hotMenu.getSelectedLast();
427
+
428
+ _this2.keyEvent = true;
429
+
430
+ if (!_this2.hotMenu.getSourceDataAtRow(selection[0]).submenu) {
431
+ _this2.executeCommand(event);
432
+
433
+ _this2.close(true);
434
+ }
435
+
436
+ _this2.keyEvent = false;
437
+ }
438
+ }, {
439
+ keys: [['PageUp']],
440
+ callback: function callback() {
441
+ var selection = _this2.hotMenu.getSelectedLast();
442
+
443
+ _this2.keyEvent = true;
444
+
445
+ if (selection) {
446
+ _this2.hotMenu.selection.transformStart(-_this2.hotMenu.countVisibleRows(), 0);
447
+ } else {
448
+ _this2.selectFirstCell();
449
+ }
450
+
451
+ _this2.keyEvent = false;
452
+ }
453
+ }, {
454
+ keys: [['PageDown']],
455
+ callback: function callback() {
456
+ var selection = _this2.hotMenu.getSelectedLast();
457
+
458
+ _this2.keyEvent = true;
459
+
460
+ if (selection) {
461
+ _this2.hotMenu.selection.transformStart(_this2.hotMenu.countVisibleRows(), 0);
462
+ } else {
463
+ _this2.selectLastCell();
464
+ }
465
+
466
+ _this2.keyEvent = false;
467
+ }
468
+ }], menuContextConfig);
307
469
  this.blockMainTableCallbacks();
308
470
  this.runLocalHooks('afterOpen');
309
471
  }
@@ -510,16 +672,46 @@ var Menu = /*#__PURE__*/function () {
510
672
  this.setPositionBelowCursor(cursor);
511
673
  }
512
674
 
513
- if (cursor.fitsOnRight(this.container)) {
514
- this.setPositionOnRightOfCursor(cursor);
675
+ if (this.hot.isLtr()) {
676
+ this.setHorizontalPositionForLtr(cursor);
515
677
  } else {
516
- this.setPositionOnLeftOfCursor(cursor);
678
+ this.setHorizontalPositionForRtl(cursor);
517
679
  }
518
680
  } else {
519
681
  this.setPositionBelowCursor(cursor);
520
682
  this.setPositionOnRightOfCursor(cursor);
521
683
  }
522
684
  }
685
+ /**
686
+ * Set menu horizontal position for RTL mode.
687
+ *
688
+ * @param {Cursor} cursor `Cursor` object.
689
+ */
690
+
691
+ }, {
692
+ key: "setHorizontalPositionForRtl",
693
+ value: function setHorizontalPositionForRtl(cursor) {
694
+ if (cursor.fitsOnLeft(this.container)) {
695
+ this.setPositionOnLeftOfCursor(cursor);
696
+ } else {
697
+ this.setPositionOnRightOfCursor(cursor);
698
+ }
699
+ }
700
+ /**
701
+ * Set menu horizontal position for LTR mode.
702
+ *
703
+ * @param {Cursor} cursor `Cursor` object.
704
+ */
705
+
706
+ }, {
707
+ key: "setHorizontalPositionForLtr",
708
+ value: function setHorizontalPositionForLtr(cursor) {
709
+ if (cursor.fitsOnRight(this.container)) {
710
+ this.setPositionOnRightOfCursor(cursor);
711
+ } else {
712
+ this.setPositionOnLeftOfCursor(cursor);
713
+ }
714
+ }
523
715
  /**
524
716
  * Set menu position above cursor object.
525
717
  *
@@ -563,12 +755,16 @@ var Menu = /*#__PURE__*/function () {
563
755
  }, {
564
756
  key: "setPositionOnRightOfCursor",
565
757
  value: function setPositionOnRightOfCursor(cursor) {
566
- var left;
758
+ var left = cursor.left;
567
759
 
568
760
  if (this.isSubMenu()) {
569
- left = 1 + cursor.left + cursor.cellWidth;
761
+ var _this$parentMenu$cont = this.parentMenu.container.getBoundingClientRect(),
762
+ parentMenuRight = _this$parentMenu$cont.right; // move the sub menu by the width of the parent's border (usually by 1-2 pixels)
763
+
764
+
765
+ left += cursor.cellWidth + parentMenuRight - (cursor.left + cursor.cellWidth);
570
766
  } else {
571
- left = this.offset.right + 1 + cursor.left;
767
+ left += this.offset.right;
572
768
  }
573
769
 
574
770
  this.container.style.left = "".concat(left, "px");
@@ -582,8 +778,16 @@ var Menu = /*#__PURE__*/function () {
582
778
  }, {
583
779
  key: "setPositionOnLeftOfCursor",
584
780
  value: function setPositionOnLeftOfCursor(cursor) {
585
- var scrollbarWidth = (0, _element.getScrollbarWidth)(this.hot.rootDocument);
586
- var left = this.offset.left + cursor.left - this.container.offsetWidth + scrollbarWidth + 4;
781
+ var left = this.offset.left + cursor.left - this.container.offsetWidth;
782
+
783
+ if (this.isSubMenu()) {
784
+ var _this$parentMenu$cont2 = this.parentMenu.container.getBoundingClientRect(),
785
+ parentMenuLeft = _this$parentMenu$cont2.left; // move the sub menu by the width of the parent's border (usually by 1-2 pixels)
786
+
787
+
788
+ left -= cursor.left - parentMenuLeft;
789
+ }
790
+
587
791
  this.container.style.left = "".concat(left, "px");
588
792
  }
589
793
  /**
@@ -614,7 +818,10 @@ var Menu = /*#__PURE__*/function () {
614
818
  if ((0, _utils.isSeparator)(cell) || (0, _utils.isDisabled)(cell) || (0, _utils.isSelectionDisabled)(cell)) {
615
819
  this.selectPrevCell(lastRow, 0);
616
820
  } else {
617
- this.hotMenu.selectCell(lastRow, 0);
821
+ // disable default "scroll-to-cell" option and instead of that...
822
+ this.hotMenu.selectCell(lastRow, 0, undefined, undefined, false); // ...scroll to the cell with "snap to the bottom" option
823
+
824
+ this.hotMenu.scrollViewportTo(lastRow, 0, true, false);
618
825
  }
619
826
  }
620
827
  /**
@@ -824,101 +1031,6 @@ var Menu = /*#__PURE__*/function () {
824
1031
  this._afterScrollCallback = null;
825
1032
  }
826
1033
  }
827
- /**
828
- * On before key down listener.
829
- *
830
- * @private
831
- * @param {Event} event The keyaboard event object.
832
- */
833
-
834
- }, {
835
- key: "onBeforeKeyDown",
836
- value: function onBeforeKeyDown(event) {
837
- // For input elements, prevent event propagation. It allows entering text into an input
838
- // element freely - without steeling the key events from the menu module (#6506, #6549).
839
- if ((0, _element.isInput)(event.target) && this.container.contains(event.target)) {
840
- (0, _event.stopImmediatePropagation)(event);
841
- return;
842
- }
843
-
844
- var selection = this.hotMenu.getSelectedLast();
845
- var stopEvent = false;
846
- this.keyEvent = true;
847
-
848
- switch (event.keyCode) {
849
- case _unicode.KEY_CODES.ESCAPE:
850
- this.close();
851
- stopEvent = true;
852
- break;
853
-
854
- case _unicode.KEY_CODES.ENTER:
855
- if (selection) {
856
- if (this.hotMenu.getSourceDataAtRow(selection[0]).submenu) {
857
- stopEvent = true;
858
- } else {
859
- this.executeCommand(event);
860
- this.close(true);
861
- }
862
- }
863
-
864
- break;
865
-
866
- case _unicode.KEY_CODES.ARROW_DOWN:
867
- if (selection) {
868
- this.selectNextCell(selection[0], selection[1]);
869
- } else {
870
- this.selectFirstCell();
871
- }
872
-
873
- stopEvent = true;
874
- break;
875
-
876
- case _unicode.KEY_CODES.ARROW_UP:
877
- if (selection) {
878
- this.selectPrevCell(selection[0], selection[1]);
879
- } else {
880
- this.selectLastCell();
881
- }
882
-
883
- stopEvent = true;
884
- break;
885
-
886
- case _unicode.KEY_CODES.ARROW_RIGHT:
887
- if (selection) {
888
- var menu = this.openSubMenu(selection[0]);
889
-
890
- if (menu) {
891
- menu.selectFirstCell();
892
- }
893
- }
894
-
895
- stopEvent = true;
896
- break;
897
-
898
- case _unicode.KEY_CODES.ARROW_LEFT:
899
- if (selection && this.isSubMenu()) {
900
- this.close();
901
-
902
- if (this.parentMenu) {
903
- this.parentMenu.hotMenu.listen();
904
- }
905
-
906
- stopEvent = true;
907
- }
908
-
909
- break;
910
-
911
- default:
912
- break;
913
- }
914
-
915
- if (stopEvent) {
916
- event.preventDefault();
917
- (0, _event.stopImmediatePropagation)(event);
918
- }
919
-
920
- this.keyEvent = false;
921
- }
922
1034
  /**
923
1035
  * On after init listener.
924
1036
  *
@@ -928,7 +1040,7 @@ var Menu = /*#__PURE__*/function () {
928
1040
  }, {
929
1041
  key: "onAfterInit",
930
1042
  value: function onAfterInit() {
931
- var wtTable = this.hotMenu.view.wt.wtTable;
1043
+ var wtTable = this.hotMenu.view._wt.wtTable;
932
1044
  var data = this.hotMenu.getSettings().data;
933
1045
  var hiderStyle = wtTable.hider.style;
934
1046
  var holderStyle = wtTable.holder.style;