handsontable 0.0.0-next-a1e4b4f-20230628 → 0.0.0-next-e697250-20230707

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 (456) hide show
  1. package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
  2. package/3rdparty/walkontable/src/cell/coords.js +50 -28
  3. package/3rdparty/walkontable/src/cell/coords.mjs +50 -28
  4. package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
  5. package/3rdparty/walkontable/src/cell/range.js +69 -36
  6. package/3rdparty/walkontable/src/cell/range.mjs +68 -35
  7. package/3rdparty/walkontable/src/event.js +3 -5
  8. package/3rdparty/walkontable/src/event.mjs +3 -5
  9. package/3rdparty/walkontable/src/overlay/_base.js +6 -7
  10. package/3rdparty/walkontable/src/overlay/_base.mjs +6 -7
  11. package/3rdparty/walkontable/src/overlay/bottom.js +6 -7
  12. package/3rdparty/walkontable/src/overlay/bottom.mjs +6 -7
  13. package/3rdparty/walkontable/src/overlay/top.js +6 -7
  14. package/3rdparty/walkontable/src/overlay/top.mjs +6 -7
  15. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +10 -12
  16. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +10 -12
  17. package/3rdparty/walkontable/src/overlays.js +55 -64
  18. package/3rdparty/walkontable/src/overlays.mjs +55 -64
  19. package/3rdparty/walkontable/src/renderer/table.js +0 -2
  20. package/3rdparty/walkontable/src/renderer/table.mjs +0 -2
  21. package/3rdparty/walkontable/src/scroll.js +20 -23
  22. package/3rdparty/walkontable/src/scroll.mjs +20 -23
  23. package/3rdparty/walkontable/src/selection/border/border.js +1 -0
  24. package/3rdparty/walkontable/src/selection/border/border.mjs +1 -0
  25. package/3rdparty/walkontable/src/selection/manager.js +40 -45
  26. package/3rdparty/walkontable/src/selection/manager.mjs +33 -38
  27. package/3rdparty/walkontable/src/selection/scanner.js +5 -4
  28. package/3rdparty/walkontable/src/selection/scanner.mjs +1 -0
  29. package/3rdparty/walkontable/src/settings.js +13 -15
  30. package/3rdparty/walkontable/src/settings.mjs +13 -15
  31. package/3rdparty/walkontable/src/table.js +23 -26
  32. package/3rdparty/walkontable/src/table.mjs +23 -26
  33. package/CHANGELOG.md +56 -0
  34. package/base.js +2 -4
  35. package/base.mjs +2 -2
  36. package/common.d.ts +1 -1
  37. package/core.d.ts +7 -9
  38. package/core.js +241 -439
  39. package/core.mjs +245 -443
  40. package/dataMap/dataMap.js +1 -0
  41. package/dataMap/dataMap.mjs +1 -0
  42. package/dataMap/dataSource.js +5 -5
  43. package/dataMap/dataSource.mjs +5 -5
  44. package/dataMap/metaManager/lazyFactoryMap.js +1 -0
  45. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -0
  46. package/dataMap/metaManager/metaLayers/cellMeta.js +1 -0
  47. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -0
  48. package/dataMap/metaManager/metaSchema.js +33 -24
  49. package/dataMap/metaManager/metaSchema.mjs +33 -24
  50. package/dist/handsontable.css +25 -3
  51. package/dist/handsontable.full.css +25 -3
  52. package/dist/handsontable.full.js +14539 -11358
  53. package/dist/handsontable.full.min.css +5 -5
  54. package/dist/handsontable.full.min.js +137 -125
  55. package/dist/handsontable.js +31414 -28455
  56. package/dist/handsontable.min.css +5 -5
  57. package/dist/handsontable.min.js +11 -3
  58. package/dist/languages/all.js +133 -0
  59. package/dist/languages/ar-AR.js +7 -0
  60. package/dist/languages/cs-CZ.js +7 -0
  61. package/dist/languages/de-CH.js +7 -0
  62. package/dist/languages/de-DE.js +7 -0
  63. package/dist/languages/en-US.js +7 -0
  64. package/dist/languages/es-MX.js +7 -0
  65. package/dist/languages/fr-FR.js +7 -0
  66. package/dist/languages/it-IT.js +7 -0
  67. package/dist/languages/ja-JP.js +7 -0
  68. package/dist/languages/ko-KR.js +7 -0
  69. package/dist/languages/lv-LV.js +7 -0
  70. package/dist/languages/nb-NO.js +7 -0
  71. package/dist/languages/nl-NL.js +7 -0
  72. package/dist/languages/pl-PL.js +7 -0
  73. package/dist/languages/pt-BR.js +7 -0
  74. package/dist/languages/ru-RU.js +7 -0
  75. package/dist/languages/sr-SP.js +7 -0
  76. package/dist/languages/zh-CN.js +7 -0
  77. package/dist/languages/zh-TW.js +7 -0
  78. package/editorManager.js +19 -89
  79. package/editorManager.mjs +24 -93
  80. package/editors/baseEditor/baseEditor.js +1 -0
  81. package/editors/baseEditor/baseEditor.mjs +1 -0
  82. package/editors/textEditor/textEditor.js +14 -20
  83. package/editors/textEditor/textEditor.mjs +16 -22
  84. package/helpers/dom/element.js +0 -11
  85. package/helpers/dom/element.mjs +0 -10
  86. package/helpers/mixed.js +2 -2
  87. package/helpers/mixed.mjs +2 -2
  88. package/helpers/number.d.ts +1 -0
  89. package/helpers/number.js +18 -0
  90. package/helpers/number.mjs +17 -0
  91. package/helpers/object.js +2 -0
  92. package/helpers/object.mjs +2 -0
  93. package/i18n/languages/ar-AR.js +7 -1
  94. package/i18n/languages/cs-CZ.js +7 -1
  95. package/i18n/languages/de-CH.js +7 -1
  96. package/i18n/languages/de-DE.js +7 -1
  97. package/i18n/languages/en-US.js +7 -1
  98. package/i18n/languages/es-MX.js +7 -1
  99. package/i18n/languages/fr-FR.js +7 -1
  100. package/i18n/languages/it-IT.js +7 -1
  101. package/i18n/languages/ja-JP.js +7 -1
  102. package/i18n/languages/ko-KR.js +7 -1
  103. package/i18n/languages/lv-LV.js +7 -1
  104. package/i18n/languages/nb-NO.js +7 -1
  105. package/i18n/languages/nl-NL.js +7 -1
  106. package/i18n/languages/pl-PL.js +7 -1
  107. package/i18n/languages/pt-BR.js +7 -1
  108. package/i18n/languages/ru-RU.js +7 -1
  109. package/i18n/languages/sr-SP.js +7 -1
  110. package/i18n/languages/zh-CN.js +7 -1
  111. package/i18n/languages/zh-TW.js +7 -1
  112. package/languages/all.js +133 -0
  113. package/languages/ar-AR.js +7 -0
  114. package/languages/cs-CZ.js +7 -0
  115. package/languages/de-CH.js +7 -0
  116. package/languages/de-DE.js +7 -0
  117. package/languages/en-US.js +7 -0
  118. package/languages/es-MX.js +7 -0
  119. package/languages/fr-FR.js +7 -0
  120. package/languages/index.js +133 -0
  121. package/languages/it-IT.js +7 -0
  122. package/languages/ja-JP.js +7 -0
  123. package/languages/ko-KR.js +7 -0
  124. package/languages/lv-LV.js +7 -0
  125. package/languages/nb-NO.js +7 -0
  126. package/languages/nl-NL.js +7 -0
  127. package/languages/pl-PL.js +7 -0
  128. package/languages/pt-BR.js +7 -0
  129. package/languages/ru-RU.js +7 -0
  130. package/languages/sr-SP.js +7 -0
  131. package/languages/zh-CN.js +7 -0
  132. package/languages/zh-TW.js +7 -0
  133. package/package.json +3 -2
  134. package/pluginHooks.d.ts +8 -2
  135. package/pluginHooks.js +116 -18
  136. package/pluginHooks.mjs +115 -15
  137. package/plugins/autoColumnSize/autoColumnSize.js +1 -0
  138. package/plugins/autoColumnSize/autoColumnSize.mjs +1 -0
  139. package/plugins/autoRowSize/autoRowSize.js +3 -2
  140. package/plugins/autoRowSize/autoRowSize.mjs +3 -2
  141. package/plugins/autofill/autofill.js +2 -2
  142. package/plugins/autofill/autofill.mjs +3 -3
  143. package/plugins/autofill/utils.js +1 -39
  144. package/plugins/autofill/utils.mjs +0 -37
  145. package/plugins/base/base.js +1 -0
  146. package/plugins/base/base.mjs +1 -0
  147. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -0
  148. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +1 -0
  149. package/plugins/collapsibleColumns/collapsibleColumns.js +82 -24
  150. package/plugins/collapsibleColumns/collapsibleColumns.mjs +82 -24
  151. package/plugins/columnSorting/columnSorting.js +51 -8
  152. package/plugins/columnSorting/columnSorting.mjs +50 -9
  153. package/plugins/columnSorting/columnStatesManager.js +1 -0
  154. package/plugins/columnSorting/columnStatesManager.mjs +1 -0
  155. package/plugins/columnSorting/index.js +4 -2
  156. package/plugins/columnSorting/index.mjs +1 -1
  157. package/plugins/columnSorting/rootComparator.js +1 -0
  158. package/plugins/columnSorting/rootComparator.mjs +1 -0
  159. package/plugins/comments/commentEditor.js +1 -0
  160. package/plugins/comments/commentEditor.mjs +1 -0
  161. package/plugins/comments/comments.js +289 -224
  162. package/plugins/comments/comments.mjs +297 -234
  163. package/plugins/comments/contextMenuItem/addEditComment.js +51 -0
  164. package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
  165. package/plugins/comments/contextMenuItem/readOnlyComment.js +63 -0
  166. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +55 -0
  167. package/plugins/comments/contextMenuItem/removeComment.js +48 -0
  168. package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
  169. package/plugins/contextMenu/contextMenu.d.ts +1 -1
  170. package/plugins/contextMenu/contextMenu.js +81 -29
  171. package/plugins/contextMenu/contextMenu.mjs +82 -30
  172. package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
  173. package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
  174. package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
  175. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
  176. package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
  177. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
  178. package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
  179. package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
  180. package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
  181. package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
  182. package/plugins/contextMenu/predefinedItems/removeColumn.js +8 -5
  183. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +6 -3
  184. package/plugins/contextMenu/predefinedItems/removeRow.js +8 -5
  185. package/plugins/contextMenu/predefinedItems/removeRow.mjs +6 -3
  186. package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
  187. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
  188. package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
  189. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
  190. package/plugins/contextMenu/utils.js +25 -16
  191. package/plugins/contextMenu/utils.mjs +24 -15
  192. package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
  193. package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
  194. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
  195. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
  196. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
  197. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
  198. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
  199. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
  200. package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
  201. package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
  202. package/plugins/copyPaste/copyPaste.js +100 -14
  203. package/plugins/copyPaste/copyPaste.mjs +100 -14
  204. package/plugins/copyPaste/copyableRanges.js +25 -31
  205. package/plugins/copyPaste/copyableRanges.mjs +18 -24
  206. package/plugins/copyPaste/focusableElement.js +219 -0
  207. package/plugins/copyPaste/focusableElement.mjs +213 -0
  208. package/plugins/customBorders/customBorders.d.ts +2 -0
  209. package/plugins/customBorders/customBorders.js +19 -50
  210. package/plugins/customBorders/customBorders.mjs +19 -50
  211. package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
  212. package/plugins/dropdownMenu/dropdownMenu.js +94 -30
  213. package/plugins/dropdownMenu/dropdownMenu.mjs +94 -30
  214. package/plugins/exportFile/dataProvider.js +1 -0
  215. package/plugins/exportFile/dataProvider.mjs +1 -0
  216. package/plugins/filters/component/value.js +1 -0
  217. package/plugins/filters/component/value.mjs +1 -0
  218. package/plugins/filters/condition/beginsWith.js +1 -0
  219. package/plugins/filters/condition/beginsWith.mjs +1 -0
  220. package/plugins/filters/condition/between.js +1 -0
  221. package/plugins/filters/condition/between.mjs +1 -0
  222. package/plugins/filters/condition/byValue.js +1 -0
  223. package/plugins/filters/condition/byValue.mjs +1 -0
  224. package/plugins/filters/condition/contains.js +1 -0
  225. package/plugins/filters/condition/contains.mjs +1 -0
  226. package/plugins/filters/condition/date/after.js +1 -0
  227. package/plugins/filters/condition/date/after.mjs +1 -0
  228. package/plugins/filters/condition/date/before.js +1 -0
  229. package/plugins/filters/condition/date/before.mjs +1 -0
  230. package/plugins/filters/condition/endsWith.js +1 -0
  231. package/plugins/filters/condition/endsWith.mjs +1 -0
  232. package/plugins/filters/condition/equal.js +1 -0
  233. package/plugins/filters/condition/equal.mjs +1 -0
  234. package/plugins/filters/condition/greaterThan.js +1 -0
  235. package/plugins/filters/condition/greaterThan.mjs +1 -0
  236. package/plugins/filters/condition/greaterThanOrEqual.js +1 -0
  237. package/plugins/filters/condition/greaterThanOrEqual.mjs +1 -0
  238. package/plugins/filters/condition/lessThan.js +1 -0
  239. package/plugins/filters/condition/lessThan.mjs +1 -0
  240. package/plugins/filters/condition/lessThanOrEqual.js +1 -0
  241. package/plugins/filters/condition/lessThanOrEqual.mjs +1 -0
  242. package/plugins/filters/conditionCollection.js +1 -0
  243. package/plugins/filters/conditionCollection.mjs +1 -0
  244. package/plugins/filters/filters.js +68 -42
  245. package/plugins/filters/filters.mjs +67 -41
  246. package/plugins/filters/ui/multipleSelect.js +1 -0
  247. package/plugins/filters/ui/multipleSelect.mjs +1 -0
  248. package/plugins/formulas/formulas.js +191 -168
  249. package/plugins/formulas/formulas.mjs +191 -168
  250. package/plugins/formulas/indexSyncer/axisSyncer.js +379 -0
  251. package/plugins/formulas/indexSyncer/axisSyncer.mjs +374 -0
  252. package/plugins/formulas/indexSyncer/index.js +225 -0
  253. package/plugins/formulas/indexSyncer/index.mjs +219 -0
  254. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -0
  255. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +1 -0
  256. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -0
  257. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +1 -0
  258. package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -0
  259. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +1 -0
  260. package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -0
  261. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +1 -0
  262. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -0
  263. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -0
  264. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -0
  265. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -0
  266. package/plugins/manualColumnResize/manualColumnResize.js +36 -5
  267. package/plugins/manualColumnResize/manualColumnResize.mjs +36 -5
  268. package/plugins/manualRowMove/manualRowMove.js +31 -12
  269. package/plugins/manualRowMove/manualRowMove.mjs +32 -13
  270. package/plugins/manualRowResize/manualRowResize.js +40 -9
  271. package/plugins/manualRowResize/manualRowResize.mjs +40 -9
  272. package/plugins/mergeCells/calculations/autofill.js +1 -0
  273. package/plugins/mergeCells/calculations/autofill.mjs +1 -0
  274. package/plugins/mergeCells/cellsCollection.js +1 -0
  275. package/plugins/mergeCells/cellsCollection.mjs +1 -0
  276. package/plugins/mergeCells/mergeCells.js +6 -2
  277. package/plugins/mergeCells/mergeCells.mjs +6 -2
  278. package/plugins/multiColumnSorting/multiColumnSorting.js +42 -3
  279. package/plugins/multiColumnSorting/multiColumnSorting.mjs +42 -3
  280. package/plugins/multiColumnSorting/rootComparator.js +1 -0
  281. package/plugins/multiColumnSorting/rootComparator.mjs +1 -0
  282. package/plugins/nestedHeaders/nestedHeaders.js +129 -6
  283. package/plugins/nestedHeaders/nestedHeaders.mjs +129 -6
  284. package/plugins/nestedHeaders/stateManager/headersTree.js +24 -26
  285. package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -23
  286. package/plugins/nestedHeaders/stateManager/index.js +40 -3
  287. package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
  288. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +1 -0
  289. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +2 -1
  290. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +1 -0
  291. package/plugins/nestedHeaders/utils/ghostTable.js +30 -35
  292. package/plugins/nestedHeaders/utils/ghostTable.mjs +30 -35
  293. package/plugins/nestedRows/data/dataManager.js +1 -0
  294. package/plugins/nestedRows/data/dataManager.mjs +1 -0
  295. package/plugins/nestedRows/nestedRows.js +53 -7
  296. package/plugins/nestedRows/nestedRows.mjs +53 -7
  297. package/plugins/nestedRows/ui/collapsing.js +1 -0
  298. package/plugins/nestedRows/ui/collapsing.mjs +1 -0
  299. package/plugins/nestedRows/utils/rowMoveController.js +1 -0
  300. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -0
  301. package/plugins/persistentState/storage.js +1 -0
  302. package/plugins/persistentState/storage.mjs +1 -0
  303. package/plugins/registry.js +4 -1
  304. package/plugins/registry.mjs +1 -0
  305. package/plugins/undoRedo/undoRedo.js +1 -1
  306. package/plugins/undoRedo/undoRedo.mjs +1 -1
  307. package/renderers/baseRenderer/baseRenderer.js +0 -3
  308. package/renderers/baseRenderer/baseRenderer.mjs +0 -3
  309. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
  310. package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
  311. package/selection/highlight/highlight.js +120 -98
  312. package/selection/highlight/highlight.mjs +118 -96
  313. package/selection/highlight/visualSelection.js +30 -17
  314. package/selection/highlight/visualSelection.mjs +30 -17
  315. package/selection/mouseEventHandler.js +1 -1
  316. package/selection/mouseEventHandler.mjs +1 -1
  317. package/selection/range.js +8 -8
  318. package/selection/range.mjs +8 -8
  319. package/selection/selection.js +246 -153
  320. package/selection/selection.mjs +247 -154
  321. package/selection/transformation.js +233 -96
  322. package/selection/transformation.mjs +230 -93
  323. package/selection/utils.js +12 -35
  324. package/selection/utils.mjs +13 -35
  325. package/settings.d.ts +2 -1
  326. package/shortcutContexts/commands/editor/closeAndSave.js +15 -0
  327. package/shortcutContexts/commands/editor/closeAndSave.mjs +10 -0
  328. package/shortcutContexts/commands/editor/closeWithoutSaving.js +13 -0
  329. package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
  330. package/shortcutContexts/commands/editor/fastOpen.js +16 -0
  331. package/shortcutContexts/commands/editor/fastOpen.mjs +11 -0
  332. package/shortcutContexts/commands/editor/index.js +16 -0
  333. package/shortcutContexts/commands/editor/index.mjs +12 -0
  334. package/shortcutContexts/commands/editor/open.js +29 -0
  335. package/shortcutContexts/commands/editor/open.mjs +24 -0
  336. package/shortcutContexts/commands/emptySelectedCells.js +12 -0
  337. package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
  338. package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
  339. package/shortcutContexts/commands/extendCellsSelection/down.mjs +10 -0
  340. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
  341. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +16 -0
  342. package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
  343. package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
  344. package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
  345. package/shortcutContexts/commands/extendCellsSelection/left.mjs +10 -0
  346. package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
  347. package/shortcutContexts/commands/extendCellsSelection/right.mjs +10 -0
  348. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
  349. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +14 -0
  350. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +22 -0
  351. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +17 -0
  352. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +17 -0
  353. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +12 -0
  354. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +17 -0
  355. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +12 -0
  356. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +40 -0
  357. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +35 -0
  358. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +40 -0
  359. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +35 -0
  360. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +22 -0
  361. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +17 -0
  362. package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
  363. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +14 -0
  364. package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
  365. package/shortcutContexts/commands/extendCellsSelection/up.mjs +10 -0
  366. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
  367. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +16 -0
  368. package/shortcutContexts/commands/index.js +53 -0
  369. package/shortcutContexts/commands/index.mjs +49 -0
  370. package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
  371. package/shortcutContexts/commands/moveCellSelection/down.mjs +7 -0
  372. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +29 -0
  373. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +24 -0
  374. package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
  375. package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
  376. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +13 -0
  377. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
  378. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +13 -0
  379. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
  380. package/shortcutContexts/commands/moveCellSelection/left.js +11 -0
  381. package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
  382. package/shortcutContexts/commands/moveCellSelection/right.js +11 -0
  383. package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
  384. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
  385. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +11 -0
  386. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
  387. package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +12 -0
  388. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
  389. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +8 -0
  390. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
  391. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +11 -0
  392. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +36 -0
  393. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +31 -0
  394. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +36 -0
  395. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +31 -0
  396. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
  397. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +11 -0
  398. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
  399. package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +13 -0
  400. package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
  401. package/shortcutContexts/commands/moveCellSelection/up.mjs +7 -0
  402. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +29 -0
  403. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +24 -0
  404. package/shortcutContexts/commands/populateSelectedCellsData.js +35 -0
  405. package/shortcutContexts/commands/populateSelectedCellsData.mjs +30 -0
  406. package/shortcutContexts/commands/scrollToFocusedCell.js +38 -0
  407. package/shortcutContexts/commands/scrollToFocusedCell.mjs +33 -0
  408. package/shortcutContexts/commands/selectAll.js +11 -0
  409. package/shortcutContexts/commands/selectAll.mjs +6 -0
  410. package/shortcutContexts/constants.js +19 -0
  411. package/shortcutContexts/constants.mjs +12 -0
  412. package/shortcutContexts/editor.js +29 -0
  413. package/shortcutContexts/editor.mjs +25 -0
  414. package/shortcutContexts/grid.js +252 -0
  415. package/shortcutContexts/grid.mjs +248 -0
  416. package/shortcutContexts/index.js +29 -0
  417. package/shortcutContexts/index.mjs +15 -0
  418. package/shortcuts/context.js +1 -0
  419. package/shortcuts/context.mjs +1 -0
  420. package/shortcuts/manager.js +2 -0
  421. package/shortcuts/manager.mjs +2 -0
  422. package/shortcuts/recorder.js +2 -2
  423. package/shortcuts/recorder.mjs +2 -2
  424. package/shortcuts/utils.js +21 -5
  425. package/shortcuts/utils.mjs +20 -4
  426. package/tableView.js +112 -82
  427. package/tableView.mjs +112 -82
  428. package/translations/changesObservable/observable.js +41 -46
  429. package/translations/changesObservable/observable.mjs +36 -41
  430. package/translations/changesObservable/observer.js +1 -1
  431. package/translations/indexMapper.d.ts +0 -2
  432. package/translations/indexMapper.js +38 -64
  433. package/translations/indexMapper.mjs +39 -64
  434. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
  435. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
  436. package/translations/maps/utils/indexesSequence.js +1 -0
  437. package/translations/maps/utils/indexesSequence.mjs +1 -0
  438. package/translations/maps/utils/physicallyIndexed.js +1 -0
  439. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  440. package/utils/dataStructures/priorityMap.js +1 -0
  441. package/utils/dataStructures/priorityMap.mjs +1 -0
  442. package/utils/dataStructures/tree.js +16 -18
  443. package/utils/dataStructures/tree.mjs +16 -18
  444. package/utils/dataStructures/uniqueMap.js +1 -0
  445. package/utils/dataStructures/uniqueMap.mjs +1 -0
  446. package/utils/dataStructures/uniqueSet.js +1 -0
  447. package/utils/dataStructures/uniqueSet.mjs +1 -0
  448. package/utils/ghostTable.js +1 -0
  449. package/utils/ghostTable.mjs +1 -0
  450. package/utils/parseTable.js +5 -1
  451. package/utils/parseTable.mjs +5 -1
  452. package/utils/staticRegister.js +1 -0
  453. package/utils/staticRegister.mjs +1 -0
  454. package/focusManager.d.ts +0 -12
  455. package/focusManager.js +0 -275
  456. package/focusManager.mjs +0 -270
@@ -2,8 +2,6 @@ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableTo
2
2
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
3
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
4
4
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
5
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
8
6
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9
7
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -37,12 +35,10 @@ import "core-js/modules/es.reflect.construct.js";
37
35
  import "core-js/modules/es.reflect.get.js";
38
36
  import "core-js/modules/es.object.get-own-property-descriptor.js";
39
37
  import "core-js/modules/es.symbol.iterator.js";
38
+ import "core-js/modules/es.regexp.to-string.js";
40
39
  import "core-js/modules/es.function.name.js";
41
40
  import "core-js/modules/es.array.from.js";
42
41
  import "core-js/modules/es.regexp.exec.js";
43
- import "core-js/modules/es.object.keys.js";
44
- import "core-js/modules/es.array.filter.js";
45
- import "core-js/modules/es.object.get-own-property-descriptors.js";
46
42
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
47
43
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
48
44
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
@@ -76,10 +72,10 @@ import { getEngineSettingsWithOverrides, haveEngineSettingsChanged } from "./eng
76
72
  import { isArrayOfArrays } from "../../helpers/data.mjs";
77
73
  import { toUpperCaseFirst } from "../../helpers/string.mjs";
78
74
  import Hooks from "../../pluginHooks.mjs";
75
+ import IndexSyncer from "./indexSyncer/index.mjs";
79
76
  export var PLUGIN_KEY = 'formulas';
80
77
  export var SETTING_KEYS = ['maxRows', 'maxColumns', 'language'];
81
78
  export var PLUGIN_PRIORITY = 260;
82
- var ROW_MOVE_UNDO_REDO_NAME = 'row_move';
83
79
  Hooks.getSingleton().register('afterNamedExpressionAdded');
84
80
  Hooks.getSingleton().register('afterNamedExpressionRemoved');
85
81
  Hooks.getSingleton().register('afterSheetAdded');
@@ -185,6 +181,24 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
185
181
  * @type {string|null}
186
182
  */
187
183
  _defineProperty(_assertThisInitialized(_this), "sheetName", null);
184
+ /**
185
+ * Index synchronizer responsible for manipulating with some general options related to indexes synchronization.
186
+ *
187
+ * @type {IndexSyncer|null}
188
+ */
189
+ _defineProperty(_assertThisInitialized(_this), "indexSyncer", null);
190
+ /**
191
+ * Index synchronizer responsible for syncing the order of HOT and HF's data for the axis of the rows.
192
+ *
193
+ * @type {AxisSyncer|null}
194
+ */
195
+ _defineProperty(_assertThisInitialized(_this), "rowAxisSyncer", null);
196
+ /**
197
+ * Index synchronizer responsible for syncing the order of HOT and HF's data for the axis of the columns.
198
+ *
199
+ * @type {AxisSyncer|null}
200
+ */
201
+ _defineProperty(_assertThisInitialized(_this), "columnAxisSyncer", null);
188
202
  return _this;
189
203
  }
190
204
  _createClass(Formulas, [{
@@ -292,6 +306,41 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
292
306
  this.addHook('afterRemoveCol', function () {
293
307
  return _this8.onAfterRemoveCol.apply(_this8, arguments);
294
308
  });
309
+ this.indexSyncer = new IndexSyncer(this.hot.rowIndexMapper, this.hot.columnIndexMapper, function (postponedAction) {
310
+ _this8.hot.addHookOnce('init', function () {
311
+ // Engine is initialized after executing callback to `afterLoadData` hook. Thus, some actions on indexes should
312
+ // be postponed.
313
+ postponedAction();
314
+ });
315
+ });
316
+ this.rowAxisSyncer = this.indexSyncer.getForAxis('row');
317
+ this.columnAxisSyncer = this.indexSyncer.getForAxis('column');
318
+ this.hot.addHook('afterRowSequenceChange', this.rowAxisSyncer.getIndexesChangeSyncMethod());
319
+ this.hot.addHook('afterColumnSequenceChange', this.columnAxisSyncer.getIndexesChangeSyncMethod());
320
+ this.hot.addHook('beforeRowMove', function (movedRows, finalIndex, _, movePossible) {
321
+ _this8.rowAxisSyncer.storeMovesInformation(movedRows, finalIndex, movePossible);
322
+ });
323
+ this.hot.addHook('beforeColumnMove', function (movedColumns, finalIndex, _, movePossible) {
324
+ _this8.columnAxisSyncer.storeMovesInformation(movedColumns, finalIndex, movePossible);
325
+ });
326
+ this.hot.addHook('afterRowMove', function (movedRows, finalIndex, dropIndex, movePossible, orderChanged) {
327
+ _this8.rowAxisSyncer.calculateAndSyncMoves(movePossible, orderChanged);
328
+ });
329
+ this.hot.addHook('afterColumnMove', function (movedColumns, finalIndex, dropIndex, movePossible, orderChanged) {
330
+ _this8.columnAxisSyncer.calculateAndSyncMoves(movePossible, orderChanged);
331
+ });
332
+ this.hot.addHook('beforeColumnFreeze', function (column, freezePerformed) {
333
+ _this8.columnAxisSyncer.storeMovesInformation([column], _this8.hot.getSettings().fixedColumnsStart, freezePerformed);
334
+ });
335
+ this.hot.addHook('afterColumnFreeze', function (_, freezePerformed) {
336
+ _this8.columnAxisSyncer.calculateAndSyncMoves(freezePerformed, freezePerformed);
337
+ });
338
+ this.hot.addHook('beforeColumnUnfreeze', function (column, unfreezePerformed) {
339
+ _this8.columnAxisSyncer.storeMovesInformation([column], _this8.hot.getSettings().fixedColumnsStart - 1, unfreezePerformed);
340
+ });
341
+ this.hot.addHook('afterColumnUnfreeze', function (_, unfreezePerformed) {
342
+ _this8.columnAxisSyncer.calculateAndSyncMoves(unfreezePerformed, unfreezePerformed);
343
+ });
295
344
 
296
345
  // TODO: Actions related to overwriting dates from HOT format to HF default format are done as callback to this
297
346
  // hook, because some hooks, such as `afterLoadData` doesn't have information about composed cell properties.
@@ -301,22 +350,22 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
301
350
  });
302
351
 
303
352
  // Handling undo actions on data just using HyperFormula's UndoRedo mechanism
304
- this.addHook('beforeUndo', function (action) {
305
- // TODO: Move action isn't handled by HyperFormula.
306
- if ((action === null || action === void 0 ? void 0 : action.actionType) === ROW_MOVE_UNDO_REDO_NAME) {
307
- return;
308
- }
353
+ this.addHook('beforeUndo', function () {
354
+ _this8.indexSyncer.setPerformUndo(true);
309
355
  _this8.engine.undo();
310
356
  });
311
357
 
312
358
  // Handling redo actions on data just using HyperFormula's UndoRedo mechanism
313
- this.addHook('beforeRedo', function (action) {
314
- // TODO: Move action isn't handled by HyperFormula.
315
- if ((action === null || action === void 0 ? void 0 : action.actionType) === ROW_MOVE_UNDO_REDO_NAME) {
316
- return;
317
- }
359
+ this.addHook('beforeRedo', function () {
360
+ _this8.indexSyncer.setPerformRedo(true);
318
361
  _this8.engine.redo();
319
362
  });
363
+ this.addHook('afterUndo', function () {
364
+ _this8.indexSyncer.setPerformUndo(false);
365
+ });
366
+ this.addHook('afterUndo', function () {
367
+ _this8.indexSyncer.setPerformRedo(false);
368
+ });
320
369
  this.addHook('afterDetachChild', function () {
321
370
  return _this8.onAfterDetachChild.apply(_this8, arguments);
322
371
  });
@@ -401,63 +450,6 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
401
450
  _get(_getPrototypeOf(Formulas.prototype), "destroy", this).call(this);
402
451
  }
403
452
 
404
- /**
405
- * Helper function for `toPhysicalRowPosition` and `toPhysicalColumnPosition`.
406
- *
407
- * @private
408
- * @param {number} visualIndex Visual entry index.
409
- * @param {number} physicalIndex Physical entry index.
410
- * @param {number} entriesCount Visual entries count.
411
- * @param {number} sourceEntriesCount Source entries count.
412
- * @param {boolean} contained `true` if it should return only indexes within boundaries of the table (basically
413
- * `toPhysical` alias.
414
- * @returns {*}
415
- */
416
- }, {
417
- key: "getPhysicalIndexPosition",
418
- value: function getPhysicalIndexPosition(visualIndex, physicalIndex, entriesCount, sourceEntriesCount, contained) {
419
- if (!contained) {
420
- if (visualIndex >= entriesCount) {
421
- return sourceEntriesCount + (visualIndex - entriesCount);
422
- }
423
- }
424
- return physicalIndex;
425
- }
426
-
427
- /**
428
- * Returns the physical row index. The difference between this and Core's `toPhysical` is that it doesn't return
429
- * `null` on rows with indexes higher than the number of rows.
430
- *
431
- * @private
432
- * @param {number} row Visual row index.
433
- * @param {boolean} [contained] `true` if it should return only indexes within boundaries of the table (basically
434
- * `toPhysical` alias.
435
- * @returns {number} The physical row index.
436
- */
437
- }, {
438
- key: "toPhysicalRowPosition",
439
- value: function toPhysicalRowPosition(row) {
440
- var contained = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
441
- return this.getPhysicalIndexPosition(row, this.hot.toPhysicalRow(row), this.hot.countRows(), this.hot.countSourceRows(), contained);
442
- }
443
-
444
- /**
445
- * Returns the physical column index. The difference between this and Core's `toPhysical` is that it doesn't return
446
- * `null` on columns with indexes higher than the number of columns.
447
- *
448
- * @private
449
- * @param {number} column Visual column index.
450
- * @param {boolean} [contained] `true` if it should return only indexes within boundaries of the table (basically
451
- * `toPhysical` alias.
452
- * @returns {number} The physical column index.
453
- */
454
- }, {
455
- key: "toPhysicalColumnPosition",
456
- value: function toPhysicalColumnPosition(column) {
457
- var contained = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
458
- return this.getPhysicalIndexPosition(column, this.hot.toPhysicalColumn(column), this.hot.countCols(), this.hot.countSourceCols(), contained);
459
- }
460
-
461
453
  /**
462
454
  * Add a sheet to the shared HyperFormula instance.
463
455
  *
@@ -528,8 +520,8 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
528
520
  if (physicalRow !== null && physicalColumn !== null) {
529
521
  return this.engine.getCellType({
530
522
  sheet: sheet,
531
- row: physicalRow,
532
- col: physicalColumn
523
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(row),
524
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(column)
533
525
  });
534
526
  } else {
535
527
  // Should return `EMPTY` when out of bounds (according to the test cases).
@@ -549,15 +541,10 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
549
541
  key: "isFormulaCellType",
550
542
  value: function isFormulaCellType(row, column) {
551
543
  var sheet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.sheetId;
552
- var physicalRow = this.hot.toPhysicalRow(row);
553
- var physicalColumn = this.hot.toPhysicalColumn(column);
554
- if (physicalRow === null || physicalColumn === null) {
555
- return false;
556
- }
557
544
  return this.engine.doesCellHaveFormula({
558
545
  sheet: sheet,
559
- row: physicalRow,
560
- col: physicalColumn
546
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(row),
547
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(column)
561
548
  });
562
549
  }
563
550
 
@@ -622,11 +609,9 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
622
609
  var _ref8 = (_change$address3 = change.address) !== null && _change$address3 !== void 0 ? _change$address3 : {},
623
610
  row = _ref8.row,
624
611
  col = _ref8.col;
625
- var visualRow = isDefined(row) ? _this12.hot.toVisualRow(row) : null;
626
- var visualColumn = isDefined(col) ? _this12.hot.toVisualColumn(col) : null;
627
612
 
628
613
  // Don't try to validate cells outside of the visual part of the table.
629
- if (visualRow === null || visualColumn === null) {
614
+ if (isDefined(row) === false || isDefined(col) === false || row >= _this12.hot.countRows() || col >= _this12.hot.countCols()) {
630
615
  return;
631
616
  }
632
617
 
@@ -645,7 +630,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
645
630
  }
646
631
 
647
632
  // It will just re-render certain cell when necessary.
648
- boundHot.validateCell(boundHot.getDataAtCell(visualRow, visualColumn), boundHot.getCellMeta(visualRow, visualColumn), function () {});
633
+ boundHot.validateCell(boundHot.getDataAtCell(row, col), boundHot.getCellMeta(row, col), function () {});
649
634
  }
650
635
  });
651
636
  }
@@ -663,8 +648,8 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
663
648
  key: "syncChangeWithEngine",
664
649
  value: function syncChangeWithEngine(row, column, newValue) {
665
650
  var address = {
666
- row: this.toPhysicalRowPosition(row),
667
- col: this.toPhysicalColumnPosition(column),
651
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(row),
652
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(column),
668
653
  sheet: this.sheetId
669
654
  };
670
655
  if (!this.engine.isItPossibleToSetCellContents(address)) {
@@ -700,8 +685,8 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
700
685
  var visualColumn = this.hot.propToCol(prop);
701
686
  if (this.isFormulaCellType(visualRow, visualColumn)) {
702
687
  var address = {
703
- row: this.hot.toPhysicalRow(visualRow),
704
- col: this.hot.toPhysicalColumn(visualColumn),
688
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),
689
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),
705
690
  sheet: this.sheetId
706
691
  };
707
692
  var cellMeta = this.hot.getCellMeta(visualRow, visualColumn);
@@ -730,19 +715,41 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
730
715
  }, {
731
716
  key: "onBeforeAutofill",
732
717
  value: function onBeforeAutofill(fillData, sourceRange, targetRange) {
733
- var _this13 = this;
734
- var withSheetId = function withSheetId(range) {
735
- return _objectSpread(_objectSpread({}, range), {}, {
736
- sheet: _this13.sheetId
737
- });
738
- };
718
+ var _sourceRange$getTopSt = sourceRange.getTopStartCorner(),
719
+ sourceTopStartRow = _sourceRange$getTopSt.row,
720
+ sourceTopStartColumn = _sourceRange$getTopSt.col;
721
+ var _sourceRange$getBotto = sourceRange.getBottomEndCorner(),
722
+ sourceBottomEndRow = _sourceRange$getBotto.row,
723
+ sourceBottomEndColumn = _sourceRange$getBotto.col;
724
+ var _targetRange$getTopSt = targetRange.getTopStartCorner(),
725
+ targetTopStartRow = _targetRange$getTopSt.row,
726
+ targetTopStartColumn = _targetRange$getTopSt.col;
727
+ var _targetRange$getBotto = targetRange.getBottomEndCorner(),
728
+ targetBottomEndRow = _targetRange$getBotto.row,
729
+ targetBottomEndColumn = _targetRange$getBotto.col;
739
730
  var engineSourceRange = {
740
- start: withSheetId(sourceRange.getTopStartCorner()),
741
- end: withSheetId(sourceRange.getBottomEndCorner())
731
+ start: {
732
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(sourceTopStartRow),
733
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(sourceTopStartColumn),
734
+ sheet: this.sheetId
735
+ },
736
+ end: {
737
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(sourceBottomEndRow),
738
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(sourceBottomEndColumn),
739
+ sheet: this.sheetId
740
+ }
742
741
  };
743
742
  var engineTargetRange = {
744
- start: withSheetId(targetRange.getTopStartCorner()),
745
- end: withSheetId(targetRange.getBottomEndCorner())
743
+ start: {
744
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(targetTopStartRow),
745
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(targetTopStartColumn),
746
+ sheet: this.sheetId
747
+ },
748
+ end: {
749
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(targetBottomEndRow),
750
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(targetBottomEndColumn),
751
+ sheet: this.sheetId
752
+ }
746
753
  };
747
754
 
748
755
  // Blocks the autofill operation if HyperFormula says that at least one of
@@ -808,19 +815,19 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
808
815
  }, {
809
816
  key: "onAfterCellMetaReset",
810
817
  value: function onAfterCellMetaReset() {
811
- var _this14 = this;
818
+ var _this13 = this;
812
819
  var sourceDataArray = this.hot.getSourceDataArray();
813
820
  var valueChanged = false;
814
821
  sourceDataArray.forEach(function (rowData, rowIndex) {
815
822
  rowData.forEach(function (cellValue, columnIndex) {
816
- var cellMeta = _this14.hot.getCellMeta(rowIndex, columnIndex);
823
+ var cellMeta = _this13.hot.getCellMeta(rowIndex, columnIndex);
817
824
  var dateFormat = cellMeta.dateFormat;
818
825
  if (isDate(cellValue, cellMeta.type)) {
819
826
  valueChanged = true;
820
827
  if (isDateValid(cellValue, dateFormat)) {
821
828
  // Rewriting date in HOT format to HF format.
822
829
  sourceDataArray[rowIndex][columnIndex] = getDateInHfFormat(cellValue, dateFormat);
823
- } else if (_this14.isFormulaCellType(rowIndex, columnIndex) === false) {
830
+ } else if (_this13.isFormulaCellType(rowIndex, columnIndex) === false) {
824
831
  // Escaping value from date parsing using "'" sign (HF feature).
825
832
  sourceDataArray[rowIndex][columnIndex] = "'".concat(cellValue);
826
833
  }
@@ -855,6 +862,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
855
862
  if (this.engine.isItPossibleToReplaceSheetContent(this.sheetId, sourceDataArray)) {
856
863
  _classPrivateFieldSet(this, _internalOperationPending, true);
857
864
  var dependentCells = this.engine.setSheetContent(this.sheetId, sourceDataArray);
865
+ this.indexSyncer.setupSyncEndpoint(this.engine, this.sheetId);
858
866
  this.renderDependentSheets(dependentCells);
859
867
  _classPrivateFieldSet(this, _internalOperationPending, false);
860
868
  }
@@ -867,24 +875,27 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
867
875
  * `modifyData` hook callback.
868
876
  *
869
877
  * @private
870
- * @param {number} row Physical row height.
871
- * @param {number} column Physical column index.
878
+ * @param {number} physicalRow Physical row index.
879
+ * @param {number} visualColumn Visual column index.
872
880
  * @param {object} valueHolder Object which contains original value which can be modified by overwriting `.value`
873
881
  * property.
874
882
  * @param {string} ioMode String which indicates for what operation hook is fired (`get` or `set`).
875
883
  */
876
884
  }, {
877
885
  key: "onModifyData",
878
- value: function onModifyData(row, column, valueHolder, ioMode) {
886
+ value: function onModifyData(physicalRow, visualColumn, valueHolder, ioMode) {
879
887
  if (ioMode !== 'get' || _classPrivateFieldGet(this, _internalOperationPending) || this.sheetName === null || !this.engine.doesSheetExist(this.sheetName)) {
880
888
  return;
881
889
  }
882
- var visualRow = this.hot.toVisualRow(row);
890
+ var visualRow = this.hot.toVisualRow(physicalRow);
891
+ if (visualRow === null || visualColumn === null) {
892
+ return;
893
+ }
883
894
 
884
895
  // `column` is here as visual index because of inconsistencies related to hook execution in `src/dataMap`.
885
- var isFormulaCellType = this.isFormulaCellType(visualRow, column);
896
+ var isFormulaCellType = this.isFormulaCellType(visualRow, visualColumn);
886
897
  if (!isFormulaCellType) {
887
- var cellType = this.getCellType(visualRow, column);
898
+ var cellType = this.getCellType(visualRow, visualColumn);
888
899
  if (cellType !== 'ARRAY') {
889
900
  if (isEscapedFormulaExpression(valueHolder.value)) {
890
901
  valueHolder.value = unescapeFormulaExpression(valueHolder.value);
@@ -892,15 +903,13 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
892
903
  return;
893
904
  }
894
905
  }
895
-
896
- // `toPhysicalColumn` is here because of inconsistencies related to hook execution in `DataMap`.
897
906
  var address = {
898
- row: row,
899
- col: this.toPhysicalColumnPosition(column),
907
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),
908
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),
900
909
  sheet: this.sheetId
901
910
  };
902
911
  var cellValue = this.engine.getCellValue(address); // Date as an integer (Excel like date).
903
- var cellMeta = this.hot.getCellMeta(row, column);
912
+ var cellMeta = this.hot.getCellMeta(visualRow, visualColumn);
904
913
  if (cellMeta.type === 'date' && isNumeric(cellValue)) {
905
914
  cellValue = getDateFromExcelDate(cellValue, cellMeta.dateFormat);
906
915
  }
@@ -928,6 +937,9 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
928
937
  }
929
938
  var visualRow = this.hot.toVisualRow(row);
930
939
  var visualColumn = this.hot.propToCol(columnOrProp);
940
+ if (visualRow === null || visualColumn === null) {
941
+ return;
942
+ }
931
943
 
932
944
  // `column` is here as visual index because of inconsistencies related to hook execution in `src/dataMap`.
933
945
  var isFormulaCellType = this.isFormulaCellType(visualRow, visualColumn);
@@ -947,9 +959,8 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
947
959
  return;
948
960
  }
949
961
  var address = {
950
- row: row,
951
- // Workaround for inconsistencies in `src/dataSource.js`
952
- col: this.toPhysicalColumnPosition(visualColumn),
962
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),
963
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),
953
964
  sheet: this.sheetId
954
965
  };
955
966
  valueHolder.value = this.engine.getCellSerialized(address);
@@ -966,7 +977,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
966
977
  }, {
967
978
  key: "onAfterSetDataAtCell",
968
979
  value: function onAfterSetDataAtCell(changes, source) {
969
- var _this15 = this;
980
+ var _this14 = this;
970
981
  if (isBlockedSource(source)) {
971
982
  return;
972
983
  }
@@ -975,21 +986,21 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
975
986
  var dependentCells = this.engine.batch(function () {
976
987
  changes.forEach(function (_ref9) {
977
988
  var _ref10 = _slicedToArray(_ref9, 4),
978
- row = _ref10[0],
989
+ visualRow = _ref10[0],
979
990
  prop = _ref10[1],
980
991
  newValue = _ref10[3];
981
- var column = _this15.hot.propToCol(prop);
982
- var physicalRow = _this15.hot.toPhysicalRow(row);
983
- var physicalColumn = _this15.hot.toPhysicalColumn(column);
992
+ var visualColumn = _this14.hot.propToCol(prop);
993
+ var physicalRow = _this14.hot.toPhysicalRow(visualRow);
994
+ var physicalColumn = _this14.hot.toPhysicalColumn(visualColumn);
984
995
  var address = {
985
- row: physicalRow,
986
- col: physicalColumn,
987
- sheet: _this15.sheetId
996
+ row: _this14.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),
997
+ col: _this14.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),
998
+ sheet: _this14.sheetId
988
999
  };
989
1000
  if (physicalRow !== null && physicalColumn !== null) {
990
- _this15.syncChangeWithEngine(row, column, newValue);
1001
+ _this14.syncChangeWithEngine(visualRow, visualColumn, newValue);
991
1002
  } else {
992
- outOfBoundsChanges.push([row, column, newValue]);
1003
+ outOfBoundsChanges.push([visualRow, visualColumn, newValue]);
993
1004
  }
994
1005
  changedCells.push({
995
1006
  address: address
@@ -1000,16 +1011,16 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
1000
1011
  // Workaround for rows/columns being created two times (by HOT and the engine).
1001
1012
  // (unfortunately, this requires an extra re-render)
1002
1013
  this.hot.addHookOnce('afterChange', function () {
1003
- var outOfBoundsDependentCells = _this15.engine.batch(function () {
1014
+ var outOfBoundsDependentCells = _this14.engine.batch(function () {
1004
1015
  outOfBoundsChanges.forEach(function (_ref11) {
1005
1016
  var _ref12 = _slicedToArray(_ref11, 3),
1006
1017
  row = _ref12[0],
1007
1018
  column = _ref12[1],
1008
1019
  newValue = _ref12[2];
1009
- _this15.syncChangeWithEngine(row, column, newValue);
1020
+ _this14.syncChangeWithEngine(row, column, newValue);
1010
1021
  });
1011
1022
  });
1012
- _this15.renderDependentSheets(outOfBoundsDependentCells, true);
1023
+ _this14.renderDependentSheets(outOfBoundsDependentCells, true);
1013
1024
  });
1014
1025
  }
1015
1026
  this.renderDependentSheets(dependentCells);
@@ -1027,7 +1038,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
1027
1038
  }, {
1028
1039
  key: "onAfterSetSourceDataAtCell",
1029
1040
  value: function onAfterSetSourceDataAtCell(changes, source) {
1030
- var _this16 = this;
1041
+ var _this15 = this;
1031
1042
  if (isBlockedSource(source)) {
1032
1043
  return;
1033
1044
  }
@@ -1035,26 +1046,26 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
1035
1046
  var changedCells = [];
1036
1047
  changes.forEach(function (_ref13) {
1037
1048
  var _ref14 = _slicedToArray(_ref13, 4),
1038
- row = _ref14[0],
1049
+ visualRow = _ref14[0],
1039
1050
  prop = _ref14[1],
1040
1051
  newValue = _ref14[3];
1041
- var column = _this16.hot.propToCol(prop);
1042
- if (!isNumeric(column)) {
1052
+ var visualColumn = _this15.hot.propToCol(prop);
1053
+ if (!isNumeric(visualColumn)) {
1043
1054
  return;
1044
1055
  }
1045
1056
  var address = {
1046
- row: row,
1047
- col: _this16.toPhysicalColumnPosition(column),
1048
- sheet: _this16.sheetId
1057
+ row: _this15.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),
1058
+ col: _this15.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),
1059
+ sheet: _this15.sheetId
1049
1060
  };
1050
- if (!_this16.engine.isItPossibleToSetCellContents(address)) {
1061
+ if (!_this15.engine.isItPossibleToSetCellContents(address)) {
1051
1062
  warn("Not possible to set source cell data at ".concat(JSON.stringify(address)));
1052
1063
  return;
1053
1064
  }
1054
1065
  changedCells.push({
1055
1066
  address: address
1056
1067
  });
1057
- dependentCells.push.apply(dependentCells, _toConsumableArray(_this16.engine.setCellContents(address, newValue)));
1068
+ dependentCells.push.apply(dependentCells, _toConsumableArray(_this15.engine.setCellContents(address, newValue)));
1058
1069
  });
1059
1070
  this.renderDependentSheets(dependentCells);
1060
1071
  this.validateDependentCells(dependentCells, changedCells);
@@ -1064,14 +1075,19 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
1064
1075
  * `beforeCreateRow` hook callback.
1065
1076
  *
1066
1077
  * @private
1067
- * @param {number} row Represents the visual index of first newly created row in the data source array.
1078
+ * @param {number} visualRow Represents the visual index of first newly created row in the data source array.
1068
1079
  * @param {number} amount Number of newly created rows in the data source array.
1069
1080
  * @returns {*|boolean} If false is returned the action is canceled.
1070
1081
  */
1071
1082
  }, {
1072
1083
  key: "onBeforeCreateRow",
1073
- value: function onBeforeCreateRow(row, amount) {
1074
- if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddRows(this.sheetId, [this.toPhysicalRowPosition(row), amount])) {
1084
+ value: function onBeforeCreateRow(visualRow, amount) {
1085
+ var hfRowIndex = this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow);
1086
+ if (visualRow >= this.hot.countRows()) {
1087
+ hfRowIndex = visualRow; // Row beyond the table boundaries.
1088
+ }
1089
+
1090
+ if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddRows(this.sheetId, [hfRowIndex, amount])) {
1075
1091
  return false;
1076
1092
  }
1077
1093
  }
@@ -1080,14 +1096,19 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
1080
1096
  * `beforeCreateCol` hook callback.
1081
1097
  *
1082
1098
  * @private
1083
- * @param {number} col Represents the visual index of first newly created column in the data source.
1099
+ * @param {number} visualColumn Represents the visual index of first newly created column in the data source.
1084
1100
  * @param {number} amount Number of newly created columns in the data source.
1085
1101
  * @returns {*|boolean} If false is returned the action is canceled.
1086
1102
  */
1087
1103
  }, {
1088
1104
  key: "onBeforeCreateCol",
1089
- value: function onBeforeCreateCol(col, amount) {
1090
- if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddColumns(this.sheetId, [this.toPhysicalColumnPosition(col), amount])) {
1105
+ value: function onBeforeCreateCol(visualColumn, amount) {
1106
+ var hfColumnIndex = this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn);
1107
+ if (visualColumn >= this.hot.countCols()) {
1108
+ hfColumnIndex = visualColumn; // Column beyond the table boundaries.
1109
+ }
1110
+
1111
+ if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddColumns(this.sheetId, [hfColumnIndex, amount])) {
1091
1112
  return false;
1092
1113
  }
1093
1114
  }
@@ -1104,9 +1125,10 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
1104
1125
  }, {
1105
1126
  key: "onBeforeRemoveRow",
1106
1127
  value: function onBeforeRemoveRow(row, amount, physicalRows) {
1107
- var _this17 = this;
1108
- var possible = physicalRows.every(function (physicalRow) {
1109
- return _this17.engine.isItPossibleToRemoveRows(_this17.sheetId, [physicalRow, 1]);
1128
+ var _this16 = this;
1129
+ var hfRows = this.rowAxisSyncer.setRemovedHfIndexes(physicalRows);
1130
+ var possible = hfRows.every(function (hfRow) {
1131
+ return _this16.engine.isItPossibleToRemoveRows(_this16.sheetId, [hfRow, 1]);
1110
1132
  });
1111
1133
  return possible === false ? false : void 0;
1112
1134
  }
@@ -1123,9 +1145,10 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
1123
1145
  }, {
1124
1146
  key: "onBeforeRemoveCol",
1125
1147
  value: function onBeforeRemoveCol(col, amount, physicalColumns) {
1126
- var _this18 = this;
1127
- var possible = physicalColumns.every(function (physicalColumn) {
1128
- return _this18.engine.isItPossibleToRemoveColumns(_this18.sheetId, [physicalColumn, 1]);
1148
+ var _this17 = this;
1149
+ var hfColumns = this.columnAxisSyncer.setRemovedHfIndexes(physicalColumns);
1150
+ var possible = hfColumns.every(function (hfColumn) {
1151
+ return _this17.engine.isItPossibleToRemoveColumns(_this17.sheetId, [hfColumn, 1]);
1129
1152
  });
1130
1153
  return possible === false ? false : void 0;
1131
1154
  }
@@ -1134,18 +1157,18 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
1134
1157
  * `afterCreateRow` hook callback.
1135
1158
  *
1136
1159
  * @private
1137
- * @param {number} row Represents the visual index of first newly created row in the data source array.
1160
+ * @param {number} visualRow Represents the visual index of first newly created row in the data source array.
1138
1161
  * @param {number} amount Number of newly created rows in the data source array.
1139
1162
  * @param {string} [source] String that identifies source of hook call
1140
1163
  * ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
1141
1164
  */
1142
1165
  }, {
1143
1166
  key: "onAfterCreateRow",
1144
- value: function onAfterCreateRow(row, amount, source) {
1167
+ value: function onAfterCreateRow(visualRow, amount, source) {
1145
1168
  if (isBlockedSource(source)) {
1146
1169
  return;
1147
1170
  }
1148
- var changes = this.engine.addRows(this.sheetId, [this.toPhysicalRowPosition(row), amount]);
1171
+ var changes = this.engine.addRows(this.sheetId, [this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow), amount]);
1149
1172
  this.renderDependentSheets(changes);
1150
1173
  }
1151
1174
 
@@ -1153,18 +1176,18 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
1153
1176
  * `afterCreateCol` hook callback.
1154
1177
  *
1155
1178
  * @private
1156
- * @param {number} col Represents the visual index of first newly created column in the data source.
1179
+ * @param {number} visualColumn Represents the visual index of first newly created column in the data source.
1157
1180
  * @param {number} amount Number of newly created columns in the data source.
1158
1181
  * @param {string} [source] String that identifies source of hook call
1159
1182
  * ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
1160
1183
  */
1161
1184
  }, {
1162
1185
  key: "onAfterCreateCol",
1163
- value: function onAfterCreateCol(col, amount, source) {
1186
+ value: function onAfterCreateCol(visualColumn, amount, source) {
1164
1187
  if (isBlockedSource(source)) {
1165
1188
  return;
1166
1189
  }
1167
- var changes = this.engine.addColumns(this.sheetId, [this.toPhysicalColumnPosition(col), amount]);
1190
+ var changes = this.engine.addColumns(this.sheetId, [this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn), amount]);
1168
1191
  this.renderDependentSheets(changes);
1169
1192
  }
1170
1193
 
@@ -1181,14 +1204,14 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
1181
1204
  }, {
1182
1205
  key: "onAfterRemoveRow",
1183
1206
  value: function onAfterRemoveRow(row, amount, physicalRows, source) {
1184
- var _this19 = this;
1207
+ var _this18 = this;
1185
1208
  if (isBlockedSource(source)) {
1186
1209
  return;
1187
1210
  }
1188
- var descendingPhysicalRows = physicalRows.sort().reverse();
1211
+ var descendingHfRows = this.rowAxisSyncer.getRemovedHfIndexes().sort().reverse();
1189
1212
  var changes = this.engine.batch(function () {
1190
- descendingPhysicalRows.forEach(function (physicalRow) {
1191
- _this19.engine.removeRows(_this19.sheetId, [physicalRow, 1]);
1213
+ descendingHfRows.forEach(function (hfRow) {
1214
+ _this18.engine.removeRows(_this18.sheetId, [hfRow, 1]);
1192
1215
  });
1193
1216
  });
1194
1217
  this.renderDependentSheets(changes);
@@ -1207,14 +1230,14 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
1207
1230
  }, {
1208
1231
  key: "onAfterRemoveCol",
1209
1232
  value: function onAfterRemoveCol(col, amount, physicalColumns, source) {
1210
- var _this20 = this;
1233
+ var _this19 = this;
1211
1234
  if (isBlockedSource(source)) {
1212
1235
  return;
1213
1236
  }
1214
- var descendingPhysicalColumns = physicalColumns.sort().reverse();
1237
+ var descendingHfColumns = this.columnAxisSyncer.getRemovedHfIndexes().sort().reverse();
1215
1238
  var changes = this.engine.batch(function () {
1216
- descendingPhysicalColumns.forEach(function (physicalColumn) {
1217
- _this20.engine.removeColumns(_this20.sheetId, [physicalColumn, 1]);
1239
+ descendingHfColumns.forEach(function (hfColumn) {
1240
+ _this19.engine.removeColumns(_this19.sheetId, [hfColumn, 1]);
1218
1241
  });
1219
1242
  });
1220
1243
  this.renderDependentSheets(changes);
@@ -1233,16 +1256,16 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
1233
1256
  key: "onAfterDetachChild",
1234
1257
  value: function onAfterDetachChild(parent, element, finalElementRowIndex) {
1235
1258
  var _element$__children,
1236
- _this21 = this;
1259
+ _this20 = this;
1237
1260
  _classPrivateFieldSet(this, _internalOperationPending, true);
1238
1261
  var rowsData = this.hot.getSourceDataArray(finalElementRowIndex, 0, finalElementRowIndex + (((_element$__children = element.__children) === null || _element$__children === void 0 ? void 0 : _element$__children.length) || 0), this.hot.countSourceCols());
1239
1262
  _classPrivateFieldSet(this, _internalOperationPending, false);
1240
1263
  rowsData.forEach(function (row, relativeRowIndex) {
1241
1264
  row.forEach(function (value, colIndex) {
1242
- _this21.engine.setCellContents({
1265
+ _this20.engine.setCellContents({
1243
1266
  col: colIndex,
1244
1267
  row: finalElementRowIndex + relativeRowIndex,
1245
- sheet: _this21.sheetId
1268
+ sheet: _this20.sheetId
1246
1269
  }, [[value]]);
1247
1270
  });
1248
1271
  });