handsontable 0.0.0-next-9059914-20231025 → 0.0.0-next-21d91d0-20231025

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

Files changed (446) hide show
  1. package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
  2. package/3rdparty/walkontable/src/cell/coords.js +50 -11
  3. package/3rdparty/walkontable/src/cell/coords.mjs +50 -11
  4. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  5. package/3rdparty/walkontable/src/cell/range.js +38 -7
  6. package/3rdparty/walkontable/src/cell/range.mjs +38 -7
  7. package/3rdparty/walkontable/src/core/_base.js +9 -3
  8. package/3rdparty/walkontable/src/core/_base.mjs +9 -3
  9. package/3rdparty/walkontable/src/core/clone.js +2 -2
  10. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  11. package/3rdparty/walkontable/src/core/core.js +3 -2
  12. package/3rdparty/walkontable/src/core/core.mjs +3 -2
  13. package/3rdparty/walkontable/src/event.js +12 -10
  14. package/3rdparty/walkontable/src/event.mjs +12 -10
  15. package/3rdparty/walkontable/src/facade/core.js +2 -2
  16. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  17. package/3rdparty/walkontable/src/index.js +10 -2
  18. package/3rdparty/walkontable/src/index.mjs +2 -2
  19. package/3rdparty/walkontable/src/overlay/_base.js +13 -2
  20. package/3rdparty/walkontable/src/overlay/_base.mjs +14 -3
  21. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
  22. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
  23. package/3rdparty/walkontable/src/overlay/top.js +2 -6
  24. package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
  25. package/3rdparty/walkontable/src/renderer/cells.js +10 -0
  26. package/3rdparty/walkontable/src/renderer/cells.mjs +11 -1
  27. package/3rdparty/walkontable/src/renderer/columnHeaders.js +10 -0
  28. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +11 -1
  29. package/3rdparty/walkontable/src/renderer/rowHeaders.js +5 -0
  30. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +5 -0
  31. package/3rdparty/walkontable/src/renderer/rows.js +13 -0
  32. package/3rdparty/walkontable/src/renderer/rows.mjs +13 -0
  33. package/3rdparty/walkontable/src/renderer/table.js +9 -0
  34. package/3rdparty/walkontable/src/renderer/table.mjs +9 -0
  35. package/3rdparty/walkontable/src/scroll.js +2 -0
  36. package/3rdparty/walkontable/src/scroll.mjs +2 -0
  37. package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
  38. package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
  39. package/3rdparty/walkontable/src/selection/border/constants.js +16 -0
  40. package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
  41. package/3rdparty/walkontable/src/selection/constants.js +62 -0
  42. package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
  43. package/3rdparty/walkontable/src/selection/index.js +26 -0
  44. package/3rdparty/walkontable/src/selection/index.mjs +5 -0
  45. package/3rdparty/walkontable/src/selection/manager.js +274 -0
  46. package/3rdparty/walkontable/src/selection/manager.mjs +269 -0
  47. package/3rdparty/walkontable/src/selection/scanner.js +270 -0
  48. package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
  49. package/3rdparty/walkontable/src/selection/selection.js +101 -0
  50. package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
  51. package/3rdparty/walkontable/src/settings.js +13 -4
  52. package/3rdparty/walkontable/src/settings.mjs +13 -4
  53. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
  54. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
  55. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
  56. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
  57. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
  58. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
  59. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
  60. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
  61. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
  62. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
  63. package/3rdparty/walkontable/src/table.js +19 -78
  64. package/3rdparty/walkontable/src/table.mjs +20 -79
  65. package/base.js +2 -2
  66. package/base.mjs +2 -2
  67. package/cellTypes/dateType/dateType.d.ts +3 -3
  68. package/cellTypes/dateType/dateType.js +2 -2
  69. package/cellTypes/dateType/dateType.mjs +2 -2
  70. package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
  71. package/cellTypes/handsontableType/handsontableType.js +2 -2
  72. package/cellTypes/handsontableType/handsontableType.mjs +2 -2
  73. package/cellTypes/index.d.ts +3 -0
  74. package/cellTypes/index.js +4 -0
  75. package/cellTypes/index.mjs +3 -1
  76. package/cellTypes/selectType/index.d.ts +1 -0
  77. package/cellTypes/selectType/index.js +6 -0
  78. package/cellTypes/selectType/index.mjs +1 -0
  79. package/cellTypes/selectType/selectType.d.ts +14 -0
  80. package/cellTypes/selectType/selectType.js +13 -0
  81. package/cellTypes/selectType/selectType.mjs +8 -0
  82. package/core/focusCatcher/focusDetector.js +63 -0
  83. package/core/focusCatcher/focusDetector.mjs +59 -0
  84. package/core/focusCatcher/index.js +142 -0
  85. package/core/focusCatcher/index.mjs +138 -0
  86. package/core/index.js +9 -0
  87. package/core/index.mjs +1 -0
  88. package/core.d.ts +9 -4
  89. package/core.js +285 -327
  90. package/core.mjs +285 -327
  91. package/dataMap/metaManager/metaSchema.js +65 -0
  92. package/dataMap/metaManager/metaSchema.mjs +65 -0
  93. package/dataMap/metaManager/mods/extendMetaProperties.js +7 -1
  94. package/dataMap/metaManager/mods/extendMetaProperties.mjs +7 -1
  95. package/dataMap/replaceData.js +5 -0
  96. package/dataMap/replaceData.mjs +5 -0
  97. package/dist/handsontable.css +51 -15
  98. package/dist/handsontable.full.css +51 -15
  99. package/dist/handsontable.full.js +13360 -7840
  100. package/dist/handsontable.full.min.css +7 -7
  101. package/dist/handsontable.full.min.js +136 -136
  102. package/dist/handsontable.js +20955 -15435
  103. package/dist/handsontable.min.css +6 -6
  104. package/dist/handsontable.min.js +24 -24
  105. package/dist/languages/all.js +6 -2
  106. package/dist/languages/all.min.js +1 -1
  107. package/dist/languages/en-US.js +3 -1
  108. package/dist/languages/en-US.min.js +1 -1
  109. package/dist/languages/pl-PL.js +3 -1
  110. package/dist/languages/pl-PL.min.js +1 -1
  111. package/editorManager.js +15 -87
  112. package/editorManager.mjs +16 -87
  113. package/editors/autocompleteEditor/autocompleteEditor.js +53 -2
  114. package/editors/autocompleteEditor/autocompleteEditor.mjs +54 -3
  115. package/editors/dateEditor/dateEditor.js +26 -7
  116. package/editors/dateEditor/dateEditor.mjs +27 -8
  117. package/editors/handsontableEditor/handsontableEditor.js +9 -1
  118. package/editors/handsontableEditor/handsontableEditor.mjs +10 -2
  119. package/editors/textEditor/textEditor.js +19 -27
  120. package/editors/textEditor/textEditor.mjs +22 -30
  121. package/focusManager.d.ts +12 -0
  122. package/focusManager.js +265 -0
  123. package/focusManager.mjs +261 -0
  124. package/helpers/a11y.js +79 -0
  125. package/helpers/a11y.mjs +38 -0
  126. package/helpers/dom/element.js +188 -9
  127. package/helpers/dom/element.mjs +182 -9
  128. package/helpers/mixed.js +1 -1
  129. package/helpers/mixed.mjs +1 -1
  130. package/helpers/number.d.ts +1 -0
  131. package/helpers/number.js +18 -0
  132. package/helpers/number.mjs +17 -0
  133. package/i18n/constants.js +7 -1
  134. package/i18n/constants.mjs +4 -1
  135. package/i18n/languages/en-US.js +3 -1
  136. package/i18n/languages/en-US.mjs +3 -1
  137. package/i18n/languages/pl-PL.js +3 -1
  138. package/i18n/languages/pl-PL.mjs +3 -1
  139. package/languages/all.js +6 -2
  140. package/languages/en-US.js +3 -1
  141. package/languages/en-US.mjs +3 -1
  142. package/languages/index.js +6 -2
  143. package/languages/pl-PL.js +3 -1
  144. package/languages/pl-PL.mjs +3 -1
  145. package/package.json +21 -1
  146. package/pluginHooks.d.ts +12 -1
  147. package/pluginHooks.js +152 -1
  148. package/pluginHooks.mjs +152 -1
  149. package/plugins/collapsibleColumns/collapsibleColumns.js +74 -4
  150. package/plugins/collapsibleColumns/collapsibleColumns.mjs +75 -5
  151. package/plugins/columnSorting/columnSorting.js +43 -0
  152. package/plugins/columnSorting/columnSorting.mjs +44 -3
  153. package/plugins/columnSorting/index.js +3 -1
  154. package/plugins/columnSorting/index.mjs +1 -1
  155. package/plugins/comments/commentEditor.js +1 -0
  156. package/plugins/comments/commentEditor.mjs +1 -0
  157. package/plugins/comments/comments.js +252 -189
  158. package/plugins/comments/comments.mjs +251 -190
  159. package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
  160. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  161. package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
  162. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
  163. package/plugins/comments/contextMenuItem/removeComment.js +38 -0
  164. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  165. package/plugins/contextMenu/commandExecutor.js +2 -3
  166. package/plugins/contextMenu/commandExecutor.mjs +2 -3
  167. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  168. package/plugins/contextMenu/contextMenu.js +75 -36
  169. package/plugins/contextMenu/contextMenu.mjs +74 -35
  170. package/plugins/contextMenu/itemsFactory.js +2 -3
  171. package/plugins/contextMenu/itemsFactory.mjs +3 -4
  172. package/plugins/contextMenu/{cursor.mjs → menu/cursor.js} +6 -4
  173. package/plugins/contextMenu/{cursor.js → menu/cursor.mjs} +4 -10
  174. package/plugins/contextMenu/menu/defaultShortcutsList.js +88 -0
  175. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +84 -0
  176. package/plugins/contextMenu/menu/index.js +9 -0
  177. package/plugins/contextMenu/menu/index.mjs +1 -0
  178. package/plugins/contextMenu/{menu.js → menu/menu.js} +145 -421
  179. package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +146 -422
  180. package/plugins/contextMenu/menu/menuItemRenderer.js +58 -0
  181. package/plugins/contextMenu/menu/menuItemRenderer.mjs +54 -0
  182. package/plugins/contextMenu/menu/navigator.js +27 -0
  183. package/plugins/contextMenu/menu/navigator.mjs +23 -0
  184. package/plugins/contextMenu/menu/positioner.js +213 -0
  185. package/plugins/contextMenu/menu/positioner.mjs +209 -0
  186. package/plugins/contextMenu/menu/shortcuts.js +114 -0
  187. package/plugins/contextMenu/menu/shortcuts.mjs +110 -0
  188. package/plugins/contextMenu/menu/utils.js +177 -0
  189. package/plugins/contextMenu/menu/utils.mjs +163 -0
  190. package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
  191. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  192. package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
  193. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  194. package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
  195. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  196. package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
  197. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  198. package/plugins/contextMenu/{predefinedItems.js → predefinedItems/index.js} +14 -14
  199. package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
  200. package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
  201. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  202. package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
  203. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
  204. package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
  205. package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
  206. package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
  207. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  208. package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
  209. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  210. package/plugins/contextMenu/utils.js +35 -151
  211. package/plugins/contextMenu/utils.mjs +35 -144
  212. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  213. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  214. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  215. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  216. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  217. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  218. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  219. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  220. package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
  221. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  222. package/plugins/copyPaste/copyPaste.js +127 -78
  223. package/plugins/copyPaste/copyPaste.mjs +128 -79
  224. package/plugins/customBorders/customBorders.js +23 -20
  225. package/plugins/customBorders/customBorders.mjs +24 -21
  226. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  227. package/plugins/dropdownMenu/dropdownMenu.js +127 -40
  228. package/plugins/dropdownMenu/dropdownMenu.mjs +126 -39
  229. package/plugins/filters/component/_base.js +23 -8
  230. package/plugins/filters/component/_base.mjs +23 -8
  231. package/plugins/filters/component/actionBar.js +29 -27
  232. package/plugins/filters/component/actionBar.mjs +26 -23
  233. package/plugins/filters/component/condition.js +46 -59
  234. package/plugins/filters/component/condition.mjs +40 -52
  235. package/plugins/filters/component/operators.js +21 -22
  236. package/plugins/filters/component/operators.mjs +18 -18
  237. package/plugins/filters/component/value.js +35 -26
  238. package/plugins/filters/component/value.mjs +32 -22
  239. package/plugins/filters/constants.mjs +1 -1
  240. package/plugins/filters/filters.js +106 -62
  241. package/plugins/filters/filters.mjs +99 -55
  242. package/plugins/filters/menu/focusController.js +123 -0
  243. package/plugins/filters/menu/focusController.mjs +119 -0
  244. package/plugins/filters/menu/focusNavigator.js +30 -0
  245. package/plugins/filters/menu/focusNavigator.mjs +26 -0
  246. package/plugins/filters/ui/_base.js +35 -13
  247. package/plugins/filters/ui/_base.mjs +35 -13
  248. package/plugins/filters/ui/input.js +43 -32
  249. package/plugins/filters/ui/input.mjs +42 -30
  250. package/plugins/filters/ui/link.js +44 -12
  251. package/plugins/filters/ui/link.mjs +44 -11
  252. package/plugins/filters/ui/multipleSelect.js +234 -129
  253. package/plugins/filters/ui/multipleSelect.mjs +232 -127
  254. package/plugins/filters/ui/radioInput.js +42 -18
  255. package/plugins/filters/ui/radioInput.mjs +42 -17
  256. package/plugins/filters/ui/select.js +144 -75
  257. package/plugins/filters/ui/select.mjs +142 -72
  258. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
  259. package/plugins/hiddenRows/hiddenRows.mjs +1 -1
  260. package/plugins/manualColumnMove/manualColumnMove.js +3 -1
  261. package/plugins/manualColumnMove/manualColumnMove.mjs +3 -1
  262. package/plugins/mergeCells/mergeCells.js +5 -16
  263. package/plugins/mergeCells/mergeCells.mjs +5 -16
  264. package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
  265. package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
  266. package/plugins/nestedHeaders/nestedHeaders.js +240 -10
  267. package/plugins/nestedHeaders/nestedHeaders.mjs +241 -11
  268. package/plugins/nestedHeaders/stateManager/index.js +102 -3
  269. package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
  270. package/plugins/nestedRows/nestedRows.js +41 -0
  271. package/plugins/nestedRows/nestedRows.mjs +41 -0
  272. package/plugins/nestedRows/ui/headers.js +11 -0
  273. package/plugins/nestedRows/ui/headers.mjs +12 -1
  274. package/renderers/autocompleteRenderer/autocompleteRenderer.js +8 -0
  275. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
  276. package/renderers/baseRenderer/baseRenderer.js +17 -0
  277. package/renderers/baseRenderer/baseRenderer.mjs +18 -1
  278. package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
  279. package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
  280. package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
  281. package/renderers/dateRenderer/dateRenderer.js +29 -0
  282. package/renderers/dateRenderer/dateRenderer.mjs +24 -0
  283. package/renderers/dateRenderer/index.d.ts +1 -0
  284. package/renderers/dateRenderer/index.js +6 -0
  285. package/renderers/dateRenderer/index.mjs +1 -0
  286. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
  287. package/renderers/handsontableRenderer/handsontableRenderer.js +29 -0
  288. package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
  289. package/renderers/handsontableRenderer/index.d.ts +1 -0
  290. package/renderers/handsontableRenderer/index.js +6 -0
  291. package/renderers/handsontableRenderer/index.mjs +1 -0
  292. package/renderers/index.d.ts +9 -0
  293. package/renderers/selectRenderer/index.d.ts +1 -0
  294. package/renderers/selectRenderer/index.js +6 -0
  295. package/renderers/selectRenderer/index.mjs +1 -0
  296. package/renderers/selectRenderer/selectRenderer.d.ts +5 -0
  297. package/renderers/selectRenderer/selectRenderer.js +27 -0
  298. package/renderers/selectRenderer/selectRenderer.mjs +22 -0
  299. package/selection/highlight/highlight.js +256 -71
  300. package/selection/highlight/highlight.mjs +250 -71
  301. package/selection/highlight/types/activeHeader.js +10 -8
  302. package/selection/highlight/types/activeHeader.mjs +10 -8
  303. package/selection/highlight/types/area.js +6 -18
  304. package/selection/highlight/types/area.mjs +6 -18
  305. package/selection/highlight/types/areaLayered.js +31 -0
  306. package/selection/highlight/types/areaLayered.mjs +26 -0
  307. package/selection/highlight/types/column.js +27 -0
  308. package/selection/highlight/types/column.mjs +22 -0
  309. package/selection/highlight/types/customSelection.js +7 -9
  310. package/selection/highlight/types/customSelection.mjs +7 -9
  311. package/selection/highlight/types/fill.js +5 -7
  312. package/selection/highlight/types/fill.mjs +5 -7
  313. package/selection/highlight/types/{cell.js → focus.js} +5 -7
  314. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  315. package/selection/highlight/types/header.js +9 -18
  316. package/selection/highlight/types/header.mjs +9 -18
  317. package/selection/highlight/types/row.js +27 -0
  318. package/selection/highlight/types/row.mjs +22 -0
  319. package/selection/highlight/visualSelection.js +31 -27
  320. package/selection/highlight/visualSelection.mjs +31 -27
  321. package/selection/index.js +4 -7
  322. package/selection/index.mjs +2 -3
  323. package/selection/mouseEventHandler.js +7 -1
  324. package/selection/mouseEventHandler.mjs +7 -1
  325. package/selection/range.js +8 -8
  326. package/selection/range.mjs +8 -8
  327. package/selection/selection.js +321 -152
  328. package/selection/selection.mjs +318 -151
  329. package/selection/transformation.js +232 -90
  330. package/selection/transformation.mjs +232 -90
  331. package/selection/utils.js +15 -21
  332. package/selection/utils.mjs +16 -21
  333. package/settings.d.ts +4 -0
  334. package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
  335. package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
  336. package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
  337. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  338. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  339. package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
  340. package/shortcutContexts/commands/editor/index.js +16 -0
  341. package/shortcutContexts/commands/editor/index.mjs +12 -0
  342. package/shortcutContexts/commands/editor/open.js +27 -0
  343. package/shortcutContexts/commands/editor/open.mjs +23 -0
  344. package/shortcutContexts/commands/emptySelectedCells.js +11 -0
  345. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  346. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  347. package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
  348. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +25 -0
  349. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +21 -0
  350. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  351. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  352. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  353. package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
  354. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  355. package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
  356. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  357. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
  358. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
  359. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
  360. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
  361. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
  362. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
  363. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
  364. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
  365. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
  366. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
  367. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
  368. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
  369. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
  370. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  371. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
  372. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  373. package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
  374. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +25 -0
  375. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +21 -0
  376. package/shortcutContexts/commands/index.js +35 -0
  377. package/shortcutContexts/commands/index.mjs +31 -0
  378. package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
  379. package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
  380. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +33 -0
  381. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +29 -0
  382. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  383. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  384. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
  385. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  386. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
  387. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  388. package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
  389. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  390. package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
  391. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  392. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
  393. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
  394. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
  395. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
  396. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
  397. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
  398. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
  399. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
  400. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
  401. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
  402. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
  403. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
  404. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
  405. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
  406. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
  407. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
  408. package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
  409. package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
  410. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +33 -0
  411. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
  412. package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
  413. package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
  414. package/shortcutContexts/commands/scrollToFocusedCell.js +35 -0
  415. package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
  416. package/shortcutContexts/commands/selectAll.js +12 -0
  417. package/shortcutContexts/commands/selectAll.mjs +8 -0
  418. package/shortcutContexts/constants.js +13 -0
  419. package/shortcutContexts/constants.mjs +8 -0
  420. package/shortcutContexts/editor.js +25 -0
  421. package/shortcutContexts/editor.mjs +21 -0
  422. package/shortcutContexts/grid.js +163 -0
  423. package/shortcutContexts/grid.mjs +159 -0
  424. package/shortcutContexts/index.js +24 -0
  425. package/shortcutContexts/index.mjs +11 -0
  426. package/shortcuts/context.js +23 -4
  427. package/shortcuts/context.mjs +23 -5
  428. package/shortcuts/manager.js +25 -7
  429. package/shortcuts/manager.mjs +26 -7
  430. package/shortcuts/recorder.js +3 -3
  431. package/shortcuts/recorder.mjs +3 -3
  432. package/shortcuts/utils.js +19 -5
  433. package/shortcuts/utils.mjs +18 -4
  434. package/tableView.js +111 -13
  435. package/tableView.mjs +112 -14
  436. package/utils/paginator.js +151 -0
  437. package/utils/paginator.mjs +147 -0
  438. package/3rdparty/walkontable/src/selection.js +0 -295
  439. package/3rdparty/walkontable/src/selection.mjs +0 -290
  440. package/plugins/contextMenu/predefinedItems.mjs +0 -68
  441. package/plugins/copyPaste/focusableElement.js +0 -186
  442. package/plugins/copyPaste/focusableElement.mjs +0 -180
  443. package/selection/highlight/constants.js +0 -15
  444. package/selection/highlight/constants.mjs +0 -6
  445. package/selection/highlight/types/index.js +0 -35
  446. package/selection/highlight/types/index.mjs +0 -31
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.createMenuFocusController = createMenuFocusController;
5
+ var _focusNavigator = require("./focusNavigator");
6
+ var _select = require("../ui/select");
7
+ var _base = require("../ui/_base");
8
+ var _link = require("../ui/link");
9
+ const SHORTCUTS_MENU_CONTEXT = 'filters';
10
+
11
+ /**
12
+ * @typedef MenuFocusNavigator
13
+ * @property {function(number): void} setCurrentPage Sets the current index of the selected focus.
14
+ * @property {function(): number} getCurrentPage Gets the index of currently focus element.
15
+ * @property {function(): void} toFirstItem Move the focus index to the first element in the list.
16
+ * @property {function(): void} toLastItem Move the focus index to the last element in the list.
17
+ * @property {function(): void} toNextItem Move the focus index to the next element in the list.
18
+ * @property {function(): void} toPreviousItem Move the focus index to the previous element in the list.
19
+ * @property {function(): void} clear Clear the internal state of the navigator.
20
+ * @property {function(): void} listen Activate the navigator by listening the keyboard shortcuts.
21
+ */
22
+ /**
23
+ * Creates navigator controller for filter subcomponents in the menu.
24
+ *
25
+ * @param {Menu} mainMenu The main Menu instance.
26
+ * @param {BaseUI[]} menuItems The list of the component's elements to paginate to.
27
+ * @returns {Paginator}
28
+ */
29
+ function createMenuFocusController(mainMenu, menuItems) {
30
+ const navigator = (0, _focusNavigator.createFocusNavigator)(menuItems);
31
+ const updateNavigatorPosition = element => () => {
32
+ if (mainMenu.isOpened()) {
33
+ mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
34
+ }
35
+ navigator.setCurrentPage(menuItems.indexOf(element));
36
+ };
37
+
38
+ // update navigator position (internal state) to element that was recently clicked or focused
39
+ menuItems.forEach(element => {
40
+ if (element instanceof _base.BaseUI) {
41
+ element.addLocalHook('click', updateNavigatorPosition(element));
42
+ element.addLocalHook('focus', updateNavigatorPosition(element));
43
+ element.addLocalHook('afterClose', updateNavigatorPosition(element));
44
+ }
45
+ });
46
+ mainMenu.addLocalHook('afterSelectionChange', selectedItem => {
47
+ if (!selectedItem.key.startsWith('filter_')) {
48
+ navigator.clear();
49
+ }
50
+ });
51
+
52
+ /**
53
+ * Extends the menu and submenus with new keyboard shortcuts.
54
+ *
55
+ * @param {*} menu The menu (as main menu or submenu) instance.
56
+ */
57
+ function addKeyboardShortcuts(menu) {
58
+ const mainMenuShortcutsCtrl = mainMenu.getKeyboardShortcutsCtrl();
59
+ const currentMenuShortcutsCtrl = menu.getKeyboardShortcutsCtrl();
60
+ navigator.clear();
61
+ currentMenuShortcutsCtrl.addCustomShortcuts([{
62
+ keys: [['Tab'], ['Shift', 'Tab']],
63
+ forwardToContext: mainMenuShortcutsCtrl.getContext(SHORTCUTS_MENU_CONTEXT),
64
+ callback: () => {
65
+ if (menu.isSubMenu()) {
66
+ menu.close();
67
+ }
68
+ mainMenuShortcutsCtrl.listen(SHORTCUTS_MENU_CONTEXT);
69
+ }
70
+ }]);
71
+ if (menu.isSubMenu()) {
72
+ return;
73
+ }
74
+ mainMenuShortcutsCtrl.addCustomShortcuts([{
75
+ keys: [['Tab'], ['Shift', 'Tab']],
76
+ callback: event => {
77
+ mainMenu.getNavigator().clear();
78
+ if (event.shiftKey) {
79
+ navigator.toPreviousItem();
80
+ } else {
81
+ navigator.toNextItem();
82
+ }
83
+ }
84
+ }, {
85
+ keys: [['Escape']],
86
+ callback: () => {
87
+ mainMenu.close();
88
+ }
89
+ }, {
90
+ keys: [['Enter'], ['Space']],
91
+ preventDefault: false,
92
+ callback: event => {
93
+ const element = menuItems[navigator.getCurrentPage()];
94
+ if (element instanceof _select.SelectUI) {
95
+ element.openOptions();
96
+ event.preventDefault();
97
+ }
98
+ if (element instanceof _link.LinkUI) {
99
+ element.activate();
100
+ event.preventDefault();
101
+ }
102
+ if (!(element instanceof _base.BaseUI)) {
103
+ event.preventDefault();
104
+ }
105
+ }
106
+ }], SHORTCUTS_MENU_CONTEXT);
107
+ }
108
+ mainMenu.addLocalHook('afterSubmenuOpen', addKeyboardShortcuts);
109
+ mainMenu.addLocalHook('afterOpen', addKeyboardShortcuts);
110
+
111
+ /**
112
+ * Focuses the menu and switches its shortcut context to that one which controls
113
+ * the focus navigation.
114
+ */
115
+ function listen() {
116
+ mainMenu.focus();
117
+ mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
118
+ }
119
+ return {
120
+ ...navigator,
121
+ listen
122
+ };
123
+ }
@@ -0,0 +1,119 @@
1
+ import { createFocusNavigator } from "./focusNavigator.mjs";
2
+ import { SelectUI } from "../ui/select.mjs";
3
+ import { BaseUI } from "../ui/_base.mjs";
4
+ import { LinkUI } from "../ui/link.mjs";
5
+ const SHORTCUTS_MENU_CONTEXT = 'filters';
6
+
7
+ /**
8
+ * @typedef MenuFocusNavigator
9
+ * @property {function(number): void} setCurrentPage Sets the current index of the selected focus.
10
+ * @property {function(): number} getCurrentPage Gets the index of currently focus element.
11
+ * @property {function(): void} toFirstItem Move the focus index to the first element in the list.
12
+ * @property {function(): void} toLastItem Move the focus index to the last element in the list.
13
+ * @property {function(): void} toNextItem Move the focus index to the next element in the list.
14
+ * @property {function(): void} toPreviousItem Move the focus index to the previous element in the list.
15
+ * @property {function(): void} clear Clear the internal state of the navigator.
16
+ * @property {function(): void} listen Activate the navigator by listening the keyboard shortcuts.
17
+ */
18
+ /**
19
+ * Creates navigator controller for filter subcomponents in the menu.
20
+ *
21
+ * @param {Menu} mainMenu The main Menu instance.
22
+ * @param {BaseUI[]} menuItems The list of the component's elements to paginate to.
23
+ * @returns {Paginator}
24
+ */
25
+ export function createMenuFocusController(mainMenu, menuItems) {
26
+ const navigator = createFocusNavigator(menuItems);
27
+ const updateNavigatorPosition = element => () => {
28
+ if (mainMenu.isOpened()) {
29
+ mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
30
+ }
31
+ navigator.setCurrentPage(menuItems.indexOf(element));
32
+ };
33
+
34
+ // update navigator position (internal state) to element that was recently clicked or focused
35
+ menuItems.forEach(element => {
36
+ if (element instanceof BaseUI) {
37
+ element.addLocalHook('click', updateNavigatorPosition(element));
38
+ element.addLocalHook('focus', updateNavigatorPosition(element));
39
+ element.addLocalHook('afterClose', updateNavigatorPosition(element));
40
+ }
41
+ });
42
+ mainMenu.addLocalHook('afterSelectionChange', selectedItem => {
43
+ if (!selectedItem.key.startsWith('filter_')) {
44
+ navigator.clear();
45
+ }
46
+ });
47
+
48
+ /**
49
+ * Extends the menu and submenus with new keyboard shortcuts.
50
+ *
51
+ * @param {*} menu The menu (as main menu or submenu) instance.
52
+ */
53
+ function addKeyboardShortcuts(menu) {
54
+ const mainMenuShortcutsCtrl = mainMenu.getKeyboardShortcutsCtrl();
55
+ const currentMenuShortcutsCtrl = menu.getKeyboardShortcutsCtrl();
56
+ navigator.clear();
57
+ currentMenuShortcutsCtrl.addCustomShortcuts([{
58
+ keys: [['Tab'], ['Shift', 'Tab']],
59
+ forwardToContext: mainMenuShortcutsCtrl.getContext(SHORTCUTS_MENU_CONTEXT),
60
+ callback: () => {
61
+ if (menu.isSubMenu()) {
62
+ menu.close();
63
+ }
64
+ mainMenuShortcutsCtrl.listen(SHORTCUTS_MENU_CONTEXT);
65
+ }
66
+ }]);
67
+ if (menu.isSubMenu()) {
68
+ return;
69
+ }
70
+ mainMenuShortcutsCtrl.addCustomShortcuts([{
71
+ keys: [['Tab'], ['Shift', 'Tab']],
72
+ callback: event => {
73
+ mainMenu.getNavigator().clear();
74
+ if (event.shiftKey) {
75
+ navigator.toPreviousItem();
76
+ } else {
77
+ navigator.toNextItem();
78
+ }
79
+ }
80
+ }, {
81
+ keys: [['Escape']],
82
+ callback: () => {
83
+ mainMenu.close();
84
+ }
85
+ }, {
86
+ keys: [['Enter'], ['Space']],
87
+ preventDefault: false,
88
+ callback: event => {
89
+ const element = menuItems[navigator.getCurrentPage()];
90
+ if (element instanceof SelectUI) {
91
+ element.openOptions();
92
+ event.preventDefault();
93
+ }
94
+ if (element instanceof LinkUI) {
95
+ element.activate();
96
+ event.preventDefault();
97
+ }
98
+ if (!(element instanceof BaseUI)) {
99
+ event.preventDefault();
100
+ }
101
+ }
102
+ }], SHORTCUTS_MENU_CONTEXT);
103
+ }
104
+ mainMenu.addLocalHook('afterSubmenuOpen', addKeyboardShortcuts);
105
+ mainMenu.addLocalHook('afterOpen', addKeyboardShortcuts);
106
+
107
+ /**
108
+ * Focuses the menu and switches its shortcut context to that one which controls
109
+ * the focus navigation.
110
+ */
111
+ function listen() {
112
+ mainMenu.focus();
113
+ mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
114
+ }
115
+ return {
116
+ ...navigator,
117
+ listen
118
+ };
119
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.createFocusNavigator = createFocusNavigator;
5
+ var _paginator = require("../../../utils/paginator");
6
+ var _element = require("../../../helpers/dom/element");
7
+ var _multipleSelect = require("../ui/multipleSelect");
8
+ /**
9
+ * Creates navigator for switching the focus of the filter's elements.
10
+ *
11
+ * @param {BaseUI[]} elements The elements to paginate to.
12
+ * @returns {Paginator}
13
+ */
14
+ function createFocusNavigator(elements) {
15
+ const navigator = (0, _paginator.createPaginator)({
16
+ initialPage: 0,
17
+ size: () => elements.length,
18
+ onItemSelect: (currentIndex, directItemChange) => {
19
+ const element = elements[currentIndex];
20
+ if (element instanceof _multipleSelect.MultipleSelectUI) {
21
+ return directItemChange;
22
+ }
23
+ if (element.element && !(0, _element.isVisible)(element.element)) {
24
+ return false;
25
+ }
26
+ element.focus();
27
+ }
28
+ });
29
+ return navigator;
30
+ }
@@ -0,0 +1,26 @@
1
+ import { createPaginator } from "../../../utils/paginator.mjs";
2
+ import { isVisible } from "../../../helpers/dom/element.mjs";
3
+ import { MultipleSelectUI } from "../ui/multipleSelect.mjs";
4
+ /**
5
+ * Creates navigator for switching the focus of the filter's elements.
6
+ *
7
+ * @param {BaseUI[]} elements The elements to paginate to.
8
+ * @returns {Paginator}
9
+ */
10
+ export function createFocusNavigator(elements) {
11
+ const navigator = createPaginator({
12
+ initialPage: 0,
13
+ size: () => elements.length,
14
+ onItemSelect: (currentIndex, directItemChange) => {
15
+ const element = elements[currentIndex];
16
+ if (element instanceof MultipleSelectUI) {
17
+ return directItemChange;
18
+ }
19
+ if (element.element && !isVisible(element.element)) {
20
+ return false;
21
+ }
22
+ element.focus();
23
+ }
24
+ });
25
+ return navigator;
26
+ }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
4
5
  var _object = require("../../../helpers/object");
5
6
  var _localHooks = _interopRequireDefault(require("../../../mixins/localHooks"));
6
7
  var _eventManager = _interopRequireDefault(require("../../../eventManager"));
@@ -10,6 +11,9 @@ var C = _interopRequireWildcard(require("../../../i18n/constants"));
10
11
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
12
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
16
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
13
17
  const STATE_BUILT = 'built';
14
18
  const STATE_BUILDING = 'building';
15
19
  const EVENTS_TO_REGISTER = ['click', 'input', 'keydown', 'keypress', 'keyup', 'focus', 'blur', 'change'];
@@ -27,38 +31,43 @@ class BaseUI {
27
31
  wrapIt: true
28
32
  });
29
33
  }
34
+
35
+ /**
36
+ * Instance of Handsontable.
37
+ *
38
+ * @type {Core}
39
+ */
40
+
30
41
  constructor(hotInstance, options) {
31
- /**
32
- * Instance of Handsontable.
33
- *
34
- * @type {Core}
35
- */
36
- this.hot = hotInstance;
42
+ _defineProperty(this, "hot", void 0);
37
43
  /**
38
44
  * Instance of EventManager.
39
45
  *
40
46
  * @type {EventManager}
41
47
  */
42
- this.eventManager = new _eventManager.default(this);
48
+ _defineProperty(this, "eventManager", new _eventManager.default(this));
43
49
  /**
44
50
  * List of element options.
45
51
  *
46
52
  * @type {object}
47
53
  */
48
- this.options = (0, _object.extend)(BaseUI.DEFAULTS, options);
54
+ _defineProperty(this, "options", void 0);
49
55
  /**
50
56
  * Build root DOM element.
51
57
  *
52
58
  * @type {Element}
53
59
  * @private
54
60
  */
55
- this._element = this.hot.rootDocument.createElement(this.options.wrapIt ? 'div' : this.options.tagName);
61
+ _defineProperty(this, "_element", void 0);
56
62
  /**
57
63
  * Flag which determines build state of element.
58
64
  *
59
65
  * @type {string}
60
66
  */
61
- this.buildState = null;
67
+ _defineProperty(this, "buildState", void 0);
68
+ this.hot = hotInstance;
69
+ this.options = (0, _object.extend)(BaseUI.DEFAULTS, options);
70
+ this._element = this.hot.rootDocument.createElement(this.options.wrapIt ? 'div' : this.options.tagName);
62
71
  }
63
72
 
64
73
  /**
@@ -131,6 +140,16 @@ class BaseUI {
131
140
  if (!this.buildState) {
132
141
  this.buildState = STATE_BUILDING;
133
142
  }
143
+
144
+ // prevents "hot.unlisten()" call when clicked
145
+ // (https://github.com/handsontable/handsontable/blob/master/handsontable/src/tableView.js#L317-L321)
146
+ this._element.setAttribute('data-hot-input', true);
147
+ if (this.options.tabIndex !== undefined) {
148
+ this._element.setAttribute('tabindex', this.options.tabIndex);
149
+ }
150
+ if (this.options.role !== undefined) {
151
+ this._element.setAttribute('role', this.options.role);
152
+ }
134
153
  if (this.options.className) {
135
154
  (0, _element.addClass)(this._element, this.options.className);
136
155
  }
@@ -138,6 +157,10 @@ class BaseUI {
138
157
  (0, _array.arrayEach)(this.options.children, element => this._element.appendChild(element.element));
139
158
  } else if (this.options.wrapIt) {
140
159
  const element = this.hot.rootDocument.createElement(this.options.tagName);
160
+
161
+ // prevents "hot.unlisten()" call when clicked
162
+ // (https://github.com/handsontable/handsontable/blob/master/handsontable/src/tableView.js#L317-L321)
163
+ element.setAttribute('data-hot-input', true);
141
164
  (0, _object.objectEach)(this.options, (value, key) => {
142
165
  if (element[key] !== void 0 && key !== 'className' && key !== 'tagName' && key !== 'children') {
143
166
  element[key] = this.translateIfPossible(value);
@@ -191,6 +214,5 @@ class BaseUI {
191
214
  this._element = null;
192
215
  }
193
216
  }
194
- (0, _object.mixin)(BaseUI, _localHooks.default);
195
- var _default = BaseUI;
196
- exports.default = _default;
217
+ exports.BaseUI = BaseUI;
218
+ (0, _object.mixin)(BaseUI, _localHooks.default);
@@ -1,3 +1,7 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
4
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
1
5
  import { clone, extend, mixin, objectEach } from "../../../helpers/object.mjs";
2
6
  import localHooks from "../../../mixins/localHooks.mjs";
3
7
  import EventManager from "../../../eventManager.mjs";
@@ -11,7 +15,7 @@ const EVENTS_TO_REGISTER = ['click', 'input', 'keydown', 'keypress', 'keyup', 'f
11
15
  /**
12
16
  * @private
13
17
  */
14
- class BaseUI {
18
+ export class BaseUI {
15
19
  static get DEFAULTS() {
16
20
  return clone({
17
21
  className: '',
@@ -21,38 +25,43 @@ class BaseUI {
21
25
  wrapIt: true
22
26
  });
23
27
  }
28
+
29
+ /**
30
+ * Instance of Handsontable.
31
+ *
32
+ * @type {Core}
33
+ */
34
+
24
35
  constructor(hotInstance, options) {
25
- /**
26
- * Instance of Handsontable.
27
- *
28
- * @type {Core}
29
- */
30
- this.hot = hotInstance;
36
+ _defineProperty(this, "hot", void 0);
31
37
  /**
32
38
  * Instance of EventManager.
33
39
  *
34
40
  * @type {EventManager}
35
41
  */
36
- this.eventManager = new EventManager(this);
42
+ _defineProperty(this, "eventManager", new EventManager(this));
37
43
  /**
38
44
  * List of element options.
39
45
  *
40
46
  * @type {object}
41
47
  */
42
- this.options = extend(BaseUI.DEFAULTS, options);
48
+ _defineProperty(this, "options", void 0);
43
49
  /**
44
50
  * Build root DOM element.
45
51
  *
46
52
  * @type {Element}
47
53
  * @private
48
54
  */
49
- this._element = this.hot.rootDocument.createElement(this.options.wrapIt ? 'div' : this.options.tagName);
55
+ _defineProperty(this, "_element", void 0);
50
56
  /**
51
57
  * Flag which determines build state of element.
52
58
  *
53
59
  * @type {string}
54
60
  */
55
- this.buildState = null;
61
+ _defineProperty(this, "buildState", void 0);
62
+ this.hot = hotInstance;
63
+ this.options = extend(BaseUI.DEFAULTS, options);
64
+ this._element = this.hot.rootDocument.createElement(this.options.wrapIt ? 'div' : this.options.tagName);
56
65
  }
57
66
 
58
67
  /**
@@ -125,6 +134,16 @@ class BaseUI {
125
134
  if (!this.buildState) {
126
135
  this.buildState = STATE_BUILDING;
127
136
  }
137
+
138
+ // prevents "hot.unlisten()" call when clicked
139
+ // (https://github.com/handsontable/handsontable/blob/master/handsontable/src/tableView.js#L317-L321)
140
+ this._element.setAttribute('data-hot-input', true);
141
+ if (this.options.tabIndex !== undefined) {
142
+ this._element.setAttribute('tabindex', this.options.tabIndex);
143
+ }
144
+ if (this.options.role !== undefined) {
145
+ this._element.setAttribute('role', this.options.role);
146
+ }
128
147
  if (this.options.className) {
129
148
  addClass(this._element, this.options.className);
130
149
  }
@@ -132,6 +151,10 @@ class BaseUI {
132
151
  arrayEach(this.options.children, element => this._element.appendChild(element.element));
133
152
  } else if (this.options.wrapIt) {
134
153
  const element = this.hot.rootDocument.createElement(this.options.tagName);
154
+
155
+ // prevents "hot.unlisten()" call when clicked
156
+ // (https://github.com/handsontable/handsontable/blob/master/handsontable/src/tableView.js#L317-L321)
157
+ element.setAttribute('data-hot-input', true);
135
158
  objectEach(this.options, (value, key) => {
136
159
  if (element[key] !== void 0 && key !== 'className' && key !== 'tagName' && key !== 'children') {
137
160
  element[key] = this.translateIfPossible(value);
@@ -185,5 +208,4 @@ class BaseUI {
185
208
  this._element = null;
186
209
  }
187
210
  }
188
- mixin(BaseUI, localHooks);
189
- export default BaseUI;
211
+ mixin(BaseUI, localHooks);
@@ -1,27 +1,53 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
4
5
  var _element = require("../../../helpers/dom/element");
5
6
  var _object = require("../../../helpers/object");
6
- var _base = _interopRequireDefault(require("./_base"));
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
- const privatePool = new WeakMap();
9
-
7
+ var _base = require("./_base");
8
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
9
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
10
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
11
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
12
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
13
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
14
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
15
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
16
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
10
17
  /**
11
18
  * @private
12
19
  * @class InputUI
13
20
  */
14
- class InputUI extends _base.default {
21
+ var _input = /*#__PURE__*/new WeakMap();
22
+ var _onKeyup = /*#__PURE__*/new WeakSet();
23
+ class InputUI extends _base.BaseUI {
15
24
  static get DEFAULTS() {
16
25
  return (0, _object.clone)({
17
26
  placeholder: '',
18
27
  type: 'text',
19
- tagName: 'input'
28
+ tagName: 'input',
29
+ tabIndex: -1
20
30
  });
21
31
  }
32
+
33
+ /**
34
+ * The reference to the input element.
35
+ *
36
+ * @type {HTMLInputElement}
37
+ */
38
+
22
39
  constructor(hotInstance, options) {
23
40
  super(hotInstance, (0, _object.extend)(InputUI.DEFAULTS, options));
24
- privatePool.set(this, {});
41
+ /**
42
+ * OnKeyup listener.
43
+ *
44
+ * @param {Event} event The mouse event object.
45
+ */
46
+ _classPrivateMethodInitSpec(this, _onKeyup);
47
+ _classPrivateFieldInitSpec(this, _input, {
48
+ writable: true,
49
+ value: void 0
50
+ });
25
51
  this.registerHooks();
26
52
  }
27
53
 
@@ -29,8 +55,7 @@ class InputUI extends _base.default {
29
55
  * Register all necessary hooks.
30
56
  */
31
57
  registerHooks() {
32
- this.addLocalHook('click', () => this.onClick());
33
- this.addLocalHook('keyup', event => this.onKeyup(event));
58
+ this.addLocalHook('keyup', event => _classPrivateMethodGet(this, _onKeyup, _onKeyup2).call(this, event));
34
59
  }
35
60
 
36
61
  /**
@@ -38,9 +63,8 @@ class InputUI extends _base.default {
38
63
  */
39
64
  build() {
40
65
  super.build();
41
- const priv = privatePool.get(this);
42
66
  const icon = this.hot.rootDocument.createElement('div');
43
- priv.input = this._element.firstChild;
67
+ _classPrivateFieldSet(this, _input, this._element.firstChild);
44
68
  (0, _element.addClass)(this._element, 'htUIInput');
45
69
  (0, _element.addClass)(icon, 'htUIInputIcon');
46
70
  this._element.appendChild(icon);
@@ -54,10 +78,9 @@ class InputUI extends _base.default {
54
78
  if (!this.isBuilt()) {
55
79
  return;
56
80
  }
57
- const input = privatePool.get(this).input;
58
- input.type = this.options.type;
59
- input.placeholder = this.translateIfPossible(this.options.placeholder);
60
- input.value = this.translateIfPossible(this.options.value);
81
+ _classPrivateFieldGet(this, _input).type = this.options.type;
82
+ _classPrivateFieldGet(this, _input).placeholder = this.translateIfPossible(this.options.placeholder);
83
+ _classPrivateFieldGet(this, _input).value = this.translateIfPossible(this.options.value);
61
84
  }
62
85
 
63
86
  /**
@@ -65,23 +88,11 @@ class InputUI extends _base.default {
65
88
  */
66
89
  focus() {
67
90
  if (this.isBuilt()) {
68
- privatePool.get(this).input.focus();
91
+ _classPrivateFieldGet(this, _input).focus();
69
92
  }
70
93
  }
71
-
72
- /**
73
- * OnClick listener.
74
- */
75
- onClick() {}
76
-
77
- /**
78
- * OnKeyup listener.
79
- *
80
- * @param {Event} event The mouse event object.
81
- */
82
- onKeyup(event) {
83
- this.options.value = event.target.value;
84
- }
85
94
  }
86
- var _default = InputUI;
87
- exports.default = _default;
95
+ exports.InputUI = InputUI;
96
+ function _onKeyup2(event) {
97
+ this.options.value = event.target.value;
98
+ }