handsontable 0.0.0-next-a7809f3-20240708 → 0.0.0-next-b799724-20240710

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 (430) hide show
  1. package/3rdparty/walkontable/src/calculator/renderAllColumns.js +1 -1
  2. package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +1 -1
  3. package/3rdparty/walkontable/src/calculator/renderAllRows.js +1 -1
  4. package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +1 -1
  5. package/3rdparty/walkontable/src/calculator/viewportColumns.js +3 -3
  6. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +3 -3
  7. package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
  8. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
  9. package/3rdparty/walkontable/src/cell/coords.js +3 -3
  10. package/3rdparty/walkontable/src/cell/coords.mjs +3 -3
  11. package/3rdparty/walkontable/src/cell/range.js +4 -4
  12. package/3rdparty/walkontable/src/cell/range.mjs +3 -3
  13. package/3rdparty/walkontable/src/core/_base.js +2 -2
  14. package/3rdparty/walkontable/src/core/_base.mjs +1 -1
  15. package/3rdparty/walkontable/src/core/clone.js +2 -2
  16. package/3rdparty/walkontable/src/core/clone.mjs +1 -1
  17. package/3rdparty/walkontable/src/core/core.js +1 -1
  18. package/3rdparty/walkontable/src/event.js +2 -2
  19. package/3rdparty/walkontable/src/event.mjs +2 -2
  20. package/3rdparty/walkontable/src/facade/core.js +1 -1
  21. package/3rdparty/walkontable/src/filter/column.js +1 -1
  22. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  23. package/3rdparty/walkontable/src/filter/row.js +1 -1
  24. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  25. package/3rdparty/walkontable/src/index.js +1 -1
  26. package/3rdparty/walkontable/src/overlay/_base.js +2 -2
  27. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  28. package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
  29. package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
  30. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +1 -1
  31. package/3rdparty/walkontable/src/overlay/inlineStart.js +1 -1
  32. package/3rdparty/walkontable/src/overlay/top.js +2 -2
  33. package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
  34. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +2 -2
  35. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
  36. package/3rdparty/walkontable/src/overlays.js +3 -3
  37. package/3rdparty/walkontable/src/overlays.mjs +3 -3
  38. package/3rdparty/walkontable/src/renderer/_base.js +2 -2
  39. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  40. package/3rdparty/walkontable/src/renderer/cells.js +2 -2
  41. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
  42. package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
  43. package/3rdparty/walkontable/src/renderer/columnHeaders.js +1 -1
  44. package/3rdparty/walkontable/src/renderer/index.js +1 -1
  45. package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
  46. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
  47. package/3rdparty/walkontable/src/renderer/rows.js +2 -2
  48. package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
  49. package/3rdparty/walkontable/src/renderer/table.js +1 -1
  50. package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
  51. package/3rdparty/walkontable/src/scroll.js +3 -3
  52. package/3rdparty/walkontable/src/scroll.mjs +3 -3
  53. package/3rdparty/walkontable/src/selection/index.js +1 -1
  54. package/3rdparty/walkontable/src/selection/manager.js +4 -4
  55. package/3rdparty/walkontable/src/selection/manager.mjs +3 -3
  56. package/3rdparty/walkontable/src/selection/scanner.js +3 -3
  57. package/3rdparty/walkontable/src/selection/scanner.mjs +3 -3
  58. package/3rdparty/walkontable/src/selection/selection.js +1 -1
  59. package/3rdparty/walkontable/src/settings.js +1 -1
  60. package/3rdparty/walkontable/src/settings.mjs +1 -1
  61. package/3rdparty/walkontable/src/table/bottom.js +1 -1
  62. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -1
  63. package/3rdparty/walkontable/src/table/inlineStart.js +1 -1
  64. package/3rdparty/walkontable/src/table/master.js +1 -1
  65. package/3rdparty/walkontable/src/table/top.js +1 -1
  66. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -1
  67. package/3rdparty/walkontable/src/table.js +2 -2
  68. package/3rdparty/walkontable/src/table.mjs +1 -1
  69. package/3rdparty/walkontable/src/utils/column.js +1 -1
  70. package/3rdparty/walkontable/src/utils/column.mjs +1 -1
  71. package/3rdparty/walkontable/src/utils/columnStretching.js +3 -3
  72. package/3rdparty/walkontable/src/utils/columnStretching.mjs +3 -3
  73. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  74. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  75. package/3rdparty/walkontable/src/utils/orderView/index.js +1 -1
  76. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +1 -1
  77. package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
  78. package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
  79. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  80. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  81. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +2 -2
  82. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  83. package/3rdparty/walkontable/src/utils/row.js +1 -1
  84. package/3rdparty/walkontable/src/utils/row.mjs +1 -1
  85. package/base.js +3 -3
  86. package/base.mjs +2 -2
  87. package/cellTypes/registry.js +1 -1
  88. package/core.d.ts +2 -0
  89. package/core.js +11 -1
  90. package/core.mjs +10 -0
  91. package/dataMap/dataMap.js +1 -1
  92. package/dataMap/dataMap.mjs +1 -1
  93. package/dataMap/dataSource.js +1 -1
  94. package/dataMap/dataSource.mjs +1 -1
  95. package/dataMap/index.js +1 -1
  96. package/dataMap/metaManager/index.js +1 -1
  97. package/dataMap/metaManager/lazyFactoryMap.js +1 -1
  98. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -1
  99. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
  100. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
  101. package/dataMap/metaManager/metaLayers/columnMeta.js +2 -2
  102. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  103. package/dataMap/metaManager/metaLayers/globalMeta.js +2 -2
  104. package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
  105. package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
  106. package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
  107. package/dataMap/metaManager/metaSchema.js +25 -0
  108. package/dataMap/metaManager/metaSchema.mjs +25 -0
  109. package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -2
  110. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  111. package/dataMap/metaManager/mods/extendMetaProperties.js +3 -3
  112. package/dataMap/metaManager/mods/extendMetaProperties.mjs +3 -3
  113. package/dataMap/replaceData.js +1 -1
  114. package/dist/handsontable.css +126 -88
  115. package/dist/handsontable.full.css +126 -88
  116. package/dist/handsontable.full.js +1206 -1091
  117. package/dist/handsontable.full.min.css +7 -7
  118. package/dist/handsontable.full.min.js +15 -15
  119. package/dist/handsontable.js +1202 -1034
  120. package/dist/handsontable.min.css +6 -6
  121. package/dist/handsontable.min.js +14 -14
  122. package/dist/languages/all.js +3 -3
  123. package/dist/languages/ar-AR.js +3 -3
  124. package/dist/languages/cs-CZ.js +3 -3
  125. package/dist/languages/de-CH.js +3 -3
  126. package/dist/languages/de-DE.js +3 -3
  127. package/dist/languages/en-US.js +3 -3
  128. package/dist/languages/es-MX.js +3 -3
  129. package/dist/languages/fr-FR.js +3 -3
  130. package/dist/languages/hr-HR.js +3 -3
  131. package/dist/languages/it-IT.js +3 -3
  132. package/dist/languages/ja-JP.js +3 -3
  133. package/dist/languages/ko-KR.js +3 -3
  134. package/dist/languages/lv-LV.js +3 -3
  135. package/dist/languages/nb-NO.js +3 -3
  136. package/dist/languages/nl-NL.js +3 -3
  137. package/dist/languages/pl-PL.js +3 -3
  138. package/dist/languages/pt-BR.js +3 -3
  139. package/dist/languages/ru-RU.js +3 -3
  140. package/dist/languages/sr-SP.js +3 -3
  141. package/dist/languages/zh-CN.js +3 -3
  142. package/dist/languages/zh-TW.js +3 -3
  143. package/editorManager.js +4 -4
  144. package/editorManager.mjs +3 -3
  145. package/editors/autocompleteEditor/autocompleteEditor.js +3 -3
  146. package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -3
  147. package/editors/baseEditor/baseEditor.js +2 -2
  148. package/editors/baseEditor/baseEditor.mjs +1 -1
  149. package/editors/dateEditor/dateEditor.js +2 -2
  150. package/editors/dateEditor/dateEditor.mjs +1 -1
  151. package/editors/dropdownEditor/dropdownEditor.js +1 -1
  152. package/editors/registry.js +1 -1
  153. package/editors/textEditor/textEditor.js +2 -2
  154. package/editors/textEditor/textEditor.mjs +1 -1
  155. package/eventManager.js +1 -1
  156. package/eventManager.mjs +1 -1
  157. package/focusManager.js +3 -3
  158. package/focusManager.mjs +3 -3
  159. package/helpers/dom/element.js +10 -0
  160. package/helpers/dom/element.mjs +9 -0
  161. package/helpers/mixed.js +2 -2
  162. package/helpers/mixed.mjs +1 -1
  163. package/helpers/string.js +1 -1
  164. package/i18n/languages/index.js +1 -1
  165. package/i18n/phraseFormatters/index.js +1 -1
  166. package/i18n/registry.js +1 -1
  167. package/index.js +1 -1
  168. package/languages/all.js +3 -3
  169. package/languages/ar-AR.js +3 -3
  170. package/languages/cs-CZ.js +3 -3
  171. package/languages/de-CH.js +3 -3
  172. package/languages/de-DE.js +3 -3
  173. package/languages/en-US.js +3 -3
  174. package/languages/es-MX.js +3 -3
  175. package/languages/fr-FR.js +3 -3
  176. package/languages/hr-HR.js +3 -3
  177. package/languages/index.js +3 -3
  178. package/languages/it-IT.js +3 -3
  179. package/languages/ja-JP.js +3 -3
  180. package/languages/ko-KR.js +3 -3
  181. package/languages/lv-LV.js +3 -3
  182. package/languages/nb-NO.js +3 -3
  183. package/languages/nl-NL.js +3 -3
  184. package/languages/pl-PL.js +3 -3
  185. package/languages/pt-BR.js +3 -3
  186. package/languages/ru-RU.js +3 -3
  187. package/languages/sr-SP.js +3 -3
  188. package/languages/zh-CN.js +3 -3
  189. package/languages/zh-TW.js +3 -3
  190. package/package.json +1 -2
  191. package/pluginHooks.d.ts +205 -205
  192. package/pluginHooks.js +1 -1
  193. package/pluginHooks.mjs +1 -1
  194. package/plugins/autoColumnSize/autoColumnSize.d.ts +1 -1
  195. package/plugins/autoColumnSize/autoColumnSize.js +123 -123
  196. package/plugins/autoColumnSize/autoColumnSize.mjs +122 -122
  197. package/plugins/autoRowSize/autoRowSize.d.ts +2 -1
  198. package/plugins/autoRowSize/autoRowSize.js +162 -100
  199. package/plugins/autoRowSize/autoRowSize.mjs +161 -99
  200. package/plugins/autofill/autofill.js +4 -4
  201. package/plugins/autofill/autofill.mjs +3 -3
  202. package/plugins/base/base.js +5 -5
  203. package/plugins/base/base.mjs +4 -4
  204. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -4
  205. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
  206. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -4
  207. package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -4
  208. package/plugins/columnSorting/columnSorting.js +4 -4
  209. package/plugins/columnSorting/columnSorting.mjs +3 -3
  210. package/plugins/columnSorting/columnStatesManager.js +1 -1
  211. package/plugins/columnSorting/columnStatesManager.mjs +1 -1
  212. package/plugins/columnSorting/sortService/registry.js +1 -1
  213. package/plugins/columnSorting/utils.js +1 -1
  214. package/plugins/columnSummary/columnSummary.js +4 -4
  215. package/plugins/columnSummary/columnSummary.mjs +3 -3
  216. package/plugins/columnSummary/endpoints.js +1 -1
  217. package/plugins/columnSummary/endpoints.mjs +1 -1
  218. package/plugins/comments/commentEditor.js +3 -3
  219. package/plugins/comments/commentEditor.mjs +2 -2
  220. package/plugins/comments/comments.js +5 -5
  221. package/plugins/comments/comments.mjs +4 -4
  222. package/plugins/comments/displaySwitch.js +2 -2
  223. package/plugins/comments/displaySwitch.mjs +1 -1
  224. package/plugins/comments/editorResizeObserver.js +4 -4
  225. package/plugins/comments/editorResizeObserver.mjs +3 -3
  226. package/plugins/contextMenu/commandExecutor.js +1 -1
  227. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  228. package/plugins/contextMenu/contextMenu.js +4 -4
  229. package/plugins/contextMenu/contextMenu.mjs +3 -3
  230. package/plugins/contextMenu/itemsFactory.js +1 -1
  231. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  232. package/plugins/contextMenu/menu/cursor.js +1 -1
  233. package/plugins/contextMenu/menu/cursor.mjs +1 -1
  234. package/plugins/contextMenu/menu/menu.js +4 -4
  235. package/plugins/contextMenu/menu/menu.mjs +3 -3
  236. package/plugins/contextMenu/menu/positioner.js +2 -2
  237. package/plugins/contextMenu/menu/positioner.mjs +2 -2
  238. package/plugins/copyPaste/copyPaste.js +5 -5
  239. package/plugins/copyPaste/copyPaste.mjs +4 -4
  240. package/plugins/copyPaste/copyableRanges.js +3 -3
  241. package/plugins/copyPaste/copyableRanges.mjs +3 -3
  242. package/plugins/copyPaste/pasteEvent.js +1 -1
  243. package/plugins/customBorders/contextMenuItem/index.js +1 -1
  244. package/plugins/customBorders/customBorders.js +3 -3
  245. package/plugins/customBorders/customBorders.mjs +3 -3
  246. package/plugins/dragToScroll/dragToScroll.js +3 -3
  247. package/plugins/dragToScroll/dragToScroll.mjs +3 -3
  248. package/plugins/dropdownMenu/dropdownMenu.js +5 -5
  249. package/plugins/dropdownMenu/dropdownMenu.mjs +4 -4
  250. package/plugins/exportFile/dataProvider.js +1 -1
  251. package/plugins/exportFile/dataProvider.mjs +1 -1
  252. package/plugins/exportFile/exportFile.js +1 -1
  253. package/plugins/exportFile/typeFactory.js +1 -1
  254. package/plugins/exportFile/types/_base.js +1 -1
  255. package/plugins/exportFile/types/_base.mjs +1 -1
  256. package/plugins/exportFile/types/csv.js +1 -1
  257. package/plugins/filters/component/_base.js +2 -2
  258. package/plugins/filters/component/_base.mjs +1 -1
  259. package/plugins/filters/component/actionBar.js +3 -3
  260. package/plugins/filters/component/actionBar.mjs +3 -3
  261. package/plugins/filters/component/condition.js +3 -3
  262. package/plugins/filters/component/condition.mjs +3 -3
  263. package/plugins/filters/component/operators.js +3 -3
  264. package/plugins/filters/component/operators.mjs +3 -3
  265. package/plugins/filters/component/value.js +3 -3
  266. package/plugins/filters/component/value.mjs +3 -3
  267. package/plugins/filters/condition/date/after.js +1 -1
  268. package/plugins/filters/condition/date/before.js +1 -1
  269. package/plugins/filters/condition/date/today.js +1 -1
  270. package/plugins/filters/condition/date/tomorrow.js +1 -1
  271. package/plugins/filters/condition/date/yesterday.js +1 -1
  272. package/plugins/filters/conditionCollection.js +2 -2
  273. package/plugins/filters/conditionCollection.mjs +1 -1
  274. package/plugins/filters/conditionUpdateObserver.js +4 -4
  275. package/plugins/filters/conditionUpdateObserver.mjs +3 -3
  276. package/plugins/filters/dataFilter.js +1 -1
  277. package/plugins/filters/dataFilter.mjs +1 -1
  278. package/plugins/filters/filters.js +5 -5
  279. package/plugins/filters/filters.mjs +4 -4
  280. package/plugins/filters/ui/_base.js +2 -2
  281. package/plugins/filters/ui/_base.mjs +1 -1
  282. package/plugins/filters/ui/input.js +3 -3
  283. package/plugins/filters/ui/input.mjs +3 -3
  284. package/plugins/filters/ui/link.js +2 -2
  285. package/plugins/filters/ui/link.mjs +2 -2
  286. package/plugins/filters/ui/multipleSelect.js +3 -3
  287. package/plugins/filters/ui/multipleSelect.mjs +3 -3
  288. package/plugins/filters/ui/radioInput.js +2 -2
  289. package/plugins/filters/ui/radioInput.mjs +2 -2
  290. package/plugins/filters/ui/select.js +3 -3
  291. package/plugins/filters/ui/select.mjs +3 -3
  292. package/plugins/formulas/engine/register.js +1 -1
  293. package/plugins/formulas/formulas.js +5 -5
  294. package/plugins/formulas/formulas.mjs +4 -4
  295. package/plugins/formulas/indexSyncer/axisSyncer.js +2 -2
  296. package/plugins/formulas/indexSyncer/axisSyncer.mjs +2 -2
  297. package/plugins/formulas/indexSyncer/index.js +3 -3
  298. package/plugins/formulas/indexSyncer/index.mjs +2 -2
  299. package/plugins/formulas/utils.js +1 -1
  300. package/plugins/hiddenColumns/hiddenColumns.js +4 -4
  301. package/plugins/hiddenColumns/hiddenColumns.mjs +3 -3
  302. package/plugins/hiddenRows/hiddenRows.js +4 -4
  303. package/plugins/hiddenRows/hiddenRows.mjs +3 -3
  304. package/plugins/manualColumnFreeze/manualColumnFreeze.js +4 -4
  305. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -3
  306. package/plugins/manualColumnMove/manualColumnMove.js +4 -4
  307. package/plugins/manualColumnMove/manualColumnMove.mjs +3 -3
  308. package/plugins/manualColumnMove/ui/_base.js +1 -1
  309. package/plugins/manualColumnMove/ui/_base.mjs +1 -1
  310. package/plugins/manualColumnMove/ui/backlight.js +1 -1
  311. package/plugins/manualColumnMove/ui/guideline.js +1 -1
  312. package/plugins/manualColumnResize/manualColumnResize.js +3 -3
  313. package/plugins/manualColumnResize/manualColumnResize.mjs +3 -3
  314. package/plugins/manualRowMove/manualRowMove.js +4 -4
  315. package/plugins/manualRowMove/manualRowMove.mjs +3 -3
  316. package/plugins/manualRowMove/ui/_base.js +1 -1
  317. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  318. package/plugins/manualRowMove/ui/backlight.js +1 -1
  319. package/plugins/manualRowMove/ui/guideline.js +1 -1
  320. package/plugins/manualRowResize/manualRowResize.js +3 -3
  321. package/plugins/manualRowResize/manualRowResize.mjs +3 -3
  322. package/plugins/mergeCells/calculations/autofill.js +1 -1
  323. package/plugins/mergeCells/calculations/autofill.mjs +1 -1
  324. package/plugins/mergeCells/calculations/selection.js +1 -1
  325. package/plugins/mergeCells/calculations/selection.mjs +1 -1
  326. package/plugins/mergeCells/cellCoords.js +3 -3
  327. package/plugins/mergeCells/cellCoords.mjs +3 -3
  328. package/plugins/mergeCells/cellsCollection.js +4 -4
  329. package/plugins/mergeCells/cellsCollection.mjs +3 -3
  330. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -1
  331. package/plugins/mergeCells/focusOrder.js +4 -4
  332. package/plugins/mergeCells/focusOrder.mjs +3 -3
  333. package/plugins/mergeCells/mergeCells.js +5 -5
  334. package/plugins/mergeCells/mergeCells.mjs +4 -4
  335. package/plugins/multiColumnSorting/multiColumnSorting.js +1 -1
  336. package/plugins/multiColumnSorting/multiColumnSorting.mjs +1 -1
  337. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +1 -1
  338. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +1 -1
  339. package/plugins/nestedHeaders/nestedHeaders.d.ts +1 -0
  340. package/plugins/nestedHeaders/nestedHeaders.js +19 -8
  341. package/plugins/nestedHeaders/nestedHeaders.mjs +18 -7
  342. package/plugins/nestedHeaders/stateManager/headersTree.js +3 -3
  343. package/plugins/nestedHeaders/stateManager/headersTree.mjs +2 -2
  344. package/plugins/nestedHeaders/stateManager/index.js +3 -3
  345. package/plugins/nestedHeaders/stateManager/index.mjs +2 -2
  346. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -1
  347. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -1
  348. package/plugins/nestedHeaders/stateManager/sourceSettings.js +2 -2
  349. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +2 -2
  350. package/plugins/nestedHeaders/stateManager/utils.js +6 -2
  351. package/plugins/nestedHeaders/stateManager/utils.mjs +6 -2
  352. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  353. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  354. package/plugins/nestedRows/data/dataManager.js +1 -1
  355. package/plugins/nestedRows/data/dataManager.mjs +1 -1
  356. package/plugins/nestedRows/nestedRows.js +5 -5
  357. package/plugins/nestedRows/nestedRows.mjs +4 -4
  358. package/plugins/nestedRows/ui/_base.js +1 -1
  359. package/plugins/nestedRows/ui/_base.mjs +1 -1
  360. package/plugins/nestedRows/ui/collapsing.js +1 -1
  361. package/plugins/nestedRows/ui/contextMenu.js +4 -4
  362. package/plugins/nestedRows/ui/contextMenu.mjs +3 -3
  363. package/plugins/nestedRows/ui/headers.js +1 -1
  364. package/plugins/nestedRows/utils/rowMoveController.js +1 -1
  365. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -1
  366. package/plugins/persistentState/persistentState.js +2 -2
  367. package/plugins/persistentState/persistentState.mjs +1 -1
  368. package/plugins/persistentState/storage.js +1 -1
  369. package/plugins/persistentState/storage.mjs +1 -1
  370. package/plugins/search/search.js +3 -3
  371. package/plugins/search/search.mjs +3 -3
  372. package/plugins/touchScroll/touchScroll.js +3 -3
  373. package/plugins/touchScroll/touchScroll.mjs +3 -3
  374. package/plugins/trimRows/trimRows.js +3 -3
  375. package/plugins/trimRows/trimRows.mjs +3 -3
  376. package/plugins/undoRedo/undoRedo.js +1 -1
  377. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -1
  378. package/renderers/checkboxRenderer/checkboxRenderer.js +1 -1
  379. package/renderers/numericRenderer/numericRenderer.js +1 -1
  380. package/renderers/registry.js +1 -1
  381. package/selection/highlight/highlight.js +3 -3
  382. package/selection/highlight/highlight.mjs +3 -3
  383. package/selection/highlight/types/activeHeader.js +1 -1
  384. package/selection/highlight/types/area.js +1 -1
  385. package/selection/highlight/types/areaLayered.js +1 -1
  386. package/selection/highlight/types/column.js +1 -1
  387. package/selection/highlight/types/customSelection.js +1 -1
  388. package/selection/highlight/types/fill.js +1 -1
  389. package/selection/highlight/types/focus.js +1 -1
  390. package/selection/highlight/types/header.js +1 -1
  391. package/selection/highlight/types/row.js +1 -1
  392. package/selection/highlight/visualSelection.js +1 -1
  393. package/selection/highlight/visualSelection.mjs +1 -1
  394. package/selection/index.js +1 -1
  395. package/selection/range.js +1 -1
  396. package/selection/range.mjs +1 -1
  397. package/selection/selection.js +4 -4
  398. package/selection/selection.mjs +3 -3
  399. package/selection/transformation.js +4 -4
  400. package/selection/transformation.mjs +3 -3
  401. package/settings.d.ts +1 -0
  402. package/tableView.js +46 -18
  403. package/tableView.mjs +46 -18
  404. package/translations/changesObservable/observable.js +2 -2
  405. package/translations/changesObservable/observable.mjs +2 -2
  406. package/translations/changesObservable/observer.js +3 -3
  407. package/translations/changesObservable/observer.mjs +2 -2
  408. package/translations/indexMapper.js +2 -2
  409. package/translations/indexMapper.mjs +1 -1
  410. package/translations/mapCollections/aggregatedCollection.js +1 -1
  411. package/translations/mapCollections/aggregatedCollection.mjs +1 -1
  412. package/translations/mapCollections/mapCollection.js +2 -2
  413. package/translations/mapCollections/mapCollection.mjs +1 -1
  414. package/translations/maps/indexMap.js +2 -2
  415. package/translations/maps/indexMap.mjs +1 -1
  416. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
  417. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
  418. package/utils/dataStructures/linkedList.js +1 -1
  419. package/utils/dataStructures/linkedList.mjs +1 -1
  420. package/utils/dataStructures/tree.js +1 -1
  421. package/utils/dataStructures/tree.mjs +1 -1
  422. package/utils/ghostTable.js +1 -1
  423. package/utils/ghostTable.mjs +1 -1
  424. package/utils/interval.js +4 -4
  425. package/utils/interval.mjs +4 -4
  426. package/utils/samplesGenerator.js +1 -1
  427. package/utils/samplesGenerator.mjs +1 -1
  428. package/validators/dateValidator/dateValidator.js +1 -1
  429. package/validators/registry.js +1 -1
  430. package/validators/timeValidator/timeValidator.js +1 -1
@@ -2,22 +2,24 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/es.array.push.js");
5
6
  var _base = require("../base");
6
- var _array = require("../../helpers/array");
7
7
  var _feature = require("../../helpers/feature");
8
- var _element = require("../../helpers/dom/element");
9
8
  var _ghostTable = _interopRequireDefault(require("../../utils/ghostTable"));
10
9
  var _object = require("../../helpers/object");
11
10
  var _number = require("../../helpers/number");
12
11
  var _samplesGenerator = _interopRequireDefault(require("../../utils/samplesGenerator"));
13
12
  var _string = require("../../helpers/string");
14
13
  var _translations = require("../../translations");
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
- function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
17
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
18
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
16
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
17
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
18
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
19
19
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
20
20
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
21
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
22
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
21
23
  function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
22
24
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'autoRowSize';
23
25
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 40;
@@ -107,6 +109,7 @@ const ROW_WIDTHS_MAP_NAME = 'autoRowSize';
107
109
  * :::
108
110
  */
109
111
  /* eslint-enable jsdoc/require-description-complete-sentence */
112
+ var _visualRowsToRefresh = /*#__PURE__*/new WeakMap();
110
113
  var _AutoRowSize_brand = /*#__PURE__*/new WeakSet();
111
114
  class AutoRowSize extends _base.BasePlugin {
112
115
  static get PLUGIN_KEY() {
@@ -135,7 +138,9 @@ class AutoRowSize extends _base.BasePlugin {
135
138
  constructor(hotInstance) {
136
139
  super(hotInstance);
137
140
  /**
138
- * On before view render listener.
141
+ * Calculates specific rows height (overwrite cache values).
142
+ *
143
+ * @param {number[]} visualRows List of visual rows to calculate.
139
144
  */
140
145
  _classPrivateMethodInitSpec(this, _AutoRowSize_brand);
141
146
  _defineProperty(this, "headerHeight", null);
@@ -175,13 +180,6 @@ class AutoRowSize extends _base.BasePlugin {
175
180
  value: cellValue
176
181
  };
177
182
  }));
178
- /**
179
- * `true` if only the first calculation was performed.
180
- *
181
- * @private
182
- * @type {boolean}
183
- */
184
- _defineProperty(this, "firstCalculation", true);
185
183
  /**
186
184
  * `true` if the size calculation is in progress.
187
185
  *
@@ -201,6 +199,12 @@ class AutoRowSize extends _base.BasePlugin {
201
199
  * @type {PhysicalIndexToValueMap}
202
200
  */
203
201
  _defineProperty(this, "rowHeightsMap", new _translations.PhysicalIndexToValueMap());
202
+ /**
203
+ * An array of row indexes whose height will be recalculated.
204
+ *
205
+ * @type {number[]}
206
+ */
207
+ _classPrivateFieldInitSpec(this, _visualRowsToRefresh, []);
204
208
  this.hot.rowIndexMapper.registerMap(ROW_WIDTHS_MAP_NAME, this.rowHeightsMap);
205
209
 
206
210
  // Leave the listener active to allow auto-sizing the rows when the plugin is disabled.
@@ -234,10 +238,22 @@ class AutoRowSize extends _base.BasePlugin {
234
238
  }
235
239
  return _assertClassBrand(_AutoRowSize_brand, _this, _onAfterLoadData).call(_this, ...args);
236
240
  });
237
- this.addHook('beforeChangeRender', changes => _assertClassBrand(_AutoRowSize_brand, this, _onBeforeChange).call(this, changes));
241
+ this.addHook('beforeChangeRender', function () {
242
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
243
+ args[_key2] = arguments[_key2];
244
+ }
245
+ return _assertClassBrand(_AutoRowSize_brand, _this, _onBeforeChange).call(_this, ...args);
246
+ });
238
247
  this.addHook('beforeColumnResize', () => this.recalculateAllRowsHeight());
239
- this.addHook('beforeViewRender', force => _assertClassBrand(_AutoRowSize_brand, this, _onBeforeViewRender).call(this, force));
248
+ this.addHook('afterFormulasValuesUpdate', function () {
249
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
250
+ args[_key3] = arguments[_key3];
251
+ }
252
+ return _assertClassBrand(_AutoRowSize_brand, _this, _onAfterFormulasValuesUpdate).call(_this, ...args);
253
+ });
254
+ this.addHook('beforeRender', () => _assertClassBrand(_AutoRowSize_brand, this, _onBeforeRender).call(this));
240
255
  this.addHook('modifyRowHeight', (height, row) => this.getRowHeight(row, height));
256
+ this.addHook('init', () => _assertClassBrand(_AutoRowSize_brand, this, _onInit).call(this));
241
257
  this.addHook('modifyColumnHeaderHeight', () => this.getColumnHeaderHeight());
242
258
  super.enablePlugin();
243
259
  }
@@ -250,16 +266,36 @@ class AutoRowSize extends _base.BasePlugin {
250
266
  super.disablePlugin();
251
267
 
252
268
  // Leave the listener active to allow auto-sizing the rows when the plugin is disabled.
253
- // This is necesseary for height recalculation for resize handler doubleclick (ManualRowResize).
269
+ // This is necessary for height recalculation for resize handler doubleclick (ManualRowResize).
254
270
  this.addHook('beforeRowResize', (size, row, isDblClick) => _assertClassBrand(_AutoRowSize_brand, this, _onBeforeRowResize).call(this, size, row, isDblClick));
255
271
  }
256
272
 
273
+ /**
274
+ * Calculates heights for visible rows in the viewport only.
275
+ */
276
+ calculateVisibleRowsHeight() {
277
+ // Keep last row heights unchanged for situation when all columns was deleted or trimmed
278
+ if (!this.hot.countCols()) {
279
+ return;
280
+ }
281
+ const firstVisibleRow = this.getFirstVisibleRow();
282
+ const lastVisibleRow = this.getLastVisibleRow();
283
+ if (firstVisibleRow === -1 || lastVisibleRow === -1) {
284
+ return;
285
+ }
286
+ const overwriteCache = this.hot.renderCall;
287
+ this.calculateRowsHeight({
288
+ from: firstVisibleRow,
289
+ to: lastVisibleRow
290
+ }, undefined, overwriteCache);
291
+ }
292
+
257
293
  /**
258
294
  * Calculate a given rows height.
259
295
  *
260
296
  * @param {number|object} rowRange Row index or an object with `from` and `to` indexes as a range.
261
297
  * @param {number|object} colRange Column index or an object with `from` and `to` indexes as a range.
262
- * @param {boolean} [force=false] If `true` the calculation will be processed regardless of whether the width exists in the cache.
298
+ * @param {boolean} [overwriteCache=false] If `true` the calculation will be processed regardless of whether the width exists in the cache.
263
299
  */
264
300
  calculateRowsHeight() {
265
301
  let rowRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
@@ -270,8 +306,7 @@ class AutoRowSize extends _base.BasePlugin {
270
306
  from: 0,
271
307
  to: this.hot.countCols() - 1
272
308
  };
273
- let force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
274
- // eslint-disable-line max-len
309
+ let overwriteCache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
275
310
  const rowsRange = typeof rowRange === 'number' ? {
276
311
  from: rowRange,
277
312
  to: rowRange
@@ -284,15 +319,17 @@ class AutoRowSize extends _base.BasePlugin {
284
319
  const samples = this.samplesGenerator.generateRowSamples(-1, columnsRange);
285
320
  this.ghostTable.addColumnHeadersRow(samples.get(-1));
286
321
  }
287
- (0, _number.rangeEach)(rowsRange.from, rowsRange.to, row => {
322
+ (0, _number.rangeEach)(rowsRange.from, rowsRange.to, visualRow => {
323
+ let physicalRow = this.hot.toPhysicalRow(visualRow);
324
+ if (physicalRow === null) {
325
+ physicalRow = visualRow;
326
+ }
327
+
288
328
  // For rows we must calculate row height even when user had set height value manually.
289
329
  // We can shrink column but cannot shrink rows!
290
- if (force || this.rowHeightsMap.getValueAtIndex(row) === null) {
291
- const samples = this.samplesGenerator.generateRowSamples(row, columnsRange);
292
- (0, _array.arrayEach)(samples, _ref => {
293
- let [rowIndex, sample] = _ref;
294
- return this.ghostTable.addRow(rowIndex, sample);
295
- });
330
+ if (overwriteCache || this.rowHeightsMap.getValueAtIndex(physicalRow) === null) {
331
+ const samples = this.samplesGenerator.generateRowSamples(visualRow, columnsRange);
332
+ samples.forEach((sample, row) => this.ghostTable.addRow(row, sample));
296
333
  }
297
334
  });
298
335
  if (this.ghostTable.rows.length) {
@@ -315,12 +352,14 @@ class AutoRowSize extends _base.BasePlugin {
315
352
  * To retrieve height for specified row use {@link AutoRowSize#getRowHeight} method.
316
353
  *
317
354
  * @param {object|number} colRange Row index or an object with `from` and `to` properties which define row range.
355
+ * @param {boolean} [overwriteCache] If `true` the calculation will be processed regardless of whether the width exists in the cache.
318
356
  */
319
357
  calculateAllRowsHeight() {
320
358
  let colRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
321
359
  from: 0,
322
360
  to: this.hot.countCols() - 1
323
361
  };
362
+ let overwriteCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
324
363
  let current = 0;
325
364
  const length = this.hot.countRows() - 1;
326
365
  let timer = null;
@@ -335,7 +374,7 @@ class AutoRowSize extends _base.BasePlugin {
335
374
  this.calculateRowsHeight({
336
375
  from: current,
337
376
  to: Math.min(current + AutoRowSize.CALCULATION_STEP, length)
338
- }, colRange);
377
+ }, colRange, overwriteCache);
339
378
  current = current + AutoRowSize.CALCULATION_STEP + 1;
340
379
  if (current < length) {
341
380
  timer = (0, _feature.requestAnimationFrame)(loop);
@@ -355,12 +394,11 @@ class AutoRowSize extends _base.BasePlugin {
355
394
  const syncLimit = this.getSyncCalculationLimit();
356
395
 
357
396
  // sync
358
- if (this.firstCalculation && syncLimit >= 0) {
397
+ if (syncLimit >= 0) {
359
398
  this.calculateRowsHeight({
360
399
  from: 0,
361
400
  to: syncLimit
362
- }, colRange);
363
- this.firstCalculation = false;
401
+ }, colRange, overwriteCache);
364
402
  current = syncLimit + 1;
365
403
  }
366
404
  // async
@@ -371,7 +409,6 @@ class AutoRowSize extends _base.BasePlugin {
371
409
  this.hot.view.adjustElementsSize();
372
410
  }
373
411
  }
374
-
375
412
  /**
376
413
  * Sets the sampling options.
377
414
  *
@@ -393,9 +430,11 @@ class AutoRowSize extends _base.BasePlugin {
393
430
  * Recalculates all rows height (overwrite cache values).
394
431
  */
395
432
  recalculateAllRowsHeight() {
396
- if ((0, _element.isVisible)(this.hot.view._wt.wtTable.TABLE)) {
397
- this.clearCache();
398
- this.calculateAllRowsHeight();
433
+ if (this.hot.view.isVisible()) {
434
+ this.calculateAllRowsHeight({
435
+ from: 0,
436
+ to: this.hot.countCols() - 1
437
+ }, true);
399
438
  }
400
439
  }
401
440
 
@@ -435,8 +474,7 @@ class AutoRowSize extends _base.BasePlugin {
435
474
  * @param {number} [defaultHeight] If no height is found, `defaultHeight` is returned instead.
436
475
  * @returns {number} The height of the specified row, in pixels.
437
476
  */
438
- getRowHeight(row) {
439
- let defaultHeight = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
477
+ getRowHeight(row, defaultHeight) {
440
478
  const cachedHeight = row < 0 ? this.headerHeight : this.rowHeightsMap.getValueAtIndex(this.hot.toPhysicalRow(row));
441
479
  let height = defaultHeight;
442
480
  if (cachedHeight !== null && cachedHeight > (defaultHeight || 0)) {
@@ -460,14 +498,8 @@ class AutoRowSize extends _base.BasePlugin {
460
498
  * @returns {number} Returns row index, -1 if table is not rendered or if there are no rows to base the the calculations on.
461
499
  */
462
500
  getFirstVisibleRow() {
463
- const wot = this.hot.view._wt;
464
- if (wot.wtViewport.rowsVisibleCalculator) {
465
- return wot.wtTable.getFirstVisibleRow();
466
- }
467
- if (wot.wtViewport.rowsRenderCalculator) {
468
- return wot.wtTable.getFirstRenderedRow();
469
- }
470
- return -1;
501
+ var _this$hot$view$getFir;
502
+ return (_this$hot$view$getFir = this.hot.view.getFirstRenderedVisibleRow()) !== null && _this$hot$view$getFir !== void 0 ? _this$hot$view$getFir : -1;
471
503
  }
472
504
 
473
505
  /**
@@ -476,22 +508,27 @@ class AutoRowSize extends _base.BasePlugin {
476
508
  * @returns {number} Returns row index or -1 if table is not rendered.
477
509
  */
478
510
  getLastVisibleRow() {
479
- const wot = this.hot.view._wt;
480
- if (wot.wtViewport.rowsVisibleCalculator) {
481
- return wot.wtTable.getLastVisibleRow();
482
- }
483
- if (wot.wtViewport.rowsRenderCalculator) {
484
- return wot.wtTable.getLastRenderedRow();
485
- }
486
- return -1;
511
+ var _this$hot$view$getLas;
512
+ return (_this$hot$view$getLas = this.hot.view.getLastRenderedVisibleRow()) !== null && _this$hot$view$getLas !== void 0 ? _this$hot$view$getLas : -1;
487
513
  }
488
514
 
489
515
  /**
490
- * Clears cached heights.
516
+ * Clears cache of calculated row heights. If you want to clear only selected rows pass an array with their indexes.
517
+ * Otherwise whole cache will be cleared.
518
+ *
519
+ * @param {number[]} [physicalRows] List of physical row indexes to clear.
491
520
  */
492
- clearCache() {
521
+ clearCache(physicalRows) {
493
522
  this.headerHeight = null;
494
- this.rowHeightsMap.init();
523
+ if (Array.isArray(physicalRows)) {
524
+ this.hot.batchExecution(() => {
525
+ physicalRows.forEach(physicalIndex => {
526
+ this.rowHeightsMap.setValueAtIndex(physicalIndex, null);
527
+ });
528
+ }, true);
529
+ } else {
530
+ this.rowHeightsMap.clear();
531
+ }
495
532
  }
496
533
 
497
534
  /**
@@ -520,8 +557,13 @@ class AutoRowSize extends _base.BasePlugin {
520
557
  * @returns {boolean}
521
558
  */
522
559
  isNeedRecalculate() {
523
- return !!(0, _array.arrayFilter)(this.rowHeightsMap.getValues().slice(0, this.measuredRows), item => item === null).length;
560
+ return !!this.rowHeightsMap.getValues().slice(0, this.measuredRows).filter(item => item === null).length;
524
561
  }
562
+
563
+ /**
564
+ * On before view render listener.
565
+ */
566
+
525
567
  /**
526
568
  * Destroys the plugin instance.
527
569
  */
@@ -531,29 +573,32 @@ class AutoRowSize extends _base.BasePlugin {
531
573
  }
532
574
  }
533
575
  exports.AutoRowSize = AutoRowSize;
534
- function _onBeforeViewRender() {
535
- const force = this.hot.renderCall;
536
- const fixedRowsBottom = this.hot.getSettings().fixedRowsBottom;
537
- const firstVisibleRow = this.getFirstVisibleRow();
538
- const lastVisibleRow = this.getLastVisibleRow();
539
- if (firstVisibleRow === -1 || lastVisibleRow === -1) {
540
- return;
541
- }
542
- this.calculateRowsHeight({
543
- from: firstVisibleRow,
544
- to: lastVisibleRow
545
- }, undefined, force);
546
-
547
- // Calculate rows height synchronously for bottom overlay
548
- if (fixedRowsBottom) {
549
- const totalRows = this.hot.countRows() - 1;
550
- this.calculateRowsHeight({
551
- from: totalRows - fixedRowsBottom,
552
- to: totalRows
553
- });
576
+ function _calculateSpecificRowsHeight(visualRows) {
577
+ const columnsRange = {
578
+ from: 0,
579
+ to: this.hot.countCols() - 1
580
+ };
581
+ visualRows.forEach(visualRow => {
582
+ // For rows we must calculate row height even when user had set height value manually.
583
+ // We can shrink column but cannot shrink rows!
584
+ const samples = this.samplesGenerator.generateRowSamples(visualRow, columnsRange);
585
+ samples.forEach((sample, row) => this.ghostTable.addRow(row, sample));
586
+ });
587
+ if (this.ghostTable.rows.length) {
588
+ this.hot.batchExecution(() => {
589
+ this.ghostTable.getHeights((visualRow, height) => {
590
+ const physicalRow = this.hot.toPhysicalRow(visualRow);
591
+ this.rowHeightsMap.setValueAtIndex(physicalRow, height);
592
+ });
593
+ }, true);
594
+ this.ghostTable.clean();
554
595
  }
555
- if (this.isNeedRecalculate() && !this.inProgress) {
556
- this.calculateAllRowsHeight();
596
+ }
597
+ function _onBeforeRender() {
598
+ this.calculateVisibleRowsHeight();
599
+ if (!this.inProgress) {
600
+ _assertClassBrand(_AutoRowSize_brand, this, _calculateSpecificRowsHeight).call(this, _classPrivateFieldGet(_visualRowsToRefresh, this));
601
+ _classPrivateFieldSet(_visualRowsToRefresh, this, []);
557
602
  }
558
603
  }
559
604
  /**
@@ -574,17 +619,13 @@ function _onBeforeRowResize(size, row, isDblClick) {
574
619
  }
575
620
  /**
576
621
  * On after load data listener.
622
+ *
623
+ * @param {Array} sourceData Source data.
624
+ * @param {boolean} isFirstLoad `true` if this is the first load.
577
625
  */
578
- function _onAfterLoadData() {
579
- if (this.hot.view) {
626
+ function _onAfterLoadData(sourceData, isFirstLoad) {
627
+ if (!isFirstLoad) {
580
628
  this.recalculateAllRowsHeight();
581
- } else {
582
- // first load - initialization
583
- this.hot._registerTimeout(() => {
584
- if (this.hot) {
585
- this.recalculateAllRowsHeight();
586
- }
587
- });
588
629
  }
589
630
  }
590
631
  /**
@@ -593,16 +634,37 @@ function _onAfterLoadData() {
593
634
  * @param {Array} changes 2D array containing information about each of the edited cells.
594
635
  */
595
636
  function _onBeforeChange(changes) {
596
- let range = null;
597
- if (changes.length === 1) {
598
- range = changes[0][0];
599
- } else if (changes.length > 1) {
600
- range = {
601
- from: changes[0][0],
602
- to: changes[changes.length - 1][0]
603
- };
604
- }
605
- if (range !== null) {
606
- this.clearCacheByRange(range);
607
- }
637
+ const changedRows = changes.reduce((acc, _ref) => {
638
+ let [row] = _ref;
639
+ if (acc.indexOf(row) === -1) {
640
+ acc.push(row);
641
+ }
642
+ return acc;
643
+ }, []);
644
+ _classPrivateFieldGet(_visualRowsToRefresh, this).push(...changedRows);
645
+ }
646
+ /**
647
+ * On after Handsontable init plugin with all necessary values.
648
+ */
649
+ function _onInit() {
650
+ this.recalculateAllRowsHeight();
651
+ }
652
+ /**
653
+ * After formulas values updated listener.
654
+ *
655
+ * @param {Array} changes An array of modified data.
656
+ */
657
+ function _onAfterFormulasValuesUpdate(changes) {
658
+ const changedRows = changes.reduce((acc, change) => {
659
+ var _change$address;
660
+ const physicalRow = (_change$address = change.address) === null || _change$address === void 0 ? void 0 : _change$address.row;
661
+ if (Number.isInteger(physicalRow)) {
662
+ const visualRow = this.hot.toVisualRow(physicalRow);
663
+ if (acc.indexOf(visualRow) === -1) {
664
+ acc.push(visualRow);
665
+ }
666
+ }
667
+ return acc;
668
+ }, []);
669
+ _classPrivateFieldGet(_visualRowsToRefresh, this).push(...changedRows);
608
670
  }