handsontable 0.0.0-next-9379dd1-20231020 → 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 (414) 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 +5 -40
  76. package/dist/handsontable.full.css +5 -40
  77. package/dist/handsontable.full.js +8038 -12837
  78. package/dist/handsontable.full.min.css +4 -4
  79. package/dist/handsontable.full.min.js +141 -141
  80. package/dist/handsontable.js +11488 -16287
  81. package/dist/handsontable.min.css +3 -3
  82. package/dist/handsontable.min.js +21 -21
  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} +308 -96
  142. package/plugins/contextMenu/{menu/menu.mjs → menu.mjs} +309 -97
  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 +38 -97
  183. package/plugins/dropdownMenu/dropdownMenu.mjs +37 -96
  184. package/plugins/filters/constants.mjs +1 -1
  185. package/plugins/filters/filters.js +14 -31
  186. package/plugins/filters/filters.mjs +14 -31
  187. package/plugins/filters/ui/select.js +3 -3
  188. package/plugins/filters/ui/select.mjs +2 -2
  189. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
  190. package/plugins/hiddenRows/hiddenRows.mjs +1 -1
  191. package/plugins/manualColumnMove/manualColumnMove.js +1 -3
  192. package/plugins/manualColumnMove/manualColumnMove.mjs +1 -3
  193. package/plugins/mergeCells/mergeCells.js +16 -5
  194. package/plugins/mergeCells/mergeCells.mjs +16 -5
  195. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
  196. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
  197. package/plugins/nestedHeaders/nestedHeaders.js +10 -240
  198. package/plugins/nestedHeaders/nestedHeaders.mjs +11 -241
  199. package/plugins/nestedHeaders/stateManager/index.js +3 -102
  200. package/plugins/nestedHeaders/stateManager/index.mjs +3 -102
  201. package/plugins/nestedRows/nestedRows.js +0 -41
  202. package/plugins/nestedRows/nestedRows.mjs +0 -41
  203. package/plugins/nestedRows/ui/headers.js +0 -11
  204. package/plugins/nestedRows/ui/headers.mjs +1 -12
  205. package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -8
  206. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +0 -8
  207. package/renderers/baseRenderer/baseRenderer.js +0 -17
  208. package/renderers/baseRenderer/baseRenderer.mjs +1 -18
  209. package/renderers/checkboxRenderer/checkboxRenderer.js +4 -9
  210. package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -9
  211. package/renderers/index.d.ts +0 -9
  212. package/selection/highlight/constants.js +15 -0
  213. package/selection/highlight/constants.mjs +6 -0
  214. package/selection/highlight/highlight.js +71 -256
  215. package/selection/highlight/highlight.mjs +71 -250
  216. package/selection/highlight/types/activeHeader.js +8 -10
  217. package/selection/highlight/types/activeHeader.mjs +8 -10
  218. package/selection/highlight/types/area.js +18 -6
  219. package/selection/highlight/types/area.mjs +18 -6
  220. package/selection/highlight/types/{focus.js → cell.js} +7 -5
  221. package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
  222. package/selection/highlight/types/customSelection.js +9 -7
  223. package/selection/highlight/types/customSelection.mjs +9 -7
  224. package/selection/highlight/types/fill.js +7 -5
  225. package/selection/highlight/types/fill.mjs +7 -5
  226. package/selection/highlight/types/header.js +18 -9
  227. package/selection/highlight/types/header.mjs +18 -9
  228. package/selection/highlight/types/index.js +35 -0
  229. package/selection/highlight/types/index.mjs +31 -0
  230. package/selection/highlight/visualSelection.js +27 -31
  231. package/selection/highlight/visualSelection.mjs +27 -31
  232. package/selection/index.js +7 -4
  233. package/selection/index.mjs +3 -2
  234. package/selection/mouseEventHandler.js +1 -7
  235. package/selection/mouseEventHandler.mjs +1 -7
  236. package/selection/range.js +8 -8
  237. package/selection/range.mjs +8 -8
  238. package/selection/selection.js +152 -321
  239. package/selection/selection.mjs +151 -318
  240. package/selection/transformation.js +90 -232
  241. package/selection/transformation.mjs +90 -232
  242. package/selection/utils.js +21 -15
  243. package/selection/utils.mjs +21 -16
  244. package/settings.d.ts +0 -4
  245. package/shortcuts/context.js +2 -20
  246. package/shortcuts/context.mjs +3 -20
  247. package/shortcuts/manager.js +7 -25
  248. package/shortcuts/manager.mjs +7 -26
  249. package/shortcuts/recorder.js +3 -3
  250. package/shortcuts/recorder.mjs +3 -3
  251. package/shortcuts/utils.js +5 -19
  252. package/shortcuts/utils.mjs +4 -18
  253. package/tableView.js +13 -111
  254. package/tableView.mjs +14 -112
  255. package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
  256. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  257. package/3rdparty/walkontable/src/selection/constants.js +0 -62
  258. package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
  259. package/3rdparty/walkontable/src/selection/index.js +0 -26
  260. package/3rdparty/walkontable/src/selection/index.mjs +0 -5
  261. package/3rdparty/walkontable/src/selection/manager.js +0 -274
  262. package/3rdparty/walkontable/src/selection/manager.mjs +0 -269
  263. package/3rdparty/walkontable/src/selection/scanner.js +0 -270
  264. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
  265. package/3rdparty/walkontable/src/selection/selection.js +0 -101
  266. package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
  267. package/cellTypes/selectType/index.d.ts +0 -1
  268. package/cellTypes/selectType/index.js +0 -6
  269. package/cellTypes/selectType/index.mjs +0 -1
  270. package/cellTypes/selectType/selectType.d.ts +0 -14
  271. package/cellTypes/selectType/selectType.js +0 -13
  272. package/cellTypes/selectType/selectType.mjs +0 -8
  273. package/core/focusCatcher/focusDetector.js +0 -63
  274. package/core/focusCatcher/focusDetector.mjs +0 -59
  275. package/core/focusCatcher/index.js +0 -142
  276. package/core/focusCatcher/index.mjs +0 -138
  277. package/core/index.js +0 -9
  278. package/core/index.mjs +0 -1
  279. package/focusManager.d.ts +0 -12
  280. package/focusManager.js +0 -265
  281. package/focusManager.mjs +0 -261
  282. package/helpers/a11y.js +0 -79
  283. package/helpers/a11y.mjs +0 -38
  284. package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
  285. package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
  286. package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
  287. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
  288. package/plugins/comments/contextMenuItem/removeComment.js +0 -38
  289. package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
  290. package/plugins/contextMenu/menu/index.js +0 -9
  291. package/plugins/contextMenu/menu/index.mjs +0 -1
  292. package/plugins/contextMenu/menu/navigator.js +0 -152
  293. package/plugins/contextMenu/menu/navigator.mjs +0 -148
  294. package/plugins/contextMenu/menu/positioner.js +0 -213
  295. package/plugins/contextMenu/menu/positioner.mjs +0 -209
  296. package/plugins/contextMenu/menu/utils.js +0 -177
  297. package/plugins/contextMenu/menu/utils.mjs +0 -163
  298. package/plugins/contextMenu/predefinedItems/index.mjs +0 -68
  299. package/renderers/dateRenderer/dateRenderer.d.ts +0 -5
  300. package/renderers/dateRenderer/dateRenderer.js +0 -29
  301. package/renderers/dateRenderer/dateRenderer.mjs +0 -24
  302. package/renderers/dateRenderer/index.d.ts +0 -1
  303. package/renderers/dateRenderer/index.js +0 -6
  304. package/renderers/dateRenderer/index.mjs +0 -1
  305. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +0 -5
  306. package/renderers/handsontableRenderer/handsontableRenderer.js +0 -29
  307. package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -24
  308. package/renderers/handsontableRenderer/index.d.ts +0 -1
  309. package/renderers/handsontableRenderer/index.js +0 -6
  310. package/renderers/handsontableRenderer/index.mjs +0 -1
  311. package/renderers/selectRenderer/index.d.ts +0 -1
  312. package/renderers/selectRenderer/index.js +0 -6
  313. package/renderers/selectRenderer/index.mjs +0 -1
  314. package/renderers/selectRenderer/selectRenderer.d.ts +0 -5
  315. package/renderers/selectRenderer/selectRenderer.js +0 -27
  316. package/renderers/selectRenderer/selectRenderer.mjs +0 -22
  317. package/selection/highlight/types/areaLayered.js +0 -31
  318. package/selection/highlight/types/areaLayered.mjs +0 -26
  319. package/selection/highlight/types/column.js +0 -27
  320. package/selection/highlight/types/column.mjs +0 -22
  321. package/selection/highlight/types/row.js +0 -27
  322. package/selection/highlight/types/row.mjs +0 -22
  323. package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
  324. package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
  325. package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
  326. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
  327. package/shortcutContexts/commands/editor/fastOpen.js +0 -16
  328. package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
  329. package/shortcutContexts/commands/editor/index.js +0 -16
  330. package/shortcutContexts/commands/editor/index.mjs +0 -12
  331. package/shortcutContexts/commands/editor/open.js +0 -27
  332. package/shortcutContexts/commands/editor/open.mjs +0 -23
  333. package/shortcutContexts/commands/emptySelectedCells.js +0 -11
  334. package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
  335. package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
  336. package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
  337. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -25
  338. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -21
  339. package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
  340. package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
  341. package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
  342. package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
  343. package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
  344. package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
  345. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
  346. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
  347. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
  348. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
  349. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
  350. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
  351. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
  352. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
  353. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
  354. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
  355. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
  356. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
  357. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
  358. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
  359. package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
  360. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
  361. package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
  362. package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
  363. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -25
  364. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -21
  365. package/shortcutContexts/commands/index.js +0 -35
  366. package/shortcutContexts/commands/index.mjs +0 -31
  367. package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
  368. package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
  369. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -33
  370. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -29
  371. package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
  372. package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
  373. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
  374. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
  375. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
  376. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
  377. package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
  378. package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
  379. package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
  380. package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
  381. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
  382. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
  383. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
  384. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
  385. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
  386. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
  387. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
  388. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
  389. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
  390. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
  391. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
  392. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
  393. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
  394. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
  395. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
  396. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
  397. package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
  398. package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
  399. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -33
  400. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -29
  401. package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
  402. package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
  403. package/shortcutContexts/commands/scrollToFocusedCell.js +0 -35
  404. package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -31
  405. package/shortcutContexts/commands/selectAll.js +0 -12
  406. package/shortcutContexts/commands/selectAll.mjs +0 -8
  407. package/shortcutContexts/constants.js +0 -13
  408. package/shortcutContexts/constants.mjs +0 -8
  409. package/shortcutContexts/editor.js +0 -25
  410. package/shortcutContexts/editor.mjs +0 -21
  411. package/shortcutContexts/grid.js +0 -163
  412. package/shortcutContexts/grid.mjs +0 -159
  413. package/shortcutContexts/index.js +0 -24
  414. package/shortcutContexts/index.mjs +0 -11
@@ -1,269 +0,0 @@
1
- import "core-js/modules/es.array.unscopables.flat.js";
2
- import "core-js/modules/es.error.cause.js";
3
- function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
4
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
5
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
6
- function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
7
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
8
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
9
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
10
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
11
- 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; } }
12
- import { removeClass, addClass, setAttribute, removeAttribute } from "../../../../helpers/dom/element.mjs";
13
- import { SelectionScanner } from "./scanner.mjs";
14
- import Border from "./border/border.mjs";
15
- /**
16
- * Module responsible for rendering selections (CSS classes) and borders based on the
17
- * collection of the Selection instances provided throughout the `selections` Walkontable
18
- * setting.
19
- *
20
- * @private
21
- */
22
- var _activeOverlaysWot = /*#__PURE__*/new WeakMap();
23
- var _selections = /*#__PURE__*/new WeakMap();
24
- var _scanner = /*#__PURE__*/new WeakMap();
25
- var _appliedClasses = /*#__PURE__*/new WeakMap();
26
- var _destroyListeners = /*#__PURE__*/new WeakMap();
27
- var _selectionBorders = /*#__PURE__*/new WeakMap();
28
- var _resetCells = /*#__PURE__*/new WeakSet();
29
- export class SelectionManager {
30
- constructor(selections) {
31
- /**
32
- * Resets the elements to their initial state (remove the CSS classes that are added in the
33
- * previous render cycle).
34
- */
35
- _classPrivateMethodInitSpec(this, _resetCells);
36
- /**
37
- * The overlay's Walkontable instance that are currently processed.
38
- *
39
- * @type {Walkontable}
40
- */
41
- _classPrivateFieldInitSpec(this, _activeOverlaysWot, {
42
- writable: true,
43
- value: void 0
44
- });
45
- /**
46
- * The Highlight instance that holds Selections instances within it.
47
- *
48
- * @type {Highlight|null}
49
- */
50
- _classPrivateFieldInitSpec(this, _selections, {
51
- writable: true,
52
- value: void 0
53
- });
54
- /**
55
- * The SelectionScanner allows to scan and collect the cell and header elements that matches
56
- * to the coords defined in the selections.
57
- *
58
- * @type {SelectionScanner}
59
- */
60
- _classPrivateFieldInitSpec(this, _scanner, {
61
- writable: true,
62
- value: new SelectionScanner()
63
- });
64
- /**
65
- * The Map tracks applied CSS classes. It's used to reset the elements state to their initial state.
66
- *
67
- * @type {WeakMap}
68
- */
69
- _classPrivateFieldInitSpec(this, _appliedClasses, {
70
- writable: true,
71
- value: new WeakMap()
72
- });
73
- /**
74
- * The Map tracks applied "destroy" listeners for Selection instances.
75
- *
76
- * @type {WeakMap}
77
- */
78
- _classPrivateFieldInitSpec(this, _destroyListeners, {
79
- writable: true,
80
- value: new WeakSet()
81
- });
82
- /**
83
- * The Map holds references to Border classes for Selection instances which requires that when
84
- * the "border" setting is defined.
85
- *
86
- * @type {Map}
87
- */
88
- _classPrivateFieldInitSpec(this, _selectionBorders, {
89
- writable: true,
90
- value: new Map()
91
- });
92
- _classPrivateFieldSet(this, _selections, selections);
93
- }
94
-
95
- /**
96
- * Sets the active Walkontable instance.
97
- *
98
- * @param {Walkontable} activeWot The overlays or master Walkontable instance.
99
- * @returns {SelectionManager}
100
- */
101
- setActiveOverlay(activeWot) {
102
- _classPrivateFieldSet(this, _activeOverlaysWot, activeWot);
103
- _classPrivateFieldGet(this, _scanner).setActiveOverlay(_classPrivateFieldGet(this, _activeOverlaysWot));
104
- if (!_classPrivateFieldGet(this, _appliedClasses).has(_classPrivateFieldGet(this, _activeOverlaysWot))) {
105
- _classPrivateFieldGet(this, _appliedClasses).set(_classPrivateFieldGet(this, _activeOverlaysWot), new Set());
106
- }
107
- return this;
108
- }
109
-
110
- /**
111
- * Gets the Selection instance of the "focus" type.
112
- *
113
- * @returns {Selection|null}
114
- */
115
- getFocusSelection() {
116
- return _classPrivateFieldGet(this, _selections) !== null ? _classPrivateFieldGet(this, _selections).getFocus() : null;
117
- }
118
-
119
- /**
120
- * Gets the Selection instance of the "area" type.
121
- *
122
- * @returns {Selection|null}
123
- */
124
- getAreaSelection() {
125
- return _classPrivateFieldGet(this, _selections) !== null ? _classPrivateFieldGet(this, _selections).createLayeredArea() : null;
126
- }
127
-
128
- /**
129
- * Gets the Border instance associated with Selection instance.
130
- *
131
- * @param {Selection} selection The selection instance.
132
- * @returns {Border|null} Returns the Border instance (new for each overlay Walkontable instance).
133
- */
134
- getBorderInstance(selection) {
135
- if (!selection.settings.border) {
136
- return null;
137
- }
138
- if (_classPrivateFieldGet(this, _selectionBorders).has(selection)) {
139
- const borders = _classPrivateFieldGet(this, _selectionBorders).get(selection);
140
- if (borders.has(_classPrivateFieldGet(this, _activeOverlaysWot))) {
141
- return borders.get(_classPrivateFieldGet(this, _activeOverlaysWot));
142
- }
143
- const border = new Border(_classPrivateFieldGet(this, _activeOverlaysWot), selection.settings);
144
- borders.set(_classPrivateFieldGet(this, _activeOverlaysWot), border);
145
- return border;
146
- }
147
- const border = new Border(_classPrivateFieldGet(this, _activeOverlaysWot), selection.settings);
148
- _classPrivateFieldGet(this, _selectionBorders).set(selection, new Map([[_classPrivateFieldGet(this, _activeOverlaysWot), border]]));
149
- return border;
150
- }
151
-
152
- /**
153
- * Gets all Border instances associated with Selection instance for all overlays.
154
- *
155
- * @param {Selection} selection The selection instance.
156
- * @returns {Border[]}
157
- */
158
- getBorderInstances(selection) {
159
- var _classPrivateFieldGet2, _classPrivateFieldGet3;
160
- return Array.from((_classPrivateFieldGet2 = (_classPrivateFieldGet3 = _classPrivateFieldGet(this, _selectionBorders).get(selection)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.values()) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : []);
161
- }
162
-
163
- /**
164
- * Destroys the Border instance associated with Selection instance.
165
- *
166
- * @param {Selection} selection The selection instance.
167
- */
168
- destroyBorders(selection) {
169
- _classPrivateFieldGet(this, _selectionBorders).get(selection).forEach(border => border.destroy());
170
- _classPrivateFieldGet(this, _selectionBorders).delete(selection);
171
- }
172
-
173
- /**
174
- * Renders all the selections (add CSS classes to cells and draw borders).
175
- *
176
- * @param {boolean} fastDraw Indicates the render cycle type (fast/slow).
177
- */
178
- render(fastDraw) {
179
- if (_classPrivateFieldGet(this, _selections) === null) {
180
- return;
181
- }
182
- if (fastDraw) {
183
- // there was no rerender, so we need to remove classNames by ourselves
184
- _classPrivateMethodGet(this, _resetCells, _resetCells2).call(this);
185
- }
186
- const selections = Array.from(_classPrivateFieldGet(this, _selections));
187
- const classNamesMap = new Map();
188
- for (let i = 0; i < selections.length; i++) {
189
- const selection = selections[i];
190
- const {
191
- className,
192
- createLayers,
193
- selectionType
194
- } = selection.settings;
195
- if (!_classPrivateFieldGet(this, _destroyListeners).has(selection)) {
196
- _classPrivateFieldGet(this, _destroyListeners).add(selection);
197
- selection.addLocalHook('destroy', () => this.destroyBorders(selection));
198
- }
199
- const borderInstance = this.getBorderInstance(selection);
200
- if (selection.isEmpty()) {
201
- borderInstance === null || borderInstance === void 0 || borderInstance.disappear();
202
- continue; // eslint-disable-line no-continue
203
- }
204
-
205
- if (className) {
206
- const elements = _classPrivateFieldGet(this, _scanner).setActiveSelection(selection).scan();
207
- elements.forEach(element => {
208
- if (classNamesMap.has(element)) {
209
- const classNamesLayers = classNamesMap.get(element);
210
- if (classNamesLayers.has(className) && createLayers === true) {
211
- classNamesLayers.set(className, classNamesLayers.get(className) + 1);
212
- } else {
213
- classNamesLayers.set(className, 1);
214
- }
215
- } else {
216
- classNamesMap.set(element, new Map([[className, 1]]));
217
- }
218
- });
219
- }
220
- const corners = selection.getCorners();
221
- _classPrivateFieldGet(this, _activeOverlaysWot).getSetting('onBeforeDrawBorders', corners, selectionType);
222
- borderInstance === null || borderInstance === void 0 || borderInstance.appear(corners);
223
- }
224
- classNamesMap.forEach((classNamesLayers, element) => {
225
- var _classPrivateFieldGet4, _classPrivateFieldGet5;
226
- const classNames = Array.from(classNamesLayers).map(_ref => {
227
- let [className, occurrenceCount] = _ref;
228
- if (occurrenceCount === 1) {
229
- return className;
230
- }
231
- return [className, ...Array.from({
232
- length: occurrenceCount - 1
233
- }, (_, i) => `${className}-${i + 1}`)];
234
- }).flat();
235
- classNames.forEach(className => _classPrivateFieldGet(this, _appliedClasses).get(_classPrivateFieldGet(this, _activeOverlaysWot)).add(className));
236
- addClass(element, classNames);
237
- if (element.nodeName === 'TD' && Array.isArray((_classPrivateFieldGet4 = _classPrivateFieldGet(this, _selections).options) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.cellAttributes)) {
238
- setAttribute(element, _classPrivateFieldGet(this, _selections).options.cellAttributes);
239
- } else if (element.nodeName === 'TH' && Array.isArray((_classPrivateFieldGet5 = _classPrivateFieldGet(this, _selections).options) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.headerAttributes)) {
240
- setAttribute(element, _classPrivateFieldGet(this, _selections).options.headerAttributes);
241
- }
242
- });
243
- }
244
- }
245
- function _resetCells2() {
246
- const appliedOverlaysClasses = _classPrivateFieldGet(this, _appliedClasses).get(_classPrivateFieldGet(this, _activeOverlaysWot));
247
- const classesToRemove = _classPrivateFieldGet(this, _activeOverlaysWot).wtSettings.getSetting('onBeforeRemoveCellClassNames');
248
- if (Array.isArray(classesToRemove)) {
249
- for (let i = 0; i < classesToRemove.length; i++) {
250
- appliedOverlaysClasses.add(classesToRemove[i]);
251
- }
252
- }
253
- appliedOverlaysClasses.forEach(className => {
254
- var _classPrivateFieldGet6, _classPrivateFieldGet7;
255
- const nodes = _classPrivateFieldGet(this, _activeOverlaysWot).wtTable.TABLE.querySelectorAll(`.${className}`);
256
- let cellAttributes = [];
257
- if (Array.isArray((_classPrivateFieldGet6 = _classPrivateFieldGet(this, _selections).options) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.cellAttributes)) {
258
- cellAttributes = _classPrivateFieldGet(this, _selections).options.cellAttributes.map(el => el[0]);
259
- }
260
- if (Array.isArray((_classPrivateFieldGet7 = _classPrivateFieldGet(this, _selections).options) === null || _classPrivateFieldGet7 === void 0 ? void 0 : _classPrivateFieldGet7.headerAttributes)) {
261
- cellAttributes = [...cellAttributes, ..._classPrivateFieldGet(this, _selections).options.headerAttributes.map(el => el[0])];
262
- }
263
- for (let i = 0, len = nodes.length; i < len; i++) {
264
- removeClass(nodes[i], className);
265
- removeAttribute(nodes[i], cellAttributes);
266
- }
267
- });
268
- appliedOverlaysClasses.clear();
269
- }
@@ -1,270 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- require("core-js/modules/es.error.cause.js");
5
- var _element = require("../../../../helpers/dom/element");
6
- function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
7
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
8
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
9
- function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
10
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
11
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
12
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
13
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
14
- 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; } } /* eslint-disable no-continue */
15
- /**
16
- * Selection scanner module scans the rendered cells and headers and if it finds an intersection with
17
- * the coordinates of the Selection class (highlight) it returns the DOM elements.
18
- *
19
- * @private
20
- */
21
- var _selection = /*#__PURE__*/new WeakMap();
22
- var _activeOverlaysWot = /*#__PURE__*/new WeakMap();
23
- var _scanCellsRange = /*#__PURE__*/new WeakSet();
24
- class SelectionScanner {
25
- constructor() {
26
- /**
27
- * The method triggers a callback for each rendered cell.
28
- *
29
- * @param {function(number, number): void} callback The callback function to trigger.
30
- */
31
- _classPrivateMethodInitSpec(this, _scanCellsRange);
32
- /**
33
- * Active Selection instance to process.
34
- *
35
- * @type {Selection}
36
- */
37
- _classPrivateFieldInitSpec(this, _selection, {
38
- writable: true,
39
- value: void 0
40
- });
41
- /**
42
- * The Walkontable instance that the scans depends on.
43
- *
44
- * @type {Walkontable}
45
- */
46
- _classPrivateFieldInitSpec(this, _activeOverlaysWot, {
47
- writable: true,
48
- value: void 0
49
- });
50
- }
51
- /**
52
- * Sets the Walkontable instance that will be taking into account while scanning the table.
53
- *
54
- * @param {Walkontable} activeOverlaysWot The Walkontable instance.
55
- * @returns {SelectionScanner}
56
- */
57
- setActiveOverlay(activeOverlaysWot) {
58
- _classPrivateFieldSet(this, _activeOverlaysWot, activeOverlaysWot);
59
- return this;
60
- }
61
-
62
- /**
63
- * Sets the Selection instance to process.
64
- *
65
- * @param {Selection} selection The Selection instance.
66
- * @returns {SelectionScanner}
67
- */
68
- setActiveSelection(selection) {
69
- _classPrivateFieldSet(this, _selection, selection);
70
- return this;
71
- }
72
-
73
- /**
74
- * Scans the rendered table with selection and returns elements that intersects
75
- * with selection coordinates.
76
- *
77
- * @returns {HTMLTableElement[]}
78
- */
79
- scan() {
80
- const selectionType = _classPrivateFieldGet(this, _selection).settings.selectionType;
81
- const elements = new Set();
82
-
83
- // TODO(improvement): use heuristics from coords to detect what type of scan
84
- // the Selection needs instead of using `selectionType` property.
85
- if (selectionType === 'active-header') {
86
- this.scanColumnsInHeadersRange(element => elements.add(element));
87
- this.scanRowsInHeadersRange(element => elements.add(element));
88
- } else if (selectionType === 'area') {
89
- this.scanCellsRange(element => elements.add(element));
90
- } else if (selectionType === 'focus') {
91
- this.scanColumnsInHeadersRange(element => elements.add(element));
92
- this.scanRowsInHeadersRange(element => elements.add(element));
93
- this.scanCellsRange(element => elements.add(element));
94
- } else if (selectionType === 'fill') {
95
- this.scanCellsRange(element => elements.add(element));
96
- } else if (selectionType === 'header') {
97
- this.scanColumnsInHeadersRange(element => elements.add(element));
98
- this.scanRowsInHeadersRange(element => elements.add(element));
99
- } else if (selectionType === 'row') {
100
- this.scanRowsInHeadersRange(element => elements.add(element));
101
- this.scanRowsInCellsRange(element => elements.add(element));
102
- } else if (selectionType === 'column') {
103
- this.scanColumnsInHeadersRange(element => elements.add(element));
104
- this.scanColumnsInCellsRange(element => elements.add(element));
105
- }
106
- return elements;
107
- }
108
-
109
- /**
110
- * Scans the table (only rendered headers) and collect all column headers (TH) that match
111
- * the coordinates passed in the Selection instance.
112
- *
113
- * @param {function(HTMLTableElement): void} callback The callback function to trigger.
114
- */
115
- scanColumnsInHeadersRange(callback) {
116
- const [topRow, topColumn, bottomRow, bottomColumn] = _classPrivateFieldGet(this, _selection).getCorners();
117
- const {
118
- wtTable
119
- } = _classPrivateFieldGet(this, _activeOverlaysWot);
120
- const renderedColumnsCount = wtTable.getRenderedColumnsCount();
121
- const columnHeadersCount = wtTable.getColumnHeadersCount();
122
- let cursor = 0;
123
- for (let column = -wtTable.getRowHeadersCount(); column < renderedColumnsCount; column++) {
124
- const sourceColumn = wtTable.columnFilter.renderedToSource(column);
125
- if (sourceColumn < topColumn || sourceColumn > bottomColumn) {
126
- continue;
127
- }
128
- for (let headerLevel = -columnHeadersCount; headerLevel < 0; headerLevel++) {
129
- if (headerLevel < topRow || headerLevel > bottomRow) {
130
- continue;
131
- }
132
- const positiveBasedHeaderLevel = headerLevel + columnHeadersCount;
133
- let TH = wtTable.getColumnHeader(sourceColumn, positiveBasedHeaderLevel);
134
- const newSourceCol = _classPrivateFieldGet(this, _activeOverlaysWot).getSetting('onBeforeHighlightingColumnHeader', sourceColumn, positiveBasedHeaderLevel, {
135
- selectionType: _classPrivateFieldGet(this, _selection).settings.selectionType,
136
- columnCursor: cursor,
137
- selectionWidth: bottomColumn - topColumn + 1
138
- });
139
- if (newSourceCol === null) {
140
- continue;
141
- }
142
- if (newSourceCol !== sourceColumn) {
143
- TH = wtTable.getColumnHeader(newSourceCol, positiveBasedHeaderLevel);
144
- }
145
- callback(TH);
146
- }
147
- cursor += 1;
148
- }
149
- }
150
-
151
- /**
152
- * Scans the table (only rendered headers) and collect all row headers (TH) that match
153
- * the coordinates passed in the Selection instance.
154
- *
155
- * @param {function(HTMLTableElement): void} callback The callback function to trigger.
156
- */
157
- scanRowsInHeadersRange(callback) {
158
- const [topRow, topColumn, bottomRow, bottomColumn] = _classPrivateFieldGet(this, _selection).getCorners();
159
- const {
160
- wtTable
161
- } = _classPrivateFieldGet(this, _activeOverlaysWot);
162
- const renderedRowsCount = wtTable.getRenderedRowsCount();
163
- const rowHeadersCount = wtTable.getRowHeadersCount();
164
- let cursor = 0;
165
- for (let row = -wtTable.getColumnHeadersCount(); row < renderedRowsCount; row++) {
166
- const sourceRow = wtTable.rowFilter.renderedToSource(row);
167
- if (sourceRow < topRow || sourceRow > bottomRow) {
168
- continue;
169
- }
170
- for (let headerLevel = -rowHeadersCount; headerLevel < 0; headerLevel++) {
171
- if (headerLevel < topColumn || headerLevel > bottomColumn) {
172
- continue;
173
- }
174
- const positiveBasedHeaderLevel = headerLevel + rowHeadersCount;
175
- let TH = wtTable.getRowHeader(sourceRow, positiveBasedHeaderLevel);
176
- const newSourceRow = _classPrivateFieldGet(this, _activeOverlaysWot).getSetting('onBeforeHighlightingRowHeader', sourceRow, positiveBasedHeaderLevel, {
177
- selectionType: _classPrivateFieldGet(this, _selection).settings.selectionType,
178
- rowCursor: cursor,
179
- selectionHeight: bottomRow - topRow + 1
180
- });
181
- if (newSourceRow === null) {
182
- continue;
183
- }
184
- if (newSourceRow !== sourceRow) {
185
- TH = wtTable.getRowHeader(newSourceRow, positiveBasedHeaderLevel);
186
- }
187
- callback(TH);
188
- }
189
- cursor += 1;
190
- }
191
- }
192
-
193
- /**
194
- * Scans the table (only rendered cells) and collect all cells (TR) that match
195
- * the coordinates passed in the Selection instance.
196
- *
197
- * @param {function(HTMLTableElement): void} callback The callback function to trigger.
198
- */
199
- scanCellsRange(callback) {
200
- const [topRow, topColumn, bottomRow, bottomColumn] = _classPrivateFieldGet(this, _selection).getCorners();
201
- const {
202
- wtTable
203
- } = _classPrivateFieldGet(this, _activeOverlaysWot);
204
- _classPrivateMethodGet(this, _scanCellsRange, _scanCellsRange2).call(this, (sourceRow, sourceColumn) => {
205
- if (sourceRow >= topRow && sourceRow <= bottomRow && sourceColumn >= topColumn && sourceColumn <= bottomColumn) {
206
- const cell = wtTable.getCell(_classPrivateFieldGet(this, _activeOverlaysWot).createCellCoords(sourceRow, sourceColumn));
207
-
208
- // support for old API
209
- const additionalSelectionClass = _classPrivateFieldGet(this, _activeOverlaysWot).getSetting('onAfterDrawSelection', sourceRow, sourceColumn, _classPrivateFieldGet(this, _selection).settings.layerLevel);
210
- if (typeof additionalSelectionClass === 'string') {
211
- (0, _element.addClass)(cell, additionalSelectionClass);
212
- }
213
- callback(cell);
214
- }
215
- });
216
- }
217
-
218
- /**
219
- * Scans the table (only rendered cells) and collects all cells (TR) that match the coordinates
220
- * passed in the Selection instance but only for the X axis (rows).
221
- *
222
- * @param {function(HTMLTableElement): void} callback The callback function to trigger.
223
- */
224
- scanRowsInCellsRange(callback) {
225
- // eslint-disable-next-line comma-spacing
226
- const [topRow,, bottomRow] = _classPrivateFieldGet(this, _selection).getCorners();
227
- const {
228
- wtTable
229
- } = _classPrivateFieldGet(this, _activeOverlaysWot);
230
- _classPrivateMethodGet(this, _scanCellsRange, _scanCellsRange2).call(this, (sourceRow, sourceColumn) => {
231
- if (sourceRow >= topRow && sourceRow <= bottomRow) {
232
- const cell = wtTable.getCell(_classPrivateFieldGet(this, _activeOverlaysWot).createCellCoords(sourceRow, sourceColumn));
233
- callback(cell);
234
- }
235
- });
236
- }
237
-
238
- /**
239
- * Scans the table (only rendered cells) and collects all cells (TR) that match the coordinates
240
- * passed in the Selection instance but only for the Y axis (columns).
241
- *
242
- * @param {function(HTMLTableElement): void} callback The callback function to trigger.
243
- */
244
- scanColumnsInCellsRange(callback) {
245
- const [, topColumn,, bottomColumn] = _classPrivateFieldGet(this, _selection).getCorners();
246
- const {
247
- wtTable
248
- } = _classPrivateFieldGet(this, _activeOverlaysWot);
249
- _classPrivateMethodGet(this, _scanCellsRange, _scanCellsRange2).call(this, (sourceRow, sourceColumn) => {
250
- if (sourceColumn >= topColumn && sourceColumn <= bottomColumn) {
251
- const cell = wtTable.getCell(_classPrivateFieldGet(this, _activeOverlaysWot).createCellCoords(sourceRow, sourceColumn));
252
- callback(cell);
253
- }
254
- });
255
- }
256
- }
257
- exports.SelectionScanner = SelectionScanner;
258
- function _scanCellsRange2(callback) {
259
- const {
260
- wtTable
261
- } = _classPrivateFieldGet(this, _activeOverlaysWot);
262
- const renderedRowsCount = wtTable.getRenderedRowsCount();
263
- const renderedColumnsCount = wtTable.getRenderedColumnsCount();
264
- for (let row = 0; row < renderedRowsCount; row += 1) {
265
- const sourceRow = wtTable.rowFilter.renderedToSource(row);
266
- for (let column = 0; column < renderedColumnsCount; column += 1) {
267
- callback(sourceRow, wtTable.columnFilter.renderedToSource(column));
268
- }
269
- }
270
- }