handsontable 18.0.0 → 18.1.0-rc11

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 (1130) 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 +147 -0
  12. package/3rdparty/walkontable/src/axisSizing/columnUtils.mjs +142 -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 +129 -0
  16. package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.mjs +119 -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 +256 -0
  23. package/3rdparty/walkontable/src/axisSizing/positionCache/index.mjs +262 -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 +121 -0
  27. package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.mjs +117 -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 +206 -0
  31. package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.mjs +203 -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 +121 -0
  39. package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.mjs +115 -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 +111 -0
  43. package/3rdparty/walkontable/src/axisSizing/rowUtils.mjs +106 -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/range.d.ts +10 -0
  58. package/3rdparty/walkontable/src/cell/range.js +14 -3
  59. package/3rdparty/walkontable/src/cell/range.mjs +11 -0
  60. package/3rdparty/walkontable/src/core/_base.d.ts +21 -21
  61. package/3rdparty/walkontable/src/core/_base.js +58 -147
  62. package/3rdparty/walkontable/src/core/_base.mjs +17 -147
  63. package/3rdparty/walkontable/src/core/clone.d.ts +4 -14
  64. package/3rdparty/walkontable/src/core/clone.js +51 -5
  65. package/3rdparty/walkontable/src/core/clone.mjs +10 -5
  66. package/3rdparty/walkontable/src/core/core.d.ts +1 -5
  67. package/3rdparty/walkontable/src/core/core.js +52 -47
  68. package/3rdparty/walkontable/src/core/core.mjs +12 -48
  69. package/3rdparty/walkontable/src/domMeasure/geometryReader.d.mts +1 -0
  70. package/3rdparty/walkontable/src/domMeasure/geometryReader.d.ts +172 -0
  71. package/3rdparty/walkontable/src/domMeasure/geometryReader.js +19 -0
  72. package/3rdparty/walkontable/src/domMeasure/geometryReader.mjs +16 -0
  73. package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.d.mts +1 -0
  74. package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.d.ts +134 -0
  75. package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.js +200 -0
  76. package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.mjs +198 -0
  77. package/3rdparty/walkontable/src/event.d.ts +42 -12
  78. package/3rdparty/walkontable/src/event.js +262 -228
  79. package/3rdparty/walkontable/src/event.mjs +260 -227
  80. package/3rdparty/walkontable/src/facade/core.d.ts +6 -6
  81. package/3rdparty/walkontable/src/index.d.ts +1 -1
  82. package/3rdparty/walkontable/src/index.js +2 -2
  83. package/3rdparty/walkontable/src/index.mjs +1 -1
  84. package/3rdparty/walkontable/src/overlay/index.d.ts +6 -6
  85. package/3rdparty/walkontable/src/overlay/index.js +11 -11
  86. package/3rdparty/walkontable/src/overlay/index.mjs +6 -6
  87. package/3rdparty/walkontable/src/overlay/overlays.d.ts +375 -0
  88. package/3rdparty/walkontable/src/overlay/overlays.js +612 -0
  89. package/3rdparty/walkontable/src/overlay/overlays.mjs +601 -0
  90. package/3rdparty/walkontable/src/overlay/{_base.d.ts → regions/_base.d.ts} +65 -16
  91. package/3rdparty/walkontable/src/overlay/{_base.js → regions/_base.js} +160 -50
  92. package/3rdparty/walkontable/src/overlay/{_base.mjs → regions/_base.mjs} +163 -47
  93. package/3rdparty/walkontable/src/overlay/regions/bottomInlineStartCornerOverlay.d.mts +1 -0
  94. package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.d.ts → regions/bottomInlineStartCornerOverlay.d.ts} +5 -10
  95. package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.js → regions/bottomInlineStartCornerOverlay.js} +18 -20
  96. package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.mjs → regions/bottomInlineStartCornerOverlay.mjs} +18 -20
  97. package/3rdparty/walkontable/src/overlay/regions/bottomOverlay.d.mts +1 -0
  98. package/3rdparty/walkontable/src/overlay/{bottom.d.ts → regions/bottomOverlay.d.ts} +16 -11
  99. package/3rdparty/walkontable/src/overlay/{bottom.js → regions/bottomOverlay.js} +113 -66
  100. package/3rdparty/walkontable/src/overlay/{bottom.mjs → regions/bottomOverlay.mjs} +113 -66
  101. package/3rdparty/walkontable/src/overlay/regions/inlineStartOverlay.d.mts +1 -0
  102. package/3rdparty/walkontable/src/overlay/{inlineStart.d.ts → regions/inlineStartOverlay.d.ts} +17 -11
  103. package/3rdparty/walkontable/src/overlay/{inlineStart.js → regions/inlineStartOverlay.js} +122 -67
  104. package/3rdparty/walkontable/src/overlay/{inlineStart.mjs → regions/inlineStartOverlay.mjs} +122 -67
  105. package/3rdparty/walkontable/src/overlay/regions/topInlineStartCornerOverlay.d.mts +1 -0
  106. package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.d.ts → regions/topInlineStartCornerOverlay.d.ts} +5 -10
  107. package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.js → regions/topInlineStartCornerOverlay.js} +13 -16
  108. package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.mjs → regions/topInlineStartCornerOverlay.mjs} +13 -16
  109. package/3rdparty/walkontable/src/overlay/regions/topOverlay.d.mts +1 -0
  110. package/3rdparty/walkontable/src/overlay/{top.d.ts → regions/topOverlay.d.ts} +32 -11
  111. package/3rdparty/walkontable/src/overlay/{top.js → regions/topOverlay.js} +163 -77
  112. package/3rdparty/walkontable/src/overlay/{top.mjs → regions/topOverlay.mjs} +163 -77
  113. package/3rdparty/walkontable/src/overlay/resizeMonitor.d.mts +1 -0
  114. package/3rdparty/walkontable/src/overlay/resizeMonitor.d.ts +49 -0
  115. package/3rdparty/walkontable/src/overlay/resizeMonitor.js +154 -0
  116. package/3rdparty/walkontable/src/overlay/resizeMonitor.mjs +153 -0
  117. package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.d.mts +1 -0
  118. package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.d.ts +62 -0
  119. package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.js +290 -0
  120. package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.mjs +295 -0
  121. package/3rdparty/walkontable/src/overlay/scroll/scrollSync.d.mts +1 -0
  122. package/3rdparty/walkontable/src/overlay/scroll/scrollSync.d.ts +176 -0
  123. package/3rdparty/walkontable/src/overlay/scroll/scrollSync.js +549 -0
  124. package/3rdparty/walkontable/src/overlay/scroll/scrollSync.mjs +557 -0
  125. package/3rdparty/walkontable/src/overlay/spreaderSize.d.mts +1 -0
  126. package/3rdparty/walkontable/src/overlay/spreaderSize.d.ts +67 -0
  127. package/3rdparty/walkontable/src/overlay/spreaderSize.js +178 -0
  128. package/3rdparty/walkontable/src/overlay/spreaderSize.mjs +179 -0
  129. package/3rdparty/walkontable/src/{stickyScrollStrategy.d.ts → overlay/strategies/stickyScrollStrategy.d.ts} +33 -21
  130. package/3rdparty/walkontable/src/{stickyScrollStrategy.js → overlay/strategies/stickyScrollStrategy.js} +60 -41
  131. package/3rdparty/walkontable/src/{stickyScrollStrategy.mjs → overlay/strategies/stickyScrollStrategy.mjs} +58 -38
  132. package/3rdparty/walkontable/src/ports.d.mts +1 -0
  133. package/3rdparty/walkontable/src/ports.d.ts +54 -0
  134. package/3rdparty/walkontable/src/ports.js +23 -0
  135. package/3rdparty/walkontable/src/ports.mjs +24 -0
  136. package/3rdparty/walkontable/src/{renderer → render}/_base.d.ts +1 -1
  137. package/3rdparty/walkontable/src/{renderer → render}/cells.js +1 -1
  138. package/3rdparty/walkontable/src/{renderer → render}/cells.mjs +1 -1
  139. package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.d.ts +1 -0
  140. package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.js +43 -1
  141. package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.mjs +44 -2
  142. package/3rdparty/walkontable/src/render/index.d.mts +1 -0
  143. package/3rdparty/walkontable/src/{renderer → render}/index.d.ts +11 -3
  144. package/3rdparty/walkontable/src/{renderer → render}/index.js +13 -3
  145. package/3rdparty/walkontable/src/{renderer → render}/index.mjs +11 -1
  146. package/3rdparty/walkontable/src/{renderer → render}/rows.js +1 -1
  147. package/3rdparty/walkontable/src/{renderer → render}/rows.mjs +1 -1
  148. package/3rdparty/walkontable/src/render/tableRenderer.d.mts +1 -0
  149. package/3rdparty/walkontable/src/{renderer/table.d.ts → render/tableRenderer.d.ts} +12 -2
  150. package/3rdparty/walkontable/src/render/tableRenderer.js +382 -0
  151. package/3rdparty/walkontable/src/{renderer/table.mjs → render/tableRenderer.mjs} +159 -6
  152. package/3rdparty/walkontable/src/{scroll.d.ts → scroll/scroll.d.ts} +27 -10
  153. package/3rdparty/walkontable/src/{scroll.js → scroll/scroll.js} +108 -32
  154. package/3rdparty/walkontable/src/{scroll.mjs → scroll/scroll.mjs} +106 -29
  155. package/3rdparty/walkontable/src/selection/border/border.d.ts +313 -5
  156. package/3rdparty/walkontable/src/selection/border/border.js +861 -51
  157. package/3rdparty/walkontable/src/selection/border/border.mjs +863 -53
  158. package/3rdparty/walkontable/src/selection/border/types.d.ts +30 -0
  159. package/3rdparty/walkontable/src/selection/manager.js +237 -0
  160. package/3rdparty/walkontable/src/selection/manager.mjs +238 -1
  161. package/3rdparty/walkontable/src/settings/accessor.d.mts +2 -0
  162. package/3rdparty/walkontable/src/settings/accessor.d.ts +74 -0
  163. package/3rdparty/walkontable/src/settings/accessor.js +78 -0
  164. package/3rdparty/walkontable/src/settings/accessor.mjs +71 -0
  165. package/3rdparty/walkontable/src/settings/defaults.d.mts +1 -0
  166. package/3rdparty/walkontable/src/{settings.d.ts → settings/defaults.d.ts} +16 -77
  167. package/3rdparty/walkontable/src/settings/defaults.js +146 -0
  168. package/3rdparty/walkontable/src/settings/defaults.mjs +225 -0
  169. package/3rdparty/walkontable/src/settings/index.d.mts +1 -0
  170. package/3rdparty/walkontable/src/settings/index.d.ts +6 -0
  171. package/3rdparty/walkontable/src/settings/index.js +20 -0
  172. package/3rdparty/walkontable/src/settings/index.mjs +5 -0
  173. package/3rdparty/walkontable/src/table/baseTable.d.mts +2 -0
  174. package/3rdparty/walkontable/src/table/baseTable.d.ts +284 -0
  175. package/3rdparty/walkontable/src/table/baseTable.js +295 -0
  176. package/3rdparty/walkontable/src/table/baseTable.mjs +283 -0
  177. package/3rdparty/walkontable/src/table/cellAccess.d.mts +1 -0
  178. package/3rdparty/walkontable/src/table/cellAccess.d.ts +101 -0
  179. package/3rdparty/walkontable/src/table/cellAccess.js +238 -0
  180. package/3rdparty/walkontable/src/table/cellAccess.mjs +229 -0
  181. package/3rdparty/walkontable/src/table/domScaffold.d.mts +1 -0
  182. package/3rdparty/walkontable/src/table/domScaffold.d.ts +37 -0
  183. package/3rdparty/walkontable/src/table/domScaffold.js +145 -0
  184. package/3rdparty/walkontable/src/table/domScaffold.mjs +136 -0
  185. package/3rdparty/walkontable/src/table/drawCycle.d.mts +1 -0
  186. package/3rdparty/walkontable/src/table/drawCycle.d.ts +16 -0
  187. package/3rdparty/walkontable/src/table/drawCycle.js +405 -0
  188. package/3rdparty/walkontable/src/table/drawCycle.mjs +403 -0
  189. package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.d.mts +1 -0
  190. package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.d.ts +38 -0
  191. package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.js +15 -0
  192. package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.mjs +14 -0
  193. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.d.ts +1 -1
  194. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.js +1 -1
  195. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.mjs +1 -1
  196. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.d.ts +1 -1
  197. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.d.ts +1 -1
  198. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.js +1 -1
  199. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.mjs +1 -1
  200. package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.d.mts +2 -0
  201. package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.d.ts +226 -0
  202. package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.js +251 -0
  203. package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.mjs +241 -0
  204. package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.d.mts +1 -0
  205. package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.d.ts +14 -0
  206. package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.js +196 -0
  207. package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.mjs +179 -0
  208. package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.d.mts +2 -0
  209. package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.d.ts +16 -0
  210. package/3rdparty/walkontable/src/table/{bottomInlineStartCorner.js → regions/bottomInlineStartCornerTable.js} +9 -12
  211. package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.mjs +21 -0
  212. package/3rdparty/walkontable/src/table/regions/bottomTable.d.mts +2 -0
  213. package/3rdparty/walkontable/src/table/regions/bottomTable.d.ts +15 -0
  214. package/3rdparty/walkontable/src/table/regions/bottomTable.js +35 -0
  215. package/3rdparty/walkontable/src/table/regions/bottomTable.mjs +20 -0
  216. package/3rdparty/walkontable/src/table/regions/inlineStartTable.d.mts +2 -0
  217. package/3rdparty/walkontable/src/table/regions/inlineStartTable.d.ts +12 -0
  218. package/3rdparty/walkontable/src/table/regions/inlineStartTable.js +32 -0
  219. package/3rdparty/walkontable/src/table/regions/inlineStartTable.mjs +17 -0
  220. package/3rdparty/walkontable/src/table/regions/masterTable.d.mts +2 -0
  221. package/3rdparty/walkontable/src/table/{master.d.ts → regions/masterTable.d.ts} +4 -13
  222. package/3rdparty/walkontable/src/table/{master.js → regions/masterTable.js} +23 -48
  223. package/3rdparty/walkontable/src/table/{master.mjs → regions/masterTable.mjs} +22 -47
  224. package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.d.mts +2 -0
  225. package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.d.ts +16 -0
  226. package/3rdparty/walkontable/src/table/{topInlineStartCorner.js → regions/topInlineStartCornerTable.js} +9 -12
  227. package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.mjs +21 -0
  228. package/3rdparty/walkontable/src/table/regions/topTable.d.mts +2 -0
  229. package/3rdparty/walkontable/src/table/regions/topTable.d.ts +15 -0
  230. package/3rdparty/walkontable/src/table/regions/topTable.js +35 -0
  231. package/3rdparty/walkontable/src/table/regions/topTable.mjs +20 -0
  232. package/3rdparty/walkontable/src/types.d.ts +7 -69
  233. package/3rdparty/walkontable/src/types.mjs +2 -1
  234. package/3rdparty/walkontable/src/utils/pointerToCoords.d.mts +1 -0
  235. package/3rdparty/walkontable/src/utils/{cellCoords.d.ts → pointerToCoords.d.ts} +24 -0
  236. package/3rdparty/walkontable/src/utils/pointerToCoords.js +181 -0
  237. package/3rdparty/walkontable/src/utils/pointerToCoords.mjs +186 -0
  238. package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.d.mts +1 -0
  239. package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.d.ts +40 -0
  240. package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.js +139 -0
  241. package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.mjs +131 -0
  242. package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.d.mts +1 -0
  243. package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.d.ts +133 -0
  244. package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.js +18 -0
  245. package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.mjs +18 -0
  246. package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.d.mts +1 -0
  247. package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.d.ts +17 -0
  248. package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.js +104 -0
  249. package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.mjs +99 -0
  250. package/3rdparty/walkontable/src/viewport/calculatorFactory.d.mts +1 -0
  251. package/3rdparty/walkontable/src/viewport/calculatorFactory.d.ts +84 -0
  252. package/3rdparty/walkontable/src/viewport/calculatorFactory.js +588 -0
  253. package/3rdparty/walkontable/src/viewport/calculatorFactory.mjs +601 -0
  254. package/3rdparty/walkontable/src/viewport/viewport.d.ts +267 -0
  255. package/3rdparty/walkontable/src/viewport/viewport.js +368 -0
  256. package/3rdparty/walkontable/src/viewport/viewport.mjs +360 -0
  257. package/3rdparty/walkontable/src/viewport/workspaceSize.d.mts +1 -0
  258. package/3rdparty/walkontable/src/viewport/workspaceSize.d.ts +59 -0
  259. package/3rdparty/walkontable/src/viewport/workspaceSize.js +284 -0
  260. package/3rdparty/walkontable/src/viewport/workspaceSize.mjs +282 -0
  261. package/3rdparty/walkontable/src/wire.d.mts +1 -0
  262. package/3rdparty/walkontable/src/wire.d.ts +81 -0
  263. package/3rdparty/walkontable/src/wire.js +56 -0
  264. package/3rdparty/walkontable/src/wire.mjs +56 -0
  265. package/CHANGELOG.md +125 -30
  266. package/LICENSE.txt +1 -1
  267. package/README.md +2 -2
  268. package/base.d.ts +13 -4
  269. package/base.js +2 -2
  270. package/base.mjs +2 -2
  271. package/cellTypes/checkboxType/accessors/valueSetter.d.ts +1 -1
  272. package/cellTypes/checkboxType/accessors/valueSetter.js +3 -1
  273. package/cellTypes/checkboxType/accessors/valueSetter.mjs +3 -1
  274. package/cellTypes/index.d.ts +3 -2
  275. package/cellTypes/index.js +9 -0
  276. package/cellTypes/index.mjs +5 -2
  277. package/cellTypes/intlDatetimeType/index.d.mts +1 -0
  278. package/cellTypes/intlDatetimeType/index.d.ts +1 -0
  279. package/cellTypes/intlDatetimeType/index.js +19 -0
  280. package/cellTypes/intlDatetimeType/index.mjs +1 -0
  281. package/cellTypes/intlDatetimeType/intlDatetimeType.d.mts +1 -0
  282. package/cellTypes/intlDatetimeType/intlDatetimeType.d.ts +16 -0
  283. package/cellTypes/intlDatetimeType/intlDatetimeType.js +31 -0
  284. package/cellTypes/intlDatetimeType/intlDatetimeType.mjs +15 -0
  285. package/cellTypes/multiSelectType/index.d.ts +1 -1
  286. package/cellTypes/multiSelectType/index.js +3 -0
  287. package/cellTypes/multiSelectType/index.mjs +1 -1
  288. package/cellTypes/multiSelectType/multiSelectType.d.ts +1 -0
  289. package/cellTypes/multiSelectType/multiSelectType.js +4 -0
  290. package/cellTypes/multiSelectType/multiSelectType.mjs +1 -0
  291. package/cellTypes/numericType/accessors/valueSetter.js +30 -2
  292. package/cellTypes/numericType/accessors/valueSetter.mjs +31 -3
  293. package/core/hooks/bucket.d.ts +40 -6
  294. package/core/hooks/bucket.js +108 -72
  295. package/core/hooks/bucket.mjs +113 -72
  296. package/core/hooks/constants.js +254 -16
  297. package/core/hooks/constants.mjs +254 -16
  298. package/core/hooks/index.js +27 -22
  299. package/core/hooks/index.mjs +27 -22
  300. package/core/layout/constants.d.ts +11 -0
  301. package/core/layout/constants.js +6 -0
  302. package/core/layout/constants.mjs +12 -0
  303. package/core/layout/domSlot.d.ts +3 -1
  304. package/core/layout/domSlot.js +16 -2
  305. package/core/layout/domSlot.mjs +16 -2
  306. package/core/layout/index.d.ts +2 -2
  307. package/core/layout/index.js +6 -0
  308. package/core/layout/index.mjs +2 -2
  309. package/core/layout/layoutManager.d.ts +13 -0
  310. package/core/layout/layoutManager.js +21 -4
  311. package/core/layout/layoutManager.mjs +22 -2
  312. package/core/settings.d.ts +102 -6
  313. package/core/types.d.ts +15 -1
  314. package/core/types.mjs +9 -0
  315. package/core.js +534 -88
  316. package/core.mjs +537 -91
  317. package/dataMap/dataMap.d.ts +3 -13
  318. package/dataMap/dataMap.js +100 -41
  319. package/dataMap/dataMap.mjs +101 -42
  320. package/dataMap/dataSource.js +4 -1
  321. package/dataMap/dataSource.mjs +4 -1
  322. package/dataMap/metaManager/index.d.ts +62 -8
  323. package/dataMap/metaManager/index.js +66 -0
  324. package/dataMap/metaManager/index.mjs +66 -0
  325. package/dataMap/metaManager/lazyFactoryMap.d.ts +68 -43
  326. package/dataMap/metaManager/lazyFactoryMap.js +497 -110
  327. package/dataMap/metaManager/lazyFactoryMap.mjs +511 -111
  328. package/dataMap/metaManager/metaLayers/cellMeta.d.ts +55 -8
  329. package/dataMap/metaManager/metaLayers/cellMeta.js +108 -8
  330. package/dataMap/metaManager/metaLayers/cellMeta.mjs +108 -8
  331. package/dataMap/metaManager/metaLayers/columnMeta.d.ts +2 -1
  332. package/dataMap/metaManager/metaLayers/columnMeta.js +1 -0
  333. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -0
  334. package/dataMap/metaManager/metaSchema.js +759 -39
  335. package/dataMap/metaManager/metaSchema.mjs +759 -39
  336. package/dataMap/metaManager/mods/dynamicCellMeta.d.ts +24 -10
  337. package/dataMap/metaManager/mods/dynamicCellMeta.js +252 -28
  338. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +253 -29
  339. package/dataMap/sourceDataValidator.d.ts +13 -21
  340. package/dataMap/sourceDataValidator.js +39 -29
  341. package/dataMap/sourceDataValidator.mjs +50 -33
  342. package/dist/handsontable.full.js +30344 -11326
  343. package/dist/handsontable.full.min.js +168 -112
  344. package/dist/handsontable.js +31421 -12464
  345. package/dist/handsontable.min.js +172 -116
  346. package/dist/languages/all.js +2 -1
  347. package/dist/languages/all.min.js +1 -1
  348. package/dist/languages/fa-IR.js +2 -1
  349. package/dist/languages/fa-IR.min.js +1 -1
  350. package/dist/themes/classic.js +9 -3
  351. package/dist/themes/classic.min.js +4 -4
  352. package/dist/themes/horizon.js +9 -3
  353. package/dist/themes/horizon.min.js +4 -4
  354. package/dist/themes/main.js +9 -3
  355. package/dist/themes/main.min.js +4 -4
  356. package/dist/themes/static/variables/colors/ant.js +3 -3
  357. package/dist/themes/static/variables/colors/ant.min.js +3 -3
  358. package/dist/themes/static/variables/colors/classic.js +3 -3
  359. package/dist/themes/static/variables/colors/classic.min.js +3 -3
  360. package/dist/themes/static/variables/colors/horizon.js +3 -3
  361. package/dist/themes/static/variables/colors/horizon.min.js +3 -3
  362. package/dist/themes/static/variables/colors/main.js +3 -3
  363. package/dist/themes/static/variables/colors/main.min.js +3 -3
  364. package/dist/themes/static/variables/colors/material.js +3 -3
  365. package/dist/themes/static/variables/colors/material.min.js +3 -3
  366. package/dist/themes/static/variables/colors/shadcn.js +3 -3
  367. package/dist/themes/static/variables/colors/shadcn.min.js +3 -3
  368. package/dist/themes/static/variables/density.js +3 -3
  369. package/dist/themes/static/variables/density.min.js +3 -3
  370. package/dist/themes/static/variables/helpers/iconsMap.js +4 -9
  371. package/dist/themes/static/variables/helpers/iconsMap.min.js +4 -9
  372. package/dist/themes/static/variables/icons/horizon.js +3 -3
  373. package/dist/themes/static/variables/icons/horizon.min.js +3 -3
  374. package/dist/themes/static/variables/icons/main.js +3 -3
  375. package/dist/themes/static/variables/icons/main.min.js +3 -3
  376. package/dist/themes/static/variables/sizing.js +3 -3
  377. package/dist/themes/static/variables/sizing.min.js +3 -3
  378. package/dist/themes/static/variables/tokens/classic.js +9 -3
  379. package/dist/themes/static/variables/tokens/classic.min.js +4 -4
  380. package/dist/themes/static/variables/tokens/horizon.js +9 -3
  381. package/dist/themes/static/variables/tokens/horizon.min.js +4 -4
  382. package/dist/themes/static/variables/tokens/main.js +9 -3
  383. package/dist/themes/static/variables/tokens/main.min.js +4 -4
  384. package/editorManager.js +152 -3
  385. package/editorManager.mjs +152 -3
  386. package/editors/autocompleteEditor/autocompleteEditor.js +58 -11
  387. package/editors/autocompleteEditor/autocompleteEditor.mjs +59 -12
  388. package/editors/baseEditor/baseEditor.d.ts +15 -3
  389. package/editors/baseEditor/baseEditor.js +5 -3
  390. package/editors/baseEditor/baseEditor.mjs +15 -3
  391. package/editors/factory.js +5 -2
  392. package/editors/factory.mjs +5 -2
  393. package/editors/index.d.ts +3 -2
  394. package/editors/index.js +8 -0
  395. package/editors/index.mjs +3 -1
  396. package/editors/intlDatetimeEditor/index.d.mts +1 -0
  397. package/editors/intlDatetimeEditor/index.d.ts +1 -0
  398. package/editors/intlDatetimeEditor/index.js +19 -0
  399. package/editors/intlDatetimeEditor/index.mjs +1 -0
  400. package/editors/intlDatetimeEditor/intlDatetimeEditor.d.mts +1 -0
  401. package/editors/intlDatetimeEditor/intlDatetimeEditor.d.ts +42 -0
  402. package/editors/intlDatetimeEditor/intlDatetimeEditor.js +108 -0
  403. package/editors/intlDatetimeEditor/intlDatetimeEditor.mjs +93 -0
  404. package/editors/multiSelectEditor/multiSelectEditor.js +11 -9
  405. package/editors/multiSelectEditor/multiSelectEditor.mjs +12 -10
  406. package/editors/selectEditor/selectEditor.js +2 -1
  407. package/editors/selectEditor/selectEditor.mjs +2 -1
  408. package/editors/textEditor/textEditor.js +1 -1
  409. package/editors/textEditor/textEditor.mjs +2 -2
  410. package/eventManager.d.ts +3 -3
  411. package/focusManager/grid.d.ts +28 -0
  412. package/focusManager/grid.js +85 -2
  413. package/focusManager/grid.mjs +81 -3
  414. package/focusManager/scopeManager.js +1 -1
  415. package/focusManager/scopeManager.mjs +2 -2
  416. package/handsontable-non-commercial-license.pdf +0 -0
  417. package/helpers/array.d.ts +25 -0
  418. package/helpers/array.js +41 -4
  419. package/helpers/array.mjs +56 -4
  420. package/helpers/console.d.ts +25 -3
  421. package/helpers/console.js +40 -7
  422. package/helpers/console.mjs +52 -7
  423. package/helpers/dateTime.d.ts +14 -0
  424. package/helpers/dateTime.js +74 -2
  425. package/helpers/dateTime.mjs +73 -2
  426. package/helpers/dom/cellCoords.js +156 -13
  427. package/helpers/dom/cellCoords.mjs +156 -13
  428. package/helpers/dom/element.d.ts +47 -8
  429. package/helpers/dom/element.js +104 -18
  430. package/helpers/dom/element.mjs +132 -23
  431. package/helpers/dom/event.d.ts +58 -0
  432. package/helpers/dom/event.js +39 -0
  433. package/helpers/dom/event.mjs +63 -0
  434. package/helpers/dom/inputOrigin.d.mts +1 -0
  435. package/helpers/dom/inputOrigin.d.ts +38 -0
  436. package/helpers/dom/inputOrigin.js +54 -0
  437. package/helpers/dom/inputOrigin.mjs +48 -0
  438. package/helpers/errors.d.ts +5 -0
  439. package/helpers/errors.js +10 -6
  440. package/helpers/errors.mjs +10 -6
  441. package/helpers/feature.d.ts +19 -0
  442. package/helpers/feature.js +21 -0
  443. package/helpers/feature.mjs +30 -0
  444. package/helpers/function.d.ts +1 -1
  445. package/helpers/function.js +4 -1
  446. package/helpers/function.mjs +4 -1
  447. package/helpers/mixed.d.ts +103 -0
  448. package/helpers/mixed.js +388 -4
  449. package/helpers/mixed.mjs +428 -4
  450. package/helpers/moves.js +2 -1
  451. package/helpers/moves.mjs +2 -1
  452. package/helpers/number.d.ts +22 -0
  453. package/helpers/number.js +49 -0
  454. package/helpers/number.mjs +66 -0
  455. package/helpers/string.d.ts +14 -10
  456. package/helpers/string.js +17 -9
  457. package/helpers/string.mjs +27 -17
  458. package/helpers/templateString.d.mts +1 -0
  459. package/helpers/templateString.d.ts +13 -0
  460. package/helpers/templateString.js +29 -0
  461. package/helpers/templateString.mjs +19 -0
  462. package/helpers/uiButton.d.mts +1 -0
  463. package/helpers/uiButton.d.ts +21 -0
  464. package/helpers/uiButton.js +37 -0
  465. package/helpers/uiButton.mjs +31 -0
  466. package/i18n/languages/fa-IR.d.ts +1 -0
  467. package/i18n/languages/fa-IR.js +1 -0
  468. package/i18n/languages/fa-IR.mjs +1 -0
  469. package/index.d.ts +3 -3
  470. package/languages/all.js +2 -1
  471. package/languages/fa-IR.js +2 -1
  472. package/languages/fa-IR.mjs +1 -0
  473. package/languages/index.js +2 -1
  474. package/package.json +61 -1
  475. package/plugins/autoColumnSize/autoColumnSize.d.ts +24 -1
  476. package/plugins/autoColumnSize/autoColumnSize.js +501 -82
  477. package/plugins/autoColumnSize/autoColumnSize.mjs +508 -83
  478. package/plugins/autoRowSize/autoRowSize.d.ts +40 -5
  479. package/plugins/autoRowSize/autoRowSize.js +68 -24
  480. package/plugins/autoRowSize/autoRowSize.mjs +98 -29
  481. package/plugins/autofill/autofill.js +30 -12
  482. package/plugins/autofill/autofill.mjs +30 -12
  483. package/plugins/base/base.d.ts +10 -0
  484. package/plugins/collapsibleColumns/collapsibleColumns.d.ts +4 -0
  485. package/plugins/collapsibleColumns/collapsibleColumns.js +89 -8
  486. package/plugins/collapsibleColumns/collapsibleColumns.mjs +93 -8
  487. package/plugins/columnSorting/columnSorting.d.ts +31 -2
  488. package/plugins/columnSorting/columnSorting.js +151 -24
  489. package/plugins/columnSorting/columnSorting.mjs +153 -26
  490. package/plugins/columnSorting/columnStatesManager.d.ts +1 -1
  491. package/plugins/columnSorting/columnStatesManager.js +1 -7
  492. package/plugins/columnSorting/columnStatesManager.mjs +1 -7
  493. package/plugins/columnSorting/domHelpers.d.ts +3 -0
  494. package/plugins/columnSorting/domHelpers.js +9 -0
  495. package/plugins/columnSorting/domHelpers.mjs +3 -3
  496. package/plugins/columnSorting/rootComparator.js +21 -16
  497. package/plugins/columnSorting/rootComparator.mjs +21 -16
  498. package/plugins/columnSorting/sortFunction/checkbox.js +7 -5
  499. package/plugins/columnSorting/sortFunction/checkbox.mjs +7 -5
  500. package/plugins/columnSorting/sortFunction/default.js +15 -4
  501. package/plugins/columnSorting/sortFunction/default.mjs +15 -4
  502. package/plugins/columnSorting/sortFunction/intlDatetime.d.mts +1 -0
  503. package/plugins/columnSorting/sortFunction/intlDatetime.d.ts +10 -0
  504. package/plugins/columnSorting/sortFunction/intlDatetime.js +23 -0
  505. package/plugins/columnSorting/sortFunction/intlDatetime.mjs +12 -0
  506. package/plugins/columnSorting/sortService/registry.js +2 -0
  507. package/plugins/columnSorting/sortService/registry.mjs +2 -0
  508. package/plugins/columnSorting/utils.d.ts +8 -0
  509. package/plugins/columnSorting/utils.js +37 -45
  510. package/plugins/columnSorting/utils.mjs +42 -47
  511. package/plugins/columnSummary/columnSummary.js +9 -5
  512. package/plugins/columnSummary/columnSummary.mjs +9 -5
  513. package/plugins/columnSummary/endpoints.d.ts +69 -2
  514. package/plugins/columnSummary/endpoints.js +181 -29
  515. package/plugins/columnSummary/endpoints.mjs +181 -29
  516. package/plugins/comments/commentEditor.js +1 -1
  517. package/plugins/comments/commentEditor.mjs +2 -2
  518. package/plugins/contextMenu/contextMenu.d.ts +12 -1
  519. package/plugins/contextMenu/contextMenu.js +30 -6
  520. package/plugins/contextMenu/contextMenu.mjs +30 -6
  521. package/plugins/contextMenu/index.d.ts +1 -1
  522. package/plugins/contextMenu/menu/menu.d.ts +22 -1
  523. package/plugins/contextMenu/menu/menu.js +211 -3
  524. package/plugins/contextMenu/menu/menu.mjs +212 -4
  525. package/plugins/contextMenu/menu/menuItemRenderer.js +2 -2
  526. package/plugins/contextMenu/menu/menuItemRenderer.mjs +2 -2
  527. package/plugins/contextMenu/predefinedItems/alignment.js +14 -14
  528. package/plugins/contextMenu/predefinedItems/alignment.mjs +14 -14
  529. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  530. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -1
  531. package/plugins/contextMenu/predefinedItems/readOnly.js +3 -3
  532. package/plugins/contextMenu/predefinedItems/readOnly.mjs +3 -3
  533. package/plugins/contextMenu/utils.js +1 -1
  534. package/plugins/contextMenu/utils.mjs +1 -1
  535. package/plugins/copyPaste/copyPaste.js +70 -16
  536. package/plugins/copyPaste/copyPaste.mjs +71 -17
  537. package/plugins/copyPaste/copyableRanges.js +6 -2
  538. package/plugins/copyPaste/copyableRanges.mjs +6 -2
  539. package/plugins/copyPaste/pasteEvent.d.ts +1 -1
  540. package/plugins/customBorders/customBorders.d.ts +21 -40
  541. package/plugins/customBorders/customBorders.js +1080 -201
  542. package/plugins/customBorders/customBorders.mjs +1082 -203
  543. package/plugins/customBorders/utils.d.ts +71 -0
  544. package/plugins/customBorders/utils.js +63 -0
  545. package/plugins/customBorders/utils.mjs +101 -0
  546. package/plugins/dataProvider/dataProvider.d.ts +2 -1
  547. package/plugins/dataProvider/dataProvider.js +22 -7
  548. package/plugins/dataProvider/dataProvider.mjs +22 -7
  549. package/plugins/dataProvider/query/crud.js +1 -1
  550. package/plugins/dataProvider/query/crud.mjs +1 -1
  551. package/plugins/dialog/dialog.js +14 -9
  552. package/plugins/dialog/dialog.mjs +14 -9
  553. package/plugins/dialog/templates/confirm.d.ts +1 -1
  554. package/plugins/dialog/templates/confirm.js +2 -1
  555. package/plugins/dialog/templates/confirm.mjs +2 -1
  556. package/plugins/dialog/ui.d.ts +5 -3
  557. package/plugins/dialog/ui.js +12 -4
  558. package/plugins/dialog/ui.mjs +12 -4
  559. package/plugins/dragToScroll/dragToScroll.d.ts +2 -2
  560. package/plugins/dragToScroll/dragToScroll.js +150 -14
  561. package/plugins/dragToScroll/dragToScroll.mjs +151 -15
  562. package/plugins/dropdownMenu/dropdownMenu.d.ts +5 -1
  563. package/plugins/dropdownMenu/dropdownMenu.js +45 -3
  564. package/plugins/dropdownMenu/dropdownMenu.mjs +46 -4
  565. package/plugins/dropdownMenu/index.d.ts +1 -0
  566. package/plugins/emptyDataState/emptyDataState.js +4 -6
  567. package/plugins/emptyDataState/emptyDataState.mjs +4 -6
  568. package/plugins/emptyDataState/ui.js +2 -1
  569. package/plugins/emptyDataState/ui.mjs +2 -1
  570. package/plugins/exportFile/dataProvider.js +7 -9
  571. package/plugins/exportFile/dataProvider.mjs +7 -9
  572. package/plugins/exportFile/exportFile.d.ts +10 -3
  573. package/plugins/exportFile/types/_base.js +4 -10
  574. package/plugins/exportFile/types/_base.mjs +4 -10
  575. package/plugins/exportFile/types/xlsx/cell-style.js +4 -2
  576. package/plugins/exportFile/types/xlsx/cell-style.mjs +4 -2
  577. package/plugins/exportFile/types/xlsx/date-utils.d.ts +15 -0
  578. package/plugins/exportFile/types/xlsx/date-utils.js +31 -0
  579. package/plugins/exportFile/types/xlsx/date-utils.mjs +36 -0
  580. package/plugins/exportFile/types/xlsx.js +13 -9
  581. package/plugins/exportFile/types/xlsx.mjs +14 -10
  582. package/plugins/exportFile/utils.d.ts +9 -1
  583. package/plugins/exportFile/utils.js +27 -4
  584. package/plugins/exportFile/utils.mjs +40 -2
  585. package/plugins/filters/component/_base.d.ts +1 -2
  586. package/plugins/filters/component/_base.js +1 -2
  587. package/plugins/filters/component/_base.mjs +1 -2
  588. package/plugins/filters/component/condition.d.ts +1 -0
  589. package/plugins/filters/component/condition.js +2 -0
  590. package/plugins/filters/component/condition.mjs +2 -0
  591. package/plugins/filters/component/value.d.ts +5 -6
  592. package/plugins/filters/component/value.js +53 -34
  593. package/plugins/filters/component/value.mjs +54 -35
  594. package/plugins/filters/condition/date/after.js +2 -1
  595. package/plugins/filters/condition/date/after.mjs +2 -1
  596. package/plugins/filters/condition/date/afterOrEqual.js +2 -1
  597. package/plugins/filters/condition/date/afterOrEqual.mjs +2 -1
  598. package/plugins/filters/condition/date/before.js +2 -1
  599. package/plugins/filters/condition/date/before.mjs +2 -1
  600. package/plugins/filters/condition/date/beforeOrEqual.js +2 -1
  601. package/plugins/filters/condition/date/beforeOrEqual.mjs +2 -1
  602. package/plugins/filters/condition/equal.d.ts +7 -0
  603. package/plugins/filters/condition/equal.js +4 -0
  604. package/plugins/filters/condition/equal.mjs +10 -0
  605. package/plugins/filters/condition/intlDatetime/after.d.mts +1 -0
  606. package/plugins/filters/condition/intlDatetime/after.d.ts +18 -0
  607. package/plugins/filters/condition/intlDatetime/after.js +77 -0
  608. package/plugins/filters/condition/intlDatetime/after.mjs +22 -0
  609. package/plugins/filters/condition/intlDatetime/afterOrEqual.d.mts +1 -0
  610. package/plugins/filters/condition/intlDatetime/afterOrEqual.d.ts +18 -0
  611. package/plugins/filters/condition/intlDatetime/afterOrEqual.js +77 -0
  612. package/plugins/filters/condition/intlDatetime/afterOrEqual.mjs +22 -0
  613. package/plugins/filters/condition/intlDatetime/before.d.mts +1 -0
  614. package/plugins/filters/condition/intlDatetime/before.d.ts +18 -0
  615. package/plugins/filters/condition/intlDatetime/before.js +77 -0
  616. package/plugins/filters/condition/intlDatetime/before.mjs +22 -0
  617. package/plugins/filters/condition/intlDatetime/beforeOrEqual.d.mts +1 -0
  618. package/plugins/filters/condition/intlDatetime/beforeOrEqual.d.ts +18 -0
  619. package/plugins/filters/condition/intlDatetime/beforeOrEqual.js +77 -0
  620. package/plugins/filters/condition/intlDatetime/beforeOrEqual.mjs +22 -0
  621. package/plugins/filters/condition/intlDatetime/between.d.mts +1 -0
  622. package/plugins/filters/condition/intlDatetime/between.d.ts +18 -0
  623. package/plugins/filters/condition/intlDatetime/between.js +78 -0
  624. package/plugins/filters/condition/intlDatetime/between.mjs +23 -0
  625. package/plugins/filters/condition/intlDatetime/today.d.mts +1 -0
  626. package/plugins/filters/condition/intlDatetime/today.d.ts +17 -0
  627. package/plugins/filters/condition/intlDatetime/today.js +76 -0
  628. package/plugins/filters/condition/intlDatetime/today.mjs +20 -0
  629. package/plugins/filters/condition/intlDatetime/tomorrow.d.mts +1 -0
  630. package/plugins/filters/condition/intlDatetime/tomorrow.d.ts +17 -0
  631. package/plugins/filters/condition/intlDatetime/tomorrow.js +77 -0
  632. package/plugins/filters/condition/intlDatetime/tomorrow.mjs +21 -0
  633. package/plugins/filters/condition/intlDatetime/yesterday.d.mts +1 -0
  634. package/plugins/filters/condition/intlDatetime/yesterday.d.ts +17 -0
  635. package/plugins/filters/condition/intlDatetime/yesterday.js +77 -0
  636. package/plugins/filters/condition/intlDatetime/yesterday.mjs +21 -0
  637. package/plugins/filters/conditionCollection.js +4 -7
  638. package/plugins/filters/conditionCollection.mjs +4 -7
  639. package/plugins/filters/conditionUpdateObserver.d.ts +2 -2
  640. package/plugins/filters/conditionUpdateObserver.js +148 -49
  641. package/plugins/filters/conditionUpdateObserver.mjs +148 -49
  642. package/plugins/filters/constants.d.ts +1 -0
  643. package/plugins/filters/constants.js +31 -0
  644. package/plugins/filters/constants.mjs +28 -0
  645. package/plugins/filters/dataFilter.d.ts +4 -12
  646. package/plugins/filters/dataFilter.js +7 -19
  647. package/plugins/filters/dataFilter.mjs +8 -20
  648. package/plugins/filters/filters.d.ts +33 -9
  649. package/plugins/filters/filters.js +91 -31
  650. package/plugins/filters/filters.mjs +92 -32
  651. package/plugins/filters/sortComparators.d.ts +9 -2
  652. package/plugins/filters/sortComparators.js +34 -1
  653. package/plugins/filters/sortComparators.mjs +38 -3
  654. package/plugins/filters/ui/input.d.ts +4 -0
  655. package/plugins/filters/ui/input.js +18 -6
  656. package/plugins/filters/ui/input.mjs +18 -6
  657. package/plugins/filters/ui/multipleSelect.js +27 -4
  658. package/plugins/filters/ui/multipleSelect.mjs +27 -4
  659. package/plugins/filters/ui/select.js +1 -1
  660. package/plugins/filters/ui/select.mjs +1 -1
  661. package/plugins/formulas/engine/register.d.ts +5 -4
  662. package/plugins/formulas/engine/register.js +5 -2
  663. package/plugins/formulas/engine/register.mjs +9 -5
  664. package/plugins/formulas/engine/settings.d.ts +2 -6
  665. package/plugins/formulas/engine/settings.js +29 -4
  666. package/plugins/formulas/engine/settings.mjs +29 -4
  667. package/plugins/formulas/engine/types.d.ts +12 -2
  668. package/plugins/formulas/formulas.d.ts +39 -0
  669. package/plugins/formulas/formulas.js +789 -47
  670. package/plugins/formulas/formulas.mjs +793 -49
  671. package/plugins/formulas/hyperlinkUrl.d.mts +1 -0
  672. package/plugins/formulas/hyperlinkUrl.d.ts +12 -0
  673. package/plugins/formulas/hyperlinkUrl.js +32 -0
  674. package/plugins/formulas/hyperlinkUrl.mjs +32 -0
  675. package/plugins/formulas/indexSyncer/axisSyncer.d.ts +1 -0
  676. package/plugins/formulas/indexSyncer/axisSyncer.js +72 -15
  677. package/plugins/formulas/indexSyncer/axisSyncer.mjs +72 -15
  678. package/plugins/formulas/utils.d.ts +9 -0
  679. package/plugins/formulas/utils.js +21 -0
  680. package/plugins/formulas/utils.mjs +25 -0
  681. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +6 -1
  682. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +6 -1
  683. package/plugins/hiddenColumns/hiddenColumns.js +6 -3
  684. package/plugins/hiddenColumns/hiddenColumns.mjs +6 -3
  685. package/plugins/hiddenRows/contextMenuItem/showRow.js +6 -1
  686. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +6 -1
  687. package/plugins/hiddenRows/hiddenRows.js +6 -3
  688. package/plugins/hiddenRows/hiddenRows.mjs +6 -3
  689. package/plugins/index.d.ts +5 -1
  690. package/plugins/index.js +10 -0
  691. package/plugins/index.mjs +5 -1
  692. package/plugins/loading/content.d.ts +5 -3
  693. package/plugins/loading/content.js +3 -2
  694. package/plugins/loading/content.mjs +8 -5
  695. package/plugins/loading/loading.d.ts +5 -2
  696. package/plugins/loading/loading.mjs +5 -2
  697. package/plugins/manualColumnMove/manualColumnMove.d.ts +10 -0
  698. package/plugins/manualColumnMove/manualColumnMove.js +122 -20
  699. package/plugins/manualColumnMove/manualColumnMove.mjs +123 -21
  700. package/plugins/manualColumnResize/manualColumnResize.d.ts +20 -7
  701. package/plugins/manualColumnResize/manualColumnResize.js +33 -13
  702. package/plugins/manualColumnResize/manualColumnResize.mjs +34 -14
  703. package/plugins/manualRowResize/manualRowResize.d.ts +21 -8
  704. package/plugins/manualRowResize/manualRowResize.js +34 -14
  705. package/plugins/manualRowResize/manualRowResize.mjs +35 -15
  706. package/plugins/mergeCells/cellCoords.d.ts +8 -0
  707. package/plugins/mergeCells/cellCoords.js +11 -0
  708. package/plugins/mergeCells/cellCoords.mjs +11 -0
  709. package/plugins/mergeCells/cellsCollection.d.ts +46 -2
  710. package/plugins/mergeCells/cellsCollection.js +189 -68
  711. package/plugins/mergeCells/cellsCollection.mjs +189 -68
  712. package/plugins/mergeCells/focusOrder.d.ts +26 -20
  713. package/plugins/mergeCells/focusOrder.js +358 -177
  714. package/plugins/mergeCells/focusOrder.mjs +363 -172
  715. package/plugins/mergeCells/mergeCells.d.ts +13 -8
  716. package/plugins/mergeCells/mergeCells.js +322 -64
  717. package/plugins/mergeCells/mergeCells.mjs +322 -64
  718. package/plugins/moveCells/helpers.d.mts +1 -0
  719. package/plugins/moveCells/helpers.d.ts +21 -0
  720. package/plugins/moveCells/helpers.js +20 -0
  721. package/plugins/moveCells/helpers.mjs +15 -0
  722. package/plugins/moveCells/index.d.mts +1 -0
  723. package/plugins/moveCells/index.d.ts +1 -0
  724. package/plugins/moveCells/index.js +22 -0
  725. package/plugins/moveCells/index.mjs +1 -0
  726. package/plugins/moveCells/moveCells.d.mts +1 -0
  727. package/plugins/moveCells/moveCells.d.ts +80 -0
  728. package/plugins/moveCells/moveCells.js +602 -0
  729. package/plugins/moveCells/moveCells.mjs +587 -0
  730. package/plugins/multiColumnSorting/multiColumnSorting.d.ts +8 -8
  731. package/plugins/multiColumnSorting/multiColumnSorting.js +11 -16
  732. package/plugins/multiColumnSorting/multiColumnSorting.mjs +11 -16
  733. package/plugins/multiColumnSorting/rootComparator.js +26 -19
  734. package/plugins/multiColumnSorting/rootComparator.mjs +26 -19
  735. package/plugins/multipleSelectionHandles/multipleSelectionHandles.d.ts +19 -4
  736. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +273 -58
  737. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +273 -58
  738. package/plugins/nestedHeaders/nestedHeaders.d.ts +10 -1
  739. package/plugins/nestedHeaders/nestedHeaders.js +222 -23
  740. package/plugins/nestedHeaders/nestedHeaders.mjs +222 -23
  741. package/plugins/nestedHeaders/stateManager/columnArrangement.d.mts +1 -0
  742. package/plugins/nestedHeaders/stateManager/columnArrangement.d.ts +37 -0
  743. package/plugins/nestedHeaders/stateManager/columnArrangement.js +35 -0
  744. package/plugins/nestedHeaders/stateManager/columnArrangement.mjs +30 -0
  745. package/plugins/nestedHeaders/stateManager/deriveSettings.d.mts +1 -0
  746. package/plugins/nestedHeaders/stateManager/deriveSettings.d.ts +57 -0
  747. package/plugins/nestedHeaders/stateManager/deriveSettings.js +115 -0
  748. package/plugins/nestedHeaders/stateManager/deriveSettings.mjs +135 -0
  749. package/plugins/nestedHeaders/stateManager/headersTree.d.ts +14 -1
  750. package/plugins/nestedHeaders/stateManager/index.d.ts +76 -13
  751. package/plugins/nestedHeaders/stateManager/index.js +381 -38
  752. package/plugins/nestedHeaders/stateManager/index.mjs +382 -39
  753. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +3 -2
  754. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +3 -2
  755. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -1
  756. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -1
  757. package/plugins/nestedHeaders/stateManager/sourceSettings.d.ts +23 -6
  758. package/plugins/nestedHeaders/stateManager/sourceSettings.js +20 -4
  759. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +20 -4
  760. package/plugins/nestedHeaders/stateManager/utils.d.ts +17 -1
  761. package/plugins/nestedHeaders/stateManager/utils.js +6 -1
  762. package/plugins/nestedHeaders/stateManager/utils.mjs +6 -1
  763. package/plugins/nestedHeaders/utils/ghostTable.js +21 -8
  764. package/plugins/nestedHeaders/utils/ghostTable.mjs +21 -8
  765. package/plugins/nestedRows/data/dataManager.d.ts +4 -1
  766. package/plugins/nestedRows/data/dataManager.js +10 -4
  767. package/plugins/nestedRows/data/dataManager.mjs +10 -4
  768. package/plugins/nestedRows/nestedRows.d.ts +127 -1
  769. package/plugins/nestedRows/nestedRows.js +330 -8
  770. package/plugins/nestedRows/nestedRows.mjs +330 -8
  771. package/plugins/nestedRows/ui/collapsing.d.ts +58 -0
  772. package/plugins/nestedRows/ui/collapsing.js +236 -40
  773. package/plugins/nestedRows/ui/collapsing.mjs +236 -40
  774. package/plugins/notification/notification.d.ts +2 -1
  775. package/plugins/notification/notification.js +6 -3
  776. package/plugins/notification/notification.mjs +6 -3
  777. package/plugins/notification/ui.d.ts +8 -5
  778. package/plugins/notification/ui.js +18 -6
  779. package/plugins/notification/ui.mjs +18 -6
  780. package/plugins/pagination/pagination.js +2 -2
  781. package/plugins/pagination/pagination.mjs +2 -2
  782. package/plugins/search/search.js +23 -2
  783. package/plugins/search/search.mjs +23 -2
  784. package/plugins/selectionHandles/helpers.d.mts +1 -0
  785. package/plugins/selectionHandles/helpers.d.ts +17 -0
  786. package/plugins/selectionHandles/helpers.js +16 -0
  787. package/plugins/selectionHandles/helpers.mjs +11 -0
  788. package/plugins/selectionHandles/index.d.mts +1 -0
  789. package/plugins/selectionHandles/index.d.ts +1 -0
  790. package/plugins/selectionHandles/index.js +22 -0
  791. package/plugins/selectionHandles/index.mjs +1 -0
  792. package/plugins/selectionHandles/selectionHandles.d.mts +1 -0
  793. package/plugins/selectionHandles/selectionHandles.d.ts +52 -0
  794. package/plugins/selectionHandles/selectionHandles.js +342 -0
  795. package/plugins/selectionHandles/selectionHandles.mjs +323 -0
  796. package/plugins/trimRows/trimRows.d.ts +1 -1
  797. package/plugins/trimRows/trimRows.js +6 -2
  798. package/plugins/trimRows/trimRows.mjs +6 -2
  799. package/plugins/types.d.ts +4 -0
  800. package/plugins/undoRedo/actions/cellAlignment.js +1 -1
  801. package/plugins/undoRedo/actions/cellAlignment.mjs +1 -1
  802. package/plugins/undoRedo/actions/createColumn.js +4 -1
  803. package/plugins/undoRedo/actions/createColumn.mjs +4 -1
  804. package/plugins/undoRedo/actions/createRow.js +4 -1
  805. package/plugins/undoRedo/actions/createRow.mjs +4 -1
  806. package/plugins/undoRedo/actions/fixedCounts.d.mts +1 -0
  807. package/plugins/undoRedo/actions/fixedCounts.d.ts +36 -0
  808. package/plugins/undoRedo/actions/fixedCounts.js +63 -0
  809. package/plugins/undoRedo/actions/fixedCounts.mjs +62 -0
  810. package/plugins/undoRedo/actions/index.js +2 -0
  811. package/plugins/undoRedo/actions/index.mjs +2 -0
  812. package/plugins/undoRedo/actions/moveCells.d.mts +1 -0
  813. package/plugins/undoRedo/actions/moveCells.d.ts +104 -0
  814. package/plugins/undoRedo/actions/moveCells.js +225 -0
  815. package/plugins/undoRedo/actions/moveCells.mjs +227 -0
  816. package/plugins/undoRedo/actions/removeColumn.d.ts +18 -2
  817. package/plugins/undoRedo/actions/removeColumn.js +11 -4
  818. package/plugins/undoRedo/actions/removeColumn.mjs +12 -5
  819. package/plugins/undoRedo/actions/removeRow.js +2 -57
  820. package/plugins/undoRedo/actions/removeRow.mjs +2 -57
  821. package/plugins/undoRedo/undoRedo.d.ts +26 -0
  822. package/plugins/undoRedo/undoRedo.js +36 -2
  823. package/plugins/undoRedo/undoRedo.mjs +36 -2
  824. package/plugins/undoRedo/utils.d.ts +29 -0
  825. package/plugins/undoRedo/utils.js +55 -3
  826. package/plugins/undoRedo/utils.mjs +59 -0
  827. package/renderSizeProbe.d.mts +1 -0
  828. package/renderSizeProbe.d.ts +60 -0
  829. package/renderSizeProbe.js +163 -0
  830. package/renderSizeProbe.mjs +176 -0
  831. package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
  832. package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
  833. package/renderers/index.d.ts +3 -2
  834. package/renderers/index.js +8 -0
  835. package/renderers/index.mjs +3 -1
  836. package/renderers/intlDatetimeRenderer/index.d.mts +1 -0
  837. package/renderers/intlDatetimeRenderer/index.d.ts +1 -0
  838. package/renderers/intlDatetimeRenderer/index.js +22 -0
  839. package/renderers/intlDatetimeRenderer/index.mjs +1 -0
  840. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.d.mts +1 -0
  841. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.d.ts +26 -0
  842. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.js +82 -0
  843. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.mjs +67 -0
  844. package/renderers/multiSelectRenderer/multiSelectRenderer.js +2 -3
  845. package/renderers/multiSelectRenderer/multiSelectRenderer.mjs +2 -3
  846. package/renderers/multiSelectRenderer/utils/utils.d.ts +1 -1
  847. package/renderers/multiSelectRenderer/utils/utils.js +11 -8
  848. package/renderers/multiSelectRenderer/utils/utils.mjs +11 -8
  849. package/renderers/passwordRenderer/passwordRenderer.js +6 -1
  850. package/renderers/passwordRenderer/passwordRenderer.mjs +6 -1
  851. package/renderers/renderCell.d.mts +1 -0
  852. package/renderers/renderCell.d.ts +37 -0
  853. package/renderers/renderCell.js +43 -0
  854. package/renderers/renderCell.mjs +48 -0
  855. package/selection/highlight/types/areaLayered.d.ts +3 -1
  856. package/selection/highlight/types/areaLayered.js +4 -2
  857. package/selection/highlight/types/areaLayered.mjs +6 -2
  858. package/selection/highlight/types/focus.d.ts +3 -1
  859. package/selection/highlight/types/focus.js +3 -2
  860. package/selection/highlight/types/focus.mjs +5 -2
  861. package/selection/mouseEventHandler.js +29 -26
  862. package/selection/mouseEventHandler.mjs +29 -26
  863. package/selection/moveCells.d.mts +1 -0
  864. package/selection/moveCells.d.ts +15 -0
  865. package/selection/moveCells.js +13 -0
  866. package/selection/moveCells.mjs +9 -0
  867. package/selection/selection.d.ts +56 -2
  868. package/selection/selection.js +149 -5
  869. package/selection/selection.mjs +149 -5
  870. package/selection/types.d.ts +3 -0
  871. package/settings.d.ts +24 -3
  872. package/shortcuts/context.d.ts +4 -0
  873. package/shortcuts/context.js +16 -8
  874. package/shortcuts/context.mjs +20 -8
  875. package/shortcuts/contexts/commands/populateSelectedCellsData.js +1 -1
  876. package/shortcuts/contexts/commands/populateSelectedCellsData.mjs +1 -1
  877. package/styles/handsontable.css +504 -158
  878. package/styles/handsontable.min.css +4 -4
  879. package/styles/handsontableStyles.js +1 -1
  880. package/styles/handsontableStyles.mjs +1 -1
  881. package/styles/ht-icons-horizon.css +1 -10
  882. package/styles/ht-icons-horizon.min.css +4 -4
  883. package/styles/ht-icons-main.css +1 -10
  884. package/styles/ht-icons-main.min.css +4 -4
  885. package/styles/ht-theme-classic-no-icons.css +6 -0
  886. package/styles/ht-theme-classic-no-icons.min.css +4 -4
  887. package/styles/ht-theme-classic.css +7 -10
  888. package/styles/ht-theme-classic.min.css +4 -4
  889. package/styles/ht-theme-horizon-no-icons.css +6 -0
  890. package/styles/ht-theme-horizon-no-icons.min.css +4 -4
  891. package/styles/ht-theme-horizon.css +7 -10
  892. package/styles/ht-theme-horizon.min.css +4 -4
  893. package/styles/ht-theme-main-no-icons.css +6 -0
  894. package/styles/ht-theme-main-no-icons.min.css +4 -4
  895. package/styles/ht-theme-main.css +7 -10
  896. package/styles/ht-theme-main.min.css +4 -4
  897. package/tableView.d.ts +17 -4
  898. package/tableView.js +223 -53
  899. package/tableView.mjs +224 -54
  900. package/themes/engine/index.d.ts +2 -1
  901. package/themes/engine/index.js +3 -0
  902. package/themes/engine/index.mjs +1 -1
  903. package/themes/engine/manager.d.ts +75 -3
  904. package/themes/engine/manager.js +242 -6
  905. package/themes/engine/manager.mjs +249 -6
  906. package/themes/engine/utils/cssVariables.d.ts +18 -1
  907. package/themes/engine/utils/cssVariables.js +27 -11
  908. package/themes/engine/utils/cssVariables.mjs +28 -11
  909. package/themes/engine/utils/validation.js +7 -0
  910. package/themes/engine/utils/validation.mjs +7 -0
  911. package/themes/static/variables/helpers/iconsMap.js +1 -6
  912. package/themes/static/variables/helpers/iconsMap.mjs +1 -6
  913. package/themes/static/variables/tokens/classic.js +6 -0
  914. package/themes/static/variables/tokens/classic.mjs +6 -0
  915. package/themes/static/variables/tokens/horizon.js +6 -0
  916. package/themes/static/variables/tokens/horizon.mjs +6 -0
  917. package/themes/static/variables/tokens/main.js +6 -0
  918. package/themes/static/variables/tokens/main.mjs +6 -0
  919. package/themes/types.d.ts +1 -1
  920. package/translations/indexMapper.d.ts +14 -9
  921. package/translations/indexMapper.js +104 -43
  922. package/translations/indexMapper.mjs +104 -43
  923. package/translations/mapCollections/aggregatedCollection.js +20 -35
  924. package/translations/mapCollections/aggregatedCollection.mjs +20 -35
  925. package/translations/mapCollections/mapCollection.d.ts +10 -4
  926. package/translations/mapCollections/mapCollection.js +2 -2
  927. package/translations/mapCollections/mapCollection.mjs +2 -2
  928. package/translations/maps/booleanMap.d.mts +1 -0
  929. package/translations/maps/booleanMap.d.ts +86 -0
  930. package/translations/maps/booleanMap.js +300 -0
  931. package/translations/maps/booleanMap.mjs +308 -0
  932. package/translations/maps/hidingMap.d.ts +5 -2
  933. package/translations/maps/hidingMap.js +8 -3
  934. package/translations/maps/hidingMap.mjs +8 -3
  935. package/translations/maps/index.d.ts +5 -2
  936. package/translations/maps/index.js +7 -3
  937. package/translations/maps/index.mjs +10 -2
  938. package/translations/maps/indexMap.d.ts +26 -2
  939. package/translations/maps/indexMap.js +78 -6
  940. package/translations/maps/indexMap.mjs +78 -6
  941. package/translations/maps/indexesSequence.d.ts +53 -2
  942. package/translations/maps/indexesSequence.js +225 -3
  943. package/translations/maps/indexesSequence.mjs +233 -3
  944. package/translations/maps/trimmingMap.d.ts +5 -2
  945. package/translations/maps/trimmingMap.js +8 -3
  946. package/translations/maps/trimmingMap.mjs +8 -3
  947. package/translations/maps/utils/actionsOnIndexes.js +20 -1
  948. package/translations/maps/utils/actionsOnIndexes.mjs +20 -1
  949. package/translations/maps/utils/indexesSequence.js +12 -3
  950. package/translations/maps/utils/indexesSequence.mjs +12 -3
  951. package/translations/maps/utils/physicallyIndexed.js +12 -1
  952. package/translations/maps/utils/physicallyIndexed.mjs +12 -1
  953. package/utils/entitlementLicenseKey/classify.d.mts +1 -0
  954. package/utils/entitlementLicenseKey/classify.d.ts +34 -0
  955. package/utils/entitlementLicenseKey/classify.js +97 -0
  956. package/utils/entitlementLicenseKey/classify.mjs +96 -0
  957. package/utils/entitlementLicenseKey/constants.d.mts +1 -0
  958. package/utils/entitlementLicenseKey/constants.d.ts +75 -0
  959. package/utils/entitlementLicenseKey/constants.js +54 -0
  960. package/utils/entitlementLicenseKey/constants.mjs +72 -0
  961. package/utils/entitlementLicenseKey/detectFormat.d.mts +1 -0
  962. package/utils/entitlementLicenseKey/detectFormat.d.ts +23 -0
  963. package/utils/entitlementLicenseKey/detectFormat.js +60 -0
  964. package/utils/entitlementLicenseKey/detectFormat.mjs +60 -0
  965. package/utils/entitlementLicenseKey/encoding.d.mts +1 -0
  966. package/utils/entitlementLicenseKey/encoding.d.ts +58 -0
  967. package/utils/entitlementLicenseKey/encoding.js +161 -0
  968. package/utils/entitlementLicenseKey/encoding.mjs +172 -0
  969. package/utils/entitlementLicenseKey/extractKeyData.d.mts +1 -0
  970. package/utils/entitlementLicenseKey/extractKeyData.d.ts +47 -0
  971. package/utils/entitlementLicenseKey/extractKeyData.js +213 -0
  972. package/utils/entitlementLicenseKey/extractKeyData.mjs +232 -0
  973. package/utils/entitlementLicenseKey/grants.d.mts +1 -0
  974. package/utils/entitlementLicenseKey/grants.d.ts +54 -0
  975. package/utils/entitlementLicenseKey/grants.js +68 -0
  976. package/utils/entitlementLicenseKey/grants.mjs +84 -0
  977. package/utils/entitlementLicenseKey/index.d.mts +1 -0
  978. package/utils/entitlementLicenseKey/index.d.ts +8 -0
  979. package/utils/entitlementLicenseKey/index.js +53 -0
  980. package/utils/entitlementLicenseKey/index.mjs +6 -0
  981. package/utils/entitlementLicenseKey/sha512.d.mts +1 -0
  982. package/utils/entitlementLicenseKey/sha512.d.ts +11 -0
  983. package/utils/entitlementLicenseKey/sha512.js +328 -0
  984. package/utils/entitlementLicenseKey/sha512.mjs +327 -0
  985. package/utils/entitlementLicenseKey/types.d.mts +1 -0
  986. package/utils/entitlementLicenseKey/types.d.ts +90 -0
  987. package/utils/entitlementLicenseKey/types.js +8 -0
  988. package/utils/entitlementLicenseKey/types.mjs +10 -0
  989. package/utils/ghostTable.d.ts +1 -0
  990. package/utils/ghostTable.js +60 -11
  991. package/utils/ghostTable.mjs +60 -11
  992. package/utils/licenseBranding/badge.d.mts +1 -0
  993. package/utils/licenseBranding/badge.d.ts +21 -0
  994. package/utils/licenseBranding/badge.js +237 -0
  995. package/utils/licenseBranding/badge.mjs +244 -0
  996. package/utils/licenseBranding/content.d.mts +1 -0
  997. package/utils/licenseBranding/content.d.ts +54 -0
  998. package/utils/licenseBranding/content.js +93 -0
  999. package/utils/licenseBranding/content.mjs +79 -0
  1000. package/utils/licenseBranding/index.d.mts +1 -0
  1001. package/utils/licenseBranding/index.d.ts +14 -0
  1002. package/utils/licenseBranding/index.js +70 -0
  1003. package/utils/licenseBranding/index.mjs +71 -0
  1004. package/utils/licenseBranding/lockScreen.d.mts +1 -0
  1005. package/utils/licenseBranding/lockScreen.d.ts +23 -0
  1006. package/utils/licenseBranding/lockScreen.js +150 -0
  1007. package/utils/licenseBranding/lockScreen.mjs +159 -0
  1008. package/utils/licenseNotification.d.ts +19 -0
  1009. package/utils/licenseNotification.js +56 -29
  1010. package/utils/licenseNotification.mjs +61 -29
  1011. package/utils/movableMeta.d.mts +1 -0
  1012. package/utils/movableMeta.d.ts +40 -0
  1013. package/utils/movableMeta.js +47 -0
  1014. package/utils/movableMeta.mjs +46 -0
  1015. package/utils/parseTable.js +16 -7
  1016. package/utils/parseTable.mjs +16 -7
  1017. package/utils/samplesGenerator.d.ts +41 -14
  1018. package/utils/samplesGenerator.js +114 -42
  1019. package/utils/samplesGenerator.mjs +114 -42
  1020. package/utils/sanitizer.d.mts +1 -0
  1021. package/utils/sanitizer.d.ts +47 -0
  1022. package/utils/sanitizer.js +43 -0
  1023. package/utils/sanitizer.mjs +55 -0
  1024. package/utils/stylesHandler.d.ts +13 -0
  1025. package/utils/stylesHandler.js +55 -2
  1026. package/utils/stylesHandler.mjs +55 -2
  1027. package/validators/autocompleteValidator/autocompleteValidator.js +3 -0
  1028. package/validators/autocompleteValidator/autocompleteValidator.mjs +3 -0
  1029. package/validators/index.d.ts +3 -2
  1030. package/validators/index.js +8 -0
  1031. package/validators/index.mjs +3 -1
  1032. package/validators/intlDatetimeValidator/index.d.mts +1 -0
  1033. package/validators/intlDatetimeValidator/index.d.ts +1 -0
  1034. package/validators/intlDatetimeValidator/index.js +25 -0
  1035. package/validators/intlDatetimeValidator/index.mjs +1 -0
  1036. package/validators/intlDatetimeValidator/intlDatetimeValidator.d.mts +1 -0
  1037. package/validators/intlDatetimeValidator/intlDatetimeValidator.d.ts +28 -0
  1038. package/validators/intlDatetimeValidator/intlDatetimeValidator.js +49 -0
  1039. package/validators/intlDatetimeValidator/intlDatetimeValidator.mjs +37 -0
  1040. package/3rdparty/walkontable/src/overlay/bottom.d.mts +0 -1
  1041. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.d.mts +0 -1
  1042. package/3rdparty/walkontable/src/overlay/inlineStart.d.mts +0 -1
  1043. package/3rdparty/walkontable/src/overlay/top.d.mts +0 -1
  1044. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.d.mts +0 -1
  1045. package/3rdparty/walkontable/src/overlays.d.ts +0 -329
  1046. package/3rdparty/walkontable/src/overlays.js +0 -870
  1047. package/3rdparty/walkontable/src/overlays.mjs +0 -860
  1048. package/3rdparty/walkontable/src/renderer/table.d.mts +0 -1
  1049. package/3rdparty/walkontable/src/renderer/table.js +0 -229
  1050. package/3rdparty/walkontable/src/settings.d.mts +0 -2
  1051. package/3rdparty/walkontable/src/settings.js +0 -196
  1052. package/3rdparty/walkontable/src/settings.mjs +0 -263
  1053. package/3rdparty/walkontable/src/table/bottom.d.mts +0 -2
  1054. package/3rdparty/walkontable/src/table/bottom.d.ts +0 -19
  1055. package/3rdparty/walkontable/src/table/bottom.js +0 -38
  1056. package/3rdparty/walkontable/src/table/bottom.mjs +0 -23
  1057. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.d.mts +0 -2
  1058. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.d.ts +0 -20
  1059. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +0 -24
  1060. package/3rdparty/walkontable/src/table/inlineStart.d.mts +0 -2
  1061. package/3rdparty/walkontable/src/table/inlineStart.d.ts +0 -16
  1062. package/3rdparty/walkontable/src/table/inlineStart.js +0 -35
  1063. package/3rdparty/walkontable/src/table/inlineStart.mjs +0 -20
  1064. package/3rdparty/walkontable/src/table/master.d.mts +0 -2
  1065. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.d.mts +0 -2
  1066. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.d.ts +0 -75
  1067. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -122
  1068. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -112
  1069. package/3rdparty/walkontable/src/table/mixin/calculatedRows.d.mts +0 -2
  1070. package/3rdparty/walkontable/src/table/mixin/calculatedRows.d.ts +0 -75
  1071. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -122
  1072. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -112
  1073. package/3rdparty/walkontable/src/table/top.d.mts +0 -2
  1074. package/3rdparty/walkontable/src/table/top.d.ts +0 -19
  1075. package/3rdparty/walkontable/src/table/top.js +0 -38
  1076. package/3rdparty/walkontable/src/table/top.mjs +0 -23
  1077. package/3rdparty/walkontable/src/table/topInlineStartCorner.d.mts +0 -2
  1078. package/3rdparty/walkontable/src/table/topInlineStartCorner.d.ts +0 -20
  1079. package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +0 -24
  1080. package/3rdparty/walkontable/src/table.d.mts +0 -2
  1081. package/3rdparty/walkontable/src/table.d.ts +0 -741
  1082. package/3rdparty/walkontable/src/table.js +0 -1120
  1083. package/3rdparty/walkontable/src/table.mjs +0 -1105
  1084. package/3rdparty/walkontable/src/utils/cellCoords.d.mts +0 -1
  1085. package/3rdparty/walkontable/src/utils/cellCoords.js +0 -54
  1086. package/3rdparty/walkontable/src/utils/cellCoords.mjs +0 -54
  1087. package/3rdparty/walkontable/src/utils/column.d.mts +0 -2
  1088. package/3rdparty/walkontable/src/utils/column.js +0 -75
  1089. package/3rdparty/walkontable/src/utils/column.mjs +0 -70
  1090. package/3rdparty/walkontable/src/utils/positionCache.d.mts +0 -1
  1091. package/3rdparty/walkontable/src/utils/positionCache.d.ts +0 -91
  1092. package/3rdparty/walkontable/src/utils/positionCache.js +0 -193
  1093. package/3rdparty/walkontable/src/utils/positionCache.mjs +0 -194
  1094. package/3rdparty/walkontable/src/utils/row.d.mts +0 -2
  1095. package/3rdparty/walkontable/src/utils/row.js +0 -46
  1096. package/3rdparty/walkontable/src/utils/row.mjs +0 -41
  1097. package/3rdparty/walkontable/src/viewport.d.ts +0 -254
  1098. package/3rdparty/walkontable/src/viewport.js +0 -533
  1099. package/3rdparty/walkontable/src/viewport.mjs +0 -523
  1100. /package/3rdparty/walkontable/src/{renderer → axisSizing/positionCache}/index.d.mts +0 -0
  1101. /package/3rdparty/walkontable/src/{overlays.d.mts → overlay/overlays.d.mts} +0 -0
  1102. /package/3rdparty/walkontable/src/overlay/{_base.d.mts → regions/_base.d.mts} +0 -0
  1103. /package/3rdparty/walkontable/src/{stickyScrollStrategy.d.mts → overlay/strategies/stickyScrollStrategy.d.mts} +0 -0
  1104. /package/3rdparty/walkontable/src/{renderer → render}/_base.d.mts +0 -0
  1105. /package/3rdparty/walkontable/src/{renderer → render}/_base.js +0 -0
  1106. /package/3rdparty/walkontable/src/{renderer → render}/_base.mjs +0 -0
  1107. /package/3rdparty/walkontable/src/{renderer → render}/cells.d.mts +0 -0
  1108. /package/3rdparty/walkontable/src/{renderer → render}/cells.d.ts +0 -0
  1109. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.d.mts +0 -0
  1110. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.d.ts +0 -0
  1111. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.js +0 -0
  1112. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.mjs +0 -0
  1113. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.d.mts +0 -0
  1114. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.d.ts +0 -0
  1115. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.js +0 -0
  1116. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.mjs +0 -0
  1117. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.d.mts +0 -0
  1118. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.d.mts +0 -0
  1119. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.d.ts +0 -0
  1120. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.js +0 -0
  1121. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.mjs +0 -0
  1122. /package/3rdparty/walkontable/src/{renderer → render}/rows.d.mts +0 -0
  1123. /package/3rdparty/walkontable/src/{renderer → render}/rows.d.ts +0 -0
  1124. /package/3rdparty/walkontable/src/{scroll.d.mts → scroll/scroll.d.mts} +0 -0
  1125. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.d.mts +0 -0
  1126. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.d.mts +0 -0
  1127. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.js +0 -0
  1128. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.mjs +0 -0
  1129. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.d.mts +0 -0
  1130. /package/3rdparty/walkontable/src/{viewport.d.mts → viewport/viewport.d.mts} +0 -0
@@ -54,6 +54,9 @@ _export(exports, {
54
54
  get getCssTransform () {
55
55
  return getCssTransform;
56
56
  },
57
+ get getDeepActiveElement () {
58
+ return getDeepActiveElement;
59
+ },
57
60
  get getFractionalScalingCompensation () {
58
61
  return getFractionalScalingCompensation;
59
62
  },
@@ -90,6 +93,9 @@ _export(exports, {
90
93
  get getSelectionText () {
91
94
  return getSelectionText;
92
95
  },
96
+ get getShadowHostChain () {
97
+ return getShadowHostChain;
98
+ },
93
99
  get getStyle () {
94
100
  return getStyle;
95
101
  },
@@ -165,6 +171,9 @@ _export(exports, {
165
171
  get matchesCSSRules () {
166
172
  return matchesCSSRules;
167
173
  },
174
+ get missingSanitizerMessage () {
175
+ return missingSanitizerMessage;
176
+ },
168
177
  get observeVisibilityChangeOnce () {
169
178
  return observeVisibilityChangeOnce;
170
179
  },
@@ -498,6 +507,9 @@ function empty(element) {
498
507
  }
499
508
  const HTML_CHARACTERS = /(<([^>]*)>|&([^;]*);)/;
500
509
  const SANITIZER_WARN_KEY = 'sanitizer';
510
+ function missingSanitizerMessage(context) {
511
+ return `HTML content is being written to the DOM ("${context}") without a sanitizer. ` + 'Configure the "sanitizer" option to prevent XSS vulnerabilities.';
512
+ }
501
513
  /**
502
514
  * Default scope used when a caller writes raw HTML without supplying a per-instance
503
515
  * scope. Keeps the warning to once per process for such callers.
@@ -506,13 +518,17 @@ function fastInnerHTML(element, content, sanitizer = true, context = 'innerHTML'
506
518
  if (HTML_CHARACTERS.test(content)) {
507
519
  let sanitized;
508
520
  if (typeof sanitizer === 'function') {
509
- sanitized = sanitizer(content, context);
521
+ // `?? ''` rather than `?? content`: a sanitizer that returns nothing for input it strips
522
+ // entirely must not have the raw input written back, which would undo the sanitizing. The
523
+ // declared return type is `string`, but JavaScript callers are not held to it, and without
524
+ // this guard the literal word "undefined" reaches the DOM.
525
+ sanitized = sanitizer(content, context) ?? '';
510
526
  } else {
511
527
  // `false` means the caller renders raw HTML deliberately (for example, the `html` cell type).
512
528
  // Any other non-function value (the default `true`) is an implicit raw write, so nudge once
513
529
  // toward configuring a sanitizer to prevent XSS.
514
530
  if (sanitizer !== false) {
515
- (0, _console.warnOnce)(scope, SANITIZER_WARN_KEY, `HTML content is being written to the DOM ("${context}") without a sanitizer. ` + 'Configure the "sanitizer" option to prevent XSS vulnerabilities.');
531
+ (0, _console.warnOnce)(scope, SANITIZER_WARN_KEY, missingSanitizerMessage(context));
516
532
  }
517
533
  sanitized = content;
518
534
  }
@@ -674,28 +690,74 @@ function getMaximumScrollTop(element) {
674
690
  function getMaximumScrollLeft(element) {
675
691
  return element.scrollWidth - element.clientWidth;
676
692
  }
693
+ const OVERFLOW_TRIMMING_VALUES = [
694
+ 'scroll',
695
+ 'hidden',
696
+ 'auto',
697
+ 'clip'
698
+ ];
699
+ const OVERFLOW_CONCRETE_VALUES = [
700
+ 'visible',
701
+ 'clip',
702
+ 'hidden',
703
+ 'scroll',
704
+ 'auto',
705
+ 'overlay'
706
+ ];
707
+ /**
708
+ * Checks whether a single overflow axis traps the table on that axis.
709
+ *
710
+ * `overflow: clip` establishes no scroll port. When an axis is `clip` while the perpendicular axis
711
+ * stays `visible`, it does not trap the table's scroll — the table still scrolls with the window on
712
+ * the visible axis. A width-constrained, window-scrolled table sets `overflow-x: clip` on its root
713
+ * (see core.ts, DEV-1025); treating that root as the trimming container drops the overlays out of
714
+ * window-scroll mode (frozen rows stop pinning, vertical virtualization stops). Such a single-axis
715
+ * clip must not qualify the axis as trimming.
716
+ *
717
+ * @param {string} axis The `overflow-x`/`overflow-y` value of the axis being tested.
718
+ * @param {string} perpendicular The `overflow` value of the other axis.
719
+ * @returns {boolean}
720
+ */ function overflowAxisTraps(axis, perpendicular) {
721
+ return OVERFLOW_TRIMMING_VALUES.includes(axis) && !(axis === 'clip' && (perpendicular === 'visible' || perpendicular === ''));
722
+ }
723
+ /**
724
+ * Resolves the effective `overflow-x`/`overflow-y` of an element, preferring inline styles.
725
+ *
726
+ * The inline `overflow` shorthand can carry two values (`overflow: clip visible` → x, y). Some
727
+ * engines (jsdom) neither split that shorthand into `overflowX`/`overflowY` nor reflect it in the
728
+ * computed style, so the shorthand string is parsed directly. An inline value is only preferred when
729
+ * it is a concrete overflow keyword; a global keyword (`inherit`, `initial`, `revert`, `unset`) or
730
+ * any other non-concrete value falls back to the computed style, which resolves it to the real value
731
+ * (e.g. an inherited `auto`). Otherwise an inline `inherit` would be read literally and miss the
732
+ * scroll value it inherits.
733
+ *
734
+ * @param {HTMLElement} el The element to read overflow from.
735
+ * @param {CSSStyleDeclaration} computedStyle The element's computed style.
736
+ * @returns {{ x: string, y: string }}
737
+ */ function resolveOverflowAxes(el, computedStyle) {
738
+ const shorthand = el.style.overflow.split(/\s+/).filter(Boolean);
739
+ const [shorthandX = '', shorthandY = shorthandX] = shorthand;
740
+ const resolveAxis = (inlineAxis, shorthandAxis, computedProperty)=>{
741
+ const inline = inlineAxis || shorthandAxis;
742
+ return OVERFLOW_CONCRETE_VALUES.includes(inline) ? inline : computedStyle.getPropertyValue(computedProperty);
743
+ };
744
+ return {
745
+ x: resolveAxis(el.style.overflowX, shorthandX, 'overflow-x'),
746
+ y: resolveAxis(el.style.overflowY, shorthandY, 'overflow-y')
747
+ };
748
+ }
677
749
  function getTrimmingContainer(base) {
678
750
  const rootDocument = base.ownerDocument;
679
751
  const rootWindow = rootDocument.defaultView;
680
752
  let el = base.parentElement;
681
753
  while(el && el.style && rootDocument.body !== el){
682
- if (el.style.overflow !== 'visible' && el.style.overflow !== '') {
683
- return el;
684
- }
685
754
  if (rootWindow) {
686
- const computedStyle = rootWindow.getComputedStyle(el);
687
- const allowedProperties = [
688
- 'scroll',
689
- 'hidden',
690
- 'auto',
691
- 'clip'
692
- ];
693
- const property = computedStyle.getPropertyValue('overflow');
694
- const propertyY = computedStyle.getPropertyValue('overflow-y');
695
- const propertyX = computedStyle.getPropertyValue('overflow-x');
696
- if (allowedProperties.includes(property) || allowedProperties.includes(propertyY) || allowedProperties.includes(propertyX)) {
755
+ const { x, y } = resolveOverflowAxes(el, rootWindow.getComputedStyle(el));
756
+ if (overflowAxisTraps(x, y) || overflowAxisTraps(y, x)) {
697
757
  return el;
698
758
  }
759
+ } else if (el.style.overflow !== 'visible' && el.style.overflow !== '') {
760
+ return el;
699
761
  }
700
762
  el = el.parentElement;
701
763
  }
@@ -917,7 +979,7 @@ function isOutsideInput(element) {
917
979
  return isInput(element) && 'hotInput' in element.dataset === false;
918
980
  }
919
981
  function selectElementIfAllowed(element) {
920
- const activeElement = element.ownerDocument.activeElement;
982
+ const activeElement = getDeepActiveElement(element.ownerDocument);
921
983
  if (isHTMLElement(activeElement) && !isOutsideInput(activeElement) && (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement)) {
922
984
  element.select();
923
985
  }
@@ -935,6 +997,7 @@ function observeVisibilityChangeOnce(elementToBeObserved, callback) {
935
997
  });
936
998
  });
937
999
  visibilityObserver.observe(elementToBeObserved);
1000
+ return visibilityObserver;
938
1001
  }
939
1002
  function makeElementContentEditableAndSelectItsContent(element, invisibleSelection = true, ariaHidden = true) {
940
1003
  const ownerDocument = element.ownerDocument;
@@ -982,7 +1045,30 @@ function isHTMLInputElement(element) {
982
1045
  return element.tagName === 'INPUT';
983
1046
  }
984
1047
  function isShadowRoot(node) {
985
- return node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && 'host' in node;
1048
+ if (typeof node !== 'object' || node === null) {
1049
+ return false;
1050
+ }
1051
+ return 'nodeType' in node && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && 'host' in node;
1052
+ }
1053
+ function getShadowHostChain(node) {
1054
+ const hosts = [];
1055
+ let rootNode = node.getRootNode();
1056
+ while(isShadowRoot(rootNode)){
1057
+ const { host } = rootNode;
1058
+ if (!isHTMLElement(host)) {
1059
+ break;
1060
+ }
1061
+ hosts.push(host);
1062
+ rootNode = host.getRootNode();
1063
+ }
1064
+ return hosts;
1065
+ }
1066
+ function getDeepActiveElement(rootDocument) {
1067
+ let element = rootDocument.activeElement;
1068
+ while(element?.shadowRoot?.activeElement){
1069
+ element = element.shadowRoot.activeElement;
1070
+ }
1071
+ return element;
986
1072
  }
987
1073
  function getChildEl(parent, index) {
988
1074
  const node = parent.childNodes[index];
@@ -410,6 +410,21 @@ export const HTML_CHARACTERS = /(<([^>]*)>|&([^;]*);)/;
410
410
  * write surfaces (headers, context menu, dialogs, notifications, editors)
411
411
  * collapse into a single warning per Handsontable instance.
412
412
  */ export const SANITIZER_WARN_KEY = 'sanitizer';
413
+ /**
414
+ * Builds the missing-sanitizer warning. Every surface that writes raw HTML uses this, whether it
415
+ * goes through `fastInnerHTML` or sanitizes a string first (`utils/sanitizer.ts`), so the wording
416
+ * cannot drift between them.
417
+ *
418
+ * It lives here rather than beside its second caller because `utils/sanitizer.ts` already imports
419
+ * from this module, and the reverse direction would be a cycle. That makes it public through
420
+ * `Handsontable.dom`, like `HTML_CHARACTERS` and `SANITIZER_WARN_KEY` above it - accepted
421
+ * deliberately: it is a pure string builder, and it is useful to anyone writing their own sink.
422
+ *
423
+ * @param {string} context The write surface that is about to receive raw HTML.
424
+ * @returns {string} The warning message.
425
+ */ export function missingSanitizerMessage(context) {
426
+ return `HTML content is being written to the DOM ("${context}") without a sanitizer. ` + 'Configure the "sanitizer" option to prevent XSS vulnerabilities.';
427
+ }
413
428
  /**
414
429
  * Default scope used when a caller writes raw HTML without supplying a per-instance
415
430
  * scope. Keeps the warning to once per process for such callers.
@@ -419,24 +434,28 @@ export const HTML_CHARACTERS = /(<([^>]*)>|&([^;]*);)/;
419
434
  *
420
435
  * @param {HTMLElement} element An element to write into.
421
436
  * @param {string} content The text to write.
422
- * @param {boolean|function(string, string): string} [sanitizer] When a function, use it as the sanitizer; when `false`,
437
+ * @param {boolean|function(string, SanitizerContext): string} [sanitizer] When a function, use it as the sanitizer; when `false`,
423
438
  * write the content as raw HTML on purpose (no warning); when `true` (the default), write the content as raw HTML and
424
439
  * warn once that no sanitizer is configured.
425
- * @param {string} [context] The sanitization context passed as the second argument to a custom sanitizer function, and
440
+ * @param {SanitizerContext} [context] The sanitization context passed as the second argument to a custom sanitizer function, and
426
441
  * used in the missing-sanitizer warning to identify the write surface.
427
- * @param {object} [scope] Object the "warn once" state is bound to (for example, `hot.rootGridElement`), so the warning
428
- * is shown at most once per Handsontable instance.
442
+ * @param {object} [scope] Object the "warn once" state is bound to (`hot.rootElement` at every call site
443
+ * inside the grid), so the warning is shown at most once per Handsontable instance.
429
444
  */ export function fastInnerHTML(element, content, sanitizer = true, context = 'innerHTML', scope = defaultSanitizerWarnScope) {
430
445
  if (HTML_CHARACTERS.test(content)) {
431
446
  let sanitized;
432
447
  if (typeof sanitizer === 'function') {
433
- sanitized = sanitizer(content, context);
448
+ // `?? ''` rather than `?? content`: a sanitizer that returns nothing for input it strips
449
+ // entirely must not have the raw input written back, which would undo the sanitizing. The
450
+ // declared return type is `string`, but JavaScript callers are not held to it, and without
451
+ // this guard the literal word "undefined" reaches the DOM.
452
+ sanitized = sanitizer(content, context) ?? '';
434
453
  } else {
435
454
  // `false` means the caller renders raw HTML deliberately (for example, the `html` cell type).
436
455
  // Any other non-function value (the default `true`) is an implicit raw write, so nudge once
437
456
  // toward configuring a sanitizer to prevent XSS.
438
457
  if (sanitizer !== false) {
439
- warnOnce(scope, SANITIZER_WARN_KEY, `HTML content is being written to the DOM ("${context}") without a sanitizer. ` + 'Configure the "sanitizer" option to prevent XSS vulnerabilities.');
458
+ warnOnce(scope, SANITIZER_WARN_KEY, missingSanitizerMessage(context));
440
459
  }
441
460
  sanitized = content;
442
461
  }
@@ -659,6 +678,62 @@ export function getScrollLeft(element, rootWindow = window) {
659
678
  */ export function getMaximumScrollLeft(element) {
660
679
  return element.scrollWidth - element.clientWidth;
661
680
  }
681
+ const OVERFLOW_TRIMMING_VALUES = [
682
+ 'scroll',
683
+ 'hidden',
684
+ 'auto',
685
+ 'clip'
686
+ ];
687
+ const OVERFLOW_CONCRETE_VALUES = [
688
+ 'visible',
689
+ 'clip',
690
+ 'hidden',
691
+ 'scroll',
692
+ 'auto',
693
+ 'overlay'
694
+ ];
695
+ /**
696
+ * Checks whether a single overflow axis traps the table on that axis.
697
+ *
698
+ * `overflow: clip` establishes no scroll port. When an axis is `clip` while the perpendicular axis
699
+ * stays `visible`, it does not trap the table's scroll — the table still scrolls with the window on
700
+ * the visible axis. A width-constrained, window-scrolled table sets `overflow-x: clip` on its root
701
+ * (see core.ts, DEV-1025); treating that root as the trimming container drops the overlays out of
702
+ * window-scroll mode (frozen rows stop pinning, vertical virtualization stops). Such a single-axis
703
+ * clip must not qualify the axis as trimming.
704
+ *
705
+ * @param {string} axis The `overflow-x`/`overflow-y` value of the axis being tested.
706
+ * @param {string} perpendicular The `overflow` value of the other axis.
707
+ * @returns {boolean}
708
+ */ function overflowAxisTraps(axis, perpendicular) {
709
+ return OVERFLOW_TRIMMING_VALUES.includes(axis) && !(axis === 'clip' && (perpendicular === 'visible' || perpendicular === ''));
710
+ }
711
+ /**
712
+ * Resolves the effective `overflow-x`/`overflow-y` of an element, preferring inline styles.
713
+ *
714
+ * The inline `overflow` shorthand can carry two values (`overflow: clip visible` → x, y). Some
715
+ * engines (jsdom) neither split that shorthand into `overflowX`/`overflowY` nor reflect it in the
716
+ * computed style, so the shorthand string is parsed directly. An inline value is only preferred when
717
+ * it is a concrete overflow keyword; a global keyword (`inherit`, `initial`, `revert`, `unset`) or
718
+ * any other non-concrete value falls back to the computed style, which resolves it to the real value
719
+ * (e.g. an inherited `auto`). Otherwise an inline `inherit` would be read literally and miss the
720
+ * scroll value it inherits.
721
+ *
722
+ * @param {HTMLElement} el The element to read overflow from.
723
+ * @param {CSSStyleDeclaration} computedStyle The element's computed style.
724
+ * @returns {{ x: string, y: string }}
725
+ */ function resolveOverflowAxes(el, computedStyle) {
726
+ const shorthand = el.style.overflow.split(/\s+/).filter(Boolean);
727
+ const [shorthandX = '', shorthandY = shorthandX] = shorthand;
728
+ const resolveAxis = (inlineAxis, shorthandAxis, computedProperty)=>{
729
+ const inline = inlineAxis || shorthandAxis;
730
+ return OVERFLOW_CONCRETE_VALUES.includes(inline) ? inline : computedStyle.getPropertyValue(computedProperty);
731
+ };
732
+ return {
733
+ x: resolveAxis(el.style.overflowX, shorthandX, 'overflow-x'),
734
+ y: resolveAxis(el.style.overflowY, shorthandY, 'overflow-y')
735
+ };
736
+ }
662
737
  /**
663
738
  * Returns a DOM element responsible for trimming the provided element.
664
739
  *
@@ -669,23 +744,13 @@ export function getScrollLeft(element, rootWindow = window) {
669
744
  const rootWindow = rootDocument.defaultView;
670
745
  let el = base.parentElement;
671
746
  while(el && el.style && rootDocument.body !== el){
672
- if (el.style.overflow !== 'visible' && el.style.overflow !== '') {
673
- return el;
674
- }
675
747
  if (rootWindow) {
676
- const computedStyle = rootWindow.getComputedStyle(el);
677
- const allowedProperties = [
678
- 'scroll',
679
- 'hidden',
680
- 'auto',
681
- 'clip'
682
- ];
683
- const property = computedStyle.getPropertyValue('overflow');
684
- const propertyY = computedStyle.getPropertyValue('overflow-y');
685
- const propertyX = computedStyle.getPropertyValue('overflow-x');
686
- if (allowedProperties.includes(property) || allowedProperties.includes(propertyY) || allowedProperties.includes(propertyX)) {
748
+ const { x, y } = resolveOverflowAxes(el, rootWindow.getComputedStyle(el));
749
+ if (overflowAxisTraps(x, y) || overflowAxisTraps(y, x)) {
687
750
  return el;
688
751
  }
752
+ } else if (el.style.overflow !== 'visible' && el.style.overflow !== '') {
753
+ return el;
689
754
  }
690
755
  el = el.parentElement;
691
756
  }
@@ -1027,7 +1092,7 @@ export function getScrollbarWidth(rootDocument = document) {
1027
1092
  *
1028
1093
  * @param {HTMLElement} element - DOM element.
1029
1094
  */ export function selectElementIfAllowed(element) {
1030
- const activeElement = element.ownerDocument.activeElement;
1095
+ const activeElement = getDeepActiveElement(element.ownerDocument);
1031
1096
  if (isHTMLElement(activeElement) && !isOutsideInput(activeElement) && (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement)) {
1032
1097
  element.select();
1033
1098
  }
@@ -1044,8 +1109,12 @@ export function getScrollbarWidth(rootDocument = document) {
1044
1109
  * Set up an observer to recognize when the provided element first becomes visible and trigger a callback when it
1045
1110
  * happens.
1046
1111
  *
1112
+ * The observer is returned so the caller can disconnect it earlier - a pending delivery carries the state from
1113
+ * the moment its snapshot was taken, so it can arrive after the observed element (or its owner) is gone.
1114
+ *
1047
1115
  * @param {HTMLElement} elementToBeObserved Element to be observed.
1048
1116
  * @param {Function} callback The callback function.
1117
+ * @returns {IntersectionObserver} The observer watching the element.
1049
1118
  */ export function observeVisibilityChangeOnce(elementToBeObserved, callback) {
1050
1119
  const visibilityObserver = new IntersectionObserver((entries, observer)=>{
1051
1120
  entries.forEach((entry)=>{
@@ -1056,6 +1125,7 @@ export function getScrollbarWidth(rootDocument = document) {
1056
1125
  });
1057
1126
  });
1058
1127
  visibilityObserver.observe(elementToBeObserved);
1128
+ return visibilityObserver;
1059
1129
  }
1060
1130
  /**
1061
1131
  * Add a `contenteditable` attribute, select the contents and optionally add the `invisibleSelection`
@@ -1141,10 +1211,49 @@ export function getScrollbarWidth(rootDocument = document) {
1141
1211
  /**
1142
1212
  * Check if the node is a ShadowRoot (a document fragment attached to a host element).
1143
1213
  *
1144
- * @param {Node} node Node to check.
1214
+ * @param {Node|EventTarget} node Node to check.
1145
1215
  * @returns {boolean} `true` if the node is a ShadowRoot.
1146
1216
  */ export function isShadowRoot(node) {
1147
- return node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && 'host' in node;
1217
+ if (typeof node !== 'object' || node === null) {
1218
+ return false;
1219
+ }
1220
+ return 'nodeType' in node && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && 'host' in node;
1221
+ }
1222
+ /**
1223
+ * Gets the chain of shadow host elements the node is rendered within, ordered from the
1224
+ * closest host outward to the host attached to the document.
1225
+ *
1226
+ * @param {Node} node The node to read the host chain from.
1227
+ * @returns {HTMLElement[]} The shadow host elements; empty when the node is not in a Shadow DOM tree.
1228
+ */ export function getShadowHostChain(node) {
1229
+ const hosts = [];
1230
+ let rootNode = node.getRootNode();
1231
+ while(isShadowRoot(rootNode)){
1232
+ const { host } = rootNode;
1233
+ if (!isHTMLElement(host)) {
1234
+ break;
1235
+ }
1236
+ hosts.push(host);
1237
+ rootNode = host.getRootNode();
1238
+ }
1239
+ return hosts;
1240
+ }
1241
+ /**
1242
+ * Gets the deepest active (focused) element in the document. When the focus is inside
1243
+ * a Shadow DOM tree, `document.activeElement` points at the shadow host instead of the
1244
+ * focused element. This helper descends through the open shadow roots and returns
1245
+ * the element that actually holds the focus.
1246
+ *
1247
+ * @param {Document} rootDocument The document to read the active element from.
1248
+ * @returns {Element|null} The deepest focused element. The browser reports `document.body`
1249
+ * when no other element holds the focus; `null` appears only in edge cases such as
1250
+ * a document with no body.
1251
+ */ export function getDeepActiveElement(rootDocument) {
1252
+ let element = rootDocument.activeElement;
1253
+ while(element?.shadowRoot?.activeElement){
1254
+ element = element.shadowRoot.activeElement;
1255
+ }
1256
+ return element;
1148
1257
  }
1149
1258
  /**
1150
1259
  * Gets a child node at the specified index cast to the specified HTML element type.
@@ -39,6 +39,64 @@ export declare function isMiddleClick(event: Event): boolean;
39
39
  * @returns {boolean}
40
40
  */
41
41
  export declare function isTouchEvent(event: Event): boolean;
42
+ /**
43
+ * One finger, as a touch event reports it.
44
+ */
45
+ export interface TouchPoint {
46
+ identifier: number;
47
+ clientX: number;
48
+ clientY: number;
49
+ }
50
+ /**
51
+ * A DOM event that carries touch lists.
52
+ *
53
+ * `touches` is every finger currently on the screen, in the order they were placed. `changedTouches`
54
+ * is only the fingers this particular event is about - the ones that landed, moved, lifted or were
55
+ * cancelled.
56
+ */
57
+ export interface TouchListEvent extends Event {
58
+ touches: ArrayLike<TouchPoint>;
59
+ changedTouches: ArrayLike<TouchPoint>;
60
+ }
61
+ /**
62
+ * Narrows a DOM event to one that carries touch lists.
63
+ *
64
+ * Detects them by property rather than with `instanceof TouchEvent`, so it also holds for an event
65
+ * that crossed an iframe boundary - every frame has its own `TouchEvent` constructor - and on
66
+ * desktop Safari, which does not expose `TouchEvent` at all. Use `isTouchEvent` when you need the
67
+ * stricter same-frame check instead.
68
+ *
69
+ * @param {Event} event The event object.
70
+ * @returns {boolean} `true` when the event carries touch lists.
71
+ */
72
+ export declare function hasTouchList(event: Event): event is TouchListEvent;
73
+ /**
74
+ * Reads the finger a touch event is about - the first of its `changedTouches`.
75
+ *
76
+ * Use this on `touchstart` to learn which finger began a gesture, and keep the returned
77
+ * `identifier` to follow that same finger through `getTouchPointById()`. Reading `touches[0]`
78
+ * instead would give the first finger placed *anywhere* on the screen, which is a different finger
79
+ * as soon as one was already resting there.
80
+ *
81
+ * @param {Event} event The event object.
82
+ * @returns {object|null} The finger as `{identifier, clientX, clientY}`, or `null` when the event
83
+ * carries no touch lists or names no changed finger.
84
+ */
85
+ export declare function getFirstChangedTouch(event: Event): TouchPoint | null;
86
+ /**
87
+ * Reads where one specific finger currently is.
88
+ *
89
+ * Looks the finger up in `touches`, which holds only the fingers still on the screen. A `null`
90
+ * result therefore answers two questions at once: where is my finger, and is it still down? That is
91
+ * what makes it the right test for ending a gesture on `touchend` and `touchcancel` - both fire once
92
+ * per finger, so "some finger lifted" is never the same question as "my finger lifted".
93
+ *
94
+ * @param {Event} event The event object.
95
+ * @param {number} identifier The `Touch.identifier` to look for.
96
+ * @returns {object|null} The finger as `{identifier, clientX, clientY}`, matching
97
+ * `getFirstChangedTouch()`, or `null` when it is no longer touching the screen.
98
+ */
99
+ export declare function getTouchPointById(event: Event, identifier: number): TouchPoint | null;
42
100
  /**
43
101
  * Calculates the event offset until reaching the element defined by `relativeElement` argument.
44
102
  *
@@ -9,6 +9,15 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
+ get getFirstChangedTouch () {
13
+ return getFirstChangedTouch;
14
+ },
15
+ get getTouchPointById () {
16
+ return getTouchPointById;
17
+ },
18
+ get hasTouchList () {
19
+ return hasTouchList;
20
+ },
12
21
  get isImmediatePropagationStopped () {
13
22
  return isImmediatePropagationStopped;
14
23
  },
@@ -51,6 +60,36 @@ function isMiddleClick(event) {
51
60
  function isTouchEvent(event) {
52
61
  return typeof TouchEvent !== 'undefined' && event instanceof TouchEvent;
53
62
  }
63
+ function hasTouchList(event) {
64
+ return 'touches' in event && 'changedTouches' in event;
65
+ }
66
+ function getFirstChangedTouch(event) {
67
+ if (!hasTouchList(event) || event.changedTouches.length === 0) {
68
+ return null;
69
+ }
70
+ const { identifier, clientX, clientY } = event.changedTouches[0];
71
+ return {
72
+ identifier,
73
+ clientX,
74
+ clientY
75
+ };
76
+ }
77
+ function getTouchPointById(event, identifier) {
78
+ if (!hasTouchList(event)) {
79
+ return null;
80
+ }
81
+ for(let i = 0; i < event.touches.length; i++){
82
+ const touch = event.touches[i];
83
+ if (touch.identifier === identifier) {
84
+ return {
85
+ identifier: touch.identifier,
86
+ clientX: touch.clientX,
87
+ clientY: touch.clientY
88
+ };
89
+ }
90
+ }
91
+ return null;
92
+ }
54
93
  function offsetRelativeTo(event, untilElement) {
55
94
  const offset = {
56
95
  x: event.offsetX,
@@ -47,6 +47,69 @@ import { eventTargetEl, isHTMLElement } from './element.mjs';
47
47
  */ export function isTouchEvent(event) {
48
48
  return typeof TouchEvent !== 'undefined' && event instanceof TouchEvent;
49
49
  }
50
+ /**
51
+ * Narrows a DOM event to one that carries touch lists.
52
+ *
53
+ * Detects them by property rather than with `instanceof TouchEvent`, so it also holds for an event
54
+ * that crossed an iframe boundary - every frame has its own `TouchEvent` constructor - and on
55
+ * desktop Safari, which does not expose `TouchEvent` at all. Use `isTouchEvent` when you need the
56
+ * stricter same-frame check instead.
57
+ *
58
+ * @param {Event} event The event object.
59
+ * @returns {boolean} `true` when the event carries touch lists.
60
+ */ export function hasTouchList(event) {
61
+ return 'touches' in event && 'changedTouches' in event;
62
+ }
63
+ /**
64
+ * Reads the finger a touch event is about - the first of its `changedTouches`.
65
+ *
66
+ * Use this on `touchstart` to learn which finger began a gesture, and keep the returned
67
+ * `identifier` to follow that same finger through `getTouchPointById()`. Reading `touches[0]`
68
+ * instead would give the first finger placed *anywhere* on the screen, which is a different finger
69
+ * as soon as one was already resting there.
70
+ *
71
+ * @param {Event} event The event object.
72
+ * @returns {object|null} The finger as `{identifier, clientX, clientY}`, or `null` when the event
73
+ * carries no touch lists or names no changed finger.
74
+ */ export function getFirstChangedTouch(event) {
75
+ if (!hasTouchList(event) || event.changedTouches.length === 0) {
76
+ return null;
77
+ }
78
+ const { identifier, clientX, clientY } = event.changedTouches[0];
79
+ return {
80
+ identifier,
81
+ clientX,
82
+ clientY
83
+ };
84
+ }
85
+ /**
86
+ * Reads where one specific finger currently is.
87
+ *
88
+ * Looks the finger up in `touches`, which holds only the fingers still on the screen. A `null`
89
+ * result therefore answers two questions at once: where is my finger, and is it still down? That is
90
+ * what makes it the right test for ending a gesture on `touchend` and `touchcancel` - both fire once
91
+ * per finger, so "some finger lifted" is never the same question as "my finger lifted".
92
+ *
93
+ * @param {Event} event The event object.
94
+ * @param {number} identifier The `Touch.identifier` to look for.
95
+ * @returns {object|null} The finger as `{identifier, clientX, clientY}`, matching
96
+ * `getFirstChangedTouch()`, or `null` when it is no longer touching the screen.
97
+ */ export function getTouchPointById(event, identifier) {
98
+ if (!hasTouchList(event)) {
99
+ return null;
100
+ }
101
+ for(let i = 0; i < event.touches.length; i++){
102
+ const touch = event.touches[i];
103
+ if (touch.identifier === identifier) {
104
+ return {
105
+ identifier: touch.identifier,
106
+ clientX: touch.clientX,
107
+ clientY: touch.clientY
108
+ };
109
+ }
110
+ }
111
+ return null;
112
+ }
50
113
  /**
51
114
  * Calculates the event offset until reaching the element defined by `relativeElement` argument.
52
115
  *
@@ -0,0 +1 @@
1
+ export * from './inputOrigin.js';
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Helpers that tell where an input event came from. Deliberately NOT re-exported through
3
+ * `Handsontable.dom` (see `src/index.ts`): the detection is a browser-quirk heuristic that may
4
+ * change, so it stays internal.
5
+ */
6
+ /**
7
+ * How long (ms) after a touch gesture the browser-synthesized `mousedown`/`mouseup`/`click`
8
+ * sequence is still expected when the engine does not report the input origin (WebKit,
9
+ * Firefox). Shared by Walkontable's mouse listeners and TableView's outside-click handling so
10
+ * both layers use the same fallback window.
11
+ *
12
+ * Ceiling, not a target: Walkontable drops only the first `mousedown`/`mouseup` pair after a tap
13
+ * (see `#synthesizedPairPending`), so the constant only bounds how long that pair may take to
14
+ * arrive; browsers deliver it within a few hundred milliseconds, which this value covers with
15
+ * margin. On engines that do not report the input origin (WebKit, Firefox) a real mouse event
16
+ * that arrives inside the ceiling BEFORE the synthesized pair — e.g. a first tap on an unselected
17
+ * cell is `preventDefault`-ed and synthesizes nothing, so the pair never comes — is still
18
+ * dropped: that includes a fill-handle grab or a drag-selection started with a mouse or trackpad
19
+ * within half a second of such a tap. A pair that straddles the ceiling yields one unpaired
20
+ * `mouseup` (the `mousedown` is dropped, the `mouseup` is processed and clears the pending pair).
21
+ * Besides a first tap on an unselected cell, a long-press synthesizes no pair either, so the
22
+ * pending pair stays armed for the same ceiling after it.
23
+ */
24
+ export declare const TOUCH_SYNTHESIZED_MOUSE_WINDOW = 500;
25
+ /**
26
+ * Returns whether a mouse event was synthesized from a touch gesture, as reported by the browser
27
+ * (`sourceCapabilities.firesTouchEvents`, Blink only) — `true`/`false` when reported, `undefined`
28
+ * when the engine does not tell (WebKit, Firefox, script-dispatched events). Browsers that fire
29
+ * touch events synthesize a `mousedown`/`mouseup`/`click` sequence after `touchend` for
30
+ * compatibility. Only Blink exposes the origin; WebKit and Firefox do not, and script-dispatched
31
+ * events carry `null`. In those cases the function returns `undefined` so the caller can fall back
32
+ * to a timing heuristic.
33
+ *
34
+ * @param {Event} event The mouse event object.
35
+ * @returns {boolean|undefined} `true` when synthesized from touch, `false` when it comes from a
36
+ * non-touch device, `undefined` when the browser does not tell.
37
+ */
38
+ export declare function getMouseEventTouchOrigin(event: Event): boolean | undefined;