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