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
@@ -11,12 +11,10 @@ require("core-js/modules/es.reflect.construct.js");
11
11
  require("core-js/modules/es.reflect.get.js");
12
12
  require("core-js/modules/es.object.get-own-property-descriptor.js");
13
13
  require("core-js/modules/es.symbol.iterator.js");
14
+ require("core-js/modules/es.regexp.to-string.js");
14
15
  require("core-js/modules/es.function.name.js");
15
16
  require("core-js/modules/es.array.from.js");
16
17
  require("core-js/modules/es.regexp.exec.js");
17
- require("core-js/modules/es.object.keys.js");
18
- require("core-js/modules/es.array.filter.js");
19
- require("core-js/modules/es.object.get-own-property-descriptors.js");
20
18
  exports.__esModule = true;
21
19
  exports.SETTING_KEYS = exports.PLUGIN_PRIORITY = exports.PLUGIN_KEY = exports.Formulas = void 0;
22
20
  require("core-js/modules/es.array.concat.js");
@@ -45,13 +43,12 @@ var _settings = require("./engine/settings");
45
43
  var _data = require("../../helpers/data");
46
44
  var _string = require("../../helpers/string");
47
45
  var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
46
+ var _indexSyncer = _interopRequireDefault(require("./indexSyncer"));
48
47
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
49
48
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
50
49
  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."); }
51
50
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
52
51
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
53
- 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; }
54
- 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; }
55
52
  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); }
56
53
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
57
54
  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."); }
@@ -87,7 +84,6 @@ var SETTING_KEYS = ['maxRows', 'maxColumns', 'language'];
87
84
  exports.SETTING_KEYS = SETTING_KEYS;
88
85
  var PLUGIN_PRIORITY = 260;
89
86
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
90
- var ROW_MOVE_UNDO_REDO_NAME = 'row_move';
91
87
  _pluginHooks.default.getSingleton().register('afterNamedExpressionAdded');
92
88
  _pluginHooks.default.getSingleton().register('afterNamedExpressionRemoved');
93
89
  _pluginHooks.default.getSingleton().register('afterSheetAdded');
@@ -193,6 +189,24 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
193
189
  * @type {string|null}
194
190
  */
195
191
  _defineProperty(_assertThisInitialized(_this), "sheetName", null);
192
+ /**
193
+ * Index synchronizer responsible for manipulating with some general options related to indexes synchronization.
194
+ *
195
+ * @type {IndexSyncer|null}
196
+ */
197
+ _defineProperty(_assertThisInitialized(_this), "indexSyncer", null);
198
+ /**
199
+ * Index synchronizer responsible for syncing the order of HOT and HF's data for the axis of the rows.
200
+ *
201
+ * @type {AxisSyncer|null}
202
+ */
203
+ _defineProperty(_assertThisInitialized(_this), "rowAxisSyncer", null);
204
+ /**
205
+ * Index synchronizer responsible for syncing the order of HOT and HF's data for the axis of the columns.
206
+ *
207
+ * @type {AxisSyncer|null}
208
+ */
209
+ _defineProperty(_assertThisInitialized(_this), "columnAxisSyncer", null);
196
210
  return _this;
197
211
  }
198
212
  _createClass(Formulas, [{
@@ -300,6 +314,41 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
300
314
  this.addHook('afterRemoveCol', function () {
301
315
  return _this8.onAfterRemoveCol.apply(_this8, arguments);
302
316
  });
317
+ this.indexSyncer = new _indexSyncer.default(this.hot.rowIndexMapper, this.hot.columnIndexMapper, function (postponedAction) {
318
+ _this8.hot.addHookOnce('init', function () {
319
+ // Engine is initialized after executing callback to `afterLoadData` hook. Thus, some actions on indexes should
320
+ // be postponed.
321
+ postponedAction();
322
+ });
323
+ });
324
+ this.rowAxisSyncer = this.indexSyncer.getForAxis('row');
325
+ this.columnAxisSyncer = this.indexSyncer.getForAxis('column');
326
+ this.hot.addHook('afterRowSequenceChange', this.rowAxisSyncer.getIndexesChangeSyncMethod());
327
+ this.hot.addHook('afterColumnSequenceChange', this.columnAxisSyncer.getIndexesChangeSyncMethod());
328
+ this.hot.addHook('beforeRowMove', function (movedRows, finalIndex, _, movePossible) {
329
+ _this8.rowAxisSyncer.storeMovesInformation(movedRows, finalIndex, movePossible);
330
+ });
331
+ this.hot.addHook('beforeColumnMove', function (movedColumns, finalIndex, _, movePossible) {
332
+ _this8.columnAxisSyncer.storeMovesInformation(movedColumns, finalIndex, movePossible);
333
+ });
334
+ this.hot.addHook('afterRowMove', function (movedRows, finalIndex, dropIndex, movePossible, orderChanged) {
335
+ _this8.rowAxisSyncer.calculateAndSyncMoves(movePossible, orderChanged);
336
+ });
337
+ this.hot.addHook('afterColumnMove', function (movedColumns, finalIndex, dropIndex, movePossible, orderChanged) {
338
+ _this8.columnAxisSyncer.calculateAndSyncMoves(movePossible, orderChanged);
339
+ });
340
+ this.hot.addHook('beforeColumnFreeze', function (column, freezePerformed) {
341
+ _this8.columnAxisSyncer.storeMovesInformation([column], _this8.hot.getSettings().fixedColumnsStart, freezePerformed);
342
+ });
343
+ this.hot.addHook('afterColumnFreeze', function (_, freezePerformed) {
344
+ _this8.columnAxisSyncer.calculateAndSyncMoves(freezePerformed, freezePerformed);
345
+ });
346
+ this.hot.addHook('beforeColumnUnfreeze', function (column, unfreezePerformed) {
347
+ _this8.columnAxisSyncer.storeMovesInformation([column], _this8.hot.getSettings().fixedColumnsStart - 1, unfreezePerformed);
348
+ });
349
+ this.hot.addHook('afterColumnUnfreeze', function (_, unfreezePerformed) {
350
+ _this8.columnAxisSyncer.calculateAndSyncMoves(unfreezePerformed, unfreezePerformed);
351
+ });
303
352
 
304
353
  // TODO: Actions related to overwriting dates from HOT format to HF default format are done as callback to this
305
354
  // hook, because some hooks, such as `afterLoadData` doesn't have information about composed cell properties.
@@ -309,22 +358,22 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
309
358
  });
310
359
 
311
360
  // Handling undo actions on data just using HyperFormula's UndoRedo mechanism
312
- this.addHook('beforeUndo', function (action) {
313
- // TODO: Move action isn't handled by HyperFormula.
314
- if ((action === null || action === void 0 ? void 0 : action.actionType) === ROW_MOVE_UNDO_REDO_NAME) {
315
- return;
316
- }
361
+ this.addHook('beforeUndo', function () {
362
+ _this8.indexSyncer.setPerformUndo(true);
317
363
  _this8.engine.undo();
318
364
  });
319
365
 
320
366
  // Handling redo actions on data just using HyperFormula's UndoRedo mechanism
321
- this.addHook('beforeRedo', function (action) {
322
- // TODO: Move action isn't handled by HyperFormula.
323
- if ((action === null || action === void 0 ? void 0 : action.actionType) === ROW_MOVE_UNDO_REDO_NAME) {
324
- return;
325
- }
367
+ this.addHook('beforeRedo', function () {
368
+ _this8.indexSyncer.setPerformRedo(true);
326
369
  _this8.engine.redo();
327
370
  });
371
+ this.addHook('afterUndo', function () {
372
+ _this8.indexSyncer.setPerformUndo(false);
373
+ });
374
+ this.addHook('afterUndo', function () {
375
+ _this8.indexSyncer.setPerformRedo(false);
376
+ });
328
377
  this.addHook('afterDetachChild', function () {
329
378
  return _this8.onAfterDetachChild.apply(_this8, arguments);
330
379
  });
@@ -409,63 +458,6 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
409
458
  _get(_getPrototypeOf(Formulas.prototype), "destroy", this).call(this);
410
459
  }
411
460
 
412
- /**
413
- * Helper function for `toPhysicalRowPosition` and `toPhysicalColumnPosition`.
414
- *
415
- * @private
416
- * @param {number} visualIndex Visual entry index.
417
- * @param {number} physicalIndex Physical entry index.
418
- * @param {number} entriesCount Visual entries count.
419
- * @param {number} sourceEntriesCount Source entries count.
420
- * @param {boolean} contained `true` if it should return only indexes within boundaries of the table (basically
421
- * `toPhysical` alias.
422
- * @returns {*}
423
- */
424
- }, {
425
- key: "getPhysicalIndexPosition",
426
- value: function getPhysicalIndexPosition(visualIndex, physicalIndex, entriesCount, sourceEntriesCount, contained) {
427
- if (!contained) {
428
- if (visualIndex >= entriesCount) {
429
- return sourceEntriesCount + (visualIndex - entriesCount);
430
- }
431
- }
432
- return physicalIndex;
433
- }
434
-
435
- /**
436
- * Returns the physical row index. The difference between this and Core's `toPhysical` is that it doesn't return
437
- * `null` on rows with indexes higher than the number of rows.
438
- *
439
- * @private
440
- * @param {number} row Visual row index.
441
- * @param {boolean} [contained] `true` if it should return only indexes within boundaries of the table (basically
442
- * `toPhysical` alias.
443
- * @returns {number} The physical row index.
444
- */
445
- }, {
446
- key: "toPhysicalRowPosition",
447
- value: function toPhysicalRowPosition(row) {
448
- var contained = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
449
- return this.getPhysicalIndexPosition(row, this.hot.toPhysicalRow(row), this.hot.countRows(), this.hot.countSourceRows(), contained);
450
- }
451
-
452
- /**
453
- * Returns the physical column index. The difference between this and Core's `toPhysical` is that it doesn't return
454
- * `null` on columns with indexes higher than the number of columns.
455
- *
456
- * @private
457
- * @param {number} column Visual column index.
458
- * @param {boolean} [contained] `true` if it should return only indexes within boundaries of the table (basically
459
- * `toPhysical` alias.
460
- * @returns {number} The physical column index.
461
- */
462
- }, {
463
- key: "toPhysicalColumnPosition",
464
- value: function toPhysicalColumnPosition(column) {
465
- var contained = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
466
- return this.getPhysicalIndexPosition(column, this.hot.toPhysicalColumn(column), this.hot.countCols(), this.hot.countSourceCols(), contained);
467
- }
468
-
469
461
  /**
470
462
  * Add a sheet to the shared HyperFormula instance.
471
463
  *
@@ -536,8 +528,8 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
536
528
  if (physicalRow !== null && physicalColumn !== null) {
537
529
  return this.engine.getCellType({
538
530
  sheet: sheet,
539
- row: physicalRow,
540
- col: physicalColumn
531
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(row),
532
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(column)
541
533
  });
542
534
  } else {
543
535
  // Should return `EMPTY` when out of bounds (according to the test cases).
@@ -557,15 +549,10 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
557
549
  key: "isFormulaCellType",
558
550
  value: function isFormulaCellType(row, column) {
559
551
  var sheet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.sheetId;
560
- var physicalRow = this.hot.toPhysicalRow(row);
561
- var physicalColumn = this.hot.toPhysicalColumn(column);
562
- if (physicalRow === null || physicalColumn === null) {
563
- return false;
564
- }
565
552
  return this.engine.doesCellHaveFormula({
566
553
  sheet: sheet,
567
- row: physicalRow,
568
- col: physicalColumn
554
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(row),
555
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(column)
569
556
  });
570
557
  }
571
558
 
@@ -630,11 +617,9 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
630
617
  var _ref8 = (_change$address3 = change.address) !== null && _change$address3 !== void 0 ? _change$address3 : {},
631
618
  row = _ref8.row,
632
619
  col = _ref8.col;
633
- var visualRow = (0, _mixed.isDefined)(row) ? _this12.hot.toVisualRow(row) : null;
634
- var visualColumn = (0, _mixed.isDefined)(col) ? _this12.hot.toVisualColumn(col) : null;
635
620
 
636
621
  // Don't try to validate cells outside of the visual part of the table.
637
- if (visualRow === null || visualColumn === null) {
622
+ if ((0, _mixed.isDefined)(row) === false || (0, _mixed.isDefined)(col) === false || row >= _this12.hot.countRows() || col >= _this12.hot.countCols()) {
638
623
  return;
639
624
  }
640
625
 
@@ -653,7 +638,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
653
638
  }
654
639
 
655
640
  // It will just re-render certain cell when necessary.
656
- boundHot.validateCell(boundHot.getDataAtCell(visualRow, visualColumn), boundHot.getCellMeta(visualRow, visualColumn), function () {});
641
+ boundHot.validateCell(boundHot.getDataAtCell(row, col), boundHot.getCellMeta(row, col), function () {});
657
642
  }
658
643
  });
659
644
  }
@@ -671,8 +656,8 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
671
656
  key: "syncChangeWithEngine",
672
657
  value: function syncChangeWithEngine(row, column, newValue) {
673
658
  var address = {
674
- row: this.toPhysicalRowPosition(row),
675
- col: this.toPhysicalColumnPosition(column),
659
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(row),
660
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(column),
676
661
  sheet: this.sheetId
677
662
  };
678
663
  if (!this.engine.isItPossibleToSetCellContents(address)) {
@@ -708,8 +693,8 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
708
693
  var visualColumn = this.hot.propToCol(prop);
709
694
  if (this.isFormulaCellType(visualRow, visualColumn)) {
710
695
  var address = {
711
- row: this.hot.toPhysicalRow(visualRow),
712
- col: this.hot.toPhysicalColumn(visualColumn),
696
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),
697
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),
713
698
  sheet: this.sheetId
714
699
  };
715
700
  var cellMeta = this.hot.getCellMeta(visualRow, visualColumn);
@@ -738,19 +723,41 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
738
723
  }, {
739
724
  key: "onBeforeAutofill",
740
725
  value: function onBeforeAutofill(fillData, sourceRange, targetRange) {
741
- var _this13 = this;
742
- var withSheetId = function withSheetId(range) {
743
- return _objectSpread(_objectSpread({}, range), {}, {
744
- sheet: _this13.sheetId
745
- });
746
- };
726
+ var _sourceRange$getTopSt = sourceRange.getTopStartCorner(),
727
+ sourceTopStartRow = _sourceRange$getTopSt.row,
728
+ sourceTopStartColumn = _sourceRange$getTopSt.col;
729
+ var _sourceRange$getBotto = sourceRange.getBottomEndCorner(),
730
+ sourceBottomEndRow = _sourceRange$getBotto.row,
731
+ sourceBottomEndColumn = _sourceRange$getBotto.col;
732
+ var _targetRange$getTopSt = targetRange.getTopStartCorner(),
733
+ targetTopStartRow = _targetRange$getTopSt.row,
734
+ targetTopStartColumn = _targetRange$getTopSt.col;
735
+ var _targetRange$getBotto = targetRange.getBottomEndCorner(),
736
+ targetBottomEndRow = _targetRange$getBotto.row,
737
+ targetBottomEndColumn = _targetRange$getBotto.col;
747
738
  var engineSourceRange = {
748
- start: withSheetId(sourceRange.getTopStartCorner()),
749
- end: withSheetId(sourceRange.getBottomEndCorner())
739
+ start: {
740
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(sourceTopStartRow),
741
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(sourceTopStartColumn),
742
+ sheet: this.sheetId
743
+ },
744
+ end: {
745
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(sourceBottomEndRow),
746
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(sourceBottomEndColumn),
747
+ sheet: this.sheetId
748
+ }
750
749
  };
751
750
  var engineTargetRange = {
752
- start: withSheetId(targetRange.getTopStartCorner()),
753
- end: withSheetId(targetRange.getBottomEndCorner())
751
+ start: {
752
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(targetTopStartRow),
753
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(targetTopStartColumn),
754
+ sheet: this.sheetId
755
+ },
756
+ end: {
757
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(targetBottomEndRow),
758
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(targetBottomEndColumn),
759
+ sheet: this.sheetId
760
+ }
754
761
  };
755
762
 
756
763
  // Blocks the autofill operation if HyperFormula says that at least one of
@@ -816,19 +823,19 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
816
823
  }, {
817
824
  key: "onAfterCellMetaReset",
818
825
  value: function onAfterCellMetaReset() {
819
- var _this14 = this;
826
+ var _this13 = this;
820
827
  var sourceDataArray = this.hot.getSourceDataArray();
821
828
  var valueChanged = false;
822
829
  sourceDataArray.forEach(function (rowData, rowIndex) {
823
830
  rowData.forEach(function (cellValue, columnIndex) {
824
- var cellMeta = _this14.hot.getCellMeta(rowIndex, columnIndex);
831
+ var cellMeta = _this13.hot.getCellMeta(rowIndex, columnIndex);
825
832
  var dateFormat = cellMeta.dateFormat;
826
833
  if ((0, _utils.isDate)(cellValue, cellMeta.type)) {
827
834
  valueChanged = true;
828
835
  if ((0, _utils.isDateValid)(cellValue, dateFormat)) {
829
836
  // Rewriting date in HOT format to HF format.
830
837
  sourceDataArray[rowIndex][columnIndex] = (0, _utils.getDateInHfFormat)(cellValue, dateFormat);
831
- } else if (_this14.isFormulaCellType(rowIndex, columnIndex) === false) {
838
+ } else if (_this13.isFormulaCellType(rowIndex, columnIndex) === false) {
832
839
  // Escaping value from date parsing using "'" sign (HF feature).
833
840
  sourceDataArray[rowIndex][columnIndex] = "'".concat(cellValue);
834
841
  }
@@ -863,6 +870,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
863
870
  if (this.engine.isItPossibleToReplaceSheetContent(this.sheetId, sourceDataArray)) {
864
871
  _classPrivateFieldSet(this, _internalOperationPending, true);
865
872
  var dependentCells = this.engine.setSheetContent(this.sheetId, sourceDataArray);
873
+ this.indexSyncer.setupSyncEndpoint(this.engine, this.sheetId);
866
874
  this.renderDependentSheets(dependentCells);
867
875
  _classPrivateFieldSet(this, _internalOperationPending, false);
868
876
  }
@@ -875,24 +883,27 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
875
883
  * `modifyData` hook callback.
876
884
  *
877
885
  * @private
878
- * @param {number} row Physical row height.
879
- * @param {number} column Physical column index.
886
+ * @param {number} physicalRow Physical row index.
887
+ * @param {number} visualColumn Visual column index.
880
888
  * @param {object} valueHolder Object which contains original value which can be modified by overwriting `.value`
881
889
  * property.
882
890
  * @param {string} ioMode String which indicates for what operation hook is fired (`get` or `set`).
883
891
  */
884
892
  }, {
885
893
  key: "onModifyData",
886
- value: function onModifyData(row, column, valueHolder, ioMode) {
894
+ value: function onModifyData(physicalRow, visualColumn, valueHolder, ioMode) {
887
895
  if (ioMode !== 'get' || _classPrivateFieldGet(this, _internalOperationPending) || this.sheetName === null || !this.engine.doesSheetExist(this.sheetName)) {
888
896
  return;
889
897
  }
890
- var visualRow = this.hot.toVisualRow(row);
898
+ var visualRow = this.hot.toVisualRow(physicalRow);
899
+ if (visualRow === null || visualColumn === null) {
900
+ return;
901
+ }
891
902
 
892
903
  // `column` is here as visual index because of inconsistencies related to hook execution in `src/dataMap`.
893
- var isFormulaCellType = this.isFormulaCellType(visualRow, column);
904
+ var isFormulaCellType = this.isFormulaCellType(visualRow, visualColumn);
894
905
  if (!isFormulaCellType) {
895
- var cellType = this.getCellType(visualRow, column);
906
+ var cellType = this.getCellType(visualRow, visualColumn);
896
907
  if (cellType !== 'ARRAY') {
897
908
  if ((0, _utils.isEscapedFormulaExpression)(valueHolder.value)) {
898
909
  valueHolder.value = (0, _utils.unescapeFormulaExpression)(valueHolder.value);
@@ -900,15 +911,13 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
900
911
  return;
901
912
  }
902
913
  }
903
-
904
- // `toPhysicalColumn` is here because of inconsistencies related to hook execution in `DataMap`.
905
914
  var address = {
906
- row: row,
907
- col: this.toPhysicalColumnPosition(column),
915
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),
916
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),
908
917
  sheet: this.sheetId
909
918
  };
910
919
  var cellValue = this.engine.getCellValue(address); // Date as an integer (Excel like date).
911
- var cellMeta = this.hot.getCellMeta(row, column);
920
+ var cellMeta = this.hot.getCellMeta(visualRow, visualColumn);
912
921
  if (cellMeta.type === 'date' && (0, _number.isNumeric)(cellValue)) {
913
922
  cellValue = (0, _utils.getDateFromExcelDate)(cellValue, cellMeta.dateFormat);
914
923
  }
@@ -936,6 +945,9 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
936
945
  }
937
946
  var visualRow = this.hot.toVisualRow(row);
938
947
  var visualColumn = this.hot.propToCol(columnOrProp);
948
+ if (visualRow === null || visualColumn === null) {
949
+ return;
950
+ }
939
951
 
940
952
  // `column` is here as visual index because of inconsistencies related to hook execution in `src/dataMap`.
941
953
  var isFormulaCellType = this.isFormulaCellType(visualRow, visualColumn);
@@ -955,9 +967,8 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
955
967
  return;
956
968
  }
957
969
  var address = {
958
- row: row,
959
- // Workaround for inconsistencies in `src/dataSource.js`
960
- col: this.toPhysicalColumnPosition(visualColumn),
970
+ row: this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),
971
+ col: this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),
961
972
  sheet: this.sheetId
962
973
  };
963
974
  valueHolder.value = this.engine.getCellSerialized(address);
@@ -974,7 +985,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
974
985
  }, {
975
986
  key: "onAfterSetDataAtCell",
976
987
  value: function onAfterSetDataAtCell(changes, source) {
977
- var _this15 = this;
988
+ var _this14 = this;
978
989
  if (isBlockedSource(source)) {
979
990
  return;
980
991
  }
@@ -983,21 +994,21 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
983
994
  var dependentCells = this.engine.batch(function () {
984
995
  changes.forEach(function (_ref9) {
985
996
  var _ref10 = _slicedToArray(_ref9, 4),
986
- row = _ref10[0],
997
+ visualRow = _ref10[0],
987
998
  prop = _ref10[1],
988
999
  newValue = _ref10[3];
989
- var column = _this15.hot.propToCol(prop);
990
- var physicalRow = _this15.hot.toPhysicalRow(row);
991
- var physicalColumn = _this15.hot.toPhysicalColumn(column);
1000
+ var visualColumn = _this14.hot.propToCol(prop);
1001
+ var physicalRow = _this14.hot.toPhysicalRow(visualRow);
1002
+ var physicalColumn = _this14.hot.toPhysicalColumn(visualColumn);
992
1003
  var address = {
993
- row: physicalRow,
994
- col: physicalColumn,
995
- sheet: _this15.sheetId
1004
+ row: _this14.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),
1005
+ col: _this14.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),
1006
+ sheet: _this14.sheetId
996
1007
  };
997
1008
  if (physicalRow !== null && physicalColumn !== null) {
998
- _this15.syncChangeWithEngine(row, column, newValue);
1009
+ _this14.syncChangeWithEngine(visualRow, visualColumn, newValue);
999
1010
  } else {
1000
- outOfBoundsChanges.push([row, column, newValue]);
1011
+ outOfBoundsChanges.push([visualRow, visualColumn, newValue]);
1001
1012
  }
1002
1013
  changedCells.push({
1003
1014
  address: address
@@ -1008,16 +1019,16 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1008
1019
  // Workaround for rows/columns being created two times (by HOT and the engine).
1009
1020
  // (unfortunately, this requires an extra re-render)
1010
1021
  this.hot.addHookOnce('afterChange', function () {
1011
- var outOfBoundsDependentCells = _this15.engine.batch(function () {
1022
+ var outOfBoundsDependentCells = _this14.engine.batch(function () {
1012
1023
  outOfBoundsChanges.forEach(function (_ref11) {
1013
1024
  var _ref12 = _slicedToArray(_ref11, 3),
1014
1025
  row = _ref12[0],
1015
1026
  column = _ref12[1],
1016
1027
  newValue = _ref12[2];
1017
- _this15.syncChangeWithEngine(row, column, newValue);
1028
+ _this14.syncChangeWithEngine(row, column, newValue);
1018
1029
  });
1019
1030
  });
1020
- _this15.renderDependentSheets(outOfBoundsDependentCells, true);
1031
+ _this14.renderDependentSheets(outOfBoundsDependentCells, true);
1021
1032
  });
1022
1033
  }
1023
1034
  this.renderDependentSheets(dependentCells);
@@ -1035,7 +1046,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1035
1046
  }, {
1036
1047
  key: "onAfterSetSourceDataAtCell",
1037
1048
  value: function onAfterSetSourceDataAtCell(changes, source) {
1038
- var _this16 = this;
1049
+ var _this15 = this;
1039
1050
  if (isBlockedSource(source)) {
1040
1051
  return;
1041
1052
  }
@@ -1043,26 +1054,26 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1043
1054
  var changedCells = [];
1044
1055
  changes.forEach(function (_ref13) {
1045
1056
  var _ref14 = _slicedToArray(_ref13, 4),
1046
- row = _ref14[0],
1057
+ visualRow = _ref14[0],
1047
1058
  prop = _ref14[1],
1048
1059
  newValue = _ref14[3];
1049
- var column = _this16.hot.propToCol(prop);
1050
- if (!(0, _number.isNumeric)(column)) {
1060
+ var visualColumn = _this15.hot.propToCol(prop);
1061
+ if (!(0, _number.isNumeric)(visualColumn)) {
1051
1062
  return;
1052
1063
  }
1053
1064
  var address = {
1054
- row: row,
1055
- col: _this16.toPhysicalColumnPosition(column),
1056
- sheet: _this16.sheetId
1065
+ row: _this15.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow),
1066
+ col: _this15.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn),
1067
+ sheet: _this15.sheetId
1057
1068
  };
1058
- if (!_this16.engine.isItPossibleToSetCellContents(address)) {
1069
+ if (!_this15.engine.isItPossibleToSetCellContents(address)) {
1059
1070
  (0, _console.warn)("Not possible to set source cell data at ".concat(JSON.stringify(address)));
1060
1071
  return;
1061
1072
  }
1062
1073
  changedCells.push({
1063
1074
  address: address
1064
1075
  });
1065
- dependentCells.push.apply(dependentCells, _toConsumableArray(_this16.engine.setCellContents(address, newValue)));
1076
+ dependentCells.push.apply(dependentCells, _toConsumableArray(_this15.engine.setCellContents(address, newValue)));
1066
1077
  });
1067
1078
  this.renderDependentSheets(dependentCells);
1068
1079
  this.validateDependentCells(dependentCells, changedCells);
@@ -1072,14 +1083,19 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1072
1083
  * `beforeCreateRow` hook callback.
1073
1084
  *
1074
1085
  * @private
1075
- * @param {number} row Represents the visual index of first newly created row in the data source array.
1086
+ * @param {number} visualRow Represents the visual index of first newly created row in the data source array.
1076
1087
  * @param {number} amount Number of newly created rows in the data source array.
1077
1088
  * @returns {*|boolean} If false is returned the action is canceled.
1078
1089
  */
1079
1090
  }, {
1080
1091
  key: "onBeforeCreateRow",
1081
- value: function onBeforeCreateRow(row, amount) {
1082
- if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddRows(this.sheetId, [this.toPhysicalRowPosition(row), amount])) {
1092
+ value: function onBeforeCreateRow(visualRow, amount) {
1093
+ var hfRowIndex = this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow);
1094
+ if (visualRow >= this.hot.countRows()) {
1095
+ hfRowIndex = visualRow; // Row beyond the table boundaries.
1096
+ }
1097
+
1098
+ if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddRows(this.sheetId, [hfRowIndex, amount])) {
1083
1099
  return false;
1084
1100
  }
1085
1101
  }
@@ -1088,14 +1104,19 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1088
1104
  * `beforeCreateCol` hook callback.
1089
1105
  *
1090
1106
  * @private
1091
- * @param {number} col Represents the visual index of first newly created column in the data source.
1107
+ * @param {number} visualColumn Represents the visual index of first newly created column in the data source.
1092
1108
  * @param {number} amount Number of newly created columns in the data source.
1093
1109
  * @returns {*|boolean} If false is returned the action is canceled.
1094
1110
  */
1095
1111
  }, {
1096
1112
  key: "onBeforeCreateCol",
1097
- value: function onBeforeCreateCol(col, amount) {
1098
- if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddColumns(this.sheetId, [this.toPhysicalColumnPosition(col), amount])) {
1113
+ value: function onBeforeCreateCol(visualColumn, amount) {
1114
+ var hfColumnIndex = this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn);
1115
+ if (visualColumn >= this.hot.countCols()) {
1116
+ hfColumnIndex = visualColumn; // Column beyond the table boundaries.
1117
+ }
1118
+
1119
+ if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddColumns(this.sheetId, [hfColumnIndex, amount])) {
1099
1120
  return false;
1100
1121
  }
1101
1122
  }
@@ -1112,9 +1133,10 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1112
1133
  }, {
1113
1134
  key: "onBeforeRemoveRow",
1114
1135
  value: function onBeforeRemoveRow(row, amount, physicalRows) {
1115
- var _this17 = this;
1116
- var possible = physicalRows.every(function (physicalRow) {
1117
- return _this17.engine.isItPossibleToRemoveRows(_this17.sheetId, [physicalRow, 1]);
1136
+ var _this16 = this;
1137
+ var hfRows = this.rowAxisSyncer.setRemovedHfIndexes(physicalRows);
1138
+ var possible = hfRows.every(function (hfRow) {
1139
+ return _this16.engine.isItPossibleToRemoveRows(_this16.sheetId, [hfRow, 1]);
1118
1140
  });
1119
1141
  return possible === false ? false : void 0;
1120
1142
  }
@@ -1131,9 +1153,10 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1131
1153
  }, {
1132
1154
  key: "onBeforeRemoveCol",
1133
1155
  value: function onBeforeRemoveCol(col, amount, physicalColumns) {
1134
- var _this18 = this;
1135
- var possible = physicalColumns.every(function (physicalColumn) {
1136
- return _this18.engine.isItPossibleToRemoveColumns(_this18.sheetId, [physicalColumn, 1]);
1156
+ var _this17 = this;
1157
+ var hfColumns = this.columnAxisSyncer.setRemovedHfIndexes(physicalColumns);
1158
+ var possible = hfColumns.every(function (hfColumn) {
1159
+ return _this17.engine.isItPossibleToRemoveColumns(_this17.sheetId, [hfColumn, 1]);
1137
1160
  });
1138
1161
  return possible === false ? false : void 0;
1139
1162
  }
@@ -1142,18 +1165,18 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1142
1165
  * `afterCreateRow` hook callback.
1143
1166
  *
1144
1167
  * @private
1145
- * @param {number} row Represents the visual index of first newly created row in the data source array.
1168
+ * @param {number} visualRow Represents the visual index of first newly created row in the data source array.
1146
1169
  * @param {number} amount Number of newly created rows in the data source array.
1147
1170
  * @param {string} [source] String that identifies source of hook call
1148
1171
  * ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
1149
1172
  */
1150
1173
  }, {
1151
1174
  key: "onAfterCreateRow",
1152
- value: function onAfterCreateRow(row, amount, source) {
1175
+ value: function onAfterCreateRow(visualRow, amount, source) {
1153
1176
  if (isBlockedSource(source)) {
1154
1177
  return;
1155
1178
  }
1156
- var changes = this.engine.addRows(this.sheetId, [this.toPhysicalRowPosition(row), amount]);
1179
+ var changes = this.engine.addRows(this.sheetId, [this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow), amount]);
1157
1180
  this.renderDependentSheets(changes);
1158
1181
  }
1159
1182
 
@@ -1161,18 +1184,18 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1161
1184
  * `afterCreateCol` hook callback.
1162
1185
  *
1163
1186
  * @private
1164
- * @param {number} col Represents the visual index of first newly created column in the data source.
1187
+ * @param {number} visualColumn Represents the visual index of first newly created column in the data source.
1165
1188
  * @param {number} amount Number of newly created columns in the data source.
1166
1189
  * @param {string} [source] String that identifies source of hook call
1167
1190
  * ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
1168
1191
  */
1169
1192
  }, {
1170
1193
  key: "onAfterCreateCol",
1171
- value: function onAfterCreateCol(col, amount, source) {
1194
+ value: function onAfterCreateCol(visualColumn, amount, source) {
1172
1195
  if (isBlockedSource(source)) {
1173
1196
  return;
1174
1197
  }
1175
- var changes = this.engine.addColumns(this.sheetId, [this.toPhysicalColumnPosition(col), amount]);
1198
+ var changes = this.engine.addColumns(this.sheetId, [this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn), amount]);
1176
1199
  this.renderDependentSheets(changes);
1177
1200
  }
1178
1201
 
@@ -1189,14 +1212,14 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1189
1212
  }, {
1190
1213
  key: "onAfterRemoveRow",
1191
1214
  value: function onAfterRemoveRow(row, amount, physicalRows, source) {
1192
- var _this19 = this;
1215
+ var _this18 = this;
1193
1216
  if (isBlockedSource(source)) {
1194
1217
  return;
1195
1218
  }
1196
- var descendingPhysicalRows = physicalRows.sort().reverse();
1219
+ var descendingHfRows = this.rowAxisSyncer.getRemovedHfIndexes().sort().reverse();
1197
1220
  var changes = this.engine.batch(function () {
1198
- descendingPhysicalRows.forEach(function (physicalRow) {
1199
- _this19.engine.removeRows(_this19.sheetId, [physicalRow, 1]);
1221
+ descendingHfRows.forEach(function (hfRow) {
1222
+ _this18.engine.removeRows(_this18.sheetId, [hfRow, 1]);
1200
1223
  });
1201
1224
  });
1202
1225
  this.renderDependentSheets(changes);
@@ -1215,14 +1238,14 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1215
1238
  }, {
1216
1239
  key: "onAfterRemoveCol",
1217
1240
  value: function onAfterRemoveCol(col, amount, physicalColumns, source) {
1218
- var _this20 = this;
1241
+ var _this19 = this;
1219
1242
  if (isBlockedSource(source)) {
1220
1243
  return;
1221
1244
  }
1222
- var descendingPhysicalColumns = physicalColumns.sort().reverse();
1245
+ var descendingHfColumns = this.columnAxisSyncer.getRemovedHfIndexes().sort().reverse();
1223
1246
  var changes = this.engine.batch(function () {
1224
- descendingPhysicalColumns.forEach(function (physicalColumn) {
1225
- _this20.engine.removeColumns(_this20.sheetId, [physicalColumn, 1]);
1247
+ descendingHfColumns.forEach(function (hfColumn) {
1248
+ _this19.engine.removeColumns(_this19.sheetId, [hfColumn, 1]);
1226
1249
  });
1227
1250
  });
1228
1251
  this.renderDependentSheets(changes);
@@ -1241,16 +1264,16 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1241
1264
  key: "onAfterDetachChild",
1242
1265
  value: function onAfterDetachChild(parent, element, finalElementRowIndex) {
1243
1266
  var _element$__children,
1244
- _this21 = this;
1267
+ _this20 = this;
1245
1268
  _classPrivateFieldSet(this, _internalOperationPending, true);
1246
1269
  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());
1247
1270
  _classPrivateFieldSet(this, _internalOperationPending, false);
1248
1271
  rowsData.forEach(function (row, relativeRowIndex) {
1249
1272
  row.forEach(function (value, colIndex) {
1250
- _this21.engine.setCellContents({
1273
+ _this20.engine.setCellContents({
1251
1274
  col: colIndex,
1252
1275
  row: finalElementRowIndex + relativeRowIndex,
1253
- sheet: _this21.sheetId
1276
+ sheet: _this20.sheetId
1254
1277
  }, [[value]]);
1255
1278
  });
1256
1279
  });