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
@@ -52,8 +52,9 @@ import { BaseEditor } from '../baseEditor/index.mjs';
52
52
  import EventManager from '../../eventManager.mjs';
53
53
  import { DropdownController } from './controllers/dropdownController.mjs';
54
54
  import { SelectedItemsController } from './controllers/selectedItemsController.mjs';
55
- import { addClass, setAttribute } from '../../helpers/dom/element.mjs';
55
+ import { addClass, getDeepActiveElement, setAttribute } from '../../helpers/dom/element.mjs';
56
56
  import { isPrintableChar } from '../../helpers/unicode.mjs';
57
+ import { localeLowerCase } from '../../helpers/string.mjs';
57
58
  import { A11Y_LABEL, A11Y_GROUP } from '../../helpers/a11y.mjs';
58
59
  import { EDITOR_EDIT_GROUP } from '../../shortcuts/contexts/constants.mjs';
59
60
  import { getValuesIntersection, parseStringifiedValue } from './utils/utils.mjs';
@@ -95,8 +96,8 @@ var /**
95
96
  */ _syncSelectedValues = /*#__PURE__*/ new WeakSet(), /**
96
97
  * Reads a typed setting value from the cell properties by the given key.
97
98
  */ _getEditorSetting = /*#__PURE__*/ new WeakSet(), /**
98
- * Handles the afterSetSourceDataAtCell hook to re-sync the dropdown when the renderer updates the source data for the edited cell.
99
- */ _onAfterSetSourceDataAtCell = /*#__PURE__*/ new WeakSet();
99
+ * Handles the `afterChange` hook to re-sync the dropdown when the renderer removes a chip from the edited cell.
100
+ */ _onAfterChange = /*#__PURE__*/ new WeakSet();
100
101
  /**
101
102
  * Cell editor that lets users pick one or more values from a checkbox dropdown list.
102
103
  * Saves on every check/uncheck rather than on editor close.
@@ -169,7 +170,7 @@ var /**
169
170
  }
170
171
  });
171
172
  this.addHook('afterDestroy', ()=>this.destroy());
172
- this.addHook('afterSetSourceDataAtCell', (changes, source)=>_class_private_method_get(this, _onAfterSetSourceDataAtCell, onAfterSetSourceDataAtCell).call(this, changes, source));
173
+ this.addHook('afterChange', (changes, source)=>_class_private_method_get(this, _onAfterChange, onAfterChange).call(this, changes, source));
173
174
  this.addHook('afterScrollHorizontally', ()=>this.refreshDimensions());
174
175
  this.addHook('afterScrollVertically', ()=>this.refreshDimensions());
175
176
  this.dropdownController.getInputController().addLocalHook('triggerFilter', (value)=>_class_private_method_get(this, _filterEntries, filterEntries).call(this, value));
@@ -248,7 +249,7 @@ var /**
248
249
  /**
249
250
  * Initializes the editor, creates DOM elements, and binds dropdown and hook events.
250
251
  */ constructor(hotInstance){
251
- super(hotInstance), _class_private_method_init(this, _getSource), _class_private_method_init(this, _registerShortcuts), _class_private_method_init(this, _unregisterShortcuts), _class_private_method_init(this, _showEditableElement), _class_private_method_init(this, _hideEditableElement), _class_private_method_init(this, _blockNewSelections), _class_private_method_init(this, _unblockNewSelections), _class_private_method_init(this, _filterEntries), _class_private_method_init(this, _getAvailableSpace), _class_private_method_init(this, _saveCurrentSelection), _class_private_method_init(this, _addSelectedValue), _class_private_method_init(this, _removeSelectedValue), _class_private_method_init(this, _syncSelectedValues), _class_private_method_init(this, _getEditorSetting), _class_private_method_init(this, _onAfterSetSourceDataAtCell), _class_private_field_init(this, _selectedItems, {
252
+ super(hotInstance), _class_private_method_init(this, _getSource), _class_private_method_init(this, _registerShortcuts), _class_private_method_init(this, _unregisterShortcuts), _class_private_method_init(this, _showEditableElement), _class_private_method_init(this, _hideEditableElement), _class_private_method_init(this, _blockNewSelections), _class_private_method_init(this, _unblockNewSelections), _class_private_method_init(this, _filterEntries), _class_private_method_init(this, _getAvailableSpace), _class_private_method_init(this, _saveCurrentSelection), _class_private_method_init(this, _addSelectedValue), _class_private_method_init(this, _removeSelectedValue), _class_private_method_init(this, _syncSelectedValues), _class_private_method_init(this, _getEditorSetting), _class_private_method_init(this, _onAfterChange), _class_private_field_init(this, _selectedItems, {
252
253
  writable: true,
253
254
  value: void 0
254
255
  }), _class_private_field_init(this, _editorContainer, {
@@ -290,7 +291,7 @@ function registerShortcuts() {
290
291
  ]
291
292
  ],
292
293
  callback: ()=>{
293
- if (this.hot.rootDocument.activeElement === this.getInputElement()) {
294
+ if (getDeepActiveElement(this.hot.rootDocument) === this.getInputElement()) {
294
295
  this.dropdownController.focusFirstItem();
295
296
  } else {
296
297
  this.dropdownController.focusNextItem();
@@ -322,7 +323,7 @@ function registerShortcuts() {
322
323
  ],
323
324
  runOnlyIf: ()=>!_class_private_method_get(this, _getEditorSetting, getEditorSetting).call(this, 'enterCommits'),
324
325
  callback: (event)=>{
325
- const activeElement = this.hot.rootDocument.activeElement;
326
+ const activeElement = getDeepActiveElement(this.hot.rootDocument);
326
327
  if (activeElement instanceof HTMLInputElement && activeElement.type === 'checkbox') {
327
328
  activeElement.checked = !activeElement.checked;
328
329
  activeElement.dispatchEvent(new Event('change'));
@@ -366,6 +367,7 @@ function unblockNewSelections() {
366
367
  this.dropdownController.enableCheckboxes();
367
368
  }
368
369
  function filterEntries(query, filterSelectedItems = _class_private_method_get(this, _getEditorSetting, getEditorSetting).call(this, 'filterSelectedItems') ?? true) {
370
+ const locale = this.cellProperties.locale;
369
371
  const filteredItems = _class_private_method_get(this, _getSource, getSource).call(this).filter((item)=>{
370
372
  const value = typeof item === 'object' && item !== null && 'value' in item ? item.value : item;
371
373
  if (!filterSelectedItems && _class_private_field_get(this, _selectedItems).has(item)) {
@@ -374,7 +376,7 @@ function filterEntries(query, filterSelectedItems = _class_private_method_get(th
374
376
  if (this.cellProperties.filteringCaseSensitive) {
375
377
  return String(value).includes(query);
376
378
  }
377
- return String(value).toLowerCase().includes(query.toLowerCase());
379
+ return localeLowerCase(String(value), locale).includes(localeLowerCase(query, locale));
378
380
  });
379
381
  this.dropdownController.fillDropdown(filteredItems, _class_private_field_get(this, _selectedItems).getItemsArray());
380
382
  this.dropdownController.updateDimensions(_class_private_method_get(this, _getAvailableSpace, getAvailableSpace).call(this), true);
@@ -437,8 +439,8 @@ function syncSelectedValues(valuesArray) {
437
439
  function getEditorSetting(settingKey) {
438
440
  return this.cellProperties[settingKey];
439
441
  }
440
- function onAfterSetSourceDataAtCell(changes, source) {
441
- if (this.isOpened() && source === `${EDITOR_TYPE}-renderer` && parseInt(String(changes[0][0]), 10) === this.cellProperties.visualRow && parseInt(String(changes[0][1]), 10) === this.cellProperties.visualCol) {
442
+ function onAfterChange(changes, source) {
443
+ if (this.isOpened() && source === `${EDITOR_TYPE}-renderer` && Array.isArray(changes) && changes.length > 0 && changes[0][0] === this.cellProperties.visualRow && this.hot.propToCol(changes[0][1]) === this.cellProperties.visualCol) {
442
444
  _class_private_method_get(this, _syncSelectedValues, syncSelectedValues).call(this, changes[0][3]);
443
445
  this.dropdownController.fillDropdown(_class_private_method_get(this, _getSource, getSource).call(this), _class_private_field_get(this, _selectedItems).getItemsArray());
444
446
  this.dropdownController.focusItem(0);
@@ -20,6 +20,7 @@ const _baseEditor = require("../baseEditor");
20
20
  const _element = require("../../helpers/dom/element");
21
21
  const _object = require("../../helpers/object");
22
22
  const _a11y = require("../../helpers/a11y");
23
+ const _sanitizer = require("../../utils/sanitizer");
23
24
  const EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
24
25
  const SHORTCUTS_GROUP = 'selectEditor';
25
26
  const EDITOR_TYPE = 'select';
@@ -119,7 +120,7 @@ class SelectEditor extends _baseEditor.BaseEditor {
119
120
  options = this.prepareOptions(selectOptions);
120
121
  }
121
122
  (0, _element.empty)(this.select);
122
- const { sanitizer } = this.hot.getSettings();
123
+ const sanitizer = (0, _sanitizer.getSanitizer)(this.hot);
123
124
  if (Array.isArray(options)) {
124
125
  for(let i = 0; i < options.length; i++){
125
126
  const optionElement = this.hot.rootDocument.createElement('OPTION');
@@ -2,6 +2,7 @@ import { BaseEditor, EDITOR_STATE } from '../baseEditor/index.mjs';
2
2
  import { addClass, empty, fastInnerHTML, hasClass, removeClass } from '../../helpers/dom/element.mjs';
3
3
  import { objectEach } from '../../helpers/object.mjs';
4
4
  import { A11Y_HIDDEN } from '../../helpers/a11y.mjs';
5
+ import { getSanitizer } from '../../utils/sanitizer.mjs';
5
6
  const EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
6
7
  const SHORTCUTS_GROUP = 'selectEditor';
7
8
  export const EDITOR_TYPE = 'select';
@@ -104,7 +105,7 @@ export const EDITOR_TYPE = 'select';
104
105
  options = this.prepareOptions(selectOptions);
105
106
  }
106
107
  empty(this.select);
107
- const { sanitizer } = this.hot.getSettings();
108
+ const sanitizer = getSanitizer(this.hot);
108
109
  if (Array.isArray(options)) {
109
110
  for(let i = 0; i < options.length; i++){
110
111
  const optionElement = this.hot.rootDocument.createElement('OPTION');
@@ -68,7 +68,7 @@ class TextEditor extends _baseEditor.BaseEditor {
68
68
  */ close() {
69
69
  this._opened = false;
70
70
  this.autoResize.unObserve();
71
- if ((0, _element.isInternalElement)(this.hot.rootDocument.activeElement, this.hot.rootElement)) {
71
+ if ((0, _element.isInternalElement)((0, _element.getDeepActiveElement)(this.hot.rootDocument), this.hot.rootElement)) {
72
72
  this.hot.listen(); // don't refocus the table if user focused some cell outside of HT on purpose
73
73
  }
74
74
  this.hideEditableElement();
@@ -1,7 +1,7 @@
1
1
  import { BaseEditor, EDITOR_STATE } from '../baseEditor/index.mjs';
2
2
  import EventManager from '../../eventManager.mjs';
3
3
  import { isEdge, isIOS } from '../../helpers/browser.mjs';
4
- import { addClass, isInternalElement, setCaretPosition, hasClass, removeClass, setAttribute } from '../../helpers/dom/element.mjs';
4
+ import { addClass, getDeepActiveElement, isInternalElement, setCaretPosition, hasClass, removeClass, setAttribute } from '../../helpers/dom/element.mjs';
5
5
  import { rangeEach } from '../../helpers/number.mjs';
6
6
  import { createInputElementResizer } from '../../utils/autoResize.mjs';
7
7
  import { isDefined } from '../../helpers/mixed.mjs';
@@ -48,7 +48,7 @@ export const EDITOR_TYPE = 'text';
48
48
  */ close() {
49
49
  this._opened = false;
50
50
  this.autoResize.unObserve();
51
- if (isInternalElement(this.hot.rootDocument.activeElement, this.hot.rootElement)) {
51
+ if (isInternalElement(getDeepActiveElement(this.hot.rootDocument), this.hot.rootElement)) {
52
52
  this.hot.listen(); // don't refocus the table if user focused some cell outside of HT on purpose
53
53
  }
54
54
  this.hideEditableElement();
package/eventManager.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  interface EventListenerEntry {
2
- element: Element | Document | Window;
2
+ element: Element | Document | Window | ShadowRoot;
3
3
  event: string;
4
4
  callback: (event: Event) => void;
5
5
  callbackProxy: (event: Event) => void;
@@ -33,7 +33,7 @@ declare class EventManager {
33
33
  * @param {AddEventListenerOptions|boolean} [options] Listener options if object or useCapture if boolean.
34
34
  * @returns {Function} Returns function which you can easily call to remove that event.
35
35
  */
36
- addEventListener<E extends Event = Event>(element: Element | Document | Window, eventName: string, callback: (event: E) => void, options?: boolean | AddEventListenerOptions): () => void;
36
+ addEventListener<E extends Event = Event>(element: Element | Document | Window | ShadowRoot, eventName: string, callback: (event: E) => void, options?: boolean | AddEventListenerOptions): () => void;
37
37
  /**
38
38
  * Remove the event listener previously registered.
39
39
  *
@@ -42,7 +42,7 @@ declare class EventManager {
42
42
  * @param {Function} callback Function to remove from the event target. It must be the same as during registration listener.
43
43
  * @param {boolean} [onlyOwnEvents] Whether whould remove only events registered using this instance of EventManager.
44
44
  */
45
- removeEventListener(element: Element | Document | Window, eventName: string, callback: (event: Event) => void, onlyOwnEvents?: boolean): void;
45
+ removeEventListener(element: Element | Document | Window | ShadowRoot, eventName: string, callback: (event: Event) => void, onlyOwnEvents?: boolean): void;
46
46
  /**
47
47
  * Clear all previously registered events.
48
48
  *
@@ -18,6 +18,34 @@ export declare class FocusGridManager {
18
18
  * Registers hooks to track selection changes and apply focus logic based on the configured focus mode.
19
19
  */
20
20
  init(): void;
21
+ /**
22
+ * Checks whether the browser focus currently sits inside the grid's root wrapper or portal.
23
+ * The state comes from focus events observed within the grid's own DOM tree, so it stays
24
+ * correct in environments where `document.activeElement` cannot be resolved through foreign
25
+ * shadow boundaries.
26
+ *
27
+ * @returns {boolean}
28
+ */
29
+ hasBrowserFocus(): boolean;
30
+ /**
31
+ * Checks whether the given focused element proves that the browser focus left the grid.
32
+ * Focus counts as foreign when the element is focusable, holds the browser focus, and is
33
+ * neither a part of the grid or its portal, nor one of the shadow hosts the grid is rendered
34
+ * within, nor the document body (a click on a non-focusable area keeps the focus where it
35
+ * was). Sandboxed hosts (e.g. Salesforce Lightning Web Security) hide the real focused
36
+ * element behind the host chain, so a focused ancestor host cannot prove the focus left the
37
+ * grid - only an unrelated element can.
38
+ *
39
+ * The check mirrors the scope-deactivation rule in the focus scope manager (`scopeManager`
40
+ * unlistens when a focus event lands outside every scope). Sandboxed hosts retarget the
41
+ * window-level focus events that rule depends on, so the mouseup path re-applies the same
42
+ * rule from the deepest reachable focused element. On a regular page both mechanisms agree -
43
+ * this adds no behavior that the scope manager does not already provide there.
44
+ *
45
+ * @param {HTMLElement | null} element The deepest reachable focused element.
46
+ * @returns {boolean}
47
+ */
48
+ isForeignFocusTarget(element: HTMLElement | null): boolean;
21
49
  /**
22
50
  * Get the current focus mode.
23
51
  *
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "FocusGridManager", {
8
8
  return FocusGridManager;
9
9
  }
10
10
  });
11
+ const _eventManager = /*#__PURE__*/ _interop_require_default(require("../eventManager"));
11
12
  const _console = require("../helpers/console");
12
13
  const _element = require("../helpers/dom/element");
13
14
  const _function = require("../helpers/function");
@@ -61,6 +62,11 @@ function _class_private_method_init(obj, privateSet) {
61
62
  _check_private_redeclaration(obj, privateSet);
62
63
  privateSet.add(obj);
63
64
  }
65
+ function _interop_require_default(obj) {
66
+ return obj && obj.__esModule ? obj : {
67
+ default: obj
68
+ };
69
+ }
64
70
  /**
65
71
  * Possible focus modes.
66
72
  * - CELL - The browser's focus stays on the lastly selected cell element.
@@ -75,6 +81,17 @@ function _class_private_method_init(obj, privateSet) {
75
81
  var /**
76
82
  * The Handsontable instance.
77
83
  */ _hot = /*#__PURE__*/ new WeakMap(), /**
84
+ * Event manager used for the DOM listeners that track the browser focus within the grid.
85
+ *
86
+ * @type {EventManager}
87
+ */ _eventManager1 = /*#__PURE__*/ new WeakMap(), /**
88
+ * Tracks whether the browser focus currently sits inside the grid's root wrapper or portal.
89
+ * Maintained by `focusin`/`focusout` listeners bound within the grid's own DOM tree, where
90
+ * sandboxed hosts (e.g. Salesforce Lightning Web Security) still report true event targets -
91
+ * unlike `document.activeElement`, which such hosts collapse to the outermost shadow host.
92
+ *
93
+ * @type {boolean}
94
+ */ _hasBrowserFocus = /*#__PURE__*/ new WeakMap(), /**
78
95
  * The currently enabled focus mode.
79
96
  * Can be either:
80
97
  *
@@ -136,6 +153,60 @@ class FocusGridManager {
136
153
  _class_private_field_get(this, _hot).addHook('afterSelectionFocusSet', (...args)=>_class_private_method_get(this, _onAfterSelectionChange, onAfterSelectionChange).call(this));
137
154
  _class_private_field_get(this, _hot).addHook('afterSelectionEnd', (...args)=>_class_private_method_get(this, _focusEditorElement, focusEditorElement).call(this));
138
155
  _class_private_field_get(this, _hot).addHook('afterRender', (...args)=>_class_private_method_get(this, _onAfterRender, onAfterRender).call(this));
156
+ _class_private_field_set(this, _eventManager1, new _eventManager.default(_class_private_field_get(this, _hot)));
157
+ const focusRootElements = [
158
+ _class_private_field_get(this, _hot).rootWrapperElement ?? _class_private_field_get(this, _hot).rootElement,
159
+ _class_private_field_get(this, _hot).rootPortalElement
160
+ ].filter((element)=>(0, _element.isHTMLElement)(element));
161
+ focusRootElements.forEach((focusRootElement)=>{
162
+ _class_private_field_get(this, _eventManager1).addEventListener(focusRootElement, 'focusin', ()=>{
163
+ _class_private_field_set(this, _hasBrowserFocus, true);
164
+ });
165
+ _class_private_field_get(this, _eventManager1).addEventListener(focusRootElement, 'focusout', (event)=>{
166
+ const relatedTarget = event.relatedTarget;
167
+ _class_private_field_set(this, _hasBrowserFocus, (0, _element.isHTMLElement)(relatedTarget) && focusRootElements.some((focusRoot)=>focusRoot.contains(relatedTarget)));
168
+ });
169
+ });
170
+ }
171
+ /**
172
+ * Checks whether the browser focus currently sits inside the grid's root wrapper or portal.
173
+ * The state comes from focus events observed within the grid's own DOM tree, so it stays
174
+ * correct in environments where `document.activeElement` cannot be resolved through foreign
175
+ * shadow boundaries.
176
+ *
177
+ * @returns {boolean}
178
+ */ hasBrowserFocus() {
179
+ return _class_private_field_get(this, _hasBrowserFocus);
180
+ }
181
+ /**
182
+ * Checks whether the given focused element proves that the browser focus left the grid.
183
+ * Focus counts as foreign when the element is focusable, holds the browser focus, and is
184
+ * neither a part of the grid or its portal, nor one of the shadow hosts the grid is rendered
185
+ * within, nor the document body (a click on a non-focusable area keeps the focus where it
186
+ * was). Sandboxed hosts (e.g. Salesforce Lightning Web Security) hide the real focused
187
+ * element behind the host chain, so a focused ancestor host cannot prove the focus left the
188
+ * grid - only an unrelated element can.
189
+ *
190
+ * The check mirrors the scope-deactivation rule in the focus scope manager (`scopeManager`
191
+ * unlistens when a focus event lands outside every scope). Sandboxed hosts retarget the
192
+ * window-level focus events that rule depends on, so the mouseup path re-applies the same
193
+ * rule from the deepest reachable focused element. On a regular page both mechanisms agree -
194
+ * this adds no behavior that the scope manager does not already provide there.
195
+ *
196
+ * @param {HTMLElement | null} element The deepest reachable focused element.
197
+ * @returns {boolean}
198
+ */ isForeignFocusTarget(element) {
199
+ const { rootElement, rootWrapperElement, rootPortalElement, rootDocument } = _class_private_field_get(this, _hot);
200
+ // Grid-owned UI hosted in the root wrapper's layout slots or overlay layer (e.g. a
201
+ // plugin's formula bar) lives outside `rootElement`, so `isInternalElement` cannot
202
+ // recognize it. Elements inside `rootElement` are deliberately excluded here: a
203
+ // nested grid's focus must keep counting as foreign for this instance, exactly as
204
+ // `isInternalElement` decides.
205
+ const isWrapperHostedUi = !!rootWrapperElement && rootWrapperElement.contains(element) && !rootElement.contains(element);
206
+ if (element === null || element === rootDocument.body || element === rootDocument.documentElement || (0, _element.isInternalElement)(element, rootElement) || isWrapperHostedUi || rootPortalElement && rootPortalElement.contains(element)) {
207
+ return false;
208
+ }
209
+ return !(0, _element.getShadowHostChain)(rootElement).includes(element);
139
210
  }
140
211
  /**
141
212
  * Get the current focus mode.
@@ -279,6 +350,14 @@ class FocusGridManager {
279
350
  writable: true,
280
351
  value: void 0
281
352
  });
353
+ _class_private_field_init(this, _eventManager1, {
354
+ writable: true,
355
+ value: void 0
356
+ });
357
+ _class_private_field_init(this, _hasBrowserFocus, {
358
+ writable: true,
359
+ value: void 0
360
+ });
282
361
  _class_private_field_init(this, _focusMode, {
283
362
  writable: true,
284
363
  value: void 0
@@ -303,6 +382,8 @@ class FocusGridManager {
303
382
  writable: true,
304
383
  value: void 0
305
384
  });
385
+ _class_private_field_set(this, _eventManager1, null);
386
+ _class_private_field_set(this, _hasBrowserFocus, false);
306
387
  _class_private_field_set(this, _refocusDelay, 1);
307
388
  _class_private_field_set(this, _refocusElementGetter, null);
308
389
  _class_private_field_set(this, _debouncedSelect, new Map());
@@ -337,7 +418,8 @@ function focusCell() {
337
418
  // have run. Reading `this.#isSuspended` inside the callback would miss the suspend window.
338
419
  const suspended = _class_private_field_get(this, _isSuspended);
339
420
  _class_private_method_get(this, _getSelectedCell, getSelectedCell).call(this, (selectedCell)=>{
340
- const activeElement = _class_private_field_get(this, _hot).rootDocument.activeElement;
421
+ const deepActiveElement = (0, _element.getDeepActiveElement)(_class_private_field_get(this, _hot).rootDocument);
422
+ const activeElement = (0, _element.isHTMLElement)(deepActiveElement) ? deepActiveElement : null;
341
423
  // When focus management is suspended and an external focusable element (outside Handsontable)
342
424
  // currently owns the browser focus, keep it - do not blur and do not move focus to the cell.
343
425
  // This preserves the focus of inputs that live next to the grid when a programmatic selection
@@ -362,7 +444,8 @@ function focusEditorElement() {
362
444
  // owns focus, fall through so the default `imeFastEdit` behavior still moves focus to the
363
445
  // editor textarea (existing per-editor IME support tests rely on this). See #10038.
364
446
  if (_class_private_field_get(this, _isSuspended)) {
365
- const activeElement = _class_private_field_get(this, _hot).rootDocument.activeElement;
447
+ const deepActiveElement = (0, _element.getDeepActiveElement)(_class_private_field_get(this, _hot).rootDocument);
448
+ const activeElement = (0, _element.isHTMLElement)(deepActiveElement) ? deepActiveElement : null;
366
449
  if (activeElement && (0, _element.isOutsideInput)(activeElement)) {
367
450
  return;
368
451
  }
@@ -48,8 +48,9 @@ function _class_private_method_init(obj, privateSet) {
48
48
  _check_private_redeclaration(obj, privateSet);
49
49
  privateSet.add(obj);
50
50
  }
51
+ import EventManager from '../eventManager.mjs';
51
52
  import { warn } from '../helpers/console.mjs';
52
- import { isHTMLElement, isOutsideInput } from '../helpers/dom/element.mjs';
53
+ import { getDeepActiveElement, getShadowHostChain, isHTMLElement, isInternalElement, isOutsideInput } from '../helpers/dom/element.mjs';
53
54
  import { debounce } from '../helpers/function.mjs';
54
55
  /**
55
56
  * Possible focus modes.
@@ -65,6 +66,17 @@ import { debounce } from '../helpers/function.mjs';
65
66
  var /**
66
67
  * The Handsontable instance.
67
68
  */ _hot = /*#__PURE__*/ new WeakMap(), /**
69
+ * Event manager used for the DOM listeners that track the browser focus within the grid.
70
+ *
71
+ * @type {EventManager}
72
+ */ _eventManager = /*#__PURE__*/ new WeakMap(), /**
73
+ * Tracks whether the browser focus currently sits inside the grid's root wrapper or portal.
74
+ * Maintained by `focusin`/`focusout` listeners bound within the grid's own DOM tree, where
75
+ * sandboxed hosts (e.g. Salesforce Lightning Web Security) still report true event targets -
76
+ * unlike `document.activeElement`, which such hosts collapse to the outermost shadow host.
77
+ *
78
+ * @type {boolean}
79
+ */ _hasBrowserFocus = /*#__PURE__*/ new WeakMap(), /**
68
80
  * The currently enabled focus mode.
69
81
  * Can be either:
70
82
  *
@@ -129,6 +141,60 @@ var /**
129
141
  _class_private_field_get(this, _hot).addHook('afterSelectionFocusSet', (...args)=>_class_private_method_get(this, _onAfterSelectionChange, onAfterSelectionChange).call(this));
130
142
  _class_private_field_get(this, _hot).addHook('afterSelectionEnd', (...args)=>_class_private_method_get(this, _focusEditorElement, focusEditorElement).call(this));
131
143
  _class_private_field_get(this, _hot).addHook('afterRender', (...args)=>_class_private_method_get(this, _onAfterRender, onAfterRender).call(this));
144
+ _class_private_field_set(this, _eventManager, new EventManager(_class_private_field_get(this, _hot)));
145
+ const focusRootElements = [
146
+ _class_private_field_get(this, _hot).rootWrapperElement ?? _class_private_field_get(this, _hot).rootElement,
147
+ _class_private_field_get(this, _hot).rootPortalElement
148
+ ].filter((element)=>isHTMLElement(element));
149
+ focusRootElements.forEach((focusRootElement)=>{
150
+ _class_private_field_get(this, _eventManager).addEventListener(focusRootElement, 'focusin', ()=>{
151
+ _class_private_field_set(this, _hasBrowserFocus, true);
152
+ });
153
+ _class_private_field_get(this, _eventManager).addEventListener(focusRootElement, 'focusout', (event)=>{
154
+ const relatedTarget = event.relatedTarget;
155
+ _class_private_field_set(this, _hasBrowserFocus, isHTMLElement(relatedTarget) && focusRootElements.some((focusRoot)=>focusRoot.contains(relatedTarget)));
156
+ });
157
+ });
158
+ }
159
+ /**
160
+ * Checks whether the browser focus currently sits inside the grid's root wrapper or portal.
161
+ * The state comes from focus events observed within the grid's own DOM tree, so it stays
162
+ * correct in environments where `document.activeElement` cannot be resolved through foreign
163
+ * shadow boundaries.
164
+ *
165
+ * @returns {boolean}
166
+ */ hasBrowserFocus() {
167
+ return _class_private_field_get(this, _hasBrowserFocus);
168
+ }
169
+ /**
170
+ * Checks whether the given focused element proves that the browser focus left the grid.
171
+ * Focus counts as foreign when the element is focusable, holds the browser focus, and is
172
+ * neither a part of the grid or its portal, nor one of the shadow hosts the grid is rendered
173
+ * within, nor the document body (a click on a non-focusable area keeps the focus where it
174
+ * was). Sandboxed hosts (e.g. Salesforce Lightning Web Security) hide the real focused
175
+ * element behind the host chain, so a focused ancestor host cannot prove the focus left the
176
+ * grid - only an unrelated element can.
177
+ *
178
+ * The check mirrors the scope-deactivation rule in the focus scope manager (`scopeManager`
179
+ * unlistens when a focus event lands outside every scope). Sandboxed hosts retarget the
180
+ * window-level focus events that rule depends on, so the mouseup path re-applies the same
181
+ * rule from the deepest reachable focused element. On a regular page both mechanisms agree -
182
+ * this adds no behavior that the scope manager does not already provide there.
183
+ *
184
+ * @param {HTMLElement | null} element The deepest reachable focused element.
185
+ * @returns {boolean}
186
+ */ isForeignFocusTarget(element) {
187
+ const { rootElement, rootWrapperElement, rootPortalElement, rootDocument } = _class_private_field_get(this, _hot);
188
+ // Grid-owned UI hosted in the root wrapper's layout slots or overlay layer (e.g. a
189
+ // plugin's formula bar) lives outside `rootElement`, so `isInternalElement` cannot
190
+ // recognize it. Elements inside `rootElement` are deliberately excluded here: a
191
+ // nested grid's focus must keep counting as foreign for this instance, exactly as
192
+ // `isInternalElement` decides.
193
+ const isWrapperHostedUi = !!rootWrapperElement && rootWrapperElement.contains(element) && !rootElement.contains(element);
194
+ if (element === null || element === rootDocument.body || element === rootDocument.documentElement || isInternalElement(element, rootElement) || isWrapperHostedUi || rootPortalElement && rootPortalElement.contains(element)) {
195
+ return false;
196
+ }
197
+ return !getShadowHostChain(rootElement).includes(element);
132
198
  }
133
199
  /**
134
200
  * Get the current focus mode.
@@ -272,6 +338,14 @@ var /**
272
338
  writable: true,
273
339
  value: void 0
274
340
  });
341
+ _class_private_field_init(this, _eventManager, {
342
+ writable: true,
343
+ value: void 0
344
+ });
345
+ _class_private_field_init(this, _hasBrowserFocus, {
346
+ writable: true,
347
+ value: void 0
348
+ });
275
349
  _class_private_field_init(this, _focusMode, {
276
350
  writable: true,
277
351
  value: void 0
@@ -296,6 +370,8 @@ var /**
296
370
  writable: true,
297
371
  value: void 0
298
372
  });
373
+ _class_private_field_set(this, _eventManager, null);
374
+ _class_private_field_set(this, _hasBrowserFocus, false);
299
375
  _class_private_field_set(this, _refocusDelay, 1);
300
376
  _class_private_field_set(this, _refocusElementGetter, null);
301
377
  _class_private_field_set(this, _debouncedSelect, new Map());
@@ -330,7 +406,8 @@ function focusCell() {
330
406
  // have run. Reading `this.#isSuspended` inside the callback would miss the suspend window.
331
407
  const suspended = _class_private_field_get(this, _isSuspended);
332
408
  _class_private_method_get(this, _getSelectedCell, getSelectedCell).call(this, (selectedCell)=>{
333
- const activeElement = _class_private_field_get(this, _hot).rootDocument.activeElement;
409
+ const deepActiveElement = getDeepActiveElement(_class_private_field_get(this, _hot).rootDocument);
410
+ const activeElement = isHTMLElement(deepActiveElement) ? deepActiveElement : null;
334
411
  // When focus management is suspended and an external focusable element (outside Handsontable)
335
412
  // currently owns the browser focus, keep it - do not blur and do not move focus to the cell.
336
413
  // This preserves the focus of inputs that live next to the grid when a programmatic selection
@@ -355,7 +432,8 @@ function focusEditorElement() {
355
432
  // owns focus, fall through so the default `imeFastEdit` behavior still moves focus to the
356
433
  // editor textarea (existing per-editor IME support tests rely on this). See #10038.
357
434
  if (_class_private_field_get(this, _isSuspended)) {
358
- const activeElement = _class_private_field_get(this, _hot).rootDocument.activeElement;
435
+ const deepActiveElement = getDeepActiveElement(_class_private_field_get(this, _hot).rootDocument);
436
+ const activeElement = isHTMLElement(deepActiveElement) ? deepActiveElement : null;
359
437
  if (activeElement && isOutsideInput(activeElement)) {
360
438
  return;
361
439
  }
@@ -166,7 +166,7 @@ function createFocusScopeManager(hotInstance) {
166
166
  scope.disable();
167
167
  }
168
168
  if (scope === activeScope) {
169
- if (scope.contains(hotInstance.rootDocument.activeElement)) {
169
+ if (scope.contains((0, _element.getDeepActiveElement)(hotInstance.rootDocument))) {
170
170
  scope.deactivateFocusCatchers();
171
171
  } else {
172
172
  scope.activateFocusCatchers();
@@ -3,7 +3,7 @@ import { throwWithCause } from '../helpers/errors.mjs';
3
3
  import { createFocusScope } from './scope.mjs';
4
4
  import { useEventListener } from './eventListener.mjs';
5
5
  import { FOCUS_SOURCES } from './constants.mjs';
6
- import { eventTargetEl, isVisible } from '../helpers/dom/element.mjs';
6
+ import { eventTargetEl, getDeepActiveElement, isVisible } from '../helpers/dom/element.mjs';
7
7
  /**
8
8
  * @typedef {object} FocusScopeManager
9
9
  * @property {function(): string | null} getActiveScopeId Returns the ID of the active scope.
@@ -178,7 +178,7 @@ import { eventTargetEl, isVisible } from '../helpers/dom/element.mjs';
178
178
  scope.disable();
179
179
  }
180
180
  if (scope === activeScope) {
181
- if (scope.contains(hotInstance.rootDocument.activeElement)) {
181
+ if (scope.contains(getDeepActiveElement(hotInstance.rootDocument))) {
182
182
  scope.deactivateFocusCatchers();
183
183
  } else {
184
184
  scope.activateFocusCatchers();
@@ -93,6 +93,31 @@ export declare function arrayAvg(array: number[]): number;
93
93
  * @returns {Array}
94
94
  */
95
95
  export declare function arrayFlatten(array: unknown[]): unknown[];
96
+ /**
97
+ * Removes the elements at the given indexes from the array. The array is compacted in one
98
+ * pass and mutated in place, so external references to it stay valid. Cost is O(array length)
99
+ * regardless of how many indexes are removed - unlike one `splice` call per removed index,
100
+ * which re-shifts the tail every time.
101
+ *
102
+ * @param {Array} array The array to mutate.
103
+ * @param {Set<number>} indexes The indexes of the elements to remove.
104
+ * @returns {Array} Returns the same, mutated array.
105
+ */
106
+ export declare function removeIndexesInPlace<T>(array: T[], indexes: Set<number>): T[];
107
+ /**
108
+ * Inserts `amount` copies of `value` into the array at the given index. The tail is shifted
109
+ * right once by `amount` and the array is mutated in place, so external references to it stay
110
+ * valid. An index greater than the array length is clamped to it (the values are appended),
111
+ * matching `Array.prototype.splice` semantics. Cost is O(array length + amount) regardless of
112
+ * `amount` - unlike one `splice` call per inserted value, which re-shifts the tail every time.
113
+ *
114
+ * @param {Array} array The array to mutate.
115
+ * @param {number} index The index at which to insert the values.
116
+ * @param {number} amount The number of copies to insert.
117
+ * @param {*} value The value to insert.
118
+ * @returns {Array} Returns the same, mutated array.
119
+ */
120
+ export declare function insertValuesInPlace<T>(array: T[], index: number, amount: number, value: T): T[];
96
121
  /**
97
122
  * Unique values in the array.
98
123
  *
package/helpers/array.js CHANGED
@@ -56,9 +56,15 @@ _export(exports, {
56
56
  get getUnionOfArrays () {
57
57
  return getUnionOfArrays;
58
58
  },
59
+ get insertValuesInPlace () {
60
+ return insertValuesInPlace;
61
+ },
59
62
  get pivot () {
60
63
  return pivot;
61
64
  },
65
+ get removeIndexesInPlace () {
66
+ return removeIndexesInPlace;
67
+ },
62
68
  get stringToArray () {
63
69
  return stringToArray;
64
70
  },
@@ -182,10 +188,36 @@ function arrayAvg(array) {
182
188
  function arrayFlatten(array) {
183
189
  return arrayReduce(array, (initial, value)=>initial.concat(Array.isArray(value) ? arrayFlatten(value) : value), []);
184
190
  }
191
+ function removeIndexesInPlace(array, indexes) {
192
+ let writeIndex = 0;
193
+ for(let readIndex = 0; readIndex < array.length; readIndex++){
194
+ if (!indexes.has(readIndex)) {
195
+ array[writeIndex] = array[readIndex];
196
+ writeIndex += 1;
197
+ }
198
+ }
199
+ array.length = writeIndex;
200
+ return array;
201
+ }
202
+ function insertValuesInPlace(array, index, amount, value) {
203
+ if (amount <= 0) {
204
+ return array;
205
+ }
206
+ const oldLength = array.length;
207
+ const insertAt = Math.min(index, oldLength);
208
+ array.length = oldLength + amount;
209
+ for(let i = oldLength - 1; i >= insertAt; i--){
210
+ array[i + amount] = array[i];
211
+ }
212
+ array.fill(value, insertAt, insertAt + amount);
213
+ return array;
214
+ }
185
215
  function arrayUnique(array) {
186
216
  const unique = [];
217
+ const seen = new Set();
187
218
  arrayEach(array, (value)=>{
188
- if (unique.indexOf(value) === -1) {
219
+ if (!seen.has(value)) {
220
+ seen.add(value);
189
221
  unique.push(value);
190
222
  }
191
223
  });
@@ -197,7 +229,8 @@ function getDifferenceOfArrays(...arrays) {
197
229
  ];
198
230
  let filteredFirstArray = first;
199
231
  arrayEach(rest, (array)=>{
200
- filteredFirstArray = filteredFirstArray.filter((value)=>!array.includes(value));
232
+ const lookup = new Set(array);
233
+ filteredFirstArray = filteredFirstArray.filter((value)=>!lookup.has(value));
201
234
  });
202
235
  return filteredFirstArray;
203
236
  }
@@ -213,11 +246,15 @@ function getIntersectionOfArrays(...args) {
213
246
  arrays.push(arg);
214
247
  }
215
248
  });
216
- const isMatch = comparator ? (value, array)=>array.some((item)=>comparator(value, item)) : (value, array)=>array.includes(value);
217
249
  const [first, ...rest] = arrays;
218
250
  let filteredFirstArray = first;
219
251
  arrayEach(rest, (array)=>{
220
- filteredFirstArray = filteredFirstArray.filter((value)=>isMatch(value, array));
252
+ if (comparator) {
253
+ filteredFirstArray = filteredFirstArray.filter((value)=>array.some((item)=>comparator(value, item)));
254
+ } else {
255
+ const lookup = new Set(array);
256
+ filteredFirstArray = filteredFirstArray.filter((value)=>lookup.has(value));
257
+ }
221
258
  });
222
259
  return filteredFirstArray;
223
260
  }