handsontable 18.0.0 → 18.1.0-rc7

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 (1128) 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 +25 -12
  78. package/3rdparty/walkontable/src/event.js +91 -224
  79. package/3rdparty/walkontable/src/event.mjs +90 -224
  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 +114 -1
  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 +30027 -11261
  343. package/dist/handsontable.full.min.js +168 -112
  344. package/dist/handsontable.js +32468 -13762
  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/errors.d.ts +5 -0
  435. package/helpers/errors.js +10 -6
  436. package/helpers/errors.mjs +10 -6
  437. package/helpers/feature.d.ts +19 -0
  438. package/helpers/feature.js +21 -0
  439. package/helpers/feature.mjs +30 -0
  440. package/helpers/function.d.ts +1 -1
  441. package/helpers/function.js +4 -1
  442. package/helpers/function.mjs +4 -1
  443. package/helpers/mixed.d.ts +103 -0
  444. package/helpers/mixed.js +373 -4
  445. package/helpers/mixed.mjs +413 -4
  446. package/helpers/moves.js +2 -1
  447. package/helpers/moves.mjs +2 -1
  448. package/helpers/number.d.ts +22 -0
  449. package/helpers/number.js +49 -0
  450. package/helpers/number.mjs +66 -0
  451. package/helpers/string.d.ts +14 -10
  452. package/helpers/string.js +17 -9
  453. package/helpers/string.mjs +27 -17
  454. package/helpers/templateString.d.mts +1 -0
  455. package/helpers/templateString.d.ts +13 -0
  456. package/helpers/templateString.js +29 -0
  457. package/helpers/templateString.mjs +19 -0
  458. package/helpers/uiButton.d.mts +1 -0
  459. package/helpers/uiButton.d.ts +21 -0
  460. package/helpers/uiButton.js +37 -0
  461. package/helpers/uiButton.mjs +31 -0
  462. package/i18n/languages/fa-IR.d.ts +1 -0
  463. package/i18n/languages/fa-IR.js +1 -0
  464. package/i18n/languages/fa-IR.mjs +1 -0
  465. package/index.d.ts +3 -3
  466. package/languages/all.js +2 -1
  467. package/languages/fa-IR.js +2 -1
  468. package/languages/fa-IR.mjs +1 -0
  469. package/languages/index.js +2 -1
  470. package/package.json +61 -1
  471. package/plugins/autoColumnSize/autoColumnSize.d.ts +24 -1
  472. package/plugins/autoColumnSize/autoColumnSize.js +501 -82
  473. package/plugins/autoColumnSize/autoColumnSize.mjs +508 -83
  474. package/plugins/autoRowSize/autoRowSize.d.ts +40 -5
  475. package/plugins/autoRowSize/autoRowSize.js +68 -24
  476. package/plugins/autoRowSize/autoRowSize.mjs +98 -29
  477. package/plugins/autofill/autofill.js +30 -12
  478. package/plugins/autofill/autofill.mjs +30 -12
  479. package/plugins/base/base.d.ts +10 -0
  480. package/plugins/collapsibleColumns/collapsibleColumns.d.ts +4 -0
  481. package/plugins/collapsibleColumns/collapsibleColumns.js +89 -8
  482. package/plugins/collapsibleColumns/collapsibleColumns.mjs +93 -8
  483. package/plugins/columnSorting/columnSorting.d.ts +31 -2
  484. package/plugins/columnSorting/columnSorting.js +151 -24
  485. package/plugins/columnSorting/columnSorting.mjs +153 -26
  486. package/plugins/columnSorting/columnStatesManager.d.ts +1 -1
  487. package/plugins/columnSorting/columnStatesManager.js +1 -7
  488. package/plugins/columnSorting/columnStatesManager.mjs +1 -7
  489. package/plugins/columnSorting/domHelpers.d.ts +3 -0
  490. package/plugins/columnSorting/domHelpers.js +9 -0
  491. package/plugins/columnSorting/domHelpers.mjs +3 -3
  492. package/plugins/columnSorting/rootComparator.js +21 -16
  493. package/plugins/columnSorting/rootComparator.mjs +21 -16
  494. package/plugins/columnSorting/sortFunction/checkbox.js +7 -5
  495. package/plugins/columnSorting/sortFunction/checkbox.mjs +7 -5
  496. package/plugins/columnSorting/sortFunction/default.js +15 -4
  497. package/plugins/columnSorting/sortFunction/default.mjs +15 -4
  498. package/plugins/columnSorting/sortFunction/intlDatetime.d.mts +1 -0
  499. package/plugins/columnSorting/sortFunction/intlDatetime.d.ts +10 -0
  500. package/plugins/columnSorting/sortFunction/intlDatetime.js +23 -0
  501. package/plugins/columnSorting/sortFunction/intlDatetime.mjs +12 -0
  502. package/plugins/columnSorting/sortService/registry.js +2 -0
  503. package/plugins/columnSorting/sortService/registry.mjs +2 -0
  504. package/plugins/columnSorting/utils.d.ts +8 -0
  505. package/plugins/columnSorting/utils.js +37 -45
  506. package/plugins/columnSorting/utils.mjs +42 -47
  507. package/plugins/columnSummary/columnSummary.js +9 -5
  508. package/plugins/columnSummary/columnSummary.mjs +9 -5
  509. package/plugins/columnSummary/endpoints.d.ts +69 -2
  510. package/plugins/columnSummary/endpoints.js +181 -29
  511. package/plugins/columnSummary/endpoints.mjs +181 -29
  512. package/plugins/comments/commentEditor.js +1 -1
  513. package/plugins/comments/commentEditor.mjs +2 -2
  514. package/plugins/contextMenu/contextMenu.d.ts +12 -1
  515. package/plugins/contextMenu/contextMenu.js +30 -6
  516. package/plugins/contextMenu/contextMenu.mjs +30 -6
  517. package/plugins/contextMenu/index.d.ts +1 -1
  518. package/plugins/contextMenu/menu/menu.d.ts +22 -1
  519. package/plugins/contextMenu/menu/menu.js +211 -3
  520. package/plugins/contextMenu/menu/menu.mjs +212 -4
  521. package/plugins/contextMenu/menu/menuItemRenderer.js +2 -2
  522. package/plugins/contextMenu/menu/menuItemRenderer.mjs +2 -2
  523. package/plugins/contextMenu/predefinedItems/alignment.js +14 -14
  524. package/plugins/contextMenu/predefinedItems/alignment.mjs +14 -14
  525. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  526. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -1
  527. package/plugins/contextMenu/predefinedItems/readOnly.js +3 -3
  528. package/plugins/contextMenu/predefinedItems/readOnly.mjs +3 -3
  529. package/plugins/contextMenu/utils.js +1 -1
  530. package/plugins/contextMenu/utils.mjs +1 -1
  531. package/plugins/copyPaste/copyPaste.js +70 -16
  532. package/plugins/copyPaste/copyPaste.mjs +71 -17
  533. package/plugins/copyPaste/copyableRanges.js +6 -2
  534. package/plugins/copyPaste/copyableRanges.mjs +6 -2
  535. package/plugins/copyPaste/pasteEvent.d.ts +1 -1
  536. package/plugins/customBorders/customBorders.d.ts +21 -40
  537. package/plugins/customBorders/customBorders.js +1080 -201
  538. package/plugins/customBorders/customBorders.mjs +1082 -203
  539. package/plugins/customBorders/utils.d.ts +71 -0
  540. package/plugins/customBorders/utils.js +63 -0
  541. package/plugins/customBorders/utils.mjs +101 -0
  542. package/plugins/dataProvider/dataProvider.d.ts +2 -1
  543. package/plugins/dataProvider/dataProvider.js +22 -7
  544. package/plugins/dataProvider/dataProvider.mjs +22 -7
  545. package/plugins/dataProvider/query/crud.js +1 -1
  546. package/plugins/dataProvider/query/crud.mjs +1 -1
  547. package/plugins/dialog/dialog.js +14 -9
  548. package/plugins/dialog/dialog.mjs +14 -9
  549. package/plugins/dialog/templates/confirm.d.ts +1 -1
  550. package/plugins/dialog/templates/confirm.js +2 -1
  551. package/plugins/dialog/templates/confirm.mjs +2 -1
  552. package/plugins/dialog/ui.d.ts +5 -3
  553. package/plugins/dialog/ui.js +12 -4
  554. package/plugins/dialog/ui.mjs +12 -4
  555. package/plugins/dragToScroll/dragToScroll.d.ts +2 -2
  556. package/plugins/dragToScroll/dragToScroll.js +150 -14
  557. package/plugins/dragToScroll/dragToScroll.mjs +151 -15
  558. package/plugins/dropdownMenu/dropdownMenu.d.ts +5 -1
  559. package/plugins/dropdownMenu/dropdownMenu.js +45 -3
  560. package/plugins/dropdownMenu/dropdownMenu.mjs +46 -4
  561. package/plugins/dropdownMenu/index.d.ts +1 -0
  562. package/plugins/emptyDataState/emptyDataState.js +4 -6
  563. package/plugins/emptyDataState/emptyDataState.mjs +4 -6
  564. package/plugins/emptyDataState/ui.js +2 -1
  565. package/plugins/emptyDataState/ui.mjs +2 -1
  566. package/plugins/exportFile/dataProvider.js +7 -9
  567. package/plugins/exportFile/dataProvider.mjs +7 -9
  568. package/plugins/exportFile/exportFile.d.ts +10 -3
  569. package/plugins/exportFile/types/_base.js +4 -10
  570. package/plugins/exportFile/types/_base.mjs +4 -10
  571. package/plugins/exportFile/types/xlsx/cell-style.js +4 -2
  572. package/plugins/exportFile/types/xlsx/cell-style.mjs +4 -2
  573. package/plugins/exportFile/types/xlsx/date-utils.d.ts +15 -0
  574. package/plugins/exportFile/types/xlsx/date-utils.js +31 -0
  575. package/plugins/exportFile/types/xlsx/date-utils.mjs +36 -0
  576. package/plugins/exportFile/types/xlsx.js +13 -9
  577. package/plugins/exportFile/types/xlsx.mjs +14 -10
  578. package/plugins/exportFile/utils.d.ts +9 -1
  579. package/plugins/exportFile/utils.js +27 -4
  580. package/plugins/exportFile/utils.mjs +40 -2
  581. package/plugins/filters/component/_base.d.ts +1 -2
  582. package/plugins/filters/component/_base.js +1 -2
  583. package/plugins/filters/component/_base.mjs +1 -2
  584. package/plugins/filters/component/condition.d.ts +1 -0
  585. package/plugins/filters/component/condition.js +2 -0
  586. package/plugins/filters/component/condition.mjs +2 -0
  587. package/plugins/filters/component/value.d.ts +5 -6
  588. package/plugins/filters/component/value.js +53 -34
  589. package/plugins/filters/component/value.mjs +54 -35
  590. package/plugins/filters/condition/date/after.js +2 -1
  591. package/plugins/filters/condition/date/after.mjs +2 -1
  592. package/plugins/filters/condition/date/afterOrEqual.js +2 -1
  593. package/plugins/filters/condition/date/afterOrEqual.mjs +2 -1
  594. package/plugins/filters/condition/date/before.js +2 -1
  595. package/plugins/filters/condition/date/before.mjs +2 -1
  596. package/plugins/filters/condition/date/beforeOrEqual.js +2 -1
  597. package/plugins/filters/condition/date/beforeOrEqual.mjs +2 -1
  598. package/plugins/filters/condition/equal.d.ts +7 -0
  599. package/plugins/filters/condition/equal.js +4 -0
  600. package/plugins/filters/condition/equal.mjs +10 -0
  601. package/plugins/filters/condition/intlDatetime/after.d.mts +1 -0
  602. package/plugins/filters/condition/intlDatetime/after.d.ts +18 -0
  603. package/plugins/filters/condition/intlDatetime/after.js +77 -0
  604. package/plugins/filters/condition/intlDatetime/after.mjs +22 -0
  605. package/plugins/filters/condition/intlDatetime/afterOrEqual.d.mts +1 -0
  606. package/plugins/filters/condition/intlDatetime/afterOrEqual.d.ts +18 -0
  607. package/plugins/filters/condition/intlDatetime/afterOrEqual.js +77 -0
  608. package/plugins/filters/condition/intlDatetime/afterOrEqual.mjs +22 -0
  609. package/plugins/filters/condition/intlDatetime/before.d.mts +1 -0
  610. package/plugins/filters/condition/intlDatetime/before.d.ts +18 -0
  611. package/plugins/filters/condition/intlDatetime/before.js +77 -0
  612. package/plugins/filters/condition/intlDatetime/before.mjs +22 -0
  613. package/plugins/filters/condition/intlDatetime/beforeOrEqual.d.mts +1 -0
  614. package/plugins/filters/condition/intlDatetime/beforeOrEqual.d.ts +18 -0
  615. package/plugins/filters/condition/intlDatetime/beforeOrEqual.js +77 -0
  616. package/plugins/filters/condition/intlDatetime/beforeOrEqual.mjs +22 -0
  617. package/plugins/filters/condition/intlDatetime/between.d.mts +1 -0
  618. package/plugins/filters/condition/intlDatetime/between.d.ts +18 -0
  619. package/plugins/filters/condition/intlDatetime/between.js +78 -0
  620. package/plugins/filters/condition/intlDatetime/between.mjs +23 -0
  621. package/plugins/filters/condition/intlDatetime/today.d.mts +1 -0
  622. package/plugins/filters/condition/intlDatetime/today.d.ts +17 -0
  623. package/plugins/filters/condition/intlDatetime/today.js +76 -0
  624. package/plugins/filters/condition/intlDatetime/today.mjs +20 -0
  625. package/plugins/filters/condition/intlDatetime/tomorrow.d.mts +1 -0
  626. package/plugins/filters/condition/intlDatetime/tomorrow.d.ts +17 -0
  627. package/plugins/filters/condition/intlDatetime/tomorrow.js +77 -0
  628. package/plugins/filters/condition/intlDatetime/tomorrow.mjs +21 -0
  629. package/plugins/filters/condition/intlDatetime/yesterday.d.mts +1 -0
  630. package/plugins/filters/condition/intlDatetime/yesterday.d.ts +17 -0
  631. package/plugins/filters/condition/intlDatetime/yesterday.js +77 -0
  632. package/plugins/filters/condition/intlDatetime/yesterday.mjs +21 -0
  633. package/plugins/filters/conditionCollection.js +4 -7
  634. package/plugins/filters/conditionCollection.mjs +4 -7
  635. package/plugins/filters/conditionUpdateObserver.d.ts +2 -2
  636. package/plugins/filters/conditionUpdateObserver.js +148 -49
  637. package/plugins/filters/conditionUpdateObserver.mjs +148 -49
  638. package/plugins/filters/constants.d.ts +1 -0
  639. package/plugins/filters/constants.js +31 -0
  640. package/plugins/filters/constants.mjs +28 -0
  641. package/plugins/filters/dataFilter.d.ts +4 -12
  642. package/plugins/filters/dataFilter.js +7 -19
  643. package/plugins/filters/dataFilter.mjs +8 -20
  644. package/plugins/filters/filters.d.ts +33 -9
  645. package/plugins/filters/filters.js +91 -31
  646. package/plugins/filters/filters.mjs +92 -32
  647. package/plugins/filters/sortComparators.d.ts +9 -2
  648. package/plugins/filters/sortComparators.js +34 -1
  649. package/plugins/filters/sortComparators.mjs +38 -3
  650. package/plugins/filters/ui/input.d.ts +4 -0
  651. package/plugins/filters/ui/input.js +18 -6
  652. package/plugins/filters/ui/input.mjs +18 -6
  653. package/plugins/filters/ui/multipleSelect.js +27 -4
  654. package/plugins/filters/ui/multipleSelect.mjs +27 -4
  655. package/plugins/filters/ui/select.js +1 -1
  656. package/plugins/filters/ui/select.mjs +1 -1
  657. package/plugins/formulas/engine/register.d.ts +5 -4
  658. package/plugins/formulas/engine/register.js +5 -2
  659. package/plugins/formulas/engine/register.mjs +9 -5
  660. package/plugins/formulas/engine/settings.d.ts +2 -6
  661. package/plugins/formulas/engine/settings.js +29 -4
  662. package/plugins/formulas/engine/settings.mjs +29 -4
  663. package/plugins/formulas/engine/types.d.ts +12 -2
  664. package/plugins/formulas/formulas.d.ts +39 -0
  665. package/plugins/formulas/formulas.js +789 -47
  666. package/plugins/formulas/formulas.mjs +793 -49
  667. package/plugins/formulas/hyperlinkUrl.d.mts +1 -0
  668. package/plugins/formulas/hyperlinkUrl.d.ts +12 -0
  669. package/plugins/formulas/hyperlinkUrl.js +32 -0
  670. package/plugins/formulas/hyperlinkUrl.mjs +32 -0
  671. package/plugins/formulas/indexSyncer/axisSyncer.d.ts +1 -0
  672. package/plugins/formulas/indexSyncer/axisSyncer.js +72 -15
  673. package/plugins/formulas/indexSyncer/axisSyncer.mjs +72 -15
  674. package/plugins/formulas/utils.d.ts +9 -0
  675. package/plugins/formulas/utils.js +21 -0
  676. package/plugins/formulas/utils.mjs +25 -0
  677. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +6 -1
  678. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +6 -1
  679. package/plugins/hiddenColumns/hiddenColumns.js +6 -3
  680. package/plugins/hiddenColumns/hiddenColumns.mjs +6 -3
  681. package/plugins/hiddenRows/contextMenuItem/showRow.js +6 -1
  682. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +6 -1
  683. package/plugins/hiddenRows/hiddenRows.js +6 -3
  684. package/plugins/hiddenRows/hiddenRows.mjs +6 -3
  685. package/plugins/index.d.ts +5 -1
  686. package/plugins/index.js +10 -0
  687. package/plugins/index.mjs +5 -1
  688. package/plugins/loading/content.d.ts +5 -3
  689. package/plugins/loading/content.js +3 -2
  690. package/plugins/loading/content.mjs +8 -5
  691. package/plugins/loading/loading.d.ts +5 -2
  692. package/plugins/loading/loading.mjs +5 -2
  693. package/plugins/manualColumnMove/manualColumnMove.d.ts +10 -0
  694. package/plugins/manualColumnMove/manualColumnMove.js +122 -20
  695. package/plugins/manualColumnMove/manualColumnMove.mjs +123 -21
  696. package/plugins/manualColumnResize/manualColumnResize.d.ts +20 -7
  697. package/plugins/manualColumnResize/manualColumnResize.js +33 -13
  698. package/plugins/manualColumnResize/manualColumnResize.mjs +34 -14
  699. package/plugins/manualRowResize/manualRowResize.d.ts +21 -8
  700. package/plugins/manualRowResize/manualRowResize.js +34 -14
  701. package/plugins/manualRowResize/manualRowResize.mjs +35 -15
  702. package/plugins/mergeCells/cellCoords.d.ts +8 -0
  703. package/plugins/mergeCells/cellCoords.js +11 -0
  704. package/plugins/mergeCells/cellCoords.mjs +11 -0
  705. package/plugins/mergeCells/cellsCollection.d.ts +46 -2
  706. package/plugins/mergeCells/cellsCollection.js +189 -68
  707. package/plugins/mergeCells/cellsCollection.mjs +189 -68
  708. package/plugins/mergeCells/focusOrder.d.ts +26 -20
  709. package/plugins/mergeCells/focusOrder.js +358 -177
  710. package/plugins/mergeCells/focusOrder.mjs +363 -172
  711. package/plugins/mergeCells/mergeCells.d.ts +13 -8
  712. package/plugins/mergeCells/mergeCells.js +322 -64
  713. package/plugins/mergeCells/mergeCells.mjs +322 -64
  714. package/plugins/moveCells/helpers.d.mts +1 -0
  715. package/plugins/moveCells/helpers.d.ts +21 -0
  716. package/plugins/moveCells/helpers.js +20 -0
  717. package/plugins/moveCells/helpers.mjs +15 -0
  718. package/plugins/moveCells/index.d.mts +1 -0
  719. package/plugins/moveCells/index.d.ts +1 -0
  720. package/plugins/moveCells/index.js +22 -0
  721. package/plugins/moveCells/index.mjs +1 -0
  722. package/plugins/moveCells/moveCells.d.mts +1 -0
  723. package/plugins/moveCells/moveCells.d.ts +80 -0
  724. package/plugins/moveCells/moveCells.js +602 -0
  725. package/plugins/moveCells/moveCells.mjs +587 -0
  726. package/plugins/multiColumnSorting/multiColumnSorting.d.ts +8 -8
  727. package/plugins/multiColumnSorting/multiColumnSorting.js +11 -16
  728. package/plugins/multiColumnSorting/multiColumnSorting.mjs +11 -16
  729. package/plugins/multiColumnSorting/rootComparator.js +26 -19
  730. package/plugins/multiColumnSorting/rootComparator.mjs +26 -19
  731. package/plugins/multipleSelectionHandles/multipleSelectionHandles.d.ts +19 -4
  732. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +273 -58
  733. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +273 -58
  734. package/plugins/nestedHeaders/nestedHeaders.d.ts +10 -1
  735. package/plugins/nestedHeaders/nestedHeaders.js +222 -23
  736. package/plugins/nestedHeaders/nestedHeaders.mjs +222 -23
  737. package/plugins/nestedHeaders/stateManager/columnArrangement.d.mts +1 -0
  738. package/plugins/nestedHeaders/stateManager/columnArrangement.d.ts +37 -0
  739. package/plugins/nestedHeaders/stateManager/columnArrangement.js +35 -0
  740. package/plugins/nestedHeaders/stateManager/columnArrangement.mjs +30 -0
  741. package/plugins/nestedHeaders/stateManager/deriveSettings.d.mts +1 -0
  742. package/plugins/nestedHeaders/stateManager/deriveSettings.d.ts +57 -0
  743. package/plugins/nestedHeaders/stateManager/deriveSettings.js +115 -0
  744. package/plugins/nestedHeaders/stateManager/deriveSettings.mjs +135 -0
  745. package/plugins/nestedHeaders/stateManager/headersTree.d.ts +14 -1
  746. package/plugins/nestedHeaders/stateManager/index.d.ts +76 -13
  747. package/plugins/nestedHeaders/stateManager/index.js +381 -38
  748. package/plugins/nestedHeaders/stateManager/index.mjs +382 -39
  749. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +3 -2
  750. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +3 -2
  751. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -1
  752. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -1
  753. package/plugins/nestedHeaders/stateManager/sourceSettings.d.ts +23 -6
  754. package/plugins/nestedHeaders/stateManager/sourceSettings.js +20 -4
  755. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +20 -4
  756. package/plugins/nestedHeaders/stateManager/utils.d.ts +17 -1
  757. package/plugins/nestedHeaders/stateManager/utils.js +6 -1
  758. package/plugins/nestedHeaders/stateManager/utils.mjs +6 -1
  759. package/plugins/nestedHeaders/utils/ghostTable.js +21 -8
  760. package/plugins/nestedHeaders/utils/ghostTable.mjs +21 -8
  761. package/plugins/nestedRows/data/dataManager.d.ts +4 -1
  762. package/plugins/nestedRows/data/dataManager.js +10 -4
  763. package/plugins/nestedRows/data/dataManager.mjs +10 -4
  764. package/plugins/nestedRows/nestedRows.d.ts +127 -1
  765. package/plugins/nestedRows/nestedRows.js +330 -8
  766. package/plugins/nestedRows/nestedRows.mjs +330 -8
  767. package/plugins/nestedRows/ui/collapsing.d.ts +58 -0
  768. package/plugins/nestedRows/ui/collapsing.js +236 -40
  769. package/plugins/nestedRows/ui/collapsing.mjs +236 -40
  770. package/plugins/notification/notification.d.ts +2 -1
  771. package/plugins/notification/notification.js +6 -3
  772. package/plugins/notification/notification.mjs +6 -3
  773. package/plugins/notification/ui.d.ts +8 -5
  774. package/plugins/notification/ui.js +18 -6
  775. package/plugins/notification/ui.mjs +18 -6
  776. package/plugins/pagination/pagination.js +2 -2
  777. package/plugins/pagination/pagination.mjs +2 -2
  778. package/plugins/search/search.js +23 -2
  779. package/plugins/search/search.mjs +23 -2
  780. package/plugins/selectionHandles/helpers.d.mts +1 -0
  781. package/plugins/selectionHandles/helpers.d.ts +17 -0
  782. package/plugins/selectionHandles/helpers.js +16 -0
  783. package/plugins/selectionHandles/helpers.mjs +11 -0
  784. package/plugins/selectionHandles/index.d.mts +1 -0
  785. package/plugins/selectionHandles/index.d.ts +1 -0
  786. package/plugins/selectionHandles/index.js +22 -0
  787. package/plugins/selectionHandles/index.mjs +1 -0
  788. package/plugins/selectionHandles/selectionHandles.d.mts +1 -0
  789. package/plugins/selectionHandles/selectionHandles.d.ts +52 -0
  790. package/plugins/selectionHandles/selectionHandles.js +342 -0
  791. package/plugins/selectionHandles/selectionHandles.mjs +323 -0
  792. package/plugins/trimRows/trimRows.d.ts +1 -1
  793. package/plugins/trimRows/trimRows.js +6 -2
  794. package/plugins/trimRows/trimRows.mjs +6 -2
  795. package/plugins/types.d.ts +4 -0
  796. package/plugins/undoRedo/actions/cellAlignment.js +1 -1
  797. package/plugins/undoRedo/actions/cellAlignment.mjs +1 -1
  798. package/plugins/undoRedo/actions/createColumn.js +4 -1
  799. package/plugins/undoRedo/actions/createColumn.mjs +4 -1
  800. package/plugins/undoRedo/actions/createRow.js +4 -1
  801. package/plugins/undoRedo/actions/createRow.mjs +4 -1
  802. package/plugins/undoRedo/actions/fixedCounts.d.mts +1 -0
  803. package/plugins/undoRedo/actions/fixedCounts.d.ts +36 -0
  804. package/plugins/undoRedo/actions/fixedCounts.js +63 -0
  805. package/plugins/undoRedo/actions/fixedCounts.mjs +62 -0
  806. package/plugins/undoRedo/actions/index.js +2 -0
  807. package/plugins/undoRedo/actions/index.mjs +2 -0
  808. package/plugins/undoRedo/actions/moveCells.d.mts +1 -0
  809. package/plugins/undoRedo/actions/moveCells.d.ts +104 -0
  810. package/plugins/undoRedo/actions/moveCells.js +225 -0
  811. package/plugins/undoRedo/actions/moveCells.mjs +227 -0
  812. package/plugins/undoRedo/actions/removeColumn.d.ts +18 -2
  813. package/plugins/undoRedo/actions/removeColumn.js +11 -4
  814. package/plugins/undoRedo/actions/removeColumn.mjs +12 -5
  815. package/plugins/undoRedo/actions/removeRow.js +2 -57
  816. package/plugins/undoRedo/actions/removeRow.mjs +2 -57
  817. package/plugins/undoRedo/undoRedo.d.ts +26 -0
  818. package/plugins/undoRedo/undoRedo.js +36 -2
  819. package/plugins/undoRedo/undoRedo.mjs +36 -2
  820. package/plugins/undoRedo/utils.d.ts +29 -0
  821. package/plugins/undoRedo/utils.js +55 -3
  822. package/plugins/undoRedo/utils.mjs +59 -0
  823. package/renderSizeProbe.d.mts +1 -0
  824. package/renderSizeProbe.d.ts +60 -0
  825. package/renderSizeProbe.js +163 -0
  826. package/renderSizeProbe.mjs +176 -0
  827. package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
  828. package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
  829. package/renderers/index.d.ts +3 -2
  830. package/renderers/index.js +8 -0
  831. package/renderers/index.mjs +3 -1
  832. package/renderers/intlDatetimeRenderer/index.d.mts +1 -0
  833. package/renderers/intlDatetimeRenderer/index.d.ts +1 -0
  834. package/renderers/intlDatetimeRenderer/index.js +22 -0
  835. package/renderers/intlDatetimeRenderer/index.mjs +1 -0
  836. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.d.mts +1 -0
  837. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.d.ts +26 -0
  838. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.js +82 -0
  839. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.mjs +67 -0
  840. package/renderers/multiSelectRenderer/multiSelectRenderer.js +2 -3
  841. package/renderers/multiSelectRenderer/multiSelectRenderer.mjs +2 -3
  842. package/renderers/multiSelectRenderer/utils/utils.d.ts +1 -1
  843. package/renderers/multiSelectRenderer/utils/utils.js +11 -8
  844. package/renderers/multiSelectRenderer/utils/utils.mjs +11 -8
  845. package/renderers/passwordRenderer/passwordRenderer.js +6 -1
  846. package/renderers/passwordRenderer/passwordRenderer.mjs +6 -1
  847. package/renderers/renderCell.d.mts +1 -0
  848. package/renderers/renderCell.d.ts +37 -0
  849. package/renderers/renderCell.js +43 -0
  850. package/renderers/renderCell.mjs +48 -0
  851. package/selection/highlight/types/areaLayered.d.ts +3 -1
  852. package/selection/highlight/types/areaLayered.js +4 -2
  853. package/selection/highlight/types/areaLayered.mjs +6 -2
  854. package/selection/highlight/types/focus.d.ts +3 -1
  855. package/selection/highlight/types/focus.js +3 -2
  856. package/selection/highlight/types/focus.mjs +5 -2
  857. package/selection/mouseEventHandler.js +29 -26
  858. package/selection/mouseEventHandler.mjs +29 -26
  859. package/selection/moveCells.d.mts +1 -0
  860. package/selection/moveCells.d.ts +15 -0
  861. package/selection/moveCells.js +13 -0
  862. package/selection/moveCells.mjs +9 -0
  863. package/selection/selection.d.ts +56 -2
  864. package/selection/selection.js +149 -5
  865. package/selection/selection.mjs +149 -5
  866. package/selection/types.d.ts +3 -0
  867. package/settings.d.ts +24 -3
  868. package/shortcuts/context.d.ts +4 -0
  869. package/shortcuts/context.js +16 -8
  870. package/shortcuts/context.mjs +20 -8
  871. package/shortcuts/contexts/commands/populateSelectedCellsData.js +1 -1
  872. package/shortcuts/contexts/commands/populateSelectedCellsData.mjs +1 -1
  873. package/styles/handsontable.css +504 -158
  874. package/styles/handsontable.min.css +4 -4
  875. package/styles/handsontableStyles.d.mts +2 -0
  876. package/styles/handsontableStyles.d.ts +2 -0
  877. package/styles/handsontableStyles.js +1 -1
  878. package/styles/handsontableStyles.mjs +1 -1
  879. package/styles/ht-icons-horizon.css +1 -10
  880. package/styles/ht-icons-horizon.min.css +4 -4
  881. package/styles/ht-icons-main.css +1 -10
  882. package/styles/ht-icons-main.min.css +4 -4
  883. package/styles/ht-theme-classic-no-icons.css +6 -0
  884. package/styles/ht-theme-classic-no-icons.min.css +4 -4
  885. package/styles/ht-theme-classic.css +7 -10
  886. package/styles/ht-theme-classic.min.css +4 -4
  887. package/styles/ht-theme-horizon-no-icons.css +6 -0
  888. package/styles/ht-theme-horizon-no-icons.min.css +4 -4
  889. package/styles/ht-theme-horizon.css +7 -10
  890. package/styles/ht-theme-horizon.min.css +4 -4
  891. package/styles/ht-theme-main-no-icons.css +6 -0
  892. package/styles/ht-theme-main-no-icons.min.css +4 -4
  893. package/styles/ht-theme-main.css +7 -10
  894. package/styles/ht-theme-main.min.css +4 -4
  895. package/tableView.d.ts +17 -4
  896. package/tableView.js +208 -42
  897. package/tableView.mjs +209 -43
  898. package/themes/engine/index.d.ts +2 -1
  899. package/themes/engine/index.js +3 -0
  900. package/themes/engine/index.mjs +1 -1
  901. package/themes/engine/manager.d.ts +75 -3
  902. package/themes/engine/manager.js +242 -6
  903. package/themes/engine/manager.mjs +249 -6
  904. package/themes/engine/utils/cssVariables.d.ts +18 -1
  905. package/themes/engine/utils/cssVariables.js +27 -11
  906. package/themes/engine/utils/cssVariables.mjs +28 -11
  907. package/themes/engine/utils/validation.js +7 -0
  908. package/themes/engine/utils/validation.mjs +7 -0
  909. package/themes/static/variables/helpers/iconsMap.js +1 -6
  910. package/themes/static/variables/helpers/iconsMap.mjs +1 -6
  911. package/themes/static/variables/tokens/classic.js +6 -0
  912. package/themes/static/variables/tokens/classic.mjs +6 -0
  913. package/themes/static/variables/tokens/horizon.js +6 -0
  914. package/themes/static/variables/tokens/horizon.mjs +6 -0
  915. package/themes/static/variables/tokens/main.js +6 -0
  916. package/themes/static/variables/tokens/main.mjs +6 -0
  917. package/themes/types.d.ts +1 -1
  918. package/translations/indexMapper.d.ts +14 -9
  919. package/translations/indexMapper.js +104 -43
  920. package/translations/indexMapper.mjs +104 -43
  921. package/translations/mapCollections/aggregatedCollection.js +20 -35
  922. package/translations/mapCollections/aggregatedCollection.mjs +20 -35
  923. package/translations/mapCollections/mapCollection.d.ts +10 -4
  924. package/translations/mapCollections/mapCollection.js +2 -2
  925. package/translations/mapCollections/mapCollection.mjs +2 -2
  926. package/translations/maps/booleanMap.d.mts +1 -0
  927. package/translations/maps/booleanMap.d.ts +86 -0
  928. package/translations/maps/booleanMap.js +300 -0
  929. package/translations/maps/booleanMap.mjs +308 -0
  930. package/translations/maps/hidingMap.d.ts +5 -2
  931. package/translations/maps/hidingMap.js +8 -3
  932. package/translations/maps/hidingMap.mjs +8 -3
  933. package/translations/maps/index.d.ts +5 -2
  934. package/translations/maps/index.js +7 -3
  935. package/translations/maps/index.mjs +10 -2
  936. package/translations/maps/indexMap.d.ts +26 -2
  937. package/translations/maps/indexMap.js +78 -6
  938. package/translations/maps/indexMap.mjs +78 -6
  939. package/translations/maps/indexesSequence.d.ts +53 -2
  940. package/translations/maps/indexesSequence.js +225 -3
  941. package/translations/maps/indexesSequence.mjs +233 -3
  942. package/translations/maps/trimmingMap.d.ts +5 -2
  943. package/translations/maps/trimmingMap.js +8 -3
  944. package/translations/maps/trimmingMap.mjs +8 -3
  945. package/translations/maps/utils/actionsOnIndexes.js +20 -1
  946. package/translations/maps/utils/actionsOnIndexes.mjs +20 -1
  947. package/translations/maps/utils/indexesSequence.js +12 -3
  948. package/translations/maps/utils/indexesSequence.mjs +12 -3
  949. package/translations/maps/utils/physicallyIndexed.js +12 -1
  950. package/translations/maps/utils/physicallyIndexed.mjs +12 -1
  951. package/utils/entitlementLicenseKey/classify.d.mts +1 -0
  952. package/utils/entitlementLicenseKey/classify.d.ts +34 -0
  953. package/utils/entitlementLicenseKey/classify.js +97 -0
  954. package/utils/entitlementLicenseKey/classify.mjs +96 -0
  955. package/utils/entitlementLicenseKey/constants.d.mts +1 -0
  956. package/utils/entitlementLicenseKey/constants.d.ts +69 -0
  957. package/utils/entitlementLicenseKey/constants.js +54 -0
  958. package/utils/entitlementLicenseKey/constants.mjs +66 -0
  959. package/utils/entitlementLicenseKey/detectFormat.d.mts +1 -0
  960. package/utils/entitlementLicenseKey/detectFormat.d.ts +23 -0
  961. package/utils/entitlementLicenseKey/detectFormat.js +60 -0
  962. package/utils/entitlementLicenseKey/detectFormat.mjs +60 -0
  963. package/utils/entitlementLicenseKey/encoding.d.mts +1 -0
  964. package/utils/entitlementLicenseKey/encoding.d.ts +58 -0
  965. package/utils/entitlementLicenseKey/encoding.js +161 -0
  966. package/utils/entitlementLicenseKey/encoding.mjs +172 -0
  967. package/utils/entitlementLicenseKey/extractKeyData.d.mts +1 -0
  968. package/utils/entitlementLicenseKey/extractKeyData.d.ts +47 -0
  969. package/utils/entitlementLicenseKey/extractKeyData.js +213 -0
  970. package/utils/entitlementLicenseKey/extractKeyData.mjs +232 -0
  971. package/utils/entitlementLicenseKey/grants.d.mts +1 -0
  972. package/utils/entitlementLicenseKey/grants.d.ts +54 -0
  973. package/utils/entitlementLicenseKey/grants.js +68 -0
  974. package/utils/entitlementLicenseKey/grants.mjs +84 -0
  975. package/utils/entitlementLicenseKey/index.d.mts +1 -0
  976. package/utils/entitlementLicenseKey/index.d.ts +8 -0
  977. package/utils/entitlementLicenseKey/index.js +53 -0
  978. package/utils/entitlementLicenseKey/index.mjs +6 -0
  979. package/utils/entitlementLicenseKey/sha512.d.mts +1 -0
  980. package/utils/entitlementLicenseKey/sha512.d.ts +11 -0
  981. package/utils/entitlementLicenseKey/sha512.js +328 -0
  982. package/utils/entitlementLicenseKey/sha512.mjs +327 -0
  983. package/utils/entitlementLicenseKey/types.d.mts +1 -0
  984. package/utils/entitlementLicenseKey/types.d.ts +84 -0
  985. package/utils/entitlementLicenseKey/types.js +8 -0
  986. package/utils/entitlementLicenseKey/types.mjs +10 -0
  987. package/utils/ghostTable.d.ts +1 -0
  988. package/utils/ghostTable.js +60 -11
  989. package/utils/ghostTable.mjs +60 -11
  990. package/utils/licenseBranding/badge.d.mts +1 -0
  991. package/utils/licenseBranding/badge.d.ts +21 -0
  992. package/utils/licenseBranding/badge.js +237 -0
  993. package/utils/licenseBranding/badge.mjs +244 -0
  994. package/utils/licenseBranding/content.d.mts +1 -0
  995. package/utils/licenseBranding/content.d.ts +54 -0
  996. package/utils/licenseBranding/content.js +93 -0
  997. package/utils/licenseBranding/content.mjs +79 -0
  998. package/utils/licenseBranding/index.d.mts +1 -0
  999. package/utils/licenseBranding/index.d.ts +14 -0
  1000. package/utils/licenseBranding/index.js +55 -0
  1001. package/utils/licenseBranding/index.mjs +56 -0
  1002. package/utils/licenseBranding/lockScreen.d.mts +1 -0
  1003. package/utils/licenseBranding/lockScreen.d.ts +23 -0
  1004. package/utils/licenseBranding/lockScreen.js +150 -0
  1005. package/utils/licenseBranding/lockScreen.mjs +159 -0
  1006. package/utils/licenseNotification.d.ts +19 -0
  1007. package/utils/licenseNotification.js +56 -29
  1008. package/utils/licenseNotification.mjs +61 -29
  1009. package/utils/movableMeta.d.mts +1 -0
  1010. package/utils/movableMeta.d.ts +40 -0
  1011. package/utils/movableMeta.js +47 -0
  1012. package/utils/movableMeta.mjs +46 -0
  1013. package/utils/parseTable.js +16 -7
  1014. package/utils/parseTable.mjs +16 -7
  1015. package/utils/samplesGenerator.d.ts +41 -14
  1016. package/utils/samplesGenerator.js +114 -42
  1017. package/utils/samplesGenerator.mjs +114 -42
  1018. package/utils/sanitizer.d.mts +1 -0
  1019. package/utils/sanitizer.d.ts +47 -0
  1020. package/utils/sanitizer.js +43 -0
  1021. package/utils/sanitizer.mjs +55 -0
  1022. package/utils/stylesHandler.d.ts +13 -0
  1023. package/utils/stylesHandler.js +55 -2
  1024. package/utils/stylesHandler.mjs +55 -2
  1025. package/validators/autocompleteValidator/autocompleteValidator.js +3 -0
  1026. package/validators/autocompleteValidator/autocompleteValidator.mjs +3 -0
  1027. package/validators/index.d.ts +3 -2
  1028. package/validators/index.js +8 -0
  1029. package/validators/index.mjs +3 -1
  1030. package/validators/intlDatetimeValidator/index.d.mts +1 -0
  1031. package/validators/intlDatetimeValidator/index.d.ts +1 -0
  1032. package/validators/intlDatetimeValidator/index.js +25 -0
  1033. package/validators/intlDatetimeValidator/index.mjs +1 -0
  1034. package/validators/intlDatetimeValidator/intlDatetimeValidator.d.mts +1 -0
  1035. package/validators/intlDatetimeValidator/intlDatetimeValidator.d.ts +28 -0
  1036. package/validators/intlDatetimeValidator/intlDatetimeValidator.js +49 -0
  1037. package/validators/intlDatetimeValidator/intlDatetimeValidator.mjs +37 -0
  1038. package/3rdparty/walkontable/src/overlay/bottom.d.mts +0 -1
  1039. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.d.mts +0 -1
  1040. package/3rdparty/walkontable/src/overlay/inlineStart.d.mts +0 -1
  1041. package/3rdparty/walkontable/src/overlay/top.d.mts +0 -1
  1042. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.d.mts +0 -1
  1043. package/3rdparty/walkontable/src/overlays.d.ts +0 -329
  1044. package/3rdparty/walkontable/src/overlays.js +0 -870
  1045. package/3rdparty/walkontable/src/overlays.mjs +0 -860
  1046. package/3rdparty/walkontable/src/renderer/table.d.mts +0 -1
  1047. package/3rdparty/walkontable/src/renderer/table.js +0 -229
  1048. package/3rdparty/walkontable/src/settings.d.mts +0 -2
  1049. package/3rdparty/walkontable/src/settings.js +0 -196
  1050. package/3rdparty/walkontable/src/settings.mjs +0 -263
  1051. package/3rdparty/walkontable/src/table/bottom.d.mts +0 -2
  1052. package/3rdparty/walkontable/src/table/bottom.d.ts +0 -19
  1053. package/3rdparty/walkontable/src/table/bottom.js +0 -38
  1054. package/3rdparty/walkontable/src/table/bottom.mjs +0 -23
  1055. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.d.mts +0 -2
  1056. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.d.ts +0 -20
  1057. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +0 -24
  1058. package/3rdparty/walkontable/src/table/inlineStart.d.mts +0 -2
  1059. package/3rdparty/walkontable/src/table/inlineStart.d.ts +0 -16
  1060. package/3rdparty/walkontable/src/table/inlineStart.js +0 -35
  1061. package/3rdparty/walkontable/src/table/inlineStart.mjs +0 -20
  1062. package/3rdparty/walkontable/src/table/master.d.mts +0 -2
  1063. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.d.mts +0 -2
  1064. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.d.ts +0 -75
  1065. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -122
  1066. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -112
  1067. package/3rdparty/walkontable/src/table/mixin/calculatedRows.d.mts +0 -2
  1068. package/3rdparty/walkontable/src/table/mixin/calculatedRows.d.ts +0 -75
  1069. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -122
  1070. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -112
  1071. package/3rdparty/walkontable/src/table/top.d.mts +0 -2
  1072. package/3rdparty/walkontable/src/table/top.d.ts +0 -19
  1073. package/3rdparty/walkontable/src/table/top.js +0 -38
  1074. package/3rdparty/walkontable/src/table/top.mjs +0 -23
  1075. package/3rdparty/walkontable/src/table/topInlineStartCorner.d.mts +0 -2
  1076. package/3rdparty/walkontable/src/table/topInlineStartCorner.d.ts +0 -20
  1077. package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +0 -24
  1078. package/3rdparty/walkontable/src/table.d.mts +0 -2
  1079. package/3rdparty/walkontable/src/table.d.ts +0 -741
  1080. package/3rdparty/walkontable/src/table.js +0 -1120
  1081. package/3rdparty/walkontable/src/table.mjs +0 -1105
  1082. package/3rdparty/walkontable/src/utils/cellCoords.d.mts +0 -1
  1083. package/3rdparty/walkontable/src/utils/cellCoords.js +0 -54
  1084. package/3rdparty/walkontable/src/utils/cellCoords.mjs +0 -54
  1085. package/3rdparty/walkontable/src/utils/column.d.mts +0 -2
  1086. package/3rdparty/walkontable/src/utils/column.js +0 -75
  1087. package/3rdparty/walkontable/src/utils/column.mjs +0 -70
  1088. package/3rdparty/walkontable/src/utils/positionCache.d.mts +0 -1
  1089. package/3rdparty/walkontable/src/utils/positionCache.d.ts +0 -91
  1090. package/3rdparty/walkontable/src/utils/positionCache.js +0 -193
  1091. package/3rdparty/walkontable/src/utils/positionCache.mjs +0 -194
  1092. package/3rdparty/walkontable/src/utils/row.d.mts +0 -2
  1093. package/3rdparty/walkontable/src/utils/row.js +0 -46
  1094. package/3rdparty/walkontable/src/utils/row.mjs +0 -41
  1095. package/3rdparty/walkontable/src/viewport.d.ts +0 -254
  1096. package/3rdparty/walkontable/src/viewport.js +0 -533
  1097. package/3rdparty/walkontable/src/viewport.mjs +0 -523
  1098. /package/3rdparty/walkontable/src/{renderer → axisSizing/positionCache}/index.d.mts +0 -0
  1099. /package/3rdparty/walkontable/src/{overlays.d.mts → overlay/overlays.d.mts} +0 -0
  1100. /package/3rdparty/walkontable/src/overlay/{_base.d.mts → regions/_base.d.mts} +0 -0
  1101. /package/3rdparty/walkontable/src/{stickyScrollStrategy.d.mts → overlay/strategies/stickyScrollStrategy.d.mts} +0 -0
  1102. /package/3rdparty/walkontable/src/{renderer → render}/_base.d.mts +0 -0
  1103. /package/3rdparty/walkontable/src/{renderer → render}/_base.js +0 -0
  1104. /package/3rdparty/walkontable/src/{renderer → render}/_base.mjs +0 -0
  1105. /package/3rdparty/walkontable/src/{renderer → render}/cells.d.mts +0 -0
  1106. /package/3rdparty/walkontable/src/{renderer → render}/cells.d.ts +0 -0
  1107. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.d.mts +0 -0
  1108. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.d.ts +0 -0
  1109. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.js +0 -0
  1110. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.mjs +0 -0
  1111. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.d.mts +0 -0
  1112. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.d.ts +0 -0
  1113. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.js +0 -0
  1114. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.mjs +0 -0
  1115. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.d.mts +0 -0
  1116. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.d.mts +0 -0
  1117. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.d.ts +0 -0
  1118. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.js +0 -0
  1119. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.mjs +0 -0
  1120. /package/3rdparty/walkontable/src/{renderer → render}/rows.d.mts +0 -0
  1121. /package/3rdparty/walkontable/src/{renderer → render}/rows.d.ts +0 -0
  1122. /package/3rdparty/walkontable/src/{scroll.d.mts → scroll/scroll.d.mts} +0 -0
  1123. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.d.mts +0 -0
  1124. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.d.mts +0 -0
  1125. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.js +0 -0
  1126. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.mjs +0 -0
  1127. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.d.mts +0 -0
  1128. /package/3rdparty/walkontable/src/{viewport.d.mts → viewport/viewport.d.mts} +0 -0
@@ -1,1105 +0,0 @@
1
- import { hasClass, index, isHTMLElement, isHTMLTableCellElement, offset, removeTextNodes, overlayContainsElement, closest, outerHeight, outerWidth, innerHeight, isVisible, setAttribute } from '../../../helpers/dom/element.mjs';
2
- import ColumnFilter from './filter/column.mjs';
3
- import RowFilter from './filter/row.mjs';
4
- import { Renderer } from './renderer/index.mjs';
5
- import ColumnUtils from './utils/column.mjs';
6
- import RowUtils from './utils/row.mjs';
7
- import { CLONE_TOP, CLONE_BOTTOM, CLONE_INLINE_START, CLONE_TOP_INLINE_START_CORNER, CLONE_BOTTOM_INLINE_START_CORNER } from './overlay/index.mjs';
8
- import { A11Y_PRESENTATION, A11Y_TABINDEX } from '../../../helpers/a11y.mjs';
9
- import { throwWithCause } from '../../../helpers/errors.mjs';
10
- /**
11
- * @todo These mixes are never added to the class Table, however their members are used here.
12
- * @todo Continue: Potentially it works only, because some of these mixes are added to every inherited class.
13
- * @todo Refactoring, move code from `if(this.isMaster)` into MasterTable, and others like that.
14
- * @mixes stickyColumnsStart
15
- * @mixes stickyRowsBottom
16
- * @mixes stickyRowsTop
17
- * @mixes calculatedRows
18
- * @mixes calculatedColumns
19
- * @abstract
20
- */ class Table {
21
- // Methods defined in subclass MasterTable but called from Table via `this.isMaster` guards.
22
- /**
23
- * Aligns overlays with the trimming container.
24
- *
25
- * @returns {void}
26
- */ alignOverlaysWithTrimmingContainer() {}
27
- /**
28
- * Marks oversized column headers.
29
- *
30
- * @returns {void}
31
- */ markOversizedColumnHeaders() {}
32
- /**
33
- * Returns a boolean that is true if this Table represents a specific overlay, identified by the overlay name.
34
- * For MasterTable, it returns false.
35
- *
36
- * @param {string} overlayTypeName The overlay type.
37
- * @returns {boolean}
38
- */ is(overlayTypeName) {
39
- return this.name === overlayTypeName;
40
- }
41
- /**
42
- *
43
- */ fixTableDomTree() {
44
- const rootDocument = this.domBindings.rootDocument;
45
- this.TBODY = this.TABLE.querySelector('tbody');
46
- if (!this.TBODY) {
47
- this.TBODY = rootDocument.createElement('tbody');
48
- this.TABLE.appendChild(this.TBODY);
49
- }
50
- this.THEAD = this.TABLE.querySelector('thead');
51
- if (!this.THEAD) {
52
- this.THEAD = rootDocument.createElement('thead');
53
- this.TABLE.insertBefore(this.THEAD, this.TBODY);
54
- }
55
- this.COLGROUP = this.TABLE.querySelector('colgroup');
56
- if (!this.COLGROUP) {
57
- this.COLGROUP = rootDocument.createElement('colgroup');
58
- this.TABLE.insertBefore(this.COLGROUP, this.THEAD);
59
- }
60
- }
61
- /**
62
- * @param {HTMLTableElement} table An element to process.
63
- * @returns {HTMLElement}
64
- */ createSpreader(table) {
65
- const parent = table.parentNode;
66
- let spreader;
67
- if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !isHTMLElement(parent) || !hasClass(parent, 'wtHolder')) {
68
- spreader = this.domBindings.rootDocument.createElement('div');
69
- spreader.className = 'wtSpreader';
70
- if (parent) {
71
- // if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it
72
- table.before(spreader);
73
- }
74
- spreader.appendChild(table);
75
- }
76
- if (spreader) {
77
- spreader.style.position = 'relative';
78
- if (this.wtSettings.getSetting('ariaTags')) {
79
- setAttribute(spreader, [
80
- A11Y_PRESENTATION()
81
- ]);
82
- }
83
- }
84
- return spreader;
85
- }
86
- /**
87
- * @param {HTMLElement} spreader An element to the hider element is injected.
88
- * @returns {HTMLElement}
89
- */ createHider(spreader) {
90
- const parent = spreader.parentNode;
91
- let hider;
92
- if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !isHTMLElement(parent) || !hasClass(parent, 'wtHolder')) {
93
- hider = this.domBindings.rootDocument.createElement('div');
94
- hider.className = 'wtHider';
95
- if (parent) {
96
- // if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it
97
- spreader.before(hider);
98
- }
99
- hider.appendChild(spreader);
100
- }
101
- if (hider && this.wtSettings.getSetting('ariaTags')) {
102
- setAttribute(hider, [
103
- A11Y_PRESENTATION()
104
- ]);
105
- }
106
- return hider;
107
- }
108
- /**
109
- *
110
- * @param {HTMLElement} hider An element to the holder element is injected.
111
- * @returns {HTMLElement}
112
- */ createHolder(hider) {
113
- const parent = hider.parentNode;
114
- let holder;
115
- if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !isHTMLElement(parent) || !hasClass(parent, 'wtHolder')) {
116
- holder = this.domBindings.rootDocument.createElement('div');
117
- holder.style.position = 'relative';
118
- holder.className = 'wtHolder';
119
- if (this.isMaster) {
120
- setAttribute(holder, [
121
- A11Y_TABINDEX(-1)
122
- ]);
123
- }
124
- if (parent) {
125
- // if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it
126
- hider.before(holder);
127
- }
128
- if (this.isMaster) {
129
- const holderParent = holder.parentNode;
130
- // holderParent is null when TABLE is detached (e.g. in Jasmine tests); skip class assignment in that case.
131
- // isHTMLElement() is used instead of `instanceof HTMLElement` because the latter fails in
132
- // cross-frame contexts (e.g. when HoT is mounted inside an <iframe> via React portals):
133
- // the iframe's HTMLElement constructor !== the parent frame's HTMLElement.
134
- if (isHTMLElement(holderParent)) {
135
- holderParent.className += 'ht_master handsontable';
136
- holderParent.setAttribute('dir', this.wtSettings.getSettingPure('rtlMode') ? 'rtl' : 'ltr');
137
- if (this.wtSettings.getSetting('ariaTags')) {
138
- setAttribute(holderParent, [
139
- A11Y_PRESENTATION()
140
- ]);
141
- }
142
- }
143
- }
144
- holder.appendChild(hider);
145
- }
146
- if (holder && this.wtSettings.getSetting('ariaTags')) {
147
- setAttribute(holder, [
148
- A11Y_PRESENTATION()
149
- ]);
150
- }
151
- return holder;
152
- }
153
- /**
154
- * Redraws the table.
155
- *
156
- * @param {boolean} [fastDraw=false] If TRUE, will try to avoid full redraw and only update the border positions.
157
- * If FALSE or UNDEFINED, will perform a full redraw.
158
- * @returns {Table}
159
- */ draw(fastDraw = false) {
160
- const { wtSettings } = this;
161
- const { wtOverlays, wtViewport } = this.dataAccessObject;
162
- const totalRows = wtSettings.getSetting('totalRows');
163
- const totalColumns = wtSettings.getSetting('totalColumns');
164
- const rowHeaders = wtSettings.getSetting('rowHeaders');
165
- const rowHeadersCount = rowHeaders.length;
166
- const columnHeaders = wtSettings.getSetting('columnHeaders');
167
- const columnHeadersCount = columnHeaders.length;
168
- let runFastDraw = fastDraw;
169
- if (this.isMaster) {
170
- wtOverlays.beforeDraw();
171
- this.holderOffset = offset(this.holder);
172
- wtViewport.rowHeightCache.ensureBuilt();
173
- wtViewport.columnWidthCache.ensureBuilt();
174
- runFastDraw = wtViewport.createCalculators(runFastDraw);
175
- if (rowHeadersCount && !wtSettings.getSetting('fixedColumnsStart')) {
176
- const leftScrollPos = wtOverlays.inlineStartOverlay.getScrollPosition();
177
- const previousState = this.correctHeaderWidth;
178
- this.correctHeaderWidth = leftScrollPos !== 0;
179
- if (previousState !== this.correctHeaderWidth) {
180
- runFastDraw = false;
181
- }
182
- }
183
- }
184
- if (runFastDraw) {
185
- if (this.isMaster) {
186
- wtOverlays.refresh(true);
187
- // Fast (scroll) draws skip the full-render header-height pass below, so the master/top
188
- // header heights can drift against the frozen overlays during scrolling (a tall wrapped
189
- // frozen header that the master never renders). Re-sync here. The method is a cheap no-op
190
- // unless the grid has frozen columns with column headers, so non-frozen grids are unaffected.
191
- this.syncOversizedColumnHeadersWithFrozenOverlays();
192
- }
193
- } else {
194
- if (this.isMaster) {
195
- this.tableOffset = offset(this.TABLE);
196
- } else {
197
- this.tableOffset = this.dataAccessObject.parentTableOffset;
198
- }
199
- const startRow = Math.max(this.getFirstRenderedRow(), 0);
200
- const startColumn = Math.max(this.getFirstRenderedColumn(), 0);
201
- this.rowFilter = new RowFilter(startRow, wtSettings.getSetting('totalRows'), columnHeadersCount);
202
- this.columnFilter = new ColumnFilter(startColumn, wtSettings.getSetting('totalColumns'), rowHeadersCount);
203
- let performRedraw = true;
204
- // Only master table rendering can be skipped
205
- if (this.isMaster) {
206
- this.alignOverlaysWithTrimmingContainer(); // todo It calls method from child class (MasterTable).
207
- const skipRender = {};
208
- this.wtSettings.getSetting('beforeDraw', true, skipRender);
209
- performRedraw = skipRender.skipRender !== true;
210
- }
211
- if (performRedraw) {
212
- this.tableRenderer.setHeaderContentRenderers(rowHeaders, columnHeaders);
213
- if (this.is(CLONE_BOTTOM) || this.is(CLONE_BOTTOM_INLINE_START_CORNER)) {
214
- // do NOT render headers on the bottom or bottom-left corner overlay
215
- this.tableRenderer.setHeaderContentRenderers(rowHeaders, []);
216
- }
217
- this.resetOversizedRows();
218
- this.tableRenderer.setActiveOverlayName(this.name).setViewportSize(this.getRenderedRowsCount(), this.getRenderedColumnsCount()).setFilters(this.rowFilter, this.columnFilter).render();
219
- if (this.isMaster) {
220
- this.markOversizedColumnHeaders();
221
- }
222
- this.adjustColumnHeaderHeights();
223
- if (this.isMaster) {
224
- this.syncOversizedColumnHeadersWithDOM();
225
- }
226
- if (this.isMaster || this.is(CLONE_BOTTOM)) {
227
- this.markOversizedRows();
228
- }
229
- if (this.isMaster) {
230
- if (!this.wtSettings.getSetting('externalRowCalculator')) {
231
- wtViewport.rowHeightCache.ensureBuilt();
232
- wtViewport.columnWidthCache.ensureBuilt();
233
- wtViewport.createVisibleCalculators();
234
- }
235
- wtOverlays.refresh(false);
236
- this.syncOversizedColumnHeadersWithFrozenOverlays();
237
- wtOverlays.applyToDOM();
238
- this.wtSettings.getSetting('onDraw', true);
239
- } else if (this.is(CLONE_BOTTOM)) {
240
- this.dataAccessObject.cloneSource.wtOverlays.adjustElementsSize();
241
- }
242
- }
243
- }
244
- let positionChanged = false;
245
- if (this.isMaster) {
246
- positionChanged = wtOverlays.topOverlay.resetFixedPosition();
247
- if (wtOverlays.bottomOverlay.clone) {
248
- positionChanged = wtOverlays.bottomOverlay.resetFixedPosition() || positionChanged;
249
- }
250
- positionChanged = wtOverlays.inlineStartOverlay.resetFixedPosition() || positionChanged;
251
- if (wtOverlays.topInlineStartCornerOverlay) {
252
- wtOverlays.topInlineStartCornerOverlay.resetFixedPosition();
253
- }
254
- if (wtOverlays.bottomInlineStartCornerOverlay && wtOverlays.bottomInlineStartCornerOverlay.clone) {
255
- wtOverlays.bottomInlineStartCornerOverlay.resetFixedPosition();
256
- }
257
- }
258
- if (positionChanged) {
259
- // It refreshes the cells borders caused by a 1px shift (introduced by overlays which add or
260
- // remove `innerBorderTop` and `innerBorderInlineStart` CSS classes to the DOM element. This happens
261
- // when there is a switch between rendering from 0 to N rows/columns and vice versa).
262
- wtOverlays.refreshAll(); // `refreshAll()` internally already calls `refreshSelections()` method
263
- wtOverlays.adjustElementsSize();
264
- } else {
265
- this.dataAccessObject.selectionManager.setActiveOverlay(this.facadeGetter()).render(runFastDraw);
266
- }
267
- if (this.isMaster) {
268
- wtOverlays.afterDraw();
269
- }
270
- this.dataAccessObject.drawn = true;
271
- return this;
272
- }
273
- /**
274
- * @param {number} col The visual column index.
275
- */ markIfOversizedColumnHeader(col) {
276
- const sourceColIndex = this.columnFilter.renderedToSource(col);
277
- let level = this.wtSettings.getSetting('columnHeaders').length;
278
- const defaultRowHeight = this.wtSettings.getSetting('stylesHandler').getDefaultRowHeight();
279
- let previousColHeaderHeight;
280
- let currentHeader;
281
- let currentHeaderHeight;
282
- const columnHeaderHeightSetting = this.wtSettings.getSetting('columnHeaderHeight') || [];
283
- while(level){
284
- level -= 1;
285
- previousColHeaderHeight = this.getColumnHeaderHeight(level);
286
- currentHeader = this.getColumnHeader(sourceColIndex, level);
287
- if (!currentHeader) {
288
- continue;
289
- }
290
- currentHeaderHeight = innerHeight(currentHeader);
291
- if (!previousColHeaderHeight && defaultRowHeight < currentHeaderHeight || previousColHeaderHeight < currentHeaderHeight) {
292
- this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = currentHeaderHeight;
293
- }
294
- if (Array.isArray(columnHeaderHeightSetting)) {
295
- if (columnHeaderHeightSetting[level] !== null && columnHeaderHeightSetting[level] !== undefined) {
296
- this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level];
297
- }
298
- } else if (!isNaN(columnHeaderHeightSetting)) {
299
- this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting;
300
- }
301
- const headerHeightAtLevel = Array.isArray(columnHeaderHeightSetting) // eslint-disable-line max-len
302
- ? columnHeaderHeightSetting[level] ?? 0 : columnHeaderHeightSetting;
303
- if ((this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] ?? 0) < headerHeightAtLevel) {
304
- this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = headerHeightAtLevel;
305
- }
306
- }
307
- }
308
- /**
309
- *
310
- */ adjustColumnHeaderHeights() {
311
- const { wtSettings } = this;
312
- const children = this.THEAD.childNodes;
313
- const oversizedColumnHeaders = this.dataAccessObject.wtViewport.oversizedColumnHeaders;
314
- const columnHeaders = wtSettings.getSetting('columnHeaders');
315
- for(let i = 0, len = columnHeaders.length; i < len; i++){
316
- if (oversizedColumnHeaders[i]) {
317
- if (!children[i] || children[i].childNodes.length === 0) {
318
- return;
319
- }
320
- const firstChild = children[i].childNodes[0];
321
- if (isHTMLElement(firstChild)) {
322
- firstChild.style.height = `${oversizedColumnHeaders[i]}px`;
323
- }
324
- }
325
- }
326
- }
327
- /**
328
- * After the master table applies `oversizedColumnHeaders` via `adjustColumnHeaderHeights`,
329
- * the actual THEAD row heights may exceed the stored values when header content (e.g.,
330
- * wrapping text) pushes cells taller than the configured `columnHeaderHeight`. This method
331
- * re-reads the rendered THEAD row heights and updates `oversizedColumnHeaders` so that
332
- * overlay tables receive the correct values during their own `adjustColumnHeaderHeights`.
333
- */ syncOversizedColumnHeadersWithDOM() {
334
- const { wtSettings } = this;
335
- const children = this.THEAD.childNodes;
336
- const oversizedColumnHeaders = this.dataAccessObject.wtViewport.oversizedColumnHeaders;
337
- const columnHeaders = wtSettings.getSetting('columnHeaders');
338
- const borderCompensation = 1;
339
- for(let i = 0, len = columnHeaders.length; i < len; i++){
340
- if (!children[i] || !oversizedColumnHeaders[i]) {
341
- continue;
342
- }
343
- const child = children[i];
344
- const actualRowHeight = isHTMLElement(child) ? innerHeight(child) : 0;
345
- if (actualRowHeight > (oversizedColumnHeaders[i] ?? 0) + borderCompensation) {
346
- oversizedColumnHeaders[i] = actualRowHeight;
347
- }
348
- }
349
- }
350
- /**
351
- * Frozen column headers (e.g., with `white-space: normal`) are rendered only in the frozen
352
- * overlays, never in the master table's THEAD. When such a header is taller than the headers
353
- * of the scrollable columns, the master and top overlay THEADs render shorter than the corner
354
- * and inline-start overlays, so the frozen overlay body rows sit shifted against the master.
355
- * The gap can be sub-pixel: under browser zoom the frozen header content is a fraction of a
356
- * pixel taller than the applied height, and that fraction accumulates into a visible 1px shift.
357
- *
358
- * This method runs after the frozen overlays have rendered. It reads the corner overlay's
359
- * content-driven THEAD row heights with sub-pixel precision and forces the matching master and
360
- * top overlay header cells to the same height so every overlay THEAD ends up the same height
361
- * and the body rows stay pixel-aligned.
362
- *
363
- * It deliberately does NOT write to `wtViewport.oversizedColumnHeaders`. That cache is applied
364
- * back to the corner overlay on the next render; growing it here would inflate the corner cell,
365
- * which would then be re-measured taller, ratcheting the height up every render. Reading the
366
- * corner's natural (content-driven) height and only adjusting the master/top side keeps the
367
- * synchronization stable and lets the header shrink again when the content allows.
368
- */ syncOversizedColumnHeadersWithFrozenOverlays() {
369
- const { wtOverlays } = this.dataAccessObject;
370
- // Cheapest possible bail-out first: with no frozen columns the corner overlay is not cloned,
371
- // so the overwhelmingly common (non-frozen) grids pay only a couple of property reads per draw.
372
- const cornerClone = wtOverlays.topInlineStartCornerOverlay?.clone;
373
- if (!cornerClone?.wtTable?.THEAD) {
374
- return;
375
- }
376
- const columnHeaders = this.wtSettings.getSetting('columnHeaders');
377
- if (!columnHeaders.length) {
378
- return;
379
- }
380
- const cornerChildren = cornerClone.wtTable.THEAD.childNodes;
381
- const topClone = wtOverlays.topOverlay?.clone;
382
- const targetTheads = [
383
- this.THEAD,
384
- topClone?.wtTable?.THEAD
385
- ];
386
- // Sub-pixel tolerance to avoid rewriting heights on floating-point jitter while still
387
- // catching the fractional gaps (e.g. ~0.33px at 75% zoom) that read as a 1px shift.
388
- const epsilon = 0.1;
389
- for(let i = 0, len = columnHeaders.length; i < len; i++){
390
- const cornerChild = cornerChildren[i];
391
- if (!(cornerChild instanceof HTMLElement)) {
392
- continue;
393
- }
394
- const cornerRowHeight = cornerChild.getBoundingClientRect().height;
395
- targetTheads.forEach((thead)=>{
396
- const targetRow = thead?.childNodes[i];
397
- if (!(targetRow instanceof HTMLElement) || targetRow.childNodes.length === 0) {
398
- return;
399
- }
400
- const firstChild = targetRow.childNodes[0];
401
- if (!(firstChild instanceof HTMLElement)) {
402
- return;
403
- }
404
- if (Math.abs(targetRow.getBoundingClientRect().height - cornerRowHeight) > epsilon) {
405
- firstChild.style.height = `${cornerRowHeight}px`;
406
- }
407
- });
408
- }
409
- }
410
- /**
411
- * Resets cache of row heights. The cache should be cached for each render cycle in a case
412
- * when new cell values have content which increases/decreases cell height.
413
- */ resetOversizedRows() {
414
- const { wtSettings } = this;
415
- const { wtViewport } = this.dataAccessObject;
416
- if (!this.isMaster && !this.is(CLONE_BOTTOM)) {
417
- return;
418
- }
419
- if (!wtSettings.getSetting('externalRowCalculator')) {
420
- const rowsToRender = this.getRenderedRowsCount();
421
- // Reset the oversized row cache for rendered rows
422
- for(let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++){
423
- const sourceRow = this.rowFilter.renderedToSource(visibleRowIndex);
424
- if (wtViewport.oversizedRows && wtViewport.oversizedRows[sourceRow]) {
425
- wtViewport.oversizedRows[sourceRow] = undefined;
426
- }
427
- }
428
- }
429
- }
430
- /**
431
- * Get cell element at coords.
432
- * Negative coords.row or coords.col are used to retrieve header cells. If there are multiple header levels, the
433
- * negative value corresponds to the distance from the working area. For example, when there are 3 levels of column
434
- * headers, coords.col=-1 corresponds to the most inner header element, while coords.col=-3 corresponds to the
435
- * outmost header element.
436
- *
437
- * In case an element for the coords is not rendered, the method returns an error code.
438
- * To produce the error code, the input parameters are validated in the order in which they
439
- * are given. Thus, if both the row and the column coords are out of the rendered bounds,
440
- * the method returns the error code for the row.
441
- *
442
- * @param {CellCoords} coords The cell coordinates.
443
- * @returns {HTMLElement|number} HTMLElement on success or Number one of the exit codes on error:
444
- * -1 row before viewport
445
- * -2 row after viewport
446
- * -3 column before viewport
447
- * -4 column after viewport.
448
- */ getCell(coords) {
449
- if (coords.row === null || coords.col === null) {
450
- return -5;
451
- }
452
- let row = coords.row;
453
- let column = coords.col;
454
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
455
- const hookResult = this.wtSettings.getSetting('onModifyGetCellCoords', row, column, !this.isMaster, 'render');
456
- if (hookResult && Array.isArray(hookResult)) {
457
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
458
- [row, column] = hookResult;
459
- }
460
- if (this.isRowBeforeRenderedRows(row)) {
461
- // row before rendered rows
462
- return -1;
463
- } else if (this.isRowAfterRenderedRows(row)) {
464
- // row after rendered rows
465
- return -2;
466
- } else if (this.isColumnBeforeRenderedColumns(column)) {
467
- // column before rendered columns
468
- return -3;
469
- } else if (this.isColumnAfterRenderedColumns(column)) {
470
- // column after rendered columns
471
- return -4;
472
- }
473
- const TR = this.getRow(row);
474
- if (!TR && row >= 0) {
475
- throwWithCause('TR was expected to be rendered but is not');
476
- }
477
- const trElement = TR !== false ? TR : null;
478
- const TD = trElement?.childNodes[this.columnFilter.sourceColumnToVisibleRowHeadedColumn(column)];
479
- if (!TD && column >= 0) {
480
- throwWithCause('TD or TH was expected to be rendered but is not');
481
- }
482
- // TD is a TD/TH HTMLElement guaranteed by DOM structure. TypeScript cannot narrow ChildNode
483
- // to HTMLElement without instanceof, but adding a throw here would change the existing contract
484
- // for negative column (header) lookups where TD may be undefined.
485
- return TD;
486
- }
487
- /**
488
- * Get the DOM element of the row with the provided index.
489
- *
490
- * @param {number} rowIndex Row index.
491
- * @returns {HTMLTableRowElement|boolean} Return the row's DOM element or `false` if the row with the provided
492
- * index doesn't exist.
493
- */ getRow(rowIndex) {
494
- let renderedRowIndex = null;
495
- let parentElement = null;
496
- if (rowIndex < 0) {
497
- renderedRowIndex = this.rowFilter?.sourceRowToVisibleColHeadedRow(rowIndex);
498
- parentElement = this.THEAD;
499
- } else {
500
- renderedRowIndex = this.rowFilter?.sourceToRendered(rowIndex);
501
- parentElement = this.TBODY;
502
- }
503
- if (renderedRowIndex !== undefined && renderedRowIndex !== null && parentElement !== null) {
504
- if (parentElement.childNodes.length < renderedRowIndex + 1) {
505
- return false;
506
- } else {
507
- return parentElement.childNodes[renderedRowIndex];
508
- }
509
- }
510
- return false;
511
- }
512
- /**
513
- * GetColumnHeader.
514
- *
515
- * @param {number} col Column index.
516
- * @param {number} [level=0] Header level (0 = most distant to the table).
517
- * @returns {object} HTMLElement on success or undefined on error.
518
- */ getColumnHeader(col, level = 0) {
519
- const TR = this.THEAD.childNodes[level];
520
- const TH = TR?.childNodes[this.columnFilter.sourceColumnToVisibleRowHeadedColumn(col)];
521
- return isHTMLElement(TH) ? TH : undefined;
522
- }
523
- /**
524
- * Gets all columns headers (TH elements) from the table.
525
- *
526
- * @param {number} column A source column index.
527
- * @returns {HTMLTableCellElement[]}
528
- */ getColumnHeaders(column) {
529
- const THs = [];
530
- const visibleColumn = this.columnFilter.sourceColumnToVisibleRowHeadedColumn(column);
531
- this.THEAD.childNodes.forEach((TR)=>{
532
- const TH = TR.childNodes[visibleColumn];
533
- if (isHTMLTableCellElement(TH)) {
534
- THs.push(TH);
535
- }
536
- });
537
- return THs;
538
- }
539
- /**
540
- * GetRowHeader.
541
- *
542
- * @param {number} row Row index.
543
- * @param {number} [level=0] Header level (0 = most distant to the table).
544
- * @returns {HTMLElement} HTMLElement on success or Number one of the exit codes on error: `null table doesn't have
545
- * row headers`.
546
- */ getRowHeader(row, level = 0) {
547
- const rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
548
- if (level >= rowHeadersCount) {
549
- return undefined;
550
- }
551
- const renderedRow = this.rowFilter.sourceToRendered(row);
552
- const visibleRow = renderedRow < 0 ? this.rowFilter.sourceRowToVisibleColHeadedRow(row) : renderedRow;
553
- const parentElement = renderedRow < 0 ? this.THEAD : this.TBODY;
554
- const TR = parentElement?.childNodes[visibleRow];
555
- const TH = TR?.childNodes[level];
556
- return isHTMLElement(TH) ? TH : undefined;
557
- }
558
- /**
559
- * Gets all rows headers (TH elements) from the table.
560
- *
561
- * @param {number} row A source row index.
562
- * @returns {HTMLTableCellElement[]}
563
- */ getRowHeaders(row) {
564
- const THs = [];
565
- const rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
566
- for(let renderedRowIndex = 0; renderedRowIndex < rowHeadersCount; renderedRowIndex++){
567
- const TR = this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];
568
- const TH = TR?.childNodes[renderedRowIndex];
569
- if (TH) {
570
- THs.push(TH);
571
- }
572
- }
573
- return THs;
574
- }
575
- /**
576
- * Returns cell coords object for a given TD (or a child element of a TD element).
577
- *
578
- * @param {HTMLTableCellElement} TD A cell DOM element (or a child of one).
579
- * @returns {CellCoords|null} The coordinates of the provided TD element (or the closest TD element) or null, if the
580
- * provided element is not applicable.
581
- */ getCoords(TD) {
582
- let cellElement = TD;
583
- if (cellElement.nodeName !== 'TD' && cellElement.nodeName !== 'TH') {
584
- cellElement = closest(cellElement, [
585
- 'TD',
586
- 'TH'
587
- ]);
588
- }
589
- if (cellElement === null) {
590
- return null;
591
- }
592
- const TR = cellElement.parentNode;
593
- if (!TR) {
594
- return null;
595
- }
596
- const CONTAINER = TR.parentNode;
597
- if (!CONTAINER) {
598
- return null;
599
- }
600
- let row = isHTMLElement(TR) ? index(TR) : 0;
601
- let col = isHTMLTableCellElement(cellElement) ? cellElement.cellIndex : 0;
602
- if (overlayContainsElement(CLONE_TOP_INLINE_START_CORNER, cellElement, this.wtRootElement) || overlayContainsElement(CLONE_TOP, cellElement, this.wtRootElement)) {
603
- if (CONTAINER.nodeName === 'THEAD') {
604
- row -= CONTAINER.childNodes.length;
605
- }
606
- } else if (overlayContainsElement(CLONE_BOTTOM_INLINE_START_CORNER, cellElement, this.wtRootElement) || overlayContainsElement(CLONE_BOTTOM, cellElement, this.wtRootElement)) {
607
- const totalRows = this.wtSettings.getSetting('totalRows');
608
- row = totalRows - CONTAINER.childNodes.length + row;
609
- } else if (CONTAINER === this.THEAD) {
610
- row = this.rowFilter.visibleColHeadedRowToSourceRow(row);
611
- } else if (this.rowFilter) {
612
- row = this.rowFilter.renderedToSource(row);
613
- }
614
- if (overlayContainsElement(CLONE_TOP_INLINE_START_CORNER, cellElement, this.wtRootElement) || overlayContainsElement(CLONE_INLINE_START, cellElement, this.wtRootElement) || overlayContainsElement(CLONE_BOTTOM_INLINE_START_CORNER, cellElement, this.wtRootElement)) {
615
- col = this.columnFilter.offsettedTH(col);
616
- } else if (this.columnFilter) {
617
- col = this.columnFilter.visibleRowHeadedColumnToSourceColumn(col);
618
- }
619
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
620
- const hookResult = this.wtSettings.getSetting('onModifyGetCoordsElement', row, col);
621
- if (hookResult && Array.isArray(hookResult)) {
622
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
623
- [row, col] = hookResult;
624
- }
625
- return this.wot.createCellCoords(row, col);
626
- }
627
- /**
628
- * Check if any of the rendered rows is higher than expected, and if so, cache them.
629
- */ markOversizedRows() {
630
- if (this.wtSettings.getSetting('externalRowCalculator')) {
631
- return;
632
- }
633
- let rowCount = this.TBODY.childNodes.length;
634
- const stylesHandler = this.wtSettings.getSetting('stylesHandler');
635
- const expectedTableHeight = rowCount * stylesHandler.getDefaultRowHeight();
636
- const actualTableHeight = innerHeight(this.TBODY) - 1;
637
- const borderBoxSizing = stylesHandler.areCellsBorderBox();
638
- const rowHeightFn = borderBoxSizing ? outerHeight : innerHeight;
639
- const borderCompensation = borderBoxSizing ? 0 : 1;
640
- const firstRowBorderCompensation = borderBoxSizing ? 1 : 0;
641
- let previousRowHeight;
642
- let rowCurrentHeight;
643
- let sourceRowIndex;
644
- let currentTr;
645
- let rowHeader;
646
- if (expectedTableHeight === actualTableHeight && !this.wtSettings.getSetting('fixedRowsBottom')) {
647
- // If the actual table height equals rowCount * default single row height, no row is oversized -> no need to iterate over them
648
- return;
649
- }
650
- const { wtViewport } = this.dataAccessObject;
651
- let hasChanges = false;
652
- while(rowCount){
653
- rowCount -= 1;
654
- sourceRowIndex = this.rowFilter.renderedToSource(rowCount);
655
- previousRowHeight = this.getRowHeight(sourceRowIndex);
656
- currentTr = this.getTrForRow(sourceRowIndex);
657
- rowHeader = currentTr.querySelector('th');
658
- // Use the rendered row index (rowCount === 0 is always the first <tr> in this tbody),
659
- // not the source row index (which would be wrong for clones whose first rendered row
660
- // has a different source index). Any tbody's first <tr> gets border-top: 1px from the
661
- // tr:first-child CSS rule, so the compensation applies regardless of source identity.
662
- const topBorderCompensation = rowCount === 0 ? firstRowBorderCompensation : 0;
663
- if (rowHeader) {
664
- rowCurrentHeight = rowHeightFn(rowHeader);
665
- } else {
666
- rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
667
- }
668
- if (!previousRowHeight && stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight !== undefined && previousRowHeight < rowCurrentHeight) {
669
- if (!borderBoxSizing) {
670
- rowCurrentHeight += 1;
671
- }
672
- wtViewport.oversizedRows[sourceRowIndex] = rowCurrentHeight;
673
- hasChanges = true;
674
- }
675
- }
676
- if (hasChanges) {
677
- wtViewport.rowHeightCache.invalidate();
678
- }
679
- }
680
- /**
681
- * @param {number} row The visual row index.
682
- * @returns {HTMLTableRowElement}
683
- */ getTrForRow(row) {
684
- return this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];
685
- }
686
- /**
687
- * Checks if the column index (negative value from -1 to N) is rendered.
688
- *
689
- * @param {number} column The column index (negative value from -1 to N).
690
- * @returns {boolean}
691
- */ isColumnHeaderRendered(column) {
692
- if (column >= 0) {
693
- return false;
694
- }
695
- const rowHeaders = this.wtSettings.getSetting('rowHeaders');
696
- const rowHeadersCount = rowHeaders.length;
697
- return Math.abs(column) <= rowHeadersCount;
698
- }
699
- /**
700
- * Checks if the row index (negative value from -1 to N) is rendered.
701
- *
702
- * @param {number} row The row index (negative value from -1 to N).
703
- * @returns {boolean}
704
- */ isRowHeaderRendered(row) {
705
- if (row >= 0) {
706
- return false;
707
- }
708
- const columnHeaders = this.wtSettings.getSetting('columnHeaders');
709
- const columnHeadersCount = columnHeaders.length;
710
- return Math.abs(row) <= columnHeadersCount;
711
- }
712
- /**
713
- * Check if the given row index is lower than the index of the first row that
714
- * is currently rendered and return TRUE in that case, or FALSE otherwise.
715
- *
716
- * Negative row index is used to check the columns' headers.
717
- *
718
- * Headers
719
- * +--------------+ │
720
- * -3 │ │ │ │ │
721
- * +--------------+ │
722
- * -2 │ │ │ │ │ TRUE
723
- * +--------------+ │
724
- * -1 │ │ │ │ │
725
- * Cells +==================+ │
726
- * 0 ┇ ┇ ┇ ┇ <--- For fixedRowsTop: 1 │
727
- * +--------------+ the master overlay do ---+ first rendered row (index 1)
728
- * 1 │ A2 │ B2 │ C2 │ not render the first row. │
729
- * +--------------+ │ FALSE
730
- * 2 │ A3 │ B3 │ C3 │ │
731
- * +--------------+ ---+ last rendered row
732
- * │
733
- * │ FALSE
734
- *
735
- * @param {number} row The visual row index.
736
- * @memberof Table#
737
- * @function isRowBeforeRenderedRows
738
- * @returns {boolean}
739
- */ isRowBeforeRenderedRows(row) {
740
- const first = this.getFirstRenderedRow();
741
- // Check the headers only in case when the first rendered row is -1 or 0.
742
- // This is an indication that the overlay is placed on the most top position.
743
- if (row < 0 && first <= 0) {
744
- return !this.isRowHeaderRendered(row);
745
- }
746
- return row < first;
747
- }
748
- /**
749
- * Check if the given column index is greater than the index of the last column that
750
- * is currently rendered and return TRUE in that case, or FALSE otherwise.
751
- *
752
- * The negative row index is used to check the columns' headers. However,
753
- * keep in mind that for negative indexes, the method always returns FALSE as
754
- * it is not possible to render headers partially. The "after" index can not be
755
- * lower than -1.
756
- *
757
- * Headers
758
- * +--------------+ │
759
- * -3 │ │ │ │ │
760
- * +--------------+ │
761
- * -2 │ │ │ │ │ FALSE
762
- * +--------------+ │
763
- * -1 │ │ │ │ │
764
- * Cells +==================+ │
765
- * 0 ┇ ┇ ┇ ┇ <--- For fixedRowsTop: 1 │
766
- * +--------------+ the master overlay do ---+ first rendered row (index 1)
767
- * 1 │ A2 │ B2 │ C2 │ not render the first rows │
768
- * +--------------+ │ FALSE
769
- * 2 │ A3 │ B3 │ C3 │ │
770
- * +--------------+ ---+ last rendered row
771
- * │
772
- * │ TRUE
773
- *
774
- * @param {number} row The visual row index.
775
- * @memberof Table#
776
- * @function isRowAfterRenderedRows
777
- * @returns {boolean}
778
- */ isRowAfterRenderedRows(row) {
779
- return row > this.getLastRenderedRow();
780
- }
781
- /**
782
- * Check if the given column index is lower than the index of the first column that
783
- * is currently rendered and return TRUE in that case, or FALSE otherwise.
784
- *
785
- * Negative column index is used to check the rows' headers.
786
- *
787
- * For fixedColumnsStart: 1 the master overlay
788
- * do not render this first columns.
789
- * Headers -3 -2 -1 |
790
- * +----+----+----║┄ ┄ +------+------+
791
- * │ │ │ ║ │ B1 │ C1 │
792
- * +--------------║┄ ┄ --------------│
793
- * │ │ │ ║ │ B2 │ C2 │
794
- * +--------------║┄ ┄ --------------│
795
- * │ │ │ ║ │ B3 │ C3 │
796
- * +----+----+----║┄ ┄ +------+------+
797
- * ╷ ╷
798
- * -------------------------+-------------+---------------->
799
- * TRUE first FALSE last FALSE
800
- * rendered rendered
801
- * column column
802
- *
803
- * @param {number} column The visual column index.
804
- * @memberof Table#
805
- * @function isColumnBeforeRenderedColumns
806
- * @returns {boolean}
807
- */ isColumnBeforeRenderedColumns(column) {
808
- const first = this.getFirstRenderedColumn();
809
- // Check the headers only in case when the first rendered column is -1 or 0.
810
- // This is an indication that the overlay is placed on the most left position.
811
- if (column < 0 && first <= 0) {
812
- return !this.isColumnHeaderRendered(column);
813
- }
814
- return column < first;
815
- }
816
- /**
817
- * Check if the given column index is greater than the index of the last column that
818
- * is currently rendered and return TRUE in that case, or FALSE otherwise.
819
- *
820
- * The negative column index is used to check the rows' headers. However,
821
- * keep in mind that for negative indexes, the method always returns FALSE as
822
- * it is not possible to render headers partially. The "after" index can not be
823
- * lower than -1.
824
- *
825
- * For fixedColumnsStart: 1 the master overlay
826
- * do not render this first columns.
827
- * Headers -3 -2 -1 |
828
- * +----+----+----║┄ ┄ +------+------+
829
- * │ │ │ ║ │ B1 │ C1 │
830
- * +--------------║┄ ┄ --------------│
831
- * │ │ │ ║ │ B2 │ C2 │
832
- * +--------------║┄ ┄ --------------│
833
- * │ │ │ ║ │ B3 │ C3 │
834
- * +----+----+----║┄ ┄ +------+------+
835
- * ╷ ╷
836
- * -------------------------+-------------+---------------->
837
- * FALSE first FALSE last TRUE
838
- * rendered rendered
839
- * column column
840
- *
841
- * @param {number} column The visual column index.
842
- * @memberof Table#
843
- * @function isColumnAfterRenderedColumns
844
- * @returns {boolean}
845
- */ isColumnAfterRenderedColumns(column) {
846
- return this.columnFilter && column > this.getLastRenderedColumn();
847
- }
848
- /**
849
- * Checks if the column is after the last visible column.
850
- *
851
- * @param {number} column The visual column index.
852
- * @returns {boolean}
853
- */ isColumnAfterViewport(column) {
854
- return this.columnFilter && column > this.getLastVisibleColumn();
855
- }
856
- /**
857
- * Checks if the row is after the last visible row.
858
- *
859
- * @param {number} row The visual row index.
860
- * @returns {boolean}
861
- */ isRowAfterViewport(row) {
862
- return this.rowFilter && row > this.getLastVisibleRow();
863
- }
864
- /**
865
- * Checks if the column is before the first visible column.
866
- *
867
- * @param {number} column The visual column index.
868
- * @returns {boolean}
869
- */ isColumnBeforeViewport(column) {
870
- return this.columnFilter && this.columnFilter.sourceToRendered(column) < 0 && column >= 0;
871
- }
872
- /**
873
- * Checks if the last row is fully visible.
874
- *
875
- * @returns {boolean}
876
- */ isLastRowFullyVisible() {
877
- return this.getLastVisibleRow() === this.getLastRenderedRow();
878
- }
879
- /**
880
- * Checks if the last column is fully visible.
881
- *
882
- * @returns {boolean}
883
- */ isLastColumnFullyVisible() {
884
- return this.getLastVisibleColumn() === this.getLastRenderedColumn();
885
- }
886
- /**
887
- * Checks if all rows fit in the viewport.
888
- *
889
- * @returns {boolean}
890
- */ allRowsInViewport() {
891
- return this.wtSettings.getSetting('totalRows') === this.getVisibleRowsCount();
892
- }
893
- /**
894
- * Checks if all columns fit in the viewport.
895
- *
896
- * @returns {boolean}
897
- */ allColumnsInViewport() {
898
- return this.wtSettings.getSetting('totalColumns') === this.getVisibleColumnsCount();
899
- }
900
- /**
901
- * Checks if any of the row's cells content exceeds its initial height, and if so, returns the oversized height.
902
- *
903
- * @param {number} sourceRow The physical row index.
904
- * @returns {number}
905
- */ getRowHeight(sourceRow) {
906
- return this.rowUtils.getHeight(sourceRow);
907
- }
908
- /**
909
- * @param {number} level The column level.
910
- * @returns {number}
911
- */ getColumnHeaderHeight(level) {
912
- return this.columnUtils.getHeaderHeight(level);
913
- }
914
- /**
915
- * @param {number} sourceColumn The physical column index.
916
- * @returns {number}
917
- */ getColumnWidth(sourceColumn) {
918
- return this.columnUtils.getWidth(sourceColumn);
919
- }
920
- /**
921
- * Checks if the table has defined size. It returns `true` when the table has width and height
922
- * set bigger than `0px`.
923
- *
924
- * @returns {boolean}
925
- */ hasDefinedSize() {
926
- return this.hasTableHeight && this.hasTableWidth;
927
- }
928
- /**
929
- * Gets table's width. The returned width is the width of the rendered cells that fit in the
930
- * current viewport. The value may change depends on the viewport position (scroll position).
931
- *
932
- * @returns {number}
933
- */ getWidth() {
934
- return outerWidth(this.TABLE);
935
- }
936
- /**
937
- * Gets table's height. The returned height is the height of the rendered cells that fit in the
938
- * current viewport. The value may change depends on the viewport position (scroll position).
939
- *
940
- * @returns {number}
941
- */ getHeight() {
942
- return outerHeight(this.TABLE);
943
- }
944
- /**
945
- * Gets table's total width. The returned width is the width of all rendered cells (including headers)
946
- * that can be displayed in the table.
947
- *
948
- * @returns {number}
949
- */ getTotalWidth() {
950
- const width = outerWidth(this.hider);
951
- // when the overlay's table does not have any cells the hider returns 0, get then width from the table element
952
- return width !== 0 ? width : this.getWidth();
953
- }
954
- /**
955
- * Gets table's total height. The returned height is the height of all rendered cells (including headers)
956
- * that can be displayed in the table.
957
- *
958
- * @returns {number}
959
- */ getTotalHeight() {
960
- const height = outerHeight(this.hider);
961
- // when the overlay's table does not have any cells the hider returns 0, get then height from the table element
962
- return height !== 0 ? height : this.getHeight();
963
- }
964
- /**
965
- * Checks if the table is visible. It returns `true` when the holder element (or its parents)
966
- * has CSS 'display' property different than 'none'.
967
- *
968
- * @returns {boolean}
969
- */ isVisible() {
970
- return isVisible(this.TABLE);
971
- }
972
- /**
973
- * Modify row header widths provided by user in class contructor.
974
- *
975
- * @private
976
- * @param {Function | number | null} rowHeaderWidthFactory The function which can provide default width values for rows..
977
- * @returns {number}
978
- */ _modifyRowHeaderWidth(rowHeaderWidthFactory) {
979
- const rawWidths = typeof rowHeaderWidthFactory === 'function' ? rowHeaderWidthFactory() : rowHeaderWidthFactory;
980
- let widths = rawWidths;
981
- if (Array.isArray(widths)) {
982
- widths = [
983
- ...widths
984
- ];
985
- widths[widths.length - 1] = this._correctRowHeaderWidth(widths[widths.length - 1]);
986
- } else {
987
- widths = this._correctRowHeaderWidth(widths);
988
- }
989
- return widths;
990
- }
991
- /**
992
- * Correct row header width if necessary.
993
- *
994
- * @private
995
- * @param {number | null} width The width to process.
996
- * @returns {number}
997
- */ _correctRowHeaderWidth(width) {
998
- let rowHeaderWidth = typeof width === 'number' ? width : this.wtSettings.getSetting('defaultColumnWidth');
999
- if (this.correctHeaderWidth) {
1000
- rowHeaderWidth += 1;
1001
- }
1002
- return rowHeaderWidth;
1003
- }
1004
- /**
1005
- * Destroys the table instance. Overridden by MasterTable to release DOM resources.
1006
- */ destroy() {
1007
- // Intentionally empty
1008
- }
1009
- /**
1010
- *
1011
- * @abstract
1012
- * @param {TableDao} dataAccessObject The data access object.
1013
- * @param {FacadeGetter} facadeGetter Function which return proper facade.
1014
- * @param {DomBindings} domBindings Bindings into DOM.
1015
- * @param {Settings} wtSettings The Walkontable settings.
1016
- * @param {'master'|CLONE_TYPES_ENUM} name Overlay name.
1017
- */ constructor(dataAccessObject, facadeGetter, domBindings, wtSettings, name){
1018
- /**
1019
- * The table body element (TBODY).
1020
- *
1021
- * @type {HTMLTableSectionElement | null}
1022
- */ this.TBODY = null;
1023
- /**
1024
- * The table head element (THEAD).
1025
- *
1026
- * @type {HTMLTableSectionElement | null}
1027
- */ this.THEAD = null;
1028
- /**
1029
- * The column group element (COLGROUP).
1030
- *
1031
- * @type {HTMLTableColElement | null}
1032
- */ this.COLGROUP = null;
1033
- /**
1034
- * Indicates if the table has height bigger than 0px.
1035
- *
1036
- * @type {boolean}
1037
- */ this.hasTableHeight = true;
1038
- /**
1039
- * Indicates if the table has width bigger than 0px.
1040
- *
1041
- * @type {boolean}
1042
- */ this.hasTableWidth = true;
1043
- /**
1044
- * Indicates if the table is visible. By visible, it means that the holder
1045
- * element has CSS 'display' property different than 'none'.
1046
- *
1047
- * @type {boolean}
1048
- */ this.isTableVisible = false;
1049
- /**
1050
- * The offset of the table element.
1051
- *
1052
- * @type {number | { top: number; left: number }}
1053
- */ this.tableOffset = 0;
1054
- /**
1055
- * The offset of the holder element.
1056
- *
1057
- * @type {number | { top: number; left: number }}
1058
- */ this.holderOffset = 0;
1059
- this.domBindings = domBindings;
1060
- /**
1061
- * Indicates if this instance is of type `MasterTable` (i.e. It is NOT an overlay).
1062
- *
1063
- * @type {boolean}
1064
- */ this.isMaster = name === 'master';
1065
- this.name = name;
1066
- this.dataAccessObject = dataAccessObject;
1067
- this.facadeGetter = facadeGetter;
1068
- this.wtSettings = wtSettings;
1069
- // legacy support
1070
- this.instance = this.dataAccessObject.wot; // TODO refactoring: it might be removed here, and provides legacy support through facade.
1071
- this.wot = this.dataAccessObject.wot;
1072
- this.TABLE = domBindings.rootTable;
1073
- removeTextNodes(this.TABLE);
1074
- // TODO refactoring, to recognize the legitimacy of moving them into domBidings
1075
- this.spreader = this.createSpreader(this.TABLE);
1076
- this.hider = this.createHider(this.spreader);
1077
- this.holder = this.createHolder(this.hider);
1078
- // parentNode is always an HTMLElement in production; null only when TABLE is detached (e.g. Jasmine tests).
1079
- this.wtRootElement = this.holder.parentNode;
1080
- if (this.isMaster) {
1081
- this.alignOverlaysWithTrimmingContainer(); // todo wow, It calls method from child class (MasterTable).
1082
- }
1083
- this.fixTableDomTree();
1084
- this.rowFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.
1085
- this.columnFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.
1086
- this.correctHeaderWidth = false;
1087
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
1088
- const origRowHeaderWidth = this.wtSettings.getSettingPure('rowHeaderWidth');
1089
- // Fix for jumping row headers (https://github.com/handsontable/handsontable/issues/3850)
1090
- this.wtSettings.update('rowHeaderWidth', ()=>this._modifyRowHeaderWidth(origRowHeaderWidth));
1091
- this.rowUtils = new RowUtils(this.dataAccessObject, this.wtSettings); // TODO refactoring, It can be passed through IOC.
1092
- this.columnUtils = new ColumnUtils(this.dataAccessObject, this.wtSettings); // TODO refactoring, It can be passed through IOC.
1093
- this.tableRenderer = new Renderer({
1094
- TABLE: this.TABLE,
1095
- THEAD: this.THEAD ?? undefined,
1096
- COLGROUP: this.COLGROUP ?? undefined,
1097
- TBODY: this.TBODY ?? undefined,
1098
- rowUtils: this.rowUtils,
1099
- columnUtils: this.columnUtils,
1100
- cellRenderer: this.wtSettings.getSettingPure('cellRenderer'),
1101
- stylesHandler: this.wtSettings.getSetting('stylesHandler')
1102
- });
1103
- }
1104
- }
1105
- export default Table;