handsontable 0.0.0-next-c2596d4-20240705 → 0.0.0-next-2cb2d27-20240709

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 (427) 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 +7 -5
  115. package/dist/handsontable.full.css +7 -5
  116. package/dist/handsontable.full.js +566 -486
  117. package/dist/handsontable.full.min.css +3 -3
  118. package/dist/handsontable.full.min.js +15 -15
  119. package/dist/handsontable.js +562 -429
  120. package/dist/handsontable.min.css +3 -3
  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/mixed.js +2 -2
  160. package/helpers/mixed.mjs +1 -1
  161. package/helpers/string.js +1 -1
  162. package/i18n/languages/index.js +1 -1
  163. package/i18n/phraseFormatters/index.js +1 -1
  164. package/i18n/registry.js +1 -1
  165. package/index.js +1 -1
  166. package/languages/all.js +3 -3
  167. package/languages/ar-AR.js +3 -3
  168. package/languages/cs-CZ.js +3 -3
  169. package/languages/de-CH.js +3 -3
  170. package/languages/de-DE.js +3 -3
  171. package/languages/en-US.js +3 -3
  172. package/languages/es-MX.js +3 -3
  173. package/languages/fr-FR.js +3 -3
  174. package/languages/hr-HR.js +3 -3
  175. package/languages/index.js +3 -3
  176. package/languages/it-IT.js +3 -3
  177. package/languages/ja-JP.js +3 -3
  178. package/languages/ko-KR.js +3 -3
  179. package/languages/lv-LV.js +3 -3
  180. package/languages/nb-NO.js +3 -3
  181. package/languages/nl-NL.js +3 -3
  182. package/languages/pl-PL.js +3 -3
  183. package/languages/pt-BR.js +3 -3
  184. package/languages/ru-RU.js +3 -3
  185. package/languages/sr-SP.js +3 -3
  186. package/languages/zh-CN.js +3 -3
  187. package/languages/zh-TW.js +3 -3
  188. package/package.json +1 -2
  189. package/pluginHooks.js +1 -1
  190. package/pluginHooks.mjs +1 -1
  191. package/plugins/autoColumnSize/autoColumnSize.d.ts +1 -1
  192. package/plugins/autoColumnSize/autoColumnSize.js +123 -123
  193. package/plugins/autoColumnSize/autoColumnSize.mjs +122 -122
  194. package/plugins/autoRowSize/autoRowSize.d.ts +2 -1
  195. package/plugins/autoRowSize/autoRowSize.js +162 -100
  196. package/plugins/autoRowSize/autoRowSize.mjs +161 -99
  197. package/plugins/autofill/autofill.js +4 -4
  198. package/plugins/autofill/autofill.mjs +3 -3
  199. package/plugins/base/base.js +5 -5
  200. package/plugins/base/base.mjs +4 -4
  201. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -4
  202. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
  203. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -4
  204. package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -4
  205. package/plugins/columnSorting/columnSorting.js +4 -4
  206. package/plugins/columnSorting/columnSorting.mjs +3 -3
  207. package/plugins/columnSorting/columnStatesManager.js +1 -1
  208. package/plugins/columnSorting/columnStatesManager.mjs +1 -1
  209. package/plugins/columnSorting/sortService/registry.js +1 -1
  210. package/plugins/columnSorting/utils.js +1 -1
  211. package/plugins/columnSummary/columnSummary.js +4 -4
  212. package/plugins/columnSummary/columnSummary.mjs +3 -3
  213. package/plugins/columnSummary/endpoints.js +1 -1
  214. package/plugins/columnSummary/endpoints.mjs +1 -1
  215. package/plugins/comments/commentEditor.js +3 -3
  216. package/plugins/comments/commentEditor.mjs +2 -2
  217. package/plugins/comments/comments.js +5 -5
  218. package/plugins/comments/comments.mjs +4 -4
  219. package/plugins/comments/displaySwitch.js +2 -2
  220. package/plugins/comments/displaySwitch.mjs +1 -1
  221. package/plugins/comments/editorResizeObserver.js +4 -4
  222. package/plugins/comments/editorResizeObserver.mjs +3 -3
  223. package/plugins/contextMenu/commandExecutor.js +1 -1
  224. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  225. package/plugins/contextMenu/contextMenu.js +4 -4
  226. package/plugins/contextMenu/contextMenu.mjs +3 -3
  227. package/plugins/contextMenu/itemsFactory.js +1 -1
  228. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  229. package/plugins/contextMenu/menu/cursor.js +1 -1
  230. package/plugins/contextMenu/menu/cursor.mjs +1 -1
  231. package/plugins/contextMenu/menu/menu.js +4 -4
  232. package/plugins/contextMenu/menu/menu.mjs +3 -3
  233. package/plugins/contextMenu/menu/positioner.js +2 -2
  234. package/plugins/contextMenu/menu/positioner.mjs +2 -2
  235. package/plugins/copyPaste/copyPaste.js +5 -5
  236. package/plugins/copyPaste/copyPaste.mjs +4 -4
  237. package/plugins/copyPaste/copyableRanges.js +3 -3
  238. package/plugins/copyPaste/copyableRanges.mjs +3 -3
  239. package/plugins/copyPaste/pasteEvent.js +1 -1
  240. package/plugins/customBorders/contextMenuItem/index.js +1 -1
  241. package/plugins/customBorders/customBorders.js +3 -3
  242. package/plugins/customBorders/customBorders.mjs +3 -3
  243. package/plugins/dragToScroll/dragToScroll.js +3 -3
  244. package/plugins/dragToScroll/dragToScroll.mjs +3 -3
  245. package/plugins/dropdownMenu/dropdownMenu.js +5 -5
  246. package/plugins/dropdownMenu/dropdownMenu.mjs +4 -4
  247. package/plugins/exportFile/dataProvider.js +1 -1
  248. package/plugins/exportFile/dataProvider.mjs +1 -1
  249. package/plugins/exportFile/exportFile.js +1 -1
  250. package/plugins/exportFile/typeFactory.js +1 -1
  251. package/plugins/exportFile/types/_base.js +1 -1
  252. package/plugins/exportFile/types/_base.mjs +1 -1
  253. package/plugins/exportFile/types/csv.js +1 -1
  254. package/plugins/filters/component/_base.js +2 -2
  255. package/plugins/filters/component/_base.mjs +1 -1
  256. package/plugins/filters/component/actionBar.js +3 -3
  257. package/plugins/filters/component/actionBar.mjs +3 -3
  258. package/plugins/filters/component/condition.js +3 -3
  259. package/plugins/filters/component/condition.mjs +3 -3
  260. package/plugins/filters/component/operators.js +3 -3
  261. package/plugins/filters/component/operators.mjs +3 -3
  262. package/plugins/filters/component/value.js +3 -3
  263. package/plugins/filters/component/value.mjs +3 -3
  264. package/plugins/filters/condition/date/after.js +1 -1
  265. package/plugins/filters/condition/date/before.js +1 -1
  266. package/plugins/filters/condition/date/today.js +1 -1
  267. package/plugins/filters/condition/date/tomorrow.js +1 -1
  268. package/plugins/filters/condition/date/yesterday.js +1 -1
  269. package/plugins/filters/conditionCollection.js +2 -2
  270. package/plugins/filters/conditionCollection.mjs +1 -1
  271. package/plugins/filters/conditionUpdateObserver.js +4 -4
  272. package/plugins/filters/conditionUpdateObserver.mjs +3 -3
  273. package/plugins/filters/dataFilter.js +1 -1
  274. package/plugins/filters/dataFilter.mjs +1 -1
  275. package/plugins/filters/filters.js +5 -5
  276. package/plugins/filters/filters.mjs +4 -4
  277. package/plugins/filters/ui/_base.js +2 -2
  278. package/plugins/filters/ui/_base.mjs +1 -1
  279. package/plugins/filters/ui/input.js +3 -3
  280. package/plugins/filters/ui/input.mjs +3 -3
  281. package/plugins/filters/ui/link.js +2 -2
  282. package/plugins/filters/ui/link.mjs +2 -2
  283. package/plugins/filters/ui/multipleSelect.js +3 -3
  284. package/plugins/filters/ui/multipleSelect.mjs +3 -3
  285. package/plugins/filters/ui/radioInput.js +2 -2
  286. package/plugins/filters/ui/radioInput.mjs +2 -2
  287. package/plugins/filters/ui/select.js +3 -3
  288. package/plugins/filters/ui/select.mjs +3 -3
  289. package/plugins/formulas/engine/register.js +1 -1
  290. package/plugins/formulas/formulas.js +5 -5
  291. package/plugins/formulas/formulas.mjs +4 -4
  292. package/plugins/formulas/indexSyncer/axisSyncer.js +2 -2
  293. package/plugins/formulas/indexSyncer/axisSyncer.mjs +2 -2
  294. package/plugins/formulas/indexSyncer/index.js +3 -3
  295. package/plugins/formulas/indexSyncer/index.mjs +2 -2
  296. package/plugins/formulas/utils.js +1 -1
  297. package/plugins/hiddenColumns/hiddenColumns.js +4 -4
  298. package/plugins/hiddenColumns/hiddenColumns.mjs +3 -3
  299. package/plugins/hiddenRows/hiddenRows.js +4 -4
  300. package/plugins/hiddenRows/hiddenRows.mjs +3 -3
  301. package/plugins/manualColumnFreeze/manualColumnFreeze.js +4 -4
  302. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -3
  303. package/plugins/manualColumnMove/manualColumnMove.js +4 -4
  304. package/plugins/manualColumnMove/manualColumnMove.mjs +3 -3
  305. package/plugins/manualColumnMove/ui/_base.js +1 -1
  306. package/plugins/manualColumnMove/ui/_base.mjs +1 -1
  307. package/plugins/manualColumnMove/ui/backlight.js +1 -1
  308. package/plugins/manualColumnMove/ui/guideline.js +1 -1
  309. package/plugins/manualColumnResize/manualColumnResize.js +3 -3
  310. package/plugins/manualColumnResize/manualColumnResize.mjs +3 -3
  311. package/plugins/manualRowMove/manualRowMove.js +4 -4
  312. package/plugins/manualRowMove/manualRowMove.mjs +3 -3
  313. package/plugins/manualRowMove/ui/_base.js +1 -1
  314. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  315. package/plugins/manualRowMove/ui/backlight.js +1 -1
  316. package/plugins/manualRowMove/ui/guideline.js +1 -1
  317. package/plugins/manualRowResize/manualRowResize.js +3 -3
  318. package/plugins/manualRowResize/manualRowResize.mjs +3 -3
  319. package/plugins/mergeCells/calculations/autofill.js +1 -1
  320. package/plugins/mergeCells/calculations/autofill.mjs +1 -1
  321. package/plugins/mergeCells/calculations/selection.js +1 -1
  322. package/plugins/mergeCells/calculations/selection.mjs +1 -1
  323. package/plugins/mergeCells/cellCoords.js +3 -3
  324. package/plugins/mergeCells/cellCoords.mjs +3 -3
  325. package/plugins/mergeCells/cellsCollection.js +4 -4
  326. package/plugins/mergeCells/cellsCollection.mjs +3 -3
  327. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -1
  328. package/plugins/mergeCells/focusOrder.js +4 -4
  329. package/plugins/mergeCells/focusOrder.mjs +3 -3
  330. package/plugins/mergeCells/mergeCells.js +5 -5
  331. package/plugins/mergeCells/mergeCells.mjs +4 -4
  332. package/plugins/multiColumnSorting/multiColumnSorting.js +1 -1
  333. package/plugins/multiColumnSorting/multiColumnSorting.mjs +1 -1
  334. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +1 -1
  335. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +1 -1
  336. package/plugins/nestedHeaders/nestedHeaders.d.ts +1 -0
  337. package/plugins/nestedHeaders/nestedHeaders.js +19 -8
  338. package/plugins/nestedHeaders/nestedHeaders.mjs +18 -7
  339. package/plugins/nestedHeaders/stateManager/headersTree.js +3 -3
  340. package/plugins/nestedHeaders/stateManager/headersTree.mjs +2 -2
  341. package/plugins/nestedHeaders/stateManager/index.js +3 -3
  342. package/plugins/nestedHeaders/stateManager/index.mjs +2 -2
  343. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -1
  344. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -1
  345. package/plugins/nestedHeaders/stateManager/sourceSettings.js +2 -2
  346. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +2 -2
  347. package/plugins/nestedHeaders/stateManager/utils.js +6 -2
  348. package/plugins/nestedHeaders/stateManager/utils.mjs +6 -2
  349. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  350. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  351. package/plugins/nestedRows/data/dataManager.js +1 -1
  352. package/plugins/nestedRows/data/dataManager.mjs +1 -1
  353. package/plugins/nestedRows/nestedRows.js +5 -5
  354. package/plugins/nestedRows/nestedRows.mjs +4 -4
  355. package/plugins/nestedRows/ui/_base.js +1 -1
  356. package/plugins/nestedRows/ui/_base.mjs +1 -1
  357. package/plugins/nestedRows/ui/collapsing.js +1 -1
  358. package/plugins/nestedRows/ui/contextMenu.js +4 -4
  359. package/plugins/nestedRows/ui/contextMenu.mjs +3 -3
  360. package/plugins/nestedRows/ui/headers.js +1 -1
  361. package/plugins/nestedRows/utils/rowMoveController.js +1 -1
  362. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -1
  363. package/plugins/persistentState/persistentState.js +2 -2
  364. package/plugins/persistentState/persistentState.mjs +1 -1
  365. package/plugins/persistentState/storage.js +1 -1
  366. package/plugins/persistentState/storage.mjs +1 -1
  367. package/plugins/search/search.js +3 -3
  368. package/plugins/search/search.mjs +3 -3
  369. package/plugins/touchScroll/touchScroll.js +3 -3
  370. package/plugins/touchScroll/touchScroll.mjs +3 -3
  371. package/plugins/trimRows/trimRows.js +3 -3
  372. package/plugins/trimRows/trimRows.mjs +3 -3
  373. package/plugins/undoRedo/undoRedo.js +1 -1
  374. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -1
  375. package/renderers/checkboxRenderer/checkboxRenderer.js +1 -1
  376. package/renderers/numericRenderer/numericRenderer.js +1 -1
  377. package/renderers/registry.js +1 -1
  378. package/selection/highlight/highlight.js +3 -3
  379. package/selection/highlight/highlight.mjs +3 -3
  380. package/selection/highlight/types/activeHeader.js +1 -1
  381. package/selection/highlight/types/area.js +1 -1
  382. package/selection/highlight/types/areaLayered.js +1 -1
  383. package/selection/highlight/types/column.js +1 -1
  384. package/selection/highlight/types/customSelection.js +1 -1
  385. package/selection/highlight/types/fill.js +1 -1
  386. package/selection/highlight/types/focus.js +1 -1
  387. package/selection/highlight/types/header.js +1 -1
  388. package/selection/highlight/types/row.js +1 -1
  389. package/selection/highlight/visualSelection.js +1 -1
  390. package/selection/highlight/visualSelection.mjs +1 -1
  391. package/selection/index.js +1 -1
  392. package/selection/range.js +1 -1
  393. package/selection/range.mjs +1 -1
  394. package/selection/selection.js +4 -4
  395. package/selection/selection.mjs +3 -3
  396. package/selection/transformation.js +4 -4
  397. package/selection/transformation.mjs +3 -3
  398. package/settings.d.ts +1 -0
  399. package/tableView.js +41 -18
  400. package/tableView.mjs +40 -17
  401. package/translations/changesObservable/observable.js +2 -2
  402. package/translations/changesObservable/observable.mjs +2 -2
  403. package/translations/changesObservable/observer.js +3 -3
  404. package/translations/changesObservable/observer.mjs +2 -2
  405. package/translations/indexMapper.js +2 -2
  406. package/translations/indexMapper.mjs +1 -1
  407. package/translations/mapCollections/aggregatedCollection.js +1 -1
  408. package/translations/mapCollections/aggregatedCollection.mjs +1 -1
  409. package/translations/mapCollections/mapCollection.js +2 -2
  410. package/translations/mapCollections/mapCollection.mjs +1 -1
  411. package/translations/maps/indexMap.js +2 -2
  412. package/translations/maps/indexMap.mjs +1 -1
  413. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
  414. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
  415. package/utils/dataStructures/linkedList.js +1 -1
  416. package/utils/dataStructures/linkedList.mjs +1 -1
  417. package/utils/dataStructures/tree.js +1 -1
  418. package/utils/dataStructures/tree.mjs +1 -1
  419. package/utils/ghostTable.js +1 -1
  420. package/utils/ghostTable.mjs +1 -1
  421. package/utils/interval.js +4 -4
  422. package/utils/interval.mjs +4 -4
  423. package/utils/samplesGenerator.js +1 -1
  424. package/utils/samplesGenerator.mjs +1 -1
  425. package/validators/dateValidator/dateValidator.js +1 -1
  426. package/validators/registry.js +1 -1
  427. package/validators/timeValidator/timeValidator.js +1 -1
@@ -3,15 +3,7 @@
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
- require("core-js/modules/esnext.set.difference.v2.js");
7
- require("core-js/modules/esnext.set.intersection.v2.js");
8
- require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
9
- require("core-js/modules/esnext.set.is-subset-of.v2.js");
10
- require("core-js/modules/esnext.set.is-superset-of.v2.js");
11
- require("core-js/modules/esnext.set.symmetric-difference.v2.js");
12
- require("core-js/modules/esnext.set.union.v2.js");
13
6
  var _base = require("../base");
14
- var _array = require("../../helpers/array");
15
7
  var _feature = require("../../helpers/feature");
16
8
  var _ghostTable = _interopRequireDefault(require("../../utils/ghostTable"));
17
9
  var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
@@ -21,16 +13,15 @@ var _samplesGenerator = _interopRequireDefault(require("../../utils/samplesGener
21
13
  var _string = require("../../helpers/string");
22
14
  var _src = require("../../3rdparty/walkontable/src");
23
15
  var _translations = require("../../translations");
24
- var _mixed = require("../../helpers/mixed");
25
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
- function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
27
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
28
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
29
- 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; }
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
18
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
19
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
20
+ 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; }
30
21
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
31
22
  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); }
32
- function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
33
23
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
24
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
34
25
  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"); }
35
26
  _pluginHooks.default.getSingleton().register('modifyAutoColumnSizeSeed');
36
27
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'autoColumnSize';
@@ -135,6 +126,7 @@ const COLUMN_SIZE_MAP_NAME = 'autoColumnSize';
135
126
  */
136
127
  /* eslint-enable jsdoc/require-description-complete-sentence */
137
128
  var _cachedColumnHeaders = /*#__PURE__*/new WeakMap();
129
+ var _visualColumnsToRefresh = /*#__PURE__*/new WeakMap();
138
130
  var _AutoColumnSize_brand = /*#__PURE__*/new WeakSet();
139
131
  class AutoColumnSize extends _base.BasePlugin {
140
132
  static get PLUGIN_KEY() {
@@ -163,7 +155,9 @@ class AutoColumnSize extends _base.BasePlugin {
163
155
  constructor(hotInstance) {
164
156
  super(hotInstance);
165
157
  /**
166
- * On before view render listener.
158
+ * Calculates specific columns width (overwrite cache values).
159
+ *
160
+ * @param {number[]} visualColumns List of visual columns to calculate.
167
161
  */
168
162
  _classPrivateMethodInitSpec(this, _AutoColumnSize_brand);
169
163
  _defineProperty(this, "ghostTable", new _ghostTable.default(this.hot));
@@ -194,13 +188,6 @@ class AutoColumnSize extends _base.BasePlugin {
194
188
  bundleSeed
195
189
  };
196
190
  }));
197
- /**
198
- * `true` only if the first calculation was performed.
199
- *
200
- * @private
201
- * @type {boolean}
202
- */
203
- _defineProperty(this, "firstCalculation", true);
204
191
  /**
205
192
  * `true` if the size calculation is in progress.
206
193
  *
@@ -227,6 +214,12 @@ class AutoColumnSize extends _base.BasePlugin {
227
214
  * @type {Array}
228
215
  */
229
216
  _classPrivateFieldInitSpec(this, _cachedColumnHeaders, []);
217
+ /**
218
+ * An array of column indexes whose width will be recalculated.
219
+ *
220
+ * @type {number[]}
221
+ */
222
+ _classPrivateFieldInitSpec(this, _visualColumnsToRefresh, []);
230
223
  this.hot.columnIndexMapper.registerMap(COLUMN_SIZE_MAP_NAME, this.columnWidthsMap);
231
224
 
232
225
  // Leave the listener active to allow auto-sizing the columns when the plugin is disabled.
@@ -263,11 +256,21 @@ class AutoColumnSize extends _base.BasePlugin {
263
256
  }
264
257
  return _assertClassBrand(_AutoColumnSize_brand, _this, _onAfterLoadData).call(_this, ...args);
265
258
  });
266
- this.addHook('beforeChangeRender', changes => _assertClassBrand(_AutoColumnSize_brand, this, _onBeforeChange).call(this, changes));
267
- this.addHook('afterFormulasValuesUpdate', changes => _assertClassBrand(_AutoColumnSize_brand, this, _onAfterFormulasValuesUpdate).call(this, changes));
268
- this.addHook('beforeViewRender', force => _assertClassBrand(_AutoColumnSize_brand, this, _onBeforeViewRender).call(this, force));
259
+ this.addHook('beforeChangeRender', function () {
260
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
261
+ args[_key2] = arguments[_key2];
262
+ }
263
+ return _assertClassBrand(_AutoColumnSize_brand, _this, _onBeforeChange).call(_this, ...args);
264
+ });
265
+ this.addHook('afterFormulasValuesUpdate', function () {
266
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
267
+ args[_key3] = arguments[_key3];
268
+ }
269
+ return _assertClassBrand(_AutoColumnSize_brand, _this, _onAfterFormulasValuesUpdate).call(_this, ...args);
270
+ });
271
+ this.addHook('beforeRender', () => _assertClassBrand(_AutoColumnSize_brand, this, _onBeforeRender).call(this));
269
272
  this.addHook('modifyColWidth', (width, col) => this.getColumnWidth(col, width));
270
- this.addHook('afterInit', () => _assertClassBrand(_AutoColumnSize_brand, this, _onAfterInit).call(this));
273
+ this.addHook('init', () => _assertClassBrand(_AutoColumnSize_brand, this, _onInit).call(this));
271
274
  super.enablePlugin();
272
275
  }
273
276
 
@@ -275,11 +278,7 @@ class AutoColumnSize extends _base.BasePlugin {
275
278
  * Updates the plugin's state. This method is executed when {@link Core#updateSettings} is invoked.
276
279
  */
277
280
  updatePlugin() {
278
- const changedColumns = this.findColumnsWhereHeaderWasChanged();
279
- if (changedColumns.length) {
280
- this.clearCache(changedColumns);
281
- this.calculateVisibleColumnsWidth();
282
- }
281
+ _classPrivateFieldSet(_visualColumnsToRefresh, this, this.findColumnsWhereHeaderWasChanged());
283
282
  super.updatePlugin();
284
283
  }
285
284
 
@@ -295,25 +294,23 @@ class AutoColumnSize extends _base.BasePlugin {
295
294
  }
296
295
 
297
296
  /**
298
- * Calculates visible columns width.
297
+ * Calculates widths for visible columns in the viewport only.
299
298
  */
300
299
  calculateVisibleColumnsWidth() {
301
- const rowsCount = this.hot.countRows();
302
-
303
300
  // Keep last column widths unchanged for situation when all rows was deleted or trimmed (pro #6)
304
- if (!rowsCount) {
301
+ if (!this.hot.countRows()) {
305
302
  return;
306
303
  }
307
- const force = this.hot.renderCall;
308
304
  const firstVisibleColumn = this.getFirstVisibleColumn();
309
305
  const lastVisibleColumn = this.getLastVisibleColumn();
310
306
  if (firstVisibleColumn === -1 || lastVisibleColumn === -1) {
311
307
  return;
312
308
  }
309
+ const overwriteCache = this.hot.renderCall;
313
310
  this.calculateColumnsWidth({
314
311
  from: firstVisibleColumn,
315
312
  to: lastVisibleColumn
316
- }, undefined, force);
313
+ }, undefined, overwriteCache);
317
314
  }
318
315
 
319
316
  /**
@@ -321,7 +318,7 @@ class AutoColumnSize extends _base.BasePlugin {
321
318
  *
322
319
  * @param {number|object} colRange Visual column index or an object with `from` and `to` visual indexes as a range.
323
320
  * @param {number|object} rowRange Visual row index or an object with `from` and `to` visual indexes as a range.
324
- * @param {boolean} [force=false] If `true` the calculation will be processed regardless of whether the width exists in the cache.
321
+ * @param {boolean} [overwriteCache=false] If `true` the calculation will be processed regardless of whether the width exists in the cache.
325
322
  */
326
323
  calculateColumnsWidth() {
327
324
  let colRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
@@ -332,8 +329,7 @@ class AutoColumnSize extends _base.BasePlugin {
332
329
  from: 0,
333
330
  to: this.hot.countRows() - 1
334
331
  };
335
- let force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
336
- // eslint-disable-line max-len
332
+ let overwriteCache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
337
333
  const columnsRange = typeof colRange === 'number' ? {
338
334
  from: colRange,
339
335
  to: colRange
@@ -347,12 +343,9 @@ class AutoColumnSize extends _base.BasePlugin {
347
343
  if (physicalColumn === null) {
348
344
  physicalColumn = visualColumn;
349
345
  }
350
- if (force || this.columnWidthsMap.getValueAtIndex(physicalColumn) === null && !this.hot._getColWidthFromSettings(physicalColumn)) {
346
+ if (overwriteCache || this.columnWidthsMap.getValueAtIndex(physicalColumn) === null && !this.hot._getColWidthFromSettings(physicalColumn)) {
351
347
  const samples = this.samplesGenerator.generateColumnSamples(visualColumn, rowsRange);
352
- (0, _array.arrayEach)(samples, _ref => {
353
- let [column, sample] = _ref;
354
- return this.ghostTable.addColumn(column, sample);
355
- });
348
+ samples.forEach((sample, column) => this.ghostTable.addColumn(column, sample));
356
349
  }
357
350
  });
358
351
  if (this.ghostTable.columns.length) {
@@ -372,12 +365,14 @@ class AutoColumnSize extends _base.BasePlugin {
372
365
  * To retrieve width for specified column use {@link AutoColumnSize#getColumnWidth} method.
373
366
  *
374
367
  * @param {object|number} rowRange Row index or an object with `from` and `to` properties which define row range.
368
+ * @param {boolean} [overwriteCache] If `true` the calculation will be processed regardless of whether the width exists in the cache.
375
369
  */
376
370
  calculateAllColumnsWidth() {
377
371
  let rowRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
378
372
  from: 0,
379
373
  to: this.hot.countRows() - 1
380
374
  };
375
+ let overwriteCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
381
376
  let current = 0;
382
377
  const length = this.hot.countCols() - 1;
383
378
  let timer = null;
@@ -392,7 +387,7 @@ class AutoColumnSize extends _base.BasePlugin {
392
387
  this.calculateColumnsWidth({
393
388
  from: current,
394
389
  to: Math.min(current + AutoColumnSize.CALCULATION_STEP, length)
395
- }, rowRange);
390
+ }, rowRange, overwriteCache);
396
391
  current = current + AutoColumnSize.CALCULATION_STEP + 1;
397
392
  if (current < length) {
398
393
  timer = (0, _feature.requestAnimationFrame)(loop);
@@ -407,12 +402,11 @@ class AutoColumnSize extends _base.BasePlugin {
407
402
  const syncLimit = this.getSyncCalculationLimit();
408
403
 
409
404
  // sync
410
- if (this.firstCalculation && syncLimit >= 0) {
405
+ if (syncLimit >= 0) {
411
406
  this.calculateColumnsWidth({
412
407
  from: 0,
413
408
  to: syncLimit
414
- }, rowRange);
415
- this.firstCalculation = false;
409
+ }, rowRange, overwriteCache);
416
410
  current = syncLimit + 1;
417
411
  }
418
412
  // async
@@ -422,7 +416,6 @@ class AutoColumnSize extends _base.BasePlugin {
422
416
  this.inProgress = false;
423
417
  }
424
418
  }
425
-
426
419
  /**
427
420
  * Sets the sampling options.
428
421
  *
@@ -444,9 +437,11 @@ class AutoColumnSize extends _base.BasePlugin {
444
437
  * Recalculates all columns width (overwrite cache values).
445
438
  */
446
439
  recalculateAllColumnsWidth() {
447
- if (this.hot.view && this.hot.view._wt.wtTable.isVisible()) {
448
- this.clearCache();
449
- this.calculateAllColumnsWidth();
440
+ if (this.hot.view.isVisible()) {
441
+ this.calculateAllColumnsWidth({
442
+ from: 0,
443
+ to: this.hot.countRows() - 1
444
+ }, true);
450
445
  }
451
446
  }
452
447
 
@@ -481,8 +476,7 @@ class AutoColumnSize extends _base.BasePlugin {
481
476
  * @param {boolean} [keepMinimum=true] If `true` then returned value won't be smaller then 50 (default column width).
482
477
  * @returns {number}
483
478
  */
484
- getColumnWidth(column) {
485
- let defaultWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
479
+ getColumnWidth(column, defaultWidth) {
486
480
  let keepMinimum = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
487
481
  let width = defaultWidth;
488
482
  if (width === undefined) {
@@ -500,23 +494,8 @@ class AutoColumnSize extends _base.BasePlugin {
500
494
  * @returns {number} Returns visual column index, -1 if table is not rendered or if there are no columns to base the the calculations on.
501
495
  */
502
496
  getFirstVisibleColumn() {
503
- const wot = this.hot.view._wt;
504
- if (wot.wtViewport.columnsVisibleCalculator) {
505
- // Fist fully visible column is stored as renderable index.
506
- const firstFullyVisibleColumn = wot.wtTable.getFirstVisibleColumn();
507
- if (firstFullyVisibleColumn !== -1) {
508
- return this.hot.columnIndexMapper.getVisualFromRenderableIndex(firstFullyVisibleColumn);
509
- }
510
- }
511
- if (wot.wtViewport.columnsRenderCalculator) {
512
- const firstRenderedColumn = wot.wtTable.getFirstRenderedColumn();
513
-
514
- // There are no rendered column.
515
- if (firstRenderedColumn !== -1) {
516
- return this.hot.columnIndexMapper.getVisualFromRenderableIndex(firstRenderedColumn);
517
- }
518
- }
519
- return -1;
497
+ var _this$hot$view$getFir;
498
+ return (_this$hot$view$getFir = this.hot.view.getFirstRenderedVisibleColumn()) !== null && _this$hot$view$getFir !== void 0 ? _this$hot$view$getFir : -1;
520
499
  }
521
500
 
522
501
  /**
@@ -525,38 +504,22 @@ class AutoColumnSize extends _base.BasePlugin {
525
504
  * @returns {number} Returns visual column index or -1 if table is not rendered.
526
505
  */
527
506
  getLastVisibleColumn() {
528
- const wot = this.hot.view._wt;
529
- if (wot.wtViewport.columnsVisibleCalculator) {
530
- // Last fully visible column is stored as renderable index.
531
- const lastFullyVisibleColumn = wot.wtTable.getLastVisibleColumn();
532
- if (lastFullyVisibleColumn !== -1) {
533
- return this.hot.columnIndexMapper.getVisualFromRenderableIndex(lastFullyVisibleColumn);
534
- }
535
- }
536
- if (wot.wtViewport.columnsRenderCalculator) {
537
- // Last fully visible column is stored as renderable index.
538
- const lastRenderedColumn = wot.wtTable.getLastRenderedColumn();
539
-
540
- // There are no rendered columns.
541
- if (lastRenderedColumn !== -1) {
542
- return this.hot.columnIndexMapper.getVisualFromRenderableIndex(lastRenderedColumn);
543
- }
544
- }
545
- return -1;
507
+ var _this$hot$view$getLas;
508
+ return (_this$hot$view$getLas = this.hot.view.getLastRenderedVisibleColumn()) !== null && _this$hot$view$getLas !== void 0 ? _this$hot$view$getLas : -1;
546
509
  }
547
510
 
548
511
  /**
549
512
  * Collects all columns which titles has been changed in comparison to the previous state.
550
513
  *
551
514
  * @private
552
- * @returns {Array} It returns an array of physical column indexes.
515
+ * @returns {Array} It returns an array of visual column indexes.
553
516
  */
554
517
  findColumnsWhereHeaderWasChanged() {
555
518
  const columnHeaders = this.hot.getColHeader();
556
- const changedColumns = (0, _array.arrayReduce)(columnHeaders, (acc, columnTitle, physicalColumn) => {
519
+ const changedColumns = columnHeaders.reduce((acc, columnTitle, physicalColumn) => {
557
520
  const cachedColumnsLength = _classPrivateFieldGet(_cachedColumnHeaders, this).length;
558
521
  if (cachedColumnsLength - 1 < physicalColumn || _classPrivateFieldGet(_cachedColumnHeaders, this)[physicalColumn] !== columnTitle) {
559
- acc.push(physicalColumn);
522
+ acc.push(this.hot.toVisualColumn(physicalColumn));
560
523
  }
561
524
  if (cachedColumnsLength - 1 < physicalColumn) {
562
525
  _classPrivateFieldGet(_cachedColumnHeaders, this).push(columnTitle);
@@ -572,13 +535,12 @@ class AutoColumnSize extends _base.BasePlugin {
572
535
  * Clears cache of calculated column widths. If you want to clear only selected columns pass an array with their indexes.
573
536
  * Otherwise whole cache will be cleared.
574
537
  *
575
- * @param {number[]} [columns] List of physical column indexes to clear.
538
+ * @param {number[]} [physicalColumns] List of physical column indexes to clear.
576
539
  */
577
- clearCache() {
578
- let columns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
579
- if (columns.length) {
540
+ clearCache(physicalColumns) {
541
+ if (Array.isArray(physicalColumns)) {
580
542
  this.hot.batchExecution(() => {
581
- (0, _array.arrayEach)(columns, physicalIndex => {
543
+ physicalColumns.forEach(physicalIndex => {
582
544
  this.columnWidthsMap.setValueAtIndex(physicalIndex, null);
583
545
  });
584
546
  }, true);
@@ -593,8 +555,13 @@ class AutoColumnSize extends _base.BasePlugin {
593
555
  * @returns {boolean}
594
556
  */
595
557
  isNeedRecalculate() {
596
- return !!(0, _array.arrayFilter)(this.columnWidthsMap.getValues().slice(0, this.measuredColumns), item => item === null).length;
558
+ return !!this.columnWidthsMap.getValues().slice(0, this.measuredColumns).filter(item => item === null).length;
597
559
  }
560
+
561
+ /**
562
+ * On before view render listener.
563
+ */
564
+
598
565
  /**
599
566
  * Destroys the plugin instance.
600
567
  */
@@ -604,25 +571,47 @@ class AutoColumnSize extends _base.BasePlugin {
604
571
  }
605
572
  }
606
573
  exports.AutoColumnSize = AutoColumnSize;
607
- function _onBeforeViewRender() {
574
+ function _calculateSpecificColumnsWidth(visualColumns) {
575
+ const rowsRange = {
576
+ from: 0,
577
+ to: this.hot.countRows() - 1
578
+ };
579
+ visualColumns.forEach(visualColumn => {
580
+ const physicalColumn = this.hot.toPhysicalColumn(visualColumn);
581
+ if (physicalColumn === null) {
582
+ return;
583
+ }
584
+ if (!this.hot._getColWidthFromSettings(physicalColumn)) {
585
+ const samples = this.samplesGenerator.generateColumnSamples(visualColumn, rowsRange);
586
+ samples.forEach((sample, column) => this.ghostTable.addColumn(column, sample));
587
+ }
588
+ });
589
+ if (this.ghostTable.columns.length) {
590
+ this.hot.batchExecution(() => {
591
+ this.ghostTable.getWidths((visualColumn, width) => {
592
+ const physicalColumn = this.hot.toPhysicalColumn(visualColumn);
593
+ this.columnWidthsMap.setValueAtIndex(physicalColumn, width);
594
+ });
595
+ }, true);
596
+ this.ghostTable.clean();
597
+ }
598
+ }
599
+ function _onBeforeRender() {
608
600
  this.calculateVisibleColumnsWidth();
609
- if (this.isNeedRecalculate() && !this.inProgress) {
610
- this.calculateAllColumnsWidth();
601
+ if (!this.inProgress) {
602
+ _assertClassBrand(_AutoColumnSize_brand, this, _calculateSpecificColumnsWidth).call(this, _classPrivateFieldGet(_visualColumnsToRefresh, this));
603
+ _classPrivateFieldSet(_visualColumnsToRefresh, this, []);
611
604
  }
612
605
  }
613
606
  /**
614
607
  * On after load data listener.
608
+ *
609
+ * @param {Array} sourceData Source data.
610
+ * @param {boolean} isFirstLoad `true` if this is the first load.
615
611
  */
616
- function _onAfterLoadData() {
617
- if (this.hot.view) {
612
+ function _onAfterLoadData(sourceData, isFirstLoad) {
613
+ if (!isFirstLoad) {
618
614
  this.recalculateAllColumnsWidth();
619
- } else {
620
- // first load - initialization
621
- setTimeout(() => {
622
- if (this.hot) {
623
- this.recalculateAllColumnsWidth();
624
- }
625
- }, 0);
626
615
  }
627
616
  }
628
617
  /**
@@ -631,11 +620,15 @@ function _onAfterLoadData() {
631
620
  * @param {Array} changes An array of modified data.
632
621
  */
633
622
  function _onBeforeChange(changes) {
634
- const changedColumns = (0, _array.arrayMap)(changes, _ref2 => {
635
- let [, columnProperty] = _ref2;
636
- return this.hot.toPhysicalColumn(this.hot.propToCol(columnProperty));
637
- });
638
- this.clearCache(Array.from(new Set(changedColumns)));
623
+ const changedColumns = changes.reduce((acc, _ref) => {
624
+ let [, columnProperty] = _ref;
625
+ const visualColumn = this.hot.propToCol(columnProperty);
626
+ if (Number.isInteger(visualColumn) && acc.indexOf(visualColumn) === -1) {
627
+ acc.push(visualColumn);
628
+ }
629
+ return acc;
630
+ }, []);
631
+ _classPrivateFieldGet(_visualColumnsToRefresh, this).push(...changedColumns);
639
632
  }
640
633
  /**
641
634
  * On before column resize listener.
@@ -656,8 +649,9 @@ function _onBeforeColumnResize(size, column, isDblClick) {
656
649
  /**
657
650
  * On after Handsontable init fill plugin with all necessary values.
658
651
  */
659
- function _onAfterInit() {
652
+ function _onInit() {
660
653
  _classPrivateFieldSet(_cachedColumnHeaders, this, this.hot.getColHeader());
654
+ this.recalculateAllColumnsWidth();
661
655
  }
662
656
  /**
663
657
  * After formulas values updated listener.
@@ -665,10 +659,16 @@ function _onAfterInit() {
665
659
  * @param {Array} changes An array of modified data.
666
660
  */
667
661
  function _onAfterFormulasValuesUpdate(changes) {
668
- const filteredChanges = (0, _array.arrayFilter)(changes, change => {
662
+ const changedColumns = changes.reduce((acc, change) => {
669
663
  var _change$address;
670
- return (0, _mixed.isDefined)((_change$address = change.address) === null || _change$address === void 0 ? void 0 : _change$address.col);
671
- });
672
- const changedColumns = (0, _array.arrayMap)(filteredChanges, change => change.address.col);
673
- this.clearCache(Array.from(new Set(changedColumns)));
664
+ const physicalColumn = (_change$address = change.address) === null || _change$address === void 0 ? void 0 : _change$address.col;
665
+ if (Number.isInteger(physicalColumn)) {
666
+ const visualColumn = this.hot.toVisualColumn(physicalColumn);
667
+ if (acc.indexOf(visualColumn) === -1) {
668
+ acc.push(visualColumn);
669
+ }
670
+ }
671
+ return acc;
672
+ }, []);
673
+ _classPrivateFieldGet(_visualColumnsToRefresh, this).push(...changedColumns);
674
674
  }