handsontable 11.1.0 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/3rdparty/walkontable/src/border.js +120 -98
  2. package/3rdparty/walkontable/src/border.mjs +120 -94
  3. package/3rdparty/walkontable/src/cell/coords.js +59 -17
  4. package/3rdparty/walkontable/src/cell/coords.mjs +55 -17
  5. package/3rdparty/walkontable/src/cell/range.d.ts +10 -2
  6. package/3rdparty/walkontable/src/cell/range.js +278 -99
  7. package/3rdparty/walkontable/src/cell/range.mjs +273 -99
  8. package/3rdparty/walkontable/src/core/_base.js +452 -0
  9. package/3rdparty/walkontable/src/core/_base.mjs +440 -0
  10. package/3rdparty/walkontable/src/core/clone.js +97 -0
  11. package/3rdparty/walkontable/src/core/clone.mjs +80 -0
  12. package/3rdparty/walkontable/src/core/core.js +183 -0
  13. package/3rdparty/walkontable/src/core/core.mjs +160 -0
  14. package/3rdparty/walkontable/src/event.js +99 -66
  15. package/3rdparty/walkontable/src/event.mjs +99 -63
  16. package/3rdparty/walkontable/src/facade/core.js +251 -0
  17. package/3rdparty/walkontable/src/facade/core.mjs +243 -0
  18. package/3rdparty/walkontable/src/index.js +2 -46
  19. package/3rdparty/walkontable/src/index.mjs +3 -13
  20. package/3rdparty/walkontable/src/overlay/_base.js +124 -57
  21. package/3rdparty/walkontable/src/overlay/_base.mjs +124 -57
  22. package/3rdparty/walkontable/src/overlay/bottom.js +96 -80
  23. package/3rdparty/walkontable/src/overlay/bottom.mjs +96 -80
  24. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.js → bottomInlineStartCorner.js} +45 -62
  25. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +44 -61
  26. package/3rdparty/walkontable/src/overlay/constants.js +25 -9
  27. package/3rdparty/walkontable/src/overlay/constants.mjs +14 -4
  28. package/3rdparty/walkontable/src/overlay/index.js +10 -19
  29. package/3rdparty/walkontable/src/overlay/index.mjs +4 -5
  30. package/3rdparty/walkontable/src/overlay/{left.js → inlineStart.js} +113 -82
  31. package/3rdparty/walkontable/src/overlay/{left.mjs → inlineStart.mjs} +112 -81
  32. package/3rdparty/walkontable/src/overlay/top.js +93 -68
  33. package/3rdparty/walkontable/src/overlay/top.mjs +93 -68
  34. package/3rdparty/walkontable/src/overlay/{topLeftCorner.js → topInlineStartCorner.js} +56 -57
  35. package/3rdparty/walkontable/src/overlay/{topLeftCorner.mjs → topInlineStartCorner.mjs} +51 -52
  36. package/3rdparty/walkontable/src/overlays.js +225 -156
  37. package/3rdparty/walkontable/src/overlays.mjs +224 -154
  38. package/3rdparty/walkontable/src/renderer/cells.js +4 -3
  39. package/3rdparty/walkontable/src/renderer/cells.mjs +4 -3
  40. package/3rdparty/walkontable/src/renderer/colGroup.js +2 -2
  41. package/3rdparty/walkontable/src/renderer/colGroup.mjs +2 -2
  42. package/3rdparty/walkontable/src/renderer/columnHeaders.js +2 -2
  43. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
  44. package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
  45. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +2 -2
  46. package/3rdparty/walkontable/src/renderer/rows.js +2 -2
  47. package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
  48. package/3rdparty/walkontable/src/scroll.js +125 -104
  49. package/3rdparty/walkontable/src/scroll.mjs +124 -104
  50. package/3rdparty/walkontable/src/selection.js +10 -14
  51. package/3rdparty/walkontable/src/selection.mjs +10 -12
  52. package/3rdparty/walkontable/src/settings.js +235 -126
  53. package/3rdparty/walkontable/src/settings.mjs +235 -125
  54. package/3rdparty/walkontable/src/table/bottom.js +16 -5
  55. package/3rdparty/walkontable/src/table/bottom.mjs +15 -5
  56. package/3rdparty/walkontable/src/table/{bottomLeftCorner.js → bottomInlineStartCorner.js} +27 -15
  57. package/3rdparty/walkontable/src/table/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +26 -15
  58. package/3rdparty/walkontable/src/table/{left.js → inlineStart.js} +23 -15
  59. package/3rdparty/walkontable/src/table/{left.mjs → inlineStart.mjs} +22 -15
  60. package/3rdparty/walkontable/src/table/master.js +22 -12
  61. package/3rdparty/walkontable/src/table/master.mjs +22 -12
  62. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +12 -6
  63. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +12 -6
  64. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +12 -6
  65. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +12 -6
  66. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.js → stickyColumnsStart.js} +13 -7
  67. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.mjs → stickyColumnsStart.mjs} +13 -7
  68. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +11 -5
  69. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +11 -5
  70. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -3
  71. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -3
  72. package/3rdparty/walkontable/src/table/top.js +16 -5
  73. package/3rdparty/walkontable/src/table/top.mjs +15 -5
  74. package/3rdparty/walkontable/src/table/{topLeftCorner.js → topInlineStartCorner.js} +27 -15
  75. package/3rdparty/walkontable/src/table/{topLeftCorner.mjs → topInlineStartCorner.mjs} +26 -15
  76. package/3rdparty/walkontable/src/table.js +235 -140
  77. package/3rdparty/walkontable/src/table.mjs +231 -134
  78. package/3rdparty/walkontable/src/types.js +103 -0
  79. package/3rdparty/walkontable/src/types.mjs +102 -0
  80. package/3rdparty/walkontable/src/utils/column.js +22 -33
  81. package/3rdparty/walkontable/src/utils/column.mjs +22 -30
  82. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -2
  83. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +2 -2
  84. package/3rdparty/walkontable/src/utils/row.js +9 -4
  85. package/3rdparty/walkontable/src/utils/row.mjs +9 -4
  86. package/3rdparty/walkontable/src/viewport.js +89 -100
  87. package/3rdparty/walkontable/src/viewport.mjs +89 -97
  88. package/CHANGELOG.md +92 -0
  89. package/LICENSE.txt +1 -1
  90. package/README.md +0 -1
  91. package/base.js +2 -2
  92. package/base.mjs +2 -2
  93. package/cellTypes/timeType/timeType.d.ts +6 -6
  94. package/cellTypes/timeType/timeType.js +4 -5
  95. package/cellTypes/timeType/timeType.mjs +4 -5
  96. package/core.d.ts +6 -1
  97. package/core.js +508 -80
  98. package/core.mjs +517 -92
  99. package/dataMap/index.js +4 -0
  100. package/dataMap/index.mjs +2 -1
  101. package/dataMap/metaManager/index.js +2 -2
  102. package/dataMap/metaManager/index.mjs +2 -2
  103. package/dataMap/metaManager/metaLayers/globalMeta.js +4 -0
  104. package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -0
  105. package/dataMap/metaManager/metaLayers/tableMeta.js +2 -2
  106. package/dataMap/metaManager/metaLayers/tableMeta.mjs +2 -2
  107. package/dataMap/metaManager/metaSchema.js +282 -187
  108. package/dataMap/metaManager/metaSchema.mjs +282 -187
  109. package/dataMap/metaManager/mods/extendMetaProperties.js +126 -0
  110. package/dataMap/metaManager/mods/extendMetaProperties.mjs +113 -0
  111. package/dataMap/replaceData.js +3 -17
  112. package/dataMap/replaceData.mjs +3 -17
  113. package/dist/handsontable.css +268 -92
  114. package/dist/handsontable.full.css +269 -103
  115. package/dist/handsontable.full.js +41990 -35658
  116. package/dist/handsontable.full.min.css +9 -9
  117. package/dist/handsontable.full.min.js +144 -144
  118. package/dist/handsontable.js +29561 -25597
  119. package/dist/handsontable.min.css +8 -8
  120. package/dist/handsontable.min.js +4 -4
  121. package/dist/languages/all.js +131 -34
  122. package/dist/languages/all.min.js +1 -1
  123. package/dist/languages/ar-AR.js +167 -0
  124. package/dist/languages/ar-AR.min.js +1 -0
  125. package/dist/languages/cs-CZ.js +167 -0
  126. package/dist/languages/cs-CZ.min.js +1 -0
  127. package/dist/languages/de-CH.js +31 -29
  128. package/dist/languages/de-CH.min.js +1 -1
  129. package/dist/languages/de-DE.js +4 -2
  130. package/dist/languages/de-DE.min.js +1 -1
  131. package/dist/languages/en-US.js +4 -2
  132. package/dist/languages/en-US.min.js +1 -1
  133. package/dist/languages/es-MX.js +4 -2
  134. package/dist/languages/es-MX.min.js +1 -1
  135. package/dist/languages/fr-FR.js +4 -2
  136. package/dist/languages/fr-FR.min.js +1 -1
  137. package/dist/languages/it-IT.js +4 -2
  138. package/dist/languages/it-IT.min.js +1 -1
  139. package/dist/languages/ja-JP.js +36 -38
  140. package/dist/languages/ja-JP.min.js +1 -1
  141. package/dist/languages/ko-KR.js +36 -39
  142. package/dist/languages/ko-KR.min.js +1 -1
  143. package/dist/languages/lv-LV.js +2 -2
  144. package/dist/languages/lv-LV.min.js +1 -1
  145. package/dist/languages/nb-NO.js +2 -2
  146. package/dist/languages/nb-NO.min.js +1 -1
  147. package/dist/languages/nl-NL.js +2 -2
  148. package/dist/languages/nl-NL.min.js +1 -1
  149. package/dist/languages/pl-PL.js +2 -2
  150. package/dist/languages/pl-PL.min.js +1 -1
  151. package/dist/languages/pt-BR.js +2 -2
  152. package/dist/languages/pt-BR.min.js +1 -1
  153. package/dist/languages/ru-RU.js +2 -2
  154. package/dist/languages/ru-RU.min.js +1 -1
  155. package/dist/languages/sr-SP.js +171 -0
  156. package/dist/languages/sr-SP.min.js +1 -0
  157. package/dist/languages/zh-CN.js +24 -24
  158. package/dist/languages/zh-CN.min.js +1 -1
  159. package/dist/languages/zh-TW.js +24 -24
  160. package/dist/languages/zh-TW.min.js +1 -1
  161. package/editorManager.js +120 -267
  162. package/editorManager.mjs +128 -278
  163. package/editors/autocompleteEditor/autocompleteEditor.js +22 -25
  164. package/editors/autocompleteEditor/autocompleteEditor.mjs +22 -25
  165. package/editors/baseEditor/baseEditor.js +205 -34
  166. package/editors/baseEditor/baseEditor.mjs +200 -32
  167. package/editors/checkboxEditor/checkboxEditor.js +2 -2
  168. package/editors/checkboxEditor/checkboxEditor.mjs +2 -2
  169. package/editors/dateEditor/dateEditor.js +21 -8
  170. package/editors/dateEditor/dateEditor.mjs +22 -9
  171. package/editors/dropdownEditor/dropdownEditor.js +3 -3
  172. package/editors/dropdownEditor/dropdownEditor.mjs +3 -3
  173. package/editors/handsontableEditor/handsontableEditor.js +106 -55
  174. package/editors/handsontableEditor/handsontableEditor.mjs +106 -55
  175. package/editors/index.d.ts +3 -0
  176. package/editors/index.js +6 -0
  177. package/editors/index.mjs +3 -1
  178. package/editors/numericEditor/numericEditor.js +2 -2
  179. package/editors/numericEditor/numericEditor.mjs +2 -2
  180. package/editors/passwordEditor/passwordEditor.js +3 -3
  181. package/editors/passwordEditor/passwordEditor.mjs +3 -3
  182. package/editors/selectEditor/selectEditor.js +65 -110
  183. package/editors/selectEditor/selectEditor.mjs +66 -109
  184. package/editors/textEditor/caretPositioner.js +49 -0
  185. package/editors/textEditor/caretPositioner.mjs +42 -0
  186. package/editors/textEditor/textEditor.js +205 -181
  187. package/editors/textEditor/textEditor.mjs +199 -179
  188. package/editors/timeEditor/index.d.ts +1 -0
  189. package/editors/timeEditor/index.js +9 -0
  190. package/editors/timeEditor/index.mjs +1 -0
  191. package/editors/timeEditor/timeEditor.d.ts +7 -0
  192. package/editors/timeEditor/timeEditor.js +105 -0
  193. package/editors/timeEditor/timeEditor.mjs +84 -0
  194. package/eventManager.js +4 -2
  195. package/eventManager.mjs +4 -2
  196. package/helpers/mixed.js +2 -2
  197. package/helpers/mixed.mjs +2 -2
  198. package/i18n/languages/ar-AR.js +41 -0
  199. package/i18n/languages/ar-AR.mjs +17 -0
  200. package/i18n/languages/cs-CZ.js +40 -0
  201. package/i18n/languages/cs-CZ.mjs +16 -0
  202. package/i18n/languages/index.js +12 -0
  203. package/i18n/languages/index.mjs +4 -1
  204. package/i18n/languages/sr-SP.js +40 -0
  205. package/i18n/languages/sr-SP.mjs +16 -0
  206. package/index.d.ts +4 -0
  207. package/languages/all.js +131 -34
  208. package/languages/ar-AR.js +167 -0
  209. package/languages/ar-AR.mjs +19 -0
  210. package/languages/cs-CZ.js +167 -0
  211. package/languages/cs-CZ.mjs +18 -0
  212. package/languages/de-CH.js +31 -29
  213. package/languages/de-DE.js +4 -2
  214. package/languages/en-US.js +4 -2
  215. package/languages/es-MX.js +4 -2
  216. package/languages/fr-FR.js +4 -2
  217. package/languages/index.js +131 -34
  218. package/languages/index.mjs +4 -1
  219. package/languages/it-IT.js +4 -2
  220. package/languages/ja-JP.js +36 -38
  221. package/languages/ko-KR.js +36 -39
  222. package/languages/lv-LV.js +2 -2
  223. package/languages/nb-NO.js +2 -2
  224. package/languages/nl-NL.js +2 -2
  225. package/languages/pl-PL.js +2 -2
  226. package/languages/pt-BR.js +2 -2
  227. package/languages/ru-RU.js +2 -2
  228. package/languages/sr-SP.js +171 -0
  229. package/languages/sr-SP.mjs +18 -0
  230. package/languages/zh-CN.js +24 -24
  231. package/languages/zh-TW.js +24 -24
  232. package/package.json +44 -4
  233. package/pluginHooks.js +49 -13
  234. package/pluginHooks.mjs +49 -13
  235. package/plugins/autoColumnSize/autoColumnSize.js +15 -10
  236. package/plugins/autoColumnSize/autoColumnSize.mjs +15 -10
  237. package/plugins/autoRowSize/autoRowSize.js +14 -9
  238. package/plugins/autoRowSize/autoRowSize.mjs +14 -9
  239. package/plugins/autofill/autofill.js +49 -33
  240. package/plugins/autofill/autofill.mjs +49 -32
  241. package/plugins/autofill/utils.js +10 -11
  242. package/plugins/autofill/utils.mjs +10 -10
  243. package/plugins/base/base.d.ts +8 -2
  244. package/plugins/base/base.js +67 -4
  245. package/plugins/base/base.mjs +66 -4
  246. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +3 -3
  247. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
  248. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +3 -3
  249. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +3 -3
  250. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +3 -3
  251. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +3 -3
  252. package/plugins/collapsibleColumns/collapsibleColumns.js +27 -9
  253. package/plugins/collapsibleColumns/collapsibleColumns.mjs +27 -9
  254. package/plugins/columnSorting/columnSorting.js +5 -7
  255. package/plugins/columnSorting/columnSorting.mjs +5 -6
  256. package/plugins/columnSummary/columnSummary.js +3 -3
  257. package/plugins/columnSummary/columnSummary.mjs +3 -3
  258. package/plugins/comments/commentEditor.js +18 -2
  259. package/plugins/comments/commentEditor.mjs +19 -3
  260. package/plugins/comments/comments.js +57 -46
  261. package/plugins/comments/comments.mjs +58 -46
  262. package/plugins/contextMenu/contextMenu.js +10 -6
  263. package/plugins/contextMenu/contextMenu.mjs +10 -6
  264. package/plugins/contextMenu/menu.js +222 -110
  265. package/plugins/contextMenu/menu.mjs +219 -111
  266. package/plugins/contextMenu/predefinedItems/columnLeft.js +12 -4
  267. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +11 -4
  268. package/plugins/contextMenu/predefinedItems/columnRight.js +9 -9
  269. package/plugins/contextMenu/predefinedItems/columnRight.mjs +9 -9
  270. package/plugins/contextMenu/utils.js +2 -2
  271. package/plugins/contextMenu/utils.mjs +2 -2
  272. package/plugins/copyPaste/copyPaste.js +31 -21
  273. package/plugins/copyPaste/copyPaste.mjs +30 -21
  274. package/plugins/customBorders/contextMenuItem/left.js +4 -3
  275. package/plugins/customBorders/contextMenuItem/left.mjs +4 -3
  276. package/plugins/customBorders/contextMenuItem/right.js +4 -3
  277. package/plugins/customBorders/contextMenuItem/right.mjs +4 -3
  278. package/plugins/customBorders/customBorders.js +144 -87
  279. package/plugins/customBorders/customBorders.mjs +143 -85
  280. package/plugins/customBorders/utils.js +131 -27
  281. package/plugins/customBorders/utils.mjs +115 -27
  282. package/plugins/dragToScroll/dragToScroll.js +10 -5
  283. package/plugins/dragToScroll/dragToScroll.mjs +10 -5
  284. package/plugins/dropdownMenu/dropdownMenu.js +9 -7
  285. package/plugins/dropdownMenu/dropdownMenu.mjs +9 -7
  286. package/plugins/exportFile/exportFile.js +2 -2
  287. package/plugins/exportFile/exportFile.mjs +2 -2
  288. package/plugins/exportFile/types/csv.js +2 -2
  289. package/plugins/exportFile/types/csv.mjs +2 -2
  290. package/plugins/filters/component/actionBar.js +2 -2
  291. package/plugins/filters/component/actionBar.mjs +2 -2
  292. package/plugins/filters/component/condition.js +3 -3
  293. package/plugins/filters/component/condition.mjs +3 -3
  294. package/plugins/filters/component/operators.js +2 -2
  295. package/plugins/filters/component/operators.mjs +2 -2
  296. package/plugins/filters/component/value.js +3 -3
  297. package/plugins/filters/component/value.mjs +3 -3
  298. package/plugins/filters/filters.js +11 -8
  299. package/plugins/filters/filters.mjs +11 -8
  300. package/plugins/filters/ui/input.js +3 -3
  301. package/plugins/filters/ui/input.mjs +3 -3
  302. package/plugins/filters/ui/link.js +3 -3
  303. package/plugins/filters/ui/link.mjs +3 -3
  304. package/plugins/filters/ui/multipleSelect.js +18 -31
  305. package/plugins/filters/ui/multipleSelect.mjs +18 -31
  306. package/plugins/filters/ui/radioInput.js +3 -3
  307. package/plugins/filters/ui/radioInput.mjs +3 -3
  308. package/plugins/filters/ui/select.js +4 -4
  309. package/plugins/filters/ui/select.mjs +4 -4
  310. package/plugins/formulas/formulas.js +14 -9
  311. package/plugins/formulas/formulas.mjs +14 -9
  312. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -4
  313. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +2 -4
  314. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +5 -5
  315. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +5 -5
  316. package/plugins/hiddenColumns/hiddenColumns.js +9 -4
  317. package/plugins/hiddenColumns/hiddenColumns.mjs +9 -4
  318. package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -4
  319. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +2 -4
  320. package/plugins/hiddenRows/contextMenuItem/showRow.js +5 -5
  321. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +5 -5
  322. package/plugins/hiddenRows/hiddenRows.js +9 -4
  323. package/plugins/hiddenRows/hiddenRows.mjs +9 -4
  324. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  325. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  326. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  327. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  328. package/plugins/manualColumnFreeze/manualColumnFreeze.js +54 -15
  329. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +49 -15
  330. package/plugins/manualColumnMove/manualColumnMove.js +70 -70
  331. package/plugins/manualColumnMove/manualColumnMove.mjs +71 -71
  332. package/plugins/manualColumnMove/ui/_base.js +25 -12
  333. package/plugins/manualColumnMove/ui/_base.mjs +24 -12
  334. package/plugins/manualColumnMove/ui/backlight.js +3 -3
  335. package/plugins/manualColumnMove/ui/backlight.mjs +3 -3
  336. package/plugins/manualColumnMove/ui/guideline.js +3 -3
  337. package/plugins/manualColumnMove/ui/guideline.mjs +3 -3
  338. package/plugins/manualColumnResize/manualColumnResize.js +37 -21
  339. package/plugins/manualColumnResize/manualColumnResize.mjs +37 -21
  340. package/plugins/manualRowMove/manualRowMove.js +26 -34
  341. package/plugins/manualRowMove/manualRowMove.mjs +26 -34
  342. package/plugins/manualRowMove/ui/backlight.js +3 -3
  343. package/plugins/manualRowMove/ui/backlight.mjs +3 -3
  344. package/plugins/manualRowMove/ui/guideline.js +3 -3
  345. package/plugins/manualRowMove/ui/guideline.mjs +3 -3
  346. package/plugins/manualRowResize/manualRowResize.js +34 -19
  347. package/plugins/manualRowResize/manualRowResize.mjs +34 -19
  348. package/plugins/mergeCells/calculations/autofill.js +6 -5
  349. package/plugins/mergeCells/calculations/autofill.mjs +6 -4
  350. package/plugins/mergeCells/calculations/selection.js +9 -4
  351. package/plugins/mergeCells/calculations/selection.mjs +9 -4
  352. package/plugins/mergeCells/cellCoords.js +16 -4
  353. package/plugins/mergeCells/cellCoords.mjs +16 -3
  354. package/plugins/mergeCells/cellsCollection.js +30 -23
  355. package/plugins/mergeCells/cellsCollection.mjs +30 -22
  356. package/plugins/mergeCells/mergeCells.js +94 -61
  357. package/plugins/mergeCells/mergeCells.mjs +94 -59
  358. package/plugins/multiColumnSorting/multiColumnSorting.js +4 -6
  359. package/plugins/multiColumnSorting/multiColumnSorting.mjs +4 -5
  360. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +51 -57
  361. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +52 -57
  362. package/plugins/nestedHeaders/nestedHeaders.js +31 -20
  363. package/plugins/nestedHeaders/nestedHeaders.mjs +31 -20
  364. package/plugins/nestedHeaders/stateManager/utils.js +3 -4
  365. package/plugins/nestedHeaders/stateManager/utils.mjs +3 -4
  366. package/plugins/nestedHeaders/utils/ghostTable.js +114 -75
  367. package/plugins/nestedHeaders/utils/ghostTable.mjs +114 -74
  368. package/plugins/nestedRows/nestedRows.js +9 -4
  369. package/plugins/nestedRows/nestedRows.mjs +9 -4
  370. package/plugins/nestedRows/ui/collapsing.js +2 -2
  371. package/plugins/nestedRows/ui/collapsing.mjs +2 -2
  372. package/plugins/nestedRows/ui/contextMenu.js +2 -2
  373. package/plugins/nestedRows/ui/contextMenu.mjs +2 -2
  374. package/plugins/nestedRows/ui/headers.js +2 -2
  375. package/plugins/nestedRows/ui/headers.mjs +2 -2
  376. package/plugins/nestedRows/utils/rowMoveController.js +2 -4
  377. package/plugins/nestedRows/utils/rowMoveController.mjs +2 -3
  378. package/plugins/persistentState/persistentState.js +9 -4
  379. package/plugins/persistentState/persistentState.mjs +9 -4
  380. package/plugins/search/search.js +9 -4
  381. package/plugins/search/search.mjs +9 -4
  382. package/plugins/touchScroll/touchScroll.js +27 -21
  383. package/plugins/touchScroll/touchScroll.mjs +27 -21
  384. package/plugins/trimRows/trimRows.js +9 -4
  385. package/plugins/trimRows/trimRows.mjs +9 -4
  386. package/plugins/undoRedo/undoRedo.js +53 -47
  387. package/plugins/undoRedo/undoRedo.mjs +53 -46
  388. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -3
  389. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -2
  390. package/renderers/checkboxRenderer/checkboxRenderer.js +48 -43
  391. package/renderers/checkboxRenderer/checkboxRenderer.mjs +48 -41
  392. package/renderers/index.d.ts +4 -1
  393. package/renderers/index.js +6 -0
  394. package/renderers/index.mjs +3 -1
  395. package/renderers/numericRenderer/numericRenderer.js +1 -0
  396. package/renderers/numericRenderer/numericRenderer.mjs +1 -0
  397. package/renderers/timeRenderer/index.d.ts +1 -0
  398. package/renderers/timeRenderer/index.js +9 -0
  399. package/renderers/timeRenderer/index.mjs +1 -0
  400. package/renderers/timeRenderer/timeRenderer.d.ts +5 -0
  401. package/renderers/timeRenderer/timeRenderer.js +31 -0
  402. package/renderers/timeRenderer/timeRenderer.mjs +20 -0
  403. package/selection/highlight/visualSelection.js +94 -220
  404. package/selection/highlight/visualSelection.mjs +91 -213
  405. package/selection/mouseEventHandler.js +15 -10
  406. package/selection/mouseEventHandler.mjs +15 -9
  407. package/selection/range.js +4 -5
  408. package/selection/range.mjs +4 -5
  409. package/selection/selection.js +35 -22
  410. package/selection/selection.mjs +35 -20
  411. package/selection/transformation.js +4 -6
  412. package/selection/transformation.mjs +4 -5
  413. package/settings.d.ts +3 -1
  414. package/shortcuts/context.d.ts +20 -0
  415. package/shortcuts/context.js +296 -0
  416. package/shortcuts/context.mjs +268 -0
  417. package/shortcuts/index.d.ts +1 -0
  418. package/shortcuts/index.js +8 -0
  419. package/shortcuts/index.mjs +1 -0
  420. package/shortcuts/keyObserver.js +67 -0
  421. package/shortcuts/keyObserver.mjs +58 -0
  422. package/shortcuts/manager.d.ts +10 -0
  423. package/shortcuts/manager.js +185 -0
  424. package/shortcuts/manager.mjs +176 -0
  425. package/shortcuts/recorder.js +192 -0
  426. package/shortcuts/recorder.mjs +180 -0
  427. package/shortcuts/utils.js +77 -0
  428. package/shortcuts/utils.mjs +54 -0
  429. package/tableView.js +164 -84
  430. package/tableView.mjs +164 -74
  431. package/translations/changesObservable/observer.js +0 -1
  432. package/translations/changesObservable/observer.mjs +0 -1
  433. package/translations/indexMapper.d.ts +3 -1
  434. package/translations/indexMapper.js +89 -11
  435. package/translations/indexMapper.mjs +91 -20
  436. package/translations/mapCollections/aggregatedCollection.js +2 -2
  437. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  438. package/translations/maps/hidingMap.js +4 -2
  439. package/translations/maps/hidingMap.mjs +4 -2
  440. package/translations/maps/indexMap.js +2 -0
  441. package/translations/maps/indexMap.mjs +2 -0
  442. package/translations/maps/indexesSequence.js +5 -3
  443. package/translations/maps/indexesSequence.mjs +5 -3
  444. package/translations/maps/linkedPhysicalIndexToValueMap.js +5 -3
  445. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +5 -3
  446. package/translations/maps/physicalIndexToValueMap.js +5 -3
  447. package/translations/maps/physicalIndexToValueMap.mjs +5 -3
  448. package/translations/maps/trimmingMap.js +4 -2
  449. package/translations/maps/trimmingMap.mjs +4 -2
  450. package/utils/dataStructures/uniqueMap.js +14 -1
  451. package/utils/dataStructures/uniqueMap.mjs +14 -1
  452. package/utils/dataStructures/uniqueSet.js +9 -0
  453. package/utils/dataStructures/uniqueSet.mjs +9 -0
  454. package/utils/ghostTable.js +1 -1
  455. package/utils/ghostTable.mjs +1 -1
  456. package/3rdparty/walkontable/src/core.js +0 -309
  457. package/3rdparty/walkontable/src/core.mjs +0 -293
  458. package/3rdparty/walkontable/src/overlay/registerer.js +0 -70
  459. package/3rdparty/walkontable/src/overlay/registerer.mjs +0 -57
  460. package/utils/keyStateObserver.js +0 -121
  461. package/utils/keyStateObserver.mjs +0 -103
@@ -1,8 +1,5 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
2
 
3
- import "core-js/modules/es.array.includes.js";
4
- import "core-js/modules/es.array.concat.js";
5
- import "core-js/modules/es.array.slice.js";
6
3
  import "core-js/modules/es.array.index-of.js";
7
4
  import "core-js/modules/es.object.set-prototype-of.js";
8
5
  import "core-js/modules/es.object.get-prototype-of.js";
@@ -16,6 +13,22 @@ import "core-js/modules/es.symbol.iterator.js";
16
13
  import "core-js/modules/es.array.iterator.js";
17
14
  import "core-js/modules/es.string.iterator.js";
18
15
  import "core-js/modules/web.dom-collections.iterator.js";
16
+ import "core-js/modules/es.array.slice.js";
17
+ import "core-js/modules/es.function.name.js";
18
+ import "core-js/modules/es.array.from.js";
19
+ import "core-js/modules/es.regexp.exec.js";
20
+
21
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
22
+
23
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
24
+
25
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
26
+
27
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
28
+
29
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
30
+
31
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19
32
 
20
33
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
21
34
 
@@ -23,13 +36,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
23
36
 
24
37
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
25
38
 
26
- function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
39
+ function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
27
40
 
28
41
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
29
42
 
30
43
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
31
44
 
32
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
45
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
33
46
 
34
47
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
35
48
 
@@ -39,18 +52,22 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
39
52
 
40
53
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
54
 
42
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
55
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
43
56
 
44
57
  import { BaseEditor, EDITOR_STATE } from "../baseEditor/index.mjs";
45
58
  import EventManager from "../../eventManager.mjs";
46
59
  import { isMobileBrowser, isIE, isEdge, isIOS } from "../../helpers/browser.mjs";
47
- import { addClass, getCaretPosition, getComputedStyle, getCssTransform, getScrollbarWidth, innerWidth, offset, resetCssTransform, setCaretPosition, hasVerticalScrollbar, hasHorizontalScrollbar, hasClass, removeClass } from "../../helpers/dom/element.mjs";
48
- import { stopImmediatePropagation, isImmediatePropagationStopped } from "../../helpers/dom/event.mjs";
60
+ import { addClass, getComputedStyle, setCaretPosition, hasClass, removeClass } from "../../helpers/dom/element.mjs";
49
61
  import { rangeEach } from "../../helpers/number.mjs";
50
62
  import { KEY_CODES } from "../../helpers/unicode.mjs";
51
63
  import { autoResize } from "../../3rdparty/autoResize/index.mjs";
64
+ import { isDefined } from "../../helpers/mixed.mjs";
65
+ import { SHORTCUTS_GROUP_NAVIGATION, SHORTCUTS_GROUP_EDITOR as EDITOR_MANAGER_GROUP } from "../../editorManager.mjs";
66
+ import { SHORTCUTS_GROUP_EDITOR } from "../baseEditor/baseEditor.mjs";
67
+ import { updateCaretPosition } from "./caretPositioner.mjs";
52
68
  var EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
53
69
  var EDITOR_HIDDEN_CLASS_NAME = 'ht_editor_hidden';
70
+ var SHORTCUTS_GROUP = 'textEditor';
54
71
  export var EDITOR_TYPE = 'text';
55
72
  /**
56
73
  * @private
@@ -173,9 +190,12 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
173
190
  this.refreshDimensions(); // need it instantly, to prevent https://github.com/handsontable/handsontable/issues/348
174
191
 
175
192
  this.showEditableElement();
176
- this.addHook('beforeKeyDown', function (event) {
177
- return _this2.onBeforeKeyDown(event);
193
+ var shortcutManager = this.hot.getShortcutManager();
194
+ shortcutManager.setActiveContextName('editor');
195
+ this.addHook('afterDocumentKeyDown', function (event) {
196
+ return _this2.onAfterDocumentKeyDown(event);
178
197
  });
198
+ this.registerShortcuts();
179
199
  }
180
200
  /**
181
201
  * Closes the editor.
@@ -191,7 +211,8 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
191
211
  }
192
212
 
193
213
  this.hideEditableElement();
194
- this.removeHooksByKey('beforeKeyDown');
214
+ this.unregisterShortcuts();
215
+ this.removeHooksByKey('afterDocumentKeyDown');
195
216
  }
196
217
  /**
197
218
  * Prepares editor's meta data.
@@ -217,7 +238,7 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
217
238
  fragmentSelection = cellProperties.fragmentSelection;
218
239
 
219
240
  if (allowInvalid) {
220
- // Remove an empty space from texarea (added by copyPaste plugin to make copy/paste
241
+ // Remove an empty space from textarea (added by copyPaste plugin to make copy/paste
221
242
  // functionality work with IME)
222
243
  this.TEXTAREA.value = '';
223
244
  }
@@ -249,7 +270,7 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
249
270
  return;
250
271
  }
251
272
 
252
- this.TEXTAREA.value = ''; // Remove an empty space from texarea (added by copyPaste plugin to make copy/paste functionality work with IME).
273
+ this.TEXTAREA.value = ''; // Remove an empty space from textarea (added by copyPaste plugin to make copy/paste functionality work with IME).
253
274
 
254
275
  _get(_getPrototypeOf(TextEditor.prototype), "beginEditing", this).call(this, newInitialValue, event);
255
276
  }
@@ -262,7 +283,7 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
262
283
  value: function focus() {
263
284
  // For IME editor textarea element must be focused using ".select" method.
264
285
  // Using ".focus" browser automatically scroll into the focused element which
265
- // is undesire effect.
286
+ // is undesired effect.
266
287
  this.TEXTAREA.select();
267
288
  setCaretPosition(this.TEXTAREA, this.TEXTAREA.value.length);
268
289
  }
@@ -311,11 +332,7 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
311
332
  this.textareaStyle.overflowY = 'visible';
312
333
  this.textareaParentStyle.opacity = '0';
313
334
  this.textareaParentStyle.height = '1px';
314
-
315
- if (hasClass(this.TEXTAREA_PARENT, this.layerClass)) {
316
- removeClass(this.TEXTAREA_PARENT, this.layerClass);
317
- }
318
-
335
+ removeClass(this.TEXTAREA_PARENT, this.layerClass);
319
336
  addClass(this.TEXTAREA_PARENT, EDITOR_HIDDEN_CLASS_NAME);
320
337
  }
321
338
  /**
@@ -330,7 +347,7 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
330
347
  this.textareaParentStyle.height = '';
331
348
  this.textareaParentStyle.overflow = '';
332
349
  this.textareaParentStyle.position = '';
333
- this.textareaParentStyle.right = 'auto';
350
+ this.textareaParentStyle[this.hot.isRtl() ? 'left' : 'right'] = 'auto';
334
351
  this.textareaParentStyle.opacity = '1';
335
352
  this.textareaStyle.textIndent = '';
336
353
  this.textareaStyle.overflowY = 'hidden';
@@ -398,98 +415,34 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
398
415
  return;
399
416
  }
400
417
 
401
- var _this$hot$view$wt = this.hot.view.wt,
402
- wtOverlays = _this$hot$view$wt.wtOverlays,
403
- wtViewport = _this$hot$view$wt.wtViewport;
404
- var currentOffset = offset(this.TD);
405
- var containerOffset = offset(this.hot.rootElement);
406
- var scrollableContainerTop = wtOverlays.topOverlay.holder;
407
- var scrollableContainerLeft = wtOverlays.leftOverlay.holder;
408
- var containerScrollTop = scrollableContainerTop !== this.hot.rootWindow ? scrollableContainerTop.scrollTop : 0;
409
- var containerScrollLeft = scrollableContainerLeft !== this.hot.rootWindow ? scrollableContainerLeft.scrollLeft : 0;
410
- var editorSection = this.checkEditorSection();
411
- var scrollTop = ['', 'left'].includes(editorSection) ? containerScrollTop : 0;
412
- var scrollLeft = ['', 'top', 'bottom'].includes(editorSection) ? containerScrollLeft : 0; // If colHeaders is disabled, cells in the first row have border-top
413
-
414
- var editTopModifier = currentOffset.top === containerOffset.top ? 0 : 1;
415
- var backgroundColor = this.TD.style.backgroundColor;
416
- var editTop = currentOffset.top - containerOffset.top - editTopModifier - scrollTop;
417
- var editLeft = currentOffset.left - containerOffset.left - 1 - scrollLeft;
418
- var cssTransformOffset; // TODO: Refactor this to the new instance.getCell method (from #ply-59), after 0.12.1 is released
419
-
420
- switch (editorSection) {
421
- case 'top':
422
- cssTransformOffset = getCssTransform(wtOverlays.topOverlay.clone.wtTable.holder.parentNode);
423
- break;
424
-
425
- case 'left':
426
- cssTransformOffset = getCssTransform(wtOverlays.leftOverlay.clone.wtTable.holder.parentNode);
427
- break;
428
-
429
- case 'top-left-corner':
430
- cssTransformOffset = getCssTransform(wtOverlays.topLeftCornerOverlay.clone.wtTable.holder.parentNode);
431
- break;
432
-
433
- case 'bottom-left-corner':
434
- cssTransformOffset = getCssTransform(wtOverlays.bottomLeftCornerOverlay.clone.wtTable.holder.parentNode);
435
- break;
436
-
437
- case 'bottom':
438
- cssTransformOffset = getCssTransform(wtOverlays.bottomOverlay.clone.wtTable.holder.parentNode);
439
- break;
440
-
441
- default:
442
- break;
443
- }
444
-
445
- var hasColumnHeaders = this.hot.hasColHeaders();
446
- var renderableRow = this.hot.rowIndexMapper.getRenderableFromVisualIndex(this.row);
447
- var renderableColumn = this.hot.columnIndexMapper.getRenderableFromVisualIndex(this.col);
448
- var nrOfRenderableRowIndexes = this.hot.rowIndexMapper.getRenderableIndexesLength();
449
- var firstRowIndexOfTheBottomOverlay = nrOfRenderableRowIndexes - this.hot.view.wt.getSetting('fixedRowsBottom');
450
-
451
- if (hasColumnHeaders && renderableRow <= 0 || renderableRow === firstRowIndexOfTheBottomOverlay) {
452
- editTop += 1;
453
- }
418
+ var _this$getEditedCellRe = this.getEditedCellRect(),
419
+ top = _this$getEditedCellRe.top,
420
+ start = _this$getEditedCellRe.start,
421
+ width = _this$getEditedCellRe.width,
422
+ maxWidth = _this$getEditedCellRe.maxWidth,
423
+ height = _this$getEditedCellRe.height,
424
+ maxHeight = _this$getEditedCellRe.maxHeight;
454
425
 
455
- if (renderableColumn <= 0) {
456
- editLeft += 1;
457
- }
458
-
459
- if (cssTransformOffset && cssTransformOffset !== -1) {
460
- this.textareaParentStyle[cssTransformOffset[0]] = cssTransformOffset[1];
461
- } else {
462
- resetCssTransform(this.TEXTAREA_PARENT);
463
- }
464
-
465
- this.textareaParentStyle.top = "".concat(editTop, "px");
466
- this.textareaParentStyle.left = "".concat(editLeft, "px");
426
+ this.textareaParentStyle.top = "".concat(top, "px");
427
+ this.textareaParentStyle[this.hot.isRtl() ? 'right' : 'left'] = "".concat(start, "px");
467
428
  this.showEditableElement();
468
- var firstRowOffset = wtViewport.rowsRenderCalculator.startPosition;
469
- var firstColumnOffset = wtViewport.columnsRenderCalculator.startPosition;
470
- var horizontalScrollPosition = wtOverlays.leftOverlay.getScrollPosition();
471
- var verticalScrollPosition = wtOverlays.topOverlay.getScrollPosition();
472
- var scrollbarWidth = getScrollbarWidth(this.hot.rootDocument);
473
- var cellTopOffset = this.TD.offsetTop + firstRowOffset - verticalScrollPosition;
474
- var cellLeftOffset = this.TD.offsetLeft + firstColumnOffset - horizontalScrollPosition;
475
- var width = innerWidth(this.TD) - 8;
476
- var actualVerticalScrollbarWidth = hasVerticalScrollbar(scrollableContainerTop) ? scrollbarWidth : 0;
477
- var actualHorizontalScrollbarWidth = hasHorizontalScrollbar(scrollableContainerLeft) ? scrollbarWidth : 0;
478
- var maxWidth = this.hot.view.maximumVisibleElementWidth(cellLeftOffset) - 9 - actualVerticalScrollbarWidth;
479
- var height = this.TD.scrollHeight + 1;
480
- var maxHeight = Math.max(this.hot.view.maximumVisibleElementHeight(cellTopOffset) - actualHorizontalScrollbarWidth, 23); // eslint-disable-line max-len
481
-
482
429
  var cellComputedStyle = getComputedStyle(this.TD, this.hot.rootWindow);
483
430
  this.TEXTAREA.style.fontSize = cellComputedStyle.fontSize;
484
431
  this.TEXTAREA.style.fontFamily = cellComputedStyle.fontFamily;
485
- this.TEXTAREA.style.backgroundColor = backgroundColor;
432
+ this.TEXTAREA.style.backgroundColor = this.TD.style.backgroundColor;
433
+ var textareaComputedStyle = getComputedStyle(this.TEXTAREA);
434
+ var horizontalPadding = parseInt(textareaComputedStyle.paddingLeft, 10) + parseInt(textareaComputedStyle.paddingRight, 10);
435
+ var verticalPadding = parseInt(textareaComputedStyle.paddingTop, 10) + parseInt(textareaComputedStyle.paddingBottom, 10);
436
+ var finalWidth = width - horizontalPadding;
437
+ var finalHeight = height - verticalPadding;
438
+ var finalMaxWidth = maxWidth - horizontalPadding;
439
+ var finalMaxHeight = maxHeight - verticalPadding;
486
440
  this.autoResize.init(this.TEXTAREA, {
487
- minHeight: Math.min(height, maxHeight),
488
- maxHeight: maxHeight,
489
- // TEXTAREA should never be higher than visible part of the viewport (should not cover the scrollbar)
490
- minWidth: Math.min(width, maxWidth),
491
- maxWidth: maxWidth // TEXTAREA should never be wider than visible part of the viewport (should not cover the scrollbar)
492
-
441
+ minWidth: Math.min(finalWidth, finalMaxWidth),
442
+ minHeight: Math.min(finalHeight, finalMaxHeight),
443
+ // TEXTAREA should never be wider than visible part of the viewport (should not cover the scrollbar)
444
+ maxWidth: finalMaxWidth,
445
+ maxHeight: finalMaxHeight
493
446
  }, true);
494
447
  }
495
448
  /**
@@ -556,86 +509,153 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
556
509
  this.clearHooks();
557
510
  }
558
511
  /**
559
- * OnBeforeKeyDown callback.
512
+ * Register shortcuts responsible for handling editor.
560
513
  *
561
- * @param {Event} event The keyboard event object.
514
+ * @private
562
515
  */
563
516
 
564
517
  }, {
565
- key: "onBeforeKeyDown",
566
- value: function onBeforeKeyDown(event) {
567
- // catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
568
- var ctrlDown = (event.ctrlKey || event.metaKey) && !event.altKey; // Process only events that have been fired in the editor
518
+ key: "registerShortcuts",
519
+ value: function registerShortcuts() {
520
+ var _this4 = this;
521
+
522
+ var shortcutManager = this.hot.getShortcutManager();
523
+ var editorContext = shortcutManager.getContext('editor');
524
+ var contextConfig = {
525
+ runOnlyIf: function runOnlyIf() {
526
+ return isDefined(_this4.hot.getSelected());
527
+ },
528
+ group: SHORTCUTS_GROUP
529
+ };
530
+
531
+ var insertNewLine = function insertNewLine() {
532
+ _this4.hot.rootDocument.execCommand('insertText', false, '\n');
533
+ };
534
+
535
+ editorContext.addShortcuts([{
536
+ keys: [['Tab']],
537
+ // TODO: Duplicated part of code (callback to shortcut).
538
+ callback: function callback(event) {
539
+ var tableMeta = _this4.hot.getSettings();
540
+
541
+ var tabMoves = typeof tableMeta.tabMoves === 'function' ? tableMeta.tabMoves(event) : tableMeta.tabMoves;
542
+
543
+ _this4.hot.selection.transformStart(tabMoves.row, tabMoves.col, true);
544
+ }
545
+ }, {
546
+ keys: [['Shift', 'Tab']],
547
+ // TODO: Duplicated part of code (callback to shortcut).
548
+ callback: function callback(event) {
549
+ var tableMeta = _this4.hot.getSettings();
569
550
 
570
- if (event.target !== this.TEXTAREA || isImmediatePropagationStopped(event)) {
571
- return;
572
- }
551
+ var tabMoves = typeof tableMeta.tabMoves === 'function' ? tableMeta.tabMoves(event) : tableMeta.tabMoves;
573
552
 
574
- switch (event.keyCode) {
575
- case KEY_CODES.ARROW_RIGHT:
576
- if (this.isInFullEditMode()) {
577
- if (!this.isWaiting() && !this.allowKeyEventPropagation(event.keyCode)) {
578
- stopImmediatePropagation(event);
579
- }
580
- }
581
-
582
- break;
583
-
584
- case KEY_CODES.ARROW_LEFT:
585
- if (this.isInFullEditMode()) {
586
- if (!this.isWaiting() && !this.allowKeyEventPropagation(event.keyCode)) {
587
- stopImmediatePropagation(event);
588
- }
589
- }
590
-
591
- break;
592
-
593
- case KEY_CODES.ARROW_UP:
594
- case KEY_CODES.ARROW_DOWN:
595
- if (this.isInFullEditMode()) {
596
- if (!this.isWaiting() && !this.allowKeyEventPropagation(event.keyCode)) {
597
- stopImmediatePropagation(event);
598
- }
599
- }
600
-
601
- break;
602
-
603
- case KEY_CODES.ENTER:
604
- {
605
- var isMultipleSelection = this.hot.selection.isMultiple();
606
-
607
- if (ctrlDown && !isMultipleSelection || event.altKey) {
608
- // if ctrl+enter or alt+enter, add new line
609
- if (this.isOpened()) {
610
- var caretPosition = getCaretPosition(this.TEXTAREA);
611
- var value = this.getValue();
612
- var newValue = "".concat(value.slice(0, caretPosition), "\n").concat(value.slice(caretPosition));
613
- this.setValue(newValue);
614
- setCaretPosition(this.TEXTAREA, caretPosition + 1);
615
- } else {
616
- this.beginEditing("".concat(this.originalValue, "\n"));
617
- }
618
-
619
- stopImmediatePropagation(event);
620
- }
621
-
622
- event.preventDefault(); // don't add newline to field
623
-
624
- break;
625
- }
626
-
627
- case KEY_CODES.BACKSPACE:
628
- case KEY_CODES.DELETE:
629
- case KEY_CODES.HOME:
630
- case KEY_CODES.END:
631
- stopImmediatePropagation(event); // backspace, delete, home, end should only work locally when cell is edited (not in table context)
632
-
633
- break;
634
-
635
- default:
636
- break;
637
- }
553
+ _this4.hot.selection.transformStart(-tabMoves.row, -tabMoves.col);
554
+ }
555
+ }, {
556
+ keys: [['Control', 'Enter']],
557
+ callback: function callback() {
558
+ insertNewLine();
559
+ return false; // Will block closing editor.
560
+ },
561
+ runOnlyIf: function runOnlyIf(event) {
562
+ return !_this4.hot.selection.isMultiple() && // We trigger a data population for multiple selection.
563
+ // catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
564
+ !event.altKey;
565
+ },
566
+ relativeToGroup: EDITOR_MANAGER_GROUP,
567
+ position: 'before'
568
+ }, {
569
+ keys: [['Meta', 'Enter']],
570
+ callback: function callback() {
571
+ insertNewLine();
572
+ return false; // Will block closing editor.
573
+ },
574
+ runOnlyIf: function runOnlyIf() {
575
+ return !_this4.hot.selection.isMultiple();
576
+ },
577
+ // We trigger a data population for multiple selection.
578
+ relativeToGroup: EDITOR_MANAGER_GROUP,
579
+ position: 'before'
580
+ }, {
581
+ keys: [['Alt', 'Enter']],
582
+ callback: function callback() {
583
+ insertNewLine();
584
+ return false; // Will block closing editor.
585
+ },
586
+ relativeToGroup: EDITOR_MANAGER_GROUP,
587
+ position: 'before'
588
+ }, {
589
+ // TODO: Duplicated part of code (callback to shortcut)
590
+ keys: [['PageUp']],
591
+ callback: function callback() {
592
+ _this4.hot.selection.transformStart(-_this4.hot.countVisibleRows(), 0);
593
+ }
594
+ }, {
595
+ // TODO: Duplicated part of code (callback to shortcut)
596
+ keys: [['PageDown']],
597
+ callback: function callback() {
598
+ _this4.hot.selection.transformStart(_this4.hot.countVisibleRows(), 0);
599
+ }
600
+ }, {
601
+ keys: [['Home']],
602
+ callback: function callback(event, _ref) {
603
+ var _ref2 = _slicedToArray(_ref, 1),
604
+ keyName = _ref2[0];
605
+
606
+ updateCaretPosition(keyName, _this4.TEXTAREA);
607
+ }
608
+ }, {
609
+ keys: [['End']],
610
+ callback: function callback(event, _ref3) {
611
+ var _ref4 = _slicedToArray(_ref3, 1),
612
+ keyName = _ref4[0];
613
+
614
+ updateCaretPosition(keyName, _this4.TEXTAREA);
615
+ }
616
+ }, {
617
+ keys: [['Control/Meta', 'Z']],
618
+ preventDefault: false,
619
+ callback: function callback() {
620
+ _this4.hot._registerTimeout(function () {
621
+ _this4.autoResize.resize();
622
+ }, 10);
623
+ }
624
+ }, {
625
+ keys: [['Control/Meta', 'Shift', 'Z']],
626
+ preventDefault: false,
627
+ callback: function callback() {
628
+ _this4.hot._registerTimeout(function () {
629
+ _this4.autoResize.resize();
630
+ }, 10);
631
+ }
632
+ }], contextConfig);
633
+ }
634
+ /**
635
+ * Unregister shortcuts responsible for handling editor.
636
+ *
637
+ * @private
638
+ */
638
639
 
640
+ }, {
641
+ key: "unregisterShortcuts",
642
+ value: function unregisterShortcuts() {
643
+ var shortcutManager = this.hot.getShortcutManager();
644
+ var editorContext = shortcutManager.getContext('editor');
645
+ editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_NAVIGATION);
646
+ editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP);
647
+ editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_EDITOR);
648
+ }
649
+ /**
650
+ * OnAfterDocumentKeyDown callback.
651
+ *
652
+ * @private
653
+ * @param {KeyboardEvent} event The keyboard event object.
654
+ */
655
+
656
+ }, {
657
+ key: "onAfterDocumentKeyDown",
658
+ value: function onAfterDocumentKeyDown(event) {
639
659
  var arrowKeyCodes = [KEY_CODES.ARROW_UP, KEY_CODES.ARROW_RIGHT, KEY_CODES.ARROW_DOWN, KEY_CODES.ARROW_LEFT];
640
660
 
641
661
  if (arrowKeyCodes.indexOf(event.keyCode) === -1) {
@@ -0,0 +1 @@
1
+ export { EDITOR_TYPE, TimeEditor } from './timeEditor';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.TimeEditor = exports.EDITOR_TYPE = void 0;
5
+
6
+ var _timeEditor = require("./timeEditor");
7
+
8
+ exports.EDITOR_TYPE = _timeEditor.EDITOR_TYPE;
9
+ exports.TimeEditor = _timeEditor.TimeEditor;
@@ -0,0 +1 @@
1
+ export { EDITOR_TYPE, TimeEditor } from "./timeEditor.mjs";
@@ -0,0 +1,7 @@
1
+ import Core from '../../core';
2
+ import { TextEditor } from '../textEditor';
3
+
4
+ export const EDITOR_TYPE: 'time';
5
+ export class TimeEditor extends TextEditor {
6
+ constructor(instance: Core);
7
+ }
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ require("core-js/modules/es.object.to-string.js");
6
+
7
+ require("core-js/modules/es.reflect.construct.js");
8
+
9
+ require("core-js/modules/es.reflect.get.js");
10
+
11
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
12
+
13
+ require("core-js/modules/es.symbol.js");
14
+
15
+ require("core-js/modules/es.symbol.description.js");
16
+
17
+ require("core-js/modules/es.symbol.iterator.js");
18
+
19
+ require("core-js/modules/es.array.iterator.js");
20
+
21
+ require("core-js/modules/es.string.iterator.js");
22
+
23
+ require("core-js/modules/web.dom-collections.iterator.js");
24
+
25
+ exports.__esModule = true;
26
+ exports.TimeEditor = exports.EDITOR_TYPE = void 0;
27
+
28
+ require("core-js/modules/es.object.set-prototype-of.js");
29
+
30
+ require("core-js/modules/es.object.get-prototype-of.js");
31
+
32
+ var _textEditor = require("../textEditor");
33
+
34
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
35
+
36
+ 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
+
38
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
39
+
40
+ function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
41
+
42
+ function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
43
+
44
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
45
+
46
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
47
+
48
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
49
+
50
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
51
+
52
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
53
+
54
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
55
+
56
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
57
+
58
+ var EDITOR_TYPE = 'time';
59
+ /**
60
+ * @private
61
+ * @class TimeEditor
62
+ */
63
+
64
+ exports.EDITOR_TYPE = EDITOR_TYPE;
65
+
66
+ var TimeEditor = /*#__PURE__*/function (_TextEditor) {
67
+ _inherits(TimeEditor, _TextEditor);
68
+
69
+ var _super = _createSuper(TimeEditor);
70
+
71
+ function TimeEditor() {
72
+ _classCallCheck(this, TimeEditor);
73
+
74
+ return _super.apply(this, arguments);
75
+ }
76
+
77
+ _createClass(TimeEditor, [{
78
+ key: "prepare",
79
+ value:
80
+ /**
81
+ * Prepares editor's meta data.
82
+ *
83
+ * @param {number} row The visual row index.
84
+ * @param {number} col The visual column index.
85
+ * @param {number|string} prop The column property (passed when datasource is an array of objects).
86
+ * @param {HTMLTableCellElement} td The rendered cell element.
87
+ * @param {*} value The rendered value.
88
+ * @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
89
+ */
90
+ function prepare(row, col, prop, td, value, cellProperties) {
91
+ _get(_getPrototypeOf(TimeEditor.prototype), "prepare", this).call(this, row, col, prop, td, value, cellProperties);
92
+
93
+ this.TEXTAREA.dir = 'ltr';
94
+ }
95
+ }], [{
96
+ key: "EDITOR_TYPE",
97
+ get: function get() {
98
+ return EDITOR_TYPE;
99
+ }
100
+ }]);
101
+
102
+ return TimeEditor;
103
+ }(_textEditor.TextEditor);
104
+
105
+ exports.TimeEditor = TimeEditor;