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

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.

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;