handsontable 18.0.0 → 18.1.0-rc11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1130) hide show
  1. package/3rdparty/walkontable/src/axisSizing/axisSizeSource.d.mts +1 -0
  2. package/3rdparty/walkontable/src/axisSizing/axisSizeSource.d.ts +55 -0
  3. package/3rdparty/walkontable/src/axisSizing/axisSizeSource.js +15 -0
  4. package/3rdparty/walkontable/src/axisSizing/axisSizeSource.mjs +14 -0
  5. package/3rdparty/walkontable/src/axisSizing/boxModel.d.mts +1 -0
  6. package/3rdparty/walkontable/src/axisSizing/boxModel.d.ts +32 -0
  7. package/3rdparty/walkontable/src/axisSizing/boxModel.js +45 -0
  8. package/3rdparty/walkontable/src/axisSizing/boxModel.mjs +33 -0
  9. package/3rdparty/walkontable/src/axisSizing/columnUtils.d.mts +2 -0
  10. package/3rdparty/walkontable/src/{utils/column.d.ts → axisSizing/columnUtils.d.ts} +12 -10
  11. package/3rdparty/walkontable/src/axisSizing/columnUtils.js +147 -0
  12. package/3rdparty/walkontable/src/axisSizing/columnUtils.mjs +142 -0
  13. package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.d.mts +1 -0
  14. package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.d.ts +58 -0
  15. package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.js +129 -0
  16. package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.mjs +119 -0
  17. package/3rdparty/walkontable/src/axisSizing/oversizedRows.d.mts +1 -0
  18. package/3rdparty/walkontable/src/axisSizing/oversizedRows.d.ts +162 -0
  19. package/3rdparty/walkontable/src/axisSizing/oversizedRows.js +424 -0
  20. package/3rdparty/walkontable/src/axisSizing/oversizedRows.mjs +522 -0
  21. package/3rdparty/walkontable/src/axisSizing/positionCache/index.d.ts +130 -0
  22. package/3rdparty/walkontable/src/axisSizing/positionCache/index.js +256 -0
  23. package/3rdparty/walkontable/src/axisSizing/positionCache/index.mjs +262 -0
  24. package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.d.mts +1 -0
  25. package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.d.ts +51 -0
  26. package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.js +121 -0
  27. package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.mjs +117 -0
  28. package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.d.mts +1 -0
  29. package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.d.ts +53 -0
  30. package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.js +206 -0
  31. package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.mjs +203 -0
  32. package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.d.mts +1 -0
  33. package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.d.ts +53 -0
  34. package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.js +40 -0
  35. package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.mjs +41 -0
  36. package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.d.mts +1 -0
  37. package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.d.ts +47 -0
  38. package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.js +121 -0
  39. package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.mjs +115 -0
  40. package/3rdparty/walkontable/src/axisSizing/rowUtils.d.mts +2 -0
  41. package/3rdparty/walkontable/src/{utils/row.d.ts → axisSizing/rowUtils.d.ts} +11 -9
  42. package/3rdparty/walkontable/src/axisSizing/rowUtils.js +111 -0
  43. package/3rdparty/walkontable/src/axisSizing/rowUtils.mjs +106 -0
  44. package/3rdparty/walkontable/src/axisSizing/sizeGetters.d.mts +2 -0
  45. package/3rdparty/walkontable/src/axisSizing/sizeGetters.d.ts +84 -0
  46. package/3rdparty/walkontable/src/axisSizing/sizeGetters.js +102 -0
  47. package/3rdparty/walkontable/src/axisSizing/sizeGetters.mjs +92 -0
  48. package/3rdparty/walkontable/src/calculator/axisCalculation.d.ts +1 -1
  49. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.d.ts +10 -0
  50. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +10 -1
  51. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +10 -1
  52. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.d.ts +9 -0
  53. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +9 -1
  54. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +9 -1
  55. package/3rdparty/walkontable/src/calculator/viewportColumns.d.ts +1 -1
  56. package/3rdparty/walkontable/src/calculator/viewportRows.d.ts +1 -1
  57. package/3rdparty/walkontable/src/cell/range.d.ts +10 -0
  58. package/3rdparty/walkontable/src/cell/range.js +14 -3
  59. package/3rdparty/walkontable/src/cell/range.mjs +11 -0
  60. package/3rdparty/walkontable/src/core/_base.d.ts +21 -21
  61. package/3rdparty/walkontable/src/core/_base.js +58 -147
  62. package/3rdparty/walkontable/src/core/_base.mjs +17 -147
  63. package/3rdparty/walkontable/src/core/clone.d.ts +4 -14
  64. package/3rdparty/walkontable/src/core/clone.js +51 -5
  65. package/3rdparty/walkontable/src/core/clone.mjs +10 -5
  66. package/3rdparty/walkontable/src/core/core.d.ts +1 -5
  67. package/3rdparty/walkontable/src/core/core.js +52 -47
  68. package/3rdparty/walkontable/src/core/core.mjs +12 -48
  69. package/3rdparty/walkontable/src/domMeasure/geometryReader.d.mts +1 -0
  70. package/3rdparty/walkontable/src/domMeasure/geometryReader.d.ts +172 -0
  71. package/3rdparty/walkontable/src/domMeasure/geometryReader.js +19 -0
  72. package/3rdparty/walkontable/src/domMeasure/geometryReader.mjs +16 -0
  73. package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.d.mts +1 -0
  74. package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.d.ts +134 -0
  75. package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.js +200 -0
  76. package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.mjs +198 -0
  77. package/3rdparty/walkontable/src/event.d.ts +42 -12
  78. package/3rdparty/walkontable/src/event.js +262 -228
  79. package/3rdparty/walkontable/src/event.mjs +260 -227
  80. package/3rdparty/walkontable/src/facade/core.d.ts +6 -6
  81. package/3rdparty/walkontable/src/index.d.ts +1 -1
  82. package/3rdparty/walkontable/src/index.js +2 -2
  83. package/3rdparty/walkontable/src/index.mjs +1 -1
  84. package/3rdparty/walkontable/src/overlay/index.d.ts +6 -6
  85. package/3rdparty/walkontable/src/overlay/index.js +11 -11
  86. package/3rdparty/walkontable/src/overlay/index.mjs +6 -6
  87. package/3rdparty/walkontable/src/overlay/overlays.d.ts +375 -0
  88. package/3rdparty/walkontable/src/overlay/overlays.js +612 -0
  89. package/3rdparty/walkontable/src/overlay/overlays.mjs +601 -0
  90. package/3rdparty/walkontable/src/overlay/{_base.d.ts → regions/_base.d.ts} +65 -16
  91. package/3rdparty/walkontable/src/overlay/{_base.js → regions/_base.js} +160 -50
  92. package/3rdparty/walkontable/src/overlay/{_base.mjs → regions/_base.mjs} +163 -47
  93. package/3rdparty/walkontable/src/overlay/regions/bottomInlineStartCornerOverlay.d.mts +1 -0
  94. package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.d.ts → regions/bottomInlineStartCornerOverlay.d.ts} +5 -10
  95. package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.js → regions/bottomInlineStartCornerOverlay.js} +18 -20
  96. package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.mjs → regions/bottomInlineStartCornerOverlay.mjs} +18 -20
  97. package/3rdparty/walkontable/src/overlay/regions/bottomOverlay.d.mts +1 -0
  98. package/3rdparty/walkontable/src/overlay/{bottom.d.ts → regions/bottomOverlay.d.ts} +16 -11
  99. package/3rdparty/walkontable/src/overlay/{bottom.js → regions/bottomOverlay.js} +113 -66
  100. package/3rdparty/walkontable/src/overlay/{bottom.mjs → regions/bottomOverlay.mjs} +113 -66
  101. package/3rdparty/walkontable/src/overlay/regions/inlineStartOverlay.d.mts +1 -0
  102. package/3rdparty/walkontable/src/overlay/{inlineStart.d.ts → regions/inlineStartOverlay.d.ts} +17 -11
  103. package/3rdparty/walkontable/src/overlay/{inlineStart.js → regions/inlineStartOverlay.js} +122 -67
  104. package/3rdparty/walkontable/src/overlay/{inlineStart.mjs → regions/inlineStartOverlay.mjs} +122 -67
  105. package/3rdparty/walkontable/src/overlay/regions/topInlineStartCornerOverlay.d.mts +1 -0
  106. package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.d.ts → regions/topInlineStartCornerOverlay.d.ts} +5 -10
  107. package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.js → regions/topInlineStartCornerOverlay.js} +13 -16
  108. package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.mjs → regions/topInlineStartCornerOverlay.mjs} +13 -16
  109. package/3rdparty/walkontable/src/overlay/regions/topOverlay.d.mts +1 -0
  110. package/3rdparty/walkontable/src/overlay/{top.d.ts → regions/topOverlay.d.ts} +32 -11
  111. package/3rdparty/walkontable/src/overlay/{top.js → regions/topOverlay.js} +163 -77
  112. package/3rdparty/walkontable/src/overlay/{top.mjs → regions/topOverlay.mjs} +163 -77
  113. package/3rdparty/walkontable/src/overlay/resizeMonitor.d.mts +1 -0
  114. package/3rdparty/walkontable/src/overlay/resizeMonitor.d.ts +49 -0
  115. package/3rdparty/walkontable/src/overlay/resizeMonitor.js +154 -0
  116. package/3rdparty/walkontable/src/overlay/resizeMonitor.mjs +153 -0
  117. package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.d.mts +1 -0
  118. package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.d.ts +62 -0
  119. package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.js +290 -0
  120. package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.mjs +295 -0
  121. package/3rdparty/walkontable/src/overlay/scroll/scrollSync.d.mts +1 -0
  122. package/3rdparty/walkontable/src/overlay/scroll/scrollSync.d.ts +176 -0
  123. package/3rdparty/walkontable/src/overlay/scroll/scrollSync.js +549 -0
  124. package/3rdparty/walkontable/src/overlay/scroll/scrollSync.mjs +557 -0
  125. package/3rdparty/walkontable/src/overlay/spreaderSize.d.mts +1 -0
  126. package/3rdparty/walkontable/src/overlay/spreaderSize.d.ts +67 -0
  127. package/3rdparty/walkontable/src/overlay/spreaderSize.js +178 -0
  128. package/3rdparty/walkontable/src/overlay/spreaderSize.mjs +179 -0
  129. package/3rdparty/walkontable/src/{stickyScrollStrategy.d.ts → overlay/strategies/stickyScrollStrategy.d.ts} +33 -21
  130. package/3rdparty/walkontable/src/{stickyScrollStrategy.js → overlay/strategies/stickyScrollStrategy.js} +60 -41
  131. package/3rdparty/walkontable/src/{stickyScrollStrategy.mjs → overlay/strategies/stickyScrollStrategy.mjs} +58 -38
  132. package/3rdparty/walkontable/src/ports.d.mts +1 -0
  133. package/3rdparty/walkontable/src/ports.d.ts +54 -0
  134. package/3rdparty/walkontable/src/ports.js +23 -0
  135. package/3rdparty/walkontable/src/ports.mjs +24 -0
  136. package/3rdparty/walkontable/src/{renderer → render}/_base.d.ts +1 -1
  137. package/3rdparty/walkontable/src/{renderer → render}/cells.js +1 -1
  138. package/3rdparty/walkontable/src/{renderer → render}/cells.mjs +1 -1
  139. package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.d.ts +1 -0
  140. package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.js +43 -1
  141. package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.mjs +44 -2
  142. package/3rdparty/walkontable/src/render/index.d.mts +1 -0
  143. package/3rdparty/walkontable/src/{renderer → render}/index.d.ts +11 -3
  144. package/3rdparty/walkontable/src/{renderer → render}/index.js +13 -3
  145. package/3rdparty/walkontable/src/{renderer → render}/index.mjs +11 -1
  146. package/3rdparty/walkontable/src/{renderer → render}/rows.js +1 -1
  147. package/3rdparty/walkontable/src/{renderer → render}/rows.mjs +1 -1
  148. package/3rdparty/walkontable/src/render/tableRenderer.d.mts +1 -0
  149. package/3rdparty/walkontable/src/{renderer/table.d.ts → render/tableRenderer.d.ts} +12 -2
  150. package/3rdparty/walkontable/src/render/tableRenderer.js +382 -0
  151. package/3rdparty/walkontable/src/{renderer/table.mjs → render/tableRenderer.mjs} +159 -6
  152. package/3rdparty/walkontable/src/{scroll.d.ts → scroll/scroll.d.ts} +27 -10
  153. package/3rdparty/walkontable/src/{scroll.js → scroll/scroll.js} +108 -32
  154. package/3rdparty/walkontable/src/{scroll.mjs → scroll/scroll.mjs} +106 -29
  155. package/3rdparty/walkontable/src/selection/border/border.d.ts +313 -5
  156. package/3rdparty/walkontable/src/selection/border/border.js +861 -51
  157. package/3rdparty/walkontable/src/selection/border/border.mjs +863 -53
  158. package/3rdparty/walkontable/src/selection/border/types.d.ts +30 -0
  159. package/3rdparty/walkontable/src/selection/manager.js +237 -0
  160. package/3rdparty/walkontable/src/selection/manager.mjs +238 -1
  161. package/3rdparty/walkontable/src/settings/accessor.d.mts +2 -0
  162. package/3rdparty/walkontable/src/settings/accessor.d.ts +74 -0
  163. package/3rdparty/walkontable/src/settings/accessor.js +78 -0
  164. package/3rdparty/walkontable/src/settings/accessor.mjs +71 -0
  165. package/3rdparty/walkontable/src/settings/defaults.d.mts +1 -0
  166. package/3rdparty/walkontable/src/{settings.d.ts → settings/defaults.d.ts} +16 -77
  167. package/3rdparty/walkontable/src/settings/defaults.js +146 -0
  168. package/3rdparty/walkontable/src/settings/defaults.mjs +225 -0
  169. package/3rdparty/walkontable/src/settings/index.d.mts +1 -0
  170. package/3rdparty/walkontable/src/settings/index.d.ts +6 -0
  171. package/3rdparty/walkontable/src/settings/index.js +20 -0
  172. package/3rdparty/walkontable/src/settings/index.mjs +5 -0
  173. package/3rdparty/walkontable/src/table/baseTable.d.mts +2 -0
  174. package/3rdparty/walkontable/src/table/baseTable.d.ts +284 -0
  175. package/3rdparty/walkontable/src/table/baseTable.js +295 -0
  176. package/3rdparty/walkontable/src/table/baseTable.mjs +283 -0
  177. package/3rdparty/walkontable/src/table/cellAccess.d.mts +1 -0
  178. package/3rdparty/walkontable/src/table/cellAccess.d.ts +101 -0
  179. package/3rdparty/walkontable/src/table/cellAccess.js +238 -0
  180. package/3rdparty/walkontable/src/table/cellAccess.mjs +229 -0
  181. package/3rdparty/walkontable/src/table/domScaffold.d.mts +1 -0
  182. package/3rdparty/walkontable/src/table/domScaffold.d.ts +37 -0
  183. package/3rdparty/walkontable/src/table/domScaffold.js +145 -0
  184. package/3rdparty/walkontable/src/table/domScaffold.mjs +136 -0
  185. package/3rdparty/walkontable/src/table/drawCycle.d.mts +1 -0
  186. package/3rdparty/walkontable/src/table/drawCycle.d.ts +16 -0
  187. package/3rdparty/walkontable/src/table/drawCycle.js +405 -0
  188. package/3rdparty/walkontable/src/table/drawCycle.mjs +403 -0
  189. package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.d.mts +1 -0
  190. package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.d.ts +38 -0
  191. package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.js +15 -0
  192. package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.mjs +14 -0
  193. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.d.ts +1 -1
  194. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.js +1 -1
  195. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.mjs +1 -1
  196. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.d.ts +1 -1
  197. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.d.ts +1 -1
  198. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.js +1 -1
  199. package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.mjs +1 -1
  200. package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.d.mts +2 -0
  201. package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.d.ts +226 -0
  202. package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.js +251 -0
  203. package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.mjs +241 -0
  204. package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.d.mts +1 -0
  205. package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.d.ts +14 -0
  206. package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.js +196 -0
  207. package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.mjs +179 -0
  208. package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.d.mts +2 -0
  209. package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.d.ts +16 -0
  210. package/3rdparty/walkontable/src/table/{bottomInlineStartCorner.js → regions/bottomInlineStartCornerTable.js} +9 -12
  211. package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.mjs +21 -0
  212. package/3rdparty/walkontable/src/table/regions/bottomTable.d.mts +2 -0
  213. package/3rdparty/walkontable/src/table/regions/bottomTable.d.ts +15 -0
  214. package/3rdparty/walkontable/src/table/regions/bottomTable.js +35 -0
  215. package/3rdparty/walkontable/src/table/regions/bottomTable.mjs +20 -0
  216. package/3rdparty/walkontable/src/table/regions/inlineStartTable.d.mts +2 -0
  217. package/3rdparty/walkontable/src/table/regions/inlineStartTable.d.ts +12 -0
  218. package/3rdparty/walkontable/src/table/regions/inlineStartTable.js +32 -0
  219. package/3rdparty/walkontable/src/table/regions/inlineStartTable.mjs +17 -0
  220. package/3rdparty/walkontable/src/table/regions/masterTable.d.mts +2 -0
  221. package/3rdparty/walkontable/src/table/{master.d.ts → regions/masterTable.d.ts} +4 -13
  222. package/3rdparty/walkontable/src/table/{master.js → regions/masterTable.js} +23 -48
  223. package/3rdparty/walkontable/src/table/{master.mjs → regions/masterTable.mjs} +22 -47
  224. package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.d.mts +2 -0
  225. package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.d.ts +16 -0
  226. package/3rdparty/walkontable/src/table/{topInlineStartCorner.js → regions/topInlineStartCornerTable.js} +9 -12
  227. package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.mjs +21 -0
  228. package/3rdparty/walkontable/src/table/regions/topTable.d.mts +2 -0
  229. package/3rdparty/walkontable/src/table/regions/topTable.d.ts +15 -0
  230. package/3rdparty/walkontable/src/table/regions/topTable.js +35 -0
  231. package/3rdparty/walkontable/src/table/regions/topTable.mjs +20 -0
  232. package/3rdparty/walkontable/src/types.d.ts +7 -69
  233. package/3rdparty/walkontable/src/types.mjs +2 -1
  234. package/3rdparty/walkontable/src/utils/pointerToCoords.d.mts +1 -0
  235. package/3rdparty/walkontable/src/utils/{cellCoords.d.ts → pointerToCoords.d.ts} +24 -0
  236. package/3rdparty/walkontable/src/utils/pointerToCoords.js +181 -0
  237. package/3rdparty/walkontable/src/utils/pointerToCoords.mjs +186 -0
  238. package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.d.mts +1 -0
  239. package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.d.ts +40 -0
  240. package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.js +139 -0
  241. package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.mjs +131 -0
  242. package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.d.mts +1 -0
  243. package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.d.ts +133 -0
  244. package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.js +18 -0
  245. package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.mjs +18 -0
  246. package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.d.mts +1 -0
  247. package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.d.ts +17 -0
  248. package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.js +104 -0
  249. package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.mjs +99 -0
  250. package/3rdparty/walkontable/src/viewport/calculatorFactory.d.mts +1 -0
  251. package/3rdparty/walkontable/src/viewport/calculatorFactory.d.ts +84 -0
  252. package/3rdparty/walkontable/src/viewport/calculatorFactory.js +588 -0
  253. package/3rdparty/walkontable/src/viewport/calculatorFactory.mjs +601 -0
  254. package/3rdparty/walkontable/src/viewport/viewport.d.ts +267 -0
  255. package/3rdparty/walkontable/src/viewport/viewport.js +368 -0
  256. package/3rdparty/walkontable/src/viewport/viewport.mjs +360 -0
  257. package/3rdparty/walkontable/src/viewport/workspaceSize.d.mts +1 -0
  258. package/3rdparty/walkontable/src/viewport/workspaceSize.d.ts +59 -0
  259. package/3rdparty/walkontable/src/viewport/workspaceSize.js +284 -0
  260. package/3rdparty/walkontable/src/viewport/workspaceSize.mjs +282 -0
  261. package/3rdparty/walkontable/src/wire.d.mts +1 -0
  262. package/3rdparty/walkontable/src/wire.d.ts +81 -0
  263. package/3rdparty/walkontable/src/wire.js +56 -0
  264. package/3rdparty/walkontable/src/wire.mjs +56 -0
  265. package/CHANGELOG.md +125 -30
  266. package/LICENSE.txt +1 -1
  267. package/README.md +2 -2
  268. package/base.d.ts +13 -4
  269. package/base.js +2 -2
  270. package/base.mjs +2 -2
  271. package/cellTypes/checkboxType/accessors/valueSetter.d.ts +1 -1
  272. package/cellTypes/checkboxType/accessors/valueSetter.js +3 -1
  273. package/cellTypes/checkboxType/accessors/valueSetter.mjs +3 -1
  274. package/cellTypes/index.d.ts +3 -2
  275. package/cellTypes/index.js +9 -0
  276. package/cellTypes/index.mjs +5 -2
  277. package/cellTypes/intlDatetimeType/index.d.mts +1 -0
  278. package/cellTypes/intlDatetimeType/index.d.ts +1 -0
  279. package/cellTypes/intlDatetimeType/index.js +19 -0
  280. package/cellTypes/intlDatetimeType/index.mjs +1 -0
  281. package/cellTypes/intlDatetimeType/intlDatetimeType.d.mts +1 -0
  282. package/cellTypes/intlDatetimeType/intlDatetimeType.d.ts +16 -0
  283. package/cellTypes/intlDatetimeType/intlDatetimeType.js +31 -0
  284. package/cellTypes/intlDatetimeType/intlDatetimeType.mjs +15 -0
  285. package/cellTypes/multiSelectType/index.d.ts +1 -1
  286. package/cellTypes/multiSelectType/index.js +3 -0
  287. package/cellTypes/multiSelectType/index.mjs +1 -1
  288. package/cellTypes/multiSelectType/multiSelectType.d.ts +1 -0
  289. package/cellTypes/multiSelectType/multiSelectType.js +4 -0
  290. package/cellTypes/multiSelectType/multiSelectType.mjs +1 -0
  291. package/cellTypes/numericType/accessors/valueSetter.js +30 -2
  292. package/cellTypes/numericType/accessors/valueSetter.mjs +31 -3
  293. package/core/hooks/bucket.d.ts +40 -6
  294. package/core/hooks/bucket.js +108 -72
  295. package/core/hooks/bucket.mjs +113 -72
  296. package/core/hooks/constants.js +254 -16
  297. package/core/hooks/constants.mjs +254 -16
  298. package/core/hooks/index.js +27 -22
  299. package/core/hooks/index.mjs +27 -22
  300. package/core/layout/constants.d.ts +11 -0
  301. package/core/layout/constants.js +6 -0
  302. package/core/layout/constants.mjs +12 -0
  303. package/core/layout/domSlot.d.ts +3 -1
  304. package/core/layout/domSlot.js +16 -2
  305. package/core/layout/domSlot.mjs +16 -2
  306. package/core/layout/index.d.ts +2 -2
  307. package/core/layout/index.js +6 -0
  308. package/core/layout/index.mjs +2 -2
  309. package/core/layout/layoutManager.d.ts +13 -0
  310. package/core/layout/layoutManager.js +21 -4
  311. package/core/layout/layoutManager.mjs +22 -2
  312. package/core/settings.d.ts +102 -6
  313. package/core/types.d.ts +15 -1
  314. package/core/types.mjs +9 -0
  315. package/core.js +534 -88
  316. package/core.mjs +537 -91
  317. package/dataMap/dataMap.d.ts +3 -13
  318. package/dataMap/dataMap.js +100 -41
  319. package/dataMap/dataMap.mjs +101 -42
  320. package/dataMap/dataSource.js +4 -1
  321. package/dataMap/dataSource.mjs +4 -1
  322. package/dataMap/metaManager/index.d.ts +62 -8
  323. package/dataMap/metaManager/index.js +66 -0
  324. package/dataMap/metaManager/index.mjs +66 -0
  325. package/dataMap/metaManager/lazyFactoryMap.d.ts +68 -43
  326. package/dataMap/metaManager/lazyFactoryMap.js +497 -110
  327. package/dataMap/metaManager/lazyFactoryMap.mjs +511 -111
  328. package/dataMap/metaManager/metaLayers/cellMeta.d.ts +55 -8
  329. package/dataMap/metaManager/metaLayers/cellMeta.js +108 -8
  330. package/dataMap/metaManager/metaLayers/cellMeta.mjs +108 -8
  331. package/dataMap/metaManager/metaLayers/columnMeta.d.ts +2 -1
  332. package/dataMap/metaManager/metaLayers/columnMeta.js +1 -0
  333. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -0
  334. package/dataMap/metaManager/metaSchema.js +759 -39
  335. package/dataMap/metaManager/metaSchema.mjs +759 -39
  336. package/dataMap/metaManager/mods/dynamicCellMeta.d.ts +24 -10
  337. package/dataMap/metaManager/mods/dynamicCellMeta.js +252 -28
  338. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +253 -29
  339. package/dataMap/sourceDataValidator.d.ts +13 -21
  340. package/dataMap/sourceDataValidator.js +39 -29
  341. package/dataMap/sourceDataValidator.mjs +50 -33
  342. package/dist/handsontable.full.js +30344 -11326
  343. package/dist/handsontable.full.min.js +168 -112
  344. package/dist/handsontable.js +31421 -12464
  345. package/dist/handsontable.min.js +172 -116
  346. package/dist/languages/all.js +2 -1
  347. package/dist/languages/all.min.js +1 -1
  348. package/dist/languages/fa-IR.js +2 -1
  349. package/dist/languages/fa-IR.min.js +1 -1
  350. package/dist/themes/classic.js +9 -3
  351. package/dist/themes/classic.min.js +4 -4
  352. package/dist/themes/horizon.js +9 -3
  353. package/dist/themes/horizon.min.js +4 -4
  354. package/dist/themes/main.js +9 -3
  355. package/dist/themes/main.min.js +4 -4
  356. package/dist/themes/static/variables/colors/ant.js +3 -3
  357. package/dist/themes/static/variables/colors/ant.min.js +3 -3
  358. package/dist/themes/static/variables/colors/classic.js +3 -3
  359. package/dist/themes/static/variables/colors/classic.min.js +3 -3
  360. package/dist/themes/static/variables/colors/horizon.js +3 -3
  361. package/dist/themes/static/variables/colors/horizon.min.js +3 -3
  362. package/dist/themes/static/variables/colors/main.js +3 -3
  363. package/dist/themes/static/variables/colors/main.min.js +3 -3
  364. package/dist/themes/static/variables/colors/material.js +3 -3
  365. package/dist/themes/static/variables/colors/material.min.js +3 -3
  366. package/dist/themes/static/variables/colors/shadcn.js +3 -3
  367. package/dist/themes/static/variables/colors/shadcn.min.js +3 -3
  368. package/dist/themes/static/variables/density.js +3 -3
  369. package/dist/themes/static/variables/density.min.js +3 -3
  370. package/dist/themes/static/variables/helpers/iconsMap.js +4 -9
  371. package/dist/themes/static/variables/helpers/iconsMap.min.js +4 -9
  372. package/dist/themes/static/variables/icons/horizon.js +3 -3
  373. package/dist/themes/static/variables/icons/horizon.min.js +3 -3
  374. package/dist/themes/static/variables/icons/main.js +3 -3
  375. package/dist/themes/static/variables/icons/main.min.js +3 -3
  376. package/dist/themes/static/variables/sizing.js +3 -3
  377. package/dist/themes/static/variables/sizing.min.js +3 -3
  378. package/dist/themes/static/variables/tokens/classic.js +9 -3
  379. package/dist/themes/static/variables/tokens/classic.min.js +4 -4
  380. package/dist/themes/static/variables/tokens/horizon.js +9 -3
  381. package/dist/themes/static/variables/tokens/horizon.min.js +4 -4
  382. package/dist/themes/static/variables/tokens/main.js +9 -3
  383. package/dist/themes/static/variables/tokens/main.min.js +4 -4
  384. package/editorManager.js +152 -3
  385. package/editorManager.mjs +152 -3
  386. package/editors/autocompleteEditor/autocompleteEditor.js +58 -11
  387. package/editors/autocompleteEditor/autocompleteEditor.mjs +59 -12
  388. package/editors/baseEditor/baseEditor.d.ts +15 -3
  389. package/editors/baseEditor/baseEditor.js +5 -3
  390. package/editors/baseEditor/baseEditor.mjs +15 -3
  391. package/editors/factory.js +5 -2
  392. package/editors/factory.mjs +5 -2
  393. package/editors/index.d.ts +3 -2
  394. package/editors/index.js +8 -0
  395. package/editors/index.mjs +3 -1
  396. package/editors/intlDatetimeEditor/index.d.mts +1 -0
  397. package/editors/intlDatetimeEditor/index.d.ts +1 -0
  398. package/editors/intlDatetimeEditor/index.js +19 -0
  399. package/editors/intlDatetimeEditor/index.mjs +1 -0
  400. package/editors/intlDatetimeEditor/intlDatetimeEditor.d.mts +1 -0
  401. package/editors/intlDatetimeEditor/intlDatetimeEditor.d.ts +42 -0
  402. package/editors/intlDatetimeEditor/intlDatetimeEditor.js +108 -0
  403. package/editors/intlDatetimeEditor/intlDatetimeEditor.mjs +93 -0
  404. package/editors/multiSelectEditor/multiSelectEditor.js +11 -9
  405. package/editors/multiSelectEditor/multiSelectEditor.mjs +12 -10
  406. package/editors/selectEditor/selectEditor.js +2 -1
  407. package/editors/selectEditor/selectEditor.mjs +2 -1
  408. package/editors/textEditor/textEditor.js +1 -1
  409. package/editors/textEditor/textEditor.mjs +2 -2
  410. package/eventManager.d.ts +3 -3
  411. package/focusManager/grid.d.ts +28 -0
  412. package/focusManager/grid.js +85 -2
  413. package/focusManager/grid.mjs +81 -3
  414. package/focusManager/scopeManager.js +1 -1
  415. package/focusManager/scopeManager.mjs +2 -2
  416. package/handsontable-non-commercial-license.pdf +0 -0
  417. package/helpers/array.d.ts +25 -0
  418. package/helpers/array.js +41 -4
  419. package/helpers/array.mjs +56 -4
  420. package/helpers/console.d.ts +25 -3
  421. package/helpers/console.js +40 -7
  422. package/helpers/console.mjs +52 -7
  423. package/helpers/dateTime.d.ts +14 -0
  424. package/helpers/dateTime.js +74 -2
  425. package/helpers/dateTime.mjs +73 -2
  426. package/helpers/dom/cellCoords.js +156 -13
  427. package/helpers/dom/cellCoords.mjs +156 -13
  428. package/helpers/dom/element.d.ts +47 -8
  429. package/helpers/dom/element.js +104 -18
  430. package/helpers/dom/element.mjs +132 -23
  431. package/helpers/dom/event.d.ts +58 -0
  432. package/helpers/dom/event.js +39 -0
  433. package/helpers/dom/event.mjs +63 -0
  434. package/helpers/dom/inputOrigin.d.mts +1 -0
  435. package/helpers/dom/inputOrigin.d.ts +38 -0
  436. package/helpers/dom/inputOrigin.js +54 -0
  437. package/helpers/dom/inputOrigin.mjs +48 -0
  438. package/helpers/errors.d.ts +5 -0
  439. package/helpers/errors.js +10 -6
  440. package/helpers/errors.mjs +10 -6
  441. package/helpers/feature.d.ts +19 -0
  442. package/helpers/feature.js +21 -0
  443. package/helpers/feature.mjs +30 -0
  444. package/helpers/function.d.ts +1 -1
  445. package/helpers/function.js +4 -1
  446. package/helpers/function.mjs +4 -1
  447. package/helpers/mixed.d.ts +103 -0
  448. package/helpers/mixed.js +388 -4
  449. package/helpers/mixed.mjs +428 -4
  450. package/helpers/moves.js +2 -1
  451. package/helpers/moves.mjs +2 -1
  452. package/helpers/number.d.ts +22 -0
  453. package/helpers/number.js +49 -0
  454. package/helpers/number.mjs +66 -0
  455. package/helpers/string.d.ts +14 -10
  456. package/helpers/string.js +17 -9
  457. package/helpers/string.mjs +27 -17
  458. package/helpers/templateString.d.mts +1 -0
  459. package/helpers/templateString.d.ts +13 -0
  460. package/helpers/templateString.js +29 -0
  461. package/helpers/templateString.mjs +19 -0
  462. package/helpers/uiButton.d.mts +1 -0
  463. package/helpers/uiButton.d.ts +21 -0
  464. package/helpers/uiButton.js +37 -0
  465. package/helpers/uiButton.mjs +31 -0
  466. package/i18n/languages/fa-IR.d.ts +1 -0
  467. package/i18n/languages/fa-IR.js +1 -0
  468. package/i18n/languages/fa-IR.mjs +1 -0
  469. package/index.d.ts +3 -3
  470. package/languages/all.js +2 -1
  471. package/languages/fa-IR.js +2 -1
  472. package/languages/fa-IR.mjs +1 -0
  473. package/languages/index.js +2 -1
  474. package/package.json +61 -1
  475. package/plugins/autoColumnSize/autoColumnSize.d.ts +24 -1
  476. package/plugins/autoColumnSize/autoColumnSize.js +501 -82
  477. package/plugins/autoColumnSize/autoColumnSize.mjs +508 -83
  478. package/plugins/autoRowSize/autoRowSize.d.ts +40 -5
  479. package/plugins/autoRowSize/autoRowSize.js +68 -24
  480. package/plugins/autoRowSize/autoRowSize.mjs +98 -29
  481. package/plugins/autofill/autofill.js +30 -12
  482. package/plugins/autofill/autofill.mjs +30 -12
  483. package/plugins/base/base.d.ts +10 -0
  484. package/plugins/collapsibleColumns/collapsibleColumns.d.ts +4 -0
  485. package/plugins/collapsibleColumns/collapsibleColumns.js +89 -8
  486. package/plugins/collapsibleColumns/collapsibleColumns.mjs +93 -8
  487. package/plugins/columnSorting/columnSorting.d.ts +31 -2
  488. package/plugins/columnSorting/columnSorting.js +151 -24
  489. package/plugins/columnSorting/columnSorting.mjs +153 -26
  490. package/plugins/columnSorting/columnStatesManager.d.ts +1 -1
  491. package/plugins/columnSorting/columnStatesManager.js +1 -7
  492. package/plugins/columnSorting/columnStatesManager.mjs +1 -7
  493. package/plugins/columnSorting/domHelpers.d.ts +3 -0
  494. package/plugins/columnSorting/domHelpers.js +9 -0
  495. package/plugins/columnSorting/domHelpers.mjs +3 -3
  496. package/plugins/columnSorting/rootComparator.js +21 -16
  497. package/plugins/columnSorting/rootComparator.mjs +21 -16
  498. package/plugins/columnSorting/sortFunction/checkbox.js +7 -5
  499. package/plugins/columnSorting/sortFunction/checkbox.mjs +7 -5
  500. package/plugins/columnSorting/sortFunction/default.js +15 -4
  501. package/plugins/columnSorting/sortFunction/default.mjs +15 -4
  502. package/plugins/columnSorting/sortFunction/intlDatetime.d.mts +1 -0
  503. package/plugins/columnSorting/sortFunction/intlDatetime.d.ts +10 -0
  504. package/plugins/columnSorting/sortFunction/intlDatetime.js +23 -0
  505. package/plugins/columnSorting/sortFunction/intlDatetime.mjs +12 -0
  506. package/plugins/columnSorting/sortService/registry.js +2 -0
  507. package/plugins/columnSorting/sortService/registry.mjs +2 -0
  508. package/plugins/columnSorting/utils.d.ts +8 -0
  509. package/plugins/columnSorting/utils.js +37 -45
  510. package/plugins/columnSorting/utils.mjs +42 -47
  511. package/plugins/columnSummary/columnSummary.js +9 -5
  512. package/plugins/columnSummary/columnSummary.mjs +9 -5
  513. package/plugins/columnSummary/endpoints.d.ts +69 -2
  514. package/plugins/columnSummary/endpoints.js +181 -29
  515. package/plugins/columnSummary/endpoints.mjs +181 -29
  516. package/plugins/comments/commentEditor.js +1 -1
  517. package/plugins/comments/commentEditor.mjs +2 -2
  518. package/plugins/contextMenu/contextMenu.d.ts +12 -1
  519. package/plugins/contextMenu/contextMenu.js +30 -6
  520. package/plugins/contextMenu/contextMenu.mjs +30 -6
  521. package/plugins/contextMenu/index.d.ts +1 -1
  522. package/plugins/contextMenu/menu/menu.d.ts +22 -1
  523. package/plugins/contextMenu/menu/menu.js +211 -3
  524. package/plugins/contextMenu/menu/menu.mjs +212 -4
  525. package/plugins/contextMenu/menu/menuItemRenderer.js +2 -2
  526. package/plugins/contextMenu/menu/menuItemRenderer.mjs +2 -2
  527. package/plugins/contextMenu/predefinedItems/alignment.js +14 -14
  528. package/plugins/contextMenu/predefinedItems/alignment.mjs +14 -14
  529. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  530. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -1
  531. package/plugins/contextMenu/predefinedItems/readOnly.js +3 -3
  532. package/plugins/contextMenu/predefinedItems/readOnly.mjs +3 -3
  533. package/plugins/contextMenu/utils.js +1 -1
  534. package/plugins/contextMenu/utils.mjs +1 -1
  535. package/plugins/copyPaste/copyPaste.js +70 -16
  536. package/plugins/copyPaste/copyPaste.mjs +71 -17
  537. package/plugins/copyPaste/copyableRanges.js +6 -2
  538. package/plugins/copyPaste/copyableRanges.mjs +6 -2
  539. package/plugins/copyPaste/pasteEvent.d.ts +1 -1
  540. package/plugins/customBorders/customBorders.d.ts +21 -40
  541. package/plugins/customBorders/customBorders.js +1080 -201
  542. package/plugins/customBorders/customBorders.mjs +1082 -203
  543. package/plugins/customBorders/utils.d.ts +71 -0
  544. package/plugins/customBorders/utils.js +63 -0
  545. package/plugins/customBorders/utils.mjs +101 -0
  546. package/plugins/dataProvider/dataProvider.d.ts +2 -1
  547. package/plugins/dataProvider/dataProvider.js +22 -7
  548. package/plugins/dataProvider/dataProvider.mjs +22 -7
  549. package/plugins/dataProvider/query/crud.js +1 -1
  550. package/plugins/dataProvider/query/crud.mjs +1 -1
  551. package/plugins/dialog/dialog.js +14 -9
  552. package/plugins/dialog/dialog.mjs +14 -9
  553. package/plugins/dialog/templates/confirm.d.ts +1 -1
  554. package/plugins/dialog/templates/confirm.js +2 -1
  555. package/plugins/dialog/templates/confirm.mjs +2 -1
  556. package/plugins/dialog/ui.d.ts +5 -3
  557. package/plugins/dialog/ui.js +12 -4
  558. package/plugins/dialog/ui.mjs +12 -4
  559. package/plugins/dragToScroll/dragToScroll.d.ts +2 -2
  560. package/plugins/dragToScroll/dragToScroll.js +150 -14
  561. package/plugins/dragToScroll/dragToScroll.mjs +151 -15
  562. package/plugins/dropdownMenu/dropdownMenu.d.ts +5 -1
  563. package/plugins/dropdownMenu/dropdownMenu.js +45 -3
  564. package/plugins/dropdownMenu/dropdownMenu.mjs +46 -4
  565. package/plugins/dropdownMenu/index.d.ts +1 -0
  566. package/plugins/emptyDataState/emptyDataState.js +4 -6
  567. package/plugins/emptyDataState/emptyDataState.mjs +4 -6
  568. package/plugins/emptyDataState/ui.js +2 -1
  569. package/plugins/emptyDataState/ui.mjs +2 -1
  570. package/plugins/exportFile/dataProvider.js +7 -9
  571. package/plugins/exportFile/dataProvider.mjs +7 -9
  572. package/plugins/exportFile/exportFile.d.ts +10 -3
  573. package/plugins/exportFile/types/_base.js +4 -10
  574. package/plugins/exportFile/types/_base.mjs +4 -10
  575. package/plugins/exportFile/types/xlsx/cell-style.js +4 -2
  576. package/plugins/exportFile/types/xlsx/cell-style.mjs +4 -2
  577. package/plugins/exportFile/types/xlsx/date-utils.d.ts +15 -0
  578. package/plugins/exportFile/types/xlsx/date-utils.js +31 -0
  579. package/plugins/exportFile/types/xlsx/date-utils.mjs +36 -0
  580. package/plugins/exportFile/types/xlsx.js +13 -9
  581. package/plugins/exportFile/types/xlsx.mjs +14 -10
  582. package/plugins/exportFile/utils.d.ts +9 -1
  583. package/plugins/exportFile/utils.js +27 -4
  584. package/plugins/exportFile/utils.mjs +40 -2
  585. package/plugins/filters/component/_base.d.ts +1 -2
  586. package/plugins/filters/component/_base.js +1 -2
  587. package/plugins/filters/component/_base.mjs +1 -2
  588. package/plugins/filters/component/condition.d.ts +1 -0
  589. package/plugins/filters/component/condition.js +2 -0
  590. package/plugins/filters/component/condition.mjs +2 -0
  591. package/plugins/filters/component/value.d.ts +5 -6
  592. package/plugins/filters/component/value.js +53 -34
  593. package/plugins/filters/component/value.mjs +54 -35
  594. package/plugins/filters/condition/date/after.js +2 -1
  595. package/plugins/filters/condition/date/after.mjs +2 -1
  596. package/plugins/filters/condition/date/afterOrEqual.js +2 -1
  597. package/plugins/filters/condition/date/afterOrEqual.mjs +2 -1
  598. package/plugins/filters/condition/date/before.js +2 -1
  599. package/plugins/filters/condition/date/before.mjs +2 -1
  600. package/plugins/filters/condition/date/beforeOrEqual.js +2 -1
  601. package/plugins/filters/condition/date/beforeOrEqual.mjs +2 -1
  602. package/plugins/filters/condition/equal.d.ts +7 -0
  603. package/plugins/filters/condition/equal.js +4 -0
  604. package/plugins/filters/condition/equal.mjs +10 -0
  605. package/plugins/filters/condition/intlDatetime/after.d.mts +1 -0
  606. package/plugins/filters/condition/intlDatetime/after.d.ts +18 -0
  607. package/plugins/filters/condition/intlDatetime/after.js +77 -0
  608. package/plugins/filters/condition/intlDatetime/after.mjs +22 -0
  609. package/plugins/filters/condition/intlDatetime/afterOrEqual.d.mts +1 -0
  610. package/plugins/filters/condition/intlDatetime/afterOrEqual.d.ts +18 -0
  611. package/plugins/filters/condition/intlDatetime/afterOrEqual.js +77 -0
  612. package/plugins/filters/condition/intlDatetime/afterOrEqual.mjs +22 -0
  613. package/plugins/filters/condition/intlDatetime/before.d.mts +1 -0
  614. package/plugins/filters/condition/intlDatetime/before.d.ts +18 -0
  615. package/plugins/filters/condition/intlDatetime/before.js +77 -0
  616. package/plugins/filters/condition/intlDatetime/before.mjs +22 -0
  617. package/plugins/filters/condition/intlDatetime/beforeOrEqual.d.mts +1 -0
  618. package/plugins/filters/condition/intlDatetime/beforeOrEqual.d.ts +18 -0
  619. package/plugins/filters/condition/intlDatetime/beforeOrEqual.js +77 -0
  620. package/plugins/filters/condition/intlDatetime/beforeOrEqual.mjs +22 -0
  621. package/plugins/filters/condition/intlDatetime/between.d.mts +1 -0
  622. package/plugins/filters/condition/intlDatetime/between.d.ts +18 -0
  623. package/plugins/filters/condition/intlDatetime/between.js +78 -0
  624. package/plugins/filters/condition/intlDatetime/between.mjs +23 -0
  625. package/plugins/filters/condition/intlDatetime/today.d.mts +1 -0
  626. package/plugins/filters/condition/intlDatetime/today.d.ts +17 -0
  627. package/plugins/filters/condition/intlDatetime/today.js +76 -0
  628. package/plugins/filters/condition/intlDatetime/today.mjs +20 -0
  629. package/plugins/filters/condition/intlDatetime/tomorrow.d.mts +1 -0
  630. package/plugins/filters/condition/intlDatetime/tomorrow.d.ts +17 -0
  631. package/plugins/filters/condition/intlDatetime/tomorrow.js +77 -0
  632. package/plugins/filters/condition/intlDatetime/tomorrow.mjs +21 -0
  633. package/plugins/filters/condition/intlDatetime/yesterday.d.mts +1 -0
  634. package/plugins/filters/condition/intlDatetime/yesterday.d.ts +17 -0
  635. package/plugins/filters/condition/intlDatetime/yesterday.js +77 -0
  636. package/plugins/filters/condition/intlDatetime/yesterday.mjs +21 -0
  637. package/plugins/filters/conditionCollection.js +4 -7
  638. package/plugins/filters/conditionCollection.mjs +4 -7
  639. package/plugins/filters/conditionUpdateObserver.d.ts +2 -2
  640. package/plugins/filters/conditionUpdateObserver.js +148 -49
  641. package/plugins/filters/conditionUpdateObserver.mjs +148 -49
  642. package/plugins/filters/constants.d.ts +1 -0
  643. package/plugins/filters/constants.js +31 -0
  644. package/plugins/filters/constants.mjs +28 -0
  645. package/plugins/filters/dataFilter.d.ts +4 -12
  646. package/plugins/filters/dataFilter.js +7 -19
  647. package/plugins/filters/dataFilter.mjs +8 -20
  648. package/plugins/filters/filters.d.ts +33 -9
  649. package/plugins/filters/filters.js +91 -31
  650. package/plugins/filters/filters.mjs +92 -32
  651. package/plugins/filters/sortComparators.d.ts +9 -2
  652. package/plugins/filters/sortComparators.js +34 -1
  653. package/plugins/filters/sortComparators.mjs +38 -3
  654. package/plugins/filters/ui/input.d.ts +4 -0
  655. package/plugins/filters/ui/input.js +18 -6
  656. package/plugins/filters/ui/input.mjs +18 -6
  657. package/plugins/filters/ui/multipleSelect.js +27 -4
  658. package/plugins/filters/ui/multipleSelect.mjs +27 -4
  659. package/plugins/filters/ui/select.js +1 -1
  660. package/plugins/filters/ui/select.mjs +1 -1
  661. package/plugins/formulas/engine/register.d.ts +5 -4
  662. package/plugins/formulas/engine/register.js +5 -2
  663. package/plugins/formulas/engine/register.mjs +9 -5
  664. package/plugins/formulas/engine/settings.d.ts +2 -6
  665. package/plugins/formulas/engine/settings.js +29 -4
  666. package/plugins/formulas/engine/settings.mjs +29 -4
  667. package/plugins/formulas/engine/types.d.ts +12 -2
  668. package/plugins/formulas/formulas.d.ts +39 -0
  669. package/plugins/formulas/formulas.js +789 -47
  670. package/plugins/formulas/formulas.mjs +793 -49
  671. package/plugins/formulas/hyperlinkUrl.d.mts +1 -0
  672. package/plugins/formulas/hyperlinkUrl.d.ts +12 -0
  673. package/plugins/formulas/hyperlinkUrl.js +32 -0
  674. package/plugins/formulas/hyperlinkUrl.mjs +32 -0
  675. package/plugins/formulas/indexSyncer/axisSyncer.d.ts +1 -0
  676. package/plugins/formulas/indexSyncer/axisSyncer.js +72 -15
  677. package/plugins/formulas/indexSyncer/axisSyncer.mjs +72 -15
  678. package/plugins/formulas/utils.d.ts +9 -0
  679. package/plugins/formulas/utils.js +21 -0
  680. package/plugins/formulas/utils.mjs +25 -0
  681. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +6 -1
  682. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +6 -1
  683. package/plugins/hiddenColumns/hiddenColumns.js +6 -3
  684. package/plugins/hiddenColumns/hiddenColumns.mjs +6 -3
  685. package/plugins/hiddenRows/contextMenuItem/showRow.js +6 -1
  686. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +6 -1
  687. package/plugins/hiddenRows/hiddenRows.js +6 -3
  688. package/plugins/hiddenRows/hiddenRows.mjs +6 -3
  689. package/plugins/index.d.ts +5 -1
  690. package/plugins/index.js +10 -0
  691. package/plugins/index.mjs +5 -1
  692. package/plugins/loading/content.d.ts +5 -3
  693. package/plugins/loading/content.js +3 -2
  694. package/plugins/loading/content.mjs +8 -5
  695. package/plugins/loading/loading.d.ts +5 -2
  696. package/plugins/loading/loading.mjs +5 -2
  697. package/plugins/manualColumnMove/manualColumnMove.d.ts +10 -0
  698. package/plugins/manualColumnMove/manualColumnMove.js +122 -20
  699. package/plugins/manualColumnMove/manualColumnMove.mjs +123 -21
  700. package/plugins/manualColumnResize/manualColumnResize.d.ts +20 -7
  701. package/plugins/manualColumnResize/manualColumnResize.js +33 -13
  702. package/plugins/manualColumnResize/manualColumnResize.mjs +34 -14
  703. package/plugins/manualRowResize/manualRowResize.d.ts +21 -8
  704. package/plugins/manualRowResize/manualRowResize.js +34 -14
  705. package/plugins/manualRowResize/manualRowResize.mjs +35 -15
  706. package/plugins/mergeCells/cellCoords.d.ts +8 -0
  707. package/plugins/mergeCells/cellCoords.js +11 -0
  708. package/plugins/mergeCells/cellCoords.mjs +11 -0
  709. package/plugins/mergeCells/cellsCollection.d.ts +46 -2
  710. package/plugins/mergeCells/cellsCollection.js +189 -68
  711. package/plugins/mergeCells/cellsCollection.mjs +189 -68
  712. package/plugins/mergeCells/focusOrder.d.ts +26 -20
  713. package/plugins/mergeCells/focusOrder.js +358 -177
  714. package/plugins/mergeCells/focusOrder.mjs +363 -172
  715. package/plugins/mergeCells/mergeCells.d.ts +13 -8
  716. package/plugins/mergeCells/mergeCells.js +322 -64
  717. package/plugins/mergeCells/mergeCells.mjs +322 -64
  718. package/plugins/moveCells/helpers.d.mts +1 -0
  719. package/plugins/moveCells/helpers.d.ts +21 -0
  720. package/plugins/moveCells/helpers.js +20 -0
  721. package/plugins/moveCells/helpers.mjs +15 -0
  722. package/plugins/moveCells/index.d.mts +1 -0
  723. package/plugins/moveCells/index.d.ts +1 -0
  724. package/plugins/moveCells/index.js +22 -0
  725. package/plugins/moveCells/index.mjs +1 -0
  726. package/plugins/moveCells/moveCells.d.mts +1 -0
  727. package/plugins/moveCells/moveCells.d.ts +80 -0
  728. package/plugins/moveCells/moveCells.js +602 -0
  729. package/plugins/moveCells/moveCells.mjs +587 -0
  730. package/plugins/multiColumnSorting/multiColumnSorting.d.ts +8 -8
  731. package/plugins/multiColumnSorting/multiColumnSorting.js +11 -16
  732. package/plugins/multiColumnSorting/multiColumnSorting.mjs +11 -16
  733. package/plugins/multiColumnSorting/rootComparator.js +26 -19
  734. package/plugins/multiColumnSorting/rootComparator.mjs +26 -19
  735. package/plugins/multipleSelectionHandles/multipleSelectionHandles.d.ts +19 -4
  736. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +273 -58
  737. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +273 -58
  738. package/plugins/nestedHeaders/nestedHeaders.d.ts +10 -1
  739. package/plugins/nestedHeaders/nestedHeaders.js +222 -23
  740. package/plugins/nestedHeaders/nestedHeaders.mjs +222 -23
  741. package/plugins/nestedHeaders/stateManager/columnArrangement.d.mts +1 -0
  742. package/plugins/nestedHeaders/stateManager/columnArrangement.d.ts +37 -0
  743. package/plugins/nestedHeaders/stateManager/columnArrangement.js +35 -0
  744. package/plugins/nestedHeaders/stateManager/columnArrangement.mjs +30 -0
  745. package/plugins/nestedHeaders/stateManager/deriveSettings.d.mts +1 -0
  746. package/plugins/nestedHeaders/stateManager/deriveSettings.d.ts +57 -0
  747. package/plugins/nestedHeaders/stateManager/deriveSettings.js +115 -0
  748. package/plugins/nestedHeaders/stateManager/deriveSettings.mjs +135 -0
  749. package/plugins/nestedHeaders/stateManager/headersTree.d.ts +14 -1
  750. package/plugins/nestedHeaders/stateManager/index.d.ts +76 -13
  751. package/plugins/nestedHeaders/stateManager/index.js +381 -38
  752. package/plugins/nestedHeaders/stateManager/index.mjs +382 -39
  753. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +3 -2
  754. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +3 -2
  755. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -1
  756. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -1
  757. package/plugins/nestedHeaders/stateManager/sourceSettings.d.ts +23 -6
  758. package/plugins/nestedHeaders/stateManager/sourceSettings.js +20 -4
  759. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +20 -4
  760. package/plugins/nestedHeaders/stateManager/utils.d.ts +17 -1
  761. package/plugins/nestedHeaders/stateManager/utils.js +6 -1
  762. package/plugins/nestedHeaders/stateManager/utils.mjs +6 -1
  763. package/plugins/nestedHeaders/utils/ghostTable.js +21 -8
  764. package/plugins/nestedHeaders/utils/ghostTable.mjs +21 -8
  765. package/plugins/nestedRows/data/dataManager.d.ts +4 -1
  766. package/plugins/nestedRows/data/dataManager.js +10 -4
  767. package/plugins/nestedRows/data/dataManager.mjs +10 -4
  768. package/plugins/nestedRows/nestedRows.d.ts +127 -1
  769. package/plugins/nestedRows/nestedRows.js +330 -8
  770. package/plugins/nestedRows/nestedRows.mjs +330 -8
  771. package/plugins/nestedRows/ui/collapsing.d.ts +58 -0
  772. package/plugins/nestedRows/ui/collapsing.js +236 -40
  773. package/plugins/nestedRows/ui/collapsing.mjs +236 -40
  774. package/plugins/notification/notification.d.ts +2 -1
  775. package/plugins/notification/notification.js +6 -3
  776. package/plugins/notification/notification.mjs +6 -3
  777. package/plugins/notification/ui.d.ts +8 -5
  778. package/plugins/notification/ui.js +18 -6
  779. package/plugins/notification/ui.mjs +18 -6
  780. package/plugins/pagination/pagination.js +2 -2
  781. package/plugins/pagination/pagination.mjs +2 -2
  782. package/plugins/search/search.js +23 -2
  783. package/plugins/search/search.mjs +23 -2
  784. package/plugins/selectionHandles/helpers.d.mts +1 -0
  785. package/plugins/selectionHandles/helpers.d.ts +17 -0
  786. package/plugins/selectionHandles/helpers.js +16 -0
  787. package/plugins/selectionHandles/helpers.mjs +11 -0
  788. package/plugins/selectionHandles/index.d.mts +1 -0
  789. package/plugins/selectionHandles/index.d.ts +1 -0
  790. package/plugins/selectionHandles/index.js +22 -0
  791. package/plugins/selectionHandles/index.mjs +1 -0
  792. package/plugins/selectionHandles/selectionHandles.d.mts +1 -0
  793. package/plugins/selectionHandles/selectionHandles.d.ts +52 -0
  794. package/plugins/selectionHandles/selectionHandles.js +342 -0
  795. package/plugins/selectionHandles/selectionHandles.mjs +323 -0
  796. package/plugins/trimRows/trimRows.d.ts +1 -1
  797. package/plugins/trimRows/trimRows.js +6 -2
  798. package/plugins/trimRows/trimRows.mjs +6 -2
  799. package/plugins/types.d.ts +4 -0
  800. package/plugins/undoRedo/actions/cellAlignment.js +1 -1
  801. package/plugins/undoRedo/actions/cellAlignment.mjs +1 -1
  802. package/plugins/undoRedo/actions/createColumn.js +4 -1
  803. package/plugins/undoRedo/actions/createColumn.mjs +4 -1
  804. package/plugins/undoRedo/actions/createRow.js +4 -1
  805. package/plugins/undoRedo/actions/createRow.mjs +4 -1
  806. package/plugins/undoRedo/actions/fixedCounts.d.mts +1 -0
  807. package/plugins/undoRedo/actions/fixedCounts.d.ts +36 -0
  808. package/plugins/undoRedo/actions/fixedCounts.js +63 -0
  809. package/plugins/undoRedo/actions/fixedCounts.mjs +62 -0
  810. package/plugins/undoRedo/actions/index.js +2 -0
  811. package/plugins/undoRedo/actions/index.mjs +2 -0
  812. package/plugins/undoRedo/actions/moveCells.d.mts +1 -0
  813. package/plugins/undoRedo/actions/moveCells.d.ts +104 -0
  814. package/plugins/undoRedo/actions/moveCells.js +225 -0
  815. package/plugins/undoRedo/actions/moveCells.mjs +227 -0
  816. package/plugins/undoRedo/actions/removeColumn.d.ts +18 -2
  817. package/plugins/undoRedo/actions/removeColumn.js +11 -4
  818. package/plugins/undoRedo/actions/removeColumn.mjs +12 -5
  819. package/plugins/undoRedo/actions/removeRow.js +2 -57
  820. package/plugins/undoRedo/actions/removeRow.mjs +2 -57
  821. package/plugins/undoRedo/undoRedo.d.ts +26 -0
  822. package/plugins/undoRedo/undoRedo.js +36 -2
  823. package/plugins/undoRedo/undoRedo.mjs +36 -2
  824. package/plugins/undoRedo/utils.d.ts +29 -0
  825. package/plugins/undoRedo/utils.js +55 -3
  826. package/plugins/undoRedo/utils.mjs +59 -0
  827. package/renderSizeProbe.d.mts +1 -0
  828. package/renderSizeProbe.d.ts +60 -0
  829. package/renderSizeProbe.js +163 -0
  830. package/renderSizeProbe.mjs +176 -0
  831. package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
  832. package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
  833. package/renderers/index.d.ts +3 -2
  834. package/renderers/index.js +8 -0
  835. package/renderers/index.mjs +3 -1
  836. package/renderers/intlDatetimeRenderer/index.d.mts +1 -0
  837. package/renderers/intlDatetimeRenderer/index.d.ts +1 -0
  838. package/renderers/intlDatetimeRenderer/index.js +22 -0
  839. package/renderers/intlDatetimeRenderer/index.mjs +1 -0
  840. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.d.mts +1 -0
  841. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.d.ts +26 -0
  842. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.js +82 -0
  843. package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.mjs +67 -0
  844. package/renderers/multiSelectRenderer/multiSelectRenderer.js +2 -3
  845. package/renderers/multiSelectRenderer/multiSelectRenderer.mjs +2 -3
  846. package/renderers/multiSelectRenderer/utils/utils.d.ts +1 -1
  847. package/renderers/multiSelectRenderer/utils/utils.js +11 -8
  848. package/renderers/multiSelectRenderer/utils/utils.mjs +11 -8
  849. package/renderers/passwordRenderer/passwordRenderer.js +6 -1
  850. package/renderers/passwordRenderer/passwordRenderer.mjs +6 -1
  851. package/renderers/renderCell.d.mts +1 -0
  852. package/renderers/renderCell.d.ts +37 -0
  853. package/renderers/renderCell.js +43 -0
  854. package/renderers/renderCell.mjs +48 -0
  855. package/selection/highlight/types/areaLayered.d.ts +3 -1
  856. package/selection/highlight/types/areaLayered.js +4 -2
  857. package/selection/highlight/types/areaLayered.mjs +6 -2
  858. package/selection/highlight/types/focus.d.ts +3 -1
  859. package/selection/highlight/types/focus.js +3 -2
  860. package/selection/highlight/types/focus.mjs +5 -2
  861. package/selection/mouseEventHandler.js +29 -26
  862. package/selection/mouseEventHandler.mjs +29 -26
  863. package/selection/moveCells.d.mts +1 -0
  864. package/selection/moveCells.d.ts +15 -0
  865. package/selection/moveCells.js +13 -0
  866. package/selection/moveCells.mjs +9 -0
  867. package/selection/selection.d.ts +56 -2
  868. package/selection/selection.js +149 -5
  869. package/selection/selection.mjs +149 -5
  870. package/selection/types.d.ts +3 -0
  871. package/settings.d.ts +24 -3
  872. package/shortcuts/context.d.ts +4 -0
  873. package/shortcuts/context.js +16 -8
  874. package/shortcuts/context.mjs +20 -8
  875. package/shortcuts/contexts/commands/populateSelectedCellsData.js +1 -1
  876. package/shortcuts/contexts/commands/populateSelectedCellsData.mjs +1 -1
  877. package/styles/handsontable.css +504 -158
  878. package/styles/handsontable.min.css +4 -4
  879. package/styles/handsontableStyles.js +1 -1
  880. package/styles/handsontableStyles.mjs +1 -1
  881. package/styles/ht-icons-horizon.css +1 -10
  882. package/styles/ht-icons-horizon.min.css +4 -4
  883. package/styles/ht-icons-main.css +1 -10
  884. package/styles/ht-icons-main.min.css +4 -4
  885. package/styles/ht-theme-classic-no-icons.css +6 -0
  886. package/styles/ht-theme-classic-no-icons.min.css +4 -4
  887. package/styles/ht-theme-classic.css +7 -10
  888. package/styles/ht-theme-classic.min.css +4 -4
  889. package/styles/ht-theme-horizon-no-icons.css +6 -0
  890. package/styles/ht-theme-horizon-no-icons.min.css +4 -4
  891. package/styles/ht-theme-horizon.css +7 -10
  892. package/styles/ht-theme-horizon.min.css +4 -4
  893. package/styles/ht-theme-main-no-icons.css +6 -0
  894. package/styles/ht-theme-main-no-icons.min.css +4 -4
  895. package/styles/ht-theme-main.css +7 -10
  896. package/styles/ht-theme-main.min.css +4 -4
  897. package/tableView.d.ts +17 -4
  898. package/tableView.js +223 -53
  899. package/tableView.mjs +224 -54
  900. package/themes/engine/index.d.ts +2 -1
  901. package/themes/engine/index.js +3 -0
  902. package/themes/engine/index.mjs +1 -1
  903. package/themes/engine/manager.d.ts +75 -3
  904. package/themes/engine/manager.js +242 -6
  905. package/themes/engine/manager.mjs +249 -6
  906. package/themes/engine/utils/cssVariables.d.ts +18 -1
  907. package/themes/engine/utils/cssVariables.js +27 -11
  908. package/themes/engine/utils/cssVariables.mjs +28 -11
  909. package/themes/engine/utils/validation.js +7 -0
  910. package/themes/engine/utils/validation.mjs +7 -0
  911. package/themes/static/variables/helpers/iconsMap.js +1 -6
  912. package/themes/static/variables/helpers/iconsMap.mjs +1 -6
  913. package/themes/static/variables/tokens/classic.js +6 -0
  914. package/themes/static/variables/tokens/classic.mjs +6 -0
  915. package/themes/static/variables/tokens/horizon.js +6 -0
  916. package/themes/static/variables/tokens/horizon.mjs +6 -0
  917. package/themes/static/variables/tokens/main.js +6 -0
  918. package/themes/static/variables/tokens/main.mjs +6 -0
  919. package/themes/types.d.ts +1 -1
  920. package/translations/indexMapper.d.ts +14 -9
  921. package/translations/indexMapper.js +104 -43
  922. package/translations/indexMapper.mjs +104 -43
  923. package/translations/mapCollections/aggregatedCollection.js +20 -35
  924. package/translations/mapCollections/aggregatedCollection.mjs +20 -35
  925. package/translations/mapCollections/mapCollection.d.ts +10 -4
  926. package/translations/mapCollections/mapCollection.js +2 -2
  927. package/translations/mapCollections/mapCollection.mjs +2 -2
  928. package/translations/maps/booleanMap.d.mts +1 -0
  929. package/translations/maps/booleanMap.d.ts +86 -0
  930. package/translations/maps/booleanMap.js +300 -0
  931. package/translations/maps/booleanMap.mjs +308 -0
  932. package/translations/maps/hidingMap.d.ts +5 -2
  933. package/translations/maps/hidingMap.js +8 -3
  934. package/translations/maps/hidingMap.mjs +8 -3
  935. package/translations/maps/index.d.ts +5 -2
  936. package/translations/maps/index.js +7 -3
  937. package/translations/maps/index.mjs +10 -2
  938. package/translations/maps/indexMap.d.ts +26 -2
  939. package/translations/maps/indexMap.js +78 -6
  940. package/translations/maps/indexMap.mjs +78 -6
  941. package/translations/maps/indexesSequence.d.ts +53 -2
  942. package/translations/maps/indexesSequence.js +225 -3
  943. package/translations/maps/indexesSequence.mjs +233 -3
  944. package/translations/maps/trimmingMap.d.ts +5 -2
  945. package/translations/maps/trimmingMap.js +8 -3
  946. package/translations/maps/trimmingMap.mjs +8 -3
  947. package/translations/maps/utils/actionsOnIndexes.js +20 -1
  948. package/translations/maps/utils/actionsOnIndexes.mjs +20 -1
  949. package/translations/maps/utils/indexesSequence.js +12 -3
  950. package/translations/maps/utils/indexesSequence.mjs +12 -3
  951. package/translations/maps/utils/physicallyIndexed.js +12 -1
  952. package/translations/maps/utils/physicallyIndexed.mjs +12 -1
  953. package/utils/entitlementLicenseKey/classify.d.mts +1 -0
  954. package/utils/entitlementLicenseKey/classify.d.ts +34 -0
  955. package/utils/entitlementLicenseKey/classify.js +97 -0
  956. package/utils/entitlementLicenseKey/classify.mjs +96 -0
  957. package/utils/entitlementLicenseKey/constants.d.mts +1 -0
  958. package/utils/entitlementLicenseKey/constants.d.ts +75 -0
  959. package/utils/entitlementLicenseKey/constants.js +54 -0
  960. package/utils/entitlementLicenseKey/constants.mjs +72 -0
  961. package/utils/entitlementLicenseKey/detectFormat.d.mts +1 -0
  962. package/utils/entitlementLicenseKey/detectFormat.d.ts +23 -0
  963. package/utils/entitlementLicenseKey/detectFormat.js +60 -0
  964. package/utils/entitlementLicenseKey/detectFormat.mjs +60 -0
  965. package/utils/entitlementLicenseKey/encoding.d.mts +1 -0
  966. package/utils/entitlementLicenseKey/encoding.d.ts +58 -0
  967. package/utils/entitlementLicenseKey/encoding.js +161 -0
  968. package/utils/entitlementLicenseKey/encoding.mjs +172 -0
  969. package/utils/entitlementLicenseKey/extractKeyData.d.mts +1 -0
  970. package/utils/entitlementLicenseKey/extractKeyData.d.ts +47 -0
  971. package/utils/entitlementLicenseKey/extractKeyData.js +213 -0
  972. package/utils/entitlementLicenseKey/extractKeyData.mjs +232 -0
  973. package/utils/entitlementLicenseKey/grants.d.mts +1 -0
  974. package/utils/entitlementLicenseKey/grants.d.ts +54 -0
  975. package/utils/entitlementLicenseKey/grants.js +68 -0
  976. package/utils/entitlementLicenseKey/grants.mjs +84 -0
  977. package/utils/entitlementLicenseKey/index.d.mts +1 -0
  978. package/utils/entitlementLicenseKey/index.d.ts +8 -0
  979. package/utils/entitlementLicenseKey/index.js +53 -0
  980. package/utils/entitlementLicenseKey/index.mjs +6 -0
  981. package/utils/entitlementLicenseKey/sha512.d.mts +1 -0
  982. package/utils/entitlementLicenseKey/sha512.d.ts +11 -0
  983. package/utils/entitlementLicenseKey/sha512.js +328 -0
  984. package/utils/entitlementLicenseKey/sha512.mjs +327 -0
  985. package/utils/entitlementLicenseKey/types.d.mts +1 -0
  986. package/utils/entitlementLicenseKey/types.d.ts +90 -0
  987. package/utils/entitlementLicenseKey/types.js +8 -0
  988. package/utils/entitlementLicenseKey/types.mjs +10 -0
  989. package/utils/ghostTable.d.ts +1 -0
  990. package/utils/ghostTable.js +60 -11
  991. package/utils/ghostTable.mjs +60 -11
  992. package/utils/licenseBranding/badge.d.mts +1 -0
  993. package/utils/licenseBranding/badge.d.ts +21 -0
  994. package/utils/licenseBranding/badge.js +237 -0
  995. package/utils/licenseBranding/badge.mjs +244 -0
  996. package/utils/licenseBranding/content.d.mts +1 -0
  997. package/utils/licenseBranding/content.d.ts +54 -0
  998. package/utils/licenseBranding/content.js +93 -0
  999. package/utils/licenseBranding/content.mjs +79 -0
  1000. package/utils/licenseBranding/index.d.mts +1 -0
  1001. package/utils/licenseBranding/index.d.ts +14 -0
  1002. package/utils/licenseBranding/index.js +70 -0
  1003. package/utils/licenseBranding/index.mjs +71 -0
  1004. package/utils/licenseBranding/lockScreen.d.mts +1 -0
  1005. package/utils/licenseBranding/lockScreen.d.ts +23 -0
  1006. package/utils/licenseBranding/lockScreen.js +150 -0
  1007. package/utils/licenseBranding/lockScreen.mjs +159 -0
  1008. package/utils/licenseNotification.d.ts +19 -0
  1009. package/utils/licenseNotification.js +56 -29
  1010. package/utils/licenseNotification.mjs +61 -29
  1011. package/utils/movableMeta.d.mts +1 -0
  1012. package/utils/movableMeta.d.ts +40 -0
  1013. package/utils/movableMeta.js +47 -0
  1014. package/utils/movableMeta.mjs +46 -0
  1015. package/utils/parseTable.js +16 -7
  1016. package/utils/parseTable.mjs +16 -7
  1017. package/utils/samplesGenerator.d.ts +41 -14
  1018. package/utils/samplesGenerator.js +114 -42
  1019. package/utils/samplesGenerator.mjs +114 -42
  1020. package/utils/sanitizer.d.mts +1 -0
  1021. package/utils/sanitizer.d.ts +47 -0
  1022. package/utils/sanitizer.js +43 -0
  1023. package/utils/sanitizer.mjs +55 -0
  1024. package/utils/stylesHandler.d.ts +13 -0
  1025. package/utils/stylesHandler.js +55 -2
  1026. package/utils/stylesHandler.mjs +55 -2
  1027. package/validators/autocompleteValidator/autocompleteValidator.js +3 -0
  1028. package/validators/autocompleteValidator/autocompleteValidator.mjs +3 -0
  1029. package/validators/index.d.ts +3 -2
  1030. package/validators/index.js +8 -0
  1031. package/validators/index.mjs +3 -1
  1032. package/validators/intlDatetimeValidator/index.d.mts +1 -0
  1033. package/validators/intlDatetimeValidator/index.d.ts +1 -0
  1034. package/validators/intlDatetimeValidator/index.js +25 -0
  1035. package/validators/intlDatetimeValidator/index.mjs +1 -0
  1036. package/validators/intlDatetimeValidator/intlDatetimeValidator.d.mts +1 -0
  1037. package/validators/intlDatetimeValidator/intlDatetimeValidator.d.ts +28 -0
  1038. package/validators/intlDatetimeValidator/intlDatetimeValidator.js +49 -0
  1039. package/validators/intlDatetimeValidator/intlDatetimeValidator.mjs +37 -0
  1040. package/3rdparty/walkontable/src/overlay/bottom.d.mts +0 -1
  1041. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.d.mts +0 -1
  1042. package/3rdparty/walkontable/src/overlay/inlineStart.d.mts +0 -1
  1043. package/3rdparty/walkontable/src/overlay/top.d.mts +0 -1
  1044. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.d.mts +0 -1
  1045. package/3rdparty/walkontable/src/overlays.d.ts +0 -329
  1046. package/3rdparty/walkontable/src/overlays.js +0 -870
  1047. package/3rdparty/walkontable/src/overlays.mjs +0 -860
  1048. package/3rdparty/walkontable/src/renderer/table.d.mts +0 -1
  1049. package/3rdparty/walkontable/src/renderer/table.js +0 -229
  1050. package/3rdparty/walkontable/src/settings.d.mts +0 -2
  1051. package/3rdparty/walkontable/src/settings.js +0 -196
  1052. package/3rdparty/walkontable/src/settings.mjs +0 -263
  1053. package/3rdparty/walkontable/src/table/bottom.d.mts +0 -2
  1054. package/3rdparty/walkontable/src/table/bottom.d.ts +0 -19
  1055. package/3rdparty/walkontable/src/table/bottom.js +0 -38
  1056. package/3rdparty/walkontable/src/table/bottom.mjs +0 -23
  1057. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.d.mts +0 -2
  1058. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.d.ts +0 -20
  1059. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +0 -24
  1060. package/3rdparty/walkontable/src/table/inlineStart.d.mts +0 -2
  1061. package/3rdparty/walkontable/src/table/inlineStart.d.ts +0 -16
  1062. package/3rdparty/walkontable/src/table/inlineStart.js +0 -35
  1063. package/3rdparty/walkontable/src/table/inlineStart.mjs +0 -20
  1064. package/3rdparty/walkontable/src/table/master.d.mts +0 -2
  1065. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.d.mts +0 -2
  1066. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.d.ts +0 -75
  1067. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -122
  1068. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -112
  1069. package/3rdparty/walkontable/src/table/mixin/calculatedRows.d.mts +0 -2
  1070. package/3rdparty/walkontable/src/table/mixin/calculatedRows.d.ts +0 -75
  1071. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -122
  1072. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -112
  1073. package/3rdparty/walkontable/src/table/top.d.mts +0 -2
  1074. package/3rdparty/walkontable/src/table/top.d.ts +0 -19
  1075. package/3rdparty/walkontable/src/table/top.js +0 -38
  1076. package/3rdparty/walkontable/src/table/top.mjs +0 -23
  1077. package/3rdparty/walkontable/src/table/topInlineStartCorner.d.mts +0 -2
  1078. package/3rdparty/walkontable/src/table/topInlineStartCorner.d.ts +0 -20
  1079. package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +0 -24
  1080. package/3rdparty/walkontable/src/table.d.mts +0 -2
  1081. package/3rdparty/walkontable/src/table.d.ts +0 -741
  1082. package/3rdparty/walkontable/src/table.js +0 -1120
  1083. package/3rdparty/walkontable/src/table.mjs +0 -1105
  1084. package/3rdparty/walkontable/src/utils/cellCoords.d.mts +0 -1
  1085. package/3rdparty/walkontable/src/utils/cellCoords.js +0 -54
  1086. package/3rdparty/walkontable/src/utils/cellCoords.mjs +0 -54
  1087. package/3rdparty/walkontable/src/utils/column.d.mts +0 -2
  1088. package/3rdparty/walkontable/src/utils/column.js +0 -75
  1089. package/3rdparty/walkontable/src/utils/column.mjs +0 -70
  1090. package/3rdparty/walkontable/src/utils/positionCache.d.mts +0 -1
  1091. package/3rdparty/walkontable/src/utils/positionCache.d.ts +0 -91
  1092. package/3rdparty/walkontable/src/utils/positionCache.js +0 -193
  1093. package/3rdparty/walkontable/src/utils/positionCache.mjs +0 -194
  1094. package/3rdparty/walkontable/src/utils/row.d.mts +0 -2
  1095. package/3rdparty/walkontable/src/utils/row.js +0 -46
  1096. package/3rdparty/walkontable/src/utils/row.mjs +0 -41
  1097. package/3rdparty/walkontable/src/viewport.d.ts +0 -254
  1098. package/3rdparty/walkontable/src/viewport.js +0 -533
  1099. package/3rdparty/walkontable/src/viewport.mjs +0 -523
  1100. /package/3rdparty/walkontable/src/{renderer → axisSizing/positionCache}/index.d.mts +0 -0
  1101. /package/3rdparty/walkontable/src/{overlays.d.mts → overlay/overlays.d.mts} +0 -0
  1102. /package/3rdparty/walkontable/src/overlay/{_base.d.mts → regions/_base.d.mts} +0 -0
  1103. /package/3rdparty/walkontable/src/{stickyScrollStrategy.d.mts → overlay/strategies/stickyScrollStrategy.d.mts} +0 -0
  1104. /package/3rdparty/walkontable/src/{renderer → render}/_base.d.mts +0 -0
  1105. /package/3rdparty/walkontable/src/{renderer → render}/_base.js +0 -0
  1106. /package/3rdparty/walkontable/src/{renderer → render}/_base.mjs +0 -0
  1107. /package/3rdparty/walkontable/src/{renderer → render}/cells.d.mts +0 -0
  1108. /package/3rdparty/walkontable/src/{renderer → render}/cells.d.ts +0 -0
  1109. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.d.mts +0 -0
  1110. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.d.ts +0 -0
  1111. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.js +0 -0
  1112. /package/3rdparty/walkontable/src/{renderer → render}/colGroup.mjs +0 -0
  1113. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.d.mts +0 -0
  1114. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.d.ts +0 -0
  1115. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.js +0 -0
  1116. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.mjs +0 -0
  1117. /package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.d.mts +0 -0
  1118. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.d.mts +0 -0
  1119. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.d.ts +0 -0
  1120. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.js +0 -0
  1121. /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.mjs +0 -0
  1122. /package/3rdparty/walkontable/src/{renderer → render}/rows.d.mts +0 -0
  1123. /package/3rdparty/walkontable/src/{renderer → render}/rows.d.ts +0 -0
  1124. /package/3rdparty/walkontable/src/{scroll.d.mts → scroll/scroll.d.mts} +0 -0
  1125. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.d.mts +0 -0
  1126. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.d.mts +0 -0
  1127. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.js +0 -0
  1128. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.mjs +0 -0
  1129. /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.d.mts +0 -0
  1130. /package/3rdparty/walkontable/src/{viewport.d.mts → viewport/viewport.d.mts} +0 -0
@@ -0,0 +1,172 @@
1
+ /* eslint-disable no-bitwise */ /**
2
+ * The base64 alphabet.
3
+ *
4
+ * @type {string}
5
+ */ const BASE64_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
6
+ /**
7
+ * Encodes the string as UTF-8 bytes. The plain implementation is used on purpose.
8
+ * It does not depend on `TextEncoder` or `Buffer`, so the same code works in
9
+ * Node.js and in every browser, including plain http:// pages.
10
+ *
11
+ * @param {string} string The string to encode.
12
+ * @returns {number[]}
13
+ */ export function stringToUtf8Bytes(string) {
14
+ const bytes = [];
15
+ for(let i = 0; i < string.length; i += 1){
16
+ let codePoint = string.charCodeAt(i);
17
+ // Combine a surrogate pair into a single code point.
18
+ if (codePoint >= 0xd800 && codePoint <= 0xdbff && i + 1 < string.length) {
19
+ const lowSurrogate = string.charCodeAt(i + 1);
20
+ if (lowSurrogate >= 0xdc00 && lowSurrogate <= 0xdfff) {
21
+ codePoint = (codePoint - 0xd800) * 0x400 + (lowSurrogate - 0xdc00) + 0x10000;
22
+ i += 1;
23
+ }
24
+ }
25
+ if (codePoint < 0x80) {
26
+ bytes.push(codePoint);
27
+ } else if (codePoint < 0x800) {
28
+ bytes.push(0xc0 | codePoint >> 6, 0x80 | codePoint & 0x3f);
29
+ } else if (codePoint < 0x10000) {
30
+ bytes.push(0xe0 | codePoint >> 12, 0x80 | codePoint >> 6 & 0x3f, 0x80 | codePoint & 0x3f);
31
+ } else {
32
+ bytes.push(0xf0 | codePoint >> 18, 0x80 | codePoint >> 12 & 0x3f, 0x80 | codePoint >> 6 & 0x3f, 0x80 | codePoint & 0x3f);
33
+ }
34
+ }
35
+ return bytes;
36
+ }
37
+ /**
38
+ * Decodes UTF-8 bytes back into a string.
39
+ *
40
+ * @param {number[]} bytes The bytes to decode.
41
+ * @returns {string}
42
+ */ export function utf8BytesToString(bytes) {
43
+ let string = '';
44
+ let i = 0;
45
+ while(i < bytes.length){
46
+ const byte = bytes[i];
47
+ let codePoint;
48
+ if (byte < 0x80) {
49
+ codePoint = byte;
50
+ i += 1;
51
+ } else if (byte < 0xe0) {
52
+ codePoint = (byte & 0x1f) << 6 | bytes[i + 1] & 0x3f;
53
+ i += 2;
54
+ } else if (byte < 0xf0) {
55
+ codePoint = (byte & 0x0f) << 12 | (bytes[i + 1] & 0x3f) << 6 | bytes[i + 2] & 0x3f;
56
+ i += 3;
57
+ } else {
58
+ codePoint = (byte & 0x07) << 18 | (bytes[i + 1] & 0x3f) << 12 | (bytes[i + 2] & 0x3f) << 6 | bytes[i + 3] & 0x3f;
59
+ i += 4;
60
+ }
61
+ if (codePoint >= 0x10000) {
62
+ // Split the code point back into a surrogate pair.
63
+ codePoint -= 0x10000;
64
+ string += String.fromCharCode(0xd800 + (codePoint >> 10), 0xdc00 + (codePoint & 0x3ff));
65
+ } else {
66
+ string += String.fromCharCode(codePoint);
67
+ }
68
+ }
69
+ return string;
70
+ }
71
+ /**
72
+ * Encodes the bytes as a base64 string (standard alphabet, with padding).
73
+ *
74
+ * @param {number[]} bytes The bytes to encode.
75
+ * @returns {string}
76
+ */ export function bytesToBase64(bytes) {
77
+ let base64 = '';
78
+ for(let i = 0; i < bytes.length; i += 3){
79
+ const byte1 = bytes[i];
80
+ const byte2 = bytes[i + 1];
81
+ const byte3 = bytes[i + 2];
82
+ base64 += BASE64_ALPHABET.charAt(byte1 >> 2);
83
+ base64 += BASE64_ALPHABET.charAt((byte1 & 0x03) << 4 | (byte2 === undefined ? 0 : byte2 >> 4));
84
+ base64 += byte2 === undefined ? '=' : BASE64_ALPHABET.charAt((byte2 & 0x0f) << 2 | (byte3 === undefined ? 0 : byte3 >> 6));
85
+ base64 += byte3 === undefined ? '=' : BASE64_ALPHABET.charAt(byte3 & 0x3f);
86
+ }
87
+ return base64;
88
+ }
89
+ /**
90
+ * Decodes a base64 string (standard or URL-safe alphabet, padding optional)
91
+ * back into bytes. Returns `null` when the string is not valid base64.
92
+ *
93
+ * @param {string} base64 The base64 string to decode.
94
+ * @returns {number[]|null}
95
+ */ export function base64ToBytes(base64) {
96
+ const normalized = `${base64}`.replace(/-/g, '+').replace(/_/g, '/').replace(/=+$/, '');
97
+ if (!/^[A-Za-z0-9+/]*$/.test(normalized) || normalized.length % 4 === 1) {
98
+ return null;
99
+ }
100
+ const bytes = [];
101
+ for(let i = 0; i < normalized.length; i += 4){
102
+ const chunk = [
103
+ 0,
104
+ 1,
105
+ 2,
106
+ 3
107
+ ].map((offset)=>{
108
+ const char = normalized.charAt(i + offset);
109
+ // `indexOf('')` would return 0, so the missing characters of the last
110
+ // chunk have to be mapped to -1 explicitly.
111
+ return char === '' ? -1 : BASE64_ALPHABET.indexOf(char);
112
+ });
113
+ bytes.push(chunk[0] << 2 | chunk[1] >> 4);
114
+ if (chunk[2] !== -1) {
115
+ bytes.push((chunk[1] & 0x0f) << 4 | chunk[2] >> 2);
116
+ }
117
+ if (chunk[3] !== -1) {
118
+ bytes.push((chunk[2] & 0x03) << 6 | chunk[3]);
119
+ }
120
+ }
121
+ return bytes;
122
+ }
123
+ /**
124
+ * Encodes the string as a URL-safe base64 string without padding (the same
125
+ * format as the JWT payload segment).
126
+ *
127
+ * @param {string} string The string to encode.
128
+ * @returns {string}
129
+ */ export function stringToBase64Url(string) {
130
+ return bytesToBase64(stringToUtf8Bytes(string)).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
131
+ }
132
+ /**
133
+ * Decodes a base64 (standard or URL-safe) string back into a string.
134
+ * Returns `null` when the input is not valid base64.
135
+ *
136
+ * @param {string} base64 The base64 string to decode.
137
+ * @returns {string|null}
138
+ */ export function base64ToString(base64) {
139
+ const bytes = base64ToBytes(base64);
140
+ return bytes === null ? null : utf8BytesToString(bytes);
141
+ }
142
+ /**
143
+ * Parses a date in the "YYYY-MM-DD" format into the epoch milliseconds of its
144
+ * UTC midnight. Returns `null` when the date is malformed or does not exist in
145
+ * the calendar (for example "2027-02-30"). Unlike the generator side, the
146
+ * reader never throws on a bad date - a broken payload simply makes the key
147
+ * unreadable.
148
+ *
149
+ * @param {string} isoDate The date to parse.
150
+ * @returns {number|null}
151
+ */ export function parseIsoDateToTimestamp(isoDate) {
152
+ const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(`${isoDate}`);
153
+ if (match === null) {
154
+ return null;
155
+ }
156
+ const year = parseInt(match[1], 10);
157
+ const month = parseInt(match[2], 10);
158
+ const day = parseInt(match[3], 10);
159
+ // Date.UTC maps years 0-99 to 1900-1999, which would make the round-trip
160
+ // check below report a "not a valid calendar date" lie.
161
+ if (year < 100) {
162
+ return null;
163
+ }
164
+ const timestamp = Date.UTC(year, month - 1, day);
165
+ const date = new Date(timestamp);
166
+ // An impossible date (e.g. "2027-02-30") makes `Date.UTC` roll over to
167
+ // the next month, so a round-trip comparison catches it.
168
+ if (date.getUTCFullYear() !== year || date.getUTCMonth() !== month - 1 || date.getUTCDate() !== day) {
169
+ return null;
170
+ }
171
+ return timestamp;
172
+ }
@@ -0,0 +1 @@
1
+ export * from './extractKeyData.js';
@@ -0,0 +1,47 @@
1
+ import type { EntitlementKeyData, ProductEntitlement } from './types';
2
+ /**
3
+ * Adds an own, ordinary property.
4
+ *
5
+ * Both the product names and the field names of a product entry come from
6
+ * JSON, so "__proto__" is a name an attacker can put in a key. A plain
7
+ * assignment would go through the `Object.prototype` setter: the value would
8
+ * vanish from `Object.keys` while still resolving through the chain. Exported
9
+ * because every payload-keyed write in this module must use it - `grants.ts`
10
+ * re-keys the same product names.
11
+ *
12
+ * @param {object} target The object to add the property to.
13
+ * @param {string} key The property name.
14
+ * @param {*} value The property value.
15
+ * @returns {void}
16
+ */
17
+ export declare function defineOwn(target: object, key: string, value: unknown): void;
18
+ /**
19
+ * Extracts the machine-readable data from an entitlement license key.
20
+ *
21
+ * The checksum is verified first, so the returned data is guaranteed to belong
22
+ * to an intact block. A malformed or tampered key reads as `null` - reporting
23
+ * an invalid key is the caller's job, not this function's.
24
+ *
25
+ * Only the bracketed block matters. The prose in front of it is neither parsed
26
+ * nor covered by the checksum, so the caller may pass the whole key or just the
27
+ * `[...]` block, and rewrapped or re-pasted prose still validates. The block
28
+ * itself has to be intact: its alphabet has no whitespace, so a newline inside
29
+ * it makes the key unreadable, exactly as it does for the key generator.
30
+ *
31
+ * Unknown products, capability tokens and flags are all tolerated, so nothing
32
+ * about reading a key depends on the commercial vocabulary.
33
+ *
34
+ * @param {string} licenseKey The license key to extract the data from.
35
+ * @returns {EntitlementKeyData|null}
36
+ */
37
+ export declare function extractEntitlementKeyData(licenseKey: string): EntitlementKeyData | null;
38
+ /**
39
+ * Returns the entitlement of one product, but only when it is present as an own
40
+ * property. Used by the lifecycle and grants layers to read one product without
41
+ * trusting the prototype chain.
42
+ *
43
+ * @param {EntitlementKeyData} keyData The verified key data.
44
+ * @param {string} productName The product to read.
45
+ * @returns {ProductEntitlement|null}
46
+ */
47
+ export declare function getProductEntitlement(keyData: EntitlementKeyData, productName: string): ProductEntitlement | null;
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get defineOwn () {
13
+ return defineOwn;
14
+ },
15
+ get extractEntitlementKeyData () {
16
+ return extractEntitlementKeyData;
17
+ },
18
+ get getProductEntitlement () {
19
+ return getProductEntitlement;
20
+ }
21
+ });
22
+ const _constants = require("./constants");
23
+ const _sha512 = require("./sha512");
24
+ const _encoding = require("./encoding");
25
+ /**
26
+ * The alphabet of the encoded payload - URL-safe base64 without padding. The
27
+ * checksum (lowercase hex) is a subset of it, which is what lets the two be
28
+ * split by a fixed length from the right.
29
+ *
30
+ * @type {RegExp}
31
+ */ const ENCODED_PAYLOAD = /^[A-Za-z0-9\-_]+$/;
32
+ const CHECKSUM = /^[0-9a-f]+$/;
33
+ /**
34
+ * Reports own-property presence without trusting a payload's inherited or
35
+ * overridden `hasOwnProperty`.
36
+ *
37
+ * @param {object} object The object to inspect.
38
+ * @param {string} key The property name to look up.
39
+ * @returns {boolean}
40
+ */ function hasOwn(object, key) {
41
+ return Object.prototype.hasOwnProperty.call(object, key);
42
+ }
43
+ /**
44
+ * Narrows an unknown value to a plain (non-null, non-array) object.
45
+ *
46
+ * @param {*} value The value to check.
47
+ * @returns {boolean}
48
+ */ function isPlainObject(value) {
49
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
50
+ }
51
+ /**
52
+ * Returns `true` when the value is a non-negative integer. `Number.isFinite`
53
+ * also rejects `Infinity` (JSON `1e999` parses to it), which would otherwise
54
+ * turn a window size into a non-finite date downstream.
55
+ *
56
+ * @param {*} value The value to check.
57
+ * @returns {boolean}
58
+ */ function isNonNegativeInteger(value) {
59
+ return typeof value === 'number' && Number.isFinite(value) && Math.floor(value) === value && value >= 0;
60
+ }
61
+ /**
62
+ * Returns `true` when the value is an array of strings.
63
+ *
64
+ * @param {*} value The value to check.
65
+ * @returns {boolean}
66
+ */ function isStringArray(value) {
67
+ return Array.isArray(value) && value.every((item)=>typeof item === 'string');
68
+ }
69
+ function defineOwn(target, key, value) {
70
+ Object.defineProperty(target, key, {
71
+ value,
72
+ enumerable: true,
73
+ writable: true,
74
+ configurable: true
75
+ });
76
+ }
77
+ /**
78
+ * Verifies and normalizes one product entry.
79
+ *
80
+ * Strict about SHAPE: exactly one of the two dates, a real calendar date, and
81
+ * the two window sizes. A key that gets this wrong is malformed, not merely
82
+ * unknown, and reading it would mean guessing what was licensed.
83
+ *
84
+ * Lenient about VOCABULARY: an unrecognized capability token, an unrecognized
85
+ * flag and an unrecognized extra field are all kept and ignored. Without that
86
+ * leniency every token added on the issuing side would break every build
87
+ * already deployed in the field.
88
+ *
89
+ * Returns `null` when the entry is malformed.
90
+ *
91
+ * @param {*} entry The product entry of the payload.
92
+ * @returns {ProductEntitlement|null}
93
+ */ function normalizeProductEntry(entry) {
94
+ if (!isPlainObject(entry)) {
95
+ return null;
96
+ }
97
+ if (!isStringArray(entry.capabilities)) {
98
+ return null;
99
+ }
100
+ const presentDateFields = _constants.DATE_FIELDS.filter((field)=>entry[field] !== undefined);
101
+ // Exactly one date per product. "Both" and "neither" are each a different
102
+ // commercial shape that the format cannot express, so neither may be silently
103
+ // resolved by whichever field the reader happens to look at first.
104
+ if (presentDateFields.length !== 1) {
105
+ return null;
106
+ }
107
+ if ((0, _encoding.parseIsoDateToTimestamp)(`${entry[presentDateFields[0]]}`) === null) {
108
+ return null;
109
+ }
110
+ if (!isNonNegativeInteger(entry.notice) || !isNonNegativeInteger(entry.grace)) {
111
+ return null;
112
+ }
113
+ if (entry.flags !== undefined && !isStringArray(entry.flags)) {
114
+ return null;
115
+ }
116
+ // Start from everything the entry carries, so a field this version does not
117
+ // know survives into the result instead of being silently dropped. A field
118
+ // added to the format later is exactly the case a vendored reader has to
119
+ // survive, and one that quietly discards it makes the field invisible to the
120
+ // layers above.
121
+ const normalized = {};
122
+ Object.keys(entry).forEach((field)=>defineOwn(normalized, field, entry[field]));
123
+ defineOwn(normalized, 'capabilities', entry.capabilities.slice());
124
+ defineOwn(normalized, 'notice', entry.notice);
125
+ defineOwn(normalized, 'grace', entry.grace);
126
+ // An absent array and an empty one mean the same thing. Normalizing here
127
+ // keeps `flags.indexOf('trial')` safe at every call site.
128
+ defineOwn(normalized, 'flags', entry.flags === undefined ? [] : entry.flags.slice());
129
+ defineOwn(normalized, presentDateFields[0], entry[presentDateFields[0]]);
130
+ return normalized;
131
+ }
132
+ /**
133
+ * Reads and verifies one key. Split out from the memoized public entry point so
134
+ * the memo can wrap every exit path uniformly.
135
+ *
136
+ * @param {string} licenseKey The license key to read.
137
+ * @returns {EntitlementKeyData|null}
138
+ */ function readEntitlementKeyData(licenseKey) {
139
+ // The machine-readable block closes the key. Searching backwards means a
140
+ // bracket inside the prose cannot shadow it.
141
+ const blockStart = licenseKey.lastIndexOf('[');
142
+ if (blockStart === -1) {
143
+ return null;
144
+ }
145
+ const blockEnd = licenseKey.indexOf(']', blockStart);
146
+ if (blockEnd === -1) {
147
+ return null;
148
+ }
149
+ const content = licenseKey.slice(blockStart + 1, blockEnd);
150
+ if (content.length <= _constants.CHECKSUM_LENGTH) {
151
+ return null;
152
+ }
153
+ const encodedPayload = content.slice(0, -_constants.CHECKSUM_LENGTH);
154
+ const checksum = content.slice(-_constants.CHECKSUM_LENGTH);
155
+ if (!ENCODED_PAYLOAD.test(encodedPayload) || !CHECKSUM.test(checksum)) {
156
+ return null;
157
+ }
158
+ if ((0, _sha512.sha512)((0, _encoding.stringToUtf8Bytes)(encodedPayload)) !== checksum) {
159
+ return null;
160
+ }
161
+ const payloadJson = (0, _encoding.base64ToString)(encodedPayload);
162
+ if (payloadJson === null) {
163
+ return null;
164
+ }
165
+ let payload;
166
+ try {
167
+ payload = JSON.parse(payloadJson);
168
+ } catch (error) {
169
+ return null;
170
+ }
171
+ if (!isPlainObject(payload) || !isPlainObject(payload.products)) {
172
+ return null;
173
+ }
174
+ const products = {};
175
+ const entries = payload.products;
176
+ let malformed = false;
177
+ Object.keys(entries).forEach((name)=>{
178
+ const entry = normalizeProductEntry(entries[name]);
179
+ if (entry === null) {
180
+ malformed = true;
181
+ return;
182
+ }
183
+ defineOwn(products, name, entry);
184
+ });
185
+ if (malformed) {
186
+ return null;
187
+ }
188
+ return {
189
+ products
190
+ };
191
+ }
192
+ // The license key is read twice per grid init - the bottom bar
193
+ // (`initLicenseNotification`) and the branding UI (`initLicenseBranding`) each resolve the license
194
+ // state - and reading runs the full SHA-512 + base64 + JSON parse. A one-entry memo on the key makes
195
+ // the second read free. The returned data is treated as read-only by every caller, so sharing one
196
+ // object is safe.
197
+ let memoizedKey = null;
198
+ let memoizedData = null;
199
+ function extractEntitlementKeyData(licenseKey) {
200
+ const key = `${licenseKey}`;
201
+ if (key !== memoizedKey) {
202
+ memoizedKey = key;
203
+ memoizedData = readEntitlementKeyData(key);
204
+ }
205
+ return memoizedData;
206
+ }
207
+ function getProductEntitlement(keyData, productName) {
208
+ if (!hasOwn(keyData.products, productName)) {
209
+ return null;
210
+ }
211
+ const product = keyData.products[productName];
212
+ return isPlainObject(product) ? product : null;
213
+ }
@@ -0,0 +1,232 @@
1
+ import { CHECKSUM_LENGTH, DATE_FIELDS } from './constants.mjs';
2
+ import { sha512 } from './sha512.mjs';
3
+ import { base64ToString, stringToUtf8Bytes, parseIsoDateToTimestamp } from './encoding.mjs';
4
+ /**
5
+ * The alphabet of the encoded payload - URL-safe base64 without padding. The
6
+ * checksum (lowercase hex) is a subset of it, which is what lets the two be
7
+ * split by a fixed length from the right.
8
+ *
9
+ * @type {RegExp}
10
+ */ const ENCODED_PAYLOAD = /^[A-Za-z0-9\-_]+$/;
11
+ const CHECKSUM = /^[0-9a-f]+$/;
12
+ /**
13
+ * Reports own-property presence without trusting a payload's inherited or
14
+ * overridden `hasOwnProperty`.
15
+ *
16
+ * @param {object} object The object to inspect.
17
+ * @param {string} key The property name to look up.
18
+ * @returns {boolean}
19
+ */ function hasOwn(object, key) {
20
+ return Object.prototype.hasOwnProperty.call(object, key);
21
+ }
22
+ /**
23
+ * Narrows an unknown value to a plain (non-null, non-array) object.
24
+ *
25
+ * @param {*} value The value to check.
26
+ * @returns {boolean}
27
+ */ function isPlainObject(value) {
28
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
29
+ }
30
+ /**
31
+ * Returns `true` when the value is a non-negative integer. `Number.isFinite`
32
+ * also rejects `Infinity` (JSON `1e999` parses to it), which would otherwise
33
+ * turn a window size into a non-finite date downstream.
34
+ *
35
+ * @param {*} value The value to check.
36
+ * @returns {boolean}
37
+ */ function isNonNegativeInteger(value) {
38
+ return typeof value === 'number' && Number.isFinite(value) && Math.floor(value) === value && value >= 0;
39
+ }
40
+ /**
41
+ * Returns `true` when the value is an array of strings.
42
+ *
43
+ * @param {*} value The value to check.
44
+ * @returns {boolean}
45
+ */ function isStringArray(value) {
46
+ return Array.isArray(value) && value.every((item)=>typeof item === 'string');
47
+ }
48
+ /**
49
+ * Adds an own, ordinary property.
50
+ *
51
+ * Both the product names and the field names of a product entry come from
52
+ * JSON, so "__proto__" is a name an attacker can put in a key. A plain
53
+ * assignment would go through the `Object.prototype` setter: the value would
54
+ * vanish from `Object.keys` while still resolving through the chain. Exported
55
+ * because every payload-keyed write in this module must use it - `grants.ts`
56
+ * re-keys the same product names.
57
+ *
58
+ * @param {object} target The object to add the property to.
59
+ * @param {string} key The property name.
60
+ * @param {*} value The property value.
61
+ * @returns {void}
62
+ */ export function defineOwn(target, key, value) {
63
+ Object.defineProperty(target, key, {
64
+ value,
65
+ enumerable: true,
66
+ writable: true,
67
+ configurable: true
68
+ });
69
+ }
70
+ /**
71
+ * Verifies and normalizes one product entry.
72
+ *
73
+ * Strict about SHAPE: exactly one of the two dates, a real calendar date, and
74
+ * the two window sizes. A key that gets this wrong is malformed, not merely
75
+ * unknown, and reading it would mean guessing what was licensed.
76
+ *
77
+ * Lenient about VOCABULARY: an unrecognized capability token, an unrecognized
78
+ * flag and an unrecognized extra field are all kept and ignored. Without that
79
+ * leniency every token added on the issuing side would break every build
80
+ * already deployed in the field.
81
+ *
82
+ * Returns `null` when the entry is malformed.
83
+ *
84
+ * @param {*} entry The product entry of the payload.
85
+ * @returns {ProductEntitlement|null}
86
+ */ function normalizeProductEntry(entry) {
87
+ if (!isPlainObject(entry)) {
88
+ return null;
89
+ }
90
+ if (!isStringArray(entry.capabilities)) {
91
+ return null;
92
+ }
93
+ const presentDateFields = DATE_FIELDS.filter((field)=>entry[field] !== undefined);
94
+ // Exactly one date per product. "Both" and "neither" are each a different
95
+ // commercial shape that the format cannot express, so neither may be silently
96
+ // resolved by whichever field the reader happens to look at first.
97
+ if (presentDateFields.length !== 1) {
98
+ return null;
99
+ }
100
+ if (parseIsoDateToTimestamp(`${entry[presentDateFields[0]]}`) === null) {
101
+ return null;
102
+ }
103
+ if (!isNonNegativeInteger(entry.notice) || !isNonNegativeInteger(entry.grace)) {
104
+ return null;
105
+ }
106
+ if (entry.flags !== undefined && !isStringArray(entry.flags)) {
107
+ return null;
108
+ }
109
+ // Start from everything the entry carries, so a field this version does not
110
+ // know survives into the result instead of being silently dropped. A field
111
+ // added to the format later is exactly the case a vendored reader has to
112
+ // survive, and one that quietly discards it makes the field invisible to the
113
+ // layers above.
114
+ const normalized = {};
115
+ Object.keys(entry).forEach((field)=>defineOwn(normalized, field, entry[field]));
116
+ defineOwn(normalized, 'capabilities', entry.capabilities.slice());
117
+ defineOwn(normalized, 'notice', entry.notice);
118
+ defineOwn(normalized, 'grace', entry.grace);
119
+ // An absent array and an empty one mean the same thing. Normalizing here
120
+ // keeps `flags.indexOf('trial')` safe at every call site.
121
+ defineOwn(normalized, 'flags', entry.flags === undefined ? [] : entry.flags.slice());
122
+ defineOwn(normalized, presentDateFields[0], entry[presentDateFields[0]]);
123
+ return normalized;
124
+ }
125
+ /**
126
+ * Reads and verifies one key. Split out from the memoized public entry point so
127
+ * the memo can wrap every exit path uniformly.
128
+ *
129
+ * @param {string} licenseKey The license key to read.
130
+ * @returns {EntitlementKeyData|null}
131
+ */ function readEntitlementKeyData(licenseKey) {
132
+ // The machine-readable block closes the key. Searching backwards means a
133
+ // bracket inside the prose cannot shadow it.
134
+ const blockStart = licenseKey.lastIndexOf('[');
135
+ if (blockStart === -1) {
136
+ return null;
137
+ }
138
+ const blockEnd = licenseKey.indexOf(']', blockStart);
139
+ if (blockEnd === -1) {
140
+ return null;
141
+ }
142
+ const content = licenseKey.slice(blockStart + 1, blockEnd);
143
+ if (content.length <= CHECKSUM_LENGTH) {
144
+ return null;
145
+ }
146
+ const encodedPayload = content.slice(0, -CHECKSUM_LENGTH);
147
+ const checksum = content.slice(-CHECKSUM_LENGTH);
148
+ if (!ENCODED_PAYLOAD.test(encodedPayload) || !CHECKSUM.test(checksum)) {
149
+ return null;
150
+ }
151
+ if (sha512(stringToUtf8Bytes(encodedPayload)) !== checksum) {
152
+ return null;
153
+ }
154
+ const payloadJson = base64ToString(encodedPayload);
155
+ if (payloadJson === null) {
156
+ return null;
157
+ }
158
+ let payload;
159
+ try {
160
+ payload = JSON.parse(payloadJson);
161
+ } catch (error) {
162
+ return null;
163
+ }
164
+ if (!isPlainObject(payload) || !isPlainObject(payload.products)) {
165
+ return null;
166
+ }
167
+ const products = {};
168
+ const entries = payload.products;
169
+ let malformed = false;
170
+ Object.keys(entries).forEach((name)=>{
171
+ const entry = normalizeProductEntry(entries[name]);
172
+ if (entry === null) {
173
+ malformed = true;
174
+ return;
175
+ }
176
+ defineOwn(products, name, entry);
177
+ });
178
+ if (malformed) {
179
+ return null;
180
+ }
181
+ return {
182
+ products
183
+ };
184
+ }
185
+ // The license key is read twice per grid init - the bottom bar
186
+ // (`initLicenseNotification`) and the branding UI (`initLicenseBranding`) each resolve the license
187
+ // state - and reading runs the full SHA-512 + base64 + JSON parse. A one-entry memo on the key makes
188
+ // the second read free. The returned data is treated as read-only by every caller, so sharing one
189
+ // object is safe.
190
+ let memoizedKey = null;
191
+ let memoizedData = null;
192
+ /**
193
+ * Extracts the machine-readable data from an entitlement license key.
194
+ *
195
+ * The checksum is verified first, so the returned data is guaranteed to belong
196
+ * to an intact block. A malformed or tampered key reads as `null` - reporting
197
+ * an invalid key is the caller's job, not this function's.
198
+ *
199
+ * Only the bracketed block matters. The prose in front of it is neither parsed
200
+ * nor covered by the checksum, so the caller may pass the whole key or just the
201
+ * `[...]` block, and rewrapped or re-pasted prose still validates. The block
202
+ * itself has to be intact: its alphabet has no whitespace, so a newline inside
203
+ * it makes the key unreadable, exactly as it does for the key generator.
204
+ *
205
+ * Unknown products, capability tokens and flags are all tolerated, so nothing
206
+ * about reading a key depends on the commercial vocabulary.
207
+ *
208
+ * @param {string} licenseKey The license key to extract the data from.
209
+ * @returns {EntitlementKeyData|null}
210
+ */ export function extractEntitlementKeyData(licenseKey) {
211
+ const key = `${licenseKey}`;
212
+ if (key !== memoizedKey) {
213
+ memoizedKey = key;
214
+ memoizedData = readEntitlementKeyData(key);
215
+ }
216
+ return memoizedData;
217
+ }
218
+ /**
219
+ * Returns the entitlement of one product, but only when it is present as an own
220
+ * property. Used by the lifecycle and grants layers to read one product without
221
+ * trusting the prototype chain.
222
+ *
223
+ * @param {EntitlementKeyData} keyData The verified key data.
224
+ * @param {string} productName The product to read.
225
+ * @returns {ProductEntitlement|null}
226
+ */ export function getProductEntitlement(keyData, productName) {
227
+ if (!hasOwn(keyData.products, productName)) {
228
+ return null;
229
+ }
230
+ const product = keyData.products[productName];
231
+ return isPlainObject(product) ? product : null;
232
+ }
@@ -0,0 +1 @@
1
+ export * from './grants.js';