handsontable 16.2.0 → 17.0.0-rc1

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 (984) hide show
  1. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.js +0 -3
  2. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.mjs +0 -3
  3. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.js +0 -3
  4. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.mjs +0 -3
  5. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.js +0 -3
  6. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs +0 -3
  7. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.js +0 -3
  8. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs +0 -3
  9. package/3rdparty/walkontable/src/calculator/calculationType/renderedAllColumns.js +0 -1
  10. package/3rdparty/walkontable/src/calculator/calculationType/renderedAllColumns.mjs +0 -1
  11. package/3rdparty/walkontable/src/calculator/calculationType/renderedAllRows.js +0 -1
  12. package/3rdparty/walkontable/src/calculator/calculationType/renderedAllRows.mjs +0 -1
  13. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +0 -1
  14. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +0 -1
  15. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +0 -1
  16. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +0 -1
  17. package/3rdparty/walkontable/src/calculator/viewportBase.js +0 -3
  18. package/3rdparty/walkontable/src/calculator/viewportBase.mjs +0 -3
  19. package/3rdparty/walkontable/src/calculator/viewportColumns.js +0 -2
  20. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +0 -2
  21. package/3rdparty/walkontable/src/calculator/viewportRows.js +0 -2
  22. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +0 -2
  23. package/3rdparty/walkontable/src/cell/coords.js +0 -1
  24. package/3rdparty/walkontable/src/cell/coords.mjs +0 -1
  25. package/3rdparty/walkontable/src/cell/range.js +0 -2
  26. package/3rdparty/walkontable/src/cell/range.mjs +0 -2
  27. package/3rdparty/walkontable/src/core/_base.js +0 -2
  28. package/3rdparty/walkontable/src/core/_base.mjs +0 -2
  29. package/3rdparty/walkontable/src/core/clone.js +0 -1
  30. package/3rdparty/walkontable/src/core/clone.mjs +0 -1
  31. package/3rdparty/walkontable/src/core/core.js +0 -1
  32. package/3rdparty/walkontable/src/core/core.mjs +0 -1
  33. package/3rdparty/walkontable/src/event.js +0 -1
  34. package/3rdparty/walkontable/src/event.mjs +0 -1
  35. package/3rdparty/walkontable/src/filter/column.js +0 -1
  36. package/3rdparty/walkontable/src/filter/column.mjs +0 -1
  37. package/3rdparty/walkontable/src/filter/row.js +0 -1
  38. package/3rdparty/walkontable/src/filter/row.mjs +0 -1
  39. package/3rdparty/walkontable/src/overlay/_base.js +6 -4
  40. package/3rdparty/walkontable/src/overlay/_base.mjs +6 -4
  41. package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
  42. package/3rdparty/walkontable/src/overlay/bottom.mjs +2 -2
  43. package/3rdparty/walkontable/src/overlay/index.js +0 -2
  44. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -2
  45. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -2
  46. package/3rdparty/walkontable/src/overlay/top.js +2 -2
  47. package/3rdparty/walkontable/src/overlay/top.mjs +2 -2
  48. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +0 -1
  49. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +0 -1
  50. package/3rdparty/walkontable/src/overlays.js +5 -8
  51. package/3rdparty/walkontable/src/overlays.mjs +5 -8
  52. package/3rdparty/walkontable/src/renderer/_base.js +0 -1
  53. package/3rdparty/walkontable/src/renderer/_base.mjs +0 -1
  54. package/3rdparty/walkontable/src/renderer/cells.js +0 -1
  55. package/3rdparty/walkontable/src/renderer/cells.mjs +0 -1
  56. package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -2
  57. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -2
  58. package/3rdparty/walkontable/src/renderer/rows.js +1 -12
  59. package/3rdparty/walkontable/src/renderer/rows.mjs +1 -12
  60. package/3rdparty/walkontable/src/renderer/table.js +0 -1
  61. package/3rdparty/walkontable/src/renderer/table.mjs +0 -1
  62. package/3rdparty/walkontable/src/scroll.js +0 -1
  63. package/3rdparty/walkontable/src/scroll.mjs +0 -1
  64. package/3rdparty/walkontable/src/selection/border/border.js +13 -26
  65. package/3rdparty/walkontable/src/selection/border/border.mjs +13 -26
  66. package/3rdparty/walkontable/src/selection/border/utils.js +0 -9
  67. package/3rdparty/walkontable/src/selection/border/utils.mjs +0 -9
  68. package/3rdparty/walkontable/src/selection/index.js +0 -2
  69. package/3rdparty/walkontable/src/selection/manager.js +0 -13
  70. package/3rdparty/walkontable/src/selection/manager.mjs +0 -13
  71. package/3rdparty/walkontable/src/selection/scanner.js +0 -8
  72. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -8
  73. package/3rdparty/walkontable/src/settings.js +2 -2
  74. package/3rdparty/walkontable/src/settings.mjs +2 -2
  75. package/3rdparty/walkontable/src/table/master.js +1 -1
  76. package/3rdparty/walkontable/src/table/master.mjs +1 -1
  77. package/3rdparty/walkontable/src/table.js +3 -6
  78. package/3rdparty/walkontable/src/table.mjs +3 -6
  79. package/3rdparty/walkontable/src/utils/column.js +0 -1
  80. package/3rdparty/walkontable/src/utils/column.mjs +0 -1
  81. package/3rdparty/walkontable/src/utils/nodesPool.js +7 -1
  82. package/3rdparty/walkontable/src/utils/nodesPool.mjs +7 -1
  83. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/differBasedRendererAdapter.js +100 -0
  84. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/differBasedRendererAdapter.mjs +96 -0
  85. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/directDomRendererAdapter.js +117 -0
  86. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/directDomRendererAdapter.mjs +113 -0
  87. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/index.js +19 -0
  88. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/index.mjs +15 -0
  89. package/3rdparty/walkontable/src/utils/orderView/view.js +16 -58
  90. package/3rdparty/walkontable/src/utils/orderView/view.mjs +16 -58
  91. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/index.js +0 -2
  92. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/index.mjs +0 -2
  93. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.js +0 -2
  94. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.mjs +0 -2
  95. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +0 -1
  96. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +0 -1
  97. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +0 -1
  98. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +0 -1
  99. package/3rdparty/walkontable/src/utils/row.js +0 -1
  100. package/3rdparty/walkontable/src/utils/row.mjs +0 -1
  101. package/3rdparty/walkontable/src/viewport.js +0 -2
  102. package/3rdparty/walkontable/src/viewport.mjs +0 -2
  103. package/CHANGELOG.md +1 -1
  104. package/README.md +4 -23
  105. package/base.js +13 -2
  106. package/base.mjs +14 -3
  107. package/cellTypes/autocompleteType/accessors/valueSetter.js +2 -4
  108. package/cellTypes/autocompleteType/accessors/valueSetter.mjs +1 -3
  109. package/cellTypes/autocompleteType/autocompleteType.js +2 -1
  110. package/cellTypes/autocompleteType/autocompleteType.mjs +2 -1
  111. package/cellTypes/dropdownType/dropdownType.js +2 -1
  112. package/cellTypes/dropdownType/dropdownType.mjs +2 -1
  113. package/cellTypes/index.d.ts +6 -0
  114. package/cellTypes/index.js +12 -0
  115. package/cellTypes/index.mjs +7 -1
  116. package/cellTypes/intlDateType/index.d.ts +1 -0
  117. package/cellTypes/intlDateType/index.js +6 -0
  118. package/cellTypes/intlDateType/index.mjs +1 -0
  119. package/cellTypes/intlDateType/intlDateType.d.ts +23 -0
  120. package/cellTypes/intlDateType/intlDateType.js +16 -0
  121. package/cellTypes/intlDateType/intlDateType.mjs +13 -0
  122. package/cellTypes/intlTimeType/index.d.ts +1 -0
  123. package/cellTypes/intlTimeType/index.js +6 -0
  124. package/cellTypes/intlTimeType/index.mjs +1 -0
  125. package/cellTypes/intlTimeType/intlTimeType.d.ts +23 -0
  126. package/cellTypes/intlTimeType/intlTimeType.js +16 -0
  127. package/cellTypes/intlTimeType/intlTimeType.mjs +13 -0
  128. package/cellTypes/multiSelectType/accessors/index.js +7 -0
  129. package/cellTypes/multiSelectType/accessors/index.mjs +2 -0
  130. package/cellTypes/multiSelectType/accessors/valueGetter.js +20 -0
  131. package/cellTypes/multiSelectType/accessors/valueGetter.mjs +16 -0
  132. package/cellTypes/multiSelectType/accessors/valueSetter.js +27 -0
  133. package/cellTypes/multiSelectType/accessors/valueSetter.mjs +23 -0
  134. package/cellTypes/multiSelectType/index.js +6 -0
  135. package/cellTypes/multiSelectType/index.mjs +1 -0
  136. package/cellTypes/multiSelectType/multiSelectType.js +19 -0
  137. package/cellTypes/multiSelectType/multiSelectType.mjs +16 -0
  138. package/cellTypes/numericType/numericType.d.ts +3 -1
  139. package/cellTypes/numericType/numericType.js +2 -1
  140. package/cellTypes/numericType/numericType.mjs +3 -2
  141. package/cellTypes/registry.js +2 -2
  142. package/cellTypes/registry.mjs +2 -2
  143. package/common.d.ts +3 -1
  144. package/core/coordsMapper/index.js +0 -2
  145. package/core/coordsMapper/rangeToRenderableMapper.js +0 -1
  146. package/core/coordsMapper/rangeToRenderableMapper.mjs +0 -1
  147. package/core/hooks/bucket.js +0 -14
  148. package/core/hooks/bucket.mjs +0 -14
  149. package/core/hooks/constants.js +0 -28
  150. package/core/hooks/constants.mjs +0 -28
  151. package/core/hooks/index.d.ts +0 -3
  152. package/core/hooks/index.js +0 -2
  153. package/core/hooks/index.mjs +0 -2
  154. package/core/index.js +0 -2
  155. package/core.d.ts +0 -5
  156. package/core.js +193 -104
  157. package/core.mjs +194 -105
  158. package/dataMap/dataMap.js +6 -8
  159. package/dataMap/dataMap.mjs +6 -8
  160. package/dataMap/dataSource.js +0 -4
  161. package/dataMap/dataSource.mjs +0 -4
  162. package/dataMap/index.js +5 -0
  163. package/dataMap/index.mjs +3 -1
  164. package/dataMap/metaManager/index.js +2 -4
  165. package/dataMap/metaManager/index.mjs +2 -4
  166. package/dataMap/metaManager/lazyFactoryMap.js +0 -11
  167. package/dataMap/metaManager/lazyFactoryMap.mjs +0 -11
  168. package/dataMap/metaManager/metaLayers/cellMeta.js +0 -2
  169. package/dataMap/metaManager/metaLayers/cellMeta.mjs +0 -2
  170. package/dataMap/metaManager/metaLayers/columnMeta.js +0 -1
  171. package/dataMap/metaManager/metaLayers/columnMeta.mjs +0 -1
  172. package/dataMap/metaManager/metaLayers/globalMeta.js +0 -1
  173. package/dataMap/metaManager/metaLayers/globalMeta.mjs +0 -1
  174. package/dataMap/metaManager/metaLayers/tableMeta.js +0 -1
  175. package/dataMap/metaManager/metaLayers/tableMeta.mjs +0 -1
  176. package/dataMap/metaManager/metaSchema.js +862 -79
  177. package/dataMap/metaManager/metaSchema.mjs +862 -79
  178. package/dataMap/metaManager/mods/dynamicCellMeta.js +0 -8
  179. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +0 -8
  180. package/dataMap/metaManager/mods/extendMetaProperties.js +23 -15
  181. package/dataMap/metaManager/mods/extendMetaProperties.mjs +23 -15
  182. package/dataMap/metaManager/utils.js +2 -9
  183. package/dataMap/metaManager/utils.mjs +2 -9
  184. package/dataMap/replaceData.js +6 -3
  185. package/dataMap/replaceData.mjs +6 -3
  186. package/dataMap/sourceDataValidator.js +122 -0
  187. package/dataMap/sourceDataValidator.mjs +117 -0
  188. package/dist/handsontable.full.js +57523 -54761
  189. package/dist/handsontable.full.min.js +228 -213
  190. package/dist/handsontable.js +39604 -37938
  191. package/dist/handsontable.min.js +51 -51
  192. package/dist/languages/all.js +1 -1
  193. package/dist/languages/all.min.js +1 -1
  194. package/dist/languages/ar-AR.js +1 -1
  195. package/dist/languages/ar-AR.min.js +1 -1
  196. package/dist/languages/cs-CZ.js +1 -1
  197. package/dist/languages/cs-CZ.min.js +1 -1
  198. package/dist/languages/de-CH.js +1 -1
  199. package/dist/languages/de-CH.min.js +1 -1
  200. package/dist/languages/de-DE.js +1 -1
  201. package/dist/languages/de-DE.min.js +1 -1
  202. package/dist/languages/en-US.js +1 -1
  203. package/dist/languages/en-US.min.js +1 -1
  204. package/dist/languages/es-MX.js +1 -1
  205. package/dist/languages/es-MX.min.js +1 -1
  206. package/dist/languages/fa-IR.js +1 -1
  207. package/dist/languages/fa-IR.min.js +1 -1
  208. package/dist/languages/fr-FR.js +1 -1
  209. package/dist/languages/fr-FR.min.js +1 -1
  210. package/dist/languages/hr-HR.js +1 -1
  211. package/dist/languages/hr-HR.min.js +1 -1
  212. package/dist/languages/it-IT.js +1 -1
  213. package/dist/languages/it-IT.min.js +1 -1
  214. package/dist/languages/ja-JP.js +1 -1
  215. package/dist/languages/ja-JP.min.js +1 -1
  216. package/dist/languages/ko-KR.js +1 -1
  217. package/dist/languages/ko-KR.min.js +1 -1
  218. package/dist/languages/lv-LV.js +1 -1
  219. package/dist/languages/lv-LV.min.js +1 -1
  220. package/dist/languages/nb-NO.js +1 -1
  221. package/dist/languages/nb-NO.min.js +1 -1
  222. package/dist/languages/nl-NL.js +1 -1
  223. package/dist/languages/nl-NL.min.js +1 -1
  224. package/dist/languages/pl-PL.js +1 -1
  225. package/dist/languages/pl-PL.min.js +1 -1
  226. package/dist/languages/pt-BR.js +1 -1
  227. package/dist/languages/pt-BR.min.js +1 -1
  228. package/dist/languages/ru-RU.js +1 -1
  229. package/dist/languages/ru-RU.min.js +1 -1
  230. package/dist/languages/sr-SP.js +1 -1
  231. package/dist/languages/sr-SP.min.js +1 -1
  232. package/dist/languages/zh-CN.js +1 -1
  233. package/dist/languages/zh-CN.min.js +1 -1
  234. package/dist/languages/zh-TW.js +1 -1
  235. package/dist/languages/zh-TW.min.js +1 -1
  236. package/dist/themes/classic.js +467 -0
  237. package/dist/themes/classic.min.js +31 -0
  238. package/dist/themes/horizon.js +467 -0
  239. package/dist/themes/horizon.min.js +31 -0
  240. package/dist/themes/main.js +467 -0
  241. package/dist/themes/main.min.js +31 -0
  242. package/dist/themes/static/variables/colors/ant.js +137 -0
  243. package/dist/themes/static/variables/colors/ant.min.js +31 -0
  244. package/dist/themes/static/variables/colors/classic.js +137 -0
  245. package/dist/themes/static/variables/colors/classic.min.js +31 -0
  246. package/dist/themes/static/variables/colors/horizon.js +137 -0
  247. package/dist/themes/static/variables/colors/horizon.min.js +31 -0
  248. package/dist/themes/static/variables/colors/main.js +137 -0
  249. package/dist/themes/static/variables/colors/main.min.js +31 -0
  250. package/dist/themes/static/variables/colors/material.js +137 -0
  251. package/dist/themes/static/variables/colors/material.min.js +31 -0
  252. package/dist/themes/static/variables/colors/shadcn.js +137 -0
  253. package/dist/themes/static/variables/colors/shadcn.min.js +31 -0
  254. package/dist/themes/static/variables/density.js +163 -0
  255. package/dist/themes/static/variables/density.min.js +31 -0
  256. package/dist/themes/static/variables/helpers/iconsMap.js +240 -0
  257. package/dist/themes/static/variables/helpers/iconsMap.min.js +31 -0
  258. package/dist/themes/static/variables/icons/horizon.js +135 -0
  259. package/dist/themes/static/variables/icons/horizon.min.js +31 -0
  260. package/dist/themes/static/variables/icons/main.js +135 -0
  261. package/dist/themes/static/variables/icons/main.min.js +31 -0
  262. package/dist/themes/static/variables/sizing.js +126 -0
  263. package/dist/themes/static/variables/sizing.min.js +31 -0
  264. package/dist/themes/static/variables/tokens/classic.js +375 -0
  265. package/dist/themes/static/variables/tokens/classic.min.js +31 -0
  266. package/dist/themes/static/variables/tokens/horizon.js +375 -0
  267. package/dist/themes/static/variables/tokens/horizon.min.js +31 -0
  268. package/dist/themes/static/variables/tokens/main.js +375 -0
  269. package/dist/themes/static/variables/tokens/main.min.js +31 -0
  270. package/editorManager.js +0 -1
  271. package/editorManager.mjs +0 -1
  272. package/editors/autocompleteEditor/autocompleteEditor.js +5 -23
  273. package/editors/autocompleteEditor/autocompleteEditor.mjs +6 -24
  274. package/editors/baseEditor/baseEditor.js +18 -13
  275. package/editors/baseEditor/baseEditor.mjs +18 -13
  276. package/editors/dateEditor/dateEditor.js +9 -3
  277. package/editors/dateEditor/dateEditor.mjs +9 -3
  278. package/editors/dropdownEditor/dropdownEditor.js +0 -2
  279. package/editors/dropdownEditor/dropdownEditor.mjs +0 -2
  280. package/editors/factory.d.ts +48 -0
  281. package/editors/factory.js +372 -0
  282. package/editors/factory.mjs +368 -0
  283. package/editors/handsontableEditor/handsontableEditor.js +0 -1
  284. package/editors/handsontableEditor/handsontableEditor.mjs +0 -1
  285. package/editors/index.d.ts +7 -0
  286. package/editors/index.js +14 -0
  287. package/editors/index.mjs +9 -2
  288. package/editors/intlDateEditor/index.d.ts +1 -0
  289. package/editors/intlDateEditor/index.js +6 -0
  290. package/editors/intlDateEditor/index.mjs +1 -0
  291. package/editors/intlDateEditor/intlDateEditor.d.ts +7 -0
  292. package/editors/intlDateEditor/intlDateEditor.js +76 -0
  293. package/editors/intlDateEditor/intlDateEditor.mjs +72 -0
  294. package/editors/intlTimeEditor/index.d.ts +1 -0
  295. package/editors/intlTimeEditor/index.js +6 -0
  296. package/editors/intlTimeEditor/index.mjs +1 -0
  297. package/editors/intlTimeEditor/intlTimeEditor.d.ts +7 -0
  298. package/editors/intlTimeEditor/intlTimeEditor.js +72 -0
  299. package/editors/intlTimeEditor/intlTimeEditor.mjs +68 -0
  300. package/editors/multiSelectEditor/controllers/dropdownController.js +566 -0
  301. package/editors/multiSelectEditor/controllers/dropdownController.mjs +561 -0
  302. package/editors/multiSelectEditor/controllers/inputController.js +101 -0
  303. package/editors/multiSelectEditor/controllers/inputController.mjs +96 -0
  304. package/editors/multiSelectEditor/controllers/selectedItemsController.js +124 -0
  305. package/editors/multiSelectEditor/controllers/selectedItemsController.mjs +120 -0
  306. package/editors/multiSelectEditor/controllers/utils.js +275 -0
  307. package/editors/multiSelectEditor/controllers/utils.mjs +258 -0
  308. package/editors/multiSelectEditor/index.js +6 -0
  309. package/editors/multiSelectEditor/index.mjs +1 -0
  310. package/editors/multiSelectEditor/multiSelectEditor.js +509 -0
  311. package/editors/multiSelectEditor/multiSelectEditor.mjs +504 -0
  312. package/editors/multiSelectEditor/utils/utils.js +57 -0
  313. package/editors/multiSelectEditor/utils/utils.mjs +50 -0
  314. package/editors/passwordEditor/passwordEditor.js +0 -1
  315. package/editors/passwordEditor/passwordEditor.mjs +0 -1
  316. package/editors/registry.js +4 -4
  317. package/editors/registry.mjs +4 -4
  318. package/editors/selectEditor/selectEditor.js +1 -1
  319. package/editors/selectEditor/selectEditor.mjs +1 -1
  320. package/editors/textEditor/textEditor.js +4 -2
  321. package/editors/textEditor/textEditor.mjs +4 -2
  322. package/eventManager.js +0 -2
  323. package/eventManager.mjs +0 -2
  324. package/focusManager/grid.js +0 -1
  325. package/focusManager/grid.mjs +0 -1
  326. package/focusManager/index.js +0 -2
  327. package/focusManager/scopeManager.js +5 -8
  328. package/focusManager/scopeManager.mjs +5 -8
  329. package/focusManager/utils/focusDetector.js +5 -11
  330. package/focusManager/utils/focusDetector.mjs +5 -11
  331. package/helpers/a11y.js +2 -0
  332. package/helpers/a11y.mjs +1 -0
  333. package/helpers/array.js +26 -15
  334. package/helpers/array.mjs +25 -15
  335. package/helpers/console.js +33 -0
  336. package/helpers/console.mjs +32 -0
  337. package/helpers/constants.js +4 -0
  338. package/helpers/constants.mjs +1 -0
  339. package/helpers/data.js +0 -4
  340. package/helpers/data.mjs +0 -4
  341. package/helpers/dateTime.d.ts +5 -0
  342. package/helpers/dateTime.js +110 -0
  343. package/helpers/dateTime.mjs +102 -0
  344. package/helpers/dom/element.d.ts +1 -1
  345. package/helpers/dom/element.js +23 -20
  346. package/helpers/dom/element.mjs +23 -20
  347. package/helpers/errors.d.ts +1 -0
  348. package/helpers/errors.js +21 -0
  349. package/helpers/errors.mjs +17 -0
  350. package/helpers/index.d.ts +2 -1
  351. package/helpers/mixed.js +10 -7
  352. package/helpers/mixed.mjs +10 -6
  353. package/helpers/moves.js +0 -4
  354. package/helpers/moves.mjs +0 -4
  355. package/helpers/number.js +0 -9
  356. package/helpers/number.mjs +0 -9
  357. package/helpers/object.js +47 -6
  358. package/helpers/object.mjs +45 -6
  359. package/helpers/string.js +15 -2
  360. package/helpers/string.mjs +14 -2
  361. package/helpers/templateLiteralTag.js +0 -3
  362. package/helpers/templateLiteralTag.mjs +0 -3
  363. package/helpers/unicode.js +0 -1
  364. package/helpers/unicode.mjs +0 -1
  365. package/helpers/wrappers/jquery.js +2 -2
  366. package/helpers/wrappers/jquery.mjs +2 -2
  367. package/i18n/index.js +0 -2
  368. package/i18n/phraseFormatters/substituteVariables.js +0 -2
  369. package/i18n/phraseFormatters/substituteVariables.mjs +0 -2
  370. package/i18n/registry.js +0 -2
  371. package/i18n/registry.mjs +0 -2
  372. package/index.d.ts +85 -9
  373. package/index.js +18 -3
  374. package/index.mjs +18 -3
  375. package/languages/all.js +1 -1
  376. package/languages/ar-AR.js +1 -1
  377. package/languages/cs-CZ.js +1 -1
  378. package/languages/de-CH.js +1 -1
  379. package/languages/de-DE.js +1 -1
  380. package/languages/en-US.js +1 -1
  381. package/languages/es-MX.js +1 -1
  382. package/languages/fa-IR.js +1 -1
  383. package/languages/fr-FR.js +1 -1
  384. package/languages/hr-HR.js +1 -1
  385. package/languages/index.js +1 -1
  386. package/languages/it-IT.js +1 -1
  387. package/languages/ja-JP.js +1 -1
  388. package/languages/ko-KR.js +1 -1
  389. package/languages/lv-LV.js +1 -1
  390. package/languages/nb-NO.js +1 -1
  391. package/languages/nl-NL.js +1 -1
  392. package/languages/pl-PL.js +1 -1
  393. package/languages/pt-BR.js +1 -1
  394. package/languages/ru-RU.js +1 -1
  395. package/languages/sr-SP.js +1 -1
  396. package/languages/zh-CN.js +1 -1
  397. package/languages/zh-TW.js +1 -1
  398. package/mixins/hooksRefRegisterer.js +0 -1
  399. package/mixins/hooksRefRegisterer.mjs +0 -1
  400. package/mixins/localHooks.js +0 -1
  401. package/mixins/localHooks.mjs +0 -1
  402. package/package.json +184 -78
  403. package/plugins/autoColumnSize/autoColumnSize.js +4 -7
  404. package/plugins/autoColumnSize/autoColumnSize.mjs +4 -7
  405. package/plugins/autoRowSize/autoRowSize.js +8 -9
  406. package/plugins/autoRowSize/autoRowSize.mjs +8 -9
  407. package/plugins/autofill/autofill.js +7 -8
  408. package/plugins/autofill/autofill.mjs +7 -8
  409. package/plugins/base/base.js +3 -7
  410. package/plugins/base/base.mjs +3 -7
  411. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +0 -1
  412. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +0 -1
  413. package/plugins/collapsibleColumns/collapsibleColumns.js +2 -3
  414. package/plugins/collapsibleColumns/collapsibleColumns.mjs +2 -3
  415. package/plugins/columnSorting/columnSorting.js +2 -64
  416. package/plugins/columnSorting/columnSorting.mjs +2 -64
  417. package/plugins/columnSorting/columnStatesManager.js +0 -3
  418. package/plugins/columnSorting/columnStatesManager.mjs +0 -3
  419. package/plugins/columnSorting/domHelpers.js +0 -1
  420. package/plugins/columnSorting/domHelpers.mjs +0 -1
  421. package/plugins/columnSorting/sortFunction/intlDate.js +17 -0
  422. package/plugins/columnSorting/sortFunction/intlDate.mjs +13 -0
  423. package/plugins/columnSorting/sortFunction/intlTime.js +17 -0
  424. package/plugins/columnSorting/sortFunction/intlTime.mjs +13 -0
  425. package/plugins/columnSorting/sortService/registry.js +5 -1
  426. package/plugins/columnSorting/sortService/registry.mjs +4 -0
  427. package/plugins/columnSorting/utils.js +107 -10
  428. package/plugins/columnSorting/utils.mjs +105 -10
  429. package/plugins/columnSummary/columnSummary.js +2 -2
  430. package/plugins/columnSummary/columnSummary.mjs +2 -2
  431. package/plugins/columnSummary/endpoints.js +0 -5
  432. package/plugins/columnSummary/endpoints.mjs +0 -5
  433. package/plugins/comments/commentEditor.js +0 -1
  434. package/plugins/comments/commentEditor.mjs +0 -1
  435. package/plugins/comments/comments.js +5 -6
  436. package/plugins/comments/comments.mjs +5 -6
  437. package/plugins/comments/displaySwitch.js +0 -1
  438. package/plugins/comments/displaySwitch.mjs +0 -1
  439. package/plugins/comments/editorResizeObserver.js +0 -3
  440. package/plugins/comments/editorResizeObserver.mjs +0 -3
  441. package/plugins/contextMenu/commandExecutor.js +2 -4
  442. package/plugins/contextMenu/commandExecutor.mjs +2 -4
  443. package/plugins/contextMenu/contextMenu.js +0 -1
  444. package/plugins/contextMenu/contextMenu.mjs +0 -1
  445. package/plugins/contextMenu/itemsFactory.js +0 -2
  446. package/plugins/contextMenu/itemsFactory.mjs +0 -2
  447. package/plugins/contextMenu/menu/cursor.js +0 -1
  448. package/plugins/contextMenu/menu/cursor.mjs +0 -1
  449. package/plugins/contextMenu/menu/index.js +0 -2
  450. package/plugins/contextMenu/menu/menu.js +3 -15
  451. package/plugins/contextMenu/menu/menu.mjs +3 -15
  452. package/plugins/contextMenu/menu/menuItemRenderer.js +4 -2
  453. package/plugins/contextMenu/menu/menuItemRenderer.mjs +4 -2
  454. package/plugins/contextMenu/menu/positioner.js +0 -1
  455. package/plugins/contextMenu/menu/positioner.mjs +0 -1
  456. package/plugins/contextMenu/menu/shortcuts.js +0 -3
  457. package/plugins/contextMenu/menu/shortcuts.mjs +0 -3
  458. package/plugins/contextMenu/menu/utils.js +0 -1
  459. package/plugins/contextMenu/menu/utils.mjs +0 -1
  460. package/plugins/copyPaste/copyPaste.js +53 -31
  461. package/plugins/copyPaste/copyPaste.mjs +54 -32
  462. package/plugins/copyPaste/copyableRanges.js +0 -2
  463. package/plugins/copyPaste/copyableRanges.mjs +0 -2
  464. package/plugins/customBorders/customBorders.js +3 -6
  465. package/plugins/customBorders/customBorders.mjs +3 -6
  466. package/plugins/customBorders/utils.js +0 -2
  467. package/plugins/customBorders/utils.mjs +0 -2
  468. package/plugins/dialog/dialog.js +3 -6
  469. package/plugins/dialog/dialog.mjs +3 -6
  470. package/plugins/dialog/templates/base.js +2 -2
  471. package/plugins/dialog/templates/base.mjs +2 -2
  472. package/plugins/dialog/templates/confirm.js +2 -5
  473. package/plugins/dialog/templates/confirm.mjs +2 -5
  474. package/plugins/dialog/ui.js +13 -8
  475. package/plugins/dialog/ui.mjs +13 -8
  476. package/plugins/dragToScroll/dragToScroll.js +0 -1
  477. package/plugins/dragToScroll/dragToScroll.mjs +0 -1
  478. package/plugins/dropdownMenu/dropdownMenu.js +0 -1
  479. package/plugins/dropdownMenu/dropdownMenu.mjs +0 -1
  480. package/plugins/emptyDataState/emptyDataState.js +0 -6
  481. package/plugins/emptyDataState/emptyDataState.mjs +0 -6
  482. package/plugins/emptyDataState/ui.js +0 -4
  483. package/plugins/emptyDataState/ui.mjs +0 -4
  484. package/plugins/exportFile/dataProvider.js +0 -2
  485. package/plugins/exportFile/dataProvider.mjs +0 -2
  486. package/plugins/exportFile/exportFile.js +3 -3
  487. package/plugins/exportFile/exportFile.mjs +3 -3
  488. package/plugins/exportFile/types/_base.js +0 -1
  489. package/plugins/exportFile/types/_base.mjs +0 -1
  490. package/plugins/exportFile/types/csv.js +0 -3
  491. package/plugins/exportFile/types/csv.mjs +0 -3
  492. package/plugins/filters/component/_base.js +3 -3
  493. package/plugins/filters/component/_base.mjs +3 -3
  494. package/plugins/filters/component/actionBar.js +0 -2
  495. package/plugins/filters/component/actionBar.mjs +0 -2
  496. package/plugins/filters/component/condition.js +2 -4
  497. package/plugins/filters/component/condition.mjs +2 -4
  498. package/plugins/filters/component/operators.js +2 -5
  499. package/plugins/filters/component/operators.mjs +2 -5
  500. package/plugins/filters/component/value.js +4 -12
  501. package/plugins/filters/component/value.mjs +4 -12
  502. package/plugins/filters/condition/intlDate/after.js +31 -0
  503. package/plugins/filters/condition/intlDate/after.mjs +26 -0
  504. package/plugins/filters/condition/intlDate/before.js +31 -0
  505. package/plugins/filters/condition/intlDate/before.mjs +26 -0
  506. package/plugins/filters/condition/intlDate/between.js +30 -0
  507. package/plugins/filters/condition/intlDate/between.mjs +25 -0
  508. package/plugins/filters/condition/intlDate/today.js +27 -0
  509. package/plugins/filters/condition/intlDate/today.mjs +22 -0
  510. package/plugins/filters/condition/intlDate/tomorrow.js +28 -0
  511. package/plugins/filters/condition/intlDate/tomorrow.mjs +23 -0
  512. package/plugins/filters/condition/intlDate/yesterday.js +28 -0
  513. package/plugins/filters/condition/intlDate/yesterday.mjs +23 -0
  514. package/plugins/filters/condition/intlTime/after.js +31 -0
  515. package/plugins/filters/condition/intlTime/after.mjs +26 -0
  516. package/plugins/filters/condition/intlTime/before.js +31 -0
  517. package/plugins/filters/condition/intlTime/before.mjs +26 -0
  518. package/plugins/filters/condition/intlTime/between.js +30 -0
  519. package/plugins/filters/condition/intlTime/between.mjs +25 -0
  520. package/plugins/filters/conditionCollection.js +3 -9
  521. package/plugins/filters/conditionCollection.mjs +3 -9
  522. package/plugins/filters/conditionRegisterer.js +3 -3
  523. package/plugins/filters/conditionRegisterer.mjs +3 -3
  524. package/plugins/filters/conditionUpdateObserver.js +3 -7
  525. package/plugins/filters/conditionUpdateObserver.mjs +3 -7
  526. package/plugins/filters/constants.js +14 -2
  527. package/plugins/filters/constants.mjs +14 -2
  528. package/plugins/filters/dataFilter.js +1 -3
  529. package/plugins/filters/dataFilter.mjs +1 -3
  530. package/plugins/filters/filters.js +36 -44
  531. package/plugins/filters/filters.mjs +36 -44
  532. package/plugins/filters/logicalOperationRegisterer.js +2 -2
  533. package/plugins/filters/logicalOperationRegisterer.mjs +2 -2
  534. package/plugins/filters/logicalOperations/conjunction.js +0 -2
  535. package/plugins/filters/logicalOperations/conjunction.mjs +0 -2
  536. package/plugins/filters/logicalOperations/disjunction.js +0 -2
  537. package/plugins/filters/logicalOperations/disjunction.mjs +0 -2
  538. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -4
  539. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -4
  540. package/plugins/filters/menu/focusController.js +0 -2
  541. package/plugins/filters/menu/focusController.mjs +0 -2
  542. package/plugins/filters/ui/_base.js +0 -1
  543. package/plugins/filters/ui/_base.mjs +0 -1
  544. package/plugins/filters/ui/input.js +1 -1
  545. package/plugins/filters/ui/input.mjs +1 -1
  546. package/plugins/filters/ui/link.js +0 -1
  547. package/plugins/filters/ui/link.mjs +0 -1
  548. package/plugins/filters/ui/multipleSelect.js +0 -6
  549. package/plugins/filters/ui/multipleSelect.mjs +0 -6
  550. package/plugins/filters/ui/radioInput.js +0 -1
  551. package/plugins/filters/ui/radioInput.mjs +0 -1
  552. package/plugins/filters/ui/select.js +0 -1
  553. package/plugins/filters/ui/select.mjs +0 -1
  554. package/plugins/filters/utils.js +0 -11
  555. package/plugins/filters/utils.mjs +0 -11
  556. package/plugins/formulas/engine/register.js +0 -4
  557. package/plugins/formulas/engine/register.mjs +0 -4
  558. package/plugins/formulas/engine/settings.js +0 -3
  559. package/plugins/formulas/engine/settings.mjs +0 -3
  560. package/plugins/formulas/formulas.js +0 -14
  561. package/plugins/formulas/formulas.mjs +0 -14
  562. package/plugins/formulas/indexSyncer/axisSyncer.js +0 -5
  563. package/plugins/formulas/indexSyncer/axisSyncer.mjs +0 -5
  564. package/plugins/formulas/indexSyncer/index.js +0 -1
  565. package/plugins/formulas/indexSyncer/index.mjs +0 -1
  566. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +0 -1
  567. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +0 -1
  568. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +0 -3
  569. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +0 -3
  570. package/plugins/hiddenColumns/hiddenColumns.js +1 -13
  571. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -13
  572. package/plugins/hiddenRows/contextMenuItem/hideRow.js +0 -1
  573. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +0 -1
  574. package/plugins/hiddenRows/contextMenuItem/showRow.js +0 -3
  575. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +0 -3
  576. package/plugins/hiddenRows/hiddenRows.js +1 -13
  577. package/plugins/hiddenRows/hiddenRows.mjs +1 -13
  578. package/plugins/index.d.ts +0 -3
  579. package/plugins/index.js +0 -3
  580. package/plugins/index.mjs +1 -3
  581. package/plugins/loading/loading.js +0 -1
  582. package/plugins/loading/loading.mjs +0 -1
  583. package/plugins/manualColumnFreeze/manualColumnFreeze.js +0 -4
  584. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +0 -4
  585. package/plugins/manualColumnMove/manualColumnMove.js +2 -36
  586. package/plugins/manualColumnMove/manualColumnMove.mjs +2 -36
  587. package/plugins/manualColumnMove/ui/_base.js +0 -1
  588. package/plugins/manualColumnMove/ui/_base.mjs +0 -1
  589. package/plugins/manualColumnResize/manualColumnResize.js +4 -39
  590. package/plugins/manualColumnResize/manualColumnResize.mjs +4 -39
  591. package/plugins/manualRowMove/manualRowMove.js +2 -37
  592. package/plugins/manualRowMove/manualRowMove.mjs +2 -37
  593. package/plugins/manualRowMove/ui/_base.js +0 -1
  594. package/plugins/manualRowMove/ui/_base.mjs +0 -1
  595. package/plugins/manualRowResize/manualRowResize.js +3 -38
  596. package/plugins/manualRowResize/manualRowResize.mjs +3 -38
  597. package/plugins/mergeCells/calculations/autofill.js +0 -3
  598. package/plugins/mergeCells/calculations/autofill.mjs +0 -3
  599. package/plugins/mergeCells/calculations/selection.js +0 -2
  600. package/plugins/mergeCells/calculations/selection.mjs +0 -2
  601. package/plugins/mergeCells/cellCoords.js +0 -1
  602. package/plugins/mergeCells/cellCoords.mjs +0 -1
  603. package/plugins/mergeCells/cellsCollection.js +0 -14
  604. package/plugins/mergeCells/cellsCollection.mjs +0 -14
  605. package/plugins/mergeCells/focusOrder.js +0 -4
  606. package/plugins/mergeCells/focusOrder.mjs +0 -4
  607. package/plugins/mergeCells/mergeCells.js +0 -14
  608. package/plugins/mergeCells/mergeCells.mjs +0 -14
  609. package/plugins/multiColumnSorting/domHelpers.js +0 -3
  610. package/plugins/multiColumnSorting/domHelpers.mjs +0 -3
  611. package/plugins/multiColumnSorting/multiColumnSorting.js +0 -1
  612. package/plugins/multiColumnSorting/multiColumnSorting.mjs +0 -1
  613. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +0 -2
  614. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +0 -2
  615. package/plugins/nestedHeaders/nestedHeaders.js +0 -4
  616. package/plugins/nestedHeaders/nestedHeaders.mjs +0 -4
  617. package/plugins/nestedHeaders/stateManager/headersTree.js +0 -1
  618. package/plugins/nestedHeaders/stateManager/headersTree.mjs +0 -1
  619. package/plugins/nestedHeaders/stateManager/index.js +0 -4
  620. package/plugins/nestedHeaders/stateManager/index.mjs +0 -4
  621. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +0 -1
  622. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +0 -1
  623. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +0 -7
  624. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +0 -7
  625. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.js +0 -7
  626. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +0 -7
  627. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.js +3 -4
  628. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs +3 -4
  629. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.js +2 -2
  630. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs +2 -2
  631. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.js +3 -3
  632. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs +3 -3
  633. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +0 -1
  634. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +0 -1
  635. package/plugins/nestedHeaders/stateManager/sourceSettings.js +3 -4
  636. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +3 -4
  637. package/plugins/nestedHeaders/utils/ghostTable.js +1 -2
  638. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -2
  639. package/plugins/nestedRows/data/dataManager.js +0 -2
  640. package/plugins/nestedRows/data/dataManager.mjs +0 -2
  641. package/plugins/nestedRows/nestedRows.js +0 -12
  642. package/plugins/nestedRows/nestedRows.mjs +0 -12
  643. package/plugins/nestedRows/ui/_base.js +0 -1
  644. package/plugins/nestedRows/ui/_base.mjs +0 -1
  645. package/plugins/nestedRows/ui/collapsing.js +0 -1
  646. package/plugins/nestedRows/ui/collapsing.mjs +0 -1
  647. package/plugins/nestedRows/ui/contextMenu.js +0 -1
  648. package/plugins/nestedRows/ui/contextMenu.mjs +0 -1
  649. package/plugins/nestedRows/ui/headers.js +2 -4
  650. package/plugins/nestedRows/ui/headers.mjs +2 -4
  651. package/plugins/nestedRows/utils/rowMoveController.js +0 -6
  652. package/plugins/nestedRows/utils/rowMoveController.mjs +0 -6
  653. package/plugins/pagination/pagination.js +1 -7
  654. package/plugins/pagination/pagination.mjs +1 -7
  655. package/plugins/pagination/strategies/autoPageSize.js +0 -2
  656. package/plugins/pagination/strategies/autoPageSize.mjs +0 -2
  657. package/plugins/pagination/strategies/fixedPageSize.js +0 -1
  658. package/plugins/pagination/strategies/fixedPageSize.mjs +0 -1
  659. package/plugins/pagination/strategies/index.js +2 -2
  660. package/plugins/pagination/strategies/index.mjs +2 -2
  661. package/plugins/pagination/ui.js +0 -3
  662. package/plugins/pagination/ui.mjs +0 -3
  663. package/plugins/registry.js +2 -2
  664. package/plugins/registry.mjs +2 -2
  665. package/plugins/search/search.js +0 -2
  666. package/plugins/search/search.mjs +0 -2
  667. package/plugins/stretchColumns/calculator.js +1 -6
  668. package/plugins/stretchColumns/calculator.mjs +1 -6
  669. package/plugins/stretchColumns/strategies/_base.js +0 -1
  670. package/plugins/stretchColumns/strategies/_base.mjs +0 -1
  671. package/plugins/stretchColumns/strategies/all.js +0 -4
  672. package/plugins/stretchColumns/strategies/all.mjs +0 -4
  673. package/plugins/stretchColumns/strategies/last.js +0 -3
  674. package/plugins/stretchColumns/strategies/last.mjs +0 -3
  675. package/plugins/stretchColumns/stretchColumns.js +0 -3
  676. package/plugins/stretchColumns/stretchColumns.mjs +0 -3
  677. package/plugins/touchScroll/touchScroll.js +0 -2
  678. package/plugins/touchScroll/touchScroll.mjs +0 -2
  679. package/plugins/trimRows/trimRows.js +1 -12
  680. package/plugins/trimRows/trimRows.mjs +1 -12
  681. package/plugins/undoRedo/actions/_base.js +3 -3
  682. package/plugins/undoRedo/actions/_base.mjs +3 -3
  683. package/plugins/undoRedo/actions/cellAlignment.js +0 -1
  684. package/plugins/undoRedo/actions/cellAlignment.mjs +0 -1
  685. package/plugins/undoRedo/actions/columnMove.js +0 -3
  686. package/plugins/undoRedo/actions/columnMove.mjs +0 -3
  687. package/plugins/undoRedo/actions/columnSort.js +0 -1
  688. package/plugins/undoRedo/actions/columnSort.mjs +0 -1
  689. package/plugins/undoRedo/actions/createColumn.js +0 -1
  690. package/plugins/undoRedo/actions/createColumn.mjs +0 -1
  691. package/plugins/undoRedo/actions/createRow.js +0 -1
  692. package/plugins/undoRedo/actions/createRow.mjs +0 -1
  693. package/plugins/undoRedo/actions/dataChange.js +0 -6
  694. package/plugins/undoRedo/actions/dataChange.mjs +0 -6
  695. package/plugins/undoRedo/actions/filters.js +0 -3
  696. package/plugins/undoRedo/actions/filters.mjs +0 -3
  697. package/plugins/undoRedo/actions/mergeCells.js +0 -1
  698. package/plugins/undoRedo/actions/mergeCells.mjs +0 -1
  699. package/plugins/undoRedo/actions/removeColumn.js +0 -4
  700. package/plugins/undoRedo/actions/removeColumn.mjs +0 -4
  701. package/plugins/undoRedo/actions/removeRow.js +0 -4
  702. package/plugins/undoRedo/actions/removeRow.mjs +0 -4
  703. package/plugins/undoRedo/actions/rowMove.js +0 -3
  704. package/plugins/undoRedo/actions/rowMove.mjs +0 -3
  705. package/plugins/undoRedo/actions/unmergeCells.js +0 -1
  706. package/plugins/undoRedo/actions/unmergeCells.mjs +0 -1
  707. package/plugins/undoRedo/undoRedo.js +0 -87
  708. package/plugins/undoRedo/undoRedo.mjs +0 -87
  709. package/plugins/undoRedo/utils.js +1 -13
  710. package/plugins/undoRedo/utils.mjs +1 -13
  711. package/renderers/baseRenderer/baseRenderer.js +3 -1
  712. package/renderers/baseRenderer/baseRenderer.mjs +3 -1
  713. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -7
  714. package/renderers/checkboxRenderer/checkboxRenderer.mjs +2 -7
  715. package/renderers/dateRenderer/dateRenderer.js +6 -0
  716. package/renderers/dateRenderer/dateRenderer.mjs +6 -0
  717. package/renderers/factory.d.ts +20 -0
  718. package/renderers/factory.js +51 -0
  719. package/renderers/factory.mjs +47 -0
  720. package/renderers/htmlRenderer/htmlRenderer.js +1 -4
  721. package/renderers/htmlRenderer/htmlRenderer.mjs +1 -4
  722. package/renderers/index.d.ts +7 -0
  723. package/renderers/index.js +10 -0
  724. package/renderers/index.mjs +7 -2
  725. package/renderers/intlDateRenderer/index.d.ts +1 -0
  726. package/renderers/intlDateRenderer/index.js +7 -0
  727. package/renderers/intlDateRenderer/index.mjs +1 -0
  728. package/renderers/intlDateRenderer/intlDateRenderer.d.ts +6 -0
  729. package/renderers/intlDateRenderer/intlDateRenderer.js +58 -0
  730. package/renderers/intlDateRenderer/intlDateRenderer.mjs +53 -0
  731. package/renderers/intlTimeRenderer/index.d.ts +1 -0
  732. package/renderers/intlTimeRenderer/index.js +7 -0
  733. package/renderers/intlTimeRenderer/index.mjs +1 -0
  734. package/renderers/intlTimeRenderer/intlTimeRenderer.d.ts +6 -0
  735. package/renderers/intlTimeRenderer/intlTimeRenderer.js +57 -0
  736. package/renderers/intlTimeRenderer/intlTimeRenderer.mjs +52 -0
  737. package/renderers/multiSelectRenderer/index.js +7 -0
  738. package/renderers/multiSelectRenderer/index.mjs +1 -0
  739. package/renderers/multiSelectRenderer/multiSelectRenderer.js +60 -0
  740. package/renderers/multiSelectRenderer/multiSelectRenderer.mjs +56 -0
  741. package/renderers/multiSelectRenderer/utils/utils.js +270 -0
  742. package/renderers/multiSelectRenderer/utils/utils.mjs +258 -0
  743. package/renderers/numericRenderer/index.d.ts +1 -1
  744. package/renderers/numericRenderer/index.js +1 -1
  745. package/renderers/numericRenderer/index.mjs +1 -1
  746. package/renderers/numericRenderer/numericRenderer.d.ts +1 -0
  747. package/renderers/numericRenderer/numericRenderer.js +19 -22
  748. package/renderers/numericRenderer/numericRenderer.mjs +18 -20
  749. package/renderers/numericRenderer/utils.js +64 -0
  750. package/renderers/numericRenderer/utils.mjs +57 -0
  751. package/renderers/passwordRenderer/passwordRenderer.js +22 -12
  752. package/renderers/passwordRenderer/passwordRenderer.mjs +21 -12
  753. package/renderers/registry.d.ts +1 -1
  754. package/renderers/registry.js +51 -3
  755. package/renderers/registry.mjs +51 -3
  756. package/renderers/textRenderer/textRenderer.js +0 -2
  757. package/renderers/textRenderer/textRenderer.mjs +0 -2
  758. package/renderers/timeRenderer/timeRenderer.js +6 -0
  759. package/renderers/timeRenderer/timeRenderer.mjs +6 -0
  760. package/selection/highlight/highlight.js +0 -2
  761. package/selection/highlight/highlight.mjs +0 -2
  762. package/selection/highlight/visualSelection.js +0 -1
  763. package/selection/highlight/visualSelection.mjs +0 -1
  764. package/selection/index.js +0 -2
  765. package/selection/mouseEventHandler.js +0 -2
  766. package/selection/mouseEventHandler.mjs +0 -2
  767. package/selection/range.js +0 -7
  768. package/selection/range.mjs +0 -7
  769. package/selection/selection.js +6 -15
  770. package/selection/selection.mjs +6 -15
  771. package/selection/transformation/_base.js +6 -6
  772. package/selection/transformation/_base.mjs +6 -6
  773. package/selection/transformation/focus.js +2 -2
  774. package/selection/transformation/focus.mjs +2 -2
  775. package/selection/utils.js +3 -13
  776. package/selection/utils.mjs +3 -13
  777. package/settings.d.ts +9 -3
  778. package/shortcutContexts/commands/editor/open.js +0 -2
  779. package/shortcutContexts/commands/editor/open.mjs +0 -2
  780. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -2
  781. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -2
  782. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -2
  783. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -2
  784. package/shortcutContexts/grid.js +11 -12
  785. package/shortcutContexts/grid.mjs +11 -12
  786. package/shortcutContexts/index.js +0 -2
  787. package/shortcuts/context.js +4 -8
  788. package/shortcuts/context.mjs +4 -8
  789. package/shortcuts/keyObserver.js +0 -7
  790. package/shortcuts/keyObserver.mjs +0 -7
  791. package/shortcuts/manager.js +2 -2
  792. package/shortcuts/manager.mjs +2 -2
  793. package/shortcuts/recorder.js +0 -1
  794. package/shortcuts/recorder.mjs +0 -1
  795. package/shortcuts/utils.js +0 -2
  796. package/shortcuts/utils.mjs +0 -2
  797. package/styles/handsontable.css +302 -83
  798. package/styles/handsontable.min.css +3 -3
  799. package/styles/handsontableStyles.js +6 -0
  800. package/styles/handsontableStyles.mjs +4 -0
  801. package/styles/ht-icons-horizon.css +55 -61
  802. package/styles/ht-icons-horizon.min.css +3 -3
  803. package/styles/ht-icons-main.css +55 -61
  804. package/styles/ht-icons-main.min.css +3 -3
  805. package/styles/ht-theme-classic-no-icons.css +302 -374
  806. package/styles/ht-theme-classic-no-icons.min.css +3 -3
  807. package/styles/ht-theme-classic.css +383 -408
  808. package/styles/ht-theme-classic.min.css +3 -3
  809. package/styles/ht-theme-horizon-no-icons.css +300 -378
  810. package/styles/ht-theme-horizon-no-icons.min.css +3 -3
  811. package/styles/ht-theme-horizon.css +381 -412
  812. package/styles/ht-theme-horizon.min.css +3 -3
  813. package/styles/ht-theme-main-no-icons.css +302 -371
  814. package/styles/ht-theme-main-no-icons.min.css +3 -3
  815. package/styles/ht-theme-main.css +383 -405
  816. package/styles/ht-theme-main.min.css +3 -3
  817. package/tableView.js +16 -4
  818. package/tableView.mjs +16 -4
  819. package/themes/engine/builder.js +251 -0
  820. package/themes/engine/builder.mjs +246 -0
  821. package/themes/engine/index.js +7 -0
  822. package/themes/engine/index.mjs +2 -0
  823. package/themes/engine/manager.js +188 -0
  824. package/themes/engine/manager.mjs +183 -0
  825. package/themes/engine/utils/cssVariables.js +132 -0
  826. package/themes/engine/utils/cssVariables.mjs +128 -0
  827. package/themes/engine/utils/validation.js +348 -0
  828. package/themes/engine/utils/validation.mjs +342 -0
  829. package/themes/index.js +15 -0
  830. package/themes/index.mjs +2 -0
  831. package/themes/registry.js +131 -0
  832. package/themes/registry.mjs +122 -0
  833. package/themes/static/variables/colors/ant.d.ts +4 -0
  834. package/themes/static/variables/colors/ant.js +32 -0
  835. package/themes/static/variables/colors/ant.mjs +30 -0
  836. package/themes/static/variables/colors/classic.d.ts +4 -0
  837. package/themes/static/variables/colors/classic.js +32 -0
  838. package/themes/static/variables/colors/classic.mjs +30 -0
  839. package/themes/static/variables/colors/horizon.d.ts +4 -0
  840. package/themes/static/variables/colors/horizon.js +32 -0
  841. package/themes/static/variables/colors/horizon.mjs +30 -0
  842. package/themes/static/variables/colors/main.d.ts +4 -0
  843. package/themes/static/variables/colors/main.js +32 -0
  844. package/themes/static/variables/colors/main.mjs +30 -0
  845. package/themes/static/variables/colors/material.d.ts +4 -0
  846. package/themes/static/variables/colors/material.js +32 -0
  847. package/themes/static/variables/colors/material.mjs +30 -0
  848. package/themes/static/variables/colors/shadcn.d.ts +4 -0
  849. package/themes/static/variables/colors/shadcn.js +32 -0
  850. package/themes/static/variables/colors/shadcn.mjs +30 -0
  851. package/themes/static/variables/density.d.ts +4 -0
  852. package/themes/static/variables/density.js +59 -0
  853. package/themes/static/variables/density.mjs +57 -0
  854. package/themes/static/variables/helpers/iconsMap.d.ts +3 -0
  855. package/themes/static/variables/helpers/iconsMap.js +139 -0
  856. package/themes/static/variables/helpers/iconsMap.mjs +135 -0
  857. package/themes/static/variables/icons/horizon.d.ts +4 -0
  858. package/themes/static/variables/icons/horizon.js +29 -0
  859. package/themes/static/variables/icons/horizon.mjs +28 -0
  860. package/themes/static/variables/icons/main.d.ts +4 -0
  861. package/themes/static/variables/icons/main.js +29 -0
  862. package/themes/static/variables/icons/main.mjs +28 -0
  863. package/themes/static/variables/sizing.d.ts +4 -0
  864. package/themes/static/variables/sizing.js +22 -0
  865. package/themes/static/variables/sizing.mjs +20 -0
  866. package/themes/static/variables/tokens/classic.d.ts +4 -0
  867. package/themes/static/variables/tokens/classic.js +270 -0
  868. package/themes/static/variables/tokens/classic.mjs +268 -0
  869. package/themes/static/variables/tokens/horizon.d.ts +4 -0
  870. package/themes/static/variables/tokens/horizon.js +270 -0
  871. package/themes/static/variables/tokens/horizon.mjs +268 -0
  872. package/themes/static/variables/tokens/main.d.ts +4 -0
  873. package/themes/static/variables/tokens/main.js +270 -0
  874. package/themes/static/variables/tokens/main.mjs +268 -0
  875. package/themes/theme/classic.d.ts +3 -0
  876. package/themes/theme/classic.js +14 -0
  877. package/themes/theme/classic.mjs +11 -0
  878. package/themes/theme/horizon.d.ts +3 -0
  879. package/themes/theme/horizon.js +14 -0
  880. package/themes/theme/horizon.mjs +11 -0
  881. package/themes/theme/index.d.ts +5 -0
  882. package/themes/theme/index.js +9 -0
  883. package/themes/theme/index.mjs +3 -0
  884. package/themes/theme/main.d.ts +3 -0
  885. package/themes/theme/main.js +14 -0
  886. package/themes/theme/main.mjs +11 -0
  887. package/themes.d.ts +491 -0
  888. package/translations/changesObservable/observable.js +0 -10
  889. package/translations/changesObservable/observable.mjs +0 -10
  890. package/translations/changesObservable/observer.js +0 -1
  891. package/translations/changesObservable/observer.mjs +0 -1
  892. package/translations/changesObservable/utils.js +0 -1
  893. package/translations/changesObservable/utils.mjs +0 -1
  894. package/translations/index.js +0 -2
  895. package/translations/indexMapper.js +3 -14
  896. package/translations/indexMapper.mjs +3 -14
  897. package/translations/mapCollections/aggregatedCollection.js +0 -2
  898. package/translations/mapCollections/aggregatedCollection.mjs +0 -2
  899. package/translations/mapCollections/index.js +0 -2
  900. package/translations/mapCollections/mapCollection.js +0 -3
  901. package/translations/mapCollections/mapCollection.mjs +0 -3
  902. package/translations/maps/hidingMap.js +0 -1
  903. package/translations/maps/hidingMap.mjs +0 -1
  904. package/translations/maps/index.js +2 -4
  905. package/translations/maps/index.mjs +2 -2
  906. package/translations/maps/indexMap.js +0 -2
  907. package/translations/maps/indexMap.mjs +0 -2
  908. package/translations/maps/linkedPhysicalIndexToValueMap.js +0 -3
  909. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +0 -3
  910. package/translations/maps/trimmingMap.js +0 -1
  911. package/translations/maps/trimmingMap.mjs +0 -1
  912. package/translations/maps/utils/actionsOnIndexes.js +0 -2
  913. package/translations/maps/utils/actionsOnIndexes.mjs +0 -2
  914. package/translations/maps/utils/index.js +2 -2
  915. package/translations/maps/utils/index.mjs +2 -2
  916. package/translations/maps/utils/physicallyIndexed.js +0 -2
  917. package/translations/maps/utils/physicallyIndexed.mjs +0 -2
  918. package/utils/dataStructures/linkedList.js +0 -1
  919. package/utils/dataStructures/linkedList.mjs +0 -1
  920. package/utils/dataStructures/priorityMap.js +3 -5
  921. package/utils/dataStructures/priorityMap.mjs +3 -5
  922. package/utils/dataStructures/queue.js +0 -1
  923. package/utils/dataStructures/queue.mjs +0 -1
  924. package/utils/dataStructures/stack.js +0 -1
  925. package/utils/dataStructures/stack.mjs +0 -1
  926. package/utils/dataStructures/tree.js +2 -3
  927. package/utils/dataStructures/tree.mjs +2 -3
  928. package/utils/dataStructures/uniqueMap.js +2 -4
  929. package/utils/dataStructures/uniqueMap.mjs +2 -4
  930. package/utils/dataStructures/uniqueSet.js +2 -9
  931. package/utils/dataStructures/uniqueSet.mjs +2 -9
  932. package/utils/ghostTable.js +3 -6
  933. package/utils/ghostTable.mjs +3 -6
  934. package/utils/interval.js +0 -1
  935. package/utils/interval.mjs +0 -1
  936. package/utils/paginator.js +0 -7
  937. package/utils/paginator.mjs +0 -7
  938. package/utils/parseTable.js +0 -6
  939. package/utils/parseTable.mjs +0 -6
  940. package/utils/samplesGenerator.js +2 -3
  941. package/utils/samplesGenerator.mjs +2 -3
  942. package/utils/stylesHandler.js +49 -60
  943. package/utils/stylesHandler.mjs +48 -60
  944. package/validators/autocompleteValidator/autocompleteValidator.js +9 -1
  945. package/validators/autocompleteValidator/autocompleteValidator.mjs +10 -2
  946. package/validators/dateValidator/dateValidator.js +2 -2
  947. package/validators/dateValidator/dateValidator.mjs +1 -1
  948. package/validators/index.d.ts +6 -0
  949. package/validators/index.js +12 -0
  950. package/validators/index.mjs +7 -1
  951. package/validators/intlDateValidator/index.d.ts +1 -0
  952. package/validators/intlDateValidator/index.js +8 -0
  953. package/validators/intlDateValidator/index.mjs +1 -0
  954. package/validators/intlDateValidator/intlDateValidator.d.ts +6 -0
  955. package/validators/intlDateValidator/intlDateValidator.js +39 -0
  956. package/validators/intlDateValidator/intlDateValidator.mjs +34 -0
  957. package/validators/intlTimeValidator/index.d.ts +1 -0
  958. package/validators/intlTimeValidator/index.js +8 -0
  959. package/validators/intlTimeValidator/index.mjs +1 -0
  960. package/validators/intlTimeValidator/intlTimeValidator.d.ts +6 -0
  961. package/validators/intlTimeValidator/intlTimeValidator.js +39 -0
  962. package/validators/intlTimeValidator/intlTimeValidator.mjs +34 -0
  963. package/validators/multiSelectValidator/index.js +6 -0
  964. package/validators/multiSelectValidator/index.mjs +1 -0
  965. package/validators/multiSelectValidator/multiSelectValidator.js +84 -0
  966. package/validators/multiSelectValidator/multiSelectValidator.mjs +80 -0
  967. package/validators/registry.js +2 -2
  968. package/validators/registry.mjs +2 -2
  969. package/dist/README.md +0 -54
  970. package/dist/handsontable.css +0 -2551
  971. package/dist/handsontable.full.css +0 -2781
  972. package/dist/handsontable.full.min.css +0 -51
  973. package/dist/handsontable.min.css +0 -46
  974. package/helpers/date.d.ts +0 -1
  975. package/helpers/date.js +0 -22
  976. package/helpers/date.mjs +0 -18
  977. package/plugins/persistentState/index.d.ts +0 -1
  978. package/plugins/persistentState/index.js +0 -7
  979. package/plugins/persistentState/index.mjs +0 -1
  980. package/plugins/persistentState/persistentState.d.ts +0 -16
  981. package/plugins/persistentState/persistentState.js +0 -159
  982. package/plugins/persistentState/persistentState.mjs +0 -154
  983. package/plugins/persistentState/storage.js +0 -120
  984. package/plugins/persistentState/storage.mjs +0 -117
package/core.js CHANGED
@@ -2,21 +2,6 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = Core;
5
- require("core-js/modules/es.error.cause.js");
6
- require("core-js/modules/es.array.push.js");
7
- require("core-js/modules/es.object.from-entries.js");
8
- require("core-js/modules/es.set.difference.v2.js");
9
- require("core-js/modules/es.set.intersection.v2.js");
10
- require("core-js/modules/es.set.is-disjoint-from.v2.js");
11
- require("core-js/modules/es.set.is-subset-of.v2.js");
12
- require("core-js/modules/es.set.is-superset-of.v2.js");
13
- require("core-js/modules/es.set.symmetric-difference.v2.js");
14
- require("core-js/modules/es.set.union.v2.js");
15
- require("core-js/modules/esnext.iterator.constructor.js");
16
- require("core-js/modules/esnext.iterator.filter.js");
17
- require("core-js/modules/esnext.iterator.for-each.js");
18
- require("core-js/modules/esnext.iterator.map.js");
19
- require("core-js/modules/web.immediate.js");
20
5
  var _element = require("./helpers/dom/element");
21
6
  var _function = require("./helpers/function");
22
7
  var _mixed = require("./helpers/mixed");
@@ -34,7 +19,6 @@ var _registry4 = require("./validators/registry");
34
19
  var _string = require("./helpers/string");
35
20
  var _number = require("./helpers/number");
36
21
  var _tableView = _interopRequireDefault(require("./tableView"));
37
- var _dataSource = _interopRequireDefault(require("./dataMap/dataSource"));
38
22
  var _data = require("./helpers/data");
39
23
  var _translations = require("./translations");
40
24
  var _rootInstance = require("./utils/rootInstance");
@@ -51,18 +35,14 @@ var _shortcutContexts = require("./shortcutContexts");
51
35
  var _themes = require("./helpers/themes");
52
36
  var _stylesHandler = require("./utils/stylesHandler");
53
37
  var _console = require("./helpers/console");
38
+ var _errors = require("./helpers/errors");
54
39
  var _a11yAnnouncer = require("./utils/a11yAnnouncer");
55
40
  var _valueAccessors = require("./utils/valueAccessors");
41
+ var _engine = require("./themes/engine");
42
+ var _themes2 = require("./themes");
56
43
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
57
44
  let activeGuid = null;
58
45
 
59
- /**
60
- * A set of deprecated warn instances.
61
- *
62
- * @type {Set<string>}
63
- */
64
- const deprecatedWarnInstances = new WeakSet();
65
-
66
46
  /**
67
47
  * Keeps the collection of the all Handsontable instances created on the same page. The
68
48
  * list is then used to trigger the "afterUnlisten" hook when the "listen()" method was
@@ -145,7 +125,7 @@ const deprecationWarns = new Set();
145
125
  * standalone: true,
146
126
  * imports: [HotTableModule],
147
127
  * template: ` <div>
148
- * <hot-table themeName="ht-theme-main" [settings]="gridSettings" />
128
+ * <hot-table [settings]="gridSettings" />
149
129
  * </div>`,
150
130
  * })
151
131
  * export class ExampleComponent implements AfterViewInit {
@@ -343,21 +323,29 @@ function Core(rootContainer, userSettings) {
343
323
  hot: instance,
344
324
  rootElement: instance.rootElement,
345
325
  rootDocument: instance.rootDocument,
346
- onThemeChange: validThemeName => {
326
+ onThemeChange: themeName => {
347
327
  if ((0, _rootInstance.isRootInstance)(this)) {
348
328
  (0, _element.removeClass)(this.rootWrapperElement, /ht-theme-.*/g);
349
329
  (0, _element.removeClass)(this.rootPortalElement, /ht-theme-.*/g);
350
- if (validThemeName) {
351
- (0, _element.addClass)(this.rootWrapperElement, validThemeName);
352
- (0, _element.addClass)(this.rootPortalElement, validThemeName);
330
+ if (themeName) {
331
+ (0, _element.addClass)(this.rootWrapperElement, themeName);
332
+ (0, _element.addClass)(this.rootPortalElement, themeName);
353
333
  if (!getComputedStyle(this.rootWrapperElement).getPropertyValue('--ht-line-height')) {
354
- (0, _console.warn)(`The "${validThemeName}" theme is enabled, but its stylesheets are missing or not imported correctly. \
355
- Import the correct CSS files in order to use that theme.`);
334
+ (0, _console.warn)(`The "${themeName}" theme is enabled, but its stylesheets are missing` + ' or not imported correctly. Import the correct CSS files in order to use that theme.');
356
335
  }
357
336
  }
358
337
  }
359
- }
338
+ },
339
+ injectCoreCss: typeof (userSettings === null || userSettings === void 0 ? void 0 : userSettings.injectCoreCss) === 'boolean' ? userSettings.injectCoreCss : true
360
340
  });
341
+
342
+ /**
343
+ * ThemeManager instance.
344
+ *
345
+ * @private
346
+ * @type {ThemeManager|null}
347
+ */
348
+ this.themeManager = null;
361
349
  mergedUserSettings.language = (0, _registry5.getValidLanguageCode)(mergedUserSettings.language);
362
350
  const settingsWithoutHooks = Object.fromEntries(Object.entries(mergedUserSettings).filter(_ref => {
363
351
  let [key] = _ref;
@@ -399,7 +387,7 @@ function Core(rootContainer, userSettings) {
399
387
  eventManager.addEventListener(this.rootDocument.documentElement, 'compositionstart', event => {
400
388
  instance.runHooks('beforeCompositionStart', event);
401
389
  });
402
- dataSource = new _dataSource.default(instance);
390
+ dataSource = new _dataMap.DataSource(instance);
403
391
  const moduleRegisterer = (0, _staticRegister.staticRegister)(this.guid);
404
392
  moduleRegisterer.register('cellRangeMapper', new _index.CellRangeToRenderableMapper({
405
393
  rowIndexMapper: this.rowIndexMapper,
@@ -506,7 +494,9 @@ function Core(rootContainer, userSettings) {
506
494
  const selectionLayerLevel = selectionRange.size() - 1;
507
495
  this.runHooks('afterSelection', from.row, from.col, to.row, to.col, preventScrolling, selectionLayerLevel);
508
496
  this.runHooks('afterSelectionByProp', from.row, instance.colToProp(from.col), to.row, instance.colToProp(to.col), preventScrolling, selectionLayerLevel);
509
- if (isLastSelectionLayer && (!preventScrolling.isTouched() || preventScrolling.isTouched() && !preventScrolling.value)) {
497
+ const selectionSource = selection.getSelectionSource();
498
+ const ignoreScrollSources = ['loadData', 'updateData'];
499
+ if (isLastSelectionLayer && !ignoreScrollSources.includes(selectionSource) && (!preventScrolling.isTouched() || preventScrolling.isTouched() && !preventScrolling.value)) {
510
500
  viewportScroller.scrollTo(cellCoords);
511
501
  }
512
502
  const isSelectedByRowHeader = selection.isSelectedByRowHeader();
@@ -526,10 +516,10 @@ function Core(rootContainer, userSettings) {
526
516
  } else {
527
517
  (0, _element.removeClass)(this.rootElement, ['ht__selection--rows', 'ht__selection--columns']);
528
518
  }
529
- if (!['shift', 'refresh'].includes(selection.getSelectionSource())) {
519
+ if (!['shift', 'refresh', 'loadData', 'updateData'].includes(selectionSource)) {
530
520
  editorManager.closeEditor(null);
531
521
  }
532
- if (selection.getSelectionSource() !== 'refresh') {
522
+ if (!['refresh', 'loadData', 'updateData'].includes(selectionSource)) {
533
523
  instance.view.render();
534
524
  editorManager.prepareEditor();
535
525
  }
@@ -878,7 +868,7 @@ function Core(rootContainer, userSettings) {
878
868
  }
879
869
  break;
880
870
  default:
881
- throw new Error(`There is no such action "${action}"`);
871
+ (0, _errors.throwWithCause)(`There is no such action "${action}"`);
882
872
  }
883
873
  if (!keepEmptyRows) {
884
874
  grid.adjustRowsAndCols(); // makes sure that we did not add rows that will be removed in next refresh
@@ -1122,6 +1112,12 @@ function Core(rootContainer, userSettings) {
1122
1112
  }
1123
1113
  if (!hasValueSetter && (typeof orgValue !== 'object' || orgValue === null)) {
1124
1114
  pushData = false;
1115
+
1116
+ // Enabling `parsePastedValue` relaxes schema validation, so object-based values can be pasted
1117
+ // into non-object-based cells
1118
+ if (cellMeta.parsePastedValue && source === 'CopyPaste.paste') {
1119
+ pushData = true;
1120
+ }
1125
1121
  } else if (orgValue !== null) {
1126
1122
  const orgValueSchema = (0, _object.duckSchema)(Array.isArray(orgValue) ? orgValue : orgValue[0] || orgValue);
1127
1123
  const valueSchema = (0, _object.duckSchema)(Array.isArray(value) ? value : value[0] || value);
@@ -1215,7 +1211,7 @@ function Core(rootContainer, userSettings) {
1215
1211
  focusGridManager.init();
1216
1212
  if ((0, _rootInstance.isRootInstance)(this)) {
1217
1213
  (0, _a11yAnnouncer.install)(instance.rootPortalElement);
1218
- (0, _mixed._injectProductInfo)(mergedUserSettings.licenseKey, this.rootWrapperElement);
1214
+ (0, _mixed._injectProductInfo)(mergedUserSettings.licenseKey, this.rootWrapperElement, "20/02/2026");
1219
1215
  }
1220
1216
  instance.runHooks('init');
1221
1217
  this.render();
@@ -1236,6 +1232,31 @@ function Core(rootContainer, userSettings) {
1236
1232
  instance.runHooks('afterInit');
1237
1233
  };
1238
1234
 
1235
+ /**
1236
+ * Initializes the ThemeManager with the given theme configuration.
1237
+ *
1238
+ * @param {object|boolean} theme - The theme configuration object or `true` to use the default theme.
1239
+ */
1240
+ function initializeThemeManager(theme) {
1241
+ let themeObject;
1242
+ if (typeof theme === 'undefined') {
1243
+ if ((0, _themes2.hasTheme)('main')) {
1244
+ themeObject = (0, _themes2.getTheme)('main');
1245
+ } else {
1246
+ themeObject = (0, _themes2.registerTheme)(_themes2.mainTheme);
1247
+ }
1248
+ themeObject = (0, _themes2.getTheme)('main');
1249
+ } else if (typeof theme.getThemeConfig !== 'function') {
1250
+ themeObject = (0, _themes2.registerTheme)(theme);
1251
+ } else {
1252
+ themeObject = theme;
1253
+ }
1254
+ instance.themeManager = (0, _engine.createThemeManager)({
1255
+ hot: instance,
1256
+ themeObject
1257
+ });
1258
+ }
1259
+
1239
1260
  /**
1240
1261
  * @ignore
1241
1262
  * @returns {object}
@@ -1279,7 +1300,7 @@ function Core(rootContainer, userSettings) {
1279
1300
  const waitingForValidator = new ValidatorsQueue();
1280
1301
  let shouldBeCanceled = true;
1281
1302
  waitingForValidator.onQueueEmpty = () => {
1282
- if (activeEditor && shouldBeCanceled) {
1303
+ if (activeEditor && shouldBeCanceled && activeEditor._closeAfterDataChange) {
1283
1304
  activeEditor.cancelChanges();
1284
1305
  }
1285
1306
  callback(); // called when async validators are resolved and beforeChange was not async
@@ -1304,7 +1325,7 @@ function Core(rootContainer, userSettings) {
1304
1325
  instance.validateCell(newValue, cellProperties, function (index, cellPropertiesReference) {
1305
1326
  return function (result) {
1306
1327
  if (typeof result !== 'boolean') {
1307
- throw new Error('Validation error: result is not boolean');
1328
+ (0, _errors.throwWithCause)('Validation error: result is not boolean');
1308
1329
  }
1309
1330
  if (result === false && cellPropertiesReference.allowInvalid === false) {
1310
1331
  shouldBeCanceled = false;
@@ -1375,15 +1396,20 @@ function Core(rootContainer, userSettings) {
1375
1396
  datamap.set(changes[i][0], changes[i][1], changes[i][3]);
1376
1397
  }
1377
1398
  const hasChanges = changes.length > 0;
1399
+ const activeEditor = editorManager.getActiveEditor();
1400
+ const closeEditorAfterDataChange = activeEditor === null || activeEditor === void 0 ? void 0 : activeEditor._closeAfterDataChange;
1378
1401
  if (hasChanges) {
1379
1402
  grid.adjustRowsAndCols();
1380
1403
  instance.runHooks('beforeChangeRender', changes, source);
1381
- editorManager.closeEditor();
1404
+ if (activeEditor !== null && activeEditor !== void 0 && activeEditor.isOpened() && closeEditorAfterDataChange) {
1405
+ editorManager.closeEditor();
1406
+ }
1382
1407
  instance.view.adjustElementsSize();
1383
1408
  instance.render();
1384
- editorManager.prepareEditor();
1409
+ if (activeEditor !== null && activeEditor !== void 0 && activeEditor.isOpened() && closeEditorAfterDataChange || !(activeEditor !== null && activeEditor !== void 0 && activeEditor.isOpened())) {
1410
+ editorManager.prepareEditor();
1411
+ }
1385
1412
  instance.runHooks('afterChange', changes, source || 'edit');
1386
- const activeEditor = instance.getActiveEditor();
1387
1413
  if (activeEditor && (0, _mixed.isDefined)(activeEditor.refreshValue)) {
1388
1414
  activeEditor.refreshValue();
1389
1415
  }
@@ -1471,7 +1497,7 @@ function Core(rootContainer, userSettings) {
1471
1497
  value = instance.runHooks('beforeValidate', value, cellProperties.visualRow, cellProperties.prop, source);
1472
1498
 
1473
1499
  // To provide consistent behavior, validation should be always asynchronous
1474
- instance._registerImmediate(() => {
1500
+ instance._registerMicrotask(() => {
1475
1501
  validator.call(cellProperties, value, valid => {
1476
1502
  if (!instance) {
1477
1503
  return;
@@ -1485,7 +1511,7 @@ function Core(rootContainer, userSettings) {
1485
1511
  });
1486
1512
  } else {
1487
1513
  // resolve callback even if validator function was not found
1488
- instance._registerImmediate(() => {
1514
+ instance._registerMicrotask(() => {
1489
1515
  cellProperties.valid = true;
1490
1516
  done(cellProperties.valid, false);
1491
1517
  });
@@ -1565,10 +1591,11 @@ function Core(rootContainer, userSettings) {
1565
1591
  for (i = 0, ilen = input.length; i < ilen; i++) {
1566
1592
  const [visualRow, visualColumn, newValue] = input[i];
1567
1593
  if (typeof input[i] !== 'object') {
1568
- throw new Error('Method `setDataAtCell` accepts row number or changes array of arrays as its first parameter');
1594
+ (0, _errors.throwWithCause)('Method `setDataAtCell` accepts row number or changes array of arrays as its first parameter');
1569
1595
  }
1570
- if (typeof visualColumn !== 'number') {
1571
- throw new Error('Method `setDataAtCell` accepts row and column number as its parameters. If you want to use object property name, use method `setDataAtRowProp`'); // eslint-disable-line max-len
1596
+ if (typeof input[i][1] !== 'number') {
1597
+ // eslint-disable-next-line max-len
1598
+ (0, _errors.throwWithCause)('Method `setDataAtCell` accepts row and column number as its parameters. If you want to use object property name, use method `setDataAtRowProp`');
1572
1599
  }
1573
1600
  if (visualColumn >= this.countCols()) {
1574
1601
  prop = visualColumn;
@@ -1706,7 +1733,7 @@ function Core(rootContainer, userSettings) {
1706
1733
  */
1707
1734
  this.populateFromArray = function (row, column, input, endRow, endCol, source, method) {
1708
1735
  if (!(typeof input === 'object' && typeof input[0] === 'object')) {
1709
- throw new Error('populateFromArray parameter `input` must be an array of arrays'); // API changed in 0.9-beta2, let's check if you use it correctly
1736
+ (0, _errors.throwWithCause)('populateFromArray parameter `input` must be an array of arrays'); // API changed in 0.9-beta2, let's check if you use it correctly
1710
1737
  }
1711
1738
  const c = typeof endRow === 'number' ? instance._createCellCoords(endRow, endCol) : null;
1712
1739
  return grid.populateFromArray(instance._createCellCoords(row, column), input, c, source, method);
@@ -1796,7 +1823,7 @@ function Core(rootContainer, userSettings) {
1796
1823
  * has visible focus highlight.
1797
1824
  *
1798
1825
  * @memberof Core#
1799
- * @function getSelectedRangeActive
1826
+ * @function getSelectedActive
1800
1827
  * @since 16.1.0
1801
1828
  * @returns {number[]|undefined} Selected range as an array of coordinates or `undefined` if there is no selection.
1802
1829
  */
@@ -2277,7 +2304,9 @@ function Core(rootContainer, userSettings) {
2277
2304
  instance.columnIndexMapper.fitToLength(this.getInitialColumnCount());
2278
2305
  instance.rowIndexMapper.fitToLength(this.countSourceRows());
2279
2306
  grid.adjustRowsAndCols();
2307
+ selection.markSource('updateData');
2280
2308
  selection.refresh();
2309
+ selection.markEndSource();
2281
2310
  }, {
2282
2311
  hotInstance: instance,
2283
2312
  dataMap: datamap,
@@ -2318,7 +2347,9 @@ function Core(rootContainer, userSettings) {
2318
2347
  metaManager.clearCellsCache();
2319
2348
  instance.initIndexMappers();
2320
2349
  grid.adjustRowsAndCols();
2350
+ selection.markSource('loadData');
2321
2351
  selection.refresh();
2352
+ selection.markEndSource();
2322
2353
  if (firstRun) {
2323
2354
  firstRun = [null, 'loadData'];
2324
2355
  }
@@ -2505,13 +2536,13 @@ function Core(rootContainer, userSettings) {
2505
2536
  let i;
2506
2537
  let j;
2507
2538
  if ((0, _mixed.isDefined)(settings.rows)) {
2508
- throw new Error('The "rows" setting is no longer supported. Do you mean startRows, minRows or maxRows?');
2539
+ (0, _errors.throwWithCause)('The "rows" setting is no longer supported. Do you mean startRows, minRows or maxRows?');
2509
2540
  }
2510
2541
  if ((0, _mixed.isDefined)(settings.cols)) {
2511
- throw new Error('The "cols" setting is no longer supported. Do you mean startCols, minCols or maxCols?');
2542
+ (0, _errors.throwWithCause)('The "cols" setting is no longer supported. Do you mean startCols, minCols or maxCols?');
2512
2543
  }
2513
2544
  if ((0, _mixed.isDefined)(settings.ganttChart)) {
2514
- throw new Error('Since 8.0.0 the "ganttChart" setting is no longer supported.');
2545
+ (0, _errors.throwWithCause)('Since 8.0.0 the "ganttChart" setting is no longer supported.');
2515
2546
  }
2516
2547
  if ((0, _mixed.isDefined)(settings.rowHeights) && (0, _mixed.isDefined)(settings.minRowHeights)) {
2517
2548
  (0, _console.warn)('Both `rowHeights` and `minRowHeights` are defined in your configuration. ' + 'As one is the alias of the other, only one of them can be used at a time. ' + '`rowHeights` will be used as the row height configuration.');
@@ -2540,24 +2571,56 @@ function Core(rootContainer, userSettings) {
2540
2571
  globalMeta[i] = settings[i];
2541
2572
  }
2542
2573
  }
2574
+ const rootContainerThemeClassName = (0, _themes.getThemeClassName)(instance.rootContainer);
2575
+ const themeNameOptionExists = (0, _object.hasOwnProperty)(settings, 'themeName');
2576
+ const themeOptionExists = (0, _object.hasOwnProperty)(settings, 'theme');
2577
+ if (themeNameOptionExists && themeOptionExists) {
2578
+ (0, _console.warn)('Both `theme` and `themeName` are defined in your configuration. ' + 'These options are aliases and cannot be used together. ' + 'The `themeName` option will be ignored.');
2579
+ }
2580
+
2581
+ // Update the theme via the `theme` or `themeName` option as a string or undefined.
2543
2582
  if (init) {
2544
- // Use the theme defined in the settings object or set as a root container class name (in that order).
2545
- instance.useTheme(tableMeta.themeName || (0, _themes.getThemeClassName)(instance.rootContainer));
2583
+ let themeName;
2584
+ if (themeOptionExists && typeof settings.theme === 'string') {
2585
+ themeName = settings.theme;
2586
+ } else if (themeNameOptionExists && typeof settings.themeName === 'string' && settings.themeName && !themeOptionExists) {
2587
+ themeName = settings.themeName;
2588
+ tableMeta.theme = settings.themeName;
2589
+ tableMeta.themeName = undefined;
2590
+ } else if (rootContainerThemeClassName) {
2591
+ themeName = rootContainerThemeClassName;
2592
+ } else if (instance.themeManager) {
2593
+ themeName = instance.themeManager.getClassName();
2594
+ }
2595
+ instance.useTheme(themeName);
2546
2596
  } else {
2547
2597
  const currentThemeName = instance.getCurrentThemeName();
2548
- const themeNameOptionExists = (0, _object.hasOwnProperty)(settings, 'themeName');
2549
- if (themeNameOptionExists && currentThemeName !== settings.themeName) {
2598
+
2599
+ // Use `theme` option if it's a string and differs from current theme (takes priority over `themeName`).
2600
+ if (themeOptionExists && typeof settings.theme === 'string' && currentThemeName !== settings.theme) {
2601
+ var _instance$themeManage;
2602
+ instance.useTheme(settings.theme);
2603
+ (_instance$themeManage = instance.themeManager) === null || _instance$themeManage === void 0 || _instance$themeManage.unmount();
2604
+
2605
+ // Use `themeName` option if `theme` is not provided and the name differs from current theme.
2606
+ } else if (themeNameOptionExists && !themeOptionExists && currentThemeName !== settings.themeName) {
2607
+ var _instance$themeManage2;
2608
+ tableMeta.theme = settings.themeName;
2609
+ tableMeta.themeName = undefined;
2550
2610
  instance.useTheme(settings.themeName);
2611
+ (_instance$themeManage2 = instance.themeManager) === null || _instance$themeManage2 === void 0 || _instance$themeManage2.unmount();
2612
+
2613
+ // Initialize or update the themeManager when theme is an object.
2614
+ } else if ((0, _rootInstance.isRootInstance)(instance) && !rootContainerThemeClassName && (0, _object.isObject)(settings.theme)) {
2615
+ if (instance.themeManager === null) {
2616
+ initializeThemeManager(settings.theme);
2617
+ instance.useTheme(instance.themeManager.getClassName());
2618
+ } else {
2619
+ instance.themeManager.update(settings.theme);
2620
+ instance.useTheme(instance.themeManager.getClassName());
2621
+ }
2551
2622
  }
2552
2623
  }
2553
- if (deprecatedWarnInstances.has(instance) && instance.stylesHandler.getThemeName() !== undefined) {
2554
- deprecatedWarnInstances.delete(instance);
2555
- }
2556
- if ((0, _rootInstance.isRootInstance)(instance) && !deprecatedWarnInstances.has(instance) && instance.stylesHandler.isClassicTheme()) {
2557
- // eslint-disable-next-line max-len
2558
- (0, _console.deprecatedWarn)('The stylesheet you are using is deprecated and will be removed in version 17.0. Please update your theme configuration to ensure compatibility with future releases.');
2559
- deprecatedWarnInstances.add(instance);
2560
- }
2561
2624
 
2562
2625
  // Load data or create data map
2563
2626
  if (settings.data === undefined && tableMeta.data === undefined) {
@@ -2603,6 +2666,12 @@ function Core(rootContainer, userSettings) {
2603
2666
  });
2604
2667
  }
2605
2668
  instance.runHooks('afterCellMetaReset');
2669
+
2670
+ // for the first run, we need to run the source data warnings after cell meta initialization
2671
+ // otherwise there is no access to `sourceDataValidator` function
2672
+ if (firstRun) {
2673
+ (0, _dataMap.runSourceDataValidators)(instance, 'init');
2674
+ }
2606
2675
  let currentHeight = instance.rootElement.style.height;
2607
2676
  if (currentHeight !== '') {
2608
2677
  currentHeight = parseInt(instance.rootElement.style.height, 10);
@@ -2629,7 +2698,7 @@ function Core(rootContainer, userSettings) {
2629
2698
  }
2630
2699
  } else if (height !== undefined) {
2631
2700
  instance.rootElement.style.height = isNaN(height) ? `${height}` : `${height}px`;
2632
- instance.rootElement.style.overflow = 'hidden';
2701
+ instance.rootElement.style.overflow = 'clip';
2633
2702
  }
2634
2703
  }
2635
2704
  if (typeof settings.width !== 'undefined') {
@@ -3102,8 +3171,11 @@ function Core(rootContainer, userSettings) {
3102
3171
  }
3103
3172
  (0, _array.arrayEach)(input, _ref0 => {
3104
3173
  let [changeRow, changeProp, changeValue] = _ref0;
3105
- const newValue = (0, _valueAccessors.getValueSetterValue)(changeValue, getCellProperties(changeRow, changeProp));
3106
- dataSource.setAtCell(changeRow, changeProp, newValue);
3174
+ const cellMeta = getCellProperties(changeRow, changeProp);
3175
+ const newValue = (0, _valueAccessors.getValueSetterValue)(changeValue, cellMeta);
3176
+ if ((0, _dataMap.runSourceDataValidator)(newValue, cellMeta, source !== null && source !== void 0 ? source : 'setSourceDataAtCell')) {
3177
+ dataSource.setAtCell(changeRow, changeProp, newValue);
3178
+ }
3107
3179
  });
3108
3180
  if (isThereAnySetSourceListener) {
3109
3181
  this.runHooks('afterSetSourceDataAtCell', changesForHook, source);
@@ -3244,7 +3316,7 @@ function Core(rootContainer, userSettings) {
3244
3316
  cellMetaRows[_key18 - 2] = arguments[_key18];
3245
3317
  }
3246
3318
  if (cellMetaRows.length > 0 && !Array.isArray(cellMetaRows[0])) {
3247
- throw new Error('The 3rd argument (cellMetaRows) has to be passed as an array of cell meta objects array.');
3319
+ (0, _errors.throwWithCause)('The 3rd argument (cellMetaRows) has to be passed as an array of cell meta objects array.');
3248
3320
  }
3249
3321
  if (deleteAmount > 0) {
3250
3322
  metaManager.removeRow(this.toPhysicalRow(visualIndex), deleteAmount);
@@ -3510,7 +3582,7 @@ function Core(rootContainer, userSettings) {
3510
3582
  */
3511
3583
  this.validateRows = function (rows, callback) {
3512
3584
  if (!Array.isArray(rows)) {
3513
- throw new Error('validateRows parameter `rows` must be an array');
3585
+ (0, _errors.throwWithCause)('validateRows parameter `rows` must be an array');
3514
3586
  }
3515
3587
  this._validateCells(callback, rows);
3516
3588
  };
@@ -3536,7 +3608,7 @@ function Core(rootContainer, userSettings) {
3536
3608
  */
3537
3609
  this.validateColumns = function (columns, callback) {
3538
3610
  if (!Array.isArray(columns)) {
3539
- throw new Error('validateColumns parameter `columns` must be an array');
3611
+ (0, _errors.throwWithCause)('validateColumns parameter `columns` must be an array');
3540
3612
  }
3541
3613
  this._validateCells(callback, undefined, columns);
3542
3614
  };
@@ -3575,7 +3647,7 @@ function Core(rootContainer, userSettings) {
3575
3647
  waitingForValidator.addValidatorToQueue();
3576
3648
  instance.validateCell(instance.getDataAtCell(i, j), instance.getCellMeta(i, j), result => {
3577
3649
  if (typeof result !== 'boolean') {
3578
- throw new Error('Validation error: result is not boolean');
3650
+ (0, _errors.throwWithCause)('Validation error: result is not boolean');
3579
3651
  }
3580
3652
  if (result === false) {
3581
3653
  waitingForValidator.valid = false;
@@ -4445,7 +4517,7 @@ function Core(rootContainer, userSettings) {
4445
4517
  */
4446
4518
  this.destroy = function () {
4447
4519
  instance._clearTimeouts();
4448
- instance._clearImmediates();
4520
+ instance._clearMicrotasks();
4449
4521
  if (instance.view) {
4450
4522
  // in case HT is destroyed before initialization has finished
4451
4523
  instance.view.destroy();
@@ -4455,8 +4527,10 @@ function Core(rootContainer, userSettings) {
4455
4527
  }
4456
4528
  dataSource = null;
4457
4529
  if ((0, _rootInstance.isRootInstance)(this)) {
4530
+ var _instance$themeManage3;
4458
4531
  (0, _a11yAnnouncer.uninstall)();
4459
4532
  this.getFocusScopeManager().destroy();
4533
+ (_instance$themeManage3 = instance.themeManager) === null || _instance$themeManage3 === void 0 || _instance$themeManage3.destroy();
4460
4534
  }
4461
4535
  this.getShortcutManager().destroy();
4462
4536
  moduleRegisterer.clear();
@@ -4519,7 +4593,7 @@ function Core(rootContainer, userSettings) {
4519
4593
  */
4520
4594
  function postMortem(method) {
4521
4595
  return () => {
4522
- throw new Error(`The "${method}" method cannot be called because this Handsontable instance has been destroyed`);
4596
+ (0, _errors.throwWithCause)(`The "${method}" method cannot be called because this Handsontable instance has been destroyed`);
4523
4597
  };
4524
4598
  }
4525
4599
 
@@ -4707,10 +4781,6 @@ function Core(rootContainer, userSettings) {
4707
4781
  * @returns {string}
4708
4782
  */
4709
4783
  this.getPluginName = function (plugin) {
4710
- // Workaround for the UndoRedo plugin which, currently doesn't follow the plugin architecture.
4711
- if (plugin === this.undoRedo) {
4712
- return this.undoRedo.constructor.PLUGIN_KEY;
4713
- }
4714
4784
  return pluginsRegistry.getId(plugin);
4715
4785
  };
4716
4786
 
@@ -4883,15 +4953,13 @@ function Core(rootContainer, userSettings) {
4883
4953
  const isFirstRun = !!firstRun;
4884
4954
  this.stylesHandler.useTheme(themeName);
4885
4955
  const validThemeName = this.stylesHandler.getThemeName();
4886
- if (!isFirstRun) {
4887
- instance.render();
4888
- instance.scrollViewportTo(0, 0);
4956
+ if (!isFirstRun && validThemeName) {
4889
4957
  if ((0, _themes.getThemeClassName)(this.rootContainer)) {
4890
4958
  (0, _element.removeClass)(this.rootContainer, /ht-theme-.*/g);
4891
- if (validThemeName) {
4892
- (0, _element.addClass)(this.rootContainer, validThemeName);
4893
- }
4959
+ (0, _element.addClass)(this.rootContainer, validThemeName);
4894
4960
  }
4961
+ instance.render();
4962
+ instance.scrollViewportTo(0, 0);
4895
4963
  }
4896
4964
  this.runHooks('afterSetTheme', validThemeName, isFirstRun);
4897
4965
  };
@@ -4959,51 +5027,66 @@ function Core(rootContainer, userSettings) {
4959
5027
  clearTimeout(handler);
4960
5028
  });
4961
5029
  };
4962
- this.immediates = [];
5030
+ this.microtasks = [];
4963
5031
 
4964
5032
  /**
4965
- * Execute function execution to the next event loop cycle. Purpose of this method is to clear all known timeouts when `destroy` method is called.
5033
+ * Execute function execution to the next event loop cycle.
4966
5034
  *
4967
5035
  * @param {Function} callback Function to be delayed in execution.
4968
5036
  * @private
4969
5037
  */
4970
- this._registerImmediate = function (callback) {
4971
- this.immediates.push(setImmediate(callback));
5038
+ this._registerMicrotask = function (callback) {
5039
+ const entry = {
5040
+ cancelled: false
5041
+ };
5042
+ this.microtasks.push(entry);
5043
+ this.rootWindow.queueMicrotask(() => {
5044
+ if (!entry.cancelled) {
5045
+ callback();
5046
+ }
5047
+ });
4972
5048
  };
4973
5049
 
4974
5050
  /**
4975
- * Clears all known timeouts.
5051
+ * Clears all known microtasks (prevents pending callbacks from running).
4976
5052
  *
4977
5053
  * @private
4978
5054
  */
4979
- this._clearImmediates = function () {
4980
- (0, _array.arrayEach)(this.immediates, handler => {
4981
- clearImmediate(handler);
5055
+ this._clearMicrotasks = function () {
5056
+ (0, _array.arrayEach)(this.microtasks, entry => {
5057
+ entry.cancelled = true;
4982
5058
  });
5059
+ this.microtasks.length = 0;
4983
5060
  };
4984
5061
 
4985
5062
  /**
4986
- * Registers a microtask callback.
5063
+ * Gets the instance of the EditorManager.
4987
5064
  *
4988
- * @param {Function} callback Function to be delayed in execution.
4989
5065
  * @private
5066
+ * @returns {EditorManager}
4990
5067
  */
4991
- this._registerMicrotask = function (callback) {
4992
- this.rootWindow.queueMicrotask(() => {
4993
- if (!this.isDestroyed) {
4994
- callback();
4995
- }
4996
- });
5068
+ this._getEditorManager = function () {
5069
+ return editorManager;
4997
5070
  };
4998
5071
 
4999
5072
  /**
5000
- * Gets the instance of the EditorManager.
5073
+ * Gets the instance of the DataSource.
5001
5074
  *
5002
5075
  * @private
5003
- * @returns {EditorManager}
5076
+ * @returns {DataSource}
5004
5077
  */
5005
- this._getEditorManager = function () {
5006
- return editorManager;
5078
+ this._getDataSource = function () {
5079
+ return dataSource;
5080
+ };
5081
+
5082
+ /**
5083
+ * Gets the instance of the MetaManager.
5084
+ *
5085
+ * @private
5086
+ * @returns {MetaManager}
5087
+ */
5088
+ this._getMetaManager = function () {
5089
+ return metaManager;
5007
5090
  };
5008
5091
  const shortcutManager = (0, _shortcuts.createShortcutManager)({
5009
5092
  handleEvent() {
@@ -5077,10 +5160,16 @@ function Core(rootContainer, userSettings) {
5077
5160
  */
5078
5161
  this.getFocusScopeManager = function () {
5079
5162
  if (!(0, _rootInstance.isRootInstance)(instance)) {
5080
- throw new Error('The FocusScopeManager is only available for the main Handsontable instance.');
5163
+ (0, _errors.throwWithCause)('The FocusScopeManager is only available for the main Handsontable instance.');
5081
5164
  }
5082
5165
  return focusScopeManager;
5083
5166
  };
5167
+ const theme = mergedUserSettings.theme;
5168
+ const themeName = mergedUserSettings.themeName;
5169
+ const rootContainerThemeClassName = (0, _themes.getThemeClassName)(instance.rootContainer);
5170
+ if ((0, _rootInstance.isRootInstance)(instance) && !rootContainerThemeClassName && ((0, _object.isObject)(theme) || !theme && !themeName)) {
5171
+ initializeThemeManager(theme);
5172
+ }
5084
5173
  (0, _registry.getPluginsNames)().forEach(pluginName => {
5085
5174
  const PluginClass = (0, _registry.getPlugin)(pluginName);
5086
5175
  pluginsRegistry.addItem(pluginName, new PluginClass(this));