handsontable 0.0.0-next-2becb78-20240313 → 0.0.0-next-bff5041-20240315

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 (272) hide show
  1. package/3rdparty/walkontable/src/calculator/viewportColumns.js +12 -17
  2. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +12 -17
  3. package/3rdparty/walkontable/src/calculator/viewportRows.js +10 -15
  4. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +10 -15
  5. package/3rdparty/walkontable/src/cell/coords.js +12 -17
  6. package/3rdparty/walkontable/src/cell/coords.mjs +12 -17
  7. package/3rdparty/walkontable/src/cell/range.d.ts +0 -1
  8. package/3rdparty/walkontable/src/cell/range.js +23 -45
  9. package/3rdparty/walkontable/src/cell/range.mjs +23 -45
  10. package/3rdparty/walkontable/src/core/_base.js +1 -1
  11. package/3rdparty/walkontable/src/core/_base.mjs +1 -1
  12. package/3rdparty/walkontable/src/event.js +72 -104
  13. package/3rdparty/walkontable/src/event.mjs +72 -104
  14. package/3rdparty/walkontable/src/overlays.js +1 -1
  15. package/3rdparty/walkontable/src/overlays.mjs +1 -1
  16. package/3rdparty/walkontable/src/scroll.js +15 -17
  17. package/3rdparty/walkontable/src/scroll.mjs +15 -17
  18. package/3rdparty/walkontable/src/selection/manager.js +48 -69
  19. package/3rdparty/walkontable/src/selection/manager.mjs +48 -69
  20. package/3rdparty/walkontable/src/selection/scanner.js +33 -42
  21. package/3rdparty/walkontable/src/selection/scanner.mjs +33 -42
  22. package/3rdparty/walkontable/src/utils/columnStretching.js +27 -44
  23. package/3rdparty/walkontable/src/utils/columnStretching.mjs +27 -44
  24. package/3rdparty/walkontable/src/utils/orderView/view.js +1 -1
  25. package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
  26. package/base.js +2 -2
  27. package/base.mjs +2 -2
  28. package/core/viewportScroll/index.js +1 -4
  29. package/core/viewportScroll/index.mjs +1 -4
  30. package/core.d.ts +3 -4
  31. package/core.js +22 -82
  32. package/core.mjs +22 -82
  33. package/dataMap/dataSource.js +1 -1
  34. package/dataMap/dataSource.mjs +1 -1
  35. package/dataMap/metaManager/metaLayers/cellMeta.js +1 -1
  36. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
  37. package/dataMap/replaceData.js +1 -1
  38. package/dataMap/replaceData.mjs +1 -1
  39. package/dist/handsontable.css +2 -2
  40. package/dist/handsontable.full.css +2 -2
  41. package/dist/handsontable.full.js +7619 -10404
  42. package/dist/handsontable.full.min.css +2 -2
  43. package/dist/handsontable.full.min.js +277 -277
  44. package/dist/handsontable.js +5525 -7857
  45. package/dist/handsontable.min.css +2 -2
  46. package/dist/handsontable.min.js +33 -33
  47. package/dist/languages/all.min.js +1 -1
  48. package/dist/languages/ar-AR.min.js +1 -1
  49. package/dist/languages/cs-CZ.min.js +1 -1
  50. package/dist/languages/de-CH.min.js +1 -1
  51. package/dist/languages/de-DE.min.js +1 -1
  52. package/dist/languages/en-US.min.js +1 -1
  53. package/dist/languages/es-MX.min.js +1 -1
  54. package/dist/languages/fr-FR.min.js +1 -1
  55. package/dist/languages/hr-HR.min.js +1 -1
  56. package/dist/languages/it-IT.min.js +1 -1
  57. package/dist/languages/ja-JP.min.js +1 -1
  58. package/dist/languages/ko-KR.min.js +1 -1
  59. package/dist/languages/lv-LV.min.js +1 -1
  60. package/dist/languages/nb-NO.min.js +1 -1
  61. package/dist/languages/nl-NL.min.js +1 -1
  62. package/dist/languages/pl-PL.min.js +1 -1
  63. package/dist/languages/pt-BR.min.js +1 -1
  64. package/dist/languages/ru-RU.min.js +1 -1
  65. package/dist/languages/sr-SP.min.js +1 -1
  66. package/dist/languages/zh-CN.min.js +1 -1
  67. package/dist/languages/zh-TW.min.js +1 -1
  68. package/editorManager.js +21 -27
  69. package/editorManager.mjs +21 -27
  70. package/editors/autocompleteEditor/autocompleteEditor.js +6 -10
  71. package/editors/autocompleteEditor/autocompleteEditor.mjs +6 -10
  72. package/eventManager.js +1 -1
  73. package/eventManager.mjs +1 -1
  74. package/focusManager.js +58 -82
  75. package/focusManager.mjs +58 -82
  76. package/helpers/dom/element.js +1 -1
  77. package/helpers/dom/element.mjs +1 -1
  78. package/helpers/mixed.js +1 -1
  79. package/helpers/mixed.mjs +1 -1
  80. package/helpers/object.js +2 -2
  81. package/helpers/object.mjs +2 -2
  82. package/index.d.ts +10 -0
  83. package/package.json +2 -1
  84. package/pluginHooks.d.ts +0 -4
  85. package/pluginHooks.js +2 -44
  86. package/pluginHooks.mjs +2 -44
  87. package/plugins/autoColumnSize/autoColumnSize.js +49 -65
  88. package/plugins/autoColumnSize/autoColumnSize.mjs +49 -65
  89. package/plugins/autoRowSize/autoRowSize.js +28 -34
  90. package/plugins/autoRowSize/autoRowSize.mjs +28 -34
  91. package/plugins/autofill/autofill.js +30 -38
  92. package/plugins/autofill/autofill.mjs +30 -38
  93. package/plugins/base/base.js +12 -17
  94. package/plugins/base/base.mjs +12 -17
  95. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +5 -5
  96. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +5 -5
  97. package/plugins/collapsibleColumns/collapsibleColumns.js +36 -54
  98. package/plugins/collapsibleColumns/collapsibleColumns.mjs +36 -54
  99. package/plugins/columnSorting/columnSorting.js +40 -46
  100. package/plugins/columnSorting/columnSorting.mjs +40 -46
  101. package/plugins/columnSummary/columnSummary.js +22 -26
  102. package/plugins/columnSummary/columnSummary.mjs +22 -26
  103. package/plugins/comments/comments.js +116 -158
  104. package/plugins/comments/comments.mjs +116 -158
  105. package/plugins/contextMenu/contextMenu.js +20 -26
  106. package/plugins/contextMenu/contextMenu.mjs +20 -26
  107. package/plugins/contextMenu/itemsFactory.js +1 -1
  108. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  109. package/plugins/contextMenu/menu/defaultShortcutsList.js +10 -26
  110. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +10 -26
  111. package/plugins/contextMenu/menu/menu.js +13 -21
  112. package/plugins/contextMenu/menu/menu.mjs +13 -21
  113. package/plugins/contextMenu/menu/positioner.js +41 -58
  114. package/plugins/contextMenu/menu/positioner.mjs +41 -58
  115. package/plugins/copyPaste/copyPaste.js +113 -154
  116. package/plugins/copyPaste/copyPaste.mjs +113 -154
  117. package/plugins/copyPaste/copyableRanges.js +43 -66
  118. package/plugins/copyPaste/copyableRanges.mjs +43 -66
  119. package/plugins/customBorders/customBorders.js +11 -13
  120. package/plugins/customBorders/customBorders.mjs +11 -13
  121. package/plugins/dragToScroll/dragToScroll.js +6 -6
  122. package/plugins/dragToScroll/dragToScroll.mjs +6 -6
  123. package/plugins/dropdownMenu/dropdownMenu.js +78 -100
  124. package/plugins/dropdownMenu/dropdownMenu.mjs +78 -100
  125. package/plugins/exportFile/dataProvider.js +1 -1
  126. package/plugins/exportFile/dataProvider.mjs +1 -1
  127. package/plugins/filters/component/actionBar.js +9 -9
  128. package/plugins/filters/component/actionBar.mjs +8 -8
  129. package/plugins/filters/component/condition.js +13 -15
  130. package/plugins/filters/component/condition.mjs +13 -15
  131. package/plugins/filters/component/operators.js +6 -6
  132. package/plugins/filters/component/operators.mjs +6 -6
  133. package/plugins/filters/component/value.js +24 -28
  134. package/plugins/filters/component/value.mjs +24 -28
  135. package/plugins/filters/conditionUpdateObserver.js +22 -24
  136. package/plugins/filters/conditionUpdateObserver.mjs +22 -24
  137. package/plugins/filters/dataFilter.js +1 -1
  138. package/plugins/filters/dataFilter.mjs +1 -1
  139. package/plugins/filters/filters.js +81 -95
  140. package/plugins/filters/filters.mjs +81 -95
  141. package/plugins/filters/ui/input.js +13 -19
  142. package/plugins/filters/ui/input.mjs +13 -19
  143. package/plugins/filters/ui/link.js +8 -13
  144. package/plugins/filters/ui/link.mjs +8 -13
  145. package/plugins/filters/ui/multipleSelect.js +85 -112
  146. package/plugins/filters/ui/multipleSelect.mjs +85 -112
  147. package/plugins/filters/ui/radioInput.js +12 -20
  148. package/plugins/filters/ui/radioInput.mjs +12 -20
  149. package/plugins/filters/ui/select.js +50 -72
  150. package/plugins/filters/ui/select.mjs +49 -71
  151. package/plugins/formulas/formulas.js +268 -326
  152. package/plugins/formulas/formulas.mjs +269 -327
  153. package/plugins/formulas/indexSyncer/axisSyncer.js +38 -61
  154. package/plugins/formulas/indexSyncer/axisSyncer.mjs +38 -61
  155. package/plugins/formulas/indexSyncer/index.js +25 -48
  156. package/plugins/formulas/indexSyncer/index.mjs +25 -48
  157. package/plugins/hiddenColumns/hiddenColumns.js +64 -83
  158. package/plugins/hiddenColumns/hiddenColumns.mjs +64 -83
  159. package/plugins/hiddenRows/hiddenRows.js +63 -82
  160. package/plugins/hiddenRows/hiddenRows.mjs +63 -82
  161. package/plugins/manualColumnFreeze/manualColumnFreeze.js +24 -32
  162. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +25 -33
  163. package/plugins/manualColumnMove/manualColumnMove.js +126 -170
  164. package/plugins/manualColumnMove/manualColumnMove.mjs +126 -170
  165. package/plugins/manualColumnResize/manualColumnResize.js +169 -230
  166. package/plugins/manualColumnResize/manualColumnResize.mjs +169 -230
  167. package/plugins/manualRowMove/manualRowMove.js +99 -128
  168. package/plugins/manualRowMove/manualRowMove.mjs +99 -128
  169. package/plugins/manualRowResize/manualRowResize.js +150 -209
  170. package/plugins/manualRowResize/manualRowResize.mjs +150 -209
  171. package/plugins/mergeCells/calculations/selection.js +71 -2
  172. package/plugins/mergeCells/calculations/selection.mjs +71 -2
  173. package/plugins/mergeCells/cellsCollection.js +1 -117
  174. package/plugins/mergeCells/cellsCollection.mjs +1 -117
  175. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -11
  176. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +1 -11
  177. package/plugins/mergeCells/mergeCells.js +353 -593
  178. package/plugins/mergeCells/mergeCells.mjs +353 -593
  179. package/plugins/multiColumnSorting/multiColumnSorting.js +0 -6
  180. package/plugins/multiColumnSorting/multiColumnSorting.mjs +0 -6
  181. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +1 -1
  182. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +1 -1
  183. package/plugins/nestedHeaders/nestedHeaders.js +204 -254
  184. package/plugins/nestedHeaders/nestedHeaders.mjs +205 -255
  185. package/plugins/nestedHeaders/stateManager/headersTree.js +21 -32
  186. package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -32
  187. package/plugins/nestedHeaders/stateManager/index.js +30 -41
  188. package/plugins/nestedHeaders/stateManager/index.mjs +30 -41
  189. package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -30
  190. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -30
  191. package/plugins/nestedRows/data/dataManager.js +1 -1
  192. package/plugins/nestedRows/data/dataManager.mjs +1 -1
  193. package/plugins/nestedRows/nestedRows.js +138 -179
  194. package/plugins/nestedRows/nestedRows.mjs +139 -180
  195. package/plugins/nestedRows/ui/contextMenu.js +11 -15
  196. package/plugins/nestedRows/ui/contextMenu.mjs +10 -14
  197. package/plugins/nestedRows/utils/rowMoveController.js +1 -1
  198. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -1
  199. package/plugins/persistentState/storage.js +2 -2
  200. package/plugins/persistentState/storage.mjs +2 -2
  201. package/plugins/search/search.js +7 -7
  202. package/plugins/search/search.mjs +7 -7
  203. package/plugins/touchScroll/touchScroll.js +15 -19
  204. package/plugins/touchScroll/touchScroll.mjs +16 -20
  205. package/plugins/trimRows/trimRows.js +6 -6
  206. package/plugins/trimRows/trimRows.mjs +6 -6
  207. package/renderers/checkboxRenderer/checkboxRenderer.js +5 -8
  208. package/renderers/checkboxRenderer/checkboxRenderer.mjs +5 -8
  209. package/selection/highlight/highlight.js +14 -14
  210. package/selection/highlight/highlight.mjs +13 -13
  211. package/selection/highlight/visualSelection.js +2 -16
  212. package/selection/highlight/visualSelection.mjs +2 -16
  213. package/selection/selection.js +60 -255
  214. package/selection/selection.mjs +59 -254
  215. package/selection/transformation.js +101 -175
  216. package/selection/transformation.mjs +101 -175
  217. package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
  218. package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
  219. package/shortcutContexts/commands/editor/open.js +3 -18
  220. package/shortcutContexts/commands/editor/open.mjs +3 -18
  221. package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
  222. package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
  223. package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
  224. package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
  225. package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
  226. package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
  227. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
  228. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
  229. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +1 -3
  230. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +1 -3
  231. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +3 -9
  232. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +3 -9
  233. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +3 -10
  234. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +3 -10
  235. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +1 -3
  236. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +1 -3
  237. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +1 -3
  238. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +1 -3
  239. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +1 -3
  240. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +1 -3
  241. package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
  242. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
  243. package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
  244. package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
  245. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +1 -6
  246. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +1 -6
  247. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +1 -6
  248. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +1 -6
  249. package/shortcutContexts/grid.js +2 -2
  250. package/shortcutContexts/grid.mjs +2 -2
  251. package/shortcuts/context.js +1 -2
  252. package/shortcuts/context.mjs +1 -2
  253. package/tableView.js +52 -98
  254. package/tableView.mjs +52 -98
  255. package/translations/changesObservable/observable.js +21 -38
  256. package/translations/changesObservable/observable.mjs +21 -38
  257. package/translations/changesObservable/observer.js +7 -12
  258. package/translations/changesObservable/observer.mjs +6 -11
  259. package/translations/mapCollections/aggregatedCollection.js +1 -1
  260. package/translations/mapCollections/aggregatedCollection.mjs +1 -1
  261. package/translations/maps/indexMap.js +1 -1
  262. package/translations/maps/indexMap.mjs +1 -1
  263. package/utils/dataStructures/linkedList.js +1 -6
  264. package/utils/dataStructures/linkedList.mjs +1 -6
  265. package/utils/dataStructures/tree.js +1 -1
  266. package/utils/dataStructures/tree.mjs +1 -1
  267. package/utils/interval.js +26 -44
  268. package/utils/interval.mjs +26 -44
  269. package/core/viewportScroll/scrollStrategies/focusScroll.js +0 -15
  270. package/core/viewportScroll/scrollStrategies/focusScroll.mjs +0 -11
  271. package/plugins/mergeCells/focusOrder.js +0 -327
  272. package/plugins/mergeCells/focusOrder.mjs +0 -322
@@ -1,327 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- require("core-js/modules/es.error.cause.js");
5
- require("core-js/modules/es.array.push.js");
6
- var _linkedList = _interopRequireDefault(require("../../utils/dataStructures/linkedList"));
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
- function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
9
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
10
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
11
- function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
12
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
13
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
14
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
15
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
16
- 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; } }
17
- /**
18
- * Class responsible for providing the correct focus order (vertical and horizontal) within a selection that
19
- * contains merged cells.
20
- */
21
- var _cellsHorizontalOrder = /*#__PURE__*/new WeakMap();
22
- var _cellsVerticalOrder = /*#__PURE__*/new WeakMap();
23
- var _currentHorizontalLinkedNode = /*#__PURE__*/new WeakMap();
24
- var _currentVerticalLinkedNode = /*#__PURE__*/new WeakMap();
25
- var _mergedCellsGetter = /*#__PURE__*/new WeakMap();
26
- var _rowIndexMapper = /*#__PURE__*/new WeakMap();
27
- var _columnIndexMapper = /*#__PURE__*/new WeakMap();
28
- var _pushOrderNode = /*#__PURE__*/new WeakSet();
29
- class FocusOrder {
30
- constructor(_ref) {
31
- let {
32
- mergedCellsGetter,
33
- rowIndexMapper,
34
- columnIndexMapper
35
- } = _ref;
36
- /**
37
- * Pushes a new node to the provided list order.
38
- *
39
- * @param {CellRange} selectedRange The selected range to build the focus order for.
40
- * @param {LinkedList} listOrder The list order to push the node to.
41
- * @param {WeakSet} mergeCellsVisitor The set of visited cells.
42
- * @param {number} row The visual row index.
43
- * @param {number} column The visual column index.
44
- * @returns {NodeStructure | null}
45
- */
46
- _classPrivateMethodInitSpec(this, _pushOrderNode);
47
- /**
48
- * The linked list of the all cells within the current selection in horizontal order. The list is
49
- * recreated every time the selection is changed.
50
- *
51
- * @type {LinkedList}
52
- */
53
- _classPrivateFieldInitSpec(this, _cellsHorizontalOrder, {
54
- writable: true,
55
- value: new _linkedList.default()
56
- });
57
- /**
58
- * The linked list of the all cells within the current selection in horizontal order. The list is
59
- * recreated every time the selection is changed.
60
- *
61
- * @type {LinkedList}
62
- */
63
- _classPrivateFieldInitSpec(this, _cellsVerticalOrder, {
64
- writable: true,
65
- value: new _linkedList.default()
66
- });
67
- /**
68
- * The currently highlighted cell within the horizontal linked list.
69
- *
70
- * @type {NodeStructure | null}
71
- */
72
- _classPrivateFieldInitSpec(this, _currentHorizontalLinkedNode, {
73
- writable: true,
74
- value: null
75
- });
76
- /**
77
- * The currently highlighted cell within the vertical linked list.
78
- *
79
- * @type {NodeStructure | null}
80
- */
81
- _classPrivateFieldInitSpec(this, _currentVerticalLinkedNode, {
82
- writable: true,
83
- value: null
84
- });
85
- /**
86
- * The merged cells getter function.
87
- *
88
- * @type {function(): {row: number, col: number, rowspan: number, colspan: number} | null}}
89
- */
90
- _classPrivateFieldInitSpec(this, _mergedCellsGetter, {
91
- writable: true,
92
- value: null
93
- });
94
- /**
95
- * The row index mapper.
96
- *
97
- * @type {IndexMapper}
98
- */
99
- _classPrivateFieldInitSpec(this, _rowIndexMapper, {
100
- writable: true,
101
- value: null
102
- });
103
- /**
104
- * The column index mapper.
105
- *
106
- * @type {IndexMapper}
107
- */
108
- _classPrivateFieldInitSpec(this, _columnIndexMapper, {
109
- writable: true,
110
- value: null
111
- });
112
- _classPrivateFieldSet(this, _mergedCellsGetter, mergedCellsGetter);
113
- _classPrivateFieldSet(this, _rowIndexMapper, rowIndexMapper);
114
- _classPrivateFieldSet(this, _columnIndexMapper, columnIndexMapper);
115
- }
116
-
117
- /**
118
- * Gets the currently selected node data from the vertical focus order list.
119
- *
120
- * @returns {NodeStructure}
121
- */
122
- getCurrentVerticalNode() {
123
- return _classPrivateFieldGet(this, _currentVerticalLinkedNode).data;
124
- }
125
-
126
- /**
127
- * Gets the first node data from the vertical focus order list.
128
- *
129
- * @returns {NodeStructure}
130
- */
131
- getFirstVerticalNode() {
132
- return _classPrivateFieldGet(this, _cellsVerticalOrder).first.data;
133
- }
134
-
135
- /**
136
- * Gets the next selected node data from the vertical focus order list.
137
- *
138
- * @returns {NodeStructure}
139
- */
140
- getNextVerticalNode() {
141
- return _classPrivateFieldGet(this, _currentVerticalLinkedNode).next.data;
142
- }
143
-
144
- /**
145
- * Gets the previous selected node data from the vertical focus order list.
146
- *
147
- * @returns {NodeStructure}
148
- */
149
- getPrevVerticalNode() {
150
- return _classPrivateFieldGet(this, _currentVerticalLinkedNode).prev.data;
151
- }
152
-
153
- /**
154
- * Gets the currently selected node data from the horizontal focus order list.
155
- *
156
- * @returns {NodeStructure}
157
- */
158
- getCurrentHorizontalNode() {
159
- return _classPrivateFieldGet(this, _currentHorizontalLinkedNode).data;
160
- }
161
-
162
- /**
163
- * Gets the first node data from the horizontal focus order list.
164
- *
165
- * @returns {NodeStructure}
166
- */
167
- getFirstHorizontalNode() {
168
- return _classPrivateFieldGet(this, _cellsHorizontalOrder).first.data;
169
- }
170
-
171
- /**
172
- * Gets the next selected node data from the horizontal focus order list.
173
- *
174
- * @returns {NodeStructure}
175
- */
176
- getNextHorizontalNode() {
177
- return _classPrivateFieldGet(this, _currentHorizontalLinkedNode).next.data;
178
- }
179
-
180
- /**
181
- * Gets the previous selected node data from the horizontal focus order list.
182
- *
183
- * @returns {NodeStructure}
184
- */
185
- getPrevHorizontalNode() {
186
- return _classPrivateFieldGet(this, _currentHorizontalLinkedNode).prev.data;
187
- }
188
-
189
- /**
190
- * Sets the previous node from the vertical focus order list as active.
191
- */
192
- setPrevNodeAsActive() {
193
- _classPrivateFieldSet(this, _currentVerticalLinkedNode, _classPrivateFieldGet(this, _currentVerticalLinkedNode).prev);
194
- _classPrivateFieldSet(this, _currentHorizontalLinkedNode, _classPrivateFieldGet(this, _currentHorizontalLinkedNode).prev);
195
- }
196
-
197
- /**
198
- * Sets the previous node from the horizontal focus order list as active.
199
- */
200
- setNextNodeAsActive() {
201
- _classPrivateFieldSet(this, _currentVerticalLinkedNode, _classPrivateFieldGet(this, _currentVerticalLinkedNode).next);
202
- _classPrivateFieldSet(this, _currentHorizontalLinkedNode, _classPrivateFieldGet(this, _currentHorizontalLinkedNode).next);
203
- }
204
-
205
- /**
206
- * Rebuilds the focus order list based on the provided selection.
207
- *
208
- * @param {CellRange} selectedRange The selected range to build the focus order for.
209
- */
210
- buildFocusOrder(selectedRange) {
211
- const topStart = selectedRange.getTopStartCorner();
212
- const bottomEnd = selectedRange.getBottomEndCorner();
213
- const visitedHorizontalCells = new WeakSet();
214
- _classPrivateFieldSet(this, _cellsHorizontalOrder, new _linkedList.default());
215
- for (let r = topStart.row; r <= bottomEnd.row; r++) {
216
- if (_classPrivateFieldGet(this, _rowIndexMapper).isHidden(r)) {
217
- // eslint-disable-next-line no-continue
218
- continue;
219
- }
220
- for (let c = topStart.col; c <= bottomEnd.col; c++) {
221
- if (_classPrivateFieldGet(this, _columnIndexMapper).isHidden(c)) {
222
- // eslint-disable-next-line no-continue
223
- continue;
224
- }
225
- const node = _classPrivateMethodGet(this, _pushOrderNode, _pushOrderNode2).call(this, selectedRange, _classPrivateFieldGet(this, _cellsHorizontalOrder), visitedHorizontalCells, r, c);
226
- if (node) {
227
- _classPrivateFieldSet(this, _currentHorizontalLinkedNode, node);
228
- }
229
- }
230
- }
231
-
232
- // create circular linked list
233
- if (_classPrivateFieldGet(this, _cellsHorizontalOrder).first) {
234
- _classPrivateFieldGet(this, _cellsHorizontalOrder).first.prev = _classPrivateFieldGet(this, _cellsHorizontalOrder).last;
235
- _classPrivateFieldGet(this, _cellsHorizontalOrder).last.next = _classPrivateFieldGet(this, _cellsHorizontalOrder).first;
236
- }
237
- const visitedVerticalCells = new WeakSet();
238
- _classPrivateFieldSet(this, _cellsVerticalOrder, new _linkedList.default());
239
- for (let c = topStart.col; c <= bottomEnd.col; c++) {
240
- if (_classPrivateFieldGet(this, _columnIndexMapper).isHidden(c)) {
241
- // eslint-disable-next-line no-continue
242
- continue;
243
- }
244
- for (let r = topStart.row; r <= bottomEnd.row; r++) {
245
- if (_classPrivateFieldGet(this, _rowIndexMapper).isHidden(r)) {
246
- // eslint-disable-next-line no-continue
247
- continue;
248
- }
249
- const node = _classPrivateMethodGet(this, _pushOrderNode, _pushOrderNode2).call(this, selectedRange, _classPrivateFieldGet(this, _cellsVerticalOrder), visitedVerticalCells, r, c);
250
- if (node) {
251
- _classPrivateFieldSet(this, _currentVerticalLinkedNode, node);
252
- }
253
- }
254
- }
255
-
256
- // create circular linked list
257
- if (_classPrivateFieldGet(this, _cellsVerticalOrder).first) {
258
- _classPrivateFieldGet(this, _cellsVerticalOrder).first.prev = _classPrivateFieldGet(this, _cellsVerticalOrder).last;
259
- _classPrivateFieldGet(this, _cellsVerticalOrder).last.next = _classPrivateFieldGet(this, _cellsVerticalOrder).first;
260
- }
261
- }
262
- /**
263
- * Sets the active node based on the provided row and column.
264
- *
265
- * @param {number} row The visual row index.
266
- * @param {number} column The visual column index.
267
- * @returns {FocusOrder}
268
- */
269
- setActiveNode(row, column) {
270
- _classPrivateFieldGet(this, _cellsHorizontalOrder).inorder(node => {
271
- const {
272
- rowStart,
273
- rowEnd,
274
- colStart,
275
- colEnd
276
- } = node.data;
277
- if (row >= rowStart && row <= rowEnd && column >= colStart && column <= colEnd) {
278
- _classPrivateFieldSet(this, _currentHorizontalLinkedNode, node);
279
- return false;
280
- }
281
- });
282
- _classPrivateFieldGet(this, _cellsVerticalOrder).inorder(node => {
283
- const {
284
- rowStart,
285
- rowEnd,
286
- colStart,
287
- colEnd
288
- } = node.data;
289
- if (row >= rowStart && row <= rowEnd && column >= colStart && column <= colEnd) {
290
- _classPrivateFieldSet(this, _currentVerticalLinkedNode, node);
291
- return false;
292
- }
293
- });
294
- return this;
295
- }
296
- }
297
- exports.FocusOrder = FocusOrder;
298
- function _pushOrderNode2(selectedRange, listOrder, mergeCellsVisitor, row, column) {
299
- const topStart = selectedRange.getTopStartCorner();
300
- const bottomEnd = selectedRange.getBottomEndCorner();
301
- const highlight = selectedRange.highlight.clone().normalize();
302
- const mergeParent = _classPrivateFieldGet(this, _mergedCellsGetter).call(this, row, column);
303
- if (mergeParent && mergeCellsVisitor.has(mergeParent)) {
304
- return null;
305
- }
306
- const node = {
307
- colStart: column,
308
- colEnd: column,
309
- rowStart: row,
310
- rowEnd: row
311
- };
312
- if (mergeParent) {
313
- mergeCellsVisitor.add(mergeParent);
314
- if (mergeParent.row < topStart.row || mergeParent.row + mergeParent.rowspan - 1 > bottomEnd.row || mergeParent.col < topStart.col || mergeParent.col + mergeParent.colspan - 1 > bottomEnd.col) {
315
- return null;
316
- }
317
- node.colStart = mergeParent.col;
318
- node.colEnd = mergeParent.col + mergeParent.colspan - 1;
319
- node.rowStart = mergeParent.row;
320
- node.rowEnd = mergeParent.row + mergeParent.rowspan - 1;
321
- }
322
- const linkedNode = listOrder.push(node);
323
- if (row === highlight.row && column === highlight.col || mergeParent && highlight.row >= mergeParent.row && highlight.row <= mergeParent.row + mergeParent.rowspan - 1 && highlight.col >= mergeParent.col && highlight.col <= mergeParent.col + mergeParent.colspan - 1) {
324
- return linkedNode;
325
- }
326
- return null;
327
- }
@@ -1,322 +0,0 @@
1
- import "core-js/modules/es.array.push.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 LinkedList from "../../utils/dataStructures/linkedList.mjs";
13
- /**
14
- * Class responsible for providing the correct focus order (vertical and horizontal) within a selection that
15
- * contains merged cells.
16
- */
17
- var _cellsHorizontalOrder = /*#__PURE__*/new WeakMap();
18
- var _cellsVerticalOrder = /*#__PURE__*/new WeakMap();
19
- var _currentHorizontalLinkedNode = /*#__PURE__*/new WeakMap();
20
- var _currentVerticalLinkedNode = /*#__PURE__*/new WeakMap();
21
- var _mergedCellsGetter = /*#__PURE__*/new WeakMap();
22
- var _rowIndexMapper = /*#__PURE__*/new WeakMap();
23
- var _columnIndexMapper = /*#__PURE__*/new WeakMap();
24
- var _pushOrderNode = /*#__PURE__*/new WeakSet();
25
- export class FocusOrder {
26
- constructor(_ref) {
27
- let {
28
- mergedCellsGetter,
29
- rowIndexMapper,
30
- columnIndexMapper
31
- } = _ref;
32
- /**
33
- * Pushes a new node to the provided list order.
34
- *
35
- * @param {CellRange} selectedRange The selected range to build the focus order for.
36
- * @param {LinkedList} listOrder The list order to push the node to.
37
- * @param {WeakSet} mergeCellsVisitor The set of visited cells.
38
- * @param {number} row The visual row index.
39
- * @param {number} column The visual column index.
40
- * @returns {NodeStructure | null}
41
- */
42
- _classPrivateMethodInitSpec(this, _pushOrderNode);
43
- /**
44
- * The linked list of the all cells within the current selection in horizontal order. The list is
45
- * recreated every time the selection is changed.
46
- *
47
- * @type {LinkedList}
48
- */
49
- _classPrivateFieldInitSpec(this, _cellsHorizontalOrder, {
50
- writable: true,
51
- value: new LinkedList()
52
- });
53
- /**
54
- * The linked list of the all cells within the current selection in horizontal order. The list is
55
- * recreated every time the selection is changed.
56
- *
57
- * @type {LinkedList}
58
- */
59
- _classPrivateFieldInitSpec(this, _cellsVerticalOrder, {
60
- writable: true,
61
- value: new LinkedList()
62
- });
63
- /**
64
- * The currently highlighted cell within the horizontal linked list.
65
- *
66
- * @type {NodeStructure | null}
67
- */
68
- _classPrivateFieldInitSpec(this, _currentHorizontalLinkedNode, {
69
- writable: true,
70
- value: null
71
- });
72
- /**
73
- * The currently highlighted cell within the vertical linked list.
74
- *
75
- * @type {NodeStructure | null}
76
- */
77
- _classPrivateFieldInitSpec(this, _currentVerticalLinkedNode, {
78
- writable: true,
79
- value: null
80
- });
81
- /**
82
- * The merged cells getter function.
83
- *
84
- * @type {function(): {row: number, col: number, rowspan: number, colspan: number} | null}}
85
- */
86
- _classPrivateFieldInitSpec(this, _mergedCellsGetter, {
87
- writable: true,
88
- value: null
89
- });
90
- /**
91
- * The row index mapper.
92
- *
93
- * @type {IndexMapper}
94
- */
95
- _classPrivateFieldInitSpec(this, _rowIndexMapper, {
96
- writable: true,
97
- value: null
98
- });
99
- /**
100
- * The column index mapper.
101
- *
102
- * @type {IndexMapper}
103
- */
104
- _classPrivateFieldInitSpec(this, _columnIndexMapper, {
105
- writable: true,
106
- value: null
107
- });
108
- _classPrivateFieldSet(this, _mergedCellsGetter, mergedCellsGetter);
109
- _classPrivateFieldSet(this, _rowIndexMapper, rowIndexMapper);
110
- _classPrivateFieldSet(this, _columnIndexMapper, columnIndexMapper);
111
- }
112
-
113
- /**
114
- * Gets the currently selected node data from the vertical focus order list.
115
- *
116
- * @returns {NodeStructure}
117
- */
118
- getCurrentVerticalNode() {
119
- return _classPrivateFieldGet(this, _currentVerticalLinkedNode).data;
120
- }
121
-
122
- /**
123
- * Gets the first node data from the vertical focus order list.
124
- *
125
- * @returns {NodeStructure}
126
- */
127
- getFirstVerticalNode() {
128
- return _classPrivateFieldGet(this, _cellsVerticalOrder).first.data;
129
- }
130
-
131
- /**
132
- * Gets the next selected node data from the vertical focus order list.
133
- *
134
- * @returns {NodeStructure}
135
- */
136
- getNextVerticalNode() {
137
- return _classPrivateFieldGet(this, _currentVerticalLinkedNode).next.data;
138
- }
139
-
140
- /**
141
- * Gets the previous selected node data from the vertical focus order list.
142
- *
143
- * @returns {NodeStructure}
144
- */
145
- getPrevVerticalNode() {
146
- return _classPrivateFieldGet(this, _currentVerticalLinkedNode).prev.data;
147
- }
148
-
149
- /**
150
- * Gets the currently selected node data from the horizontal focus order list.
151
- *
152
- * @returns {NodeStructure}
153
- */
154
- getCurrentHorizontalNode() {
155
- return _classPrivateFieldGet(this, _currentHorizontalLinkedNode).data;
156
- }
157
-
158
- /**
159
- * Gets the first node data from the horizontal focus order list.
160
- *
161
- * @returns {NodeStructure}
162
- */
163
- getFirstHorizontalNode() {
164
- return _classPrivateFieldGet(this, _cellsHorizontalOrder).first.data;
165
- }
166
-
167
- /**
168
- * Gets the next selected node data from the horizontal focus order list.
169
- *
170
- * @returns {NodeStructure}
171
- */
172
- getNextHorizontalNode() {
173
- return _classPrivateFieldGet(this, _currentHorizontalLinkedNode).next.data;
174
- }
175
-
176
- /**
177
- * Gets the previous selected node data from the horizontal focus order list.
178
- *
179
- * @returns {NodeStructure}
180
- */
181
- getPrevHorizontalNode() {
182
- return _classPrivateFieldGet(this, _currentHorizontalLinkedNode).prev.data;
183
- }
184
-
185
- /**
186
- * Sets the previous node from the vertical focus order list as active.
187
- */
188
- setPrevNodeAsActive() {
189
- _classPrivateFieldSet(this, _currentVerticalLinkedNode, _classPrivateFieldGet(this, _currentVerticalLinkedNode).prev);
190
- _classPrivateFieldSet(this, _currentHorizontalLinkedNode, _classPrivateFieldGet(this, _currentHorizontalLinkedNode).prev);
191
- }
192
-
193
- /**
194
- * Sets the previous node from the horizontal focus order list as active.
195
- */
196
- setNextNodeAsActive() {
197
- _classPrivateFieldSet(this, _currentVerticalLinkedNode, _classPrivateFieldGet(this, _currentVerticalLinkedNode).next);
198
- _classPrivateFieldSet(this, _currentHorizontalLinkedNode, _classPrivateFieldGet(this, _currentHorizontalLinkedNode).next);
199
- }
200
-
201
- /**
202
- * Rebuilds the focus order list based on the provided selection.
203
- *
204
- * @param {CellRange} selectedRange The selected range to build the focus order for.
205
- */
206
- buildFocusOrder(selectedRange) {
207
- const topStart = selectedRange.getTopStartCorner();
208
- const bottomEnd = selectedRange.getBottomEndCorner();
209
- const visitedHorizontalCells = new WeakSet();
210
- _classPrivateFieldSet(this, _cellsHorizontalOrder, new LinkedList());
211
- for (let r = topStart.row; r <= bottomEnd.row; r++) {
212
- if (_classPrivateFieldGet(this, _rowIndexMapper).isHidden(r)) {
213
- // eslint-disable-next-line no-continue
214
- continue;
215
- }
216
- for (let c = topStart.col; c <= bottomEnd.col; c++) {
217
- if (_classPrivateFieldGet(this, _columnIndexMapper).isHidden(c)) {
218
- // eslint-disable-next-line no-continue
219
- continue;
220
- }
221
- const node = _classPrivateMethodGet(this, _pushOrderNode, _pushOrderNode2).call(this, selectedRange, _classPrivateFieldGet(this, _cellsHorizontalOrder), visitedHorizontalCells, r, c);
222
- if (node) {
223
- _classPrivateFieldSet(this, _currentHorizontalLinkedNode, node);
224
- }
225
- }
226
- }
227
-
228
- // create circular linked list
229
- if (_classPrivateFieldGet(this, _cellsHorizontalOrder).first) {
230
- _classPrivateFieldGet(this, _cellsHorizontalOrder).first.prev = _classPrivateFieldGet(this, _cellsHorizontalOrder).last;
231
- _classPrivateFieldGet(this, _cellsHorizontalOrder).last.next = _classPrivateFieldGet(this, _cellsHorizontalOrder).first;
232
- }
233
- const visitedVerticalCells = new WeakSet();
234
- _classPrivateFieldSet(this, _cellsVerticalOrder, new LinkedList());
235
- for (let c = topStart.col; c <= bottomEnd.col; c++) {
236
- if (_classPrivateFieldGet(this, _columnIndexMapper).isHidden(c)) {
237
- // eslint-disable-next-line no-continue
238
- continue;
239
- }
240
- for (let r = topStart.row; r <= bottomEnd.row; r++) {
241
- if (_classPrivateFieldGet(this, _rowIndexMapper).isHidden(r)) {
242
- // eslint-disable-next-line no-continue
243
- continue;
244
- }
245
- const node = _classPrivateMethodGet(this, _pushOrderNode, _pushOrderNode2).call(this, selectedRange, _classPrivateFieldGet(this, _cellsVerticalOrder), visitedVerticalCells, r, c);
246
- if (node) {
247
- _classPrivateFieldSet(this, _currentVerticalLinkedNode, node);
248
- }
249
- }
250
- }
251
-
252
- // create circular linked list
253
- if (_classPrivateFieldGet(this, _cellsVerticalOrder).first) {
254
- _classPrivateFieldGet(this, _cellsVerticalOrder).first.prev = _classPrivateFieldGet(this, _cellsVerticalOrder).last;
255
- _classPrivateFieldGet(this, _cellsVerticalOrder).last.next = _classPrivateFieldGet(this, _cellsVerticalOrder).first;
256
- }
257
- }
258
- /**
259
- * Sets the active node based on the provided row and column.
260
- *
261
- * @param {number} row The visual row index.
262
- * @param {number} column The visual column index.
263
- * @returns {FocusOrder}
264
- */
265
- setActiveNode(row, column) {
266
- _classPrivateFieldGet(this, _cellsHorizontalOrder).inorder(node => {
267
- const {
268
- rowStart,
269
- rowEnd,
270
- colStart,
271
- colEnd
272
- } = node.data;
273
- if (row >= rowStart && row <= rowEnd && column >= colStart && column <= colEnd) {
274
- _classPrivateFieldSet(this, _currentHorizontalLinkedNode, node);
275
- return false;
276
- }
277
- });
278
- _classPrivateFieldGet(this, _cellsVerticalOrder).inorder(node => {
279
- const {
280
- rowStart,
281
- rowEnd,
282
- colStart,
283
- colEnd
284
- } = node.data;
285
- if (row >= rowStart && row <= rowEnd && column >= colStart && column <= colEnd) {
286
- _classPrivateFieldSet(this, _currentVerticalLinkedNode, node);
287
- return false;
288
- }
289
- });
290
- return this;
291
- }
292
- }
293
- function _pushOrderNode2(selectedRange, listOrder, mergeCellsVisitor, row, column) {
294
- const topStart = selectedRange.getTopStartCorner();
295
- const bottomEnd = selectedRange.getBottomEndCorner();
296
- const highlight = selectedRange.highlight.clone().normalize();
297
- const mergeParent = _classPrivateFieldGet(this, _mergedCellsGetter).call(this, row, column);
298
- if (mergeParent && mergeCellsVisitor.has(mergeParent)) {
299
- return null;
300
- }
301
- const node = {
302
- colStart: column,
303
- colEnd: column,
304
- rowStart: row,
305
- rowEnd: row
306
- };
307
- if (mergeParent) {
308
- mergeCellsVisitor.add(mergeParent);
309
- if (mergeParent.row < topStart.row || mergeParent.row + mergeParent.rowspan - 1 > bottomEnd.row || mergeParent.col < topStart.col || mergeParent.col + mergeParent.colspan - 1 > bottomEnd.col) {
310
- return null;
311
- }
312
- node.colStart = mergeParent.col;
313
- node.colEnd = mergeParent.col + mergeParent.colspan - 1;
314
- node.rowStart = mergeParent.row;
315
- node.rowEnd = mergeParent.row + mergeParent.rowspan - 1;
316
- }
317
- const linkedNode = listOrder.push(node);
318
- if (row === highlight.row && column === highlight.col || mergeParent && highlight.row >= mergeParent.row && highlight.row <= mergeParent.row + mergeParent.rowspan - 1 && highlight.col >= mergeParent.col && highlight.col <= mergeParent.col + mergeParent.colspan - 1) {
319
- return linkedNode;
320
- }
321
- return null;
322
- }