handsontable 0.0.0-next-b0a4ea2-20231024 → 0.0.0-next-9059914-20231025

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

Potentially problematic release.


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

Files changed (446) hide show
  1. package/3rdparty/walkontable/src/{selection/border/border.js → border.js} +12 -7
  2. package/3rdparty/walkontable/src/{selection/border/border.mjs → border.mjs} +12 -7
  3. package/3rdparty/walkontable/src/cell/coords.d.ts +1 -6
  4. package/3rdparty/walkontable/src/cell/coords.js +11 -50
  5. package/3rdparty/walkontable/src/cell/coords.mjs +11 -50
  6. package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
  7. package/3rdparty/walkontable/src/cell/range.js +7 -38
  8. package/3rdparty/walkontable/src/cell/range.mjs +7 -38
  9. package/3rdparty/walkontable/src/core/_base.js +3 -9
  10. package/3rdparty/walkontable/src/core/_base.mjs +3 -9
  11. package/3rdparty/walkontable/src/core/clone.js +2 -2
  12. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  13. package/3rdparty/walkontable/src/core/core.js +2 -3
  14. package/3rdparty/walkontable/src/core/core.mjs +2 -3
  15. package/3rdparty/walkontable/src/event.js +10 -12
  16. package/3rdparty/walkontable/src/event.mjs +10 -12
  17. package/3rdparty/walkontable/src/facade/core.js +2 -2
  18. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  19. package/3rdparty/walkontable/src/index.js +2 -10
  20. package/3rdparty/walkontable/src/index.mjs +2 -2
  21. package/3rdparty/walkontable/src/overlay/_base.js +2 -13
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +3 -14
  23. package/3rdparty/walkontable/src/overlay/inlineStart.js +6 -2
  24. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +6 -2
  25. package/3rdparty/walkontable/src/overlay/top.js +6 -2
  26. package/3rdparty/walkontable/src/overlay/top.mjs +6 -2
  27. package/3rdparty/walkontable/src/renderer/cells.js +0 -10
  28. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -11
  29. package/3rdparty/walkontable/src/renderer/columnHeaders.js +0 -10
  30. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +1 -11
  31. package/3rdparty/walkontable/src/renderer/rowHeaders.js +0 -5
  32. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +0 -5
  33. package/3rdparty/walkontable/src/renderer/rows.js +0 -13
  34. package/3rdparty/walkontable/src/renderer/rows.mjs +0 -13
  35. package/3rdparty/walkontable/src/renderer/table.js +0 -9
  36. package/3rdparty/walkontable/src/renderer/table.mjs +0 -9
  37. package/3rdparty/walkontable/src/scroll.js +0 -2
  38. package/3rdparty/walkontable/src/scroll.mjs +0 -2
  39. package/3rdparty/walkontable/src/selection.js +295 -0
  40. package/3rdparty/walkontable/src/selection.mjs +290 -0
  41. package/3rdparty/walkontable/src/settings.js +4 -13
  42. package/3rdparty/walkontable/src/settings.mjs +4 -13
  43. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
  44. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
  45. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
  46. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
  47. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
  48. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
  49. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
  50. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
  51. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
  52. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
  53. package/3rdparty/walkontable/src/table.js +78 -19
  54. package/3rdparty/walkontable/src/table.mjs +79 -20
  55. package/base.js +2 -2
  56. package/base.mjs +2 -2
  57. package/cellTypes/dateType/dateType.d.ts +3 -3
  58. package/cellTypes/dateType/dateType.js +2 -2
  59. package/cellTypes/dateType/dateType.mjs +2 -2
  60. package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
  61. package/cellTypes/handsontableType/handsontableType.js +2 -2
  62. package/cellTypes/handsontableType/handsontableType.mjs +2 -2
  63. package/cellTypes/index.d.ts +0 -3
  64. package/cellTypes/index.js +0 -4
  65. package/cellTypes/index.mjs +1 -3
  66. package/core.d.ts +4 -9
  67. package/core.js +327 -285
  68. package/core.mjs +327 -285
  69. package/dataMap/metaManager/metaSchema.js +0 -65
  70. package/dataMap/metaManager/metaSchema.mjs +0 -65
  71. package/dataMap/metaManager/mods/extendMetaProperties.js +1 -7
  72. package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -7
  73. package/dataMap/replaceData.js +0 -5
  74. package/dataMap/replaceData.mjs +0 -5
  75. package/dist/handsontable.css +15 -51
  76. package/dist/handsontable.full.css +15 -51
  77. package/dist/handsontable.full.js +8668 -14188
  78. package/dist/handsontable.full.min.css +7 -7
  79. package/dist/handsontable.full.min.js +136 -136
  80. package/dist/handsontable.js +22829 -28349
  81. package/dist/handsontable.min.css +6 -6
  82. package/dist/handsontable.min.js +24 -24
  83. package/dist/languages/all.js +2 -6
  84. package/dist/languages/all.min.js +1 -1
  85. package/dist/languages/en-US.js +1 -3
  86. package/dist/languages/en-US.min.js +1 -1
  87. package/dist/languages/pl-PL.js +1 -3
  88. package/dist/languages/pl-PL.min.js +1 -1
  89. package/editorManager.js +87 -15
  90. package/editorManager.mjs +87 -16
  91. package/editors/autocompleteEditor/autocompleteEditor.js +2 -53
  92. package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -54
  93. package/editors/dateEditor/dateEditor.js +7 -26
  94. package/editors/dateEditor/dateEditor.mjs +8 -27
  95. package/editors/handsontableEditor/handsontableEditor.js +1 -9
  96. package/editors/handsontableEditor/handsontableEditor.mjs +2 -10
  97. package/editors/textEditor/textEditor.js +27 -19
  98. package/editors/textEditor/textEditor.mjs +30 -22
  99. package/helpers/dom/element.js +9 -188
  100. package/helpers/dom/element.mjs +9 -182
  101. package/helpers/mixed.js +1 -1
  102. package/helpers/mixed.mjs +1 -1
  103. package/helpers/number.d.ts +0 -1
  104. package/helpers/number.js +0 -18
  105. package/helpers/number.mjs +0 -17
  106. package/i18n/constants.js +1 -7
  107. package/i18n/constants.mjs +1 -4
  108. package/i18n/languages/en-US.js +1 -3
  109. package/i18n/languages/en-US.mjs +1 -3
  110. package/i18n/languages/pl-PL.js +1 -3
  111. package/i18n/languages/pl-PL.mjs +1 -3
  112. package/languages/all.js +2 -6
  113. package/languages/en-US.js +1 -3
  114. package/languages/en-US.mjs +1 -3
  115. package/languages/index.js +2 -6
  116. package/languages/pl-PL.js +1 -3
  117. package/languages/pl-PL.mjs +1 -3
  118. package/package.json +99 -116
  119. package/pluginHooks.d.ts +1 -12
  120. package/pluginHooks.js +1 -152
  121. package/pluginHooks.mjs +1 -152
  122. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -74
  123. package/plugins/collapsibleColumns/collapsibleColumns.mjs +5 -75
  124. package/plugins/columnSorting/columnSorting.js +0 -43
  125. package/plugins/columnSorting/columnSorting.mjs +3 -44
  126. package/plugins/columnSorting/index.js +1 -3
  127. package/plugins/columnSorting/index.mjs +1 -1
  128. package/plugins/comments/commentEditor.js +0 -1
  129. package/plugins/comments/commentEditor.mjs +0 -1
  130. package/plugins/comments/comments.js +189 -252
  131. package/plugins/comments/comments.mjs +190 -251
  132. package/plugins/contextMenu/commandExecutor.js +3 -2
  133. package/plugins/contextMenu/commandExecutor.mjs +3 -2
  134. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  135. package/plugins/contextMenu/contextMenu.js +36 -75
  136. package/plugins/contextMenu/contextMenu.mjs +35 -74
  137. package/plugins/contextMenu/{menu/cursor.mjs → cursor.js} +10 -4
  138. package/plugins/contextMenu/{menu/cursor.js → cursor.mjs} +4 -6
  139. package/plugins/contextMenu/itemsFactory.js +3 -2
  140. package/plugins/contextMenu/itemsFactory.mjs +4 -3
  141. package/plugins/contextMenu/{menu/menu.js → menu.js} +421 -145
  142. package/plugins/contextMenu/{menu/menu.mjs → menu.mjs} +422 -146
  143. package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
  144. package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
  145. package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
  146. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
  147. package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
  148. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
  149. package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
  150. package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
  151. package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
  152. package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
  153. package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
  154. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
  155. package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
  156. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
  157. package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
  158. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
  159. package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
  160. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
  161. package/plugins/contextMenu/{predefinedItems/index.js → predefinedItems.js} +14 -14
  162. package/plugins/contextMenu/predefinedItems.mjs +68 -0
  163. package/plugins/contextMenu/utils.js +151 -35
  164. package/plugins/contextMenu/utils.mjs +144 -35
  165. package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
  166. package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
  167. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
  168. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
  169. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
  170. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
  171. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
  172. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
  173. package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
  174. package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
  175. package/plugins/copyPaste/copyPaste.js +78 -127
  176. package/plugins/copyPaste/copyPaste.mjs +79 -128
  177. package/plugins/copyPaste/focusableElement.js +186 -0
  178. package/plugins/copyPaste/focusableElement.mjs +180 -0
  179. package/plugins/customBorders/customBorders.js +20 -23
  180. package/plugins/customBorders/customBorders.mjs +21 -24
  181. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  182. package/plugins/dropdownMenu/dropdownMenu.js +40 -127
  183. package/plugins/dropdownMenu/dropdownMenu.mjs +39 -126
  184. package/plugins/filters/component/_base.js +8 -23
  185. package/plugins/filters/component/_base.mjs +8 -23
  186. package/plugins/filters/component/actionBar.js +27 -29
  187. package/plugins/filters/component/actionBar.mjs +23 -26
  188. package/plugins/filters/component/condition.js +59 -46
  189. package/plugins/filters/component/condition.mjs +52 -40
  190. package/plugins/filters/component/operators.js +22 -21
  191. package/plugins/filters/component/operators.mjs +18 -18
  192. package/plugins/filters/component/value.js +26 -35
  193. package/plugins/filters/component/value.mjs +22 -32
  194. package/plugins/filters/constants.mjs +1 -1
  195. package/plugins/filters/filters.js +62 -106
  196. package/plugins/filters/filters.mjs +55 -99
  197. package/plugins/filters/ui/_base.js +13 -35
  198. package/plugins/filters/ui/_base.mjs +13 -35
  199. package/plugins/filters/ui/input.js +32 -43
  200. package/plugins/filters/ui/input.mjs +30 -42
  201. package/plugins/filters/ui/link.js +12 -44
  202. package/plugins/filters/ui/link.mjs +11 -44
  203. package/plugins/filters/ui/multipleSelect.js +129 -234
  204. package/plugins/filters/ui/multipleSelect.mjs +127 -232
  205. package/plugins/filters/ui/radioInput.js +18 -42
  206. package/plugins/filters/ui/radioInput.mjs +17 -42
  207. package/plugins/filters/ui/select.js +75 -144
  208. package/plugins/filters/ui/select.mjs +72 -142
  209. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
  210. package/plugins/hiddenRows/hiddenRows.mjs +1 -1
  211. package/plugins/manualColumnMove/manualColumnMove.js +1 -3
  212. package/plugins/manualColumnMove/manualColumnMove.mjs +1 -3
  213. package/plugins/mergeCells/mergeCells.js +16 -5
  214. package/plugins/mergeCells/mergeCells.mjs +16 -5
  215. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
  216. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
  217. package/plugins/nestedHeaders/nestedHeaders.js +10 -240
  218. package/plugins/nestedHeaders/nestedHeaders.mjs +11 -241
  219. package/plugins/nestedHeaders/stateManager/index.js +3 -102
  220. package/plugins/nestedHeaders/stateManager/index.mjs +3 -102
  221. package/plugins/nestedRows/nestedRows.js +0 -41
  222. package/plugins/nestedRows/nestedRows.mjs +0 -41
  223. package/plugins/nestedRows/ui/headers.js +0 -11
  224. package/plugins/nestedRows/ui/headers.mjs +1 -12
  225. package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -8
  226. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +0 -8
  227. package/renderers/baseRenderer/baseRenderer.js +0 -17
  228. package/renderers/baseRenderer/baseRenderer.mjs +1 -18
  229. package/renderers/checkboxRenderer/checkboxRenderer.js +4 -9
  230. package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -9
  231. package/renderers/index.d.ts +0 -9
  232. package/selection/highlight/constants.js +15 -0
  233. package/selection/highlight/constants.mjs +6 -0
  234. package/selection/highlight/highlight.js +71 -256
  235. package/selection/highlight/highlight.mjs +71 -250
  236. package/selection/highlight/types/activeHeader.js +8 -10
  237. package/selection/highlight/types/activeHeader.mjs +8 -10
  238. package/selection/highlight/types/area.js +18 -6
  239. package/selection/highlight/types/area.mjs +18 -6
  240. package/selection/highlight/types/{focus.js → cell.js} +7 -5
  241. package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
  242. package/selection/highlight/types/customSelection.js +9 -7
  243. package/selection/highlight/types/customSelection.mjs +9 -7
  244. package/selection/highlight/types/fill.js +7 -5
  245. package/selection/highlight/types/fill.mjs +7 -5
  246. package/selection/highlight/types/header.js +18 -9
  247. package/selection/highlight/types/header.mjs +18 -9
  248. package/selection/highlight/types/index.js +35 -0
  249. package/selection/highlight/types/index.mjs +31 -0
  250. package/selection/highlight/visualSelection.js +27 -31
  251. package/selection/highlight/visualSelection.mjs +27 -31
  252. package/selection/index.js +7 -4
  253. package/selection/index.mjs +3 -2
  254. package/selection/mouseEventHandler.js +1 -7
  255. package/selection/mouseEventHandler.mjs +1 -7
  256. package/selection/range.js +8 -8
  257. package/selection/range.mjs +8 -8
  258. package/selection/selection.js +152 -321
  259. package/selection/selection.mjs +151 -318
  260. package/selection/transformation.js +90 -232
  261. package/selection/transformation.mjs +90 -232
  262. package/selection/utils.js +21 -15
  263. package/selection/utils.mjs +21 -16
  264. package/settings.d.ts +0 -4
  265. package/shortcuts/context.js +4 -23
  266. package/shortcuts/context.mjs +5 -23
  267. package/shortcuts/manager.js +7 -25
  268. package/shortcuts/manager.mjs +7 -26
  269. package/shortcuts/recorder.js +3 -3
  270. package/shortcuts/recorder.mjs +3 -3
  271. package/shortcuts/utils.js +5 -19
  272. package/shortcuts/utils.mjs +4 -18
  273. package/tableView.js +13 -111
  274. package/tableView.mjs +14 -112
  275. package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
  276. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  277. package/3rdparty/walkontable/src/selection/constants.js +0 -62
  278. package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
  279. package/3rdparty/walkontable/src/selection/index.js +0 -26
  280. package/3rdparty/walkontable/src/selection/index.mjs +0 -5
  281. package/3rdparty/walkontable/src/selection/manager.js +0 -274
  282. package/3rdparty/walkontable/src/selection/manager.mjs +0 -269
  283. package/3rdparty/walkontable/src/selection/scanner.js +0 -270
  284. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
  285. package/3rdparty/walkontable/src/selection/selection.js +0 -101
  286. package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
  287. package/cellTypes/selectType/index.d.ts +0 -1
  288. package/cellTypes/selectType/index.js +0 -6
  289. package/cellTypes/selectType/index.mjs +0 -1
  290. package/cellTypes/selectType/selectType.d.ts +0 -14
  291. package/cellTypes/selectType/selectType.js +0 -13
  292. package/cellTypes/selectType/selectType.mjs +0 -8
  293. package/core/focusCatcher/focusDetector.js +0 -63
  294. package/core/focusCatcher/focusDetector.mjs +0 -59
  295. package/core/focusCatcher/index.js +0 -142
  296. package/core/focusCatcher/index.mjs +0 -138
  297. package/core/index.js +0 -9
  298. package/core/index.mjs +0 -1
  299. package/focusManager.d.ts +0 -12
  300. package/focusManager.js +0 -265
  301. package/focusManager.mjs +0 -261
  302. package/helpers/a11y.js +0 -79
  303. package/helpers/a11y.mjs +0 -38
  304. package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
  305. package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
  306. package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
  307. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
  308. package/plugins/comments/contextMenuItem/removeComment.js +0 -38
  309. package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
  310. package/plugins/contextMenu/menu/defaultShortcutsList.js +0 -88
  311. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +0 -84
  312. package/plugins/contextMenu/menu/index.js +0 -9
  313. package/plugins/contextMenu/menu/index.mjs +0 -1
  314. package/plugins/contextMenu/menu/menuItemRenderer.js +0 -58
  315. package/plugins/contextMenu/menu/menuItemRenderer.mjs +0 -54
  316. package/plugins/contextMenu/menu/navigator.js +0 -27
  317. package/plugins/contextMenu/menu/navigator.mjs +0 -23
  318. package/plugins/contextMenu/menu/positioner.js +0 -213
  319. package/plugins/contextMenu/menu/positioner.mjs +0 -209
  320. package/plugins/contextMenu/menu/shortcuts.js +0 -114
  321. package/plugins/contextMenu/menu/shortcuts.mjs +0 -110
  322. package/plugins/contextMenu/menu/utils.js +0 -177
  323. package/plugins/contextMenu/menu/utils.mjs +0 -163
  324. package/plugins/contextMenu/predefinedItems/index.mjs +0 -68
  325. package/plugins/filters/menu/focusController.js +0 -123
  326. package/plugins/filters/menu/focusController.mjs +0 -119
  327. package/plugins/filters/menu/focusNavigator.js +0 -30
  328. package/plugins/filters/menu/focusNavigator.mjs +0 -26
  329. package/renderers/dateRenderer/dateRenderer.d.ts +0 -5
  330. package/renderers/dateRenderer/dateRenderer.js +0 -29
  331. package/renderers/dateRenderer/dateRenderer.mjs +0 -24
  332. package/renderers/dateRenderer/index.d.ts +0 -1
  333. package/renderers/dateRenderer/index.js +0 -6
  334. package/renderers/dateRenderer/index.mjs +0 -1
  335. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +0 -5
  336. package/renderers/handsontableRenderer/handsontableRenderer.js +0 -29
  337. package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -24
  338. package/renderers/handsontableRenderer/index.d.ts +0 -1
  339. package/renderers/handsontableRenderer/index.js +0 -6
  340. package/renderers/handsontableRenderer/index.mjs +0 -1
  341. package/renderers/selectRenderer/index.d.ts +0 -1
  342. package/renderers/selectRenderer/index.js +0 -6
  343. package/renderers/selectRenderer/index.mjs +0 -1
  344. package/renderers/selectRenderer/selectRenderer.d.ts +0 -5
  345. package/renderers/selectRenderer/selectRenderer.js +0 -27
  346. package/renderers/selectRenderer/selectRenderer.mjs +0 -22
  347. package/selection/highlight/types/areaLayered.js +0 -31
  348. package/selection/highlight/types/areaLayered.mjs +0 -26
  349. package/selection/highlight/types/column.js +0 -27
  350. package/selection/highlight/types/column.mjs +0 -22
  351. package/selection/highlight/types/row.js +0 -27
  352. package/selection/highlight/types/row.mjs +0 -22
  353. package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
  354. package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
  355. package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
  356. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
  357. package/shortcutContexts/commands/editor/fastOpen.js +0 -16
  358. package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
  359. package/shortcutContexts/commands/editor/index.js +0 -16
  360. package/shortcutContexts/commands/editor/index.mjs +0 -12
  361. package/shortcutContexts/commands/editor/open.js +0 -27
  362. package/shortcutContexts/commands/editor/open.mjs +0 -23
  363. package/shortcutContexts/commands/emptySelectedCells.js +0 -11
  364. package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
  365. package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
  366. package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
  367. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -25
  368. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -21
  369. package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
  370. package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
  371. package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
  372. package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
  373. package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
  374. package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
  375. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
  376. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
  377. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
  378. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
  379. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
  380. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
  381. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
  382. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
  383. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
  384. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
  385. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
  386. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
  387. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
  388. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
  389. package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
  390. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
  391. package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
  392. package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
  393. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -25
  394. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -21
  395. package/shortcutContexts/commands/index.js +0 -35
  396. package/shortcutContexts/commands/index.mjs +0 -31
  397. package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
  398. package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
  399. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -33
  400. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -29
  401. package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
  402. package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
  403. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
  404. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
  405. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
  406. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
  407. package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
  408. package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
  409. package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
  410. package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
  411. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
  412. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
  413. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
  414. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
  415. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
  416. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
  417. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
  418. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
  419. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
  420. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
  421. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
  422. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
  423. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
  424. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
  425. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
  426. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
  427. package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
  428. package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
  429. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -33
  430. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -29
  431. package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
  432. package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
  433. package/shortcutContexts/commands/scrollToFocusedCell.js +0 -35
  434. package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -31
  435. package/shortcutContexts/commands/selectAll.js +0 -12
  436. package/shortcutContexts/commands/selectAll.mjs +0 -8
  437. package/shortcutContexts/constants.js +0 -13
  438. package/shortcutContexts/constants.mjs +0 -8
  439. package/shortcutContexts/editor.js +0 -25
  440. package/shortcutContexts/editor.mjs +0 -21
  441. package/shortcutContexts/grid.js +0 -163
  442. package/shortcutContexts/grid.mjs +0 -159
  443. package/shortcutContexts/index.js +0 -24
  444. package/shortcutContexts/index.mjs +0 -11
  445. package/utils/paginator.js +0 -151
  446. package/utils/paginator.mjs +0 -147
@@ -1,88 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.createDefaultShortcutsList = createDefaultShortcutsList;
5
- /**
6
- * Creates a keyboard shortcuts list with default keyboards binds.
7
- *
8
- * @param {Menu} menu The main menu instance.
9
- * @returns {KeyboardShortcut[]}
10
- */
11
- function createDefaultShortcutsList(menu) {
12
- return [{
13
- keys: [['Tab'], ['Shift', 'Tab'], ['Control/Meta', 'A']],
14
- forwardToContext: menu.hot.getShortcutManager().getContext('grid'),
15
- callback: () => menu.close(true)
16
- }, {
17
- keys: [['Escape']],
18
- callback: () => menu.close()
19
- }, {
20
- keys: [['ArrowDown']],
21
- callback: () => menu.getNavigator().toNextItem()
22
- }, {
23
- keys: [['ArrowUp']],
24
- callback: () => menu.getNavigator().toPreviousItem()
25
- }, {
26
- keys: [['ArrowRight']],
27
- callback: () => {
28
- const selection = menu.hotMenu.getSelectedLast();
29
- if (selection) {
30
- const subMenu = menu.openSubMenu(selection[0]);
31
- if (subMenu) {
32
- subMenu.getNavigator().toFirstItem();
33
- }
34
- }
35
- }
36
- }, {
37
- keys: [['ArrowLeft']],
38
- callback: () => {
39
- const selection = menu.hotMenu.getSelectedLast();
40
- if (selection && menu.isSubMenu()) {
41
- menu.close();
42
- if (menu.isSubMenu()) {
43
- menu.parentMenu.hotMenu.listen();
44
- }
45
- }
46
- }
47
- }, {
48
- keys: [['Control/Meta', 'ArrowUp'], ['Home']],
49
- callback: () => menu.getNavigator().toFirstItem()
50
- }, {
51
- keys: [['Control/Meta', 'ArrowDown'], ['End']],
52
- callback: () => menu.getNavigator().toLastItem()
53
- }, {
54
- keys: [['Enter'], ['Space']],
55
- callback: event => {
56
- const selection = menu.hotMenu.getSelectedLast();
57
- if (!selection) {
58
- return;
59
- }
60
- if (menu.hotMenu.getSourceDataAtRow(selection[0]).submenu) {
61
- menu.openSubMenu(selection[0]).getNavigator().toFirstItem();
62
- } else {
63
- menu.executeCommand(event);
64
- menu.close(true);
65
- }
66
- }
67
- }, {
68
- keys: [['PageUp']],
69
- callback: () => {
70
- const selection = menu.hotMenu.getSelectedLast();
71
- if (selection) {
72
- menu.hotMenu.selection.transformStart(-menu.hotMenu.countVisibleRows(), 0);
73
- } else {
74
- menu.getNavigator().toFirstItem();
75
- }
76
- }
77
- }, {
78
- keys: [['PageDown']],
79
- callback: () => {
80
- const selection = menu.hotMenu.getSelectedLast();
81
- if (selection) {
82
- menu.hotMenu.selection.transformStart(menu.hotMenu.countVisibleRows(), 0);
83
- } else {
84
- menu.getNavigator().toLastItem();
85
- }
86
- }
87
- }];
88
- }
@@ -1,84 +0,0 @@
1
- /**
2
- * Creates a keyboard shortcuts list with default keyboards binds.
3
- *
4
- * @param {Menu} menu The main menu instance.
5
- * @returns {KeyboardShortcut[]}
6
- */
7
- export function createDefaultShortcutsList(menu) {
8
- return [{
9
- keys: [['Tab'], ['Shift', 'Tab'], ['Control/Meta', 'A']],
10
- forwardToContext: menu.hot.getShortcutManager().getContext('grid'),
11
- callback: () => menu.close(true)
12
- }, {
13
- keys: [['Escape']],
14
- callback: () => menu.close()
15
- }, {
16
- keys: [['ArrowDown']],
17
- callback: () => menu.getNavigator().toNextItem()
18
- }, {
19
- keys: [['ArrowUp']],
20
- callback: () => menu.getNavigator().toPreviousItem()
21
- }, {
22
- keys: [['ArrowRight']],
23
- callback: () => {
24
- const selection = menu.hotMenu.getSelectedLast();
25
- if (selection) {
26
- const subMenu = menu.openSubMenu(selection[0]);
27
- if (subMenu) {
28
- subMenu.getNavigator().toFirstItem();
29
- }
30
- }
31
- }
32
- }, {
33
- keys: [['ArrowLeft']],
34
- callback: () => {
35
- const selection = menu.hotMenu.getSelectedLast();
36
- if (selection && menu.isSubMenu()) {
37
- menu.close();
38
- if (menu.isSubMenu()) {
39
- menu.parentMenu.hotMenu.listen();
40
- }
41
- }
42
- }
43
- }, {
44
- keys: [['Control/Meta', 'ArrowUp'], ['Home']],
45
- callback: () => menu.getNavigator().toFirstItem()
46
- }, {
47
- keys: [['Control/Meta', 'ArrowDown'], ['End']],
48
- callback: () => menu.getNavigator().toLastItem()
49
- }, {
50
- keys: [['Enter'], ['Space']],
51
- callback: event => {
52
- const selection = menu.hotMenu.getSelectedLast();
53
- if (!selection) {
54
- return;
55
- }
56
- if (menu.hotMenu.getSourceDataAtRow(selection[0]).submenu) {
57
- menu.openSubMenu(selection[0]).getNavigator().toFirstItem();
58
- } else {
59
- menu.executeCommand(event);
60
- menu.close(true);
61
- }
62
- }
63
- }, {
64
- keys: [['PageUp']],
65
- callback: () => {
66
- const selection = menu.hotMenu.getSelectedLast();
67
- if (selection) {
68
- menu.hotMenu.selection.transformStart(-menu.hotMenu.countVisibleRows(), 0);
69
- } else {
70
- menu.getNavigator().toFirstItem();
71
- }
72
- }
73
- }, {
74
- keys: [['PageDown']],
75
- callback: () => {
76
- const selection = menu.hotMenu.getSelectedLast();
77
- if (selection) {
78
- menu.hotMenu.selection.transformStart(menu.hotMenu.countVisibleRows(), 0);
79
- } else {
80
- menu.getNavigator().toLastItem();
81
- }
82
- }
83
- }];
84
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- var _menu = require("./menu");
5
- Object.keys(_menu).forEach(function (key) {
6
- if (key === "default" || key === "__esModule") return;
7
- if (key in exports && exports[key] === _menu[key]) return;
8
- exports[key] = _menu[key];
9
- });
@@ -1 +0,0 @@
1
- export * from "./menu.mjs";
@@ -1,58 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.createMenuItemRenderer = createMenuItemRenderer;
5
- var _utils = require("./utils");
6
- var _element = require("../../../helpers/dom/element");
7
- var _a11y = require("../../../helpers/a11y");
8
- /**
9
- * Creates the menu renderer function.
10
- *
11
- * @private
12
- * @param {Core} mainTableHot The main table Handsontable instance.
13
- * @returns {Function}
14
- */
15
- function createMenuItemRenderer(mainTableHot) {
16
- /**
17
- * Menu item renderer.
18
- *
19
- * @private
20
- * @param {Core} menuHot The Handsontable instance.
21
- * @param {HTMLCellElement} TD The rendered cell element.
22
- * @param {number} row The visual index.
23
- * @param {number} col The visual index.
24
- * @param {string} prop The column property if used.
25
- * @param {string} value The cell value.
26
- */
27
- return (menuHot, TD, row, col, prop, value) => {
28
- if (TD.hasAttribute('ghost-table')) {
29
- return;
30
- }
31
- const item = menuHot.getSourceDataAtRow(row);
32
- const wrapper = mainTableHot.rootDocument.createElement('div');
33
- const itemValue = typeof value === 'function' ? value.call(mainTableHot) : value;
34
- (0, _element.empty)(TD);
35
- (0, _element.addClass)(wrapper, 'htItemWrapper');
36
- if (mainTableHot.getSettings().ariaTags) {
37
- const isFocusable = !(0, _utils.isItemDisabled)(item, mainTableHot) && !(0, _utils.isItemSelectionDisabled)(item) && !(0, _utils.isItemSeparator)(item);
38
- (0, _element.setAttribute)(TD, [(0, _a11y.A11Y_MENU_ITEM)(), (0, _a11y.A11Y_LABEL)(itemValue), ...(isFocusable ? [(0, _a11y.A11Y_TABINDEX)(-1)] : []), ...((0, _utils.isItemDisabled)(item, mainTableHot) ? [(0, _a11y.A11Y_DISABLED)()] : []), ...((0, _utils.isItemSubMenu)(item) ? [(0, _a11y.A11Y_EXPANDED)(false)] : [])]);
39
- }
40
- TD.className = '';
41
- TD.appendChild(wrapper);
42
- if ((0, _utils.isItemSeparator)(item)) {
43
- (0, _element.addClass)(TD, 'htSeparator');
44
- } else if (typeof item.renderer === 'function') {
45
- (0, _element.addClass)(TD, 'htCustomMenuRenderer');
46
- TD.appendChild(item.renderer(menuHot, wrapper, row, col, prop, itemValue));
47
- } else {
48
- (0, _element.fastInnerHTML)(wrapper, itemValue);
49
- }
50
- if ((0, _utils.isItemDisabled)(item, mainTableHot)) {
51
- (0, _element.addClass)(TD, 'htDisabled');
52
- } else if ((0, _utils.isItemSelectionDisabled)(item)) {
53
- (0, _element.addClass)(TD, 'htSelectionDisabled');
54
- } else if ((0, _utils.isItemSubMenu)(item)) {
55
- (0, _element.addClass)(TD, 'htSubmenu');
56
- }
57
- };
58
- }
@@ -1,54 +0,0 @@
1
- import { isItemSubMenu, isItemDisabled, isItemSelectionDisabled, isItemSeparator } from "./utils.mjs";
2
- import { addClass, empty, fastInnerHTML, setAttribute } from "../../../helpers/dom/element.mjs";
3
- import { A11Y_DISABLED, A11Y_EXPANDED, A11Y_LABEL, A11Y_MENU_ITEM, A11Y_TABINDEX } from "../../../helpers/a11y.mjs";
4
- /**
5
- * Creates the menu renderer function.
6
- *
7
- * @private
8
- * @param {Core} mainTableHot The main table Handsontable instance.
9
- * @returns {Function}
10
- */
11
- export function createMenuItemRenderer(mainTableHot) {
12
- /**
13
- * Menu item renderer.
14
- *
15
- * @private
16
- * @param {Core} menuHot The Handsontable instance.
17
- * @param {HTMLCellElement} TD The rendered cell element.
18
- * @param {number} row The visual index.
19
- * @param {number} col The visual index.
20
- * @param {string} prop The column property if used.
21
- * @param {string} value The cell value.
22
- */
23
- return (menuHot, TD, row, col, prop, value) => {
24
- if (TD.hasAttribute('ghost-table')) {
25
- return;
26
- }
27
- const item = menuHot.getSourceDataAtRow(row);
28
- const wrapper = mainTableHot.rootDocument.createElement('div');
29
- const itemValue = typeof value === 'function' ? value.call(mainTableHot) : value;
30
- empty(TD);
31
- addClass(wrapper, 'htItemWrapper');
32
- if (mainTableHot.getSettings().ariaTags) {
33
- const isFocusable = !isItemDisabled(item, mainTableHot) && !isItemSelectionDisabled(item) && !isItemSeparator(item);
34
- setAttribute(TD, [A11Y_MENU_ITEM(), A11Y_LABEL(itemValue), ...(isFocusable ? [A11Y_TABINDEX(-1)] : []), ...(isItemDisabled(item, mainTableHot) ? [A11Y_DISABLED()] : []), ...(isItemSubMenu(item) ? [A11Y_EXPANDED(false)] : [])]);
35
- }
36
- TD.className = '';
37
- TD.appendChild(wrapper);
38
- if (isItemSeparator(item)) {
39
- addClass(TD, 'htSeparator');
40
- } else if (typeof item.renderer === 'function') {
41
- addClass(TD, 'htCustomMenuRenderer');
42
- TD.appendChild(item.renderer(menuHot, wrapper, row, col, prop, itemValue));
43
- } else {
44
- fastInnerHTML(wrapper, itemValue);
45
- }
46
- if (isItemDisabled(item, mainTableHot)) {
47
- addClass(TD, 'htDisabled');
48
- } else if (isItemSelectionDisabled(item)) {
49
- addClass(TD, 'htSelectionDisabled');
50
- } else if (isItemSubMenu(item)) {
51
- addClass(TD, 'htSubmenu');
52
- }
53
- };
54
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.createMenuNavigator = createMenuNavigator;
5
- var _paginator = require("../../../utils/paginator");
6
- var _utils = require("./utils");
7
- /**
8
- * Creates navigator for menus and submenus.
9
- *
10
- * @param {Handsontable} hotMenu The Handsontable instance of the menu.
11
- * @returns {Paginator}
12
- */
13
- function createMenuNavigator(hotMenu) {
14
- return (0, _paginator.createPaginator)({
15
- size: () => hotMenu.countRows(),
16
- onItemSelect(currentItem, directItemChange) {
17
- const cell = hotMenu.getCell(currentItem, 0);
18
- if (!cell || (0, _utils.isSeparator)(cell) || (0, _utils.isDisabled)(cell) || (0, _utils.isSelectionDisabled)(cell)) {
19
- return false;
20
- }
21
- hotMenu.selectCell(currentItem, 0, ...(directItemChange ? [currentItem, 0, false, false] : []));
22
- },
23
- onClear() {
24
- hotMenu.deselectCell();
25
- }
26
- });
27
- }
@@ -1,23 +0,0 @@
1
- import { createPaginator } from "../../../utils/paginator.mjs";
2
- import { isSeparator, isDisabled, isSelectionDisabled } from "./utils.mjs";
3
- /**
4
- * Creates navigator for menus and submenus.
5
- *
6
- * @param {Handsontable} hotMenu The Handsontable instance of the menu.
7
- * @returns {Paginator}
8
- */
9
- export function createMenuNavigator(hotMenu) {
10
- return createPaginator({
11
- size: () => hotMenu.countRows(),
12
- onItemSelect(currentItem, directItemChange) {
13
- const cell = hotMenu.getCell(currentItem, 0);
14
- if (!cell || isSeparator(cell) || isDisabled(cell) || isSelectionDisabled(cell)) {
15
- return false;
16
- }
17
- hotMenu.selectCell(currentItem, 0, ...(directItemChange ? [currentItem, 0, false, false] : []));
18
- },
19
- onClear() {
20
- hotMenu.deselectCell();
21
- }
22
- });
23
- }
@@ -1,213 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- require("core-js/modules/es.error.cause.js");
5
- var _cursor2 = require("./cursor");
6
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
7
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
8
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
9
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
10
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
11
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
12
- function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
13
- /**
14
- * Helper class for positioning the menu and submenus in the correct place relative to the
15
- * cursor position (DOM element or mouse coordinates).
16
- *
17
- * @private
18
- * @class Positioner
19
- */
20
- var _container = /*#__PURE__*/new WeakMap();
21
- var _parentContainer = /*#__PURE__*/new WeakMap();
22
- var _cursor = /*#__PURE__*/new WeakMap();
23
- var _keepInViewport = /*#__PURE__*/new WeakMap();
24
- var _offset = /*#__PURE__*/new WeakMap();
25
- class Positioner {
26
- constructor(keepInViewport) {
27
- /**
28
- * The menu container element the positioning will be applied to.
29
- *
30
- * @type {HTMLElement}
31
- */
32
- _classPrivateFieldInitSpec(this, _container, {
33
- writable: true,
34
- value: void 0
35
- });
36
- /**
37
- * For positioning the submenu, the parent element is used to calculate offsets to ensure that submenu
38
- * is positioned right next to the parent menu.
39
- *
40
- * @type {HTMLElement}
41
- */
42
- _classPrivateFieldInitSpec(this, _parentContainer, {
43
- writable: true,
44
- value: void 0
45
- });
46
- /**
47
- * The instance of the Cursor class.
48
- *
49
- * @type {Cursor}
50
- */
51
- _classPrivateFieldInitSpec(this, _cursor, {
52
- writable: true,
53
- value: void 0
54
- });
55
- /**
56
- * Enabling the option allows changing the position calculation so that the menus (or submenus)
57
- * are always placed within the visible viewport of the browser.
58
- *
59
- * @type {boolean}
60
- */
61
- _classPrivateFieldInitSpec(this, _keepInViewport, {
62
- writable: true,
63
- value: false
64
- });
65
- /**
66
- * Allows apply the position offset for directions.
67
- *
68
- * @type {{above: number, below: number, left: number, right: number}}
69
- */
70
- _classPrivateFieldInitSpec(this, _offset, {
71
- writable: true,
72
- value: {
73
- above: 0,
74
- below: 0,
75
- left: 0,
76
- right: 0
77
- }
78
- });
79
- _classPrivateFieldSet(this, _keepInViewport, keepInViewport);
80
- }
81
-
82
- /**
83
- * Sets offset position for specified directions (`above`, `below`, `left` or `right`).
84
- *
85
- * @param {'above' | 'below' | 'left' | 'right'} direction A direction name.
86
- * @param {number} [offset=0] Offset value.
87
- * @returns {Positioner}
88
- */
89
- setOffset(direction) {
90
- let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
91
- _classPrivateFieldGet(this, _offset)[direction] = offset;
92
- return this;
93
- }
94
-
95
- /**
96
- * Sets the menu element to work with. The element can be owned by the main menu or the submenu.
97
- *
98
- * @param {HTMLElement} container The menu container element.
99
- * @returns {Positioner}
100
- */
101
- setElement(container) {
102
- _classPrivateFieldSet(this, _container, container);
103
- return this;
104
- }
105
-
106
- /**
107
- * Sets the parent menu element to work with.
108
- *
109
- * @param {HTMLElement} container The parent menu container element.
110
- * @returns {Positioner}
111
- */
112
- setParentElement(container) {
113
- _classPrivateFieldSet(this, _parentContainer, container);
114
- return this;
115
- }
116
-
117
- /**
118
- * Updates the menu position.
119
- *
120
- * @param {object|MouseEvent} coords The literal object with `top`, `left`, `width` and `height` props or a
121
- * mouse event object.
122
- */
123
- updatePosition(coords) {
124
- _classPrivateFieldSet(this, _cursor, new _cursor2.Cursor(coords, _classPrivateFieldGet(this, _container).ownerDocument.defaultView));
125
- if (_classPrivateFieldGet(this, _keepInViewport)) {
126
- if (_classPrivateFieldGet(this, _cursor).fitsBelow(_classPrivateFieldGet(this, _container))) {
127
- this.setPositionBelowCursor();
128
- } else if (_classPrivateFieldGet(this, _cursor).fitsAbove(_classPrivateFieldGet(this, _container))) {
129
- this.setPositionAboveCursor();
130
- } else {
131
- this.setPositionBelowCursor();
132
- }
133
- this.updateHorizontalPosition();
134
- } else {
135
- this.setPositionBelowCursor();
136
- this.setPositionOnRightOfCursor();
137
- }
138
- }
139
-
140
- /**
141
- * Updates the menu horizontal position.
142
- */
143
- updateHorizontalPosition() {
144
- if (_classPrivateFieldGet(this, _container).dir === 'rtl') {
145
- if (_classPrivateFieldGet(this, _cursor).fitsOnLeft(_classPrivateFieldGet(this, _container))) {
146
- this.setPositionOnLeftOfCursor();
147
- } else {
148
- this.setPositionOnRightOfCursor();
149
- }
150
- } else if (_classPrivateFieldGet(this, _cursor).fitsOnRight(_classPrivateFieldGet(this, _container))) {
151
- this.setPositionOnRightOfCursor();
152
- } else {
153
- this.setPositionOnLeftOfCursor();
154
- }
155
- }
156
-
157
- /**
158
- * Sets the menu position above the cursor object.
159
- */
160
- setPositionAboveCursor() {
161
- let top = _classPrivateFieldGet(this, _offset).above + _classPrivateFieldGet(this, _cursor).top - _classPrivateFieldGet(this, _container).offsetHeight;
162
- if (_classPrivateFieldGet(this, _parentContainer)) {
163
- top = _classPrivateFieldGet(this, _cursor).top + _classPrivateFieldGet(this, _cursor).cellHeight - _classPrivateFieldGet(this, _container).offsetHeight + 3;
164
- }
165
- _classPrivateFieldGet(this, _container).style.top = `${top}px`;
166
- }
167
-
168
- /**
169
- * Sets the menu position below the cursor object.
170
- */
171
- setPositionBelowCursor() {
172
- let top = _classPrivateFieldGet(this, _offset).below + _classPrivateFieldGet(this, _cursor).top + 1;
173
- if (_classPrivateFieldGet(this, _parentContainer)) {
174
- top = _classPrivateFieldGet(this, _cursor).top - 1;
175
- }
176
- _classPrivateFieldGet(this, _container).style.top = `${top}px`;
177
- }
178
-
179
- /**
180
- * Sets the menu position on the right of the cursor object.
181
- */
182
- setPositionOnRightOfCursor() {
183
- let left = _classPrivateFieldGet(this, _cursor).left;
184
- if (_classPrivateFieldGet(this, _parentContainer)) {
185
- const {
186
- right: parentMenuRight
187
- } = _classPrivateFieldGet(this, _parentContainer).getBoundingClientRect();
188
-
189
- // move the sub menu by the width of the parent's border (usually by 1-2 pixels)
190
- left += _classPrivateFieldGet(this, _cursor).cellWidth + parentMenuRight - (_classPrivateFieldGet(this, _cursor).left + _classPrivateFieldGet(this, _cursor).cellWidth);
191
- } else {
192
- left += _classPrivateFieldGet(this, _offset).right;
193
- }
194
- _classPrivateFieldGet(this, _container).style.left = `${left}px`;
195
- }
196
-
197
- /**
198
- * Sets the menu position on the left of the cursor object.
199
- */
200
- setPositionOnLeftOfCursor() {
201
- let left = _classPrivateFieldGet(this, _offset).left + _classPrivateFieldGet(this, _cursor).left - _classPrivateFieldGet(this, _container).offsetWidth;
202
- if (_classPrivateFieldGet(this, _parentContainer)) {
203
- const {
204
- left: parentMenuLeft
205
- } = _classPrivateFieldGet(this, _parentContainer).getBoundingClientRect();
206
-
207
- // move the sub menu by the width of the parent's border (usually by 1-2 pixels)
208
- left -= _classPrivateFieldGet(this, _cursor).left - parentMenuLeft;
209
- }
210
- _classPrivateFieldGet(this, _container).style.left = `${left}px`;
211
- }
212
- }
213
- exports.Positioner = Positioner;