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,293 +0,0 @@
1
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2
-
3
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
4
-
5
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
6
-
7
- import { addClass, fastInnerText, removeClass } from "./../../../helpers/dom/element.mjs";
8
- import { objectEach } from "./../../../helpers/object.mjs";
9
- import { randomString } from "./../../../helpers/string.mjs";
10
- import Event from "./event.mjs";
11
- import Overlays from "./overlays.mjs";
12
- import Scroll from "./scroll.mjs";
13
- import Settings from "./settings.mjs";
14
- import MasterTable from "./table/master.mjs";
15
- import Viewport from "./viewport.mjs";
16
- /**
17
- * @class Walkontable
18
- */
19
-
20
- var Walkontable = /*#__PURE__*/function () {
21
- /**
22
- * @param {object} settings The Walkontable settings.
23
- */
24
- function Walkontable(settings) {
25
- _classCallCheck(this, Walkontable);
26
-
27
- var originalHeaders = []; // this is the namespace for global events
28
-
29
- this.guid = "wt_".concat(randomString());
30
- this.rootDocument = settings.table.ownerDocument;
31
- this.rootWindow = this.rootDocument.defaultView; // bootstrap from settings
32
-
33
- if (settings.cloneSource) {
34
- this.cloneSource = settings.cloneSource;
35
- this.cloneOverlay = settings.cloneOverlay;
36
- this.wtSettings = settings.cloneSource.wtSettings;
37
- this.wtTable = this.cloneOverlay.createTable(this, settings.table);
38
- this.wtScroll = new Scroll(this);
39
- this.wtViewport = settings.cloneSource.wtViewport;
40
- this.wtEvent = new Event(this);
41
- this.selections = this.cloneSource.selections;
42
- } else {
43
- this.wtSettings = new Settings(this, settings);
44
- this.wtTable = new MasterTable(this, settings.table);
45
- this.wtScroll = new Scroll(this);
46
- this.wtViewport = new Viewport(this);
47
- this.wtEvent = new Event(this);
48
- this.selections = this.getSetting('selections');
49
- this.wtOverlays = new Overlays(this);
50
- this.exportSettingsAsClassNames();
51
- } // find original headers
52
-
53
-
54
- if (this.wtTable.THEAD.childNodes.length && this.wtTable.THEAD.childNodes[0].childNodes.length) {
55
- for (var c = 0, clen = this.wtTable.THEAD.childNodes[0].childNodes.length; c < clen; c++) {
56
- originalHeaders.push(this.wtTable.THEAD.childNodes[0].childNodes[c].innerHTML);
57
- }
58
-
59
- if (!this.getSetting('columnHeaders').length) {
60
- this.update('columnHeaders', [function (column, TH) {
61
- fastInnerText(TH, originalHeaders[column]);
62
- }]);
63
- }
64
- }
65
-
66
- this.drawn = false;
67
- this.drawInterrupted = false;
68
- }
69
- /**
70
- * Force rerender of Walkontable.
71
- *
72
- * @param {boolean} [fastDraw=false] When `true`, try to refresh only the positions of borders without rerendering
73
- * the data. It will only work if Table.draw() does not force
74
- * rendering anyway.
75
- * @returns {Walkontable}
76
- */
77
-
78
-
79
- _createClass(Walkontable, [{
80
- key: "draw",
81
- value: function draw() {
82
- var fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
83
- this.drawInterrupted = false;
84
-
85
- if (!fastDraw && !this.wtTable.isVisible()) {
86
- // draw interrupted because TABLE is not visible
87
- this.drawInterrupted = true;
88
- } else {
89
- this.wtTable.draw(fastDraw);
90
- }
91
-
92
- return this;
93
- }
94
- /**
95
- * Returns the TD at coords. If topmost is set to true, returns TD from the topmost overlay layer,
96
- * if not set or set to false, returns TD from the master table.
97
- *
98
- * @param {CellCoords} coords The cell coordinates.
99
- * @param {boolean} [topmost=false] If set to `true`, it returns the TD element from the topmost overlay. For example,
100
- * if the wanted cell is in the range of fixed rows, it will return a TD element
101
- * from the top overlay.
102
- * @returns {HTMLElement}
103
- */
104
-
105
- }, {
106
- key: "getCell",
107
- value: function getCell(coords) {
108
- var topmost = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
109
-
110
- if (!topmost) {
111
- return this.wtTable.getCell(coords);
112
- }
113
-
114
- var totalRows = this.wtSettings.getSetting('totalRows');
115
- var fixedRowsTop = this.wtSettings.getSetting('fixedRowsTop');
116
- var fixedRowsBottom = this.wtSettings.getSetting('fixedRowsBottom');
117
- var fixedColumns = this.wtSettings.getSetting('fixedColumnsLeft');
118
-
119
- if (coords.row < fixedRowsTop && coords.col < fixedColumns) {
120
- return this.wtOverlays.topLeftCornerOverlay.clone.wtTable.getCell(coords);
121
- } else if (coords.row < fixedRowsTop) {
122
- return this.wtOverlays.topOverlay.clone.wtTable.getCell(coords);
123
- } else if (coords.col < fixedColumns && coords.row >= totalRows - fixedRowsBottom) {
124
- if (this.wtOverlays.bottomLeftCornerOverlay && this.wtOverlays.bottomLeftCornerOverlay.clone) {
125
- return this.wtOverlays.bottomLeftCornerOverlay.clone.wtTable.getCell(coords);
126
- }
127
- } else if (coords.col < fixedColumns) {
128
- return this.wtOverlays.leftOverlay.clone.wtTable.getCell(coords);
129
- } else if (coords.row < totalRows && coords.row >= totalRows - fixedRowsBottom) {
130
- if (this.wtOverlays.bottomOverlay && this.wtOverlays.bottomOverlay.clone) {
131
- return this.wtOverlays.bottomOverlay.clone.wtTable.getCell(coords);
132
- }
133
- }
134
-
135
- return this.wtTable.getCell(coords);
136
- }
137
- /**
138
- * @param {object} settings The singular settings to update or if passed as object to merge with.
139
- * @param {*} value The value to set if the first argument is passed as string.
140
- * @returns {Walkontable}
141
- */
142
-
143
- }, {
144
- key: "update",
145
- value: function update(settings, value) {
146
- return this.wtSettings.update(settings, value);
147
- }
148
- /**
149
- * Scrolls the viewport to a cell (rerenders if needed).
150
- *
151
- * @param {CellCoords} coords The cell coordinates to scroll to.
152
- * @param {boolean} [snapToTop] If `true`, viewport is scrolled to show the cell on the top of the table.
153
- * @param {boolean} [snapToRight] If `true`, viewport is scrolled to show the cell on the right of the table.
154
- * @param {boolean} [snapToBottom] If `true`, viewport is scrolled to show the cell on the bottom of the table.
155
- * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left of the table.
156
- * @returns {boolean}
157
- */
158
-
159
- }, {
160
- key: "scrollViewport",
161
- value: function scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft) {
162
- if (coords.col < 0 || coords.row < 0) {
163
- return false;
164
- }
165
-
166
- return this.wtScroll.scrollViewport(coords, snapToTop, snapToRight, snapToBottom, snapToLeft);
167
- }
168
- /**
169
- * Scrolls the viewport to a column (rerenders if needed).
170
- *
171
- * @param {number} column Visual column index.
172
- * @param {boolean} [snapToRight] If `true`, viewport is scrolled to show the cell on the right of the table.
173
- * @param {boolean} [snapToLeft] If `true`, viewport is scrolled to show the cell on the left of the table.
174
- * @returns {boolean}
175
- */
176
-
177
- }, {
178
- key: "scrollViewportHorizontally",
179
- value: function scrollViewportHorizontally(column, snapToRight, snapToLeft) {
180
- if (column < 0) {
181
- return false;
182
- }
183
-
184
- return this.wtScroll.scrollViewportHorizontally(column, snapToRight, snapToLeft);
185
- }
186
- /**
187
- * Scrolls the viewport to a row (rerenders if needed).
188
- *
189
- * @param {number} row Visual row index.
190
- * @param {boolean} [snapToTop] If `true`, viewport is scrolled to show the cell on the top of the table.
191
- * @param {boolean} [snapToBottom] If `true`, viewport is scrolled to show the cell on the bottom of the table.
192
- * @returns {boolean}
193
- */
194
-
195
- }, {
196
- key: "scrollViewportVertically",
197
- value: function scrollViewportVertically(row, snapToTop, snapToBottom) {
198
- if (row < 0) {
199
- return false;
200
- }
201
-
202
- return this.wtScroll.scrollViewportVertically(row, snapToTop, snapToBottom);
203
- }
204
- /**
205
- * @returns {Array}
206
- */
207
-
208
- }, {
209
- key: "getViewport",
210
- value: function getViewport() {
211
- return [this.wtTable.getFirstVisibleRow(), this.wtTable.getFirstVisibleColumn(), this.wtTable.getLastVisibleRow(), this.wtTable.getLastVisibleColumn()];
212
- }
213
- /**
214
- * Get overlay name.
215
- *
216
- * @returns {string}
217
- */
218
-
219
- }, {
220
- key: "getOverlayName",
221
- value: function getOverlayName() {
222
- return this.cloneOverlay ? this.cloneOverlay.type : 'master';
223
- }
224
- /**
225
- * Export settings as class names added to the parent element of the table.
226
- */
227
-
228
- }, {
229
- key: "exportSettingsAsClassNames",
230
- value: function exportSettingsAsClassNames() {
231
- var _this = this;
232
-
233
- var toExport = {
234
- rowHeaders: 'htRowHeaders',
235
- columnHeaders: 'htColumnHeaders'
236
- };
237
- var allClassNames = [];
238
- var newClassNames = [];
239
- objectEach(toExport, function (className, key) {
240
- if (_this.getSetting(key).length) {
241
- newClassNames.push(className);
242
- }
243
-
244
- allClassNames.push(className);
245
- });
246
- removeClass(this.wtTable.wtRootElement.parentNode, allClassNames);
247
- addClass(this.wtTable.wtRootElement.parentNode, newClassNames);
248
- }
249
- /**
250
- * Get/Set Walkontable instance setting.
251
- *
252
- * @param {string} key The settings key to retrieve.
253
- * @param {*} [param1] Additional parameter passed to the options defined as function.
254
- * @param {*} [param2] Additional parameter passed to the options defined as function.
255
- * @param {*} [param3] Additional parameter passed to the options defined as function.
256
- * @param {*} [param4] Additional parameter passed to the options defined as function.
257
- * @returns {*}
258
- */
259
-
260
- }, {
261
- key: "getSetting",
262
- value: function getSetting(key, param1, param2, param3, param4) {
263
- // this is faster than .apply - https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips
264
- return this.wtSettings.getSetting(key, param1, param2, param3, param4);
265
- }
266
- /**
267
- * Checks if setting exists.
268
- *
269
- * @param {string} key The settings key to check.
270
- * @returns {boolean}
271
- */
272
-
273
- }, {
274
- key: "hasSetting",
275
- value: function hasSetting(key) {
276
- return this.wtSettings.has(key);
277
- }
278
- /**
279
- * Destroy instance.
280
- */
281
-
282
- }, {
283
- key: "destroy",
284
- value: function destroy() {
285
- this.wtOverlays.destroy();
286
- this.wtEvent.destroy();
287
- }
288
- }]);
289
-
290
- return Walkontable;
291
- }();
292
-
293
- export default Walkontable;
@@ -1,70 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.createOverlay = createOverlay;
5
- exports.hasOverlay = hasOverlay;
6
- exports.isOverlayTypeOf = isOverlayTypeOf;
7
- exports.registerOverlayOnce = registerOverlayOnce;
8
-
9
- require("core-js/modules/es.array.index-of.js");
10
-
11
- var _constants = require("./constants");
12
-
13
- var registeredOverlays = {};
14
- /**
15
- * Register overlay class. If the Overlay under the same name is already registered
16
- * the class won't be registered.
17
- *
18
- * @param {Overlay} overlayClass Overlay class extended from base overlay class {@link Overlay}.
19
- */
20
-
21
- function registerOverlayOnce(overlayClass) {
22
- var overlayName = overlayClass.OVERLAY_NAME;
23
-
24
- if (_constants.CLONE_TYPES.indexOf(overlayName) === -1) {
25
- throw new Error("Unsupported overlay (".concat(overlayName, ")."));
26
- }
27
-
28
- if (!hasOverlay(overlayName)) {
29
- registeredOverlays[overlayName] = overlayClass;
30
- }
31
- }
32
- /**
33
- * Create new instance of overlay type.
34
- *
35
- * @param {string} type Overlay type, one of the CLONE_TYPES value.
36
- * @param {Walkontable} wot The Walkontable instance.
37
- * @returns {Overlay}
38
- */
39
-
40
-
41
- function createOverlay(type, wot) {
42
- return new registeredOverlays[type](wot);
43
- }
44
- /**
45
- * Check if specified overlay was registered.
46
- *
47
- * @param {string} type Overlay type, one of the CLONE_TYPES value.
48
- * @returns {boolean}
49
- */
50
-
51
-
52
- function hasOverlay(type) {
53
- return registeredOverlays[type] !== void 0;
54
- }
55
- /**
56
- * Checks if overlay object (`overlay`) is instance of overlay type (`type`).
57
- *
58
- * @param {Overlay} overlay Overlay object.
59
- * @param {string} type Overlay type, one of the CLONE_TYPES value.
60
- * @returns {boolean}
61
- */
62
-
63
-
64
- function isOverlayTypeOf(overlay, type) {
65
- if (!overlay || !registeredOverlays[type]) {
66
- return false;
67
- }
68
-
69
- return overlay instanceof registeredOverlays[type];
70
- }
@@ -1,57 +0,0 @@
1
- import "core-js/modules/es.array.index-of.js";
2
- import { CLONE_TYPES } from "./constants.mjs";
3
- var registeredOverlays = {};
4
- /**
5
- * Register overlay class. If the Overlay under the same name is already registered
6
- * the class won't be registered.
7
- *
8
- * @param {Overlay} overlayClass Overlay class extended from base overlay class {@link Overlay}.
9
- */
10
-
11
- export function registerOverlayOnce(overlayClass) {
12
- var overlayName = overlayClass.OVERLAY_NAME;
13
-
14
- if (CLONE_TYPES.indexOf(overlayName) === -1) {
15
- throw new Error("Unsupported overlay (".concat(overlayName, ")."));
16
- }
17
-
18
- if (!hasOverlay(overlayName)) {
19
- registeredOverlays[overlayName] = overlayClass;
20
- }
21
- }
22
- /**
23
- * Create new instance of overlay type.
24
- *
25
- * @param {string} type Overlay type, one of the CLONE_TYPES value.
26
- * @param {Walkontable} wot The Walkontable instance.
27
- * @returns {Overlay}
28
- */
29
-
30
- export function createOverlay(type, wot) {
31
- return new registeredOverlays[type](wot);
32
- }
33
- /**
34
- * Check if specified overlay was registered.
35
- *
36
- * @param {string} type Overlay type, one of the CLONE_TYPES value.
37
- * @returns {boolean}
38
- */
39
-
40
- export function hasOverlay(type) {
41
- return registeredOverlays[type] !== void 0;
42
- }
43
- /**
44
- * Checks if overlay object (`overlay`) is instance of overlay type (`type`).
45
- *
46
- * @param {Overlay} overlay Overlay object.
47
- * @param {string} type Overlay type, one of the CLONE_TYPES value.
48
- * @returns {boolean}
49
- */
50
-
51
- export function isOverlayTypeOf(overlay, type) {
52
- if (!overlay || !registeredOverlays[type]) {
53
- return false;
54
- }
55
-
56
- return overlay instanceof registeredOverlays[type];
57
- }
@@ -1,121 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports._getRefCount = _getRefCount;
5
- exports._resetState = _resetState;
6
- exports.isPressed = isPressed;
7
- exports.isPressedCtrlKey = isPressedCtrlKey;
8
- exports.startObserving = startObserving;
9
- exports.stopObserving = stopObserving;
10
-
11
- require("core-js/modules/es.array.iterator.js");
12
-
13
- require("core-js/modules/es.object.to-string.js");
14
-
15
- require("core-js/modules/es.set.js");
16
-
17
- require("core-js/modules/es.string.iterator.js");
18
-
19
- require("core-js/modules/web.dom-collections.iterator.js");
20
-
21
- require("core-js/modules/es.array.from.js");
22
-
23
- var _eventManager = _interopRequireDefault(require("../eventManager"));
24
-
25
- var _unicode = require("../helpers/unicode");
26
-
27
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
-
29
- var eventManager = new _eventManager.default();
30
- var pressedKeys = new Set();
31
- var refCount = 0;
32
- /**
33
- * Begins observing keyboard keys states.
34
- *
35
- * @param {Document} rootDocument The document owner.
36
- */
37
-
38
- function startObserving(rootDocument) {
39
- if (refCount === 0) {
40
- eventManager.addEventListener(rootDocument, 'keydown', function (event) {
41
- if (!pressedKeys.has(event.keyCode)) {
42
- pressedKeys.add(event.keyCode);
43
- }
44
- });
45
- eventManager.addEventListener(rootDocument, 'keyup', function (event) {
46
- if (pressedKeys.has(event.keyCode)) {
47
- pressedKeys.delete(event.keyCode);
48
- }
49
- });
50
- eventManager.addEventListener(rootDocument, 'visibilitychange', function () {
51
- if (rootDocument.hidden) {
52
- pressedKeys.clear();
53
- }
54
- });
55
- eventManager.addEventListener(rootDocument.defaultView, 'blur', function () {
56
- pressedKeys.clear();
57
- });
58
- }
59
-
60
- refCount += 1;
61
- }
62
- /**
63
- * Stops observing keyboard keys states and clear all previously saved states.
64
- */
65
-
66
-
67
- function stopObserving() {
68
- if (refCount > 0) {
69
- refCount -= 1;
70
- }
71
-
72
- if (refCount === 0) {
73
- _resetState();
74
- }
75
- }
76
- /**
77
- * Remove all listeners attached to the DOM and clear all previously saved states.
78
- */
79
-
80
-
81
- function _resetState() {
82
- eventManager.clearEvents();
83
- pressedKeys.clear();
84
- refCount = 0;
85
- }
86
- /**
87
- * Checks if provided keyCode or keyCodes are pressed.
88
- *
89
- * @param {string} keyCodes The key codes passed as a string defined in helpers/unicode.js file delimited with '|'.
90
- * @returns {boolean}
91
- */
92
-
93
-
94
- function isPressed(keyCodes) {
95
- return Array.from(pressedKeys.values()).some(function (_keyCode) {
96
- return (0, _unicode.isKey)(_keyCode, keyCodes);
97
- });
98
- }
99
- /**
100
- * Checks if ctrl keys are pressed.
101
- *
102
- * @returns {boolean}
103
- */
104
-
105
-
106
- function isPressedCtrlKey() {
107
- var values = Array.from(pressedKeys.values());
108
- return values.some(function (_keyCode) {
109
- return (0, _unicode.isCtrlMetaKey)(_keyCode);
110
- });
111
- }
112
- /**
113
- * Returns reference count. Useful for debugging and testing purposes.
114
- *
115
- * @returns {number}
116
- */
117
-
118
-
119
- function _getRefCount() {
120
- return refCount;
121
- }
@@ -1,103 +0,0 @@
1
- import "core-js/modules/es.array.iterator.js";
2
- import "core-js/modules/es.object.to-string.js";
3
- import "core-js/modules/es.set.js";
4
- import "core-js/modules/es.string.iterator.js";
5
- import "core-js/modules/web.dom-collections.iterator.js";
6
- import "core-js/modules/es.array.from.js";
7
- import EventManager from "../eventManager.mjs";
8
- import { isCtrlMetaKey, isKey } from "../helpers/unicode.mjs";
9
- var eventManager = new EventManager();
10
- var pressedKeys = new Set();
11
- var refCount = 0;
12
- /**
13
- * Begins observing keyboard keys states.
14
- *
15
- * @param {Document} rootDocument The document owner.
16
- */
17
-
18
- function startObserving(rootDocument) {
19
- if (refCount === 0) {
20
- eventManager.addEventListener(rootDocument, 'keydown', function (event) {
21
- if (!pressedKeys.has(event.keyCode)) {
22
- pressedKeys.add(event.keyCode);
23
- }
24
- });
25
- eventManager.addEventListener(rootDocument, 'keyup', function (event) {
26
- if (pressedKeys.has(event.keyCode)) {
27
- pressedKeys.delete(event.keyCode);
28
- }
29
- });
30
- eventManager.addEventListener(rootDocument, 'visibilitychange', function () {
31
- if (rootDocument.hidden) {
32
- pressedKeys.clear();
33
- }
34
- });
35
- eventManager.addEventListener(rootDocument.defaultView, 'blur', function () {
36
- pressedKeys.clear();
37
- });
38
- }
39
-
40
- refCount += 1;
41
- }
42
- /**
43
- * Stops observing keyboard keys states and clear all previously saved states.
44
- */
45
-
46
-
47
- function stopObserving() {
48
- if (refCount > 0) {
49
- refCount -= 1;
50
- }
51
-
52
- if (refCount === 0) {
53
- _resetState();
54
- }
55
- }
56
- /**
57
- * Remove all listeners attached to the DOM and clear all previously saved states.
58
- */
59
-
60
-
61
- function _resetState() {
62
- eventManager.clearEvents();
63
- pressedKeys.clear();
64
- refCount = 0;
65
- }
66
- /**
67
- * Checks if provided keyCode or keyCodes are pressed.
68
- *
69
- * @param {string} keyCodes The key codes passed as a string defined in helpers/unicode.js file delimited with '|'.
70
- * @returns {boolean}
71
- */
72
-
73
-
74
- function isPressed(keyCodes) {
75
- return Array.from(pressedKeys.values()).some(function (_keyCode) {
76
- return isKey(_keyCode, keyCodes);
77
- });
78
- }
79
- /**
80
- * Checks if ctrl keys are pressed.
81
- *
82
- * @returns {boolean}
83
- */
84
-
85
-
86
- function isPressedCtrlKey() {
87
- var values = Array.from(pressedKeys.values());
88
- return values.some(function (_keyCode) {
89
- return isCtrlMetaKey(_keyCode);
90
- });
91
- }
92
- /**
93
- * Returns reference count. Useful for debugging and testing purposes.
94
- *
95
- * @returns {number}
96
- */
97
-
98
-
99
- function _getRefCount() {
100
- return refCount;
101
- }
102
-
103
- export { _getRefCount, _resetState, isPressed, isPressedCtrlKey, startObserving, stopObserving };