handsontable 11.0.0 → 12.0.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 (633) hide show
  1. package/3rdparty/walkontable/src/border.js +121 -99
  2. package/3rdparty/walkontable/src/border.mjs +122 -96
  3. package/3rdparty/walkontable/src/calculator/viewportColumns.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +1 -1
  5. package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -1
  6. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +1 -1
  7. package/3rdparty/walkontable/src/cell/coords.js +60 -18
  8. package/3rdparty/walkontable/src/cell/coords.mjs +56 -18
  9. package/3rdparty/walkontable/src/cell/range.d.ts +10 -2
  10. package/3rdparty/walkontable/src/cell/range.js +279 -100
  11. package/3rdparty/walkontable/src/cell/range.mjs +274 -100
  12. package/3rdparty/walkontable/src/core/_base.js +452 -0
  13. package/3rdparty/walkontable/src/core/_base.mjs +440 -0
  14. package/3rdparty/walkontable/src/core/clone.js +97 -0
  15. package/3rdparty/walkontable/src/core/clone.mjs +80 -0
  16. package/3rdparty/walkontable/src/core/core.js +183 -0
  17. package/3rdparty/walkontable/src/core/core.mjs +160 -0
  18. package/3rdparty/walkontable/src/event.js +100 -67
  19. package/3rdparty/walkontable/src/event.mjs +100 -64
  20. package/3rdparty/walkontable/src/facade/core.js +251 -0
  21. package/3rdparty/walkontable/src/facade/core.mjs +243 -0
  22. package/3rdparty/walkontable/src/filter/column.js +1 -1
  23. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  24. package/3rdparty/walkontable/src/filter/row.js +1 -1
  25. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  26. package/3rdparty/walkontable/src/index.js +3 -47
  27. package/3rdparty/walkontable/src/index.mjs +3 -13
  28. package/3rdparty/walkontable/src/overlay/_base.js +125 -58
  29. package/3rdparty/walkontable/src/overlay/_base.mjs +126 -59
  30. package/3rdparty/walkontable/src/overlay/bottom.js +86 -76
  31. package/3rdparty/walkontable/src/overlay/bottom.mjs +86 -76
  32. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.js → bottomInlineStartCorner.js} +35 -58
  33. package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +34 -57
  34. package/3rdparty/walkontable/src/overlay/constants.js +25 -9
  35. package/3rdparty/walkontable/src/overlay/constants.mjs +14 -4
  36. package/3rdparty/walkontable/src/overlay/index.js +10 -19
  37. package/3rdparty/walkontable/src/overlay/index.mjs +4 -5
  38. package/3rdparty/walkontable/src/overlay/{left.js → inlineStart.js} +102 -80
  39. package/3rdparty/walkontable/src/overlay/{left.mjs → inlineStart.mjs} +101 -79
  40. package/3rdparty/walkontable/src/overlay/top.js +84 -79
  41. package/3rdparty/walkontable/src/overlay/top.mjs +84 -79
  42. package/3rdparty/walkontable/src/overlay/{topLeftCorner.js → topInlineStartCorner.js} +56 -57
  43. package/3rdparty/walkontable/src/overlay/{topLeftCorner.mjs → topInlineStartCorner.mjs} +51 -52
  44. package/3rdparty/walkontable/src/overlays.js +226 -157
  45. package/3rdparty/walkontable/src/overlays.mjs +226 -156
  46. package/3rdparty/walkontable/src/renderer/_base.js +1 -1
  47. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  48. package/3rdparty/walkontable/src/renderer/cells.js +5 -4
  49. package/3rdparty/walkontable/src/renderer/cells.mjs +5 -4
  50. package/3rdparty/walkontable/src/renderer/colGroup.js +3 -3
  51. package/3rdparty/walkontable/src/renderer/colGroup.mjs +3 -3
  52. package/3rdparty/walkontable/src/renderer/columnHeaders.js +3 -3
  53. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +3 -3
  54. package/3rdparty/walkontable/src/renderer/index.js +1 -1
  55. package/3rdparty/walkontable/src/renderer/index.mjs +1 -1
  56. package/3rdparty/walkontable/src/renderer/rowHeaders.js +3 -3
  57. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +3 -3
  58. package/3rdparty/walkontable/src/renderer/rows.js +3 -3
  59. package/3rdparty/walkontable/src/renderer/rows.mjs +3 -3
  60. package/3rdparty/walkontable/src/renderer/table.js +1 -1
  61. package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
  62. package/3rdparty/walkontable/src/scroll.js +61 -88
  63. package/3rdparty/walkontable/src/scroll.mjs +61 -88
  64. package/3rdparty/walkontable/src/selection.js +12 -16
  65. package/3rdparty/walkontable/src/selection.mjs +12 -14
  66. package/3rdparty/walkontable/src/settings.js +236 -127
  67. package/3rdparty/walkontable/src/settings.mjs +236 -126
  68. package/3rdparty/walkontable/src/table/bottom.js +21 -6
  69. package/3rdparty/walkontable/src/table/bottom.mjs +20 -6
  70. package/3rdparty/walkontable/src/table/{bottomLeftCorner.js → bottomInlineStartCorner.js} +31 -15
  71. package/3rdparty/walkontable/src/table/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +30 -15
  72. package/3rdparty/walkontable/src/table/{left.js → inlineStart.js} +27 -15
  73. package/3rdparty/walkontable/src/table/{left.mjs → inlineStart.mjs} +26 -15
  74. package/3rdparty/walkontable/src/table/master.js +23 -13
  75. package/3rdparty/walkontable/src/table/master.mjs +23 -13
  76. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +12 -6
  77. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +12 -6
  78. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +12 -6
  79. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +12 -6
  80. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.js → stickyColumnsStart.js} +13 -7
  81. package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.mjs → stickyColumnsStart.mjs} +13 -7
  82. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +11 -5
  83. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +11 -5
  84. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -3
  85. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -3
  86. package/3rdparty/walkontable/src/table/top.js +21 -6
  87. package/3rdparty/walkontable/src/table/top.mjs +20 -6
  88. package/3rdparty/walkontable/src/table/{topLeftCorner.js → topInlineStartCorner.js} +31 -15
  89. package/3rdparty/walkontable/src/table/{topLeftCorner.mjs → topInlineStartCorner.mjs} +30 -15
  90. package/3rdparty/walkontable/src/table.js +236 -141
  91. package/3rdparty/walkontable/src/table.mjs +232 -135
  92. package/3rdparty/walkontable/src/types.js +103 -0
  93. package/3rdparty/walkontable/src/types.mjs +102 -0
  94. package/3rdparty/walkontable/src/utils/column.js +23 -34
  95. package/3rdparty/walkontable/src/utils/column.mjs +23 -31
  96. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  97. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  98. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +3 -3
  99. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +3 -3
  100. package/3rdparty/walkontable/src/utils/orderView/view.js +1 -1
  101. package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
  102. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  103. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  104. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +1 -1
  105. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  106. package/3rdparty/walkontable/src/utils/row.js +10 -5
  107. package/3rdparty/walkontable/src/utils/row.mjs +10 -5
  108. package/3rdparty/walkontable/src/viewport.js +78 -81
  109. package/3rdparty/walkontable/src/viewport.mjs +78 -78
  110. package/CHANGELOG.md +94 -17
  111. package/README.md +10 -7
  112. package/base.js +2 -2
  113. package/base.mjs +2 -2
  114. package/cellTypes/timeType/timeType.d.ts +6 -6
  115. package/cellTypes/timeType/timeType.js +4 -5
  116. package/cellTypes/timeType/timeType.mjs +4 -5
  117. package/core.d.ts +9 -3
  118. package/core.js +590 -157
  119. package/core.mjs +599 -169
  120. package/dataMap/dataMap.js +2 -2
  121. package/dataMap/dataMap.mjs +2 -2
  122. package/dataMap/index.js +8 -0
  123. package/dataMap/index.mjs +3 -1
  124. package/dataMap/metaManager/index.js +3 -3
  125. package/dataMap/metaManager/index.mjs +3 -3
  126. package/dataMap/metaManager/lazyFactoryMap.js +1 -1
  127. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -1
  128. package/dataMap/metaManager/metaLayers/cellMeta.js +1 -1
  129. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
  130. package/dataMap/metaManager/metaLayers/columnMeta.js +1 -1
  131. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  132. package/dataMap/metaManager/metaLayers/globalMeta.js +7 -3
  133. package/dataMap/metaManager/metaLayers/globalMeta.mjs +7 -3
  134. package/dataMap/metaManager/metaLayers/tableMeta.js +3 -3
  135. package/dataMap/metaManager/metaLayers/tableMeta.mjs +3 -3
  136. package/dataMap/metaManager/metaSchema.js +2931 -2676
  137. package/dataMap/metaManager/metaSchema.mjs +2931 -2676
  138. package/dataMap/metaManager/mods/dynamicCellMeta.js +1 -1
  139. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  140. package/dataMap/metaManager/mods/extendMetaProperties.js +126 -0
  141. package/dataMap/metaManager/mods/extendMetaProperties.mjs +113 -0
  142. package/dataMap/replaceData.js +140 -0
  143. package/dataMap/replaceData.mjs +124 -0
  144. package/dataSource.js +1 -1
  145. package/dataSource.mjs +1 -1
  146. package/dist/README.md +2 -2
  147. package/dist/handsontable.css +424 -166
  148. package/dist/handsontable.full.css +559 -298
  149. package/dist/handsontable.full.js +47163 -41289
  150. package/dist/handsontable.full.min.css +8 -13
  151. package/dist/handsontable.full.min.js +143 -142
  152. package/dist/handsontable.js +28270 -24105
  153. package/dist/handsontable.min.css +8 -11
  154. package/dist/handsontable.min.js +3 -3
  155. package/dist/languages/all.js +69 -38
  156. package/dist/languages/all.min.js +1 -1
  157. package/dist/languages/ar-AR.js +167 -0
  158. package/dist/languages/ar-AR.min.js +1 -0
  159. package/dist/languages/de-CH.js +32 -33
  160. package/dist/languages/de-CH.min.js +1 -1
  161. package/dist/languages/de-DE.js +5 -6
  162. package/dist/languages/de-DE.min.js +1 -1
  163. package/dist/languages/en-US.js +5 -6
  164. package/dist/languages/en-US.min.js +1 -1
  165. package/dist/languages/es-MX.js +5 -6
  166. package/dist/languages/es-MX.min.js +1 -1
  167. package/dist/languages/fr-FR.js +5 -6
  168. package/dist/languages/fr-FR.min.js +1 -1
  169. package/dist/languages/it-IT.js +5 -6
  170. package/dist/languages/it-IT.min.js +1 -1
  171. package/dist/languages/ja-JP.js +5 -6
  172. package/dist/languages/ja-JP.min.js +1 -1
  173. package/dist/languages/ko-KR.js +37 -42
  174. package/dist/languages/ko-KR.min.js +1 -1
  175. package/dist/languages/lv-LV.js +4 -6
  176. package/dist/languages/lv-LV.min.js +1 -1
  177. package/dist/languages/nb-NO.js +4 -6
  178. package/dist/languages/nb-NO.min.js +1 -1
  179. package/dist/languages/nl-NL.js +4 -6
  180. package/dist/languages/nl-NL.min.js +1 -1
  181. package/dist/languages/pl-PL.js +4 -6
  182. package/dist/languages/pl-PL.min.js +1 -1
  183. package/dist/languages/pt-BR.js +4 -6
  184. package/dist/languages/pt-BR.min.js +1 -1
  185. package/dist/languages/ru-RU.js +4 -6
  186. package/dist/languages/ru-RU.min.js +1 -1
  187. package/dist/languages/zh-CN.js +4 -6
  188. package/dist/languages/zh-CN.min.js +1 -1
  189. package/dist/languages/zh-TW.js +25 -27
  190. package/dist/languages/zh-TW.min.js +1 -1
  191. package/editorManager.js +121 -268
  192. package/editorManager.mjs +129 -279
  193. package/editors/autocompleteEditor/autocompleteEditor.js +19 -17
  194. package/editors/autocompleteEditor/autocompleteEditor.mjs +19 -17
  195. package/editors/baseEditor/baseEditor.js +207 -36
  196. package/editors/baseEditor/baseEditor.mjs +202 -34
  197. package/editors/checkboxEditor/checkboxEditor.js +3 -3
  198. package/editors/checkboxEditor/checkboxEditor.mjs +3 -3
  199. package/editors/dateEditor/dateEditor.js +22 -9
  200. package/editors/dateEditor/dateEditor.mjs +23 -10
  201. package/editors/dropdownEditor/dropdownEditor.js +4 -4
  202. package/editors/dropdownEditor/dropdownEditor.mjs +4 -4
  203. package/editors/handsontableEditor/handsontableEditor.js +107 -56
  204. package/editors/handsontableEditor/handsontableEditor.mjs +107 -56
  205. package/editors/index.d.ts +3 -0
  206. package/editors/index.js +6 -0
  207. package/editors/index.mjs +3 -1
  208. package/editors/numericEditor/numericEditor.js +3 -3
  209. package/editors/numericEditor/numericEditor.mjs +3 -3
  210. package/editors/passwordEditor/passwordEditor.js +4 -4
  211. package/editors/passwordEditor/passwordEditor.mjs +4 -4
  212. package/editors/selectEditor/selectEditor.js +66 -111
  213. package/editors/selectEditor/selectEditor.mjs +67 -110
  214. package/editors/textEditor/caretPositioner.js +49 -0
  215. package/editors/textEditor/caretPositioner.mjs +42 -0
  216. package/editors/textEditor/textEditor.js +206 -182
  217. package/editors/textEditor/textEditor.mjs +200 -180
  218. package/editors/timeEditor/index.d.ts +1 -0
  219. package/editors/timeEditor/index.js +9 -0
  220. package/editors/timeEditor/index.mjs +1 -0
  221. package/editors/timeEditor/timeEditor.d.ts +7 -0
  222. package/editors/timeEditor/timeEditor.js +105 -0
  223. package/editors/timeEditor/timeEditor.mjs +84 -0
  224. package/eventManager.js +11 -5
  225. package/eventManager.mjs +11 -5
  226. package/helpers/data.js +1 -1
  227. package/helpers/data.mjs +1 -1
  228. package/helpers/dom/element.js +1 -1
  229. package/helpers/dom/element.mjs +1 -1
  230. package/helpers/feature.js +1 -1
  231. package/helpers/feature.mjs +1 -1
  232. package/helpers/mixed.js +3 -3
  233. package/helpers/mixed.mjs +3 -3
  234. package/helpers/number.js +4 -4
  235. package/helpers/number.mjs +4 -4
  236. package/helpers/object.js +1 -1
  237. package/helpers/object.mjs +1 -1
  238. package/i18n/languages/ar-AR.js +41 -0
  239. package/i18n/languages/ar-AR.mjs +17 -0
  240. package/i18n/languages/de-CH.js +1 -1
  241. package/i18n/languages/de-DE.js +1 -1
  242. package/i18n/languages/en-US.js +1 -1
  243. package/i18n/languages/es-MX.js +1 -1
  244. package/i18n/languages/fr-FR.js +1 -1
  245. package/i18n/languages/index.js +4 -0
  246. package/i18n/languages/index.mjs +2 -1
  247. package/i18n/languages/it-IT.js +1 -1
  248. package/i18n/languages/ja-JP.js +1 -1
  249. package/i18n/languages/ko-KR.js +1 -1
  250. package/i18n/languages/lv-LV.js +1 -1
  251. package/i18n/languages/nb-NO.js +1 -1
  252. package/i18n/languages/nl-NL.js +1 -1
  253. package/i18n/languages/pl-PL.js +1 -1
  254. package/i18n/languages/pt-BR.js +1 -1
  255. package/i18n/languages/ru-RU.js +1 -1
  256. package/i18n/languages/zh-CN.js +1 -1
  257. package/i18n/languages/zh-TW.js +1 -1
  258. package/i18n/registry.js +1 -1
  259. package/index.d.ts +4 -0
  260. package/index.js +1 -1
  261. package/languages/all.js +69 -38
  262. package/languages/ar-AR.js +167 -0
  263. package/languages/ar-AR.mjs +19 -0
  264. package/languages/de-CH.js +32 -33
  265. package/languages/de-DE.js +5 -6
  266. package/languages/en-US.js +5 -6
  267. package/languages/es-MX.js +5 -6
  268. package/languages/fr-FR.js +5 -6
  269. package/languages/index.js +69 -38
  270. package/languages/index.mjs +2 -1
  271. package/languages/it-IT.js +5 -6
  272. package/languages/ja-JP.js +5 -6
  273. package/languages/ko-KR.js +37 -42
  274. package/languages/lv-LV.js +4 -6
  275. package/languages/nb-NO.js +4 -6
  276. package/languages/nl-NL.js +4 -6
  277. package/languages/pl-PL.js +4 -6
  278. package/languages/pt-BR.js +4 -6
  279. package/languages/ru-RU.js +4 -6
  280. package/languages/zh-CN.js +4 -6
  281. package/languages/zh-TW.js +25 -27
  282. package/package.json +26 -8
  283. package/pluginHooks.d.ts +2 -0
  284. package/pluginHooks.js +58 -27
  285. package/pluginHooks.mjs +58 -27
  286. package/plugins/autoColumnSize/autoColumnSize.js +14 -9
  287. package/plugins/autoColumnSize/autoColumnSize.mjs +14 -9
  288. package/plugins/autoRowSize/autoRowSize.js +15 -10
  289. package/plugins/autoRowSize/autoRowSize.mjs +15 -10
  290. package/plugins/autofill/autofill.js +50 -34
  291. package/plugins/autofill/autofill.mjs +50 -33
  292. package/plugins/autofill/utils.js +10 -11
  293. package/plugins/autofill/utils.mjs +10 -10
  294. package/plugins/base/base.d.ts +8 -2
  295. package/plugins/base/base.js +68 -5
  296. package/plugins/base/base.mjs +67 -5
  297. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -4
  298. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +4 -4
  299. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +4 -4
  300. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +4 -4
  301. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +4 -4
  302. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +4 -4
  303. package/plugins/collapsibleColumns/collapsibleColumns.js +49 -30
  304. package/plugins/collapsibleColumns/collapsibleColumns.mjs +49 -30
  305. package/plugins/columnSorting/columnSorting.d.ts +1 -1
  306. package/plugins/columnSorting/columnSorting.js +10 -12
  307. package/plugins/columnSorting/columnSorting.mjs +10 -11
  308. package/plugins/columnSorting/columnStatesManager.js +3 -3
  309. package/plugins/columnSorting/columnStatesManager.mjs +3 -3
  310. package/plugins/columnSummary/columnSummary.js +4 -4
  311. package/plugins/columnSummary/columnSummary.mjs +4 -4
  312. package/plugins/columnSummary/endpoints.js +1 -1
  313. package/plugins/columnSummary/endpoints.mjs +1 -1
  314. package/plugins/comments/commentEditor.js +24 -4
  315. package/plugins/comments/commentEditor.mjs +25 -5
  316. package/plugins/comments/comments.js +63 -104
  317. package/plugins/comments/comments.mjs +63 -102
  318. package/plugins/comments/displaySwitch.js +1 -1
  319. package/plugins/comments/displaySwitch.mjs +1 -1
  320. package/plugins/contextMenu/commandExecutor.js +1 -1
  321. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  322. package/plugins/contextMenu/contextMenu.js +11 -7
  323. package/plugins/contextMenu/contextMenu.mjs +11 -7
  324. package/plugins/contextMenu/cursor.js +1 -1
  325. package/plugins/contextMenu/cursor.mjs +1 -1
  326. package/plugins/contextMenu/itemsFactory.js +1 -1
  327. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  328. package/plugins/contextMenu/menu.js +223 -111
  329. package/plugins/contextMenu/menu.mjs +220 -112
  330. package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
  331. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  332. package/plugins/contextMenu/predefinedItems/columnLeft.js +13 -5
  333. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +11 -4
  334. package/plugins/contextMenu/predefinedItems/columnRight.js +10 -10
  335. package/plugins/contextMenu/predefinedItems/columnRight.mjs +9 -9
  336. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
  337. package/plugins/contextMenu/predefinedItems/redo.js +1 -1
  338. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  339. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  340. package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
  341. package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
  342. package/plugins/contextMenu/predefinedItems/undo.js +1 -1
  343. package/plugins/contextMenu/predefinedItems.js +1 -1
  344. package/plugins/contextMenu/utils.js +2 -2
  345. package/plugins/contextMenu/utils.mjs +2 -2
  346. package/plugins/copyPaste/clipboardData.js +1 -1
  347. package/plugins/copyPaste/clipboardData.mjs +1 -1
  348. package/plugins/copyPaste/contextMenuItem/copy.js +1 -1
  349. package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
  350. package/plugins/copyPaste/copyPaste.js +29 -19
  351. package/plugins/copyPaste/copyPaste.mjs +28 -19
  352. package/plugins/copyPaste/focusableElement.js +1 -1
  353. package/plugins/copyPaste/focusableElement.mjs +1 -1
  354. package/plugins/copyPaste/pasteEvent.js +6 -2
  355. package/plugins/copyPaste/pasteEvent.mjs +6 -2
  356. package/plugins/customBorders/contextMenuItem/bottom.js +1 -1
  357. package/plugins/customBorders/contextMenuItem/left.js +5 -4
  358. package/plugins/customBorders/contextMenuItem/left.mjs +4 -3
  359. package/plugins/customBorders/contextMenuItem/noBorders.js +1 -1
  360. package/plugins/customBorders/contextMenuItem/right.js +5 -4
  361. package/plugins/customBorders/contextMenuItem/right.mjs +4 -3
  362. package/plugins/customBorders/contextMenuItem/top.js +1 -1
  363. package/plugins/customBorders/customBorders.js +141 -85
  364. package/plugins/customBorders/customBorders.mjs +139 -82
  365. package/plugins/customBorders/utils.js +131 -27
  366. package/plugins/customBorders/utils.mjs +115 -27
  367. package/plugins/dragToScroll/dragToScroll.js +11 -6
  368. package/plugins/dragToScroll/dragToScroll.mjs +11 -6
  369. package/plugins/dropdownMenu/dropdownMenu.js +8 -7
  370. package/plugins/dropdownMenu/dropdownMenu.mjs +8 -7
  371. package/plugins/exportFile/dataProvider.js +1 -1
  372. package/plugins/exportFile/dataProvider.mjs +1 -1
  373. package/plugins/exportFile/exportFile.js +3 -3
  374. package/plugins/exportFile/exportFile.mjs +3 -3
  375. package/plugins/exportFile/types/_base.js +1 -1
  376. package/plugins/exportFile/types/_base.mjs +1 -1
  377. package/plugins/exportFile/types/csv.js +3 -3
  378. package/plugins/exportFile/types/csv.mjs +3 -3
  379. package/plugins/filters/component/_base.js +1 -1
  380. package/plugins/filters/component/_base.mjs +1 -1
  381. package/plugins/filters/component/actionBar.js +3 -3
  382. package/plugins/filters/component/actionBar.mjs +3 -3
  383. package/plugins/filters/component/condition.js +4 -4
  384. package/plugins/filters/component/condition.mjs +4 -4
  385. package/plugins/filters/component/operators.js +3 -3
  386. package/plugins/filters/component/operators.mjs +3 -3
  387. package/plugins/filters/component/value.js +4 -4
  388. package/plugins/filters/component/value.mjs +4 -4
  389. package/plugins/filters/condition/beginsWith.js +1 -1
  390. package/plugins/filters/condition/between.js +1 -1
  391. package/plugins/filters/condition/contains.js +1 -1
  392. package/plugins/filters/condition/date/after.js +1 -1
  393. package/plugins/filters/condition/date/before.js +1 -1
  394. package/plugins/filters/condition/date/today.js +1 -1
  395. package/plugins/filters/condition/date/tomorrow.js +1 -1
  396. package/plugins/filters/condition/date/yesterday.js +1 -1
  397. package/plugins/filters/condition/empty.js +1 -1
  398. package/plugins/filters/condition/endsWith.js +1 -1
  399. package/plugins/filters/condition/equal.js +1 -1
  400. package/plugins/filters/condition/greaterThan.js +1 -1
  401. package/plugins/filters/condition/greaterThanOrEqual.js +1 -1
  402. package/plugins/filters/condition/lessThan.js +1 -1
  403. package/plugins/filters/condition/lessThanOrEqual.js +1 -1
  404. package/plugins/filters/condition/none.js +1 -1
  405. package/plugins/filters/condition/notBetween.js +1 -1
  406. package/plugins/filters/condition/notContains.js +1 -1
  407. package/plugins/filters/condition/notEmpty.js +1 -1
  408. package/plugins/filters/condition/notEqual.js +1 -1
  409. package/plugins/filters/conditionCollection.js +1 -1
  410. package/plugins/filters/conditionCollection.mjs +1 -1
  411. package/plugins/filters/conditionUpdateObserver.js +1 -1
  412. package/plugins/filters/conditionUpdateObserver.mjs +1 -1
  413. package/plugins/filters/dataFilter.js +1 -1
  414. package/plugins/filters/dataFilter.mjs +1 -1
  415. package/plugins/filters/filters.js +12 -9
  416. package/plugins/filters/filters.mjs +12 -9
  417. package/plugins/filters/logicalOperations/conjunction.js +1 -1
  418. package/plugins/filters/logicalOperations/disjunction.js +1 -1
  419. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -1
  420. package/plugins/filters/ui/_base.js +2 -2
  421. package/plugins/filters/ui/_base.mjs +1 -1
  422. package/plugins/filters/ui/input.js +4 -4
  423. package/plugins/filters/ui/input.mjs +4 -4
  424. package/plugins/filters/ui/link.js +4 -4
  425. package/plugins/filters/ui/link.mjs +4 -4
  426. package/plugins/filters/ui/multipleSelect.js +19 -32
  427. package/plugins/filters/ui/multipleSelect.mjs +19 -32
  428. package/plugins/filters/ui/radioInput.js +4 -4
  429. package/plugins/filters/ui/radioInput.mjs +4 -4
  430. package/plugins/filters/ui/select.js +5 -5
  431. package/plugins/filters/ui/select.mjs +5 -5
  432. package/plugins/formulas/engine/register.js +1 -1
  433. package/plugins/formulas/engine/register.mjs +1 -1
  434. package/plugins/formulas/engine/settings.js +2 -2
  435. package/plugins/formulas/engine/settings.mjs +2 -2
  436. package/plugins/formulas/formulas.js +10 -10
  437. package/plugins/formulas/formulas.mjs +10 -10
  438. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
  439. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +3 -3
  440. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -2
  441. package/plugins/hiddenColumns/hiddenColumns.js +10 -5
  442. package/plugins/hiddenColumns/hiddenColumns.mjs +10 -5
  443. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
  444. package/plugins/hiddenRows/contextMenuItem/showRow.js +3 -3
  445. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -2
  446. package/plugins/hiddenRows/hiddenRows.js +10 -5
  447. package/plugins/hiddenRows/hiddenRows.mjs +10 -5
  448. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +2 -2
  449. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  450. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +2 -2
  451. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  452. package/plugins/manualColumnFreeze/manualColumnFreeze.js +26 -13
  453. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +26 -13
  454. package/plugins/manualColumnMove/manualColumnMove.js +73 -62
  455. package/plugins/manualColumnMove/manualColumnMove.mjs +74 -63
  456. package/plugins/manualColumnMove/ui/_base.js +26 -13
  457. package/plugins/manualColumnMove/ui/_base.mjs +25 -13
  458. package/plugins/manualColumnMove/ui/backlight.js +4 -4
  459. package/plugins/manualColumnMove/ui/backlight.mjs +4 -4
  460. package/plugins/manualColumnMove/ui/guideline.js +4 -4
  461. package/plugins/manualColumnMove/ui/guideline.mjs +4 -4
  462. package/plugins/manualColumnResize/manualColumnResize.js +38 -22
  463. package/plugins/manualColumnResize/manualColumnResize.mjs +38 -22
  464. package/plugins/manualRowMove/manualRowMove.js +27 -17
  465. package/plugins/manualRowMove/manualRowMove.mjs +27 -17
  466. package/plugins/manualRowMove/ui/_base.js +1 -1
  467. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  468. package/plugins/manualRowMove/ui/backlight.js +4 -4
  469. package/plugins/manualRowMove/ui/backlight.mjs +4 -4
  470. package/plugins/manualRowMove/ui/guideline.js +4 -4
  471. package/plugins/manualRowMove/ui/guideline.mjs +4 -4
  472. package/plugins/manualRowResize/manualRowResize.js +35 -20
  473. package/plugins/manualRowResize/manualRowResize.mjs +35 -20
  474. package/plugins/mergeCells/calculations/autofill.js +7 -6
  475. package/plugins/mergeCells/calculations/autofill.mjs +7 -5
  476. package/plugins/mergeCells/calculations/selection.js +10 -5
  477. package/plugins/mergeCells/calculations/selection.mjs +10 -5
  478. package/plugins/mergeCells/cellCoords.js +17 -5
  479. package/plugins/mergeCells/cellCoords.mjs +17 -4
  480. package/plugins/mergeCells/cellsCollection.js +28 -21
  481. package/plugins/mergeCells/cellsCollection.mjs +28 -20
  482. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -1
  483. package/plugins/mergeCells/mergeCells.js +83 -50
  484. package/plugins/mergeCells/mergeCells.mjs +83 -48
  485. package/plugins/multiColumnSorting/multiColumnSorting.js +5 -7
  486. package/plugins/multiColumnSorting/multiColumnSorting.mjs +5 -6
  487. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +52 -58
  488. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +53 -58
  489. package/plugins/nestedHeaders/nestedHeaders.js +26 -19
  490. package/plugins/nestedHeaders/nestedHeaders.mjs +26 -19
  491. package/plugins/nestedHeaders/stateManager/headersTree.js +3 -3
  492. package/plugins/nestedHeaders/stateManager/headersTree.mjs +3 -3
  493. package/plugins/nestedHeaders/stateManager/index.js +3 -3
  494. package/plugins/nestedHeaders/stateManager/index.mjs +3 -3
  495. package/plugins/nestedHeaders/stateManager/sourceSettings.js +3 -3
  496. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +3 -3
  497. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  498. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  499. package/plugins/nestedRows/data/dataManager.js +2 -2
  500. package/plugins/nestedRows/data/dataManager.mjs +2 -2
  501. package/plugins/nestedRows/nestedRows.js +11 -5
  502. package/plugins/nestedRows/nestedRows.mjs +11 -5
  503. package/plugins/nestedRows/ui/_base.js +6 -2
  504. package/plugins/nestedRows/ui/_base.mjs +6 -2
  505. package/plugins/nestedRows/ui/collapsing.js +3 -3
  506. package/plugins/nestedRows/ui/collapsing.mjs +3 -3
  507. package/plugins/nestedRows/ui/contextMenu.js +3 -3
  508. package/plugins/nestedRows/ui/contextMenu.mjs +3 -3
  509. package/plugins/nestedRows/ui/headers.js +3 -3
  510. package/plugins/nestedRows/ui/headers.mjs +3 -3
  511. package/plugins/nestedRows/utils/rowMoveController.js +3 -5
  512. package/plugins/nestedRows/utils/rowMoveController.mjs +3 -4
  513. package/plugins/persistentState/persistentState.js +10 -5
  514. package/plugins/persistentState/persistentState.mjs +10 -5
  515. package/plugins/persistentState/storage.js +1 -1
  516. package/plugins/persistentState/storage.mjs +1 -1
  517. package/plugins/search/search.js +10 -5
  518. package/plugins/search/search.mjs +10 -5
  519. package/plugins/touchScroll/touchScroll.js +32 -26
  520. package/plugins/touchScroll/touchScroll.mjs +32 -25
  521. package/plugins/trimRows/trimRows.js +10 -5
  522. package/plugins/trimRows/trimRows.mjs +10 -5
  523. package/plugins/undoRedo/index.js +1 -1
  524. package/plugins/undoRedo/undoRedo.js +54 -48
  525. package/plugins/undoRedo/undoRedo.mjs +54 -47
  526. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -3
  527. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -2
  528. package/renderers/checkboxRenderer/checkboxRenderer.js +48 -43
  529. package/renderers/checkboxRenderer/checkboxRenderer.mjs +48 -41
  530. package/renderers/index.d.ts +4 -1
  531. package/renderers/index.js +6 -0
  532. package/renderers/index.mjs +3 -1
  533. package/renderers/numericRenderer/numericRenderer.js +1 -0
  534. package/renderers/numericRenderer/numericRenderer.mjs +1 -0
  535. package/renderers/timeRenderer/index.d.ts +1 -0
  536. package/renderers/timeRenderer/index.js +9 -0
  537. package/renderers/timeRenderer/index.mjs +1 -0
  538. package/renderers/timeRenderer/timeRenderer.d.ts +5 -0
  539. package/renderers/timeRenderer/timeRenderer.js +31 -0
  540. package/renderers/timeRenderer/timeRenderer.mjs +20 -0
  541. package/selection/highlight/highlight.js +3 -3
  542. package/selection/highlight/highlight.mjs +3 -3
  543. package/selection/highlight/types/activeHeader.js +2 -2
  544. package/selection/highlight/types/activeHeader.mjs +2 -2
  545. package/selection/highlight/types/area.js +2 -2
  546. package/selection/highlight/types/area.mjs +2 -2
  547. package/selection/highlight/types/cell.js +2 -2
  548. package/selection/highlight/types/cell.mjs +2 -2
  549. package/selection/highlight/types/customSelection.js +2 -2
  550. package/selection/highlight/types/customSelection.mjs +2 -2
  551. package/selection/highlight/types/fill.js +2 -2
  552. package/selection/highlight/types/fill.mjs +2 -2
  553. package/selection/highlight/types/header.js +2 -2
  554. package/selection/highlight/types/header.mjs +2 -2
  555. package/selection/highlight/types/index.js +2 -2
  556. package/selection/highlight/types/index.mjs +2 -2
  557. package/selection/highlight/visualSelection.js +17 -16
  558. package/selection/highlight/visualSelection.mjs +18 -17
  559. package/selection/mouseEventHandler.js +15 -10
  560. package/selection/mouseEventHandler.mjs +15 -9
  561. package/selection/range.js +5 -6
  562. package/selection/range.mjs +5 -6
  563. package/selection/selection.js +27 -20
  564. package/selection/selection.mjs +27 -18
  565. package/selection/transformation.js +5 -7
  566. package/selection/transformation.mjs +5 -6
  567. package/selection/utils.js +1 -1
  568. package/selection/utils.mjs +1 -1
  569. package/settings.d.ts +3 -1
  570. package/shortcuts/context.d.ts +20 -0
  571. package/shortcuts/context.js +296 -0
  572. package/shortcuts/context.mjs +268 -0
  573. package/shortcuts/index.d.ts +1 -0
  574. package/shortcuts/index.js +8 -0
  575. package/shortcuts/index.mjs +1 -0
  576. package/shortcuts/keyObserver.js +67 -0
  577. package/shortcuts/keyObserver.mjs +58 -0
  578. package/shortcuts/manager.d.ts +10 -0
  579. package/shortcuts/manager.js +183 -0
  580. package/shortcuts/manager.mjs +174 -0
  581. package/shortcuts/recorder.js +183 -0
  582. package/shortcuts/recorder.mjs +171 -0
  583. package/shortcuts/utils.js +77 -0
  584. package/shortcuts/utils.mjs +54 -0
  585. package/tableView.js +138 -80
  586. package/tableView.mjs +138 -70
  587. package/translations/changesObservable/observable.js +1 -1
  588. package/translations/changesObservable/observable.mjs +1 -1
  589. package/translations/changesObservable/observer.js +1 -2
  590. package/translations/changesObservable/observer.mjs +1 -2
  591. package/translations/indexMapper.d.ts +1 -0
  592. package/translations/indexMapper.js +25 -2
  593. package/translations/indexMapper.mjs +24 -2
  594. package/translations/mapCollections/aggregatedCollection.js +3 -3
  595. package/translations/mapCollections/aggregatedCollection.mjs +3 -3
  596. package/translations/mapCollections/mapCollection.js +1 -1
  597. package/translations/mapCollections/mapCollection.mjs +1 -1
  598. package/translations/maps/hidingMap.js +5 -3
  599. package/translations/maps/hidingMap.mjs +5 -3
  600. package/translations/maps/indexMap.js +3 -1
  601. package/translations/maps/indexMap.mjs +3 -1
  602. package/translations/maps/indexesSequence.js +6 -4
  603. package/translations/maps/indexesSequence.mjs +6 -4
  604. package/translations/maps/linkedPhysicalIndexToValueMap.js +6 -4
  605. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +6 -4
  606. package/translations/maps/physicalIndexToValueMap.js +6 -4
  607. package/translations/maps/physicalIndexToValueMap.mjs +6 -4
  608. package/translations/maps/trimmingMap.js +5 -3
  609. package/translations/maps/trimmingMap.mjs +5 -3
  610. package/utils/dataStructures/linkedList.js +3 -3
  611. package/utils/dataStructures/linkedList.mjs +3 -3
  612. package/utils/dataStructures/queue.js +1 -1
  613. package/utils/dataStructures/queue.mjs +1 -1
  614. package/utils/dataStructures/stack.js +1 -1
  615. package/utils/dataStructures/stack.mjs +1 -1
  616. package/utils/dataStructures/tree.js +3 -3
  617. package/utils/dataStructures/tree.mjs +3 -3
  618. package/utils/dataStructures/uniqueMap.js +14 -1
  619. package/utils/dataStructures/uniqueMap.mjs +14 -1
  620. package/utils/dataStructures/uniqueSet.js +9 -0
  621. package/utils/dataStructures/uniqueSet.mjs +9 -0
  622. package/utils/ghostTable.js +14 -3
  623. package/utils/ghostTable.mjs +15 -4
  624. package/utils/interval.js +1 -1
  625. package/utils/interval.mjs +1 -1
  626. package/utils/samplesGenerator.js +1 -1
  627. package/utils/samplesGenerator.mjs +1 -1
  628. package/3rdparty/walkontable/src/core.js +0 -309
  629. package/3rdparty/walkontable/src/core.mjs +0 -293
  630. package/3rdparty/walkontable/src/overlay/registerer.js +0 -70
  631. package/3rdparty/walkontable/src/overlay/registerer.mjs +0 -57
  632. package/utils/keyStateObserver.js +0 -121
  633. package/utils/keyStateObserver.mjs +0 -103
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.freeze.js");
4
+
5
+ require("core-js/modules/es.symbol.js");
6
+
7
+ require("core-js/modules/es.symbol.description.js");
8
+
9
+ require("core-js/modules/es.symbol.iterator.js");
10
+
11
+ require("core-js/modules/es.string.iterator.js");
12
+
13
+ require("core-js/modules/es.function.name.js");
14
+
15
+ require("core-js/modules/es.array.from.js");
16
+
17
+ require("core-js/modules/es.regexp.exec.js");
18
+
19
+ exports.__esModule = true;
20
+ exports.createContext = void 0;
21
+
22
+ require("core-js/modules/es.array.concat.js");
23
+
24
+ require("core-js/modules/es.array.iterator.js");
25
+
26
+ require("core-js/modules/es.object.to-string.js");
27
+
28
+ require("core-js/modules/web.dom-collections.iterator.js");
29
+
30
+ require("core-js/modules/web.dom-collections.for-each.js");
31
+
32
+ require("core-js/modules/es.array.find-index.js");
33
+
34
+ require("core-js/modules/es.array.splice.js");
35
+
36
+ require("core-js/modules/es.array.filter.js");
37
+
38
+ require("core-js/modules/es.array.slice.js");
39
+
40
+ var _uniqueMap = require("../utils/dataStructures/uniqueMap");
41
+
42
+ var _utils = require("./utils");
43
+
44
+ var _mixed = require("../helpers/mixed");
45
+
46
+ var _function = require("../helpers/function");
47
+
48
+ var _object = require("../helpers/object");
49
+
50
+ var _templateLiteralTag = require("../helpers/templateLiteralTag");
51
+
52
+ var _templateObject;
53
+
54
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
55
+
56
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
57
+
58
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
59
+
60
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
61
+
62
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
63
+
64
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
65
+
66
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
67
+
68
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
69
+
70
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
71
+
72
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
73
+
74
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
75
+
76
+ /* eslint-disable jsdoc/require-description-complete-sentence */
77
+
78
+ /**
79
+ * The `ShortcutContext` API lets you store and manage [keyboard shortcuts](@/guides/accessories-and-menus/keyboard-shortcuts.md) in a given [context](@/guides/accessories-and-menus/keyboard-shortcuts.md#keyboard-shortcut-contexts).
80
+ *
81
+ * Each `ShortcutContext` object stores and manages its own set of keyboard shortcuts.
82
+ *
83
+ * @alias ShortcutContext
84
+ * @class ShortcutContext
85
+ * @param {string} name The name of the keyboard shortcut context
86
+ * @returns {object}
87
+ */
88
+ var createContext = function createContext(name) {
89
+ var SHORTCUTS = (0, _uniqueMap.createUniqueMap)({
90
+ errorIdExists: function errorIdExists(keys) {
91
+ return "The \"".concat(keys, "\" shortcut is already registered in the \"").concat(name, "\" context.");
92
+ }
93
+ });
94
+ /**
95
+ * Add a keyboard shortcut to this `ShortcutContext`.
96
+ *
97
+ * @memberof ShortcutContext#
98
+ * @param {object} options The shortcut's options
99
+ * @param {Array<Array<string>>} options.keys Names of the shortcut's keys,
100
+ * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),
101
+ * in lowercase or uppercase, unified across browsers
102
+ * @param {Function} options.callback The shortcut's action
103
+ * @param {object} options.group A group of shortcuts to which the shortcut belongs
104
+ * @param {object} [options.runOnlyIf] A condition on which the shortcut's action runs
105
+ * @param {object} [options.stopPropagation=true] If set to `true`: stops the event's propagation
106
+ * @param {object} [options.captureCtrl=false] If set to `true`: captures the state of the Control/Meta modifier key
107
+ * @param {object} [options.preventDefault=true] If set to `true`: prevents the default behavior
108
+ * @param {object} [options.position='after'] The order in which the shortcut's action runs:
109
+ * `'before'` or `'after'` the `relativeToGroup` group of actions
110
+ * @param {object} [options.relativeToGroup] The name of a group of actions, used to determine an action's `position`
111
+ *
112
+ */
113
+
114
+ var addShortcut = function addShortcut() {
115
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
116
+ keys = _ref.keys,
117
+ callback = _ref.callback,
118
+ group = _ref.group,
119
+ _ref$runOnlyIf = _ref.runOnlyIf,
120
+ runOnlyIf = _ref$runOnlyIf === void 0 ? function () {
121
+ return true;
122
+ } : _ref$runOnlyIf,
123
+ _ref$captureCtrl = _ref.captureCtrl,
124
+ captureCtrl = _ref$captureCtrl === void 0 ? false : _ref$captureCtrl,
125
+ _ref$preventDefault = _ref.preventDefault,
126
+ preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault,
127
+ _ref$stopPropagation = _ref.stopPropagation,
128
+ stopPropagation = _ref$stopPropagation === void 0 ? false : _ref$stopPropagation,
129
+ relativeToGroup = _ref.relativeToGroup,
130
+ position = _ref.position;
131
+
132
+ if ((0, _mixed.isUndefined)(group)) {
133
+ throw new Error('You need to define the shortcut\'s group.');
134
+ }
135
+
136
+ if ((0, _function.isFunction)(callback) === false) {
137
+ throw new Error('The shortcut\'s callback needs to be a function.');
138
+ }
139
+
140
+ if (Array.isArray(keys) === false) {
141
+ throw new Error((0, _templateLiteralTag.toSingleLine)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Pass the shortcut's keys as an array of arrays, \n using the KeyboardEvent.key properties: \n https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values."], ["Pass the shortcut\\'s keys as an array of arrays,\\x20\n using the KeyboardEvent.key properties:\\x20\n https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values."]))));
142
+ }
143
+
144
+ var newShortcut = {
145
+ callback: callback,
146
+ group: group,
147
+ runOnlyIf: runOnlyIf,
148
+ captureCtrl: captureCtrl,
149
+ preventDefault: preventDefault,
150
+ stopPropagation: stopPropagation
151
+ };
152
+
153
+ if ((0, _mixed.isDefined)(relativeToGroup)) {
154
+ var _ref2 = [relativeToGroup, position];
155
+ newShortcut.relativeToGroup = _ref2[0];
156
+ newShortcut.position = _ref2[1];
157
+ }
158
+
159
+ keys.forEach(function (keyCombination) {
160
+ var normalizedKeys = (0, _utils.normalizeKeys)(keyCombination);
161
+ var hasKeyCombination = SHORTCUTS.hasItem(normalizedKeys);
162
+
163
+ if (hasKeyCombination) {
164
+ var shortcuts = SHORTCUTS.getItem(normalizedKeys);
165
+ var insertionIndex = shortcuts.findIndex(function (shortcut) {
166
+ return shortcut.group === relativeToGroup;
167
+ });
168
+
169
+ if (insertionIndex !== -1) {
170
+ if (position === 'before') {
171
+ insertionIndex -= 1;
172
+ } else {
173
+ insertionIndex += 1;
174
+ }
175
+ } else {
176
+ insertionIndex = shortcuts.length;
177
+ }
178
+
179
+ shortcuts.splice(insertionIndex, 0, newShortcut);
180
+ } else {
181
+ SHORTCUTS.addItem(normalizedKeys, [newShortcut]);
182
+ }
183
+ });
184
+ };
185
+ /**
186
+ * Add multiple keyboard shortcuts to this context.
187
+ *
188
+ * @memberof ShortcutContext#
189
+ * @param {Array<object>} shortcuts List of shortcuts to add to this shortcut context
190
+ * @param {object} [options] A shortcut's options
191
+ * @param {Function} [options.callback] A shortcut's action
192
+ * @param {object} [options.group] A group of shortcuts to which a shortcut belongs
193
+ * @param {object} [options.runOnlyIf] A condition on which a shortcut's action runs
194
+ * @param {object} [options.stopPropagation=true] If set to `true`: stops the event's propagation
195
+ * @param {object} [options.preventDefault=true] If set to `true`: prevents the default behavior
196
+ * @param {object} [options.position='after'] The order in which a shortcut's action runs:
197
+ * `'before'` or `'after'` a `relativeToGroup` group of actions
198
+ * @param {object} [options.relativeToGroup] The name of a group of actions, used to determine an action's `position`
199
+ */
200
+
201
+
202
+ var addShortcuts = function addShortcuts(shortcuts) {
203
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
204
+ shortcuts.forEach(function (shortcut) {
205
+ (0, _object.objectEach)(options, function (value, key) {
206
+ if (Object.prototype.hasOwnProperty.call(shortcut, key) === false) {
207
+ shortcut[key] = options[key];
208
+ }
209
+ });
210
+ addShortcut(shortcut);
211
+ });
212
+ };
213
+ /**
214
+ * Remove a shortcut from this context.
215
+ *
216
+ * @memberof ShortcutContext#
217
+ * @param {Array<string>} keys Names of the shortcut's keys,
218
+ * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),
219
+ * in lowercase or uppercase, unified across browsers
220
+ */
221
+
222
+
223
+ var removeShortcutsByKeys = function removeShortcutsByKeys(keys) {
224
+ var normalizedKeys = (0, _utils.normalizeKeys)(keys);
225
+ SHORTCUTS.removeItem(normalizedKeys);
226
+ };
227
+ /**
228
+ * Remove a group of shortcuts from this context.
229
+ *
230
+ * @memberof ShortcutContext#
231
+ * @param {string} group The name of the group of shortcuts
232
+ */
233
+
234
+
235
+ var removeShortcutsByGroup = function removeShortcutsByGroup(group) {
236
+ var shortcuts = SHORTCUTS.getItems();
237
+ shortcuts.forEach(function (_ref3) {
238
+ var _ref4 = _slicedToArray(_ref3, 2),
239
+ normalizedKeys = _ref4[0],
240
+ shortcutOptions = _ref4[1];
241
+
242
+ var leftOptions = shortcutOptions.filter(function (option) {
243
+ return option.group !== group;
244
+ });
245
+
246
+ if (leftOptions.length === 0) {
247
+ removeShortcutsByKeys((0, _utils.getKeysList)(normalizedKeys));
248
+ } else {
249
+ shortcutOptions.length = 0;
250
+ shortcutOptions.push.apply(shortcutOptions, _toConsumableArray(leftOptions));
251
+ }
252
+ });
253
+ };
254
+ /**
255
+ * Get a shortcut's details.
256
+ *
257
+ * @memberof ShortcutContext#
258
+ * @param {Array<string>} keys Names of the shortcut's keys,
259
+ * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),
260
+ * in lowercase or uppercase, unified across browsers
261
+ * @returns {Array}
262
+ */
263
+
264
+
265
+ var getShortcuts = function getShortcuts(keys) {
266
+ var normalizedKeys = (0, _utils.normalizeKeys)(keys);
267
+ var shortcuts = SHORTCUTS.getItem(normalizedKeys);
268
+ return (0, _mixed.isDefined)(shortcuts) ? shortcuts.slice() : [];
269
+ };
270
+ /**
271
+ * Check if a shortcut exists in this context.
272
+ *
273
+ * @memberof ShortcutContext#
274
+ * @param {Array<string>} keys Names of the shortcut's keys,
275
+ * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),
276
+ * in lowercase or uppercase, unified across browsers
277
+ * @returns {boolean}
278
+ */
279
+
280
+
281
+ var hasShortcut = function hasShortcut(keys) {
282
+ var normalizedKeys = (0, _utils.normalizeKeys)(keys);
283
+ return SHORTCUTS.hasItem(normalizedKeys);
284
+ };
285
+
286
+ return {
287
+ addShortcut: addShortcut,
288
+ addShortcuts: addShortcuts,
289
+ getShortcuts: getShortcuts,
290
+ hasShortcut: hasShortcut,
291
+ removeShortcutsByKeys: removeShortcutsByKeys,
292
+ removeShortcutsByGroup: removeShortcutsByGroup
293
+ };
294
+ };
295
+
296
+ exports.createContext = createContext;
@@ -0,0 +1,268 @@
1
+ import "core-js/modules/es.object.freeze.js";
2
+ import "core-js/modules/es.symbol.js";
3
+ import "core-js/modules/es.symbol.description.js";
4
+ import "core-js/modules/es.symbol.iterator.js";
5
+ import "core-js/modules/es.string.iterator.js";
6
+ import "core-js/modules/es.function.name.js";
7
+ import "core-js/modules/es.array.from.js";
8
+ import "core-js/modules/es.regexp.exec.js";
9
+
10
+ var _templateObject;
11
+
12
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
13
+
14
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15
+
16
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
17
+
18
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
19
+
20
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
21
+
22
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
23
+
24
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
+
26
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
27
+
28
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
29
+
30
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
+
32
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
33
+
34
+ import "core-js/modules/es.array.concat.js";
35
+ import "core-js/modules/es.array.iterator.js";
36
+ import "core-js/modules/es.object.to-string.js";
37
+ import "core-js/modules/web.dom-collections.iterator.js";
38
+ import "core-js/modules/web.dom-collections.for-each.js";
39
+ import "core-js/modules/es.array.find-index.js";
40
+ import "core-js/modules/es.array.splice.js";
41
+ import "core-js/modules/es.array.filter.js";
42
+ import "core-js/modules/es.array.slice.js";
43
+ import { createUniqueMap } from "../utils/dataStructures/uniqueMap.mjs";
44
+ import { normalizeKeys, getKeysList } from "./utils.mjs";
45
+ import { isUndefined, isDefined } from "../helpers/mixed.mjs";
46
+ import { isFunction } from "../helpers/function.mjs";
47
+ import { objectEach } from "../helpers/object.mjs";
48
+ import { toSingleLine } from "../helpers/templateLiteralTag.mjs";
49
+ /* eslint-disable jsdoc/require-description-complete-sentence */
50
+
51
+ /**
52
+ * The `ShortcutContext` API lets you store and manage [keyboard shortcuts](@/guides/accessories-and-menus/keyboard-shortcuts.md) in a given [context](@/guides/accessories-and-menus/keyboard-shortcuts.md#keyboard-shortcut-contexts).
53
+ *
54
+ * Each `ShortcutContext` object stores and manages its own set of keyboard shortcuts.
55
+ *
56
+ * @alias ShortcutContext
57
+ * @class ShortcutContext
58
+ * @param {string} name The name of the keyboard shortcut context
59
+ * @returns {object}
60
+ */
61
+
62
+ export var createContext = function createContext(name) {
63
+ var SHORTCUTS = createUniqueMap({
64
+ errorIdExists: function errorIdExists(keys) {
65
+ return "The \"".concat(keys, "\" shortcut is already registered in the \"").concat(name, "\" context.");
66
+ }
67
+ });
68
+ /**
69
+ * Add a keyboard shortcut to this `ShortcutContext`.
70
+ *
71
+ * @memberof ShortcutContext#
72
+ * @param {object} options The shortcut's options
73
+ * @param {Array<Array<string>>} options.keys Names of the shortcut's keys,
74
+ * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),
75
+ * in lowercase or uppercase, unified across browsers
76
+ * @param {Function} options.callback The shortcut's action
77
+ * @param {object} options.group A group of shortcuts to which the shortcut belongs
78
+ * @param {object} [options.runOnlyIf] A condition on which the shortcut's action runs
79
+ * @param {object} [options.stopPropagation=true] If set to `true`: stops the event's propagation
80
+ * @param {object} [options.captureCtrl=false] If set to `true`: captures the state of the Control/Meta modifier key
81
+ * @param {object} [options.preventDefault=true] If set to `true`: prevents the default behavior
82
+ * @param {object} [options.position='after'] The order in which the shortcut's action runs:
83
+ * `'before'` or `'after'` the `relativeToGroup` group of actions
84
+ * @param {object} [options.relativeToGroup] The name of a group of actions, used to determine an action's `position`
85
+ *
86
+ */
87
+
88
+ var addShortcut = function addShortcut() {
89
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
90
+ keys = _ref.keys,
91
+ callback = _ref.callback,
92
+ group = _ref.group,
93
+ _ref$runOnlyIf = _ref.runOnlyIf,
94
+ runOnlyIf = _ref$runOnlyIf === void 0 ? function () {
95
+ return true;
96
+ } : _ref$runOnlyIf,
97
+ _ref$captureCtrl = _ref.captureCtrl,
98
+ captureCtrl = _ref$captureCtrl === void 0 ? false : _ref$captureCtrl,
99
+ _ref$preventDefault = _ref.preventDefault,
100
+ preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault,
101
+ _ref$stopPropagation = _ref.stopPropagation,
102
+ stopPropagation = _ref$stopPropagation === void 0 ? false : _ref$stopPropagation,
103
+ relativeToGroup = _ref.relativeToGroup,
104
+ position = _ref.position;
105
+
106
+ if (isUndefined(group)) {
107
+ throw new Error('You need to define the shortcut\'s group.');
108
+ }
109
+
110
+ if (isFunction(callback) === false) {
111
+ throw new Error('The shortcut\'s callback needs to be a function.');
112
+ }
113
+
114
+ if (Array.isArray(keys) === false) {
115
+ throw new Error(toSingleLine(_templateObject || (_templateObject = _taggedTemplateLiteral(["Pass the shortcut's keys as an array of arrays, \n using the KeyboardEvent.key properties: \n https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values."], ["Pass the shortcut\\'s keys as an array of arrays,\\x20\n using the KeyboardEvent.key properties:\\x20\n https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values."]))));
116
+ }
117
+
118
+ var newShortcut = {
119
+ callback: callback,
120
+ group: group,
121
+ runOnlyIf: runOnlyIf,
122
+ captureCtrl: captureCtrl,
123
+ preventDefault: preventDefault,
124
+ stopPropagation: stopPropagation
125
+ };
126
+
127
+ if (isDefined(relativeToGroup)) {
128
+ var _ref2 = [relativeToGroup, position];
129
+ newShortcut.relativeToGroup = _ref2[0];
130
+ newShortcut.position = _ref2[1];
131
+ }
132
+
133
+ keys.forEach(function (keyCombination) {
134
+ var normalizedKeys = normalizeKeys(keyCombination);
135
+ var hasKeyCombination = SHORTCUTS.hasItem(normalizedKeys);
136
+
137
+ if (hasKeyCombination) {
138
+ var shortcuts = SHORTCUTS.getItem(normalizedKeys);
139
+ var insertionIndex = shortcuts.findIndex(function (shortcut) {
140
+ return shortcut.group === relativeToGroup;
141
+ });
142
+
143
+ if (insertionIndex !== -1) {
144
+ if (position === 'before') {
145
+ insertionIndex -= 1;
146
+ } else {
147
+ insertionIndex += 1;
148
+ }
149
+ } else {
150
+ insertionIndex = shortcuts.length;
151
+ }
152
+
153
+ shortcuts.splice(insertionIndex, 0, newShortcut);
154
+ } else {
155
+ SHORTCUTS.addItem(normalizedKeys, [newShortcut]);
156
+ }
157
+ });
158
+ };
159
+ /**
160
+ * Add multiple keyboard shortcuts to this context.
161
+ *
162
+ * @memberof ShortcutContext#
163
+ * @param {Array<object>} shortcuts List of shortcuts to add to this shortcut context
164
+ * @param {object} [options] A shortcut's options
165
+ * @param {Function} [options.callback] A shortcut's action
166
+ * @param {object} [options.group] A group of shortcuts to which a shortcut belongs
167
+ * @param {object} [options.runOnlyIf] A condition on which a shortcut's action runs
168
+ * @param {object} [options.stopPropagation=true] If set to `true`: stops the event's propagation
169
+ * @param {object} [options.preventDefault=true] If set to `true`: prevents the default behavior
170
+ * @param {object} [options.position='after'] The order in which a shortcut's action runs:
171
+ * `'before'` or `'after'` a `relativeToGroup` group of actions
172
+ * @param {object} [options.relativeToGroup] The name of a group of actions, used to determine an action's `position`
173
+ */
174
+
175
+
176
+ var addShortcuts = function addShortcuts(shortcuts) {
177
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
178
+ shortcuts.forEach(function (shortcut) {
179
+ objectEach(options, function (value, key) {
180
+ if (Object.prototype.hasOwnProperty.call(shortcut, key) === false) {
181
+ shortcut[key] = options[key];
182
+ }
183
+ });
184
+ addShortcut(shortcut);
185
+ });
186
+ };
187
+ /**
188
+ * Remove a shortcut from this context.
189
+ *
190
+ * @memberof ShortcutContext#
191
+ * @param {Array<string>} keys Names of the shortcut's keys,
192
+ * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),
193
+ * in lowercase or uppercase, unified across browsers
194
+ */
195
+
196
+
197
+ var removeShortcutsByKeys = function removeShortcutsByKeys(keys) {
198
+ var normalizedKeys = normalizeKeys(keys);
199
+ SHORTCUTS.removeItem(normalizedKeys);
200
+ };
201
+ /**
202
+ * Remove a group of shortcuts from this context.
203
+ *
204
+ * @memberof ShortcutContext#
205
+ * @param {string} group The name of the group of shortcuts
206
+ */
207
+
208
+
209
+ var removeShortcutsByGroup = function removeShortcutsByGroup(group) {
210
+ var shortcuts = SHORTCUTS.getItems();
211
+ shortcuts.forEach(function (_ref3) {
212
+ var _ref4 = _slicedToArray(_ref3, 2),
213
+ normalizedKeys = _ref4[0],
214
+ shortcutOptions = _ref4[1];
215
+
216
+ var leftOptions = shortcutOptions.filter(function (option) {
217
+ return option.group !== group;
218
+ });
219
+
220
+ if (leftOptions.length === 0) {
221
+ removeShortcutsByKeys(getKeysList(normalizedKeys));
222
+ } else {
223
+ shortcutOptions.length = 0;
224
+ shortcutOptions.push.apply(shortcutOptions, _toConsumableArray(leftOptions));
225
+ }
226
+ });
227
+ };
228
+ /**
229
+ * Get a shortcut's details.
230
+ *
231
+ * @memberof ShortcutContext#
232
+ * @param {Array<string>} keys Names of the shortcut's keys,
233
+ * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),
234
+ * in lowercase or uppercase, unified across browsers
235
+ * @returns {Array}
236
+ */
237
+
238
+
239
+ var getShortcuts = function getShortcuts(keys) {
240
+ var normalizedKeys = normalizeKeys(keys);
241
+ var shortcuts = SHORTCUTS.getItem(normalizedKeys);
242
+ return isDefined(shortcuts) ? shortcuts.slice() : [];
243
+ };
244
+ /**
245
+ * Check if a shortcut exists in this context.
246
+ *
247
+ * @memberof ShortcutContext#
248
+ * @param {Array<string>} keys Names of the shortcut's keys,
249
+ * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),
250
+ * in lowercase or uppercase, unified across browsers
251
+ * @returns {boolean}
252
+ */
253
+
254
+
255
+ var hasShortcut = function hasShortcut(keys) {
256
+ var normalizedKeys = normalizeKeys(keys);
257
+ return SHORTCUTS.hasItem(normalizedKeys);
258
+ };
259
+
260
+ return {
261
+ addShortcut: addShortcut,
262
+ addShortcuts: addShortcuts,
263
+ getShortcuts: getShortcuts,
264
+ hasShortcut: hasShortcut,
265
+ removeShortcutsByKeys: removeShortcutsByKeys,
266
+ removeShortcutsByGroup: removeShortcutsByGroup
267
+ };
268
+ };
@@ -0,0 +1 @@
1
+ export { ShortcutManager } from './manager';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.createShortcutManager = void 0;
5
+
6
+ var _manager = require("./manager");
7
+
8
+ exports.createShortcutManager = _manager.createShortcutManager;
@@ -0,0 +1 @@
1
+ export { createShortcutManager } from "./manager.mjs";
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.createKeysObserver = createKeysObserver;
5
+
6
+ require("core-js/modules/es.array.iterator.js");
7
+
8
+ require("core-js/modules/es.object.to-string.js");
9
+
10
+ require("core-js/modules/es.set.js");
11
+
12
+ require("core-js/modules/es.string.iterator.js");
13
+
14
+ require("core-js/modules/web.dom-collections.iterator.js");
15
+
16
+ /* eslint-disable jsdoc/require-description-complete-sentence */
17
+
18
+ /**
19
+ * Create a key observer.
20
+ *
21
+ * @returns {object}
22
+ */
23
+ function createKeysObserver() {
24
+ var PRESSED_KEYS = new Set();
25
+ return {
26
+ /**
27
+ * Press a key.
28
+ *
29
+ * @param {string} key Names of the shortcut's keys,
30
+ * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),
31
+ * in lowercase or uppercase, unified across browsers
32
+ */
33
+ press: function press(key) {
34
+ PRESSED_KEYS.add(key);
35
+ },
36
+
37
+ /**
38
+ * Release a pressed key.
39
+ *
40
+ * @param {string} key Names of the shortcut's keys,
41
+ * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),
42
+ * in lowercase or uppercase, unified across browsers
43
+ */
44
+ release: function release(key) {
45
+ PRESSED_KEYS.delete(key);
46
+ },
47
+
48
+ /**
49
+ * Release all pressed keys.
50
+ */
51
+ releaseAll: function releaseAll() {
52
+ PRESSED_KEYS.clear();
53
+ },
54
+
55
+ /**
56
+ * Check if a key is pressed.
57
+ *
58
+ * @param {string} key Names of the shortcut's keys,
59
+ * (coming from [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values)),
60
+ * in lowercase or uppercase, unified across browsers
61
+ * @returns {boolean}
62
+ */
63
+ isPressed: function isPressed(key) {
64
+ return PRESSED_KEYS.has(key);
65
+ }
66
+ };
67
+ }