handsontable 18.0.0 → 18.1.0-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1238) hide show
  1. package/3rdparty/walkontable/src/axisSizing/axisSizeSource.d.mts +1 -0
  2. package/3rdparty/walkontable/src/axisSizing/axisSizeSource.d.ts +55 -0
  3. package/3rdparty/walkontable/src/axisSizing/axisSizeSource.js +15 -0
  4. package/3rdparty/walkontable/src/axisSizing/axisSizeSource.mjs +14 -0
  5. package/3rdparty/walkontable/src/axisSizing/boxModel.d.mts +1 -0
  6. package/3rdparty/walkontable/src/axisSizing/boxModel.d.ts +32 -0
  7. package/3rdparty/walkontable/src/axisSizing/boxModel.js +45 -0
  8. package/3rdparty/walkontable/src/axisSizing/boxModel.mjs +33 -0
  9. package/3rdparty/walkontable/src/axisSizing/columnUtils.d.mts +2 -0
  10. package/3rdparty/walkontable/src/{utils/column.d.ts → axisSizing/columnUtils.d.ts} +12 -10
  11. package/3rdparty/walkontable/src/axisSizing/columnUtils.js +142 -0
  12. package/3rdparty/walkontable/src/axisSizing/columnUtils.mjs +137 -0
  13. package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.d.mts +1 -0
  14. package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.d.ts +58 -0
  15. package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.js +124 -0
  16. package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.mjs +114 -0
  17. package/3rdparty/walkontable/src/axisSizing/oversizedRows.d.mts +1 -0
  18. package/3rdparty/walkontable/src/axisSizing/oversizedRows.d.ts +162 -0
  19. package/3rdparty/walkontable/src/axisSizing/oversizedRows.js +424 -0
  20. package/3rdparty/walkontable/src/axisSizing/oversizedRows.mjs +522 -0
  21. package/3rdparty/walkontable/src/axisSizing/positionCache/index.d.ts +130 -0
  22. package/3rdparty/walkontable/src/axisSizing/positionCache/index.js +251 -0
  23. package/3rdparty/walkontable/src/axisSizing/positionCache/index.mjs +257 -0
  24. package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.d.mts +1 -0
  25. package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.d.ts +51 -0
  26. package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.js +116 -0
  27. package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.mjs +112 -0
  28. package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.d.mts +1 -0
  29. package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.d.ts +53 -0
  30. package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.js +199 -0
  31. package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.mjs +196 -0
  32. package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.d.mts +1 -0
  33. package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.d.ts +53 -0
  34. package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.js +40 -0
  35. package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.mjs +41 -0
  36. package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.d.mts +1 -0
  37. package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.d.ts +47 -0
  38. package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.js +116 -0
  39. package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.mjs +110 -0
  40. package/3rdparty/walkontable/src/axisSizing/rowUtils.d.mts +2 -0
  41. package/3rdparty/walkontable/src/{utils/row.d.ts → axisSizing/rowUtils.d.ts} +11 -9
  42. package/3rdparty/walkontable/src/axisSizing/rowUtils.js +106 -0
  43. package/3rdparty/walkontable/src/axisSizing/rowUtils.mjs +101 -0
  44. package/3rdparty/walkontable/src/axisSizing/sizeGetters.d.mts +2 -0
  45. package/3rdparty/walkontable/src/axisSizing/sizeGetters.d.ts +84 -0
  46. package/3rdparty/walkontable/src/axisSizing/sizeGetters.js +102 -0
  47. package/3rdparty/walkontable/src/axisSizing/sizeGetters.mjs +92 -0
  48. package/3rdparty/walkontable/src/calculator/axisCalculation.d.ts +1 -1
  49. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.d.ts +10 -0
  50. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +10 -1
  51. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +10 -1
  52. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.d.ts +9 -0
  53. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +9 -1
  54. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +9 -1
  55. package/3rdparty/walkontable/src/calculator/viewportColumns.d.ts +1 -1
  56. package/3rdparty/walkontable/src/calculator/viewportRows.d.ts +1 -1
  57. package/3rdparty/walkontable/src/cell/coords.js +4 -9
  58. package/3rdparty/walkontable/src/cell/coords.mjs +4 -9
  59. package/3rdparty/walkontable/src/cell/range.d.ts +10 -0
  60. package/3rdparty/walkontable/src/cell/range.js +19 -15
  61. package/3rdparty/walkontable/src/cell/range.mjs +16 -12
  62. package/3rdparty/walkontable/src/core/_base.d.ts +21 -21
  63. package/3rdparty/walkontable/src/core/_base.js +47 -147
  64. package/3rdparty/walkontable/src/core/_base.mjs +17 -147
  65. package/3rdparty/walkontable/src/core/clone.d.ts +4 -14
  66. package/3rdparty/walkontable/src/core/clone.js +40 -5
  67. package/3rdparty/walkontable/src/core/clone.mjs +10 -5
  68. package/3rdparty/walkontable/src/core/core.d.ts +1 -5
  69. package/3rdparty/walkontable/src/core/core.js +41 -47
  70. package/3rdparty/walkontable/src/core/core.mjs +12 -48
  71. package/3rdparty/walkontable/src/domMeasure/geometryReader.d.mts +1 -0
  72. package/3rdparty/walkontable/src/domMeasure/geometryReader.d.ts +172 -0
  73. package/3rdparty/walkontable/src/domMeasure/geometryReader.js +19 -0
  74. package/3rdparty/walkontable/src/domMeasure/geometryReader.mjs +16 -0
  75. package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.d.mts +1 -0
  76. package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.d.ts +134 -0
  77. package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.js +195 -0
  78. package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.mjs +193 -0
  79. package/3rdparty/walkontable/src/event.d.ts +25 -12
  80. package/3rdparty/walkontable/src/event.js +96 -236
  81. package/3rdparty/walkontable/src/event.mjs +95 -236
  82. package/3rdparty/walkontable/src/facade/core.d.ts +6 -6
  83. package/3rdparty/walkontable/src/index.d.ts +1 -1
  84. package/3rdparty/walkontable/src/index.js +10 -21
  85. package/3rdparty/walkontable/src/index.mjs +1 -1
  86. package/3rdparty/walkontable/src/overlay/index.d.ts +6 -6
  87. package/3rdparty/walkontable/src/overlay/index.js +11 -11
  88. package/3rdparty/walkontable/src/overlay/index.mjs +6 -6
  89. package/3rdparty/walkontable/src/overlay/overlays.d.ts +375 -0
  90. package/3rdparty/walkontable/src/overlay/overlays.js +605 -0
  91. package/3rdparty/walkontable/src/overlay/overlays.mjs +594 -0
  92. package/3rdparty/walkontable/src/overlay/{_base.d.ts → regions/_base.d.ts} +65 -16
  93. package/3rdparty/walkontable/src/overlay/{_base.js → regions/_base.js} +155 -50
  94. package/3rdparty/walkontable/src/overlay/{_base.mjs → regions/_base.mjs} +158 -47
  95. package/3rdparty/walkontable/src/overlay/regions/bottomInlineStartCornerOverlay.d.mts +1 -0
  96. package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.d.ts → regions/bottomInlineStartCornerOverlay.d.ts} +5 -10
  97. package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.js → regions/bottomInlineStartCornerOverlay.js} +18 -20
  98. package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.mjs → regions/bottomInlineStartCornerOverlay.mjs} +18 -20
  99. package/3rdparty/walkontable/src/overlay/regions/bottomOverlay.d.mts +1 -0
  100. package/3rdparty/walkontable/src/overlay/{bottom.d.ts → regions/bottomOverlay.d.ts} +16 -11
  101. package/3rdparty/walkontable/src/overlay/{bottom.js → regions/bottomOverlay.js} +111 -66
  102. package/3rdparty/walkontable/src/overlay/{bottom.mjs → regions/bottomOverlay.mjs} +111 -66
  103. package/3rdparty/walkontable/src/overlay/regions/inlineStartOverlay.d.mts +1 -0
  104. package/3rdparty/walkontable/src/overlay/{inlineStart.d.ts → regions/inlineStartOverlay.d.ts} +17 -11
  105. package/3rdparty/walkontable/src/overlay/{inlineStart.js → regions/inlineStartOverlay.js} +120 -67
  106. package/3rdparty/walkontable/src/overlay/{inlineStart.mjs → regions/inlineStartOverlay.mjs} +120 -67
  107. package/3rdparty/walkontable/src/overlay/regions/topInlineStartCornerOverlay.d.mts +1 -0
  108. package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.d.ts → regions/topInlineStartCornerOverlay.d.ts} +5 -10
  109. package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.js → regions/topInlineStartCornerOverlay.js} +13 -16
  110. package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.mjs → regions/topInlineStartCornerOverlay.mjs} +13 -16
  111. package/3rdparty/walkontable/src/overlay/regions/topOverlay.d.mts +1 -0
  112. package/3rdparty/walkontable/src/overlay/{top.d.ts → regions/topOverlay.d.ts} +32 -11
  113. package/3rdparty/walkontable/src/overlay/{top.js → regions/topOverlay.js} +161 -77
  114. package/3rdparty/walkontable/src/overlay/{top.mjs → regions/topOverlay.mjs} +161 -77
  115. package/3rdparty/walkontable/src/overlay/resizeMonitor.d.mts +1 -0
  116. package/3rdparty/walkontable/src/overlay/resizeMonitor.d.ts +49 -0
  117. package/3rdparty/walkontable/src/overlay/resizeMonitor.js +149 -0
  118. package/3rdparty/walkontable/src/overlay/resizeMonitor.mjs +148 -0
  119. package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.d.mts +1 -0
  120. package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.d.ts +62 -0
  121. package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.js +283 -0
  122. package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.mjs +288 -0
  123. package/3rdparty/walkontable/src/overlay/scroll/scrollSync.d.mts +1 -0
  124. package/3rdparty/walkontable/src/overlay/scroll/scrollSync.d.ts +176 -0
  125. package/3rdparty/walkontable/src/overlay/scroll/scrollSync.js +542 -0
  126. package/3rdparty/walkontable/src/overlay/scroll/scrollSync.mjs +550 -0
  127. package/3rdparty/walkontable/src/overlay/spreaderSize.d.mts +1 -0
  128. package/3rdparty/walkontable/src/overlay/spreaderSize.d.ts +67 -0
  129. package/3rdparty/walkontable/src/overlay/spreaderSize.js +173 -0
  130. package/3rdparty/walkontable/src/overlay/spreaderSize.mjs +174 -0
  131. package/3rdparty/walkontable/src/{stickyScrollStrategy.d.ts → overlay/strategies/stickyScrollStrategy.d.ts} +33 -21
  132. package/3rdparty/walkontable/src/{stickyScrollStrategy.js → overlay/strategies/stickyScrollStrategy.js} +65 -53
  133. package/3rdparty/walkontable/src/{stickyScrollStrategy.mjs → overlay/strategies/stickyScrollStrategy.mjs} +63 -50
  134. package/3rdparty/walkontable/src/ports.d.mts +1 -0
  135. package/3rdparty/walkontable/src/ports.d.ts +54 -0
  136. package/3rdparty/walkontable/src/ports.js +23 -0
  137. package/3rdparty/walkontable/src/ports.mjs +24 -0
  138. package/3rdparty/walkontable/src/{renderer → render}/_base.d.ts +1 -1
  139. package/3rdparty/walkontable/src/{renderer → render}/cells.js +1 -1
  140. package/3rdparty/walkontable/src/{renderer → render}/cells.mjs +1 -1
  141. package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.d.ts +1 -0
  142. package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.js +41 -1
  143. package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.mjs +42 -2
  144. package/3rdparty/walkontable/src/render/index.d.mts +1 -0
  145. package/3rdparty/walkontable/src/{renderer → render}/index.d.ts +11 -3
  146. package/3rdparty/walkontable/src/{renderer → render}/index.js +13 -3
  147. package/3rdparty/walkontable/src/{renderer → render}/index.mjs +11 -1
  148. package/3rdparty/walkontable/src/{renderer → render}/rows.js +1 -1
  149. package/3rdparty/walkontable/src/{renderer → render}/rows.mjs +1 -1
  150. package/3rdparty/walkontable/src/render/tableRenderer.d.mts +1 -0
  151. package/3rdparty/walkontable/src/{renderer/table.d.ts → render/tableRenderer.d.ts} +12 -2
  152. package/3rdparty/walkontable/src/render/tableRenderer.js +375 -0
  153. package/3rdparty/walkontable/src/{renderer/table.mjs → render/tableRenderer.mjs} +152 -6
  154. package/3rdparty/walkontable/src/{scroll.d.ts → scroll/scroll.d.ts} +27 -10
  155. package/3rdparty/walkontable/src/{scroll.js → scroll/scroll.js} +104 -35
  156. package/3rdparty/walkontable/src/{scroll.mjs → scroll/scroll.mjs} +102 -32
  157. package/3rdparty/walkontable/src/selection/border/border.d.ts +313 -5
  158. package/3rdparty/walkontable/src/selection/border/border.js +861 -51
  159. package/3rdparty/walkontable/src/selection/border/border.mjs +863 -53
  160. package/3rdparty/walkontable/src/selection/border/types.d.ts +30 -0
  161. package/3rdparty/walkontable/src/selection/manager.js +242 -12
  162. package/3rdparty/walkontable/src/selection/manager.mjs +243 -13
  163. package/3rdparty/walkontable/src/selection/scanner.js +5 -12
  164. package/3rdparty/walkontable/src/selection/scanner.mjs +5 -12
  165. package/3rdparty/walkontable/src/settings/accessor.d.mts +2 -0
  166. package/3rdparty/walkontable/src/settings/accessor.d.ts +74 -0
  167. package/3rdparty/walkontable/src/settings/accessor.js +78 -0
  168. package/3rdparty/walkontable/src/settings/accessor.mjs +71 -0
  169. package/3rdparty/walkontable/src/settings/defaults.d.mts +1 -0
  170. package/3rdparty/walkontable/src/{settings.d.ts → settings/defaults.d.ts} +16 -77
  171. package/3rdparty/walkontable/src/settings/defaults.js +146 -0
  172. package/3rdparty/walkontable/src/settings/defaults.mjs +225 -0
  173. package/3rdparty/walkontable/src/settings/index.d.mts +1 -0
  174. package/3rdparty/walkontable/src/settings/index.d.ts +6 -0
  175. package/3rdparty/walkontable/src/settings/index.js +20 -0
  176. package/3rdparty/walkontable/src/settings/index.mjs +5 -0
  177. package/3rdparty/walkontable/src/table/baseTable.d.mts +2 -0
  178. package/3rdparty/walkontable/src/table/baseTable.d.ts +284 -0
  179. package/3rdparty/walkontable/src/table/baseTable.js +290 -0
  180. package/3rdparty/walkontable/src/table/baseTable.mjs +278 -0
  181. package/3rdparty/walkontable/src/table/cellAccess.d.mts +1 -0
  182. package/3rdparty/walkontable/src/table/cellAccess.d.ts +101 -0
  183. package/3rdparty/walkontable/src/table/cellAccess.js +238 -0
  184. package/3rdparty/walkontable/src/table/cellAccess.mjs +229 -0
  185. package/3rdparty/walkontable/src/table/domScaffold.d.mts +1 -0
  186. package/3rdparty/walkontable/src/table/domScaffold.d.ts +37 -0
  187. package/3rdparty/walkontable/src/table/domScaffold.js +145 -0
  188. package/3rdparty/walkontable/src/table/domScaffold.mjs +136 -0
  189. package/3rdparty/walkontable/src/table/drawCycle.d.mts +1 -0
  190. package/3rdparty/walkontable/src/table/drawCycle.d.ts +16 -0
  191. package/3rdparty/walkontable/src/table/drawCycle.js +405 -0
  192. package/3rdparty/walkontable/src/table/drawCycle.mjs +403 -0
  193. package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.d.mts +1 -0
  194. package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.d.ts +38 -0
  195. package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.js +15 -0
  196. package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.mjs +14 -0
  197. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.d.ts +1 -1
  198. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.js +1 -1
  199. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.mjs +1 -1
  200. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.d.ts +1 -1
  201. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.d.ts +1 -1
  202. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.js +1 -1
  203. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.mjs +1 -1
  204. package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.d.mts +2 -0
  205. package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.d.ts +226 -0
  206. package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.js +251 -0
  207. package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.mjs +241 -0
  208. package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.d.mts +1 -0
  209. package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.d.ts +14 -0
  210. package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.js +196 -0
  211. package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.mjs +179 -0
  212. package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.d.mts +2 -0
  213. package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.d.ts +16 -0
  214. package/3rdparty/walkontable/src/table/{bottomInlineStartCorner.js → regions/bottomInlineStartCornerTable.js} +9 -12
  215. package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.mjs +21 -0
  216. package/3rdparty/walkontable/src/table/regions/bottomTable.d.mts +2 -0
  217. package/3rdparty/walkontable/src/table/regions/bottomTable.d.ts +15 -0
  218. package/3rdparty/walkontable/src/table/regions/bottomTable.js +35 -0
  219. package/3rdparty/walkontable/src/table/regions/bottomTable.mjs +20 -0
  220. package/3rdparty/walkontable/src/table/regions/inlineStartTable.d.mts +2 -0
  221. package/3rdparty/walkontable/src/table/regions/inlineStartTable.d.ts +12 -0
  222. package/3rdparty/walkontable/src/table/regions/inlineStartTable.js +32 -0
  223. package/3rdparty/walkontable/src/table/regions/inlineStartTable.mjs +17 -0
  224. package/3rdparty/walkontable/src/table/regions/masterTable.d.mts +2 -0
  225. package/3rdparty/walkontable/src/table/{master.d.ts → regions/masterTable.d.ts} +4 -13
  226. package/3rdparty/walkontable/src/table/{master.js → regions/masterTable.js} +27 -57
  227. package/3rdparty/walkontable/src/table/{master.mjs → regions/masterTable.mjs} +26 -56
  228. package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.d.mts +2 -0
  229. package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.d.ts +16 -0
  230. package/3rdparty/walkontable/src/table/{topInlineStartCorner.js → regions/topInlineStartCornerTable.js} +9 -12
  231. package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.mjs +21 -0
  232. package/3rdparty/walkontable/src/table/regions/topTable.d.mts +2 -0
  233. package/3rdparty/walkontable/src/table/regions/topTable.d.ts +15 -0
  234. package/3rdparty/walkontable/src/table/regions/topTable.js +35 -0
  235. package/3rdparty/walkontable/src/table/regions/topTable.mjs +20 -0
  236. package/3rdparty/walkontable/src/types.d.ts +7 -69
  237. package/3rdparty/walkontable/src/types.mjs +2 -1
  238. package/3rdparty/walkontable/src/utils/pointerToCoords.d.mts +1 -0
  239. package/3rdparty/walkontable/src/utils/{cellCoords.d.ts → pointerToCoords.d.ts} +24 -0
  240. package/3rdparty/walkontable/src/utils/pointerToCoords.js +181 -0
  241. package/3rdparty/walkontable/src/utils/pointerToCoords.mjs +186 -0
  242. package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.d.mts +1 -0
  243. package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.d.ts +40 -0
  244. package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.js +139 -0
  245. package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.mjs +131 -0
  246. package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.d.mts +1 -0
  247. package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.d.ts +133 -0
  248. package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.js +18 -0
  249. package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.mjs +18 -0
  250. package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.d.mts +1 -0
  251. package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.d.ts +17 -0
  252. package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.js +104 -0
  253. package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.mjs +99 -0
  254. package/3rdparty/walkontable/src/viewport/calculatorFactory.d.mts +1 -0
  255. package/3rdparty/walkontable/src/viewport/calculatorFactory.d.ts +84 -0
  256. package/3rdparty/walkontable/src/viewport/calculatorFactory.js +588 -0
  257. package/3rdparty/walkontable/src/viewport/calculatorFactory.mjs +601 -0
  258. package/3rdparty/walkontable/src/viewport/viewport.d.ts +267 -0
  259. package/3rdparty/walkontable/src/viewport/viewport.js +363 -0
  260. package/3rdparty/walkontable/src/viewport/viewport.mjs +355 -0
  261. package/3rdparty/walkontable/src/viewport/workspaceSize.d.mts +1 -0
  262. package/3rdparty/walkontable/src/viewport/workspaceSize.d.ts +59 -0
  263. package/3rdparty/walkontable/src/viewport/workspaceSize.js +284 -0
  264. package/3rdparty/walkontable/src/viewport/workspaceSize.mjs +282 -0
  265. package/3rdparty/walkontable/src/wire.d.mts +1 -0
  266. package/3rdparty/walkontable/src/wire.d.ts +81 -0
  267. package/3rdparty/walkontable/src/wire.js +56 -0
  268. package/3rdparty/walkontable/src/wire.mjs +56 -0
  269. package/LICENSE.txt +1 -1
  270. package/README.md +2 -2
  271. package/base.d.ts +10 -2
  272. package/base.js +2 -2
  273. package/base.mjs +2 -2
  274. package/cellTypes/checkboxType/accessors/valueSetter.d.ts +1 -1
  275. package/cellTypes/checkboxType/accessors/valueSetter.js +3 -1
  276. package/cellTypes/checkboxType/accessors/valueSetter.mjs +3 -1
  277. package/cellTypes/index.d.ts +3 -2
  278. package/cellTypes/index.js +9 -0
  279. package/cellTypes/index.mjs +5 -2
  280. package/cellTypes/intlDatetimeType/index.d.mts +1 -0
  281. package/cellTypes/intlDatetimeType/index.d.ts +1 -0
  282. package/cellTypes/intlDatetimeType/index.js +19 -0
  283. package/cellTypes/intlDatetimeType/index.mjs +1 -0
  284. package/cellTypes/intlDatetimeType/intlDatetimeType.d.mts +1 -0
  285. package/cellTypes/intlDatetimeType/intlDatetimeType.d.ts +16 -0
  286. package/cellTypes/intlDatetimeType/intlDatetimeType.js +31 -0
  287. package/cellTypes/intlDatetimeType/intlDatetimeType.mjs +15 -0
  288. package/cellTypes/multiSelectType/index.d.ts +1 -1
  289. package/cellTypes/multiSelectType/index.js +3 -0
  290. package/cellTypes/multiSelectType/index.mjs +1 -1
  291. package/cellTypes/multiSelectType/multiSelectType.d.ts +1 -0
  292. package/cellTypes/multiSelectType/multiSelectType.js +4 -0
  293. package/cellTypes/multiSelectType/multiSelectType.mjs +1 -0
  294. package/cellTypes/numericType/accessors/valueSetter.js +30 -2
  295. package/cellTypes/numericType/accessors/valueSetter.mjs +31 -3
  296. package/core/coordsMapper/rangeToRenderableMapper.js +5 -12
  297. package/core/coordsMapper/rangeToRenderableMapper.mjs +5 -12
  298. package/core/hooks/bucket.d.ts +40 -6
  299. package/core/hooks/bucket.js +113 -84
  300. package/core/hooks/bucket.mjs +118 -84
  301. package/core/hooks/constants.js +254 -16
  302. package/core/hooks/constants.mjs +254 -16
  303. package/core/hooks/index.js +28 -25
  304. package/core/hooks/index.mjs +28 -25
  305. package/core/layout/constants.d.ts +11 -0
  306. package/core/layout/constants.js +6 -0
  307. package/core/layout/constants.mjs +12 -0
  308. package/core/layout/domSlot.d.ts +3 -1
  309. package/core/layout/domSlot.js +21 -14
  310. package/core/layout/domSlot.mjs +21 -14
  311. package/core/layout/index.d.ts +2 -2
  312. package/core/layout/index.js +6 -0
  313. package/core/layout/index.mjs +2 -2
  314. package/core/layout/layoutManager.d.ts +13 -0
  315. package/core/layout/layoutManager.js +25 -13
  316. package/core/layout/layoutManager.mjs +26 -11
  317. package/core/settings.d.ts +59 -6
  318. package/core/types.d.ts +15 -1
  319. package/core/types.mjs +9 -0
  320. package/core.js +481 -85
  321. package/core.mjs +483 -87
  322. package/dataMap/dataMap.d.ts +3 -13
  323. package/dataMap/dataMap.js +101 -44
  324. package/dataMap/dataMap.mjs +102 -45
  325. package/dataMap/dataSource.js +4 -1
  326. package/dataMap/dataSource.mjs +4 -1
  327. package/dataMap/metaManager/index.d.ts +62 -8
  328. package/dataMap/metaManager/index.js +66 -0
  329. package/dataMap/metaManager/index.mjs +66 -0
  330. package/dataMap/metaManager/lazyFactoryMap.d.ts +68 -43
  331. package/dataMap/metaManager/lazyFactoryMap.js +490 -110
  332. package/dataMap/metaManager/lazyFactoryMap.mjs +504 -111
  333. package/dataMap/metaManager/metaLayers/cellMeta.d.ts +55 -8
  334. package/dataMap/metaManager/metaLayers/cellMeta.js +112 -17
  335. package/dataMap/metaManager/metaLayers/cellMeta.mjs +112 -17
  336. package/dataMap/metaManager/metaLayers/columnMeta.d.ts +2 -1
  337. package/dataMap/metaManager/metaLayers/columnMeta.js +1 -0
  338. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -0
  339. package/dataMap/metaManager/metaSchema.js +712 -31
  340. package/dataMap/metaManager/metaSchema.mjs +712 -31
  341. package/dataMap/metaManager/mods/dynamicCellMeta.d.ts +24 -10
  342. package/dataMap/metaManager/mods/dynamicCellMeta.js +245 -28
  343. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +246 -29
  344. package/dataMap/metaManager/mods/extendMetaProperties.js +4 -9
  345. package/dataMap/metaManager/mods/extendMetaProperties.mjs +4 -9
  346. package/dataMap/sourceDataValidator.d.ts +13 -21
  347. package/dataMap/sourceDataValidator.js +39 -29
  348. package/dataMap/sourceDataValidator.mjs +50 -33
  349. package/dist/handsontable.full.js +34553 -9903
  350. package/dist/handsontable.full.min.js +168 -112
  351. package/dist/handsontable.js +31541 -13409
  352. package/dist/handsontable.min.js +172 -116
  353. package/dist/languages/all.js +2 -1
  354. package/dist/languages/all.min.js +1 -1
  355. package/dist/languages/fa-IR.js +2 -1
  356. package/dist/languages/fa-IR.min.js +1 -1
  357. package/dist/themes/classic.js +9 -3
  358. package/dist/themes/classic.min.js +4 -4
  359. package/dist/themes/horizon.js +9 -3
  360. package/dist/themes/horizon.min.js +4 -4
  361. package/dist/themes/main.js +9 -3
  362. package/dist/themes/main.min.js +4 -4
  363. package/dist/themes/static/variables/colors/ant.js +3 -3
  364. package/dist/themes/static/variables/colors/ant.min.js +3 -3
  365. package/dist/themes/static/variables/colors/classic.js +3 -3
  366. package/dist/themes/static/variables/colors/classic.min.js +3 -3
  367. package/dist/themes/static/variables/colors/horizon.js +3 -3
  368. package/dist/themes/static/variables/colors/horizon.min.js +3 -3
  369. package/dist/themes/static/variables/colors/main.js +3 -3
  370. package/dist/themes/static/variables/colors/main.min.js +3 -3
  371. package/dist/themes/static/variables/colors/material.js +3 -3
  372. package/dist/themes/static/variables/colors/material.min.js +3 -3
  373. package/dist/themes/static/variables/colors/shadcn.js +3 -3
  374. package/dist/themes/static/variables/colors/shadcn.min.js +3 -3
  375. package/dist/themes/static/variables/density.js +3 -3
  376. package/dist/themes/static/variables/density.min.js +3 -3
  377. package/dist/themes/static/variables/helpers/iconsMap.js +4 -9
  378. package/dist/themes/static/variables/helpers/iconsMap.min.js +4 -9
  379. package/dist/themes/static/variables/icons/horizon.js +3 -3
  380. package/dist/themes/static/variables/icons/horizon.min.js +3 -3
  381. package/dist/themes/static/variables/icons/main.js +3 -3
  382. package/dist/themes/static/variables/icons/main.min.js +3 -3
  383. package/dist/themes/static/variables/sizing.js +3 -3
  384. package/dist/themes/static/variables/sizing.min.js +3 -3
  385. package/dist/themes/static/variables/tokens/classic.js +9 -3
  386. package/dist/themes/static/variables/tokens/classic.min.js +4 -4
  387. package/dist/themes/static/variables/tokens/horizon.js +9 -3
  388. package/dist/themes/static/variables/tokens/horizon.min.js +4 -4
  389. package/dist/themes/static/variables/tokens/main.js +9 -3
  390. package/dist/themes/static/variables/tokens/main.min.js +4 -4
  391. package/editorManager.js +1 -3
  392. package/editorManager.mjs +1 -3
  393. package/editors/autocompleteEditor/autocompleteEditor.js +48 -22
  394. package/editors/autocompleteEditor/autocompleteEditor.mjs +48 -22
  395. package/editors/baseEditor/baseEditor.d.ts +15 -3
  396. package/editors/baseEditor/baseEditor.js +6 -6
  397. package/editors/baseEditor/baseEditor.mjs +16 -6
  398. package/editors/factory.js +5 -2
  399. package/editors/factory.mjs +5 -2
  400. package/editors/index.d.ts +3 -2
  401. package/editors/index.js +8 -0
  402. package/editors/index.mjs +3 -1
  403. package/editors/intlDatetimeEditor/index.d.mts +1 -0
  404. package/editors/intlDatetimeEditor/index.d.ts +1 -0
  405. package/editors/intlDatetimeEditor/index.js +19 -0
  406. package/editors/intlDatetimeEditor/index.mjs +1 -0
  407. package/editors/intlDatetimeEditor/intlDatetimeEditor.d.mts +1 -0
  408. package/editors/intlDatetimeEditor/intlDatetimeEditor.d.ts +42 -0
  409. package/editors/intlDatetimeEditor/intlDatetimeEditor.js +108 -0
  410. package/editors/intlDatetimeEditor/intlDatetimeEditor.mjs +93 -0
  411. package/editors/multiSelectEditor/controllers/dropdownController.js +5 -12
  412. package/editors/multiSelectEditor/controllers/dropdownController.mjs +5 -12
  413. package/editors/multiSelectEditor/controllers/inputController.js +1 -3
  414. package/editors/multiSelectEditor/controllers/inputController.mjs +1 -3
  415. package/editors/multiSelectEditor/multiSelectEditor.js +16 -21
  416. package/editors/multiSelectEditor/multiSelectEditor.mjs +17 -22
  417. package/editors/passwordEditor/passwordEditor.js +5 -12
  418. package/editors/passwordEditor/passwordEditor.mjs +5 -12
  419. package/editors/registry.js +4 -9
  420. package/editors/registry.mjs +4 -9
  421. package/editors/textEditor/textEditor.js +1 -1
  422. package/editors/textEditor/textEditor.mjs +2 -2
  423. package/eventManager.d.ts +3 -3
  424. package/focusManager/grid.d.ts +28 -0
  425. package/focusManager/grid.js +84 -14
  426. package/focusManager/grid.mjs +80 -15
  427. package/focusManager/scopeManager.js +1 -1
  428. package/focusManager/scopeManager.mjs +2 -2
  429. package/handsontable-non-commercial-license.pdf +0 -0
  430. package/helpers/array.d.ts +25 -0
  431. package/helpers/array.js +41 -4
  432. package/helpers/array.mjs +56 -4
  433. package/helpers/dateTime.d.ts +14 -0
  434. package/helpers/dateTime.js +74 -2
  435. package/helpers/dateTime.mjs +73 -2
  436. package/helpers/dom/cellCoords.js +156 -13
  437. package/helpers/dom/cellCoords.mjs +156 -13
  438. package/helpers/dom/element.d.ts +27 -3
  439. package/helpers/dom/element.js +92 -16
  440. package/helpers/dom/element.mjs +107 -17
  441. package/helpers/dom/event.d.ts +58 -0
  442. package/helpers/dom/event.js +39 -0
  443. package/helpers/dom/event.mjs +63 -0
  444. package/helpers/errors.d.ts +5 -0
  445. package/helpers/errors.js +10 -6
  446. package/helpers/errors.mjs +10 -6
  447. package/helpers/feature.d.ts +19 -0
  448. package/helpers/feature.js +21 -0
  449. package/helpers/feature.mjs +30 -0
  450. package/helpers/function.d.ts +1 -1
  451. package/helpers/function.js +4 -1
  452. package/helpers/function.mjs +4 -1
  453. package/helpers/mixed.d.ts +103 -0
  454. package/helpers/mixed.js +373 -4
  455. package/helpers/mixed.mjs +413 -4
  456. package/helpers/moves.js +2 -1
  457. package/helpers/moves.mjs +2 -1
  458. package/helpers/number.d.ts +22 -0
  459. package/helpers/number.js +49 -0
  460. package/helpers/number.mjs +66 -0
  461. package/i18n/languages/ar-AR.js +8 -19
  462. package/i18n/languages/cs-CZ.js +8 -19
  463. package/i18n/languages/de-CH.js +8 -19
  464. package/i18n/languages/de-DE.js +8 -19
  465. package/i18n/languages/en-US.js +8 -19
  466. package/i18n/languages/es-MX.js +8 -19
  467. package/i18n/languages/fa-IR.d.ts +1 -0
  468. package/i18n/languages/fa-IR.js +9 -19
  469. package/i18n/languages/fa-IR.mjs +1 -0
  470. package/i18n/languages/fr-FR.js +8 -19
  471. package/i18n/languages/hr-HR.js +8 -19
  472. package/i18n/languages/it-IT.js +8 -19
  473. package/i18n/languages/ja-JP.js +8 -19
  474. package/i18n/languages/ko-KR.js +8 -19
  475. package/i18n/languages/lv-LV.js +8 -19
  476. package/i18n/languages/nb-NO.js +8 -19
  477. package/i18n/languages/nl-NL.js +8 -19
  478. package/i18n/languages/pl-PL.js +8 -19
  479. package/i18n/languages/pt-BR.js +8 -19
  480. package/i18n/languages/ru-RU.js +8 -19
  481. package/i18n/languages/sr-SP.js +8 -19
  482. package/i18n/languages/zh-CN.js +8 -19
  483. package/i18n/languages/zh-TW.js +8 -19
  484. package/i18n/registry.js +8 -19
  485. package/index.d.ts +2 -2
  486. package/index.js +8 -19
  487. package/languages/all.js +2 -1
  488. package/languages/fa-IR.js +2 -1
  489. package/languages/fa-IR.mjs +1 -0
  490. package/languages/index.js +2 -1
  491. package/package.json +61 -1
  492. package/plugins/autoColumnSize/autoColumnSize.d.ts +24 -1
  493. package/plugins/autoColumnSize/autoColumnSize.js +506 -94
  494. package/plugins/autoColumnSize/autoColumnSize.mjs +513 -95
  495. package/plugins/autoRowSize/autoRowSize.d.ts +40 -5
  496. package/plugins/autoRowSize/autoRowSize.js +73 -36
  497. package/plugins/autoRowSize/autoRowSize.mjs +103 -41
  498. package/plugins/autofill/autofill.js +35 -24
  499. package/plugins/autofill/autofill.mjs +35 -24
  500. package/plugins/base/base.d.ts +10 -0
  501. package/plugins/base/base.js +5 -12
  502. package/plugins/base/base.mjs +5 -12
  503. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -9
  504. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +4 -9
  505. package/plugins/collapsibleColumns/collapsibleColumns.d.ts +4 -0
  506. package/plugins/collapsibleColumns/collapsibleColumns.js +94 -20
  507. package/plugins/collapsibleColumns/collapsibleColumns.mjs +98 -20
  508. package/plugins/columnSorting/columnSorting.d.ts +31 -2
  509. package/plugins/columnSorting/columnSorting.js +153 -33
  510. package/plugins/columnSorting/columnSorting.mjs +155 -35
  511. package/plugins/columnSorting/columnStatesManager.d.ts +1 -1
  512. package/plugins/columnSorting/columnStatesManager.js +1 -7
  513. package/plugins/columnSorting/columnStatesManager.mjs +1 -7
  514. package/plugins/columnSorting/domHelpers.d.ts +3 -0
  515. package/plugins/columnSorting/domHelpers.js +9 -0
  516. package/plugins/columnSorting/domHelpers.mjs +3 -3
  517. package/plugins/columnSorting/rootComparator.js +21 -16
  518. package/plugins/columnSorting/rootComparator.mjs +21 -16
  519. package/plugins/columnSorting/sortFunction/checkbox.js +7 -5
  520. package/plugins/columnSorting/sortFunction/checkbox.mjs +7 -5
  521. package/plugins/columnSorting/sortFunction/default.js +15 -4
  522. package/plugins/columnSorting/sortFunction/default.mjs +15 -4
  523. package/plugins/columnSorting/sortFunction/intlDatetime.d.mts +1 -0
  524. package/plugins/columnSorting/sortFunction/intlDatetime.d.ts +10 -0
  525. package/plugins/columnSorting/sortFunction/intlDatetime.js +23 -0
  526. package/plugins/columnSorting/sortFunction/intlDatetime.mjs +12 -0
  527. package/plugins/columnSorting/sortService/registry.js +2 -0
  528. package/plugins/columnSorting/sortService/registry.mjs +2 -0
  529. package/plugins/columnSorting/utils.d.ts +8 -0
  530. package/plugins/columnSorting/utils.js +37 -45
  531. package/plugins/columnSorting/utils.mjs +42 -47
  532. package/plugins/columnSummary/columnSummary.js +13 -14
  533. package/plugins/columnSummary/columnSummary.mjs +13 -14
  534. package/plugins/columnSummary/endpoints.d.ts +69 -2
  535. package/plugins/columnSummary/endpoints.js +176 -29
  536. package/plugins/columnSummary/endpoints.mjs +176 -29
  537. package/plugins/comments/commentEditor.js +5 -10
  538. package/plugins/comments/commentEditor.mjs +6 -11
  539. package/plugins/comments/comments.js +5 -12
  540. package/plugins/comments/comments.mjs +5 -12
  541. package/plugins/comments/contextMenuItem/addEditComment.js +8 -19
  542. package/plugins/comments/contextMenuItem/readOnlyComment.js +8 -19
  543. package/plugins/comments/contextMenuItem/removeComment.js +8 -19
  544. package/plugins/comments/editorResizeObserver.js +5 -12
  545. package/plugins/comments/editorResizeObserver.mjs +5 -12
  546. package/plugins/contextMenu/contextMenu.d.ts +12 -1
  547. package/plugins/contextMenu/contextMenu.js +34 -15
  548. package/plugins/contextMenu/contextMenu.mjs +34 -15
  549. package/plugins/contextMenu/index.d.ts +1 -1
  550. package/plugins/contextMenu/menu/menu.d.ts +22 -1
  551. package/plugins/contextMenu/menu/menu.js +216 -15
  552. package/plugins/contextMenu/menu/menu.mjs +217 -16
  553. package/plugins/contextMenu/menu/positioner.js +4 -9
  554. package/plugins/contextMenu/menu/positioner.mjs +4 -9
  555. package/plugins/contextMenu/predefinedItems/alignment.js +22 -33
  556. package/plugins/contextMenu/predefinedItems/alignment.mjs +14 -14
  557. package/plugins/contextMenu/predefinedItems/clearColumn.js +9 -20
  558. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -1
  559. package/plugins/contextMenu/predefinedItems/columnLeft.js +8 -19
  560. package/plugins/contextMenu/predefinedItems/columnRight.js +8 -19
  561. package/plugins/contextMenu/predefinedItems/index.js +8 -19
  562. package/plugins/contextMenu/predefinedItems/readOnly.js +11 -22
  563. package/plugins/contextMenu/predefinedItems/readOnly.mjs +3 -3
  564. package/plugins/contextMenu/predefinedItems/redo.js +8 -19
  565. package/plugins/contextMenu/predefinedItems/removeColumn.js +8 -19
  566. package/plugins/contextMenu/predefinedItems/removeRow.js +8 -19
  567. package/plugins/contextMenu/predefinedItems/rowAbove.js +8 -19
  568. package/plugins/contextMenu/predefinedItems/rowBelow.js +8 -19
  569. package/plugins/contextMenu/predefinedItems/undo.js +8 -19
  570. package/plugins/contextMenu/utils.js +1 -1
  571. package/plugins/contextMenu/utils.mjs +1 -1
  572. package/plugins/copyPaste/contextMenuItem/cut.js +8 -19
  573. package/plugins/copyPaste/copyPaste.js +62 -20
  574. package/plugins/copyPaste/copyPaste.mjs +63 -21
  575. package/plugins/copyPaste/copyableRanges.js +11 -14
  576. package/plugins/copyPaste/copyableRanges.mjs +11 -14
  577. package/plugins/copyPaste/pasteEvent.d.ts +1 -1
  578. package/plugins/customBorders/contextMenuItem/bottom.js +8 -19
  579. package/plugins/customBorders/contextMenuItem/left.js +8 -19
  580. package/plugins/customBorders/contextMenuItem/noBorders.js +8 -19
  581. package/plugins/customBorders/contextMenuItem/right.js +8 -19
  582. package/plugins/customBorders/contextMenuItem/top.js +8 -19
  583. package/plugins/customBorders/customBorders.d.ts +21 -40
  584. package/plugins/customBorders/customBorders.js +1084 -223
  585. package/plugins/customBorders/customBorders.mjs +1078 -206
  586. package/plugins/customBorders/utils.d.ts +71 -0
  587. package/plugins/customBorders/utils.js +63 -0
  588. package/plugins/customBorders/utils.mjs +101 -0
  589. package/plugins/dataProvider/dataProvider.js +35 -38
  590. package/plugins/dataProvider/dataProvider.mjs +27 -19
  591. package/plugins/dataProvider/query/crud.js +1 -1
  592. package/plugins/dataProvider/query/crud.mjs +1 -1
  593. package/plugins/dialog/dialog.js +15 -33
  594. package/plugins/dialog/dialog.mjs +7 -14
  595. package/plugins/dialog/ui.js +5 -12
  596. package/plugins/dialog/ui.mjs +5 -12
  597. package/plugins/dragToScroll/autoScroller.js +4 -9
  598. package/plugins/dragToScroll/autoScroller.mjs +4 -9
  599. package/plugins/dragToScroll/dragToScroll.d.ts +2 -2
  600. package/plugins/dragToScroll/dragToScroll.js +155 -26
  601. package/plugins/dragToScroll/dragToScroll.mjs +156 -27
  602. package/plugins/dragToScroll/scrollTimer.js +4 -9
  603. package/plugins/dragToScroll/scrollTimer.mjs +4 -9
  604. package/plugins/dropdownMenu/dropdownMenu.d.ts +5 -1
  605. package/plugins/dropdownMenu/dropdownMenu.js +50 -15
  606. package/plugins/dropdownMenu/dropdownMenu.mjs +51 -16
  607. package/plugins/dropdownMenu/index.d.ts +1 -0
  608. package/plugins/emptyDataState/emptyDataState.js +15 -33
  609. package/plugins/emptyDataState/emptyDataState.mjs +7 -14
  610. package/plugins/emptyDataState/ui.js +4 -9
  611. package/plugins/emptyDataState/ui.mjs +4 -9
  612. package/plugins/exportFile/dataProvider.js +5 -1
  613. package/plugins/exportFile/dataProvider.mjs +5 -1
  614. package/plugins/exportFile/exportFile.js +13 -31
  615. package/plugins/exportFile/exportFile.mjs +5 -12
  616. package/plugins/exportFile/types/csv.js +1 -3
  617. package/plugins/exportFile/types/csv.mjs +1 -3
  618. package/plugins/exportFile/types/xlsx/cell-style.js +4 -2
  619. package/plugins/exportFile/types/xlsx/cell-style.mjs +4 -2
  620. package/plugins/exportFile/types/xlsx/date-utils.d.ts +15 -0
  621. package/plugins/exportFile/types/xlsx/date-utils.js +31 -0
  622. package/plugins/exportFile/types/xlsx/date-utils.mjs +36 -0
  623. package/plugins/exportFile/types/xlsx.js +10 -3
  624. package/plugins/exportFile/types/xlsx.mjs +11 -4
  625. package/plugins/filters/component/_base.d.ts +1 -2
  626. package/plugins/filters/component/_base.js +1 -2
  627. package/plugins/filters/component/_base.mjs +1 -2
  628. package/plugins/filters/component/actionBar.js +9 -22
  629. package/plugins/filters/component/actionBar.mjs +1 -3
  630. package/plugins/filters/component/condition.d.ts +1 -0
  631. package/plugins/filters/component/condition.js +11 -22
  632. package/plugins/filters/component/condition.mjs +3 -3
  633. package/plugins/filters/component/operators.js +1 -3
  634. package/plugins/filters/component/operators.mjs +1 -3
  635. package/plugins/filters/component/value.d.ts +5 -6
  636. package/plugins/filters/component/value.js +62 -56
  637. package/plugins/filters/component/value.mjs +55 -38
  638. package/plugins/filters/condition/beginsWith.js +8 -19
  639. package/plugins/filters/condition/between.js +8 -19
  640. package/plugins/filters/condition/contains.js +8 -19
  641. package/plugins/filters/condition/date/after.js +10 -20
  642. package/plugins/filters/condition/date/after.mjs +2 -1
  643. package/plugins/filters/condition/date/afterOrEqual.js +10 -20
  644. package/plugins/filters/condition/date/afterOrEqual.mjs +2 -1
  645. package/plugins/filters/condition/date/before.js +10 -20
  646. package/plugins/filters/condition/date/before.mjs +2 -1
  647. package/plugins/filters/condition/date/beforeOrEqual.js +10 -20
  648. package/plugins/filters/condition/date/beforeOrEqual.mjs +2 -1
  649. package/plugins/filters/condition/date/today.js +8 -19
  650. package/plugins/filters/condition/date/tomorrow.js +8 -19
  651. package/plugins/filters/condition/date/yesterday.js +8 -19
  652. package/plugins/filters/condition/empty.js +8 -19
  653. package/plugins/filters/condition/endsWith.js +8 -19
  654. package/plugins/filters/condition/equal.d.ts +7 -0
  655. package/plugins/filters/condition/equal.js +12 -19
  656. package/plugins/filters/condition/equal.mjs +10 -0
  657. package/plugins/filters/condition/greaterThan.js +8 -19
  658. package/plugins/filters/condition/greaterThanOrEqual.js +8 -19
  659. package/plugins/filters/condition/intlDate/after.js +8 -19
  660. package/plugins/filters/condition/intlDate/afterOrEqual.js +8 -19
  661. package/plugins/filters/condition/intlDate/before.js +8 -19
  662. package/plugins/filters/condition/intlDate/beforeOrEqual.js +8 -19
  663. package/plugins/filters/condition/intlDate/between.js +8 -19
  664. package/plugins/filters/condition/intlDate/today.js +8 -19
  665. package/plugins/filters/condition/intlDate/tomorrow.js +8 -19
  666. package/plugins/filters/condition/intlDate/yesterday.js +8 -19
  667. package/plugins/filters/condition/intlDatetime/after.d.mts +1 -0
  668. package/plugins/filters/condition/intlDatetime/after.d.ts +18 -0
  669. package/plugins/filters/condition/intlDatetime/after.js +66 -0
  670. package/plugins/filters/condition/intlDatetime/after.mjs +22 -0
  671. package/plugins/filters/condition/intlDatetime/afterOrEqual.d.mts +1 -0
  672. package/plugins/filters/condition/intlDatetime/afterOrEqual.d.ts +18 -0
  673. package/plugins/filters/condition/intlDatetime/afterOrEqual.js +66 -0
  674. package/plugins/filters/condition/intlDatetime/afterOrEqual.mjs +22 -0
  675. package/plugins/filters/condition/intlDatetime/before.d.mts +1 -0
  676. package/plugins/filters/condition/intlDatetime/before.d.ts +18 -0
  677. package/plugins/filters/condition/intlDatetime/before.js +66 -0
  678. package/plugins/filters/condition/intlDatetime/before.mjs +22 -0
  679. package/plugins/filters/condition/intlDatetime/beforeOrEqual.d.mts +1 -0
  680. package/plugins/filters/condition/intlDatetime/beforeOrEqual.d.ts +18 -0
  681. package/plugins/filters/condition/intlDatetime/beforeOrEqual.js +66 -0
  682. package/plugins/filters/condition/intlDatetime/beforeOrEqual.mjs +22 -0
  683. package/plugins/filters/condition/intlDatetime/between.d.mts +1 -0
  684. package/plugins/filters/condition/intlDatetime/between.d.ts +18 -0
  685. package/plugins/filters/condition/intlDatetime/between.js +67 -0
  686. package/plugins/filters/condition/intlDatetime/between.mjs +23 -0
  687. package/plugins/filters/condition/intlDatetime/today.d.mts +1 -0
  688. package/plugins/filters/condition/intlDatetime/today.d.ts +17 -0
  689. package/plugins/filters/condition/intlDatetime/today.js +65 -0
  690. package/plugins/filters/condition/intlDatetime/today.mjs +20 -0
  691. package/plugins/filters/condition/intlDatetime/tomorrow.d.mts +1 -0
  692. package/plugins/filters/condition/intlDatetime/tomorrow.d.ts +17 -0
  693. package/plugins/filters/condition/intlDatetime/tomorrow.js +66 -0
  694. package/plugins/filters/condition/intlDatetime/tomorrow.mjs +21 -0
  695. package/plugins/filters/condition/intlDatetime/yesterday.d.mts +1 -0
  696. package/plugins/filters/condition/intlDatetime/yesterday.d.ts +17 -0
  697. package/plugins/filters/condition/intlDatetime/yesterday.js +66 -0
  698. package/plugins/filters/condition/intlDatetime/yesterday.mjs +21 -0
  699. package/plugins/filters/condition/intlTime/after.js +8 -19
  700. package/plugins/filters/condition/intlTime/afterOrEqual.js +8 -19
  701. package/plugins/filters/condition/intlTime/before.js +8 -19
  702. package/plugins/filters/condition/intlTime/beforeOrEqual.js +8 -19
  703. package/plugins/filters/condition/intlTime/between.js +8 -19
  704. package/plugins/filters/condition/lessThan.js +8 -19
  705. package/plugins/filters/condition/lessThanOrEqual.js +8 -19
  706. package/plugins/filters/condition/none.js +8 -19
  707. package/plugins/filters/condition/notBetween.js +8 -19
  708. package/plugins/filters/condition/notContains.js +8 -19
  709. package/plugins/filters/condition/notEmpty.js +8 -19
  710. package/plugins/filters/condition/notEqual.js +8 -19
  711. package/plugins/filters/conditionCollection.js +4 -7
  712. package/plugins/filters/conditionCollection.mjs +4 -7
  713. package/plugins/filters/conditionUpdateObserver.d.ts +2 -2
  714. package/plugins/filters/conditionUpdateObserver.js +144 -52
  715. package/plugins/filters/conditionUpdateObserver.mjs +144 -52
  716. package/plugins/filters/constants.d.ts +1 -0
  717. package/plugins/filters/constants.js +31 -0
  718. package/plugins/filters/constants.mjs +28 -0
  719. package/plugins/filters/dataFilter.d.ts +4 -12
  720. package/plugins/filters/dataFilter.js +7 -19
  721. package/plugins/filters/dataFilter.mjs +8 -20
  722. package/plugins/filters/filters.d.ts +33 -9
  723. package/plugins/filters/filters.js +104 -62
  724. package/plugins/filters/filters.mjs +97 -44
  725. package/plugins/filters/logicalOperations/conjunction.js +8 -19
  726. package/plugins/filters/logicalOperations/disjunction.js +8 -19
  727. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +8 -19
  728. package/plugins/filters/sortComparators.d.ts +9 -2
  729. package/plugins/filters/sortComparators.js +34 -1
  730. package/plugins/filters/sortComparators.mjs +38 -3
  731. package/plugins/filters/ui/_base.js +8 -19
  732. package/plugins/filters/ui/input.d.ts +4 -0
  733. package/plugins/filters/ui/input.js +23 -18
  734. package/plugins/filters/ui/input.mjs +23 -18
  735. package/plugins/filters/ui/link.js +4 -9
  736. package/plugins/filters/ui/link.mjs +4 -9
  737. package/plugins/filters/ui/multipleSelect.js +40 -35
  738. package/plugins/filters/ui/multipleSelect.mjs +32 -16
  739. package/plugins/filters/ui/radioInput.js +4 -9
  740. package/plugins/filters/ui/radioInput.mjs +4 -9
  741. package/plugins/filters/ui/select.js +14 -32
  742. package/plugins/filters/ui/select.mjs +6 -13
  743. package/plugins/formulas/engine/register.d.ts +5 -4
  744. package/plugins/formulas/engine/register.js +5 -2
  745. package/plugins/formulas/engine/register.mjs +9 -5
  746. package/plugins/formulas/engine/settings.d.ts +2 -6
  747. package/plugins/formulas/engine/settings.js +29 -4
  748. package/plugins/formulas/engine/settings.mjs +29 -4
  749. package/plugins/formulas/engine/types.d.ts +12 -2
  750. package/plugins/formulas/formulas.d.ts +39 -0
  751. package/plugins/formulas/formulas.js +748 -55
  752. package/plugins/formulas/formulas.mjs +752 -57
  753. package/plugins/formulas/hyperlinkUrl.d.mts +1 -0
  754. package/plugins/formulas/hyperlinkUrl.d.ts +12 -0
  755. package/plugins/formulas/hyperlinkUrl.js +32 -0
  756. package/plugins/formulas/hyperlinkUrl.mjs +32 -0
  757. package/plugins/formulas/indexSyncer/axisSyncer.d.ts +1 -0
  758. package/plugins/formulas/indexSyncer/axisSyncer.js +77 -27
  759. package/plugins/formulas/indexSyncer/axisSyncer.mjs +77 -27
  760. package/plugins/formulas/indexSyncer/index.js +4 -9
  761. package/plugins/formulas/indexSyncer/index.mjs +4 -9
  762. package/plugins/formulas/utils.d.ts +9 -0
  763. package/plugins/formulas/utils.js +21 -0
  764. package/plugins/formulas/utils.mjs +25 -0
  765. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +8 -19
  766. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +14 -20
  767. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +6 -1
  768. package/plugins/hiddenColumns/hiddenColumns.js +11 -15
  769. package/plugins/hiddenColumns/hiddenColumns.mjs +11 -15
  770. package/plugins/hiddenRows/contextMenuItem/hideRow.js +8 -19
  771. package/plugins/hiddenRows/contextMenuItem/showRow.js +14 -20
  772. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +6 -1
  773. package/plugins/hiddenRows/hiddenRows.js +11 -15
  774. package/plugins/hiddenRows/hiddenRows.mjs +11 -15
  775. package/plugins/index.d.ts +5 -1
  776. package/plugins/index.js +10 -0
  777. package/plugins/index.mjs +5 -1
  778. package/plugins/loading/loading.js +13 -31
  779. package/plugins/loading/loading.mjs +5 -12
  780. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +8 -19
  781. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +8 -19
  782. package/plugins/manualColumnFreeze/manualColumnFreeze.js +5 -12
  783. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +5 -12
  784. package/plugins/manualColumnMove/manualColumnMove.d.ts +10 -0
  785. package/plugins/manualColumnMove/manualColumnMove.js +128 -33
  786. package/plugins/manualColumnMove/manualColumnMove.mjs +129 -34
  787. package/plugins/manualColumnResize/manualColumnResize.d.ts +12 -1
  788. package/plugins/manualColumnResize/manualColumnResize.js +28 -17
  789. package/plugins/manualColumnResize/manualColumnResize.mjs +28 -17
  790. package/plugins/manualRowMove/manualRowMove.js +5 -12
  791. package/plugins/manualRowMove/manualRowMove.mjs +5 -12
  792. package/plugins/manualRowResize/manualRowResize.d.ts +13 -2
  793. package/plugins/manualRowResize/manualRowResize.js +29 -18
  794. package/plugins/manualRowResize/manualRowResize.mjs +29 -18
  795. package/plugins/mergeCells/cellCoords.d.ts +8 -0
  796. package/plugins/mergeCells/cellCoords.js +15 -9
  797. package/plugins/mergeCells/cellCoords.mjs +15 -9
  798. package/plugins/mergeCells/cellsCollection.d.ts +46 -2
  799. package/plugins/mergeCells/cellsCollection.js +190 -71
  800. package/plugins/mergeCells/cellsCollection.mjs +190 -71
  801. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +8 -19
  802. package/plugins/mergeCells/focusOrder.d.ts +26 -20
  803. package/plugins/mergeCells/focusOrder.js +363 -189
  804. package/plugins/mergeCells/focusOrder.mjs +368 -184
  805. package/plugins/mergeCells/mergeCells.d.ts +13 -8
  806. package/plugins/mergeCells/mergeCells.js +327 -76
  807. package/plugins/mergeCells/mergeCells.mjs +327 -76
  808. package/plugins/moveCells/helpers.d.mts +1 -0
  809. package/plugins/moveCells/helpers.d.ts +21 -0
  810. package/plugins/moveCells/helpers.js +20 -0
  811. package/plugins/moveCells/helpers.mjs +15 -0
  812. package/plugins/moveCells/index.d.mts +1 -0
  813. package/plugins/moveCells/index.d.ts +1 -0
  814. package/plugins/moveCells/index.js +22 -0
  815. package/plugins/moveCells/index.mjs +1 -0
  816. package/plugins/moveCells/moveCells.d.mts +1 -0
  817. package/plugins/moveCells/moveCells.d.ts +80 -0
  818. package/plugins/moveCells/moveCells.js +595 -0
  819. package/plugins/moveCells/moveCells.mjs +580 -0
  820. package/plugins/multiColumnSorting/multiColumnSorting.d.ts +8 -8
  821. package/plugins/multiColumnSorting/multiColumnSorting.js +11 -16
  822. package/plugins/multiColumnSorting/multiColumnSorting.mjs +11 -16
  823. package/plugins/multiColumnSorting/rootComparator.js +26 -19
  824. package/plugins/multiColumnSorting/rootComparator.mjs +26 -19
  825. package/plugins/multipleSelectionHandles/multipleSelectionHandles.d.ts +19 -4
  826. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +266 -58
  827. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +266 -58
  828. package/plugins/nestedHeaders/nestedHeaders.d.ts +10 -1
  829. package/plugins/nestedHeaders/nestedHeaders.js +227 -35
  830. package/plugins/nestedHeaders/nestedHeaders.mjs +227 -35
  831. package/plugins/nestedHeaders/stateManager/columnArrangement.d.mts +1 -0
  832. package/plugins/nestedHeaders/stateManager/columnArrangement.d.ts +37 -0
  833. package/plugins/nestedHeaders/stateManager/columnArrangement.js +35 -0
  834. package/plugins/nestedHeaders/stateManager/columnArrangement.mjs +30 -0
  835. package/plugins/nestedHeaders/stateManager/deriveSettings.d.mts +1 -0
  836. package/plugins/nestedHeaders/stateManager/deriveSettings.d.ts +57 -0
  837. package/plugins/nestedHeaders/stateManager/deriveSettings.js +115 -0
  838. package/plugins/nestedHeaders/stateManager/deriveSettings.mjs +135 -0
  839. package/plugins/nestedHeaders/stateManager/headersTree.d.ts +14 -1
  840. package/plugins/nestedHeaders/stateManager/headersTree.js +4 -9
  841. package/plugins/nestedHeaders/stateManager/headersTree.mjs +4 -9
  842. package/plugins/nestedHeaders/stateManager/index.d.ts +76 -13
  843. package/plugins/nestedHeaders/stateManager/index.js +386 -50
  844. package/plugins/nestedHeaders/stateManager/index.mjs +387 -51
  845. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +3 -2
  846. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +3 -2
  847. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -1
  848. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -1
  849. package/plugins/nestedHeaders/stateManager/sourceSettings.d.ts +23 -6
  850. package/plugins/nestedHeaders/stateManager/sourceSettings.js +24 -13
  851. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +24 -13
  852. package/plugins/nestedHeaders/stateManager/utils.d.ts +17 -1
  853. package/plugins/nestedHeaders/stateManager/utils.js +6 -1
  854. package/plugins/nestedHeaders/stateManager/utils.mjs +6 -1
  855. package/plugins/nestedHeaders/utils/ghostTable.js +1 -3
  856. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -3
  857. package/plugins/nestedRows/data/dataManager.d.ts +4 -1
  858. package/plugins/nestedRows/data/dataManager.js +10 -4
  859. package/plugins/nestedRows/data/dataManager.mjs +10 -4
  860. package/plugins/nestedRows/nestedRows.d.ts +127 -1
  861. package/plugins/nestedRows/nestedRows.js +332 -17
  862. package/plugins/nestedRows/nestedRows.mjs +332 -17
  863. package/plugins/nestedRows/ui/collapsing.d.ts +58 -0
  864. package/plugins/nestedRows/ui/collapsing.js +234 -40
  865. package/plugins/nestedRows/ui/collapsing.mjs +234 -40
  866. package/plugins/nestedRows/ui/contextMenu.js +12 -28
  867. package/plugins/nestedRows/ui/contextMenu.mjs +4 -9
  868. package/plugins/notification/notification.js +13 -31
  869. package/plugins/notification/notification.mjs +5 -12
  870. package/plugins/notification/ui.js +4 -9
  871. package/plugins/notification/ui.mjs +4 -9
  872. package/plugins/pagination/pagination.js +7 -14
  873. package/plugins/pagination/pagination.mjs +7 -14
  874. package/plugins/pagination/ui.js +13 -31
  875. package/plugins/pagination/ui.mjs +5 -12
  876. package/plugins/search/search.js +27 -11
  877. package/plugins/search/search.mjs +27 -11
  878. package/plugins/selectionHandles/helpers.d.mts +1 -0
  879. package/plugins/selectionHandles/helpers.d.ts +17 -0
  880. package/plugins/selectionHandles/helpers.js +16 -0
  881. package/plugins/selectionHandles/helpers.mjs +11 -0
  882. package/plugins/selectionHandles/index.d.mts +1 -0
  883. package/plugins/selectionHandles/index.d.ts +1 -0
  884. package/plugins/selectionHandles/index.js +22 -0
  885. package/plugins/selectionHandles/index.mjs +1 -0
  886. package/plugins/selectionHandles/selectionHandles.d.mts +1 -0
  887. package/plugins/selectionHandles/selectionHandles.d.ts +52 -0
  888. package/plugins/selectionHandles/selectionHandles.js +335 -0
  889. package/plugins/selectionHandles/selectionHandles.mjs +316 -0
  890. package/plugins/stretchColumns/calculator.js +5 -12
  891. package/plugins/stretchColumns/calculator.mjs +5 -12
  892. package/plugins/stretchColumns/strategies/last.js +4 -9
  893. package/plugins/stretchColumns/strategies/last.mjs +4 -9
  894. package/plugins/stretchColumns/stretchColumns.js +4 -9
  895. package/plugins/stretchColumns/stretchColumns.mjs +4 -9
  896. package/plugins/touchScroll/touchScroll.js +4 -9
  897. package/plugins/touchScroll/touchScroll.mjs +4 -9
  898. package/plugins/trimRows/trimRows.d.ts +1 -1
  899. package/plugins/trimRows/trimRows.js +10 -11
  900. package/plugins/trimRows/trimRows.mjs +10 -11
  901. package/plugins/types.d.ts +4 -0
  902. package/plugins/undoRedo/actions/cellAlignment.js +1 -1
  903. package/plugins/undoRedo/actions/cellAlignment.mjs +1 -1
  904. package/plugins/undoRedo/actions/createColumn.js +4 -1
  905. package/plugins/undoRedo/actions/createColumn.mjs +4 -1
  906. package/plugins/undoRedo/actions/createRow.js +4 -1
  907. package/plugins/undoRedo/actions/createRow.mjs +4 -1
  908. package/plugins/undoRedo/actions/fixedCounts.d.mts +1 -0
  909. package/plugins/undoRedo/actions/fixedCounts.d.ts +36 -0
  910. package/plugins/undoRedo/actions/fixedCounts.js +63 -0
  911. package/plugins/undoRedo/actions/fixedCounts.mjs +62 -0
  912. package/plugins/undoRedo/actions/index.js +2 -0
  913. package/plugins/undoRedo/actions/index.mjs +2 -0
  914. package/plugins/undoRedo/actions/moveCells.d.mts +1 -0
  915. package/plugins/undoRedo/actions/moveCells.d.ts +104 -0
  916. package/plugins/undoRedo/actions/moveCells.js +225 -0
  917. package/plugins/undoRedo/actions/moveCells.mjs +227 -0
  918. package/plugins/undoRedo/actions/removeColumn.d.ts +18 -2
  919. package/plugins/undoRedo/actions/removeColumn.js +11 -4
  920. package/plugins/undoRedo/actions/removeColumn.mjs +12 -5
  921. package/plugins/undoRedo/actions/removeRow.js +2 -57
  922. package/plugins/undoRedo/actions/removeRow.mjs +2 -57
  923. package/plugins/undoRedo/undoRedo.d.ts +26 -0
  924. package/plugins/undoRedo/undoRedo.js +40 -11
  925. package/plugins/undoRedo/undoRedo.mjs +40 -11
  926. package/plugins/undoRedo/utils.d.ts +29 -0
  927. package/plugins/undoRedo/utils.js +55 -3
  928. package/plugins/undoRedo/utils.mjs +59 -0
  929. package/renderSizeProbe.d.mts +1 -0
  930. package/renderSizeProbe.d.ts +60 -0
  931. package/renderSizeProbe.js +161 -0
  932. package/renderSizeProbe.mjs +174 -0
  933. package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
  934. package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
  935. package/renderers/index.d.ts +3 -2
  936. package/renderers/index.js +8 -0
  937. package/renderers/index.mjs +3 -1
  938. package/renderers/intlDatetimeRenderer/index.d.mts +1 -0
  939. package/renderers/intlDatetimeRenderer/index.d.ts +1 -0
  940. package/renderers/intlDatetimeRenderer/index.js +22 -0
  941. package/renderers/intlDatetimeRenderer/index.mjs +1 -0
  942. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.d.mts +1 -0
  943. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.d.ts +26 -0
  944. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.js +82 -0
  945. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.mjs +67 -0
  946. package/renderers/multiSelectRenderer/multiSelectRenderer.js +2 -3
  947. package/renderers/multiSelectRenderer/multiSelectRenderer.mjs +2 -3
  948. package/renderers/multiSelectRenderer/utils/utils.d.ts +1 -1
  949. package/renderers/multiSelectRenderer/utils/utils.js +11 -8
  950. package/renderers/multiSelectRenderer/utils/utils.mjs +11 -8
  951. package/renderers/renderCell.d.mts +1 -0
  952. package/renderers/renderCell.d.ts +37 -0
  953. package/renderers/renderCell.js +43 -0
  954. package/renderers/renderCell.mjs +48 -0
  955. package/selection/highlight/highlight.js +1 -3
  956. package/selection/highlight/highlight.mjs +1 -3
  957. package/selection/highlight/types/areaLayered.d.ts +3 -1
  958. package/selection/highlight/types/areaLayered.js +4 -2
  959. package/selection/highlight/types/areaLayered.mjs +6 -2
  960. package/selection/highlight/types/focus.d.ts +3 -1
  961. package/selection/highlight/types/focus.js +3 -2
  962. package/selection/highlight/types/focus.mjs +5 -2
  963. package/selection/mouseEventHandler.js +29 -26
  964. package/selection/mouseEventHandler.mjs +29 -26
  965. package/selection/moveCells.d.mts +1 -0
  966. package/selection/moveCells.d.ts +15 -0
  967. package/selection/moveCells.js +13 -0
  968. package/selection/moveCells.mjs +9 -0
  969. package/selection/selection.d.ts +56 -2
  970. package/selection/selection.js +162 -36
  971. package/selection/selection.mjs +154 -17
  972. package/selection/transformation/_base.js +5 -12
  973. package/selection/transformation/_base.mjs +5 -12
  974. package/selection/types.d.ts +3 -0
  975. package/settings.d.ts +24 -3
  976. package/shortcuts/context.d.ts +4 -0
  977. package/shortcuts/context.js +16 -8
  978. package/shortcuts/context.mjs +20 -8
  979. package/shortcuts/contexts/commands/populateSelectedCellsData.js +1 -1
  980. package/shortcuts/contexts/commands/populateSelectedCellsData.mjs +1 -1
  981. package/styles/handsontable.css +504 -158
  982. package/styles/handsontable.min.css +4 -4
  983. package/styles/handsontableStyles.js +1 -1
  984. package/styles/handsontableStyles.mjs +1 -1
  985. package/styles/ht-icons-horizon.css +1 -10
  986. package/styles/ht-icons-horizon.min.css +4 -4
  987. package/styles/ht-icons-main.css +1 -10
  988. package/styles/ht-icons-main.min.css +4 -4
  989. package/styles/ht-theme-classic-no-icons.css +6 -0
  990. package/styles/ht-theme-classic-no-icons.min.css +4 -4
  991. package/styles/ht-theme-classic.css +7 -10
  992. package/styles/ht-theme-classic.min.css +4 -4
  993. package/styles/ht-theme-horizon-no-icons.css +6 -0
  994. package/styles/ht-theme-horizon-no-icons.min.css +4 -4
  995. package/styles/ht-theme-horizon.css +7 -10
  996. package/styles/ht-theme-horizon.min.css +4 -4
  997. package/styles/ht-theme-main-no-icons.css +6 -0
  998. package/styles/ht-theme-main-no-icons.min.css +4 -4
  999. package/styles/ht-theme-main.css +7 -10
  1000. package/styles/ht-theme-main.min.css +4 -4
  1001. package/tableView.d.ts +17 -4
  1002. package/tableView.js +211 -53
  1003. package/tableView.mjs +212 -54
  1004. package/themes/engine/builder.js +5 -12
  1005. package/themes/engine/builder.mjs +5 -12
  1006. package/themes/engine/index.d.ts +2 -1
  1007. package/themes/engine/index.js +3 -0
  1008. package/themes/engine/index.mjs +1 -1
  1009. package/themes/engine/manager.d.ts +75 -3
  1010. package/themes/engine/manager.js +247 -18
  1011. package/themes/engine/manager.mjs +254 -18
  1012. package/themes/engine/utils/cssVariables.d.ts +18 -1
  1013. package/themes/engine/utils/cssVariables.js +27 -11
  1014. package/themes/engine/utils/cssVariables.mjs +28 -11
  1015. package/themes/engine/utils/validation.js +7 -0
  1016. package/themes/engine/utils/validation.mjs +7 -0
  1017. package/themes/static/variables/helpers/iconsMap.js +1 -6
  1018. package/themes/static/variables/helpers/iconsMap.mjs +1 -6
  1019. package/themes/static/variables/tokens/classic.js +6 -0
  1020. package/themes/static/variables/tokens/classic.mjs +6 -0
  1021. package/themes/static/variables/tokens/horizon.js +6 -0
  1022. package/themes/static/variables/tokens/horizon.mjs +6 -0
  1023. package/themes/static/variables/tokens/main.js +6 -0
  1024. package/themes/static/variables/tokens/main.mjs +6 -0
  1025. package/themes/types.d.ts +1 -1
  1026. package/translations/changesObservable/observable.js +4 -9
  1027. package/translations/changesObservable/observable.mjs +4 -9
  1028. package/translations/changesObservable/observer.js +4 -9
  1029. package/translations/changesObservable/observer.mjs +4 -9
  1030. package/translations/indexMapper.d.ts +14 -9
  1031. package/translations/indexMapper.js +109 -49
  1032. package/translations/indexMapper.mjs +109 -49
  1033. package/translations/mapCollections/aggregatedCollection.js +20 -35
  1034. package/translations/mapCollections/aggregatedCollection.mjs +20 -35
  1035. package/translations/mapCollections/mapCollection.d.ts +10 -4
  1036. package/translations/mapCollections/mapCollection.js +2 -2
  1037. package/translations/mapCollections/mapCollection.mjs +2 -2
  1038. package/translations/maps/booleanMap.d.mts +1 -0
  1039. package/translations/maps/booleanMap.d.ts +86 -0
  1040. package/translations/maps/booleanMap.js +293 -0
  1041. package/translations/maps/booleanMap.mjs +301 -0
  1042. package/translations/maps/hidingMap.d.ts +5 -2
  1043. package/translations/maps/hidingMap.js +8 -3
  1044. package/translations/maps/hidingMap.mjs +8 -3
  1045. package/translations/maps/index.d.ts +5 -2
  1046. package/translations/maps/index.js +7 -3
  1047. package/translations/maps/index.mjs +10 -2
  1048. package/translations/maps/indexMap.d.ts +26 -2
  1049. package/translations/maps/indexMap.js +73 -6
  1050. package/translations/maps/indexMap.mjs +73 -6
  1051. package/translations/maps/indexesSequence.d.ts +53 -2
  1052. package/translations/maps/indexesSequence.js +218 -3
  1053. package/translations/maps/indexesSequence.mjs +226 -3
  1054. package/translations/maps/trimmingMap.d.ts +5 -2
  1055. package/translations/maps/trimmingMap.js +8 -3
  1056. package/translations/maps/trimmingMap.mjs +8 -3
  1057. package/translations/maps/utils/actionsOnIndexes.js +20 -1
  1058. package/translations/maps/utils/actionsOnIndexes.mjs +20 -1
  1059. package/translations/maps/utils/indexesSequence.js +12 -3
  1060. package/translations/maps/utils/indexesSequence.mjs +12 -3
  1061. package/translations/maps/utils/physicallyIndexed.js +12 -1
  1062. package/translations/maps/utils/physicallyIndexed.mjs +12 -1
  1063. package/utils/entitlementLicenseKey/classify.d.mts +1 -0
  1064. package/utils/entitlementLicenseKey/classify.d.ts +34 -0
  1065. package/utils/entitlementLicenseKey/classify.js +97 -0
  1066. package/utils/entitlementLicenseKey/classify.mjs +96 -0
  1067. package/utils/entitlementLicenseKey/constants.d.mts +1 -0
  1068. package/utils/entitlementLicenseKey/constants.d.ts +69 -0
  1069. package/utils/entitlementLicenseKey/constants.js +54 -0
  1070. package/utils/entitlementLicenseKey/constants.mjs +66 -0
  1071. package/utils/entitlementLicenseKey/detectFormat.d.mts +1 -0
  1072. package/utils/entitlementLicenseKey/detectFormat.d.ts +23 -0
  1073. package/utils/entitlementLicenseKey/detectFormat.js +60 -0
  1074. package/utils/entitlementLicenseKey/detectFormat.mjs +60 -0
  1075. package/utils/entitlementLicenseKey/encoding.d.mts +1 -0
  1076. package/utils/entitlementLicenseKey/encoding.d.ts +58 -0
  1077. package/utils/entitlementLicenseKey/encoding.js +161 -0
  1078. package/utils/entitlementLicenseKey/encoding.mjs +172 -0
  1079. package/utils/entitlementLicenseKey/extractKeyData.d.mts +1 -0
  1080. package/utils/entitlementLicenseKey/extractKeyData.d.ts +47 -0
  1081. package/utils/entitlementLicenseKey/extractKeyData.js +213 -0
  1082. package/utils/entitlementLicenseKey/extractKeyData.mjs +232 -0
  1083. package/utils/entitlementLicenseKey/grants.d.mts +1 -0
  1084. package/utils/entitlementLicenseKey/grants.d.ts +54 -0
  1085. package/utils/entitlementLicenseKey/grants.js +68 -0
  1086. package/utils/entitlementLicenseKey/grants.mjs +84 -0
  1087. package/utils/entitlementLicenseKey/index.d.mts +1 -0
  1088. package/utils/entitlementLicenseKey/index.d.ts +8 -0
  1089. package/utils/entitlementLicenseKey/index.js +53 -0
  1090. package/utils/entitlementLicenseKey/index.mjs +6 -0
  1091. package/utils/entitlementLicenseKey/sha512.d.mts +1 -0
  1092. package/utils/entitlementLicenseKey/sha512.d.ts +11 -0
  1093. package/utils/entitlementLicenseKey/sha512.js +328 -0
  1094. package/utils/entitlementLicenseKey/sha512.mjs +327 -0
  1095. package/utils/entitlementLicenseKey/types.d.mts +1 -0
  1096. package/utils/entitlementLicenseKey/types.d.ts +84 -0
  1097. package/utils/entitlementLicenseKey/types.js +8 -0
  1098. package/utils/entitlementLicenseKey/types.mjs +10 -0
  1099. package/utils/ghostTable.d.ts +1 -0
  1100. package/utils/ghostTable.js +58 -11
  1101. package/utils/ghostTable.mjs +58 -11
  1102. package/utils/interval.js +5 -12
  1103. package/utils/interval.mjs +5 -12
  1104. package/utils/licenseBranding/badge.d.mts +1 -0
  1105. package/utils/licenseBranding/badge.d.ts +21 -0
  1106. package/utils/licenseBranding/badge.js +237 -0
  1107. package/utils/licenseBranding/badge.mjs +244 -0
  1108. package/utils/licenseBranding/content.d.mts +1 -0
  1109. package/utils/licenseBranding/content.d.ts +54 -0
  1110. package/utils/licenseBranding/content.js +93 -0
  1111. package/utils/licenseBranding/content.mjs +79 -0
  1112. package/utils/licenseBranding/index.d.mts +1 -0
  1113. package/utils/licenseBranding/index.d.ts +14 -0
  1114. package/utils/licenseBranding/index.js +55 -0
  1115. package/utils/licenseBranding/index.mjs +56 -0
  1116. package/utils/licenseBranding/lockScreen.d.mts +1 -0
  1117. package/utils/licenseBranding/lockScreen.d.ts +23 -0
  1118. package/utils/licenseBranding/lockScreen.js +150 -0
  1119. package/utils/licenseBranding/lockScreen.mjs +159 -0
  1120. package/utils/licenseNotification.d.ts +19 -0
  1121. package/utils/licenseNotification.js +56 -29
  1122. package/utils/licenseNotification.mjs +61 -29
  1123. package/utils/movableMeta.d.mts +1 -0
  1124. package/utils/movableMeta.d.ts +40 -0
  1125. package/utils/movableMeta.js +47 -0
  1126. package/utils/movableMeta.mjs +46 -0
  1127. package/utils/parseTable.js +1 -1
  1128. package/utils/parseTable.mjs +1 -1
  1129. package/utils/samplesGenerator.d.ts +41 -14
  1130. package/utils/samplesGenerator.js +112 -42
  1131. package/utils/samplesGenerator.mjs +112 -42
  1132. package/utils/stylesHandler.d.ts +13 -0
  1133. package/utils/stylesHandler.js +60 -14
  1134. package/utils/stylesHandler.mjs +60 -14
  1135. package/validators/autocompleteValidator/autocompleteValidator.js +3 -0
  1136. package/validators/autocompleteValidator/autocompleteValidator.mjs +3 -0
  1137. package/validators/index.d.ts +3 -2
  1138. package/validators/index.js +8 -0
  1139. package/validators/index.mjs +3 -1
  1140. package/validators/intlDatetimeValidator/index.d.mts +1 -0
  1141. package/validators/intlDatetimeValidator/index.d.ts +1 -0
  1142. package/validators/intlDatetimeValidator/index.js +25 -0
  1143. package/validators/intlDatetimeValidator/index.mjs +1 -0
  1144. package/validators/intlDatetimeValidator/intlDatetimeValidator.d.mts +1 -0
  1145. package/validators/intlDatetimeValidator/intlDatetimeValidator.d.ts +28 -0
  1146. package/validators/intlDatetimeValidator/intlDatetimeValidator.js +49 -0
  1147. package/validators/intlDatetimeValidator/intlDatetimeValidator.mjs +37 -0
  1148. package/3rdparty/walkontable/src/overlay/bottom.d.mts +0 -1
  1149. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.d.mts +0 -1
  1150. package/3rdparty/walkontable/src/overlay/inlineStart.d.mts +0 -1
  1151. package/3rdparty/walkontable/src/overlay/top.d.mts +0 -1
  1152. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.d.mts +0 -1
  1153. package/3rdparty/walkontable/src/overlays.d.ts +0 -329
  1154. package/3rdparty/walkontable/src/overlays.js +0 -870
  1155. package/3rdparty/walkontable/src/overlays.mjs +0 -860
  1156. package/3rdparty/walkontable/src/renderer/table.d.mts +0 -1
  1157. package/3rdparty/walkontable/src/renderer/table.js +0 -229
  1158. package/3rdparty/walkontable/src/settings.d.mts +0 -2
  1159. package/3rdparty/walkontable/src/settings.js +0 -196
  1160. package/3rdparty/walkontable/src/settings.mjs +0 -263
  1161. package/3rdparty/walkontable/src/table/bottom.d.mts +0 -2
  1162. package/3rdparty/walkontable/src/table/bottom.d.ts +0 -19
  1163. package/3rdparty/walkontable/src/table/bottom.js +0 -38
  1164. package/3rdparty/walkontable/src/table/bottom.mjs +0 -23
  1165. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.d.mts +0 -2
  1166. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.d.ts +0 -20
  1167. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +0 -24
  1168. package/3rdparty/walkontable/src/table/inlineStart.d.mts +0 -2
  1169. package/3rdparty/walkontable/src/table/inlineStart.d.ts +0 -16
  1170. package/3rdparty/walkontable/src/table/inlineStart.js +0 -35
  1171. package/3rdparty/walkontable/src/table/inlineStart.mjs +0 -20
  1172. package/3rdparty/walkontable/src/table/master.d.mts +0 -2
  1173. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.d.mts +0 -2
  1174. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.d.ts +0 -75
  1175. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -122
  1176. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -112
  1177. package/3rdparty/walkontable/src/table/mixin/calculatedRows.d.mts +0 -2
  1178. package/3rdparty/walkontable/src/table/mixin/calculatedRows.d.ts +0 -75
  1179. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -122
  1180. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -112
  1181. package/3rdparty/walkontable/src/table/top.d.mts +0 -2
  1182. package/3rdparty/walkontable/src/table/top.d.ts +0 -19
  1183. package/3rdparty/walkontable/src/table/top.js +0 -38
  1184. package/3rdparty/walkontable/src/table/top.mjs +0 -23
  1185. package/3rdparty/walkontable/src/table/topInlineStartCorner.d.mts +0 -2
  1186. package/3rdparty/walkontable/src/table/topInlineStartCorner.d.ts +0 -20
  1187. package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +0 -24
  1188. package/3rdparty/walkontable/src/table.d.mts +0 -2
  1189. package/3rdparty/walkontable/src/table.d.ts +0 -741
  1190. package/3rdparty/walkontable/src/table.js +0 -1120
  1191. package/3rdparty/walkontable/src/table.mjs +0 -1105
  1192. package/3rdparty/walkontable/src/utils/cellCoords.d.mts +0 -1
  1193. package/3rdparty/walkontable/src/utils/cellCoords.js +0 -54
  1194. package/3rdparty/walkontable/src/utils/cellCoords.mjs +0 -54
  1195. package/3rdparty/walkontable/src/utils/column.d.mts +0 -2
  1196. package/3rdparty/walkontable/src/utils/column.js +0 -75
  1197. package/3rdparty/walkontable/src/utils/column.mjs +0 -70
  1198. package/3rdparty/walkontable/src/utils/positionCache.d.mts +0 -1
  1199. package/3rdparty/walkontable/src/utils/positionCache.d.ts +0 -91
  1200. package/3rdparty/walkontable/src/utils/positionCache.js +0 -193
  1201. package/3rdparty/walkontable/src/utils/positionCache.mjs +0 -194
  1202. package/3rdparty/walkontable/src/utils/row.d.mts +0 -2
  1203. package/3rdparty/walkontable/src/utils/row.js +0 -46
  1204. package/3rdparty/walkontable/src/utils/row.mjs +0 -41
  1205. package/3rdparty/walkontable/src/viewport.d.ts +0 -254
  1206. package/3rdparty/walkontable/src/viewport.js +0 -533
  1207. package/3rdparty/walkontable/src/viewport.mjs +0 -523
  1208. /package/3rdparty/walkontable/src/{renderer → axisSizing/positionCache}/index.d.mts +0 -0
  1209. /package/3rdparty/walkontable/src/{overlays.d.mts → overlay/overlays.d.mts} +0 -0
  1210. /package/3rdparty/walkontable/src/overlay/{_base.d.mts → regions/_base.d.mts} +0 -0
  1211. /package/3rdparty/walkontable/src/{stickyScrollStrategy.d.mts → overlay/strategies/stickyScrollStrategy.d.mts} +0 -0
  1212. /package/3rdparty/walkontable/src/{renderer → render}/_base.d.mts +0 -0
  1213. /package/3rdparty/walkontable/src/{renderer → render}/_base.js +0 -0
  1214. /package/3rdparty/walkontable/src/{renderer → render}/_base.mjs +0 -0
  1215. /package/3rdparty/walkontable/src/{renderer → render}/cells.d.mts +0 -0
  1216. /package/3rdparty/walkontable/src/{renderer → render}/cells.d.ts +0 -0
  1217. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.d.mts +0 -0
  1218. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.d.ts +0 -0
  1219. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.js +0 -0
  1220. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.mjs +0 -0
  1221. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.d.mts +0 -0
  1222. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.d.ts +0 -0
  1223. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.js +0 -0
  1224. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.mjs +0 -0
  1225. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.d.mts +0 -0
  1226. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.d.mts +0 -0
  1227. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.d.ts +0 -0
  1228. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.js +0 -0
  1229. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.mjs +0 -0
  1230. /package/3rdparty/walkontable/src/{renderer → render}/rows.d.mts +0 -0
  1231. /package/3rdparty/walkontable/src/{renderer → render}/rows.d.ts +0 -0
  1232. /package/3rdparty/walkontable/src/{scroll.d.mts → scroll/scroll.d.mts} +0 -0
  1233. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.d.mts +0 -0
  1234. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.d.mts +0 -0
  1235. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.js +0 -0
  1236. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.mjs +0 -0
  1237. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.d.mts +0 -0
  1238. /package/3rdparty/walkontable/src/{viewport.d.mts → viewport/viewport.d.mts} +0 -0
@@ -27,23 +27,20 @@ const _object = require("../../helpers/object");
27
27
  const _number = require("../../helpers/number");
28
28
  const _samplesGenerator = /*#__PURE__*/ _interop_require_default(require("../../utils/samplesGenerator"));
29
29
  const _string = require("../../helpers/string");
30
+ const _renderCell = require("../../renderers/renderCell");
30
31
  const _src = require("../../3rdparty/walkontable/src");
31
- const _translations = require("../../translations");
32
32
  function _check_private_redeclaration(obj, privateCollection) {
33
33
  if (privateCollection.has(obj)) {
34
34
  throw new TypeError("Cannot initialize the same private elements twice on an object");
35
35
  }
36
36
  }
37
37
  function _class_apply_descriptor_get(receiver, descriptor) {
38
- if (descriptor.get) {
39
- return descriptor.get.call(receiver);
40
- }
38
+ if (descriptor.get) return descriptor.get.call(receiver);
41
39
  return descriptor.value;
42
40
  }
43
41
  function _class_apply_descriptor_set(receiver, descriptor, value) {
44
- if (descriptor.set) {
45
- descriptor.set.call(receiver, value);
46
- } else {
42
+ if (descriptor.set) descriptor.set.call(receiver, value);
43
+ else {
47
44
  if (!descriptor.writable) {
48
45
  throw new TypeError("attempted to set read only private field");
49
46
  }
@@ -51,9 +48,7 @@ function _class_apply_descriptor_set(receiver, descriptor, value) {
51
48
  }
52
49
  }
53
50
  function _class_extract_field_descriptor(receiver, privateMap, action) {
54
- if (!privateMap.has(receiver)) {
55
- throw new TypeError("attempted to " + action + " private field on non-instance");
56
- }
51
+ if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
57
52
  return privateMap.get(receiver);
58
53
  }
59
54
  function _class_private_field_get(receiver, privateMap) {
@@ -70,9 +65,7 @@ function _class_private_field_set(receiver, privateMap, value) {
70
65
  return value;
71
66
  }
72
67
  function _class_private_method_get(receiver, privateSet, fn) {
73
- if (!privateSet.has(receiver)) {
74
- throw new TypeError("attempted to get private field on non-instance");
75
- }
68
+ if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
76
69
  return fn;
77
70
  }
78
71
  function _class_private_method_init(obj, privateSet) {
@@ -98,41 +91,123 @@ var /**
98
91
  *
99
92
  * @type {Array}
100
93
  */ _cachedColumnHeaders = /*#__PURE__*/ new WeakMap(), /**
101
- * An array of column indexes whose width will be recalculated.
94
+ * Pending width refresh requests keyed by visual column index, consumed before the next render.
95
+ * A `null` value means the column needs a full row-range rescan. An array value holds the
96
+ * changed cells (visual row index and the previous cell value) used by the width-determiner
97
+ * probe, which measures only the changed cells and skips the full rescan when the edit could
98
+ * not have changed the column's width.
99
+ *
100
+ * @type {Map<number, Array<object>|null>}
101
+ */ _columnWidthsToRefresh = /*#__PURE__*/ new WeakMap(), /**
102
+ * Caches the sampled values (a handful of bucketed strings per column) collected by the last
103
+ * full row-range scan, keyed by physical column index. Forced renders re-measure the visible
104
+ * columns by re-rendering these samples through the ghost table — picking up CSS or renderer
105
+ * changes — instead of re-walking the whole row range. The cache is dropped whenever the row
106
+ * set or the source data changes in a way the width refresh queue cannot describe, which
107
+ * makes the next re-measure fall back to a full scan.
102
108
  *
103
- * @type {number[]}
104
- */ _visualColumnsToRefresh = /*#__PURE__*/ new WeakMap(), /**
109
+ * @type {Map<number, Map>}
110
+ */ _columnSamplesCache = /*#__PURE__*/ new WeakMap(), /**
105
111
  * Disposer function for the column widths map observer. Called on disable to clean up.
106
112
  *
107
113
  * @type {Function|null}
108
114
  */ _disposeMapObserver = /*#__PURE__*/ new WeakMap(), /**
109
- * Calculates specific columns width (overwrite cache values).
115
+ * Consumes the width refresh queue. Columns queued with change details go through the
116
+ * width-determiner probe first; columns queued for a full refresh (and columns whose probe
117
+ * was inconclusive) are rescanned over the whole row range, like before.
118
+ */ _refreshQueuedColumnsWidth = /*#__PURE__*/ new WeakSet(), /**
119
+ * Measures only the changed cells of the queued columns and decides, per column, whether the
120
+ * cached width is still valid, can be grown in place, or whether the column needs a full
121
+ * row-range rescan (appended to `fullRescanColumns`).
122
+ *
123
+ * The probe measures pure cell widths (ghost table headers disabled) and reasons as follows:
124
+ * - when a new value renders wider than the cached width, that value is the new widest cell
125
+ * and the width is grown in place, without a rescan;
126
+ * - otherwise, when every previous value renders narrower than the cached width, the changed
127
+ * cells were not the width determiners and the cached width stays valid;
128
+ * - otherwise a previous value could have determined the cached width, so the column is
129
+ * rescanned to find the new widest cell (this is what allows the column to shrink).
130
+ *
131
+ * @param {object[]} probes The queued columns with their changed cells and cached widths.
132
+ * @param {number[]} fullRescanColumns The list that columns needing a full rescan are appended to.
133
+ */ _probeChangedCellsWidth = /*#__PURE__*/ new WeakSet(), /**
134
+ * Keeps the column's cached samples usable after an in-place decision: strings sampled from
135
+ * the changed rows are evicted (their values are stale now) and the freshly probed samples
136
+ * of the changed cells are merged in, so a later re-measure (e.g. after a CSS change) still
137
+ * sees the current values — including the one that grew the column. Columns without a cache
138
+ * entry are left without one — an incomplete entry would make a later re-measure compute the
139
+ * width from the changed cells alone.
140
+ *
141
+ * @param {object} probe The probed column with its changed cells.
142
+ * @param {Map} [samples] Freshly probed samples of the changed cells to merge in.
143
+ */ _updateCachedSamples = /*#__PURE__*/ new WeakSet(), /**
144
+ * Measures the rendered width of the given per-column sample maps with the ghost table, with
145
+ * headers disabled — a header rendered next to the samples would put a floor under every
146
+ * measurement and mask the comparison against the cached width.
110
147
  *
111
- * @param {number[]} visualColumns List of visual columns to calculate.
112
- */ _calculateSpecificColumnsWidth = /*#__PURE__*/ new WeakSet(), /**
113
- * Generates content samples for the given column within the row range and adds each sample
114
- * to the ghost table so its rendered width can be measured.
148
+ * @param {object[]} items An array of `{ visualColumn, samples }` objects to measure.
149
+ * @returns {Map<number, number>} Measured widths keyed by visual column index.
150
+ */ _measureCellsWidth = /*#__PURE__*/ new WeakSet(), /**
151
+ * Formats a probed value the way the render path would — cell-level `valueFormatter` first,
152
+ * then the renderer's own static — so the measured string matches what the renderer produces.
153
+ *
154
+ * @param {number} row Visual row index.
155
+ * @param {number} column Visual column index.
156
+ * @param {*} value The raw value to format.
157
+ * @returns {*}
158
+ */ _formatProbeValue = /*#__PURE__*/ new WeakSet(), /**
159
+ * Generates content samples for the given column within the row range, adds each sample
160
+ * to the ghost table so its rendered width can be measured, and refreshes the column's
161
+ * samples cache.
115
162
  */ _fillGhostTableWithSamples = /*#__PURE__*/ new WeakSet(), /**
163
+ * Adds a column to the ghost table, passing a shallow clone of the samples map — the ghost
164
+ * table's `clean()` empties the last map it received, which must never wipe a map that is
165
+ * kept in the samples cache.
166
+ *
167
+ * @param {number} visualColumn Visual column index.
168
+ * @param {Map} samples The samples map to measure.
169
+ */ _addGhostTableColumn = /*#__PURE__*/ new WeakSet(), /**
116
170
  * Updates the column widths map with calculated widths from the ghost table.
117
171
  *
118
172
  */ _updateColumnWidthsMapBasedOnGhostTable = /*#__PURE__*/ new WeakSet(), /**
119
- * Recalculates widths for currently visible columns and processes any columns queued by
120
- * data or header changes before the next render.
173
+ * Recalculates widths for currently visible columns (cache misses only) and consumes the
174
+ * width refresh queue populated by data, header, or row-set changes.
121
175
  */ _onBeforeRender = /*#__PURE__*/ new WeakMap(), /**
122
176
  * Triggers a full column width recalculation after new data is loaded, skipping the initial
123
177
  * load since `#onInit` already handles it.
124
178
  */ _onAfterLoadData = /*#__PURE__*/ new WeakMap(), /**
125
- * Queues the visual column indexes affected by the incoming changes so their widths are
126
- * recalculated on the next render.
179
+ * Queues the cells affected by the incoming changes, keyed by their visual column, so the
180
+ * width-determiner probe can decide before the next render whether each column's width
181
+ * actually needs a refresh.
127
182
  */ _onBeforeChange = /*#__PURE__*/ new WeakMap(), /**
183
+ * Drops the cached samples after a source-data write. Source-level changes bypass
184
+ * `beforeChangeRender`, so there is no per-cell change information to refresh the samples
185
+ * with — the render that follows falls back to full scans for the visible columns.
186
+ */ _onAfterSetSourceDataAtCell = /*#__PURE__*/ new WeakMap(), /**
187
+ * Drops the cached samples of a column whose cell meta changed. Meta keys like
188
+ * `valueFormatter`, `renderer`, `className`, or `type` affect the rendered width, and the
189
+ * cached sample strings (formatted when they were sampled) would replay the previous meta
190
+ * on the next re-measure — the next full render re-walks the column instead.
191
+ */ _onAfterSetCellMeta = /*#__PURE__*/ new WeakMap(), /**
192
+ * Drops the cached samples when the set of rows that feeds the width calculation changes
193
+ * (rows inserted, removed, moved, trimmed, or hidden). Sampling skips hidden rows and the
194
+ * samples carry row coordinates, so a changed row set invalidates them — the next re-measure
195
+ * falls back to a full scan, which lets a column shrink when its widest cell disappears.
196
+ */ _onRowIndexMapperCacheUpdate = /*#__PURE__*/ new WeakMap(), /**
197
+ * Drops the cached samples when the column sequence changes (columns inserted, removed, or
198
+ * moved) — the cache is keyed by physical column index, and a structural change would leave
199
+ * the samples associated with the wrong columns.
200
+ */ _onColumnIndexMapperCacheUpdate = /*#__PURE__*/ new WeakMap(), /**
128
201
  * Recalculates the column width from content on a double-click and returns it as the new
129
202
  * size; returns the user-dragged size otherwise.
130
203
  */ _onBeforeColumnResize = /*#__PURE__*/ new WeakMap(), /**
131
204
  * Initializes the column header cache and triggers the first full column width recalculation
132
205
  * after Handsontable has finished initializing.
133
206
  */ _onInit = /*#__PURE__*/ new WeakMap(), /**
134
- * Queues visual column indexes whose formula results changed so their widths are recalculated
135
- * before the next render. Skips changes belonging to a different sheet.
207
+ * Queues cells whose formula results changed so their columns' widths are refreshed before
208
+ * the next render. The engine does not carry previous values, so the probe can only grow the
209
+ * width in place — a potential shrink falls back to a full column rescan. Skips changes
210
+ * belonging to a different sheet.
136
211
  */ _onAfterFormulasValuesUpdate = /*#__PURE__*/ new WeakMap();
137
212
  class AutoColumnSize extends _base.BasePlugin {
138
213
  /**
@@ -170,6 +245,14 @@ class AutoColumnSize extends _base.BasePlugin {
170
245
  return 50;
171
246
  }
172
247
  /**
248
+ * Returns the maximum number of cells sampled in a single asynchronous calculation step. Together
249
+ * with {@link AutoColumnSize.CALCULATION_STEP} it bounds the work done per animation frame: a
250
+ * column whose row range exceeds the budget is swept across multiple frames, and its width is
251
+ * written once, when the sweep completes.
252
+ */ static get CALCULATION_CELLS_BUDGET() {
253
+ return 100000;
254
+ }
255
+ /**
173
256
  * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
174
257
  * hook and if it returns `true` then the {@link #enablePlugin} method is called.
175
258
  *
@@ -191,10 +274,14 @@ class AutoColumnSize extends _base.BasePlugin {
191
274
  }
192
275
  this.addHook('afterLoadData', _class_private_field_get(this, _onAfterLoadData));
193
276
  this.addHook('beforeChangeRender', _class_private_field_get(this, _onBeforeChange));
277
+ this.addHook('afterSetCellMeta', _class_private_field_get(this, _onAfterSetCellMeta));
278
+ this.addHook('afterSetSourceDataAtCell', _class_private_field_get(this, _onAfterSetSourceDataAtCell));
194
279
  this.addHook('afterFormulasValuesUpdate', _class_private_field_get(this, _onAfterFormulasValuesUpdate));
195
280
  this.addHook('beforeRender', _class_private_field_get(this, _onBeforeRender));
196
281
  this.addHook('modifyColWidth', (width, col)=>this.getColumnWidth(col, width), -10);
197
282
  this.addHook('init', _class_private_field_get(this, _onInit));
283
+ this.hot.rowIndexMapper.addLocalHook('cacheUpdated', _class_private_field_get(this, _onRowIndexMapperCacheUpdate));
284
+ this.hot.columnIndexMapper.addLocalHook('cacheUpdated', _class_private_field_get(this, _onColumnIndexMapperCacheUpdate));
198
285
  _class_private_field_set(this, _disposeMapObserver, this.hot.columnIndexMapper.observeMapChange(this.columnWidthsMap, ()=>{
199
286
  this.hot.view?.invalidateColumnWidthCache();
200
287
  }));
@@ -203,7 +290,12 @@ class AutoColumnSize extends _base.BasePlugin {
203
290
  /**
204
291
  * Updates the plugin's state. This method is executed when {@link Core#updateSettings} is invoked.
205
292
  */ updatePlugin() {
206
- _class_private_field_set(this, _visualColumnsToRefresh, this.findColumnsWhereHeaderWasChanged());
293
+ this.findColumnsWhereHeaderWasChanged().forEach((visualColumn)=>{
294
+ _class_private_field_get(this, _columnWidthsToRefresh).set(visualColumn, null);
295
+ });
296
+ // Settings may remap the data that feeds the samples (e.g. a new `columns` definition), so
297
+ // the cached samples cannot be trusted — the next re-measure falls back to a full scan.
298
+ _class_private_field_get(this, _columnSamplesCache).clear();
207
299
  super.updatePlugin();
208
300
  }
209
301
  /**
@@ -213,6 +305,8 @@ class AutoColumnSize extends _base.BasePlugin {
213
305
  _class_private_field_get(this, _disposeMapObserver).call(this);
214
306
  _class_private_field_set(this, _disposeMapObserver, null);
215
307
  }
308
+ this.hot.rowIndexMapper.removeLocalHook('cacheUpdated', _class_private_field_get(this, _onRowIndexMapperCacheUpdate));
309
+ this.hot.columnIndexMapper.removeLocalHook('cacheUpdated', _class_private_field_get(this, _onColumnIndexMapperCacheUpdate));
216
310
  super.disablePlugin();
217
311
  // Leave the listener active to allow auto-sizing the columns when the plugin is disabled.
218
312
  // This is necessary for width recalculation for resize handler doubleclick (ManualColumnResize).
@@ -263,7 +357,15 @@ class AutoColumnSize extends _base.BasePlugin {
263
357
  physicalColumn = visualColumn;
264
358
  }
265
359
  if (overwriteCache || this.columnWidthsMap.getValueAtIndex(physicalColumn) === null && !this.hot._getColWidthFromSettings(physicalColumn)) {
266
- _class_private_method_get(this, _fillGhostTableWithSamples, fillGhostTableWithSamples).call(this, visualColumn, rowsRange);
360
+ const cachedSamples = overwriteCache ? _class_private_field_get(this, _columnSamplesCache).get(physicalColumn) : undefined;
361
+ // A re-measure (cache overwrite) with an intact samples cache re-renders the previously
362
+ // sampled values — picking up CSS or renderer changes — without re-walking the row range.
363
+ // Data changes refresh or drop the cached samples, so a full scan runs only when needed.
364
+ if (cachedSamples !== undefined) {
365
+ _class_private_method_get(this, _addGhostTableColumn, addGhostTableColumn).call(this, visualColumn, cachedSamples);
366
+ } else {
367
+ _class_private_method_get(this, _fillGhostTableWithSamples, fillGhostTableWithSamples).call(this, visualColumn, rowsRange);
368
+ }
267
369
  }
268
370
  });
269
371
  if (this.ghostTable.columns.length) {
@@ -282,42 +384,102 @@ class AutoColumnSize extends _base.BasePlugin {
282
384
  from: 0,
283
385
  to: this.hot.countRows() - 1
284
386
  }, overwriteCache = false) {
285
- let current = 0;
286
- const length = this.hot.countCols() - 1;
387
+ const rowsRange = typeof rowRange === 'number' ? {
388
+ from: rowRange,
389
+ to: rowRange
390
+ } : rowRange;
391
+ const lastColumn = this.hot.countCols() - 1;
392
+ let currentColumn = 0;
393
+ let currentRowCursor = rowsRange.from;
394
+ let columnSamples = null;
287
395
  let timer = 0;
288
396
  this.inProgress = true;
397
+ const shouldMeasureColumn = (visualColumn)=>{
398
+ let physicalColumn = this.hot.toPhysicalColumn(visualColumn);
399
+ if (physicalColumn === null) {
400
+ physicalColumn = visualColumn;
401
+ }
402
+ return overwriteCache || this.columnWidthsMap.getValueAtIndex(physicalColumn) === null && !this.hot._getColWidthFromSettings(physicalColumn);
403
+ };
404
+ /**
405
+ * Sweeps up to `columnsBudget` columns, sampling at most `cellsBudget` cells. A column whose
406
+ * remaining row range exceeds the cells budget is left mid-sweep (its samples accumulate in
407
+ * `columnSamples`) and is continued by the next call. Returns `true` when every column has
408
+ * been processed.
409
+ *
410
+ * @param {number} columnsBudget The maximum number of columns to process in this chunk.
411
+ * @param {number} cellsBudget The maximum number of cells to sample in this chunk.
412
+ * @returns {boolean}
413
+ */ const processChunk = (columnsBudget, cellsBudget)=>{
414
+ let remainingColumns = columnsBudget;
415
+ let remainingCells = cellsBudget;
416
+ while(remainingColumns > 0 && currentColumn <= lastColumn){
417
+ if (columnSamples === null) {
418
+ if (!shouldMeasureColumn(currentColumn)) {
419
+ currentColumn += 1;
420
+ remainingColumns -= 1;
421
+ continue;
422
+ }
423
+ columnSamples = new Map();
424
+ currentRowCursor = rowsRange.from;
425
+ }
426
+ if (currentRowCursor <= rowsRange.to) {
427
+ if (remainingCells <= 0) {
428
+ return false;
429
+ }
430
+ const sliceTo = Math.min(rowsRange.to, currentRowCursor + remainingCells - 1);
431
+ this.samplesGenerator.generateSample('col', {
432
+ from: currentRowCursor,
433
+ to: sliceTo
434
+ }, currentColumn, columnSamples);
435
+ remainingCells -= sliceTo - currentRowCursor + 1;
436
+ currentRowCursor = sliceTo + 1;
437
+ }
438
+ if (currentRowCursor > rowsRange.to) {
439
+ const physicalColumn = this.hot.toPhysicalColumn(currentColumn);
440
+ _class_private_method_get(this, _addGhostTableColumn, addGhostTableColumn).call(this, currentColumn, columnSamples);
441
+ _class_private_field_get(this, _columnSamplesCache).set(physicalColumn === null ? currentColumn : physicalColumn, columnSamples);
442
+ columnSamples = null;
443
+ currentColumn += 1;
444
+ remainingColumns -= 1;
445
+ }
446
+ }
447
+ return currentColumn > lastColumn;
448
+ };
449
+ const flushGhostTable = ()=>{
450
+ if (this.ghostTable.columns.length) {
451
+ _class_private_method_get(this, _updateColumnWidthsMapBasedOnGhostTable, updateColumnWidthsMapBasedOnGhostTable).call(this);
452
+ this.measuredColumns = currentColumn;
453
+ this.ghostTable.clean();
454
+ }
455
+ };
289
456
  const loop = ()=>{
290
457
  // When hot was destroyed after calculating finished cancel frame
291
458
  if (!this.hot) {
292
- (0, _feature.cancelAnimationFrame)(timer);
459
+ (0, _feature.cancelIdleTask)(timer);
293
460
  this.inProgress = false;
294
461
  return;
295
462
  }
296
- this.calculateColumnsWidth({
297
- from: current,
298
- to: Math.min(current + AutoColumnSize.CALCULATION_STEP, length)
299
- }, rowRange, overwriteCache);
300
- current = current + AutoColumnSize.CALCULATION_STEP + 1;
301
- if (current < length) {
302
- timer = (0, _feature.requestAnimationFrame)(loop);
463
+ const isDone = processChunk(AutoColumnSize.CALCULATION_STEP + 1, AutoColumnSize.CALCULATION_CELLS_BUDGET);
464
+ flushGhostTable();
465
+ if (!isDone) {
466
+ timer = (0, _feature.requestIdleTask)(loop);
303
467
  } else {
304
- (0, _feature.cancelAnimationFrame)(timer);
468
+ (0, _feature.cancelIdleTask)(timer);
305
469
  this.inProgress = false;
306
470
  // @TODO Should call once per render cycle, currently fired separately in different plugins
307
471
  this.hot.view.adjustElementsSize();
308
472
  }
309
473
  };
310
474
  const syncLimit = this.getSyncCalculationLimit();
311
- // sync
475
+ // sync — the `syncLimit` columns are calculated exactly (whole row range) before the first
476
+ // paint, preserving the `syncLimit` contract.
312
477
  if (syncLimit >= 0) {
313
- this.calculateColumnsWidth({
314
- from: 0,
315
- to: syncLimit
316
- }, rowRange, overwriteCache);
317
- current = syncLimit + 1;
478
+ processChunk(syncLimit + 1, Infinity);
479
+ flushGhostTable();
318
480
  }
319
481
  // async
320
- if (current < length) {
482
+ if (currentColumn <= lastColumn) {
321
483
  loop();
322
484
  } else {
323
485
  this.inProgress = false;
@@ -327,10 +489,21 @@ class AutoColumnSize extends _base.BasePlugin {
327
489
  * Recalculates all columns width (overwrite cache values).
328
490
  */ recalculateAllColumnsWidth() {
329
491
  if (this.hot.view.isVisible()) {
492
+ // Every queued width refinement is subsumed by the full overwrite sweep — entries
493
+ // queued after this point (e.g. edits made while the asynchronous part is running)
494
+ // accumulate again and are consumed as usual.
495
+ _class_private_field_get(this, _columnWidthsToRefresh).clear();
330
496
  this.calculateAllColumnsWidth({
331
497
  from: 0,
332
498
  to: this.hot.countRows() - 1
333
499
  }, true);
500
+ // The synchronous part of the sweep runs inside `init`/`afterLoadData` hook cascades,
501
+ // before other plugins re-apply their cell meta (e.g. MergeCells' `spanned`/`hidden`
502
+ // flags), so the samples it collected cannot be trusted for later re-measures. Dropping
503
+ // them makes the next full render re-walk the visible columns with the settled meta,
504
+ // like it always did. Samples stored by the asynchronous part run after the cascade
505
+ // and stay.
506
+ _class_private_field_get(this, _columnSamplesCache).clear();
334
507
  }
335
508
  }
336
509
  /**
@@ -374,6 +547,11 @@ class AutoColumnSize extends _base.BasePlugin {
374
547
  /**
375
548
  * Gets the first visible column.
376
549
  *
550
+ * When the {@link MergeCells} plugin is enabled with its default `virtualized: false` setting, a merged
551
+ * cell that crosses the viewport edge extends the rendered column range. In that case this method can
552
+ * return a column index outside the strictly visible viewport. To read the actual visible viewport, use
553
+ * {@link Core#getFirstFullyVisibleColumn} or {@link Core#getFirstPartiallyVisibleColumn}.
554
+ *
377
555
  * @returns {number} Returns visual column index, -1 if table is not rendered or if there are no columns to base the the calculations on.
378
556
  */ getFirstVisibleColumn() {
379
557
  return this.hot.getFirstRenderedVisibleColumn() ?? -1;
@@ -381,6 +559,11 @@ class AutoColumnSize extends _base.BasePlugin {
381
559
  /**
382
560
  * Gets the last visible column.
383
561
  *
562
+ * When the {@link MergeCells} plugin is enabled with its default `virtualized: false` setting, a merged
563
+ * cell that crosses the viewport edge extends the rendered column range. In that case this method can
564
+ * return a column index outside the strictly visible viewport. To read the actual visible viewport, use
565
+ * {@link Core#getLastFullyVisibleColumn} or {@link Core#getLastPartiallyVisibleColumn}.
566
+ *
384
567
  * @returns {number} Returns visual column index or -1 if table is not rendered.
385
568
  */ getLastVisibleColumn() {
386
569
  return this.hot.getLastRenderedVisibleColumn() ?? -1;
@@ -419,10 +602,12 @@ class AutoColumnSize extends _base.BasePlugin {
419
602
  this.hot.batchExecution(()=>{
420
603
  physicalColumns.forEach((physicalIndex)=>{
421
604
  this.columnWidthsMap.setValueAtIndex(physicalIndex, null);
605
+ _class_private_field_get(this, _columnSamplesCache).delete(physicalIndex);
422
606
  });
423
607
  }, true);
424
608
  } else {
425
609
  this.columnWidthsMap.clear();
610
+ _class_private_field_get(this, _columnSamplesCache).clear();
426
611
  }
427
612
  }
428
613
  /**
@@ -435,19 +620,24 @@ class AutoColumnSize extends _base.BasePlugin {
435
620
  /**
436
621
  * Destroys the plugin instance.
437
622
  */ destroy() {
623
+ this.hot?.rowIndexMapper.removeLocalHook('cacheUpdated', _class_private_field_get(this, _onRowIndexMapperCacheUpdate));
624
+ this.hot?.columnIndexMapper.removeLocalHook('cacheUpdated', _class_private_field_get(this, _onColumnIndexMapperCacheUpdate));
438
625
  this.ghostTable.clean();
439
626
  super.destroy();
440
627
  }
441
628
  /**
442
629
  * Initializes the plugin, registers the column widths map, and sets up the column resize hook.
443
630
  */ constructor(hotInstance){
444
- super(hotInstance), _class_private_method_init(this, _calculateSpecificColumnsWidth), _class_private_method_init(this, _fillGhostTableWithSamples), _class_private_method_init(this, _updateColumnWidthsMapBasedOnGhostTable), _class_private_field_init(this, _isInitialized, {
631
+ super(hotInstance), _class_private_method_init(this, _refreshQueuedColumnsWidth), _class_private_method_init(this, _probeChangedCellsWidth), _class_private_method_init(this, _updateCachedSamples), _class_private_method_init(this, _measureCellsWidth), _class_private_method_init(this, _formatProbeValue), _class_private_method_init(this, _fillGhostTableWithSamples), _class_private_method_init(this, _addGhostTableColumn), _class_private_method_init(this, _updateColumnWidthsMapBasedOnGhostTable), _class_private_field_init(this, _isInitialized, {
445
632
  writable: true,
446
633
  value: void 0
447
634
  }), _class_private_field_init(this, _cachedColumnHeaders, {
448
635
  writable: true,
449
636
  value: void 0
450
- }), _class_private_field_init(this, _visualColumnsToRefresh, {
637
+ }), _class_private_field_init(this, _columnWidthsToRefresh, {
638
+ writable: true,
639
+ value: void 0
640
+ }), _class_private_field_init(this, _columnSamplesCache, {
451
641
  writable: true,
452
642
  value: void 0
453
643
  }), _class_private_field_init(this, _disposeMapObserver, {
@@ -462,6 +652,18 @@ class AutoColumnSize extends _base.BasePlugin {
462
652
  }), _class_private_field_init(this, _onBeforeChange, {
463
653
  writable: true,
464
654
  value: void 0
655
+ }), _class_private_field_init(this, _onAfterSetSourceDataAtCell, {
656
+ writable: true,
657
+ value: void 0
658
+ }), _class_private_field_init(this, _onAfterSetCellMeta, {
659
+ writable: true,
660
+ value: void 0
661
+ }), _class_private_field_init(this, _onRowIndexMapperCacheUpdate, {
662
+ writable: true,
663
+ value: void 0
664
+ }), _class_private_field_init(this, _onColumnIndexMapperCacheUpdate, {
665
+ writable: true,
666
+ value: void 0
465
667
  }), _class_private_field_init(this, _onBeforeColumnResize, {
466
668
  writable: true,
467
669
  value: void 0
@@ -488,7 +690,11 @@ class AutoColumnSize extends _base.BasePlugin {
488
690
  if (this.hot.rowIndexMapper.isHidden(physicalRow) || this.hot.columnIndexMapper.isHidden(physicalColumn)) {
489
691
  return false;
490
692
  }
491
- const cellMeta = this.hot.getCellMeta(row, column);
693
+ // The transient read resolves the full dynamic meta (hooks + `cells`, so `hidden`/`spanned`
694
+ // from merged cells work) without storing anything - this sampler sweeps the whole row range
695
+ // per column, and the eager `getCellMeta` would permanently materialize one meta per visited
696
+ // cell (O(rows x columns) retention on init).
697
+ const cellMeta = this.hot.getCellMetaTransient(row, column);
492
698
  let cellValue = '';
493
699
  let seedValue = '';
494
700
  if (cellMeta.hidden) {
@@ -496,13 +702,10 @@ class AutoColumnSize extends _base.BasePlugin {
496
702
  return false;
497
703
  }
498
704
  if (!cellMeta.spanned) {
499
- seedValue = this.hot.getDataAtCell(row, column);
500
- // Use the raw value for rendering (functions remain as functions for the renderer to call)
501
- cellValue = seedValue;
502
- if (typeof cellMeta.valueFormatter === 'function') {
503
- cellValue = cellMeta.valueFormatter(cellValue, cellMeta);
504
- seedValue = cellValue;
505
- }
705
+ // Format through the same precedence as the render path (cell-level `valueFormatter`, then
706
+ // the renderer's own static), so the measured string matches what the renderer produces.
707
+ cellValue = (0, _renderCell.formatCellValue)(this.hot.getDataAtCell(row, column), cellMeta, this.hot.getCellRenderer(cellMeta));
708
+ seedValue = cellValue;
506
709
  }
507
710
  let bundleSeed = '';
508
711
  if (this.hot.hasHook('modifyAutoColumnSizeSeed')) {
@@ -520,30 +723,63 @@ class AutoColumnSize extends _base.BasePlugin {
520
723
  * Number of already measured columns (we already know their sizes).
521
724
  *
522
725
  * @type {number}
523
- */ this.measuredColumns = 0, /**
524
- * PhysicalIndexToValueMap to keep and track widths for physical column indexes.
525
- *
526
- * @private
527
- * @type {PhysicalIndexToValueMap}
528
- */ this.columnWidthsMap = new _translations.PhysicalIndexToValueMap(), _class_private_field_set(this, _isInitialized, false), _class_private_field_set(this, _cachedColumnHeaders, []), _class_private_field_set(this, _visualColumnsToRefresh, []), _class_private_field_set(this, _disposeMapObserver, null), _class_private_field_set(this, _onBeforeRender, ()=>{
726
+ */ this.measuredColumns = 0, _class_private_field_set(this, _isInitialized, false), _class_private_field_set(this, _cachedColumnHeaders, []), _class_private_field_set(this, _columnWidthsToRefresh, new Map()), _class_private_field_set(this, _columnSamplesCache, new Map()), _class_private_field_set(this, _disposeMapObserver, null), _class_private_field_set(this, _onBeforeRender, ()=>{
529
727
  this.calculateVisibleColumnsWidth();
530
728
  if (!this.inProgress) {
531
- _class_private_method_get(this, _calculateSpecificColumnsWidth, calculateSpecificColumnsWidth).call(this, _class_private_field_get(this, _visualColumnsToRefresh));
532
- _class_private_field_set(this, _visualColumnsToRefresh, []);
729
+ _class_private_method_get(this, _refreshQueuedColumnsWidth, refreshQueuedColumnsWidth).call(this);
533
730
  }
534
731
  }), _class_private_field_set(this, _onAfterLoadData, (_sourceData, isFirstLoad)=>{
732
+ // Queued cells describe the previous dataset — their rows and previous values are
733
+ // meaningless once the data is replaced. Cleared unconditionally (even when the view is
734
+ // not visible and no sweep runs), so a pending entry that survived a suspended render
735
+ // can never feed the width-determiner probe with stale coordinates.
736
+ _class_private_field_get(this, _columnWidthsToRefresh).clear();
535
737
  if (!isFirstLoad) {
536
738
  this.recalculateAllColumnsWidth();
537
739
  }
538
740
  }), _class_private_field_set(this, _onBeforeChange, (changes)=>{
539
- const changedColumns = changes.reduce((acc, [, columnProperty])=>{
741
+ changes.forEach(([row, columnProperty, oldValue])=>{
742
+ if (typeof columnProperty === 'function') {
743
+ return;
744
+ }
540
745
  const visualColumn = this.hot.propToCol(columnProperty);
541
- if (visualColumn !== null && Number.isInteger(visualColumn) && acc.indexOf(visualColumn) === -1) {
542
- acc.push(visualColumn);
746
+ if (visualColumn === null || !Number.isInteger(visualColumn)) {
747
+ return;
748
+ }
749
+ const entry = _class_private_field_get(this, _columnWidthsToRefresh).get(visualColumn);
750
+ // The column is already queued for a full rescan.
751
+ if (entry === null) {
752
+ return;
753
+ }
754
+ const cell = {
755
+ row,
756
+ oldValue,
757
+ hasOldValue: true
758
+ };
759
+ if (entry === undefined) {
760
+ _class_private_field_get(this, _columnWidthsToRefresh).set(visualColumn, [
761
+ cell
762
+ ]);
763
+ } else {
764
+ entry.push(cell);
543
765
  }
544
- return acc;
545
- }, []);
546
- _class_private_field_get(this, _visualColumnsToRefresh).push(...changedColumns);
766
+ });
767
+ }), _class_private_field_set(this, _onAfterSetSourceDataAtCell, ()=>{
768
+ _class_private_field_get(this, _columnSamplesCache).clear();
769
+ }), _class_private_field_set(this, _onAfterSetCellMeta, (_row, column)=>{
770
+ const physicalColumn = this.hot.toPhysicalColumn(column);
771
+ if (physicalColumn !== null) {
772
+ _class_private_field_get(this, _columnSamplesCache).delete(physicalColumn);
773
+ }
774
+ }), _class_private_field_set(this, _onRowIndexMapperCacheUpdate, (indexesChangesState)=>{
775
+ const { indexesSequenceChanged, trimmedIndexesChanged, hiddenIndexesChanged } = indexesChangesState;
776
+ if (indexesSequenceChanged || trimmedIndexesChanged || hiddenIndexesChanged) {
777
+ _class_private_field_get(this, _columnSamplesCache).clear();
778
+ }
779
+ }), _class_private_field_set(this, _onColumnIndexMapperCacheUpdate, (indexesChangesState)=>{
780
+ if (indexesChangesState.indexesSequenceChanged) {
781
+ _class_private_field_get(this, _columnSamplesCache).clear();
782
+ }
547
783
  }), _class_private_field_set(this, _onBeforeColumnResize, (size, column, isDblClick)=>{
548
784
  let newSize = size;
549
785
  if (isDblClick) {
@@ -561,50 +797,226 @@ class AutoColumnSize extends _base.BasePlugin {
561
797
  }
562
798
  const formulasPlugin = this.hot.getPlugin('formulas');
563
799
  const sheetId = formulasPlugin?.sheetId;
564
- const changedColumns = changes.reduce((acc, change)=>{
800
+ changes.forEach((change)=>{
565
801
  const changeRecord = change;
566
- if (sheetId !== null && sheetId !== undefined && changeRecord.address?.sheet !== sheetId) {
567
- return acc;
802
+ const address = changeRecord.address;
803
+ if (sheetId !== null && sheetId !== undefined && address?.sheet !== sheetId) {
804
+ return;
568
805
  }
569
- const physicalColumn = Number(changeRecord.address?.col);
570
- if (Number.isInteger(physicalColumn)) {
571
- const visualColumn = this.hot.toVisualColumn(physicalColumn);
572
- if (visualColumn !== null && acc.indexOf(visualColumn) === -1) {
573
- acc.push(visualColumn);
574
- }
806
+ const physicalColumn = Number(address?.col);
807
+ const physicalRow = Number(address?.row);
808
+ if (!Number.isInteger(physicalColumn)) {
809
+ return;
810
+ }
811
+ const visualColumn = this.hot.toVisualColumn(physicalColumn);
812
+ if (visualColumn === null) {
813
+ return;
575
814
  }
576
- return acc;
577
- }, []);
578
- _class_private_field_get(this, _visualColumnsToRefresh).push(...changedColumns);
815
+ const entry = _class_private_field_get(this, _columnWidthsToRefresh).get(visualColumn);
816
+ // The column is already queued for a full rescan.
817
+ if (entry === null) {
818
+ return;
819
+ }
820
+ const visualRow = Number.isInteger(physicalRow) ? this.hot.toVisualRow(physicalRow) : null;
821
+ // Without an addressable row the probe cannot measure the changed cell — fall back to
822
+ // a full column rescan.
823
+ if (visualRow === null) {
824
+ _class_private_field_get(this, _columnWidthsToRefresh).set(visualColumn, null);
825
+ return;
826
+ }
827
+ const cell = {
828
+ row: visualRow,
829
+ oldValue: undefined,
830
+ hasOldValue: false
831
+ };
832
+ if (entry === undefined) {
833
+ _class_private_field_get(this, _columnWidthsToRefresh).set(visualColumn, [
834
+ cell
835
+ ]);
836
+ } else {
837
+ entry.push(cell);
838
+ }
839
+ });
840
+ });
841
+ // The map holds numbers only, so re-writing an unchanged width is a no-op that must not
842
+ // invalidate the column-width position cache (every render re-measures the visible columns).
843
+ this.columnWidthsMap = this.hot.columnIndexMapper.createAndRegisterIndexMap(COLUMN_SIZE_MAP_NAME, 'physicalIndexToValue', null, {
844
+ skipUnchangedWrites: true
579
845
  });
580
- this.hot.columnIndexMapper.registerMap(COLUMN_SIZE_MAP_NAME, this.columnWidthsMap);
581
846
  // Leave the listener active to allow auto-sizing the columns when the plugin is disabled.
582
847
  // This is necessary for width recalculation for resize handler doubleclick (ManualColumnResize).
583
848
  this.addHook('beforeColumnResize', _class_private_field_get(this, _onBeforeColumnResize));
584
849
  }
585
850
  }
586
- function calculateSpecificColumnsWidth(visualColumns) {
587
- const rowsRange = {
588
- from: 0,
589
- to: this.hot.countRows() - 1
590
- };
591
- visualColumns.forEach((visualColumn)=>{
851
+ function refreshQueuedColumnsWidth() {
852
+ if (_class_private_field_get(this, _columnWidthsToRefresh).size === 0) {
853
+ return;
854
+ }
855
+ const queue = _class_private_field_get(this, _columnWidthsToRefresh);
856
+ _class_private_field_set(this, _columnWidthsToRefresh, new Map());
857
+ const totalRows = this.hot.countRows();
858
+ const fullRescanColumns = [];
859
+ const probes = [];
860
+ queue.forEach((cells, visualColumn)=>{
592
861
  const physicalColumn = this.hot.toPhysicalColumn(visualColumn);
593
- if (physicalColumn === null) {
862
+ if (physicalColumn === null || this.hot._getColWidthFromSettings(physicalColumn)) {
594
863
  return;
595
864
  }
596
- if (!this.hot._getColWidthFromSettings(physicalColumn)) {
597
- _class_private_method_get(this, _fillGhostTableWithSamples, fillGhostTableWithSamples).call(this, visualColumn, rowsRange);
865
+ const cachedWidth = this.columnWidthsMap.getValueAtIndex(physicalColumn);
866
+ // A full rescan is needed when it was requested explicitly, when there is no cached width
867
+ // to compare the probe against, or when so many cells changed that probing them costs
868
+ // about as much as the rescan itself.
869
+ if (cells === null || cachedWidth === null || cachedWidth === undefined || cells.length * 2 >= totalRows) {
870
+ fullRescanColumns.push(visualColumn);
871
+ } else {
872
+ probes.push({
873
+ visualColumn,
874
+ cells,
875
+ cachedWidth
876
+ });
598
877
  }
599
878
  });
879
+ _class_private_method_get(this, _probeChangedCellsWidth, probeChangedCellsWidth).call(this, probes, fullRescanColumns);
880
+ if (fullRescanColumns.length > 0) {
881
+ const rowsRange = {
882
+ from: 0,
883
+ to: totalRows - 1
884
+ };
885
+ fullRescanColumns.forEach((visualColumn)=>{
886
+ _class_private_method_get(this, _fillGhostTableWithSamples, fillGhostTableWithSamples).call(this, visualColumn, rowsRange);
887
+ });
888
+ }
600
889
  if (this.ghostTable.columns.length) {
601
890
  _class_private_method_get(this, _updateColumnWidthsMapBasedOnGhostTable, updateColumnWidthsMapBasedOnGhostTable).call(this);
602
891
  this.ghostTable.clean();
603
892
  }
604
893
  }
894
+ function probeChangedCellsWidth(probes, fullRescanColumns) {
895
+ if (probes.length === 0) {
896
+ return;
897
+ }
898
+ const growths = new Map();
899
+ const oldValueProbes = [];
900
+ const probeItems = probes.map(({ visualColumn, cells })=>({
901
+ visualColumn,
902
+ samples: this.samplesGenerator.generateSample('col', cells.map((cell)=>cell.row), visualColumn)
903
+ }));
904
+ const samplesByColumn = new Map(probeItems.map(({ visualColumn, samples })=>[
905
+ visualColumn,
906
+ samples
907
+ ]));
908
+ const newWidths = _class_private_method_get(this, _measureCellsWidth, measureCellsWidth).call(this, probeItems);
909
+ probes.forEach((probe)=>{
910
+ const newWidth = newWidths.get(probe.visualColumn);
911
+ if (newWidth !== undefined && newWidth > probe.cachedWidth) {
912
+ growths.set(probe.visualColumn, newWidth);
913
+ _class_private_method_get(this, _updateCachedSamples, updateCachedSamples).call(this, probe, samplesByColumn.get(probe.visualColumn));
914
+ } else if (probe.cells.some((cell)=>!cell.hasOldValue)) {
915
+ fullRescanColumns.push(probe.visualColumn);
916
+ } else {
917
+ oldValueProbes.push(probe);
918
+ _class_private_method_get(this, _updateCachedSamples, updateCachedSamples).call(this, probe, samplesByColumn.get(probe.visualColumn));
919
+ }
920
+ });
921
+ if (oldValueProbes.length > 0) {
922
+ const oldWidths = _class_private_method_get(this, _measureCellsWidth, measureCellsWidth).call(this, oldValueProbes.map(({ visualColumn, cells })=>({
923
+ visualColumn,
924
+ samples: this.samplesGenerator.generateSampleFromValues('col', cells.map((cell)=>({
925
+ index: cell.row,
926
+ value: _class_private_method_get(this, _formatProbeValue, formatProbeValue).call(this, cell.row, visualColumn, cell.oldValue)
927
+ })))
928
+ })));
929
+ oldValueProbes.forEach(({ visualColumn, cachedWidth })=>{
930
+ const oldWidth = oldWidths.get(visualColumn);
931
+ if (oldWidth !== undefined && oldWidth >= cachedWidth) {
932
+ fullRescanColumns.push(visualColumn);
933
+ }
934
+ });
935
+ }
936
+ if (growths.size > 0) {
937
+ this.hot.batchExecution(()=>{
938
+ growths.forEach((width, visualColumn)=>{
939
+ this.columnWidthsMap.setValueAtIndex(this.hot.toPhysicalColumn(visualColumn), width);
940
+ });
941
+ }, true);
942
+ }
943
+ }
944
+ function updateCachedSamples(probe, samples) {
945
+ const physicalColumn = this.hot.toPhysicalColumn(probe.visualColumn);
946
+ const cachedSamples = physicalColumn === null ? undefined : _class_private_field_get(this, _columnSamplesCache).get(physicalColumn);
947
+ if (cachedSamples === undefined) {
948
+ return;
949
+ }
950
+ const changedRows = new Set(probe.cells.map((cell)=>cell.row));
951
+ cachedSamples.forEach((cachedSample, seed)=>{
952
+ const strings = cachedSample.strings.filter(({ row })=>row === undefined || !changedRows.has(row));
953
+ if (strings.length === 0) {
954
+ cachedSamples.delete(seed);
955
+ } else {
956
+ cachedSample.strings = strings;
957
+ }
958
+ });
959
+ if (samples === undefined) {
960
+ return;
961
+ }
962
+ const sampleCount = this.samplesGenerator.getSampleCount();
963
+ let bucketOverflowed = false;
964
+ samples.forEach((sample, seed)=>{
965
+ const cachedSample = cachedSamples.get(seed);
966
+ if (cachedSample === undefined) {
967
+ cachedSamples.set(seed, sample);
968
+ return;
969
+ }
970
+ cachedSample.strings.push(...sample.strings);
971
+ if (cachedSample.strings.length > sampleCount * 2) {
972
+ bucketOverflowed = true;
973
+ }
974
+ });
975
+ // Trimming an overgrown bucket would have to guess which string is the widest — the
976
+ // width determiner can sit anywhere in it. Instead of risking its eviction (and a column
977
+ // that renders narrower than its content), the whole entry is dropped: the next
978
+ // re-measure falls back to one full scan that rebuilds it.
979
+ if (bucketOverflowed && physicalColumn !== null) {
980
+ _class_private_field_get(this, _columnSamplesCache).delete(physicalColumn);
981
+ }
982
+ }
983
+ function measureCellsWidth(items) {
984
+ const widths = new Map();
985
+ const measurableItems = items.filter(({ samples })=>samples.size > 0);
986
+ if (measurableItems.length === 0) {
987
+ return widths;
988
+ }
989
+ const useHeaders = this.ghostTable.getSetting('useHeaders');
990
+ this.ghostTable.setSetting('useHeaders', false);
991
+ try {
992
+ measurableItems.forEach(({ visualColumn, samples })=>{
993
+ _class_private_method_get(this, _addGhostTableColumn, addGhostTableColumn).call(this, visualColumn, samples);
994
+ });
995
+ this.ghostTable.getWidths((visualColumn, width)=>{
996
+ widths.set(visualColumn, width);
997
+ });
998
+ } finally{
999
+ // A throwing custom renderer must not leave the ghost table with headers disabled (or
1000
+ // with the probe's columns still attached) for every later full-scan measurement.
1001
+ this.ghostTable.clean();
1002
+ this.ghostTable.setSetting('useHeaders', useHeaders);
1003
+ }
1004
+ return widths;
1005
+ }
1006
+ function formatProbeValue(row, column, value) {
1007
+ const cellMeta = this.hot.getCellMetaTransient(row, column);
1008
+ return (0, _renderCell.formatCellValue)(value, cellMeta, this.hot.getCellRenderer(cellMeta));
1009
+ }
605
1010
  function fillGhostTableWithSamples(visualColumn, rowsRange) {
606
1011
  const samples = this.samplesGenerator.generateColumnSamples(visualColumn, rowsRange);
607
- samples.forEach((sample, column)=>this.ghostTable.addColumn(column, sample));
1012
+ samples.forEach((sample, column)=>{
1013
+ const physicalColumn = this.hot.toPhysicalColumn(column);
1014
+ _class_private_method_get(this, _addGhostTableColumn, addGhostTableColumn).call(this, column, sample);
1015
+ _class_private_field_get(this, _columnSamplesCache).set(physicalColumn === null ? column : physicalColumn, sample);
1016
+ });
1017
+ }
1018
+ function addGhostTableColumn(visualColumn, samples) {
1019
+ this.ghostTable.addColumn(visualColumn, new Map(samples));
608
1020
  }
609
1021
  function updateColumnWidthsMapBasedOnGhostTable() {
610
1022
  this.hot.batchExecution(()=>{