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
@@ -12,6 +12,7 @@ var _object = require("../helpers/object");
12
12
  var _array = require("../helpers/array");
13
13
  var _number = require("../helpers/number");
14
14
  var _mixed = require("../helpers/mixed");
15
+ var _valueAccessors = require("../utils/valueAccessors");
15
16
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
16
17
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
17
18
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -669,9 +670,18 @@ class DataMap {
669
670
  } else if (typeof prop === 'function') {
670
671
  value = prop(this.dataSource.slice(physicalRow, physicalRow + 1)[0]);
671
672
  }
673
+ const visualColumnIndex = this.propToCol(prop);
674
+ const physicalColumn = this.hot.toPhysicalColumn(visualColumnIndex);
675
+ if ((0, _number.isUnsignedNumber)(physicalRow) && (0, _number.isUnsignedNumber)(physicalColumn)) {
676
+ value = (0, _valueAccessors.getValueGetterValue)(value, this.metaManager.getCellMeta(physicalRow, physicalColumn, {
677
+ visualRow: row,
678
+ visualColumn: visualColumnIndex,
679
+ skipMetaExtension: true
680
+ }));
681
+ }
672
682
  if (this.hot.hasHook('modifyData')) {
673
683
  const valueHolder = (0, _object.createObjectPropListener)(value);
674
- this.hot.runHooks('modifyData', row, this.propToCol(prop), valueHolder, 'get');
684
+ this.hot.runHooks('modifyData', row, visualColumnIndex, valueHolder, 'get');
675
685
  if (valueHolder.isTouched()) {
676
686
  value = valueHolder.value;
677
687
  }
@@ -682,7 +692,7 @@ class DataMap {
682
692
  /**
683
693
  * Returns single value from the data array (intended for clipboard copy to an external application).
684
694
  *
685
- * @param {number} row Physical row index.
695
+ * @param {number} row Visual row index.
686
696
  * @param {number} prop The column property.
687
697
  * @returns {string}
688
698
  */
@@ -697,7 +707,7 @@ class DataMap {
697
707
  * Saves single value to the data array.
698
708
  *
699
709
  * @param {number} row Visual row index.
700
- * @param {number} prop The column property.
710
+ * @param {number|string} prop The column property.
701
711
  * @param {string} value The value to set.
702
712
  */
703
713
  set(row, prop, value) {
@@ -10,8 +10,9 @@ import { stringify } from "../3rdparty/SheetClip/index.mjs";
10
10
  import { countFirstRowKeys } from "../helpers/data.mjs";
11
11
  import { createObjectPropListener, deepClone, deepExtend, deepObjectSize, duckSchema, hasOwnProperty, isObject, objectEach } from "../helpers/object.mjs";
12
12
  import { extendArray, to2dArray } from "../helpers/array.mjs";
13
- import { rangeEach } from "../helpers/number.mjs";
13
+ import { rangeEach, isUnsignedNumber } from "../helpers/number.mjs";
14
14
  import { isDefined } from "../helpers/mixed.mjs";
15
+ import { getValueGetterValue } from "../utils/valueAccessors.mjs";
15
16
  /*
16
17
  This class contains open-source contributions covered by the MIT license.
17
18
 
@@ -665,9 +666,18 @@ class DataMap {
665
666
  } else if (typeof prop === 'function') {
666
667
  value = prop(this.dataSource.slice(physicalRow, physicalRow + 1)[0]);
667
668
  }
669
+ const visualColumnIndex = this.propToCol(prop);
670
+ const physicalColumn = this.hot.toPhysicalColumn(visualColumnIndex);
671
+ if (isUnsignedNumber(physicalRow) && isUnsignedNumber(physicalColumn)) {
672
+ value = getValueGetterValue(value, this.metaManager.getCellMeta(physicalRow, physicalColumn, {
673
+ visualRow: row,
674
+ visualColumn: visualColumnIndex,
675
+ skipMetaExtension: true
676
+ }));
677
+ }
668
678
  if (this.hot.hasHook('modifyData')) {
669
679
  const valueHolder = createObjectPropListener(value);
670
- this.hot.runHooks('modifyData', row, this.propToCol(prop), valueHolder, 'get');
680
+ this.hot.runHooks('modifyData', row, visualColumnIndex, valueHolder, 'get');
671
681
  if (valueHolder.isTouched()) {
672
682
  value = valueHolder.value;
673
683
  }
@@ -678,7 +688,7 @@ class DataMap {
678
688
  /**
679
689
  * Returns single value from the data array (intended for clipboard copy to an external application).
680
690
  *
681
- * @param {number} row Physical row index.
691
+ * @param {number} row Visual row index.
682
692
  * @param {number} prop The column property.
683
693
  * @returns {string}
684
694
  */
@@ -693,7 +703,7 @@ class DataMap {
693
703
  * Saves single value to the data array.
694
704
  *
695
705
  * @param {number} row Visual row index.
696
- * @param {number} prop The column property.
706
+ * @param {number|string} prop The column property.
697
707
  * @param {string} value The value to set.
698
708
  */
699
709
  set(row, prop, value) {
@@ -277,6 +277,22 @@ class DataSource {
277
277
  return result;
278
278
  }
279
279
 
280
+ /**
281
+ * Returns single value from the data array (intended for clipboard copy to an external application).
282
+ *
283
+ * @param {number} row Visual row index.
284
+ * @param {number} prop The column property.
285
+ * @since 16.1.0
286
+ * @returns {string}
287
+ */
288
+ getCopyable(row, prop) {
289
+ const visualColumn = this.propToCol(prop);
290
+ if (this.hot.getCellMeta(row, visualColumn).copyable) {
291
+ return this.getAtCell(this.hot.toPhysicalRow(row), visualColumn);
292
+ }
293
+ return '';
294
+ }
295
+
280
296
  /**
281
297
  * Count number of rows.
282
298
  *
@@ -274,6 +274,22 @@ class DataSource {
274
274
  return result;
275
275
  }
276
276
 
277
+ /**
278
+ * Returns single value from the data array (intended for clipboard copy to an external application).
279
+ *
280
+ * @param {number} row Visual row index.
281
+ * @param {number} prop The column property.
282
+ * @since 16.1.0
283
+ * @returns {string}
284
+ */
285
+ getCopyable(row, prop) {
286
+ const visualColumn = this.propToCol(prop);
287
+ if (this.hot.getCellMeta(row, visualColumn).copyable) {
288
+ return this.getAtCell(this.hot.toPhysicalRow(row), visualColumn);
289
+ }
290
+ return '';
291
+ }
292
+
277
293
  /**
278
294
  * Count number of rows.
279
295
  *
@@ -13,6 +13,7 @@ require("core-js/modules/es.set.union.v2.js");
13
13
  require("core-js/modules/esnext.iterator.constructor.js");
14
14
  require("core-js/modules/esnext.iterator.filter.js");
15
15
  var _utils = require("./utils");
16
+ var _number = require("../../helpers/number");
16
17
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
17
18
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
18
19
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -179,7 +180,7 @@ class LazyFactoryMap {
179
180
  * @returns {*}
180
181
  */
181
182
  obtain(key) {
182
- (0, _utils.assert)(() => (0, _utils.isUnsignedNumber)(key), 'Expecting an unsigned number.');
183
+ (0, _utils.assert)(() => (0, _number.isUnsignedNumber)(key), 'Expecting an unsigned number.');
183
184
  const dataIndex = this._getStorageIndexByKey(key);
184
185
  let result;
185
186
  if (dataIndex >= 0) {
@@ -213,7 +214,7 @@ class LazyFactoryMap {
213
214
  */
214
215
  insert(key) {
215
216
  let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
216
- (0, _utils.assert)(() => (0, _utils.isUnsignedNumber)(key) || (0, _utils.isNullish)(key), 'Expecting an unsigned number or null/undefined argument.');
217
+ (0, _utils.assert)(() => (0, _number.isUnsignedNumber)(key) || (0, _utils.isNullish)(key), 'Expecting an unsigned number or null/undefined argument.');
217
218
  const newIndexes = [];
218
219
  const dataLength = this.data.length;
219
220
  for (let i = 0; i < amount; i++) {
@@ -232,7 +233,7 @@ class LazyFactoryMap {
232
233
  */
233
234
  remove(key) {
234
235
  let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
235
- (0, _utils.assert)(() => (0, _utils.isUnsignedNumber)(key) || (0, _utils.isNullish)(key), 'Expecting an unsigned number or null/undefined argument.');
236
+ (0, _utils.assert)(() => (0, _number.isUnsignedNumber)(key) || (0, _utils.isNullish)(key), 'Expecting an unsigned number or null/undefined argument.');
236
237
  const removed = this.index.splice((0, _utils.isNullish)(key) ? this.index.length - amount : key, amount);
237
238
  for (let i = 0; i < removed.length; i++) {
238
239
  const removedIndex = removed[i];
@@ -12,7 +12,8 @@ import "core-js/modules/esnext.iterator.filter.js";
12
12
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
13
13
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
14
14
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
- import { assert, isUnsignedNumber, isNullish } from "./utils.mjs";
15
+ import { assert, isNullish } from "./utils.mjs";
16
+ import { isUnsignedNumber } from "../../helpers/number.mjs";
16
17
  /* eslint-disable jsdoc/require-description-complete-sentence */
17
18
  /**
18
19
  * @class LazyFactoryMap
@@ -3,10 +3,11 @@
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
- var _object = require("../../../helpers/object");
7
6
  var _utils = require("../utils");
8
7
  var _lazyFactoryMap = _interopRequireDefault(require("../lazyFactoryMap"));
8
+ var _object = require("../../../helpers/object");
9
9
  var _mixed = require("../../../helpers/mixed");
10
+ var _number = require("../../../helpers/number");
10
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
12
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
12
13
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
@@ -189,7 +190,7 @@ class CellMeta {
189
190
  * @returns {object[]}
190
191
  */
191
192
  getMetasAtRow(physicalRow) {
192
- (0, _utils.assert)(() => (0, _utils.isUnsignedNumber)(physicalRow), 'Expecting an unsigned number.');
193
+ (0, _utils.assert)(() => (0, _number.isUnsignedNumber)(physicalRow), 'Expecting an unsigned number.');
193
194
  const rowsMeta = new Map(this.metas);
194
195
  return rowsMeta.has(physicalRow) ? Array.from(rowsMeta.get(physicalRow).values()) : [];
195
196
  }
@@ -3,10 +3,11 @@ import "core-js/modules/es.array.push.js";
3
3
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
4
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
5
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
- import { extend } from "../../../helpers/object.mjs";
7
- import { extendByMetaType, assert, isUnsignedNumber } from "../utils.mjs";
6
+ import { extendByMetaType, assert } from "../utils.mjs";
8
7
  import LazyFactoryMap from "../lazyFactoryMap.mjs";
8
+ import { extend } from "../../../helpers/object.mjs";
9
9
  import { isDefined } from "../../../helpers/mixed.mjs";
10
+ import { isUnsignedNumber } from "../../../helpers/number.mjs";
10
11
  /* eslint-disable jsdoc/require-description-complete-sentence */
11
12
  /**
12
13
  * @class CellMeta
@@ -1797,6 +1797,117 @@ var _default = () => {
1797
1797
  * ```
1798
1798
  */
1799
1799
  disableVisualSelection: false,
1800
+ /**
1801
+ * @description
1802
+ * The `dialog` option configures the [`Dialog`](@/api/dialog.md) plugin.
1803
+ *
1804
+ * You can set the `dialog` option to one of the following:
1805
+ *
1806
+ * | Setting | Description |
1807
+ * | --------- | --------------------------------------------------------------------------- |
1808
+ * | `false` | Disable the [`Dialog`](@/api/dialog.md) plugin |
1809
+ * | `true` | Enable the [`Dialog`](@/api/dialog.md) plugin with default options |
1810
+ *
1811
+ * ##### dialog: Additional options
1812
+ *
1813
+ * | Option | Possible settings | Description |
1814
+ * | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------|
1815
+ * | `content` | A string, HTMLElement or DocumentFragment (default: `''`) | The content of the dialog |
1816
+ * | `customClassName` | A string (default: `''`) | The custom class name of the dialog |
1817
+ * | `background` | One of the options: `'solid'` or `'semi-transparent'` (default: `'solid'`) | The background of the dialog |
1818
+ * | `contentBackground` | Boolean (default: `false`) | Whether to show the content background |
1819
+ * | `animation` | Boolean (default: `true`) | Whether to show the animation |
1820
+ * | `closable` | Boolean (default: `false`) | Whether to make the dialog closable |
1821
+ * | `a11y` | Object with accessibility options (default: `{ role: 'dialog', ariaLabel: 'Dialog', ariaLabelledby: '', ariaDescribedby: '' }`) | Accessibility options for the dialog |
1822
+ *
1823
+ * Read more:
1824
+ * - [Plugins: `Dialog`](@/api/dialog.md)
1825
+ *
1826
+ * @since 16.1.0
1827
+ * @memberof Options#
1828
+ * @type {boolean|object}
1829
+ * @default false
1830
+ * @category Dialog
1831
+ *
1832
+ * @example
1833
+ * ::: only-for javascript
1834
+ * ```js
1835
+ * // enable the Dialog plugin with default option
1836
+ * dialog: true,
1837
+ *
1838
+ * // enable the Dialog plugin with custom configuration
1839
+ * dialog: {
1840
+ * content: 'Dialog content',
1841
+ * customClassName: 'custom-dialog',
1842
+ * background: 'semi-transparent',
1843
+ * contentBackground: false,
1844
+ * animation: false,
1845
+ * closable: true,
1846
+ * a11y: {
1847
+ * role: 'dialog',
1848
+ * ariaLabel: 'Dialog',
1849
+ * ariaLabelledby: 'titleID',
1850
+ * ariaDescribedby: 'descriptionID',
1851
+ * }
1852
+ * }
1853
+ * ```
1854
+ * :::
1855
+ *
1856
+ * ::: only-for react
1857
+ * ```jsx
1858
+ * // enable the Dialog plugin with default option
1859
+ * <HotTable
1860
+ * dialog={true}
1861
+ * />
1862
+ *
1863
+ * // enable the Dialog plugin with custom configuration
1864
+ * <HotTable
1865
+ * dialog={{
1866
+ * content: 'Dialog content',
1867
+ * customClassName: 'custom-dialog',
1868
+ * background: 'semi-transparent',
1869
+ * contentBackground: false,
1870
+ * animation: false,
1871
+ * closable: true,
1872
+ * a11y: {
1873
+ * role: 'dialog',
1874
+ * ariaLabel: 'Dialog',
1875
+ * ariaLabelledby: 'titleID',
1876
+ * ariaDescribedby: 'descriptionID',
1877
+ * }
1878
+ * }
1879
+ * }}
1880
+ * />
1881
+ * ```
1882
+ * :::
1883
+ *
1884
+ * ::: only-for angular
1885
+ * ```ts
1886
+ * settings = {
1887
+ * dialog: {
1888
+ * content: 'Dialog content',
1889
+ * customClassName: 'custom-dialog',
1890
+ * background: 'semi-transparent',
1891
+ * contentBackground: false,
1892
+ * animation: false,
1893
+ * closable: true,
1894
+ * a11y: {
1895
+ * role: 'dialog',
1896
+ * ariaLabel: 'Dialog',
1897
+ * ariaLabelledby: 'titleID',
1898
+ * ariaDescribedby: 'descriptionID',
1899
+ * }
1900
+ * }
1901
+ * };
1902
+ * ```
1903
+ *
1904
+ * ```html
1905
+ * <hot-table [settings]="settings" />
1906
+ * ```
1907
+ * :::
1908
+ *
1909
+ */
1910
+ dialog: false,
1800
1911
  /**
1801
1912
  * @description
1802
1913
  * The `dragToScroll` option configures the [`DragToScroll`](@/api/dragToScroll.md) plugin.
@@ -2520,6 +2631,28 @@ var _default = () => {
2520
2631
  * ```
2521
2632
  */
2522
2633
  hiddenRows: undefined,
2634
+ /**
2635
+ * The `initialState` option configures the grid's initial state.
2636
+ * This object accepts any grid configuration option. In case of conflicts between
2637
+ * `initialState` and table settings, the table settings take precedence.
2638
+ * Note: The `initialState` option is ignored when passed to the
2639
+ * [`updateSettings()`](@/api/core.md#updatesettings) method.
2640
+ *
2641
+ * @since 16.1.0
2642
+ * @memberof Options#
2643
+ * @type {object | undefined}
2644
+ * @default undefined
2645
+ * @category Core
2646
+ *
2647
+ * @example
2648
+ * ```js
2649
+ * initialState: {
2650
+ * // configure initial column order
2651
+ * manualColumnMove: [1, 0],
2652
+ * },
2653
+ * ```
2654
+ */
2655
+ initialState: undefined,
2523
2656
  /**
2524
2657
  * The `invalidCellClassName` option lets you add a CSS class name to cells
2525
2658
  * that were marked as `invalid` by the [cell validator](@/guides/cell-functions/cell-validator/cell-validator.md).
@@ -2818,6 +2951,50 @@ var _default = () => {
2818
2951
  * ```
2819
2952
  */
2820
2953
  locale: 'en-US',
2954
+ /**
2955
+ * @description
2956
+ * The `loading` option configures the [`Loading`](@/api/loading.md) plugin.
2957
+ *
2958
+ * Loading plugin, automatically loads [`Dialog`](@/api/dialog.md) plugin.
2959
+ *
2960
+ * You can set the `loading` option to one of the following:
2961
+ *
2962
+ * | Setting | Description |
2963
+ * | --------- | --------------------------------------------------------------------------- |
2964
+ * | `false` | Disable the [`Loading`](@/api/loading.md) plugin |
2965
+ * | `true` | Enable the [`Loading`](@/api/loading.md) plugin with default configuration |
2966
+ * | An object | - Enable the [`Loading`](@/api/loading.md) plugin<br>- Apply custom configuration |
2967
+ *
2968
+ * If you set the `loading` option to an object, you can configure the following loading options:
2969
+ *
2970
+ * | Option | Possible settings | Description |
2971
+ * | ------------- | ----------------- | --------------------------------------------------------- |
2972
+ * | `icon` | A string | Custom loading icon to display (default: `<svg />`) |
2973
+ * | `title` | A string | Custom loading title to display (default: `'Loading...'`) |
2974
+ * | `description` | A string | Custom loading description to display (default: `''`) |
2975
+ *
2976
+ * Read more:
2977
+ * - [Plugins: `Loading`](@/api/loading.md)
2978
+ * @since 16.1.0
2979
+ * @memberof Options#
2980
+ * @type {boolean|object}
2981
+ * @default false
2982
+ * @category Loading
2983
+ *
2984
+ * @example
2985
+ * ```js
2986
+ * // enable the `Loading` plugin with default configuration
2987
+ * loading: true,
2988
+ *
2989
+ * // enable the `Loading` plugin with custom configuration
2990
+ * loading: {
2991
+ * icon: 'A custom loading icon in SVG format',
2992
+ * title: 'Custom loading title',
2993
+ * description: 'Custom loading description',
2994
+ * }
2995
+ * ```
2996
+ */
2997
+ loading: false,
2821
2998
  /**
2822
2999
  * The `manualColumnFreeze` option configures the [`ManualColumnFreeze`](@/api/manualColumnFreeze.md) plugin.
2823
3000
  *
@@ -3485,6 +3662,48 @@ var _default = () => {
3485
3662
  * ```
3486
3663
  */
3487
3664
  outsideClickDeselects: true,
3665
+ /**
3666
+ * @description
3667
+ * The `pagination` option configures the [`Pagination`](@/api/pagination.md) plugin.
3668
+ *
3669
+ * You can set the `pagination` option to one of the following:
3670
+ *
3671
+ * | Setting | Description |
3672
+ * | -------------------------------- | --------------------------------------------------------------------------------------------- |
3673
+ * | `false` | Disable the [`Pagination`](@/api/pagination.md) plugin |
3674
+ * | `true` | Enable the [`Pagination`](@/api/pagination.md) plugin |
3675
+ *
3676
+ * ##### pagination: Additional options
3677
+ *
3678
+ * If you set the `pagination` option to an object, you can set the following `Pagination` plugin options:
3679
+ *
3680
+ * | Option | Possible settings | Description |
3681
+ * | ------------------------ | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
3682
+ * | `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 |
3683
+ * | `pageSizeList` | An array (default: `['auto', 5, 10, 20, 50, 100]`) | Defines the selectable values for page size in the UI |
3684
+ * | `initialPage` | A number (default: `1`) | Specifies which page to display on initial load |
3685
+ * | `showPageSize` | Boolean (default: `true`) | Controls visibility of the "page size" section |
3686
+ * | `showCounter` | Boolean (default: `true`) | Controls visibility of the "page counter" section (e.g., "1 - 10 of 50"); |
3687
+ * | `showNavigation` | Boolean (default: `true`) | Controls visibility of the "page navigation" section |
3688
+ * | `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. |
3689
+ *
3690
+ * Read more:
3691
+ * - [Rows pagination](@/guides/rows/rows-pagination/rows-pagination.md)
3692
+ * - [Plugins: `Pagination`](@/api/pagination.md)
3693
+ *
3694
+ * @since 16.1.0
3695
+ * @memberof Options#
3696
+ * @type {boolean}
3697
+ * @default undefined
3698
+ * @category Pagination
3699
+ *
3700
+ * @example
3701
+ * ```js
3702
+ * // enable the `Pagination` plugin
3703
+ * pagination: true,
3704
+ * ```
3705
+ */
3706
+ pagination: undefined,
3488
3707
  /**
3489
3708
  * @description
3490
3709
  * The `persistentState` option configures the [`PersistentState`](@/api/persistentState.md) plugin.
@@ -3886,7 +4105,7 @@ var _default = () => {
3886
4105
  /**
3887
4106
  * The `rowHeights` option sets rows' heights, in pixels.
3888
4107
  *
3889
- * 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).
4108
+ * 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).
3890
4109
  * You can change it to equal or greater than the default value, by setting the `rowHeights` option to one of the following:
3891
4110
  *
3892
4111
  * | Setting | Description | Example |
@@ -4178,9 +4397,13 @@ var _default = () => {
4178
4397
  *
4179
4398
  * You can set the `source` option to one of the following:
4180
4399
  *
4181
- * - An array
4400
+ * - An array of string values
4401
+ * - An array of objects with `key` and `value` properties
4182
4402
  * - A function
4183
4403
  *
4404
+ * Note: When defining the `source` option as an array of objects with `key` and `value` properties, the data format for that cell
4405
+ * needs to be an object with `key` and `value` properties as well.
4406
+ *
4184
4407
  * Read more:
4185
4408
  * - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)
4186
4409
  * - [Dropdown cell type](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md)
@@ -4196,7 +4419,7 @@ var _default = () => {
4196
4419
  *
4197
4420
  * @example
4198
4421
  * ```js
4199
- * // set `source` to an array
4422
+ * // set `source` to an array of string values
4200
4423
  * columns: [{
4201
4424
  * // set the `type` of each cell in this column to `autocomplete`
4202
4425
  * type: 'autocomplete',
@@ -4204,6 +4427,20 @@ var _default = () => {
4204
4427
  * source: ['A', 'B', 'C', 'D']
4205
4428
  * }],
4206
4429
  *
4430
+ * // set `source` to an array of objects with `key` and `value` properties
4431
+ * columns: [{
4432
+ * // set the `type` of each cell in this column to `autocomplete`
4433
+ * type: 'autocomplete',
4434
+ * // set options available in every `autocomplete` cell of this column
4435
+ * source: [{
4436
+ * key: 'A',
4437
+ * value: 'Label A'
4438
+ * }, {
4439
+ * key: 'B',
4440
+ * value: 'Label B'
4441
+ * }]
4442
+ * }],
4443
+ *
4207
4444
  * // set `source` to a function
4208
4445
  * columns: [{
4209
4446
  * // set the `type` of each cell in this column to `autocomplete`
@@ -4391,7 +4628,7 @@ var _default = () => {
4391
4628
  /**
4392
4629
  * The `themeName` option allows enabling a theme by that name.
4393
4630
  *
4394
- * If no `themeName` is provided, the table will use the classic theme (if the correct CSS files are imported).
4631
+ * If no `themeName` is provided, the table will use the classic (legacy) theme (if the correct CSS files are imported).
4395
4632
  *
4396
4633
  * Read more:
4397
4634
  * - [Themes](@/guides/styling/themes/themes.md)
@@ -4757,6 +4994,54 @@ var _default = () => {
4757
4994
  * ```
4758
4995
  */
4759
4996
  validator: undefined,
4997
+ /**
4998
+ * @description
4999
+ * The `valueGetter` option configures a function that defines what value will be used when displaying the cell content.
5000
+ * It can be used to modify the value of a cell before it is displayed (for example, for object-based data).
5001
+ *
5002
+ * @example
5003
+ * ```js
5004
+ * // use the `label` property of the value object with a fallback to the value itself
5005
+ * valueGetter: (value, row, column, cellMeta) => {
5006
+ * return value?.label ?? value;
5007
+ * }
5008
+ * ```
5009
+ *
5010
+ * @memberof Options#
5011
+ * @type {function(any, number, number): any}
5012
+ * @param {*} value The value to be displayed in the cell.
5013
+ * @param {number} row The visual row index of the cell.
5014
+ * @param {number} column The visual column index of the cell.
5015
+ * @param {object} cellMeta The cell meta object.
5016
+ * @since 16.1.0
5017
+ * @default undefined
5018
+ * @category Core
5019
+ */
5020
+ valueGetter: undefined,
5021
+ /**
5022
+ * @description
5023
+ * The `valueSetter` option configures a function that defines what value will be used when setting the cell content.
5024
+ * It can be used to modify the value of a cell before it is saved (for example, for object-based data).
5025
+ *
5026
+ * @example
5027
+ * ```js
5028
+ * // Modify the value of a cell before it is saved
5029
+ * valueSetter: (value, row, column, cellMeta) => {
5030
+ * return { id: value?.id ?? value, value: `${value?.value ?? value} at ${row}, ${column}` }
5031
+ * },
5032
+ * ```
5033
+ *
5034
+ * @memberof Options#
5035
+ * @type {function(any, number, number): any}
5036
+ * @param {*} value The value to be set to a cell.
5037
+ * @param {number} row The visual row index of the cell.
5038
+ * @param {number} column The visual column index of the cell.
5039
+ * @param {object} cellMeta The cell meta object.
5040
+ * @since 16.1.0
5041
+ * @default undefined
5042
+ * @category Core
5043
+ */
5044
+ valueSetter: undefined,
4760
5045
  /**
4761
5046
  * @description
4762
5047
  * The `viewportColumnRenderingOffset` option configures the number of columns