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