handsontable 16.0.1-next-eee5f08-20250710 → 16.1.0-next-abd8f2e-20250904

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 (489) hide show
  1. package/3rdparty/walkontable/src/overlays.js +12 -2
  2. package/3rdparty/walkontable/src/overlays.mjs +12 -2
  3. package/3rdparty/walkontable/src/viewport.js +2 -6
  4. package/3rdparty/walkontable/src/viewport.mjs +2 -6
  5. package/CHANGELOG.md +32 -0
  6. package/base.js +2 -2
  7. package/base.mjs +2 -2
  8. package/cellTypes/autocompleteType/accessors/index.js +7 -0
  9. package/cellTypes/autocompleteType/accessors/index.mjs +2 -0
  10. package/cellTypes/autocompleteType/accessors/valueGetter.js +14 -0
  11. package/cellTypes/autocompleteType/accessors/valueGetter.mjs +10 -0
  12. package/cellTypes/autocompleteType/accessors/valueSetter.js +25 -0
  13. package/cellTypes/autocompleteType/accessors/valueSetter.mjs +21 -0
  14. package/cellTypes/autocompleteType/autocompleteType.js +4 -1
  15. package/cellTypes/autocompleteType/autocompleteType.mjs +4 -1
  16. package/cellTypes/checkboxType/accessors/index.js +5 -0
  17. package/cellTypes/checkboxType/accessors/index.mjs +1 -0
  18. package/cellTypes/checkboxType/accessors/valueSetter.js +26 -0
  19. package/cellTypes/checkboxType/accessors/valueSetter.mjs +22 -0
  20. package/cellTypes/checkboxType/checkboxType.js +3 -1
  21. package/cellTypes/checkboxType/checkboxType.mjs +3 -1
  22. package/cellTypes/dropdownType/accessors/index.js +7 -0
  23. package/cellTypes/dropdownType/accessors/index.mjs +2 -0
  24. package/cellTypes/dropdownType/accessors/valueGetter.js +14 -0
  25. package/cellTypes/dropdownType/accessors/valueGetter.mjs +10 -0
  26. package/cellTypes/dropdownType/accessors/valueSetter.js +17 -0
  27. package/cellTypes/dropdownType/accessors/valueSetter.mjs +13 -0
  28. package/cellTypes/dropdownType/dropdownType.js +4 -1
  29. package/cellTypes/dropdownType/dropdownType.mjs +4 -1
  30. package/cellTypes/numericType/accessors/index.js +5 -0
  31. package/cellTypes/numericType/accessors/index.mjs +1 -0
  32. package/cellTypes/numericType/accessors/valueSetter.js +19 -0
  33. package/cellTypes/numericType/accessors/valueSetter.mjs +15 -0
  34. package/cellTypes/numericType/numericType.js +3 -1
  35. package/cellTypes/numericType/numericType.mjs +3 -1
  36. package/core/focusCatcher/index.js +37 -112
  37. package/core/focusCatcher/index.mjs +35 -110
  38. package/core/focusCatcher/utils.js +31 -0
  39. package/core/focusCatcher/utils.mjs +27 -0
  40. package/core/hooks/constants.js +242 -0
  41. package/core/hooks/constants.mjs +242 -0
  42. package/core/hooks/index.d.ts +22 -0
  43. package/core/viewportScroll/scrollStrategies/focusScroll.js +5 -1
  44. package/core/viewportScroll/scrollStrategies/focusScroll.mjs +5 -1
  45. package/core/viewportScroll/utils.js +1 -1
  46. package/core/viewportScroll/utils.mjs +1 -1
  47. package/core.d.ts +4 -0
  48. package/core.js +237 -139
  49. package/core.mjs +240 -142
  50. package/dataMap/dataMap.js +13 -3
  51. package/dataMap/dataMap.mjs +14 -4
  52. package/dataMap/dataSource.js +16 -0
  53. package/dataMap/dataSource.mjs +16 -0
  54. package/dataMap/metaManager/lazyFactoryMap.js +4 -3
  55. package/dataMap/metaManager/lazyFactoryMap.mjs +2 -1
  56. package/dataMap/metaManager/metaLayers/cellMeta.js +3 -2
  57. package/dataMap/metaManager/metaLayers/cellMeta.mjs +3 -2
  58. package/dataMap/metaManager/metaSchema.js +289 -4
  59. package/dataMap/metaManager/metaSchema.mjs +289 -4
  60. package/dataMap/metaManager/utils.js +0 -11
  61. package/dataMap/metaManager/utils.mjs +0 -10
  62. package/dataMap/replaceData.js +1 -0
  63. package/dataMap/replaceData.mjs +1 -0
  64. package/dist/handsontable.css +281 -4
  65. package/dist/handsontable.full.css +281 -4
  66. package/dist/handsontable.full.js +7844 -2990
  67. package/dist/handsontable.full.min.css +4 -5
  68. package/dist/handsontable.full.min.js +167 -165
  69. package/dist/handsontable.js +9639 -4806
  70. package/dist/handsontable.min.css +4 -4
  71. package/dist/handsontable.min.js +52 -50
  72. package/dist/languages/all.js +231 -21
  73. package/dist/languages/all.min.js +1 -1
  74. package/dist/languages/ar-AR.js +11 -1
  75. package/dist/languages/ar-AR.min.js +1 -1
  76. package/dist/languages/cs-CZ.js +11 -1
  77. package/dist/languages/cs-CZ.min.js +1 -1
  78. package/dist/languages/de-CH.js +11 -1
  79. package/dist/languages/de-CH.min.js +1 -1
  80. package/dist/languages/de-DE.js +11 -1
  81. package/dist/languages/de-DE.min.js +1 -1
  82. package/dist/languages/en-US.js +11 -1
  83. package/dist/languages/en-US.min.js +1 -1
  84. package/dist/languages/es-MX.js +11 -1
  85. package/dist/languages/es-MX.min.js +1 -1
  86. package/dist/languages/fa-IR.js +11 -1
  87. package/dist/languages/fa-IR.min.js +1 -1
  88. package/dist/languages/fr-FR.js +11 -1
  89. package/dist/languages/fr-FR.min.js +1 -1
  90. package/dist/languages/hr-HR.js +11 -1
  91. package/dist/languages/hr-HR.min.js +1 -1
  92. package/dist/languages/it-IT.js +11 -1
  93. package/dist/languages/it-IT.min.js +1 -1
  94. package/dist/languages/ja-JP.js +11 -1
  95. package/dist/languages/ja-JP.min.js +1 -1
  96. package/dist/languages/ko-KR.js +11 -1
  97. package/dist/languages/ko-KR.min.js +1 -1
  98. package/dist/languages/lv-LV.js +11 -1
  99. package/dist/languages/lv-LV.min.js +1 -1
  100. package/dist/languages/nb-NO.js +11 -1
  101. package/dist/languages/nb-NO.min.js +1 -1
  102. package/dist/languages/nl-NL.js +11 -1
  103. package/dist/languages/nl-NL.min.js +1 -1
  104. package/dist/languages/pl-PL.js +11 -1
  105. package/dist/languages/pl-PL.min.js +1 -1
  106. package/dist/languages/pt-BR.js +11 -1
  107. package/dist/languages/pt-BR.min.js +1 -1
  108. package/dist/languages/ru-RU.js +11 -1
  109. package/dist/languages/ru-RU.min.js +1 -1
  110. package/dist/languages/sr-SP.js +11 -1
  111. package/dist/languages/sr-SP.min.js +1 -1
  112. package/dist/languages/zh-CN.js +11 -1
  113. package/dist/languages/zh-CN.min.js +1 -1
  114. package/dist/languages/zh-TW.js +11 -1
  115. package/dist/languages/zh-TW.min.js +1 -1
  116. package/editorManager.js +4 -4
  117. package/editorManager.mjs +4 -4
  118. package/editors/autocompleteEditor/autocompleteEditor.js +50 -112
  119. package/editors/autocompleteEditor/autocompleteEditor.mjs +51 -113
  120. package/editors/baseEditor/baseEditor.js +10 -6
  121. package/editors/baseEditor/baseEditor.mjs +10 -6
  122. package/editors/handsontableEditor/handsontableEditor.js +9 -9
  123. package/editors/handsontableEditor/handsontableEditor.mjs +9 -9
  124. package/editors/textEditor/textEditor.js +0 -7
  125. package/editors/textEditor/textEditor.mjs +0 -7
  126. package/focusManager.js +2 -2
  127. package/focusManager.mjs +2 -2
  128. package/helpers/a11y.js +15 -2
  129. package/helpers/a11y.mjs +10 -2
  130. package/helpers/console.js +12 -0
  131. package/helpers/console.mjs +11 -0
  132. package/helpers/dom/element.js +4 -4
  133. package/helpers/dom/element.mjs +4 -4
  134. package/helpers/mixed.js +65 -2
  135. package/helpers/mixed.mjs +63 -2
  136. package/helpers/number.js +28 -0
  137. package/helpers/number.mjs +26 -0
  138. package/helpers/object.js +35 -0
  139. package/helpers/object.mjs +34 -0
  140. package/helpers/string.js +19 -0
  141. package/helpers/string.mjs +18 -0
  142. package/helpers/templateLiteralTag.js +57 -1
  143. package/helpers/templateLiteralTag.mjs +56 -1
  144. package/i18n/constants.js +13 -1
  145. package/i18n/constants.mjs +13 -1
  146. package/i18n/languages/ar-AR.js +11 -1
  147. package/i18n/languages/ar-AR.mjs +11 -1
  148. package/i18n/languages/cs-CZ.js +11 -1
  149. package/i18n/languages/cs-CZ.mjs +11 -1
  150. package/i18n/languages/de-CH.js +11 -1
  151. package/i18n/languages/de-CH.mjs +11 -1
  152. package/i18n/languages/de-DE.js +11 -1
  153. package/i18n/languages/de-DE.mjs +11 -1
  154. package/i18n/languages/en-US.js +11 -1
  155. package/i18n/languages/en-US.mjs +11 -1
  156. package/i18n/languages/es-MX.js +11 -1
  157. package/i18n/languages/es-MX.mjs +11 -1
  158. package/i18n/languages/fa-IR.js +11 -1
  159. package/i18n/languages/fa-IR.mjs +11 -1
  160. package/i18n/languages/fr-FR.js +11 -1
  161. package/i18n/languages/fr-FR.mjs +11 -1
  162. package/i18n/languages/hr-HR.js +11 -1
  163. package/i18n/languages/hr-HR.mjs +11 -1
  164. package/i18n/languages/it-IT.js +11 -1
  165. package/i18n/languages/it-IT.mjs +11 -1
  166. package/i18n/languages/ja-JP.js +11 -1
  167. package/i18n/languages/ja-JP.mjs +11 -1
  168. package/i18n/languages/ko-KR.js +11 -1
  169. package/i18n/languages/ko-KR.mjs +11 -1
  170. package/i18n/languages/lv-LV.js +11 -1
  171. package/i18n/languages/lv-LV.mjs +11 -1
  172. package/i18n/languages/nb-NO.js +11 -1
  173. package/i18n/languages/nb-NO.mjs +11 -1
  174. package/i18n/languages/nl-NL.js +11 -1
  175. package/i18n/languages/nl-NL.mjs +11 -1
  176. package/i18n/languages/pl-PL.js +11 -1
  177. package/i18n/languages/pl-PL.mjs +11 -1
  178. package/i18n/languages/pt-BR.js +11 -1
  179. package/i18n/languages/pt-BR.mjs +11 -1
  180. package/i18n/languages/ru-RU.js +11 -1
  181. package/i18n/languages/ru-RU.mjs +11 -1
  182. package/i18n/languages/sr-SP.js +11 -1
  183. package/i18n/languages/sr-SP.mjs +11 -1
  184. package/i18n/languages/zh-CN.js +11 -1
  185. package/i18n/languages/zh-CN.mjs +11 -1
  186. package/i18n/languages/zh-TW.js +11 -1
  187. package/i18n/languages/zh-TW.mjs +11 -1
  188. package/i18n/phraseFormatters/index.js +3 -1
  189. package/i18n/phraseFormatters/index.mjs +3 -1
  190. package/i18n/registry.js +5 -6
  191. package/i18n/registry.mjs +5 -6
  192. package/index.d.ts +27 -0
  193. package/languages/all.js +231 -21
  194. package/languages/ar-AR.js +11 -1
  195. package/languages/ar-AR.mjs +11 -1
  196. package/languages/cs-CZ.js +11 -1
  197. package/languages/cs-CZ.mjs +11 -1
  198. package/languages/de-CH.js +11 -1
  199. package/languages/de-CH.mjs +11 -1
  200. package/languages/de-DE.js +11 -1
  201. package/languages/de-DE.mjs +11 -1
  202. package/languages/en-US.js +11 -1
  203. package/languages/en-US.mjs +11 -1
  204. package/languages/es-MX.js +11 -1
  205. package/languages/es-MX.mjs +11 -1
  206. package/languages/fa-IR.js +11 -1
  207. package/languages/fa-IR.mjs +11 -1
  208. package/languages/fr-FR.js +11 -1
  209. package/languages/fr-FR.mjs +11 -1
  210. package/languages/hr-HR.js +11 -1
  211. package/languages/hr-HR.mjs +11 -1
  212. package/languages/index.js +231 -21
  213. package/languages/it-IT.js +11 -1
  214. package/languages/it-IT.mjs +11 -1
  215. package/languages/ja-JP.js +11 -1
  216. package/languages/ja-JP.mjs +11 -1
  217. package/languages/ko-KR.js +11 -1
  218. package/languages/ko-KR.mjs +11 -1
  219. package/languages/lv-LV.js +11 -1
  220. package/languages/lv-LV.mjs +11 -1
  221. package/languages/nb-NO.js +11 -1
  222. package/languages/nb-NO.mjs +11 -1
  223. package/languages/nl-NL.js +11 -1
  224. package/languages/nl-NL.mjs +11 -1
  225. package/languages/pl-PL.js +11 -1
  226. package/languages/pl-PL.mjs +11 -1
  227. package/languages/pt-BR.js +11 -1
  228. package/languages/pt-BR.mjs +11 -1
  229. package/languages/ru-RU.js +11 -1
  230. package/languages/ru-RU.mjs +11 -1
  231. package/languages/sr-SP.js +11 -1
  232. package/languages/sr-SP.mjs +11 -1
  233. package/languages/zh-CN.js +11 -1
  234. package/languages/zh-CN.mjs +11 -1
  235. package/languages/zh-TW.js +11 -1
  236. package/languages/zh-TW.mjs +11 -1
  237. package/mixins/localHooks.js +16 -0
  238. package/mixins/localHooks.mjs +16 -0
  239. package/package.json +19 -1
  240. package/plugins/autoRowSize/autoRowSize.js +43 -6
  241. package/plugins/autoRowSize/autoRowSize.mjs +43 -6
  242. package/plugins/autofill/autofill.js +50 -3
  243. package/plugins/autofill/autofill.mjs +50 -3
  244. package/plugins/base/base.js +86 -15
  245. package/plugins/base/base.mjs +87 -16
  246. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -4
  247. package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -4
  248. package/plugins/columnSorting/columnSorting.js +3 -3
  249. package/plugins/columnSorting/columnSorting.mjs +3 -3
  250. package/plugins/comments/comments.js +52 -22
  251. package/plugins/comments/comments.mjs +52 -22
  252. package/plugins/comments/contextMenuItem/addEditComment.js +3 -3
  253. package/plugins/comments/contextMenuItem/addEditComment.mjs +3 -3
  254. package/plugins/comments/contextMenuItem/readOnlyComment.js +2 -2
  255. package/plugins/comments/contextMenuItem/readOnlyComment.mjs +2 -2
  256. package/plugins/comments/contextMenuItem/removeComment.js +2 -2
  257. package/plugins/comments/contextMenuItem/removeComment.mjs +2 -2
  258. package/plugins/contextMenu/contextMenu.js +4 -5
  259. package/plugins/contextMenu/contextMenu.mjs +4 -5
  260. package/plugins/contextMenu/menu/cursor.js +1 -1
  261. package/plugins/contextMenu/menu/cursor.mjs +1 -1
  262. package/plugins/contextMenu/menu/defaultShortcutsList.js +5 -5
  263. package/plugins/contextMenu/menu/defaultShortcutsList.mjs +5 -5
  264. package/plugins/contextMenu/menu/menu.js +3 -3
  265. package/plugins/contextMenu/menu/menu.mjs +3 -3
  266. package/plugins/contextMenu/menu/positioner.js +1 -1
  267. package/plugins/contextMenu/menu/positioner.mjs +1 -1
  268. package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
  269. package/plugins/contextMenu/predefinedItems/alignment.mjs +1 -1
  270. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  271. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -1
  272. package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -3
  273. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -3
  274. package/plugins/contextMenu/predefinedItems/columnRight.js +3 -3
  275. package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -3
  276. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
  277. package/plugins/contextMenu/predefinedItems/readOnly.mjs +1 -1
  278. package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
  279. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +1 -1
  280. package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
  281. package/plugins/contextMenu/predefinedItems/removeRow.mjs +1 -1
  282. package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -3
  283. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -3
  284. package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -3
  285. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -3
  286. package/plugins/copyPaste/contextMenuItem/copy.js +1 -1
  287. package/plugins/copyPaste/contextMenuItem/copy.mjs +1 -1
  288. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +3 -3
  289. package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +3 -3
  290. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +3 -3
  291. package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +3 -3
  292. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +3 -3
  293. package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +3 -3
  294. package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
  295. package/plugins/copyPaste/contextMenuItem/cut.mjs +1 -1
  296. package/plugins/copyPaste/copyPaste.js +75 -40
  297. package/plugins/copyPaste/copyPaste.mjs +76 -41
  298. package/plugins/customBorders/customBorders.js +1 -1
  299. package/plugins/customBorders/customBorders.mjs +1 -1
  300. package/plugins/dialog/dialog.d.ts +23 -0
  301. package/plugins/dialog/dialog.js +489 -0
  302. package/plugins/dialog/dialog.mjs +485 -0
  303. package/plugins/dialog/index.d.ts +1 -0
  304. package/plugins/dialog/index.js +7 -0
  305. package/plugins/dialog/index.mjs +1 -0
  306. package/plugins/dialog/ui.js +264 -0
  307. package/plugins/dialog/ui.mjs +259 -0
  308. package/plugins/dropdownMenu/dropdownMenu.js +5 -4
  309. package/plugins/dropdownMenu/dropdownMenu.mjs +5 -4
  310. package/plugins/filters/filters.js +2 -2
  311. package/plugins/filters/filters.mjs +2 -2
  312. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +3 -3
  313. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +3 -3
  314. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +4 -4
  315. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +4 -4
  316. package/plugins/hiddenRows/contextMenuItem/hideRow.js +3 -3
  317. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +3 -3
  318. package/plugins/hiddenRows/contextMenuItem/showRow.js +4 -4
  319. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +4 -4
  320. package/plugins/index.d.ts +9 -0
  321. package/plugins/index.js +9 -0
  322. package/plugins/index.mjs +7 -1
  323. package/plugins/loading/content.js +36 -0
  324. package/plugins/loading/content.mjs +31 -0
  325. package/plugins/loading/index.d.ts +1 -0
  326. package/plugins/loading/index.js +7 -0
  327. package/plugins/loading/index.mjs +1 -0
  328. package/plugins/loading/loading.d.ts +19 -0
  329. package/plugins/loading/loading.js +292 -0
  330. package/plugins/loading/loading.mjs +287 -0
  331. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  332. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  333. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  334. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  335. package/plugins/manualColumnMove/manualColumnMove.js +3 -3
  336. package/plugins/manualColumnMove/manualColumnMove.mjs +3 -3
  337. package/plugins/manualColumnResize/manualColumnResize.js +3 -3
  338. package/plugins/manualColumnResize/manualColumnResize.mjs +3 -3
  339. package/plugins/manualRowMove/manualRowMove.js +4 -4
  340. package/plugins/manualRowMove/manualRowMove.mjs +4 -4
  341. package/plugins/manualRowResize/manualRowResize.js +5 -2
  342. package/plugins/manualRowResize/manualRowResize.mjs +5 -2
  343. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +15 -15
  344. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +15 -15
  345. package/plugins/mergeCells/focusOrder.js +75 -39
  346. package/plugins/mergeCells/focusOrder.mjs +75 -39
  347. package/plugins/mergeCells/mergeCells.js +26 -19
  348. package/plugins/mergeCells/mergeCells.mjs +26 -19
  349. package/plugins/mergeCells/renderer.js +14 -8
  350. package/plugins/mergeCells/renderer.mjs +14 -8
  351. package/plugins/multiColumnSorting/multiColumnSorting.js +3 -3
  352. package/plugins/multiColumnSorting/multiColumnSorting.mjs +3 -3
  353. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +3 -3
  354. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +3 -3
  355. package/plugins/nestedHeaders/nestedHeaders.js +47 -41
  356. package/plugins/nestedHeaders/nestedHeaders.mjs +47 -41
  357. package/plugins/nestedRows/nestedRows.js +3 -3
  358. package/plugins/nestedRows/nestedRows.mjs +3 -3
  359. package/plugins/nestedRows/ui/collapsing.js +1 -2
  360. package/plugins/nestedRows/ui/collapsing.mjs +1 -2
  361. package/plugins/nestedRows/ui/contextMenu.js +4 -4
  362. package/plugins/nestedRows/ui/contextMenu.mjs +4 -4
  363. package/plugins/nestedRows/ui/headers.js +4 -1
  364. package/plugins/nestedRows/ui/headers.mjs +4 -1
  365. package/plugins/pagination/focusController.js +27 -0
  366. package/plugins/pagination/focusController.mjs +23 -0
  367. package/plugins/pagination/index.d.ts +1 -0
  368. package/plugins/pagination/index.js +7 -0
  369. package/plugins/pagination/index.mjs +1 -0
  370. package/plugins/pagination/pagination.d.ts +52 -0
  371. package/plugins/pagination/pagination.js +1034 -0
  372. package/plugins/pagination/pagination.mjs +1030 -0
  373. package/plugins/pagination/strategies/autoPageSize.js +96 -0
  374. package/plugins/pagination/strategies/autoPageSize.mjs +92 -0
  375. package/plugins/pagination/strategies/fixedPageSize.js +88 -0
  376. package/plugins/pagination/strategies/fixedPageSize.mjs +84 -0
  377. package/plugins/pagination/strategies/index.js +22 -0
  378. package/plugins/pagination/strategies/index.mjs +18 -0
  379. package/plugins/pagination/ui.js +449 -0
  380. package/plugins/pagination/ui.mjs +443 -0
  381. package/plugins/pagination/utils.js +28 -0
  382. package/plugins/pagination/utils.mjs +24 -0
  383. package/plugins/stretchColumns/calculator.js +4 -0
  384. package/plugins/stretchColumns/calculator.mjs +4 -0
  385. package/plugins/stretchColumns/stretchColumns.js +1 -1
  386. package/plugins/stretchColumns/stretchColumns.mjs +1 -1
  387. package/plugins/undoRedo/actions/dataChange.js +17 -15
  388. package/plugins/undoRedo/actions/dataChange.mjs +17 -15
  389. package/renderers/checkboxRenderer/checkboxRenderer.js +3 -3
  390. package/renderers/checkboxRenderer/checkboxRenderer.mjs +3 -3
  391. package/selection/range.js +11 -0
  392. package/selection/range.mjs +11 -0
  393. package/selection/selection.js +163 -124
  394. package/selection/selection.mjs +163 -124
  395. package/selection/transformation/_base.js +448 -0
  396. package/selection/transformation/_base.mjs +443 -0
  397. package/selection/transformation/extender.js +55 -0
  398. package/selection/transformation/extender.mjs +51 -0
  399. package/selection/transformation/focus.js +77 -0
  400. package/selection/transformation/focus.mjs +73 -0
  401. package/selection/transformation/index.js +7 -0
  402. package/selection/transformation/index.mjs +2 -0
  403. package/selection/utils.js +2 -1
  404. package/selection/utils.mjs +2 -1
  405. package/settings.d.ts +10 -1
  406. package/shortcutContexts/commands/editor/fastOpen.js +1 -1
  407. package/shortcutContexts/commands/editor/fastOpen.mjs +1 -1
  408. package/shortcutContexts/commands/editor/open.js +10 -4
  409. package/shortcutContexts/commands/editor/open.mjs +10 -4
  410. package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
  411. package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
  412. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +2 -2
  413. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +2 -2
  414. package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
  415. package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
  416. package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
  417. package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
  418. package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
  419. package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
  420. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +1 -1
  421. package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +1 -1
  422. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +1 -1
  423. package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +1 -1
  424. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +1 -1
  425. package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +1 -1
  426. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +1 -1
  427. package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +1 -1
  428. package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +1 -1
  429. package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +1 -1
  430. package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +1 -1
  431. package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +1 -1
  432. package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
  433. package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
  434. package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
  435. package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
  436. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +2 -2
  437. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +2 -2
  438. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +2 -2
  439. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +2 -2
  440. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +5 -2
  441. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +5 -2
  442. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +5 -2
  443. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +5 -2
  444. package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +1 -1
  445. package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +1 -1
  446. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +1 -1
  447. package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +1 -1
  448. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +1 -1
  449. package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +1 -1
  450. package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +1 -1
  451. package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +1 -1
  452. package/shortcutContexts/commands/moveCellSelection/toMostRight.js +1 -1
  453. package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +1 -1
  454. package/shortcutContexts/commands/moveCellSelection/toMostTop.js +1 -1
  455. package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +1 -1
  456. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +2 -2
  457. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +2 -2
  458. package/shortcutContexts/commands/scrollToFocusedCell.js +1 -1
  459. package/shortcutContexts/commands/scrollToFocusedCell.mjs +1 -1
  460. package/shortcutContexts/grid.js +3 -3
  461. package/shortcutContexts/grid.mjs +3 -3
  462. package/shortcuts/context.js +4 -1
  463. package/shortcuts/context.mjs +4 -1
  464. package/shortcuts/manager.js +17 -3
  465. package/shortcuts/manager.mjs +17 -3
  466. package/styles/handsontable.css +288 -22
  467. package/styles/handsontable.min.css +3 -3
  468. package/styles/ht-theme-classic.css +828 -0
  469. package/styles/ht-theme-classic.min.css +30 -0
  470. package/styles/ht-theme-horizon.css +122 -26
  471. package/styles/ht-theme-horizon.min.css +3 -3
  472. package/styles/ht-theme-main.css +124 -28
  473. package/styles/ht-theme-main.min.css +3 -3
  474. package/tableView.js +61 -25
  475. package/tableView.mjs +61 -25
  476. package/utils/a11yAnnouncer.js +70 -0
  477. package/utils/a11yAnnouncer.mjs +64 -0
  478. package/{core/focusCatcher → utils}/focusDetector.js +30 -12
  479. package/{core/focusCatcher → utils}/focusDetector.mjs +30 -12
  480. package/utils/samplesGenerator.js +17 -1
  481. package/utils/samplesGenerator.mjs +17 -1
  482. package/utils/stylesHandler.js +23 -8
  483. package/utils/stylesHandler.mjs +23 -8
  484. package/utils/valueAccessors.js +45 -0
  485. package/utils/valueAccessors.mjs +40 -0
  486. package/validators/autocompleteValidator/autocompleteValidator.js +2 -1
  487. package/validators/autocompleteValidator/autocompleteValidator.mjs +2 -1
  488. package/selection/transformation.js +0 -335
  489. package/selection/transformation.mjs +0 -331
@@ -1794,6 +1794,117 @@ export default () => {
1794
1794
  * ```
1795
1795
  */
1796
1796
  disableVisualSelection: false,
1797
+ /**
1798
+ * @description
1799
+ * The `dialog` option configures the [`Dialog`](@/api/dialog.md) plugin.
1800
+ *
1801
+ * You can set the `dialog` option to one of the following:
1802
+ *
1803
+ * | Setting | Description |
1804
+ * | --------- | --------------------------------------------------------------------------- |
1805
+ * | `false` | Disable the [`Dialog`](@/api/dialog.md) plugin |
1806
+ * | `true` | Enable the [`Dialog`](@/api/dialog.md) plugin with default options |
1807
+ *
1808
+ * ##### dialog: Additional options
1809
+ *
1810
+ * | Option | Possible settings | Description |
1811
+ * | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------|
1812
+ * | `content` | A string, HTMLElement or DocumentFragment (default: `''`) | The content of the dialog |
1813
+ * | `customClassName` | A string (default: `''`) | The custom class name of the dialog |
1814
+ * | `background` | One of the options: `'solid'` or `'semi-transparent'` (default: `'solid'`) | The background of the dialog |
1815
+ * | `contentBackground` | Boolean (default: `false`) | Whether to show the content background |
1816
+ * | `animation` | Boolean (default: `true`) | Whether to show the animation |
1817
+ * | `closable` | Boolean (default: `false`) | Whether to make the dialog closable |
1818
+ * | `a11y` | Object with accessibility options (default: `{ role: 'dialog', ariaLabel: 'Dialog', ariaLabelledby: '', ariaDescribedby: '' }`) | Accessibility options for the dialog |
1819
+ *
1820
+ * Read more:
1821
+ * - [Plugins: `Dialog`](@/api/dialog.md)
1822
+ *
1823
+ * @since 16.1.0
1824
+ * @memberof Options#
1825
+ * @type {boolean|object}
1826
+ * @default false
1827
+ * @category Dialog
1828
+ *
1829
+ * @example
1830
+ * ::: only-for javascript
1831
+ * ```js
1832
+ * // enable the Dialog plugin with default option
1833
+ * dialog: true,
1834
+ *
1835
+ * // enable the Dialog plugin with custom configuration
1836
+ * dialog: {
1837
+ * content: 'Dialog content',
1838
+ * customClassName: 'custom-dialog',
1839
+ * background: 'semi-transparent',
1840
+ * contentBackground: false,
1841
+ * animation: false,
1842
+ * closable: true,
1843
+ * a11y: {
1844
+ * role: 'dialog',
1845
+ * ariaLabel: 'Dialog',
1846
+ * ariaLabelledby: 'titleID',
1847
+ * ariaDescribedby: 'descriptionID',
1848
+ * }
1849
+ * }
1850
+ * ```
1851
+ * :::
1852
+ *
1853
+ * ::: only-for react
1854
+ * ```jsx
1855
+ * // enable the Dialog plugin with default option
1856
+ * <HotTable
1857
+ * dialog={true}
1858
+ * />
1859
+ *
1860
+ * // enable the Dialog plugin with custom configuration
1861
+ * <HotTable
1862
+ * dialog={{
1863
+ * content: 'Dialog content',
1864
+ * customClassName: 'custom-dialog',
1865
+ * background: 'semi-transparent',
1866
+ * contentBackground: false,
1867
+ * animation: false,
1868
+ * closable: true,
1869
+ * a11y: {
1870
+ * role: 'dialog',
1871
+ * ariaLabel: 'Dialog',
1872
+ * ariaLabelledby: 'titleID',
1873
+ * ariaDescribedby: 'descriptionID',
1874
+ * }
1875
+ * }
1876
+ * }}
1877
+ * />
1878
+ * ```
1879
+ * :::
1880
+ *
1881
+ * ::: only-for angular
1882
+ * ```ts
1883
+ * settings = {
1884
+ * dialog: {
1885
+ * content: 'Dialog content',
1886
+ * customClassName: 'custom-dialog',
1887
+ * background: 'semi-transparent',
1888
+ * contentBackground: false,
1889
+ * animation: false,
1890
+ * closable: true,
1891
+ * a11y: {
1892
+ * role: 'dialog',
1893
+ * ariaLabel: 'Dialog',
1894
+ * ariaLabelledby: 'titleID',
1895
+ * ariaDescribedby: 'descriptionID',
1896
+ * }
1897
+ * }
1898
+ * };
1899
+ * ```
1900
+ *
1901
+ * ```html
1902
+ * <hot-table [settings]="settings" />
1903
+ * ```
1904
+ * :::
1905
+ *
1906
+ */
1907
+ dialog: false,
1797
1908
  /**
1798
1909
  * @description
1799
1910
  * The `dragToScroll` option configures the [`DragToScroll`](@/api/dragToScroll.md) plugin.
@@ -2517,6 +2628,28 @@ export default () => {
2517
2628
  * ```
2518
2629
  */
2519
2630
  hiddenRows: undefined,
2631
+ /**
2632
+ * The `initialState` option configures the grid's initial state.
2633
+ * This object accepts any grid configuration option. In case of conflicts between
2634
+ * `initialState` and table settings, the table settings take precedence.
2635
+ * Note: The `initialState` option is ignored when passed to the
2636
+ * [`updateSettings()`](@/api/core.md#updatesettings) method.
2637
+ *
2638
+ * @since 16.1.0
2639
+ * @memberof Options#
2640
+ * @type {object | undefined}
2641
+ * @default undefined
2642
+ * @category Core
2643
+ *
2644
+ * @example
2645
+ * ```js
2646
+ * initialState: {
2647
+ * // configure initial column order
2648
+ * manualColumnMove: [1, 0],
2649
+ * },
2650
+ * ```
2651
+ */
2652
+ initialState: undefined,
2520
2653
  /**
2521
2654
  * The `invalidCellClassName` option lets you add a CSS class name to cells
2522
2655
  * that were marked as `invalid` by the [cell validator](@/guides/cell-functions/cell-validator/cell-validator.md).
@@ -2815,6 +2948,50 @@ export default () => {
2815
2948
  * ```
2816
2949
  */
2817
2950
  locale: 'en-US',
2951
+ /**
2952
+ * @description
2953
+ * The `loading` option configures the [`Loading`](@/api/loading.md) plugin.
2954
+ *
2955
+ * Loading plugin, automatically loads [`Dialog`](@/api/dialog.md) plugin.
2956
+ *
2957
+ * You can set the `loading` option to one of the following:
2958
+ *
2959
+ * | Setting | Description |
2960
+ * | --------- | --------------------------------------------------------------------------- |
2961
+ * | `false` | Disable the [`Loading`](@/api/loading.md) plugin |
2962
+ * | `true` | Enable the [`Loading`](@/api/loading.md) plugin with default configuration |
2963
+ * | An object | - Enable the [`Loading`](@/api/loading.md) plugin<br>- Apply custom configuration |
2964
+ *
2965
+ * If you set the `loading` option to an object, you can configure the following loading options:
2966
+ *
2967
+ * | Option | Possible settings | Description |
2968
+ * | ------------- | ----------------- | --------------------------------------------------------- |
2969
+ * | `icon` | A string | Custom loading icon to display (default: `<svg />`) |
2970
+ * | `title` | A string | Custom loading title to display (default: `'Loading...'`) |
2971
+ * | `description` | A string | Custom loading description to display (default: `''`) |
2972
+ *
2973
+ * Read more:
2974
+ * - [Plugins: `Loading`](@/api/loading.md)
2975
+ * @since 16.1.0
2976
+ * @memberof Options#
2977
+ * @type {boolean|object}
2978
+ * @default false
2979
+ * @category Loading
2980
+ *
2981
+ * @example
2982
+ * ```js
2983
+ * // enable the `Loading` plugin with default configuration
2984
+ * loading: true,
2985
+ *
2986
+ * // enable the `Loading` plugin with custom configuration
2987
+ * loading: {
2988
+ * icon: 'A custom loading icon in SVG format',
2989
+ * title: 'Custom loading title',
2990
+ * description: 'Custom loading description',
2991
+ * }
2992
+ * ```
2993
+ */
2994
+ loading: false,
2818
2995
  /**
2819
2996
  * The `manualColumnFreeze` option configures the [`ManualColumnFreeze`](@/api/manualColumnFreeze.md) plugin.
2820
2997
  *
@@ -3482,6 +3659,48 @@ export default () => {
3482
3659
  * ```
3483
3660
  */
3484
3661
  outsideClickDeselects: true,
3662
+ /**
3663
+ * @description
3664
+ * The `pagination` option configures the [`Pagination`](@/api/pagination.md) plugin.
3665
+ *
3666
+ * You can set the `pagination` option to one of the following:
3667
+ *
3668
+ * | Setting | Description |
3669
+ * | -------------------------------- | --------------------------------------------------------------------------------------------- |
3670
+ * | `false` | Disable the [`Pagination`](@/api/pagination.md) plugin |
3671
+ * | `true` | Enable the [`Pagination`](@/api/pagination.md) plugin |
3672
+ *
3673
+ * ##### pagination: Additional options
3674
+ *
3675
+ * If you set the `pagination` option to an object, you can set the following `Pagination` plugin options:
3676
+ *
3677
+ * | Option | Possible settings | Description |
3678
+ * | ------------------------ | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
3679
+ * | `pageSize` | A number or `auto` (default: `10`) | Sets the number of rows displayed per page. If `'auto'` is set, the page size will be calculated to match all rows to the currently set table's viewport height |
3680
+ * | `pageSizeList` | An array (default: `['auto', 5, 10, 20, 50, 100]`) | Defines the selectable values for page size in the UI |
3681
+ * | `initialPage` | A number (default: `1`) | Specifies which page to display on initial load |
3682
+ * | `showPageSize` | Boolean (default: `true`) | Controls visibility of the "page size" section |
3683
+ * | `showCounter` | Boolean (default: `true`) | Controls visibility of the "page counter" section (e.g., "1 - 10 of 50"); |
3684
+ * | `showNavigation` | Boolean (default: `true`) | Controls visibility of the "page navigation" section |
3685
+ * | `uiContainer` | An HTML element (default: `null`) | The container element where the pagination UI will be installed. If not provided, the pagination container will be injected below the root table element. |
3686
+ *
3687
+ * Read more:
3688
+ * - [Rows pagination](@/guides/rows/rows-pagination/rows-pagination.md)
3689
+ * - [Plugins: `Pagination`](@/api/pagination.md)
3690
+ *
3691
+ * @since 16.1.0
3692
+ * @memberof Options#
3693
+ * @type {boolean}
3694
+ * @default undefined
3695
+ * @category Pagination
3696
+ *
3697
+ * @example
3698
+ * ```js
3699
+ * // enable the `Pagination` plugin
3700
+ * pagination: true,
3701
+ * ```
3702
+ */
3703
+ pagination: undefined,
3485
3704
  /**
3486
3705
  * @description
3487
3706
  * The `persistentState` option configures the [`PersistentState`](@/api/persistentState.md) plugin.
@@ -3883,7 +4102,7 @@ export default () => {
3883
4102
  /**
3884
4103
  * The `rowHeights` option sets rows' heights, in pixels.
3885
4104
  *
3886
- * In the rendering process, the default row height is `classic: 23px`, `main: 29px`, `horizon: 37px` (in the classic theme: 22px + 1px of the row's bottom border) or whatever is defined in the used theme (based on the line height, vertical padding and cell borders).
4105
+ * In the rendering process, the default row height is `classic (legacy): 23px`, `main: 29px`, `horizon: 37px` (in the classic (legacy) theme: 22px + 1px of the row's bottom border) or whatever is defined in the used theme (based on the line height, vertical padding and cell borders).
3887
4106
  * You can change it to equal or greater than the default value, by setting the `rowHeights` option to one of the following:
3888
4107
  *
3889
4108
  * | Setting | Description | Example |
@@ -4175,9 +4394,13 @@ export default () => {
4175
4394
  *
4176
4395
  * You can set the `source` option to one of the following:
4177
4396
  *
4178
- * - An array
4397
+ * - An array of string values
4398
+ * - An array of objects with `key` and `value` properties
4179
4399
  * - A function
4180
4400
  *
4401
+ * Note: When defining the `source` option as an array of objects with `key` and `value` properties, the data format for that cell
4402
+ * needs to be an object with `key` and `value` properties as well.
4403
+ *
4181
4404
  * Read more:
4182
4405
  * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)
4183
4406
  * - [Dropdown cell type](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md)
@@ -4193,7 +4416,7 @@ export default () => {
4193
4416
  *
4194
4417
  * @example
4195
4418
  * ```js
4196
- * // set `source` to an array
4419
+ * // set `source` to an array of string values
4197
4420
  * columns: [{
4198
4421
  * // set the `type` of each cell in this column to `autocomplete`
4199
4422
  * type: 'autocomplete',
@@ -4201,6 +4424,20 @@ export default () => {
4201
4424
  * source: ['A', 'B', 'C', 'D']
4202
4425
  * }],
4203
4426
  *
4427
+ * // set `source` to an array of objects with `key` and `value` properties
4428
+ * columns: [{
4429
+ * // set the `type` of each cell in this column to `autocomplete`
4430
+ * type: 'autocomplete',
4431
+ * // set options available in every `autocomplete` cell of this column
4432
+ * source: [{
4433
+ * key: 'A',
4434
+ * value: 'Label A'
4435
+ * }, {
4436
+ * key: 'B',
4437
+ * value: 'Label B'
4438
+ * }]
4439
+ * }],
4440
+ *
4204
4441
  * // set `source` to a function
4205
4442
  * columns: [{
4206
4443
  * // set the `type` of each cell in this column to `autocomplete`
@@ -4388,7 +4625,7 @@ export default () => {
4388
4625
  /**
4389
4626
  * The `themeName` option allows enabling a theme by that name.
4390
4627
  *
4391
- * If no `themeName` is provided, the table will use the classic theme (if the correct CSS files are imported).
4628
+ * If no `themeName` is provided, the table will use the classic (legacy) theme (if the correct CSS files are imported).
4392
4629
  *
4393
4630
  * Read more:
4394
4631
  * - [Themes](@/guides/styling/themes/themes.md)
@@ -4754,6 +4991,54 @@ export default () => {
4754
4991
  * ```
4755
4992
  */
4756
4993
  validator: undefined,
4994
+ /**
4995
+ * @description
4996
+ * The `valueGetter` option configures a function that defines what value will be used when displaying the cell content.
4997
+ * It can be used to modify the value of a cell before it is displayed (for example, for object-based data).
4998
+ *
4999
+ * @example
5000
+ * ```js
5001
+ * // use the `label` property of the value object with a fallback to the value itself
5002
+ * valueGetter: (value, row, column, cellMeta) => {
5003
+ * return value?.label ?? value;
5004
+ * }
5005
+ * ```
5006
+ *
5007
+ * @memberof Options#
5008
+ * @type {function(any, number, number): any}
5009
+ * @param {*} value The value to be displayed in the cell.
5010
+ * @param {number} row The visual row index of the cell.
5011
+ * @param {number} column The visual column index of the cell.
5012
+ * @param {object} cellMeta The cell meta object.
5013
+ * @since 16.1.0
5014
+ * @default undefined
5015
+ * @category Core
5016
+ */
5017
+ valueGetter: undefined,
5018
+ /**
5019
+ * @description
5020
+ * The `valueSetter` option configures a function that defines what value will be used when setting the cell content.
5021
+ * It can be used to modify the value of a cell before it is saved (for example, for object-based data).
5022
+ *
5023
+ * @example
5024
+ * ```js
5025
+ * // Modify the value of a cell before it is saved
5026
+ * valueSetter: (value, row, column, cellMeta) => {
5027
+ * return { id: value?.id ?? value, value: `${value?.value ?? value} at ${row}, ${column}` }
5028
+ * },
5029
+ * ```
5030
+ *
5031
+ * @memberof Options#
5032
+ * @type {function(any, number, number): any}
5033
+ * @param {*} value The value to be set to a cell.
5034
+ * @param {number} row The visual row index of the cell.
5035
+ * @param {number} column The visual column index of the cell.
5036
+ * @param {object} cellMeta The cell meta object.
5037
+ * @since 16.1.0
5038
+ * @default undefined
5039
+ * @category Core
5040
+ */
5041
+ valueSetter: undefined,
4757
5042
  /**
4758
5043
  * @description
4759
5044
  * The `viewportColumnRenderingOffset` option configures the number of columns
@@ -5,7 +5,6 @@ exports.assert = assert;
5
5
  exports.columnFactory = columnFactory;
6
6
  exports.extendByMetaType = extendByMetaType;
7
7
  exports.isNullish = isNullish;
8
- exports.isUnsignedNumber = isUnsignedNumber;
9
8
  require("core-js/modules/es.error.cause.js");
10
9
  require("core-js/modules/es.set.difference.v2.js");
11
10
  require("core-js/modules/es.set.intersection.v2.js");
@@ -95,16 +94,6 @@ function columnFactory(TableMeta) {
95
94
  return ColumnMeta;
96
95
  }
97
96
 
98
- /**
99
- * Helper which checks if the provided argument is an unsigned number.
100
- *
101
- * @param {*} value Value to check.
102
- * @returns {boolean}
103
- */
104
- function isUnsignedNumber(value) {
105
- return Number.isInteger(value) && value >= 0;
106
- }
107
-
108
97
  /**
109
98
  * Function which makes assertion by custom condition. Function throws an error when assertion doesn't meet the spec.
110
99
  *
@@ -87,16 +87,6 @@ export function columnFactory(TableMeta) {
87
87
  return ColumnMeta;
88
88
  }
89
89
 
90
- /**
91
- * Helper which checks if the provided argument is an unsigned number.
92
- *
93
- * @param {*} value Value to check.
94
- * @returns {boolean}
95
- */
96
- export function isUnsignedNumber(value) {
97
- return Number.isInteger(value) && value >= 0;
98
- }
99
-
100
90
  /**
101
91
  * Function which makes assertion by custom condition. Function throws an error when assertion doesn't meet the spec.
102
92
  *
@@ -111,6 +111,7 @@ function replaceData(data, setDataMapFunction, callbackFunction, config) {
111
111
  // TODO: rethink the way the `afterChange` hook is being run here in the core `init` method.
112
112
  if (!firstRun) {
113
113
  hotInstance.runHooks('afterChange', null, internalSource);
114
+ hotInstance.view.adjustElementsSize();
114
115
  hotInstance.render();
115
116
  }
116
117
  if (hotInstance.getSettings().ariaTags) {
@@ -106,6 +106,7 @@ function replaceData(data, setDataMapFunction, callbackFunction, config) {
106
106
  // TODO: rethink the way the `afterChange` hook is being run here in the core `init` method.
107
107
  if (!firstRun) {
108
108
  hotInstance.runHooks('afterChange', null, internalSource);
109
+ hotInstance.view.adjustElementsSize();
109
110
  hotInstance.render();
110
111
  }
111
112
  if (hotInstance.getSettings().ariaTags) {