handsontable 14.4.0-next-1ffa7bc-20240606 → 14.5.0-next-ede811d-20240717

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (446) hide show
  1. package/3rdparty/walkontable/src/calculator/renderAllColumns.js +1 -1
  2. package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +1 -1
  3. package/3rdparty/walkontable/src/calculator/renderAllRows.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +1 -1
  5. package/3rdparty/walkontable/src/calculator/viewportColumns.js +3 -3
  6. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +3 -3
  7. package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
  8. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
  9. package/3rdparty/walkontable/src/cell/coords.js +3 -3
  10. package/3rdparty/walkontable/src/cell/coords.mjs +3 -3
  11. package/3rdparty/walkontable/src/cell/range.js +4 -4
  12. package/3rdparty/walkontable/src/cell/range.mjs +3 -3
  13. package/3rdparty/walkontable/src/core/_base.js +2 -2
  14. package/3rdparty/walkontable/src/core/_base.mjs +1 -1
  15. package/3rdparty/walkontable/src/core/clone.js +2 -2
  16. package/3rdparty/walkontable/src/core/clone.mjs +1 -1
  17. package/3rdparty/walkontable/src/core/core.js +17 -1
  18. package/3rdparty/walkontable/src/core/core.mjs +16 -0
  19. package/3rdparty/walkontable/src/event.js +2 -2
  20. package/3rdparty/walkontable/src/event.mjs +2 -2
  21. package/3rdparty/walkontable/src/facade/core.js +4 -1
  22. package/3rdparty/walkontable/src/facade/core.mjs +3 -0
  23. package/3rdparty/walkontable/src/filter/column.js +1 -1
  24. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  25. package/3rdparty/walkontable/src/filter/row.js +1 -1
  26. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  27. package/3rdparty/walkontable/src/index.js +1 -1
  28. package/3rdparty/walkontable/src/overlay/_base.js +2 -2
  29. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  30. package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
  31. package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
  32. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +1 -1
  33. package/3rdparty/walkontable/src/overlay/inlineStart.js +1 -1
  34. package/3rdparty/walkontable/src/overlay/top.js +2 -2
  35. package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
  36. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +2 -2
  37. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
  38. package/3rdparty/walkontable/src/overlays.js +36 -4
  39. package/3rdparty/walkontable/src/overlays.mjs +36 -4
  40. package/3rdparty/walkontable/src/renderer/_base.js +2 -2
  41. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  42. package/3rdparty/walkontable/src/renderer/cells.js +2 -2
  43. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
  44. package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
  45. package/3rdparty/walkontable/src/renderer/columnHeaders.js +1 -1
  46. package/3rdparty/walkontable/src/renderer/index.js +12 -1
  47. package/3rdparty/walkontable/src/renderer/index.mjs +11 -0
  48. package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
  49. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
  50. package/3rdparty/walkontable/src/renderer/rows.js +2 -2
  51. package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
  52. package/3rdparty/walkontable/src/renderer/table.js +17 -2
  53. package/3rdparty/walkontable/src/renderer/table.mjs +17 -2
  54. package/3rdparty/walkontable/src/scroll.js +3 -3
  55. package/3rdparty/walkontable/src/scroll.mjs +3 -3
  56. package/3rdparty/walkontable/src/selection/index.js +1 -1
  57. package/3rdparty/walkontable/src/selection/manager.js +4 -4
  58. package/3rdparty/walkontable/src/selection/manager.mjs +3 -3
  59. package/3rdparty/walkontable/src/selection/scanner.js +3 -3
  60. package/3rdparty/walkontable/src/selection/scanner.mjs +3 -3
  61. package/3rdparty/walkontable/src/selection/selection.js +1 -1
  62. package/3rdparty/walkontable/src/settings.js +6 -2
  63. package/3rdparty/walkontable/src/settings.mjs +6 -2
  64. package/3rdparty/walkontable/src/table/bottom.js +1 -1
  65. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -1
  66. package/3rdparty/walkontable/src/table/inlineStart.js +1 -1
  67. package/3rdparty/walkontable/src/table/master.js +1 -1
  68. package/3rdparty/walkontable/src/table/top.js +1 -1
  69. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -1
  70. package/3rdparty/walkontable/src/table.js +3 -3
  71. package/3rdparty/walkontable/src/table.mjs +2 -2
  72. package/3rdparty/walkontable/src/utils/column.js +1 -1
  73. package/3rdparty/walkontable/src/utils/column.mjs +1 -1
  74. package/3rdparty/walkontable/src/utils/columnStretching.js +3 -3
  75. package/3rdparty/walkontable/src/utils/columnStretching.mjs +3 -3
  76. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  77. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  78. package/3rdparty/walkontable/src/utils/orderView/index.js +1 -1
  79. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +1 -1
  80. package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
  81. package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
  82. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  83. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  84. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +2 -2
  85. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  86. package/3rdparty/walkontable/src/utils/row.js +17 -1
  87. package/3rdparty/walkontable/src/utils/row.mjs +17 -1
  88. package/CHANGELOG.md +27 -1
  89. package/base.js +3 -3
  90. package/base.mjs +2 -2
  91. package/cellTypes/registry.js +1 -1
  92. package/common.d.ts +3 -0
  93. package/core.d.ts +2 -0
  94. package/core.js +36 -31
  95. package/core.mjs +35 -30
  96. package/dataMap/dataMap.js +1 -1
  97. package/dataMap/dataMap.mjs +1 -1
  98. package/dataMap/dataSource.js +1 -1
  99. package/dataMap/dataSource.mjs +1 -1
  100. package/dataMap/index.js +1 -1
  101. package/dataMap/metaManager/index.js +1 -1
  102. package/dataMap/metaManager/lazyFactoryMap.js +1 -1
  103. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -1
  104. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
  105. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
  106. package/dataMap/metaManager/metaLayers/columnMeta.js +2 -2
  107. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  108. package/dataMap/metaManager/metaLayers/globalMeta.js +2 -2
  109. package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
  110. package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
  111. package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
  112. package/dataMap/metaManager/metaSchema.js +25 -0
  113. package/dataMap/metaManager/metaSchema.mjs +25 -0
  114. package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -2
  115. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  116. package/dataMap/metaManager/mods/extendMetaProperties.js +3 -3
  117. package/dataMap/metaManager/mods/extendMetaProperties.mjs +3 -3
  118. package/dataMap/replaceData.js +1 -1
  119. package/dist/handsontable.css +134 -88
  120. package/dist/handsontable.full.css +134 -88
  121. package/dist/handsontable.full.js +2191 -1503
  122. package/dist/handsontable.full.min.css +7 -7
  123. package/dist/handsontable.full.min.js +86 -86
  124. package/dist/handsontable.js +2180 -1440
  125. package/dist/handsontable.min.css +6 -6
  126. package/dist/handsontable.min.js +23 -23
  127. package/dist/languages/all.js +3 -3
  128. package/dist/languages/ar-AR.js +3 -3
  129. package/dist/languages/cs-CZ.js +3 -3
  130. package/dist/languages/de-CH.js +3 -3
  131. package/dist/languages/de-DE.js +3 -3
  132. package/dist/languages/en-US.js +3 -3
  133. package/dist/languages/es-MX.js +3 -3
  134. package/dist/languages/fr-FR.js +3 -3
  135. package/dist/languages/hr-HR.js +3 -3
  136. package/dist/languages/it-IT.js +3 -3
  137. package/dist/languages/ja-JP.js +3 -3
  138. package/dist/languages/ko-KR.js +3 -3
  139. package/dist/languages/lv-LV.js +3 -3
  140. package/dist/languages/nb-NO.js +3 -3
  141. package/dist/languages/nl-NL.js +3 -3
  142. package/dist/languages/pl-PL.js +3 -3
  143. package/dist/languages/pt-BR.js +3 -3
  144. package/dist/languages/ru-RU.js +3 -3
  145. package/dist/languages/sr-SP.js +3 -3
  146. package/dist/languages/zh-CN.js +3 -3
  147. package/dist/languages/zh-TW.js +3 -3
  148. package/editorManager.js +4 -4
  149. package/editorManager.mjs +3 -3
  150. package/editors/autocompleteEditor/autocompleteEditor.js +3 -3
  151. package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -3
  152. package/editors/baseEditor/baseEditor.js +2 -2
  153. package/editors/baseEditor/baseEditor.mjs +1 -1
  154. package/editors/dateEditor/dateEditor.js +2 -2
  155. package/editors/dateEditor/dateEditor.mjs +1 -1
  156. package/editors/dropdownEditor/dropdownEditor.js +1 -1
  157. package/editors/registry.js +1 -1
  158. package/editors/textEditor/textEditor.js +2 -2
  159. package/editors/textEditor/textEditor.mjs +1 -1
  160. package/eventManager.js +1 -1
  161. package/eventManager.mjs +1 -1
  162. package/focusManager.js +3 -3
  163. package/focusManager.mjs +3 -3
  164. package/helpers/dom/event.d.ts +1 -0
  165. package/helpers/dom/event.js +11 -0
  166. package/helpers/dom/event.mjs +10 -0
  167. package/helpers/mixed.js +3 -3
  168. package/helpers/mixed.mjs +2 -2
  169. package/helpers/string.js +1 -1
  170. package/i18n/languages/index.js +1 -1
  171. package/i18n/phraseFormatters/index.js +1 -1
  172. package/i18n/registry.js +1 -1
  173. package/index.js +1 -1
  174. package/languages/all.js +3 -3
  175. package/languages/ar-AR.js +3 -3
  176. package/languages/cs-CZ.js +3 -3
  177. package/languages/de-CH.js +3 -3
  178. package/languages/de-DE.js +3 -3
  179. package/languages/en-US.js +3 -3
  180. package/languages/es-MX.js +3 -3
  181. package/languages/fr-FR.js +3 -3
  182. package/languages/hr-HR.js +3 -3
  183. package/languages/index.js +3 -3
  184. package/languages/it-IT.js +3 -3
  185. package/languages/ja-JP.js +3 -3
  186. package/languages/ko-KR.js +3 -3
  187. package/languages/lv-LV.js +3 -3
  188. package/languages/nb-NO.js +3 -3
  189. package/languages/nl-NL.js +3 -3
  190. package/languages/pl-PL.js +3 -3
  191. package/languages/pt-BR.js +3 -3
  192. package/languages/ru-RU.js +3 -3
  193. package/languages/sr-SP.js +3 -3
  194. package/languages/zh-CN.js +3 -3
  195. package/languages/zh-TW.js +3 -3
  196. package/package.json +1 -5
  197. package/pluginHooks.d.ts +3 -1
  198. package/pluginHooks.js +12 -1
  199. package/pluginHooks.mjs +12 -1
  200. package/plugins/autoColumnSize/autoColumnSize.d.ts +1 -1
  201. package/plugins/autoColumnSize/autoColumnSize.js +123 -123
  202. package/plugins/autoColumnSize/autoColumnSize.mjs +122 -122
  203. package/plugins/autoRowSize/autoRowSize.d.ts +2 -1
  204. package/plugins/autoRowSize/autoRowSize.js +162 -100
  205. package/plugins/autoRowSize/autoRowSize.mjs +161 -99
  206. package/plugins/autofill/autofill.js +4 -4
  207. package/plugins/autofill/autofill.mjs +3 -3
  208. package/plugins/base/base.js +5 -5
  209. package/plugins/base/base.mjs +4 -4
  210. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -4
  211. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
  212. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -4
  213. package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -4
  214. package/plugins/columnSorting/columnSorting.js +6 -5
  215. package/plugins/columnSorting/columnSorting.mjs +5 -4
  216. package/plugins/columnSorting/columnStatesManager.js +1 -1
  217. package/plugins/columnSorting/columnStatesManager.mjs +1 -1
  218. package/plugins/columnSorting/sortService/registry.js +1 -1
  219. package/plugins/columnSorting/utils.js +1 -1
  220. package/plugins/columnSummary/columnSummary.d.ts +1 -1
  221. package/plugins/columnSummary/columnSummary.js +4 -4
  222. package/plugins/columnSummary/columnSummary.mjs +3 -3
  223. package/plugins/columnSummary/endpoints.js +1 -1
  224. package/plugins/columnSummary/endpoints.mjs +1 -1
  225. package/plugins/comments/commentEditor.js +74 -39
  226. package/plugins/comments/commentEditor.mjs +73 -39
  227. package/plugins/comments/comments.js +25 -44
  228. package/plugins/comments/comments.mjs +25 -44
  229. package/plugins/comments/displaySwitch.js +2 -2
  230. package/plugins/comments/displaySwitch.mjs +1 -1
  231. package/plugins/comments/editorResizeObserver.js +100 -0
  232. package/plugins/comments/editorResizeObserver.mjs +95 -0
  233. package/plugins/contextMenu/commandExecutor.js +1 -1
  234. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  235. package/plugins/contextMenu/contextMenu.js +4 -4
  236. package/plugins/contextMenu/contextMenu.mjs +3 -3
  237. package/plugins/contextMenu/itemsFactory.js +1 -1
  238. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  239. package/plugins/contextMenu/menu/cursor.js +1 -1
  240. package/plugins/contextMenu/menu/cursor.mjs +1 -1
  241. package/plugins/contextMenu/menu/menu.js +5 -4
  242. package/plugins/contextMenu/menu/menu.mjs +4 -3
  243. package/plugins/contextMenu/menu/positioner.js +2 -2
  244. package/plugins/contextMenu/menu/positioner.mjs +2 -2
  245. package/plugins/copyPaste/copyPaste.js +5 -5
  246. package/plugins/copyPaste/copyPaste.mjs +4 -4
  247. package/plugins/copyPaste/copyableRanges.js +3 -3
  248. package/plugins/copyPaste/copyableRanges.mjs +3 -3
  249. package/plugins/copyPaste/pasteEvent.js +1 -1
  250. package/plugins/customBorders/contextMenuItem/index.js +1 -1
  251. package/plugins/customBorders/customBorders.js +3 -3
  252. package/plugins/customBorders/customBorders.mjs +3 -3
  253. package/plugins/dragToScroll/dragToScroll.js +4 -4
  254. package/plugins/dragToScroll/dragToScroll.mjs +4 -4
  255. package/plugins/dropdownMenu/dropdownMenu.js +5 -5
  256. package/plugins/dropdownMenu/dropdownMenu.mjs +4 -4
  257. package/plugins/exportFile/dataProvider.js +1 -1
  258. package/plugins/exportFile/dataProvider.mjs +1 -1
  259. package/plugins/exportFile/exportFile.js +1 -1
  260. package/plugins/exportFile/typeFactory.js +1 -1
  261. package/plugins/exportFile/types/_base.js +1 -1
  262. package/plugins/exportFile/types/_base.mjs +1 -1
  263. package/plugins/exportFile/types/csv.js +1 -1
  264. package/plugins/filters/component/_base.js +2 -2
  265. package/plugins/filters/component/_base.mjs +1 -1
  266. package/plugins/filters/component/actionBar.js +3 -3
  267. package/plugins/filters/component/actionBar.mjs +3 -3
  268. package/plugins/filters/component/condition.js +3 -3
  269. package/plugins/filters/component/condition.mjs +3 -3
  270. package/plugins/filters/component/operators.js +3 -3
  271. package/plugins/filters/component/operators.mjs +3 -3
  272. package/plugins/filters/component/value.js +3 -3
  273. package/plugins/filters/component/value.mjs +3 -3
  274. package/plugins/filters/condition/date/after.js +1 -1
  275. package/plugins/filters/condition/date/before.js +1 -1
  276. package/plugins/filters/condition/date/today.js +1 -1
  277. package/plugins/filters/condition/date/tomorrow.js +1 -1
  278. package/plugins/filters/condition/date/yesterday.js +1 -1
  279. package/plugins/filters/conditionCollection.js +2 -2
  280. package/plugins/filters/conditionCollection.mjs +1 -1
  281. package/plugins/filters/conditionUpdateObserver.js +4 -4
  282. package/plugins/filters/conditionUpdateObserver.mjs +3 -3
  283. package/plugins/filters/dataFilter.js +1 -1
  284. package/plugins/filters/dataFilter.mjs +1 -1
  285. package/plugins/filters/filters.js +5 -5
  286. package/plugins/filters/filters.mjs +4 -4
  287. package/plugins/filters/ui/_base.js +2 -2
  288. package/plugins/filters/ui/_base.mjs +1 -1
  289. package/plugins/filters/ui/input.js +3 -3
  290. package/plugins/filters/ui/input.mjs +3 -3
  291. package/plugins/filters/ui/link.js +2 -2
  292. package/plugins/filters/ui/link.mjs +2 -2
  293. package/plugins/filters/ui/multipleSelect.js +3 -3
  294. package/plugins/filters/ui/multipleSelect.mjs +3 -3
  295. package/plugins/filters/ui/radioInput.js +2 -2
  296. package/plugins/filters/ui/radioInput.mjs +2 -2
  297. package/plugins/filters/ui/select.js +3 -3
  298. package/plugins/filters/ui/select.mjs +3 -3
  299. package/plugins/formulas/engine/register.js +1 -1
  300. package/plugins/formulas/formulas.js +7 -7
  301. package/plugins/formulas/formulas.mjs +6 -6
  302. package/plugins/formulas/indexSyncer/axisSyncer.js +2 -2
  303. package/plugins/formulas/indexSyncer/axisSyncer.mjs +2 -2
  304. package/plugins/formulas/indexSyncer/index.js +3 -3
  305. package/plugins/formulas/indexSyncer/index.mjs +2 -2
  306. package/plugins/formulas/utils.js +1 -1
  307. package/plugins/hiddenColumns/hiddenColumns.js +4 -4
  308. package/plugins/hiddenColumns/hiddenColumns.mjs +3 -3
  309. package/plugins/hiddenRows/hiddenRows.js +4 -4
  310. package/plugins/hiddenRows/hiddenRows.mjs +3 -3
  311. package/plugins/manualColumnFreeze/manualColumnFreeze.js +4 -4
  312. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -3
  313. package/plugins/manualColumnMove/manualColumnMove.js +4 -4
  314. package/plugins/manualColumnMove/manualColumnMove.mjs +3 -3
  315. package/plugins/manualColumnMove/ui/_base.js +1 -1
  316. package/plugins/manualColumnMove/ui/_base.mjs +1 -1
  317. package/plugins/manualColumnMove/ui/backlight.js +1 -1
  318. package/plugins/manualColumnMove/ui/guideline.js +1 -1
  319. package/plugins/manualColumnResize/manualColumnResize.js +3 -3
  320. package/plugins/manualColumnResize/manualColumnResize.mjs +3 -3
  321. package/plugins/manualRowMove/manualRowMove.js +4 -4
  322. package/plugins/manualRowMove/manualRowMove.mjs +3 -3
  323. package/plugins/manualRowMove/ui/_base.js +1 -1
  324. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  325. package/plugins/manualRowMove/ui/backlight.js +1 -1
  326. package/plugins/manualRowMove/ui/guideline.js +1 -1
  327. package/plugins/manualRowResize/manualRowResize.js +3 -3
  328. package/plugins/manualRowResize/manualRowResize.mjs +3 -3
  329. package/plugins/mergeCells/calculations/autofill.js +2 -2
  330. package/plugins/mergeCells/calculations/autofill.mjs +2 -2
  331. package/plugins/mergeCells/calculations/selection.js +1 -1
  332. package/plugins/mergeCells/calculations/selection.mjs +1 -1
  333. package/plugins/mergeCells/cellCoords.js +81 -24
  334. package/plugins/mergeCells/cellCoords.mjs +81 -24
  335. package/plugins/mergeCells/cellsCollection.js +167 -91
  336. package/plugins/mergeCells/cellsCollection.mjs +166 -90
  337. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -1
  338. package/plugins/mergeCells/focusOrder.js +4 -4
  339. package/plugins/mergeCells/focusOrder.mjs +3 -3
  340. package/plugins/mergeCells/mergeCells.js +171 -122
  341. package/plugins/mergeCells/mergeCells.mjs +171 -122
  342. package/plugins/mergeCells/renderer.js +74 -0
  343. package/plugins/mergeCells/renderer.mjs +70 -0
  344. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -1
  345. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -1
  346. package/plugins/multiColumnSorting/utils.js +1 -1
  347. package/plugins/multiColumnSorting/utils.mjs +1 -1
  348. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +1 -1
  349. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +1 -1
  350. package/plugins/nestedHeaders/nestedHeaders.d.ts +1 -0
  351. package/plugins/nestedHeaders/nestedHeaders.js +20 -9
  352. package/plugins/nestedHeaders/nestedHeaders.mjs +20 -9
  353. package/plugins/nestedHeaders/stateManager/headersTree.js +3 -3
  354. package/plugins/nestedHeaders/stateManager/headersTree.mjs +2 -2
  355. package/plugins/nestedHeaders/stateManager/index.js +3 -3
  356. package/plugins/nestedHeaders/stateManager/index.mjs +2 -2
  357. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -1
  358. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -1
  359. package/plugins/nestedHeaders/stateManager/sourceSettings.js +2 -2
  360. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +2 -2
  361. package/plugins/nestedHeaders/stateManager/utils.js +6 -2
  362. package/plugins/nestedHeaders/stateManager/utils.mjs +6 -2
  363. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  364. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  365. package/plugins/nestedRows/data/dataManager.js +1 -1
  366. package/plugins/nestedRows/data/dataManager.mjs +1 -1
  367. package/plugins/nestedRows/nestedRows.js +5 -5
  368. package/plugins/nestedRows/nestedRows.mjs +4 -4
  369. package/plugins/nestedRows/ui/_base.js +1 -1
  370. package/plugins/nestedRows/ui/_base.mjs +1 -1
  371. package/plugins/nestedRows/ui/collapsing.js +1 -1
  372. package/plugins/nestedRows/ui/contextMenu.js +4 -4
  373. package/plugins/nestedRows/ui/contextMenu.mjs +3 -3
  374. package/plugins/nestedRows/ui/headers.js +1 -1
  375. package/plugins/nestedRows/utils/rowMoveController.js +1 -1
  376. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -1
  377. package/plugins/persistentState/persistentState.js +2 -2
  378. package/plugins/persistentState/persistentState.mjs +1 -1
  379. package/plugins/persistentState/storage.js +1 -1
  380. package/plugins/persistentState/storage.mjs +1 -1
  381. package/plugins/search/search.js +3 -3
  382. package/plugins/search/search.mjs +3 -3
  383. package/plugins/touchScroll/touchScroll.js +3 -3
  384. package/plugins/touchScroll/touchScroll.mjs +3 -3
  385. package/plugins/trimRows/trimRows.js +3 -3
  386. package/plugins/trimRows/trimRows.mjs +3 -3
  387. package/plugins/undoRedo/undoRedo.js +38 -1
  388. package/plugins/undoRedo/undoRedo.mjs +37 -0
  389. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -1
  390. package/renderers/checkboxRenderer/checkboxRenderer.js +1 -1
  391. package/renderers/numericRenderer/numericRenderer.js +1 -1
  392. package/renderers/registry.js +1 -1
  393. package/selection/highlight/highlight.js +3 -3
  394. package/selection/highlight/highlight.mjs +3 -3
  395. package/selection/highlight/types/activeHeader.js +1 -1
  396. package/selection/highlight/types/area.js +1 -1
  397. package/selection/highlight/types/areaLayered.js +1 -1
  398. package/selection/highlight/types/column.js +1 -1
  399. package/selection/highlight/types/customSelection.js +1 -1
  400. package/selection/highlight/types/fill.js +1 -1
  401. package/selection/highlight/types/focus.js +1 -1
  402. package/selection/highlight/types/header.js +1 -1
  403. package/selection/highlight/types/row.js +1 -1
  404. package/selection/highlight/visualSelection.js +1 -1
  405. package/selection/highlight/visualSelection.mjs +1 -1
  406. package/selection/index.js +1 -1
  407. package/selection/range.js +1 -1
  408. package/selection/range.mjs +1 -1
  409. package/selection/selection.js +8 -4
  410. package/selection/selection.mjs +7 -3
  411. package/selection/transformation.js +14 -4
  412. package/selection/transformation.mjs +13 -3
  413. package/settings.d.ts +1 -0
  414. package/shortcuts/utils.js +18 -27
  415. package/shortcuts/utils.mjs +18 -27
  416. package/tableView.js +126 -28
  417. package/tableView.mjs +125 -27
  418. package/translations/changesObservable/observable.js +2 -2
  419. package/translations/changesObservable/observable.mjs +2 -2
  420. package/translations/changesObservable/observer.js +3 -3
  421. package/translations/changesObservable/observer.mjs +2 -2
  422. package/translations/indexMapper.js +2 -2
  423. package/translations/indexMapper.mjs +1 -1
  424. package/translations/mapCollections/aggregatedCollection.js +1 -1
  425. package/translations/mapCollections/aggregatedCollection.mjs +1 -1
  426. package/translations/mapCollections/mapCollection.js +2 -2
  427. package/translations/mapCollections/mapCollection.mjs +1 -1
  428. package/translations/maps/indexMap.js +2 -2
  429. package/translations/maps/indexMap.mjs +1 -1
  430. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
  431. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
  432. package/utils/dataStructures/linkedList.js +1 -1
  433. package/utils/dataStructures/linkedList.mjs +1 -1
  434. package/utils/dataStructures/tree.js +1 -1
  435. package/utils/dataStructures/tree.mjs +1 -1
  436. package/utils/ghostTable.js +1 -1
  437. package/utils/ghostTable.mjs +1 -1
  438. package/utils/interval.js +4 -4
  439. package/utils/interval.mjs +4 -4
  440. package/utils/samplesGenerator.js +1 -1
  441. package/utils/samplesGenerator.mjs +1 -1
  442. package/validators/dateValidator/dateValidator.js +1 -1
  443. package/validators/registry.js +1 -1
  444. package/validators/timeValidator/timeValidator.js +1 -1
  445. package/plugins/mergeCells/utils.js +0 -28
  446. package/plugins/mergeCells/utils.mjs +0 -24
@@ -8,9 +8,9 @@ import "core-js/modules/esnext.set.is-subset-of.v2.js";
8
8
  import "core-js/modules/esnext.set.is-superset-of.v2.js";
9
9
  import "core-js/modules/esnext.set.symmetric-difference.v2.js";
10
10
  import "core-js/modules/esnext.set.union.v2.js";
11
- function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
12
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
13
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
12
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
13
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
14
14
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
15
15
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
16
  function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
@@ -18,7 +18,6 @@ import MergedCellCoords from "./cellCoords.mjs";
18
18
  import { rangeEach, rangeEachReverse } from "../../helpers/number.mjs";
19
19
  import { warn } from "../../helpers/console.mjs";
20
20
  import { arrayEach } from "../../helpers/array.mjs";
21
- import { applySpanProperties } from "./utils.mjs";
22
21
  import { toSingleLine } from "../../helpers/templateLiteralTag.mjs";
23
22
  /**
24
23
  * Defines a container object for the merged cells.
@@ -47,9 +46,15 @@ class MergedCellsCollection {
47
46
  /**
48
47
  * Array of merged cells.
49
48
  *
50
- * @type {Array}
49
+ * @type {MergedCellCoords[]}
51
50
  */
52
51
  _defineProperty(this, "mergedCells", []);
52
+ /**
53
+ * Matrix of cells (row, col) that points to the instances of the MergedCellCoords objects.
54
+ *
55
+ * @type {Array}
56
+ */
57
+ _defineProperty(this, "mergedCellsMatrix", new Map());
53
58
  /**
54
59
  * The Handsontable instance.
55
60
  *
@@ -63,11 +68,16 @@ class MergedCellsCollection {
63
68
  /**
64
69
  * Get a warning message for when the declared merged cell data overlaps already existing merged cells.
65
70
  *
66
- * @param {object} newMergedCell Object containg information about the merged cells that was about to be added.
71
+ * @param {{ row: number, col: number, rowspan: number, colspan: number }} mergedCell Object containing information
72
+ * about the merged cells that was about to be added.
67
73
  * @returns {string}
68
74
  */
69
- static IS_OVERLAPPING_WARNING(newMergedCell) {
70
- return toSingleLine`The merged cell declared at [${newMergedCell.row}, ${newMergedCell.col}], overlaps\x20
75
+ static IS_OVERLAPPING_WARNING(_ref) {
76
+ let {
77
+ row,
78
+ col
79
+ } = _ref;
80
+ return toSingleLine`The merged cell declared at [${row}, ${col}], overlaps\x20
71
81
  with the other declared merged cell. The overlapping merged cell was not added to the table, please\x20
72
82
  fix your setup.`;
73
83
  }
@@ -81,16 +91,11 @@ class MergedCellsCollection {
81
91
  * @returns {MergedCellCoords|boolean} Returns a wanted merged cell on success and `false` on failure.
82
92
  */
83
93
  get(row, column) {
84
- const mergedCells = this.mergedCells;
85
- let result = false;
86
- arrayEach(mergedCells, mergedCell => {
87
- if (mergedCell.row <= row && mergedCell.row + mergedCell.rowspan - 1 >= row && mergedCell.col <= column && mergedCell.col + mergedCell.colspan - 1 >= column) {
88
- result = mergedCell;
89
- return false;
90
- }
91
- return true;
92
- });
93
- return result;
94
+ var _this$mergedCellsMatr;
95
+ if (!this.mergedCellsMatrix.has(row)) {
96
+ return false;
97
+ }
98
+ return (_this$mergedCellsMatr = this.mergedCellsMatrix.get(row).get(column)) !== null && _this$mergedCellsMatr !== void 0 ? _this$mergedCellsMatr : false;
94
99
  }
95
100
 
96
101
  /**
@@ -100,9 +105,8 @@ class MergedCellsCollection {
100
105
  * @returns {MergedCellCoords|boolean}
101
106
  */
102
107
  getByRange(range) {
103
- const mergedCells = this.mergedCells;
104
108
  let result = false;
105
- arrayEach(mergedCells, mergedCell => {
109
+ arrayEach(this.mergedCells, mergedCell => {
106
110
  if (mergedCell.row <= range.from.row && mergedCell.row + mergedCell.rowspan - 1 >= range.to.row && mergedCell.col <= range.from.col && mergedCell.col + mergedCell.colspan - 1 >= range.to.col) {
107
111
  result = mergedCell;
108
112
  return result;
@@ -112,58 +116,110 @@ class MergedCellsCollection {
112
116
  return result;
113
117
  }
114
118
 
119
+ /**
120
+ * Filters merge cells objects provided by users from overlapping cells.
121
+ *
122
+ * @param {{ row: number, col: number, rowspan: number, colspan: number }} mergedCellsInfo The merged cell information object.
123
+ * Has to contain `row`, `col`, `colspan` and `rowspan` properties.
124
+ * @returns {Array<{ row: number, col: number, rowspan: number, colspan: number }>}
125
+ */
126
+ filterOverlappingMergeCells(mergedCellsInfo) {
127
+ const occupiedCells = new Set();
128
+ this.mergedCells.forEach(mergedCell => {
129
+ const {
130
+ row,
131
+ col,
132
+ colspan,
133
+ rowspan
134
+ } = mergedCell;
135
+ for (let r = row; r < row + rowspan; r++) {
136
+ for (let c = col; c < col + colspan; c++) {
137
+ occupiedCells.add(`r${r},c${c}`);
138
+ }
139
+ }
140
+ });
141
+ const filteredMergeCells = mergedCellsInfo.filter(mergedCell => {
142
+ const {
143
+ row,
144
+ col,
145
+ colspan,
146
+ rowspan
147
+ } = mergedCell;
148
+ const localOccupiedCells = new Set();
149
+ let isOverlapping = false;
150
+ for (let r = row; r < row + rowspan; r++) {
151
+ for (let c = col; c < col + colspan; c++) {
152
+ const cellId = `r${r},c${c}`;
153
+ if (occupiedCells.has(cellId)) {
154
+ warn(MergedCellsCollection.IS_OVERLAPPING_WARNING(mergedCell));
155
+ isOverlapping = true;
156
+ break;
157
+ }
158
+ localOccupiedCells.add(cellId);
159
+ }
160
+ if (isOverlapping) {
161
+ break;
162
+ }
163
+ }
164
+ if (!isOverlapping) {
165
+ occupiedCells.add(...localOccupiedCells);
166
+ }
167
+ return !isOverlapping;
168
+ });
169
+ return filteredMergeCells;
170
+ }
171
+
115
172
  /**
116
173
  * Get a merged cell contained in the provided range.
117
174
  *
118
- * @param {CellRange|object} range The range to search merged cells in.
175
+ * @param {CellRange} range The range to search merged cells in.
119
176
  * @param {boolean} [countPartials=false] If set to `true`, all the merged cells overlapping the range will be taken into calculation.
120
- * @returns {Array|boolean} Array of found merged cells of `false` if none were found.
177
+ * @returns {MergedCellCoords[]} Array of found merged cells.
121
178
  */
122
179
  getWithinRange(range) {
123
180
  let countPartials = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
124
- const mergedCells = this.mergedCells;
125
- const foundMergedCells = [];
126
- let testedRange = range;
127
- if (!testedRange.includesRange) {
128
- const from = this.hot._createCellCoords(testedRange.from.row, testedRange.from.col);
129
- const to = this.hot._createCellCoords(testedRange.to.row, testedRange.to.col);
130
- testedRange = this.hot._createCellRange(from, from, to);
131
- }
132
- arrayEach(mergedCells, mergedCell => {
133
- const mergedCellTopLeft = this.hot._createCellCoords(mergedCell.row, mergedCell.col);
134
- const mergedCellBottomRight = this.hot._createCellCoords(mergedCell.row + mergedCell.rowspan - 1, mergedCell.col + mergedCell.colspan - 1);
135
- const mergedCellRange = this.hot._createCellRange(mergedCellTopLeft, mergedCellTopLeft, mergedCellBottomRight);
136
- if (countPartials) {
137
- if (testedRange.overlaps(mergedCellRange)) {
138
- foundMergedCells.push(mergedCell);
181
+ const {
182
+ row: rowStart,
183
+ col: columnStart
184
+ } = range.getTopStartCorner();
185
+ const {
186
+ row: rowEnd,
187
+ col: columnEnd
188
+ } = range.getBottomEndCorner();
189
+ const result = [];
190
+ for (let row = rowStart; row <= rowEnd; row++) {
191
+ for (let column = columnStart; column <= columnEnd; column++) {
192
+ const mergedCell = this.get(row, column);
193
+ if (mergedCell && (countPartials || !countPartials && mergedCell.row === row && mergedCell.col === column)) {
194
+ result.push(mergedCell);
139
195
  }
140
- } else if (testedRange.includesRange(mergedCellRange)) {
141
- foundMergedCells.push(mergedCell);
142
196
  }
143
- });
144
- return foundMergedCells.length ? foundMergedCells : false;
197
+ }
198
+ return result;
145
199
  }
146
200
 
147
201
  /**
148
202
  * Add a merged cell to the container.
149
203
  *
150
204
  * @param {object} mergedCellInfo The merged cell information object. Has to contain `row`, `col`, `colspan` and `rowspan` properties.
205
+ * @param {boolean} [auto=false] `true` if called internally by the plugin (usually in batch).
151
206
  * @returns {MergedCellCoords|boolean} Returns the new merged cell on success and `false` on failure.
152
207
  */
153
208
  add(mergedCellInfo) {
154
- const mergedCells = this.mergedCells;
209
+ let auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
155
210
  const row = mergedCellInfo.row;
156
211
  const column = mergedCellInfo.col;
157
212
  const rowspan = mergedCellInfo.rowspan;
158
213
  const colspan = mergedCellInfo.colspan;
159
214
  const newMergedCell = new MergedCellCoords(row, column, rowspan, colspan, this.hot._createCellCoords, this.hot._createCellRange);
160
215
  const alreadyExists = this.get(row, column);
161
- const isOverlapping = this.isOverlapping(newMergedCell);
216
+ const isOverlapping = auto ? false : this.isOverlapping(newMergedCell);
162
217
  if (!alreadyExists && !isOverlapping) {
163
218
  if (this.hot) {
164
219
  newMergedCell.normalize(this.hot);
165
220
  }
166
- mergedCells.push(newMergedCell);
221
+ this.mergedCells.push(newMergedCell);
222
+ _assertClassBrand(_MergedCellsCollection_brand, this, _addMergedCellToMatrix).call(this, newMergedCell);
167
223
  return newMergedCell;
168
224
  }
169
225
  warn(MergedCellsCollection.IS_OVERLAPPING_WARNING(newMergedCell));
@@ -179,12 +235,12 @@ class MergedCellsCollection {
179
235
  * @returns {MergedCellCoords|boolean} Returns the removed merged cell on success and `false` on failure.
180
236
  */
181
237
  remove(row, column) {
182
- const mergedCells = this.mergedCells;
183
- const wantedCollection = this.get(row, column);
184
- const wantedCollectionIndex = wantedCollection ? this.mergedCells.indexOf(wantedCollection) : -1;
185
- if (wantedCollection && wantedCollectionIndex !== -1) {
186
- mergedCells.splice(wantedCollectionIndex, 1);
187
- return wantedCollection;
238
+ const mergedCell = this.get(row, column);
239
+ const mergedCellIndex = mergedCell ? this.mergedCells.indexOf(mergedCell) : -1;
240
+ if (mergedCell && mergedCellIndex !== -1) {
241
+ this.mergedCells.splice(mergedCellIndex, 1);
242
+ _assertClassBrand(_MergedCellsCollection_brand, this, _removeMergedCellFromMatrix).call(this, mergedCell);
243
+ return mergedCell;
188
244
  }
189
245
  return false;
190
246
  }
@@ -193,55 +249,44 @@ class MergedCellsCollection {
193
249
  * Clear all the merged cells.
194
250
  */
195
251
  clear() {
196
- const mergedCells = this.mergedCells;
197
- const mergedCellParentsToClear = [];
198
- const hiddenCollectionElements = [];
199
- arrayEach(mergedCells, mergedCell => {
200
- const TD = this.hot.getCell(mergedCell.row, mergedCell.col);
201
- if (TD) {
202
- mergedCellParentsToClear.push([TD, this.get(mergedCell.row, mergedCell.col), mergedCell.row, mergedCell.col]);
203
- }
204
- });
205
- this.mergedCells.length = 0;
206
- arrayEach(mergedCellParentsToClear, (mergedCell, i) => {
207
- rangeEach(0, mergedCell.rowspan - 1, j => {
208
- rangeEach(0, mergedCell.colspan - 1, k => {
209
- if (k !== 0 || j !== 0) {
210
- const TD = this.hot.getCell(mergedCell.row + j, mergedCell.col + k);
211
- if (TD) {
212
- hiddenCollectionElements.push([TD, null, null, null]);
213
- }
252
+ arrayEach(this.mergedCells, _ref2 => {
253
+ let {
254
+ row,
255
+ col,
256
+ rowspan,
257
+ colspan
258
+ } = _ref2;
259
+ rangeEach(row, row + rowspan, r => {
260
+ rangeEach(col, col + colspan, c => {
261
+ const TD = this.hot.getCell(r, c);
262
+ if (TD) {
263
+ TD.removeAttribute('rowspan');
264
+ TD.removeAttribute('colspan');
265
+ TD.style.display = '';
214
266
  }
215
267
  });
216
268
  });
217
- mergedCellParentsToClear[i][1] = null;
218
- });
219
- arrayEach(mergedCellParentsToClear, mergedCellParents => {
220
- applySpanProperties(...mergedCellParents);
221
- });
222
- arrayEach(hiddenCollectionElements, hiddenCollectionElement => {
223
- applySpanProperties(...hiddenCollectionElement);
224
269
  });
270
+ this.mergedCells.length = 0;
271
+ this.mergedCellsMatrix = new Map();
225
272
  }
226
273
 
227
274
  /**
228
- * Check if the provided merged cell overlaps with the others in the container.
275
+ * Check if the provided merged cell overlaps with the others already added.
229
276
  *
230
277
  * @param {MergedCellCoords} mergedCell The merged cell to check against all others in the container.
231
278
  * @returns {boolean} `true` if the provided merged cell overlaps with the others, `false` otherwise.
232
279
  */
233
280
  isOverlapping(mergedCell) {
234
- const mergedCellRange = this.hot._createCellRange(this.hot._createCellCoords(0, 0), this.hot._createCellCoords(mergedCell.row, mergedCell.col), this.hot._createCellCoords(mergedCell.row + mergedCell.rowspan - 1, mergedCell.col + mergedCell.colspan - 1));
235
- let result = false;
236
- arrayEach(this.mergedCells, col => {
237
- const currentRange = this.hot._createCellRange(this.hot._createCellCoords(0, 0), this.hot._createCellCoords(col.row, col.col), this.hot._createCellCoords(col.row + col.rowspan - 1, col.col + col.colspan - 1));
238
- if (currentRange.overlaps(mergedCellRange)) {
239
- result = true;
240
- return false;
281
+ const mergedCellRange = mergedCell.getRange();
282
+ for (let i = 0; i < this.mergedCells.length; i++) {
283
+ const otherMergedCell = this.mergedCells[i];
284
+ const otherMergedCellRange = otherMergedCell.getRange();
285
+ if (otherMergedCellRange.overlaps(mergedCellRange)) {
286
+ return true;
241
287
  }
242
- return true;
243
- });
244
- return result;
288
+ }
289
+ return false;
245
290
  }
246
291
 
247
292
  /**
@@ -376,15 +421,24 @@ class MergedCellsCollection {
376
421
  default:
377
422
  }
378
423
  arrayEach(this.mergedCells, currentMerge => {
424
+ _assertClassBrand(_MergedCellsCollection_brand, this, _removeMergedCellFromMatrix).call(this, currentMerge);
379
425
  currentMerge.shift(shiftVector, index);
426
+ _assertClassBrand(_MergedCellsCollection_brand, this, _addMergedCellToMatrix).call(this, currentMerge);
380
427
  });
381
428
  rangeEachReverse(this.mergedCells.length - 1, 0, i => {
382
429
  const currentMerge = this.mergedCells[i];
383
430
  if (currentMerge && currentMerge.removed) {
384
431
  this.mergedCells.splice(this.mergedCells.indexOf(currentMerge), 1);
432
+ _assertClassBrand(_MergedCellsCollection_brand, this, _removeMergedCellFromMatrix).call(this, currentMerge);
385
433
  }
386
434
  });
387
435
  }
436
+
437
+ /**
438
+ * Adds a merged cell to the matrix.
439
+ *
440
+ * @param {MergedCellCoords} mergedCell The merged cell to add.
441
+ */
388
442
  }
389
443
  function _getNonIntersectingIndexes(range, axis) {
390
444
  let scanDirection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
@@ -405,12 +459,34 @@ function _getNonIntersectingIndexes(range, axis) {
405
459
  indexes.get(index).add(lastIndex);
406
460
  }
407
461
  }
408
- return Array.from(new Set(Array.from(indexes.entries()).filter(_ref => {
409
- let [, set] = _ref;
462
+ return Array.from(new Set(Array.from(indexes.entries()).filter(_ref3 => {
463
+ let [, set] = _ref3;
410
464
  return set.size === 1;
411
- }).flatMap(_ref2 => {
412
- let [, set] = _ref2;
465
+ }).flatMap(_ref4 => {
466
+ let [, set] = _ref4;
413
467
  return Array.from(set);
414
468
  })));
415
469
  }
470
+ function _addMergedCellToMatrix(mergedCell) {
471
+ for (let row = mergedCell.row; row < mergedCell.row + mergedCell.rowspan; row++) {
472
+ for (let col = mergedCell.col; col < mergedCell.col + mergedCell.colspan; col++) {
473
+ if (!this.mergedCellsMatrix.has(row)) {
474
+ this.mergedCellsMatrix.set(row, new Map());
475
+ }
476
+ this.mergedCellsMatrix.get(row).set(col, mergedCell);
477
+ }
478
+ }
479
+ }
480
+ /**
481
+ * Removes a merged cell from the matrix.
482
+ *
483
+ * @param {MergedCellCoords} mergedCell The merged cell to remove.
484
+ */
485
+ function _removeMergedCellFromMatrix(mergedCell) {
486
+ for (let row = mergedCell.row; row < mergedCell.row + mergedCell.rowspan; row++) {
487
+ for (let col = mergedCell.col; col < mergedCell.col + mergedCell.colspan; col++) {
488
+ this.mergedCellsMatrix.get(row).delete(col);
489
+ }
490
+ }
491
+ }
416
492
  export default MergedCellsCollection;
@@ -4,7 +4,7 @@ exports.__esModule = true;
4
4
  exports.default = toggleMergeItem;
5
5
  var C = _interopRequireWildcard(require("../../../i18n/constants"));
6
6
  var _cellCoords = _interopRequireDefault(require("../cellCoords"));
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
8
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
9
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
10
  /**
@@ -4,10 +4,10 @@ exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
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"); } }
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
9
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
10
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
11
11
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
12
12
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
13
13
  function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
@@ -1,8 +1,8 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.push.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"); } }
3
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
4
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
5
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
6
6
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
7
7
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
8
8
  function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }